2015-06-01 90 views
6

JavaScript对象的属性可以用空字符串来命名,例如:如果属性名称是空字符串,如何检查对象的属性?

foo = { 
    "" : "bar" 
} 

点标记似乎并不能够调用此属性。控制台输出:

foo. 
>> "missing name after . operator" 

你会怎样称呼“”属性?

+1

同样的方式。 –

+0

“对象属性名称可以是任何有效的JavaScript字符串,也可以是任何可以转换为字符串的字符串,包括空字符串。” https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Working_with_Objects – meetalexjohnson

+0

我不确定该评论是否针对我;一个有效的JavaScript *字符串*不一定是有效的JavaScript *代码*,这是点符号的意思。 –

回答

4

使用一个空字符串作为与托架语法键:

foo[""] 
0

这可以用方括号来完成。控制台输出:你访问一个属性,它包含其他任何将不合法JavaScript语法

foo[""] 
>> "bar" 

Documentation

+0

任何人都知道点符号是否可能? – meetalexjohnson

+0

当然不是,它不是合法的JavaScript。 –

+1

@ meetalexjohnson-no。点符号只能与[*有效标识符*](http://ecma-international.org/ecma-262/5.1/#sec-7.6)的属性名称一起使用(例如,可以用作变量名的东西)和“”不符合标准。 – RobG

相关问题