code_notes
71 subscribers
136 photos
1 video
134 links
учусь делать веб

обратная связь: t.me/dmorenogogoleva
Download Telegram
эвристический — не являющийся гарантированно точным, но достаточный для решения задачи
what is closure

closure is when a function remembers and continues to access variables from outside its scope, even when the function is executed in a different scope.
what is hoisting

when all variables declared anywhere in a scope are treated as if they're declared at the beginning of the scope
JS programs are parsed before any execution begins
картинка про скоупы
любой html id считается за глобальную переменную
это легаси из древних времён, использовать не рекомендуется
шок-контент. каждый файл в ноде это модуль, а каждый модуль это функция

записать что-то в глобальную переменную можно только через`global`
как называется глобальный объект в разных окружениях:

браузер — window
нода — global
веб-воркер — self


скоро это всё должно замениться на кроссокруженческий globalThis
function declaration
function expression
A function declaration is hoisted and initialized to its function value (again, called function hoisting). A var variable is also hoisted, and then auto-initialized to undefined
сначала всплывают function declaration, а потом переменные, объявленные через var
So to summarize, TDZ errors occur because let/const declarations do hoist their declarations to the top of their scopes, but unlike var, they defer the auto-initialization of their variables until the moment in the code's sequencing where the original declaration appeared. This window of time (hint: temporal), whatever its length, is the TDZ.
CommonJS Modules