只是阅读了一些JS tuts on Mozilla并且遇到了声明"你不应该在语句的开头使用对象文字。这将导致错误或不按预期行事,因为{将被解释为块的开头。"
我不明白他们的意思。请有人对此有所了解
答案 0 :(得分:3)
对象文字以{
开头{ name: "Paul" age: 30 } // I wish
但块也是如此。
{ if (age < 30) console.log ("He's lying again"); }
当口译员看到&#34; {&#34;它必须选择一种解释(*)。它选择&#34;阻止&#34;并尝试解析您的对象文字,就好像它是代码一样。它不是,所以很快就会出错。
(*)嗯,它没有 ,它可以向前看,看看块的其余部分是否像对象文字或代码,但消除两者的歧义会使解析器要复杂得多,因此定义了语言,因此不必这样做。