为什么像"{opacity: 1.0, width: '132px'}"
这样的字符串不能按原样使用eval()
进行评估?Javascript - eval()`{}`表达式
eval("{opacity: 1.0, width: '132px'}");
// invalid label
// {opacity: 1.0, width: '132px'}
// ---------------ꜛ
eval("v = {opacity: 1.0, width: '132px'}");
// works!
从技术上讲,原因是语法在解析[Statement](http://es5.github.com/#x12)时偏好规则“BlockStatement”的规则“Block” – georg 2012-03-30 13:40:10