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

обратная связь: t.me/dmorenogogoleva
Download Telegram
картинка про скоупы
любой 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
ES Modules (ESM)
commonjs modules сейчас остались только в ноде, в основном мы используем esm модули
деббагинг упрощается, если мы даем названия всем функциям
But alas, that's not how it landed. let has a TDZ because const needs a TDZ, because let and const mimic var in their hoisting to the top of the (block) scope. There ya go. Too circular? Read it again a few times.
откуда берется this
bind можно использовать для каррирования
code_notes
откуда берется this
эти правила на работают для стрелочных функций. стрелочные функции берут this из внешней функции (или из глобальной области видимости)