在Firefox控制台中,此代码将生成错误:
{"d" : ["bankaccountnumber", "$1234.56"] }
> SyntaxError: invalid label {
> message="invalid label", more...}
Run Code Online (Sandbox Code Playgroud)
这段代码工作得很好
{d : ["bankaccountnumber", "$1234.56"] }
> ["bankaccountnumber", "$1234.56"]
Run Code Online (Sandbox Code Playgroud)
此代码也可以正常工作
var a = {'d' : ["bankaccountnumber", "$1234.56"] };
a.d
> ["bankaccountnumber", "$1234.56"]
Run Code Online (Sandbox Code Playgroud)
有人可以帮助解释为什么会有差异?谢谢!
这是因为语法含糊不清.当你尝试在前两行中创建一个普通的对象文字时,JavaScript实际上将它解释为一组大括号,然后是一个标签,然后是一个语句:
{
d: ["bankaccountnumber", "$1234.56"]
}
Run Code Online (Sandbox Code Playgroud)
此代码不会评估对象,而只评估数组.第一个示例,您尝试使用字符串作为标签,这是不正确的语法.第三个示例正常工作,创建一个对象并将其存储a.
| 归档时间: |
|
| 查看次数: |
993 次 |
| 最近记录: |