Я начинаю эту серию статей «Разговорный Javascript», потому что многие концепции кодирования можно сформулировать в реальных сценариях и разговорах, которые мы ведем в нашей повседневной жизни.

Представьте, что вы работаете на съемках нового фильма «Мстители» (вам повезло), и вам говорят передать новые изменения сценария Крису. Разговор может пойти примерно так.

Они: «Привет, можешь дать обновленные сценарии Крису?»
Ты: «хорошо»

Они: «Эй, почему Крис не получил обновленные изменения?»

Вы: «Я дал ему это 10 минут назад».
Они: «Он, должно быть, потерял его! Нам нужно нанять нового личного помощника».
Вы: «О, я дал их Хемсворту…»

Как это связано с кодированием?

Путаница по поводу того, кто такой Крис, аналогична области действия в javaScript. Область действия — это возможность ссылаться и получать доступ к переменной и ее значению (ям). Если переменная не находится в области видимости, то значения не могут быть доступны.

В этом сценарии есть два человека по имени Крис; личный помощник (PA) Крис и Крис Хемсворт (актер Тора). Хемсворт существует в глобальном масштабе; он называется на высшем уровне. Вы можете узнать (доступ) Криса Хемсворта на любом уровне производства (приложения), но Крис ПА существует в функциональном объеме (только для тех, кто взаимодействует с ним лично).

В приведенном ниже примере кода у нас есть Hemsworth в глобальной области видимости и PA в области функции. Когда мы вызываем printScripts, Крис является личным помощником. Чтобы увидеть код в действии, вы можете клонировать этот файл, если вы находитесь на github, или скопировать файл в свой любимый онлайн-компилятор кода, чтобы запустить его самостоятельно; плюс есть комментарии!

let chris = "Chris Hemsworth";
const printScripts = function() {
  let chris = "The PA"; 
  console.log("Who is Chris? Chris is", chris);
};
console.log("Who is Chris? Chris is", chris);
printScripts();

Это то, что мы получаем, когда запускаем код.

Полезный совет: давайте вашим переменным уникальные и описательные имена, чтобы свести к минимуму вероятность вызова неправильной переменной.

Вернуться к обсуждениям

В приведенном выше примере кода, когда мы вызываем printScripts, мы четко указываем, для какого Криса предназначена эта задача. Мы не ожидали, что кто-то из звезд фильма напечатает сценарии для всего актерского состава. Этот разговор выглядел бы примерно так.

Они: «Привет, можешь дать обновленные сценарии Крису, чтобы он их распечатал?»
Ты: «ОК».