我已经使用FireBug来测试这两种情况,结果看起来非常相似:
>>> var x = {"active": "yes"}
>>> x.active
"yes"
>>> var x = {active: "yes"}
>>> x.active
"yes"
Run Code Online (Sandbox Code Playgroud)
但我很确定这两者之间存在一些差异,甚至可能与性能有关.底线 - 我想知道{active:"yes"}和{"active":"yes"}之间是否存在差异.
med*_*iev 28
两者都有效.但是,有些关键字你不能这样使用delete,以避免将它们用引号括起来,这样它们就不会被ECMAScript解析器直接处理,而是明确指定为字符串.
此外,JSON规范要求密钥在它们周围有引号:
字符串以
引号开头和结尾
所以{key:'value'}不是有效的JSON,而是有效的JS,而{"key":"value"}有效的JS和JSON.
关键字和无效/模糊键的示例:
>>> ({delete:1})
SyntaxError: Unexpected token delete
>>> ({'delete':1})
Object
Run Code Online (Sandbox Code Playgroud)
另一个例子:
>>> ({first-name:'john'})
SyntaxError: Unexpected token -
>>> ({'first-name':'john'})
Object
>>> ({'first-name':'john'})['first-name']
"john"
Run Code Online (Sandbox Code Playgroud)
Que*_*tin 11
两者都是有效的JavaScript(虽然有些名称只能用于引用,但active不在其中).
后者是无效的JSON(引用的名称在JSON中是必需的).
| 归档时间: |
|
| 查看次数: |
481 次 |
| 最近记录: |