在JavaScript中,您可以定义如下对象:
var d = {1: 'test'};
我可以设置一个带有负数索引的键,如下所示:
d[-1] = 'test2';
但是,如果我尝试在文字初始化中使用负数,则会出现错误:
var d = {1: 'test', -1: 'test2'};
Uncaught SyntaxError: Unexpected token -
为什么是这样?为什么不能使用文字负数作为对象的键?有没有一种解决方法可以让我将其初始化为文字。我知道我可以改用字符串,但是我想使用整数。
最佳答案
从Unquoted property names / object keys in JavaScript,我对这个主题的文章:
-1
不是数字文字,它是一元的-
运算符,后跟数字文字(1
)。
我还制作了一个工具,该工具将告诉您是否可以使用任何给定的属性名称而无需使用引号和/或点号。在mothereff.in/js-properties上尝试一下。