我有一个关于JavaScript对象属性名称的问题。看看下面的代码:关于JavaScript对象属性名称的问题
<!DOCTYPE html>
<meta charset="UTF-8">
<title>An HTML5 document</title>
<script>
var obj = {
123: 'go' // 123 is not a valid JavaScript name. No error here.
};
var obj2 = {
123a: 'go' // An Error occurred.
};
</script>
如果一个JavaScript对象的属性名是一个有效的JavaScript标识,对象porperty名的报价是没有必要的。
E.g.
({go_go: 'go'}); // OK
({go-go: 'go'}); // Fail
在上面的代码,123a
是无效的JavaScript的名称,它不是被引用。所以发生了一个错误。但123
也是一个无效的JavaScript名称,也没有引用,为什么这里没有错误?我个人认为123
必须引用。
谢谢!
thats javascript for ya。我想你会因为没有得到一个错误而得到一个错误;在var语句的末尾 – Matt 2011-02-15 16:08:55
@Matt:不,JavaScript有一些非常复杂的自动分号插入;只有,请不要依赖它,当你在关键地方省略分号时,事情可能会变得非常糟糕。 – 2011-02-15 20:50:02
@Marcel谢谢。我添加了`;`。 – weilou 2011-02-16 08:49:04