只需阅读一些JS tuts on Mozilla并遇到以下语句:“您不应在语句的开头使用对象文字。这将导致错误或不按预期方式运行,因为{将被解释为开头一个街区。”

我不明白他们的意思。有人能对此有所启发吗

最佳答案

对象文字以{

{ name: "Paul" age: 30 } // I wish


但是障碍也是如此。

{ if (age < 30) console.log ("He's lying again"); }


当口译员看到“ {”时,必须选择一种口译(*)。它选择“块”,并尝试像解析代码一样解析您的对象文字。并非如此,所以事情很快就出错了。

(*)好吧,这不是必须的,它可以向前看是否该块的其余部分看起来像对象文字或代码,但是消除两者的歧义会使解析器复杂得多,因此定义了语言因此不必这样做。

08-03 17:39