2013-04-25 2 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 - 개체를 평가할 때 괄호를 추가해야하는 이유는 무엇입니까? 응답의

코드 : unexpected tokenconsole.log(eval(response));에보고하면서

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

없음 오류가 console.log(eval('(' + response + ')'));에보고되지. 아무도 그 이유를 말할 수 있습니까?

+1

참조 http://stackoverflow.com/questions/964397/why-does-javascripts-eval-need-parentheses-to-eval-json-data – potatosalad

+2

'을 console.log (평가 (응답 +)) ;'는 거기에''+' "을 가지고 있는데 이것은 유효하지 않습니다. 나머지 이유는 다음과 같습니다 – pickypg

+0

@pickypg 죄송합니다. 오타입니다. – CDT

답변

6

괄호를 추가하여 표현식으로 평가됩니다. 예를 들어, ({})은 개체 리터럴로 해석되고 { ... }은 블록 문으로 구문 분석됩니다.

{ 
    foo: 1, 
    bar: 2 
} 

// Uncaught SyntaxError: Unexpected token : 
관련 문제