Javascript eval不在IE8中工作
我找不到这个小代码段在IE8中不起作用的原因Javascript eval不在IE8中工作,javascript,Javascript,我找不到这个小代码段在IE8中不起作用的原因 var a = {"ff": "test"}; eval('('+a+')'); 我得到的错误是 “]'预期” 当连接对象a以形成eval'd字符串的一部分时,将调用a.toString(),它将输出[对象对象]。您需要的是将{“ff”:“test”};连接到eval'd字符串中,因此需要使用JSON.stringify() 试试这个: eval('('+JSON.stringify(a)+')'); 或者,您也可以在第一行的对象声明周围加引号:
var a = {"ff": "test"};
eval('('+a+')');
我得到的错误是
“]'预期”
当连接对象
a
以形成eval'd字符串的一部分时,将调用a.toString()
,它将输出[对象对象]
。您需要的是将{“ff”:“test”};
连接到eval'd字符串中,因此需要使用JSON.stringify()
试试这个:
eval('('+JSON.stringify(a)+')');
或者,您也可以在第一行的对象声明周围加引号:
var a = '{"ff": "test"}';
评估如下:
([object Object])
这显然是无效的JavaScript。如果您想保留数据结构,可以使用JSON.stringify()
和JSON.parse()
这段代码在其他浏览器中运行吗?应该如何运行?试着打印出你在这里评估的内容。它应该做什么?@diEcho Dam,你打败了我这会做什么?额外的括号是什么意思?它们已经是问题的一部分了,我不知道他是否有正确的理由这么做。
([object Object])
var a_to_json = JSON.stringify(a);
var a_from_json = JSON.parse(a_to_json);