今天在项目开发中使用了eval方法,使用的目的是将后端返的字符串转换成我想要的方法,但是项目在360和IE浏览器下面报了下图错误。
解决方法:
方法1:是将你要转换的字符串用"(0 || " + 字符串 + ")"这种方式包起来,具体写法如下所示:(str为你为转换的字符串)
语法:eval("(0 ||" + str +")")或者window.eval("(0 ||" + str +")")
实例:(如下图)
图片说明:上图是在IE浏览器下面做的测试,明明都使用了上述语法但第一个语句还是报了错,其报错的原因不是语法的问题,是因为IE浏览器不兼容箭头函数,所以才会报错,建议大家以后使用eval时注意一下这些细节。
方法2:在解决IE低版本,如IE6/7/8等版本浏览器可以用一下语法。
语法:[function(){alert('Test!')}][0] 或 0?0:function(){alert('Test!')}
参考链接:https://blog.csdn.net/u011277123/article/details/53063391