Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Почему код не запускается даже не дойдя до ошибки?

Джон Шепард Знаток (389), на голосовании 1 год назад
Подскажите почему в данном примере код не запускается
 let a= 7;
console.log(a);
const b;
Ошибка выдается сразу, а не после того как выполнится console.log(a); ведь код выполняется построчно и сначала должно вроде быть console.log(a); а потом ошибка. Например
 let a= 7; 
console.log(a);
const b = 1;
b = 2
сначала выполнено console.log(a); а потом уже выдается ошибка.
Почему эти два примера по разному выдают ошибку?
Голосование за лучший ответ
Άηϑρέΰ ҂ Искусственный Интеллект (179999) 1 год назад
у меня нет ошибок
Джон ШепардЗнаток (389) 1 год назад
let a= 7;
console.log(a);
const b;
как нет ошибки если b не присвоено значение по любому будет ошибка
Άηϑρέΰ ҂ Искусственный Интеллект (179999) Джон Шепард,
const b;
так только ты пишешь
Джон ШепардЗнаток (389) 1 год назад
вопрос то был не о том как я пишу
Άηϑρέΰ ҂ Искусственный Интеллект (179999) Джон Шепард, как раз в этом то и вопрос
Джон ШепардЗнаток (389) 1 год назад
Другие люди вопрос поняли дали нормальный ответ и не придирались
Саня Семенов Оракул (60497) 1 год назад
потомучто SyntaxError вычисляется перед компиляцией
Яков Гото Искусственный Интеллект (320911) 1 год назад
Потому что JavaScript проходит по коду не один раз. Сначала он проходит и считывает переменные... и только после этого начинает обрабатывать конструкции типа console.log().
a Мыслитель (5849) 1 год назад
Хоть я и не знаком c JS, но почитав стать о работе и увидев схему, я выскажу свою гипотезу.
Парсинг кода, построение AST (Abstract Syntax Tree), лексический анализ происходит до интерпретации кода. То есть, в первом варианте syntaxError возникает еще до интерпретации, выполнения самого кода, поэтому кидается ошибка и ничего не выполняется. А второе за синтаксическую ошибку им не считается, поэтому оно спокойно проходит дальше в интерпретатор и выполняется

https://blog.sessionstack.com/how-javascript-works-parsing-abstract-syntax-trees-asts-5-tips-on-how-to-minimize-parse-time-abfcf7e8a0c8
https://blog.bitsrc.io/how-does-javascript-really-work-part-1-7681dd54a36d
Похожие вопросы