TGViewer
As For JS As For JS @asforjavascript · 3.07K subscribers
Post #647 2.84K
Я очень долго писал комментарий к одному ответу на YouTube.
Но оказалось что я на том канале забанен.
Размещу его здесь.

Ответ вот на это сообщение:
https://www.youtube.com/watch?v=-lHQ8b0GpEQ&lc=UgzqZ6hJTbNAmXoPxOp4AaABAg.9pRUv3pJmiBADWzUaBzFio

​ @iuriiankudinov9131
Про JavaScript ECMAScript
По сути, компания Oracle не препятствует повсеместному

Никого не волнует - препятствует или нет. Всех волнует только факт того, не придут ли завтра к тебе с иском и не потребуют ли рояльти. А чтобы этого не было - должен быть договор о использовании. Который Oracl не дает. Более того в 2024 году к ним был запрос относительно этого и получен отказ.

По этой причине с первого дня существования стандарта у нас есть ECMAScript как официальное название. О чем можно так же прочитать в первой главе Introduction спецификации ECMA.


var, let, const

Никаких областей видимости(block scope, function scope), согласно современной спецификации, в JavaScript нет. Их нет даже в первой спецификации 1997 года. Это жаргон который пришел в язык извне. И безответственно навязан многим людям, которые потом не могут понять почему у них "контекст теряется"

В современном языке JavaScript существует концепция окружений. И термин - область применения.
Которые в общем случае описываются типичной прототипной моделью Обьекта в JavaScript, где на каждое окружение создается обьект, ключами которого становятся идентификаторы обьявленные в этом окружении.

Каждое связанное окружение, создает новый обьект, прототипом к которому устанавливается обьект предыдущего окружения.

В первых версиях спецификации такие обьекты так и назывались - Variables Object.
В современных версиях спецификации - это называется Environments. Let и Const относятся к Lexical Environment ( не путать с лексическим окружением из сленга).


var реально нужна для глобальных объектов

Это ваши галлюцинации. Например:
Вам известно что function declaration - это тот же var? Вам известно что внутри окружения функции, используя function declaration вы используете тот же самый механизм что и используется variable statement? Где в окружении функции ( или если говорить вашим языком в function scope) глобально окружение?

let и const - это безобразно спроектированные развитие концепции var. Которая привела к просадкам производительности настолько значимым. Что первые две версии V8 с момента реализации let и const игнорировали часть спецификации чтобы сохранить ее на приемлемом уровне.

let и const - это всего лишь надстройка над var. С дополнительной проверкой в зависимости от окружения. Что видно как в спецификации, так и в конркетной реализации V8 на уровне байт кода, где доступ к идентификатору делается одним и тем же способом, но если требуется дополнительная проверка на окружение - до вставляется дополнительный код для этого.


Event Loop – базовая концепция выполнения JavaScript-код

EventLoop не имеет НИКАКОГО отношения к выполнению JS кода. И представляет из себя ОДИН ИЗ возможных механизмов постановки задачи на выполнения.

Для работы async awaite promise - event loop не требуется. Для их работы в спецификации заявлены свои очереди которые к EventLoop не имеют никакого отношения.


в реальности любая среда выполнения JavaScript (браузер или Node) использует цикл событий для организации асинхронного кода.Event Loop не ограничен только HTML5


Нет не любая. Любая среда обязана реализовать Job Queue, Promise Queue, Timeout queue. Которые могут быть сделаны ЛЮБЫМ образом. Event Loop - один из них. Например в D3 никакого Event Loop нет, при этом промисы прекрасно работают.

HTML-спецификация действительно описывает Event Loop для браузерной среды, но в Node тоже есть своя реализация Event Loop (libuv). Значит, это не только про HTML5, а про любую среду, где исполняется JS

И общего у этих реализаций только название. LibUv очень старается быть похожим на EventLoop из HTML5 но они радикально разные. Типичный пример - обработка окружением Node и HTML5 таймеров. Которая радикально разная.

И так далее.
  • 👍 45
  • ❤‍🔥 13
  • 🔥 10
  • 👎 1
  • 👌 1
  • 👀 1
More from @asforjavascript
  1. Oct 13, 2026Тимур Шемсединов раскопал в записях еще один эфир второго в мире JS радио. Было это недели…
  2. Oct 11, 2026Гениальный Кирилл Львович Масленников о темной материи полтора часа кайфа https://youtu.be…
  3. Oct 10, 2026Два дня назад, в возрасте 90 лет умерла Маргарет Гамильтон. В один из критических моментов…
  4. Oct 9, 2026Какие несоответствия тексту песни, вы видите в клипе? Я нашел пока три. https://www.youtub…
  5. Oct 9, 2026Пусть повисит до утра. Потом удалю https://www.youtube.com/watch?v=qVs4a7K42eE&
  6. Oct 9, 2026Первое видео, где автор пытался седелать его так, чтобы все подумали на ИИ
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →