Skip to content
子矜 edited this page Jun 28, 2015 · 2 revisions

在使用evalJSON进行执行的时候,JSON字符串通常被包含在一个圆括号里:eval('(' + json + ')'),这样做的原因就是因为分组操作符,也就是这对括号,会让解析器强制将JSON的花括号解析成表达式而不是代码块。 看下面这个例子:

  try {
    { "x": 5 }; // "{" 和 "}" 做解析成代码块
  } catch(err) {
    // SyntaxError
  }
  
  ({ "x": 5 }); // 分组操作符强制将"{" 和 "}"作为对象字面量来解析

(function foo(){})是函数表达式的原因也是分组操作符()的作用。

关注【一介书生】更深度地交流

Clone this wiki locally