eval()方法的替代函数

时间: 作者:admin 浏览:

为什么大家都不建议使用eval()这方法?是因为eval()方法会无条件执行传给它的代码,很容易导致安全问题,很多人不懂得eval()的正确用法,所以建议大家少用或者不用这个方法,那么有没有什么好的方法可以替代eval()?目前找到的有以下这三个:

方法一:

function evil(fn) {
    var Fn = Function;  //一个变量指向Function,防止有些前端编译工具报错
    return new Fn("return " + fn)();
}

方法二:

function eval1 (str) {
    var script = document.createElement("script");
    script.type="text/javascript";
    script.text=str;
    document.getElementsByTagName("head")[0].appendChild(script);
    document.head.removeChild(document.head.lastChild);
}

方法三:

JSON.parse()

解释JSON字符串,可以直接用JSON.parse()来解释成json对象;
需要知道的是一般也会用JSON.stringify()将json对象转换成json字符串,这两个常常互用

微信公众号
微信公众号:
  • 前端全栈之路(微信群)
前端QQ交流群
前端QQ交流群:
  • 794324979
  • 734802480(已满)

更多文章

栏目文章


Copyright © 2014-2023 seozhijia.net 版权所有-粤ICP备13087626号-4