在使用eval对JSON进行执行的时候,JSON字符串通常被包含在一个圆括号里:eval('(' + json + ')'),这样做的原因就是因为分组操作符,也就是这对括号,会让解析器强制将JSON的花括号解析成表达式而不是代码块。 看下面这个例子:
eval
JSON
eval('(' + json + ')')
try { { "x": 5 }; // "{" 和 "}" 做解析成代码块 } catch(err) { // SyntaxError } ({ "x": 5 }); // 分组操作符强制将"{" 和 "}"作为对象字面量来解析
(function foo(){})是函数表达式的原因也是分组操作符()的作用。
(function foo(){})
()
There was an error while loading. Please reload this page.
关注【一介书生】更深度地交流