2013-04-25 70 views
1

内容响应:{"body": "123", "timestamp": 1366853254, "html": "<div class=\"message\" id=\"m721cfd57-cf57-4fa9-b0a4-263151da4f7d\"><b>Scuk: <\/b>123<\/div>\n", "from": "Scuk", "id": "721cfd57-cf57-4fa9-b0a4-263151da4f7d"}javascript - 为什么在评估对象时添加括号?

代码:

console.log(eval('(' + response + ')')); 
console.log(eval(response)); 

没有错误在console.log(eval('(' + response + ')'));报道而unexpected token报道console.log(eval(response));。有谁能告诉我为什么?

+1

参见http://stackoverflow.com/questions/964397/why-does-javascripts-eval-need-parentheses-to-eval-json-data – potatosalad 2013-04-25 01:32:30

+2

'的console.log(EVAL(响应+)) ;'里面有''+'“,这是无效的。其余的推理是在 – pickypg 2013-04-25 01:36:34

+0

@pickypg以下对不起,这是一个错字。 – CDT 2013-04-25 01:49:11

回答

6

我们添加括号,以便将其评估为表达式。例如,({})被解释为对象字面值,而{ ... }被解析为块语句。

{ 
    foo: 1, 
    bar: 2 
} 

// Uncaught SyntaxError: Unexpected token : 
相关问题