提问人:Anjali Chauhan 提问时间:6/27/2023 最后编辑:DavidAnjali Chauhan 更新时间:6/27/2023 访问量:60
为什么我的代码在语法错误之前没有执行,导致 JavaScript 中的行
Why my code not executing before syntax error causing line in JavaScript
问:
// snippet for syntax error
console.log("hello stackoverflow!");
const test3;
test3='❌'
console.log(test3)
var name="me"
console.log(name)
我知道 JS 是同步的并且逐行执行代码,但为什么这里没有被打印出来,因为错误在下一行。hello stackoverflow!
另外,请考虑下面的另一个片段
// snippet for typeError
console.log('hello stackoverflow!')
const test3 = '✅'
test3='❌'
console.log(test3)
var name="me"
console.log(name)
此代码段打印“hello stackoverflow”。这与第一个代码段的行为不同。
谁能帮我为什么会发生这种情况,以及谁在 JS 中识别这些错误,这是否发生在 JavaScript 中的内存分配之前?
我希望控制台.log()在两种情况下都会被打印出来,这在第一个代码段中没有发生。
答:
7赞
Quentin
6/27/2023
#1
JS 中事情发生的顺序不是严格线性的。
在执行开始之前扫描语法错误。
评论
0赞
Anjali Chauhan
6/27/2023
TypeError 也是错误的一部分,为什么然后执行控制台.log代码。如果扫描错误,则不应开始代码执行
0赞
Quentin
6/27/2023
类型错误不是语法错误。它们在不同的时间被检测到。
0赞
Anjali Chauhan
6/27/2023
所以JS做类型检查?
0赞
Quentin
6/27/2023
可能不是你所想的那样。此类型错误是因为您尝试重新分配 的值。const
2赞
TMarciDev
6/27/2023
#2
解释型语言并不意味着它像 shell 脚本一样逐行执行。在第一行执行之前发生了许多事情,例如可变空间分配。 如果以一种方式定义变量,但以另一种方式使用它,则代码执行根本不会启动。 请阅读有关代码生命周期的信息:https://www.freecodecamp.org/news/execution-context-how-javascript-works-behind-the-scenes/
评论
const
的含义。 语法无效。 是。const x
const x = 'y'