Я начинаю эту серию статей «Разговорный 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, мы четко указываем, для какого Криса предназначена эта задача. Мы не ожидали, что кто-то из звезд фильма напечатает сценарии для всего актерского состава. Этот разговор выглядел бы примерно так.
Они: «Привет, можешь дать обновленные сценарии Крису, чтобы он их распечатал?»
Ты: «ОК».