-
Notifications
You must be signed in to change notification settings - Fork 0
eval('(' json ')')
子矜 edited this page Jun 28, 2015
·
2 revisions
在使用eval
对JSON
进行执行的时候,JSON
字符串通常被包含在一个圆括号里:eval('(' + json + ')')
,这样做的原因就是因为分组操作符,也就是这对括号,会让解析器强制将JSON
的花括号解析成表达式而不是代码块。
看下面这个例子:
try {
{ "x": 5 }; // "{" 和 "}" 做解析成代码块
} catch(err) {
// SyntaxError
}
({ "x": 5 }); // 分组操作符强制将"{" 和 "}"作为对象字面量来解析
(function foo(){})
是函数表达式的原因也是分组操作符()
的作用。
联系我:华科 冰岩 子矜 [email protected]