不明白为什么不应该在语句的开头使用对象文字

时间:2014-11-18 15:15:06

标签: javascript object literals

只是阅读了一些JS tuts on Mozilla并且遇到了声明"你不应该在语句的开头使用对象文字。这将导致错误或不按预期行事,因为{将被解释为块的开头。"

我不明白他们的意思。请有人对此有所了解

1 个答案:

答案 0 :(得分:3)

对象文字以{

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

但块也是如此。

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

当口译员看到&#34; {&#34;它必须选择一种解释(*)。它选择&#34;阻止&#34;并尝试解析您的对象文字,就好像它是代码一样。它不是,所以很快就会出错。

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