meo*_*meo 201 javascript
两者之间有什么区别吗?
obj = {'foo': 'bar'}
Run Code Online (Sandbox Code Playgroud)
和
obj = {foo: 'bar'}
Run Code Online (Sandbox Code Playgroud)
我注意到-当我不使用引号时你不能在密钥中使用.但它真的有所作为吗?如果是的话,哪个?
bdu*_*kes 132
不,引号没有区别(除非,如您所说,您希望使用不是有效JavaScript标识符的密钥).
另外,JSON数据交换格式 确实需要围绕标识符使用双引号.
Mat*_*ens 123
从JavaScript中的Unquoted属性名称/对象键,我对该主题的描述:
如果属性名称是数字文字或有效标识符名称,则只能省略引号.
[...]
括号表示法可以安全地用于所有属性名称.
[...]
只有当属性名称是有效的标识符名称时,才能使用点表示法.
请注意,保留字可以在ES5中用作不带引号的属性名称.但是,为了向后兼容ES3,无论如何我建议引用它们.
我还创建了一个工具,告诉您是否可以使用任何给定的属性名称而不使用引号和/或带点符号.在mothereff.in/js-properties试试吧.
这里没有区别.只是风格问题.这样做的原因之一是能够使用"超级"或"类"作为关键,因为这些是保留关键字.
有些人可能会想要用空格传入一个字符串,然后调用o ['我可以有空格']但我会称之为糟糕的做法.
| 归档时间: |
|
| 查看次数: |
46962 次 |
| 最近记录: |