待转换的是一个Json字符串:
{'name':'新欢'}
而使用如下这种方式调用则会抛出语法异常,
eval("{'name':'新欢'}");
必须加上括号才行
eval("(" + "{'name':'新欢'}" + ")");
原因如下:
如果不加小括号,js会将这个字符串当作一个代码段来执行,而并非表达式(js中支持{}来分隔一段代码),而一个对象的声明,恰恰是一个表达式。
事实上使用eval("var obj = {'name':'新欢'}")这种方式也是可行的。
待转换的是一个Json字符串:
{'name':'新欢'}
而使用如下这种方式调用则会抛出语法异常,
eval("{'name':'新欢'}");
必须加上括号才行
eval("(" + "{'name':'新欢'}" + ")");
如果不加小括号,js会将这个字符串当作一个代码段来执行,而并非表达式(js中支持{}来分隔一段代码),而一个对象的声明,恰恰是一个表达式。
事实上使用eval("var obj = {'name':'新欢'}")这种方式也是可行的。