nop*_*ole 15 javascript firebug javascript-objects
以下内容将在Firebug或jsconsole.com或其他Javascript交互式控制台中显示:
>>> foo = { a : 1, b : 2.2 }
Object { a=1, more...}
>>> foo.a
1
>>> foo.b
2.2
>>> { a : 1, b : 2.2 }
SyntaxError: invalid label { message="invalid label", more...}
>>> { a : 1 }
1
Run Code Online (Sandbox Code Playgroud)
为什么是1返回{a : 1}以及为何{a : 1, b : 2.2}给了一个错误?在Ruby中,它们会以您定义它的方式返回.
CMS*_*CMS 25
第二行是给你一个SyntaxError因为{它开头的标记引起歧义,解析器把它看作是一个Block语句,而不是对象文字的开头.
例如,一个有效的Block语句:
{ foo: 'bar' }
Run Code Online (Sandbox Code Playgroud)
上面看起来像一个对象文字,但它不是,因为代码是在语句上下文中计算的.
它将被解析为一个Block,它包含一个带标签的statement(foo),后跟一个表达式statement('bar').
要确保使用对象文字的语法,可以使用括号(也称为分组运算符)将其包装:
({ foo: 'bar' })
Run Code Online (Sandbox Code Playgroud)
分组运算符只能使用表达式,因此没有歧义.
也可以看看:
| 归档时间: |
|
| 查看次数: |
248 次 |
| 最近记录: |