Вы пока еще не знаете JS} Область видимости и замыкания
Қосымшада ыңғайлырақҚосымшаны жүктеуге арналған QRRuStore · Samsung Galaxy Store
Huawei AppGallery · Xiaomi GetApps

 Вы пока еще не знаете JS} Область видимости и замыкания

Вы пока еще не знаете JS. И Кайл Симпсон признается, что тоже его не знает (по крайней мере полностью)… И никто не знает. Но все мы можем начать работать над тем, чтобы узнать его лучше. Сколько бы времени вы ни провели за изучением языка, всегда можно найти что-то еще, что стоит изучить и понять на другом уровне.

Вы уже прочитали «Познакомьтесь, JavaScript»? Тогда откройте вторую книгу серии «Вы пока еще не знаете JS», чтобы познакомиться поближе с первым из трех столпов JavaScript — системой областей видимости и функциональными замыканиями, а также с мощным паттерном проектирования «Модуль».

Пора освоить правила лексических областей видимости для размещения переменных и функций в правильных позициях. И заглянуть на более низкий уровень, ведь магия с хранением состояния модулей базируется на замыканиях, использующих систему лексических областей видимости.
Оқыдыңыз ба? Не айтасыз?
Максим С.
Максим С.пікірімен бөлісті11 ай бұрын
👍Ұсынамын
1 Ұнайды
Комментарий жазу
madshox
madshoxпікірімен бөлісті1 жыл бұрын
👍Ұсынамын
1 Ұнайды
Комментарий жазу
👍Ұсынамын
💡Танымдық
🎯Пайдалы
Комментарий жазу
Рафаэль Рахимов
Рафаэль Рахимовдәйексөз келтірді3 күн бұрын
TDZ (Temporal Dead Zone)
Комментарий жазу
Рафаэль Рахимов
Рафаэль Рахимовдәйексөз келтірді3 күн бұрын
Но вместо этого первая команда console.log(..) выдает ошибку TDZ, потому что переменная studentName из внутренней области видимости была поднята (автоматически зарегистрирована в начале области видимости)
Комментарий жазу
Рафаэль Рахимов
Рафаэль Рахимовдәйексөз келтірді3 күн бұрын
var studentName = "Kyle";

{

console.log(studentName);

// ???

// ..

let studentName = "Suzy";

console.log(studentName);

// Suzy

}

Что произойдет с первой командой console.log(..)? Если let studentName не поднимается в начало области видимости, первый вызов console.log(..)должен вывести "Kyle", верно? Казалось бы, в этот момент есть только внешняя переменная studentName, поэтому именно к этой переменной должна обратиться и вывести команда console.log(..).
Комментарий жазу
Питер
Издательский дом «Питер»
Издательский дом «Питер»
1 829 кітап
813
Айтишная полка
undlake
undlake
277 кітап
767
coding
Андрей Беляков
Андрей Беляков
33 кітап
7