eval("x={}")
--> {}
eval("{}")
--> undefined
为什么?
我想从评估字符串中返回一个对象。
答案 0 :(得分:9)
{}
被解析为空块语句,而不是对象文字表达式。
要强制将其解析为表达式,请将其包装在括号中。
答案 1 :(得分:4)
{}
被解释为不包含任何语句的块,其值为undefined
。 x={}
强制将{}
作为表达式(空对象)进行求值,因为您无法将块指定给任何东西。然后赋值运算符返回已分配的值。
获得相同效果的更简洁方法是将表达式包装在括号中。 eval("({})")
为我提供了正确的结果。
答案 2 :(得分:0)
的eval(" {} + {}&#34)
JavaScript中有很多错误
资料来源:https://www.destroyallsoftware.com/talks/wat