为什么我的代码在 JavaScript 中导致语法错误之前没有执行

Anj*_*han 4 javascript syntax-error typeerror

\r\n
\r\n
// snippet for syntax error\nconsole.log("hello stackoverflow!");\nconst test3;\ntest3=\'\xe2\x9d\x8c\'\nconsole.log(test3)\n\nvar name="me"\nconsole.log(name)
Run Code Online (Sandbox Code Playgroud)\r\n
\r\n
\r\n

\n

我知道 JS 是同步的并逐行执行代码,但为什么这里hello stackoverflow!没有打印出来,因为错误在下一行。

\n

另外,考虑下面的另一个片段

\n

\r\n
\r\n
// snippet for typeError\nconsole.log(\'hello stackoverflow!\')\nconst test3 = \'\xe2\x9c\x85\'\ntest3=\'\xe2\x9d\x8c\'\nconsole.log(test3)\n\nvar name="me"\nconsole.log(name)
Run Code Online (Sandbox Code Playgroud)\r\n
\r\n
\r\n

\n

此代码片段打印“hello stackoverflow”。这与第一个片段的行为不同。

\n

任何人都可以帮助我为什么会发生这种情况,谁在 JS 中识别出这些错误,以及这种情况是否发生在 JavaScript 中的内存分配之前?

\n

我期望 console.log() 在这两种情况下都能打印出来,但这在第一个片段中没有发生。

\n

Que*_*tin 7

JS 中事情发生的顺序并不是严格线性的

在执行开始之前会扫描语法错误。