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字符串,这两个常常互用

前端新手交流群
欢迎加入web前端新手交流qq群:
734802480(已满)、 794324979

更多文章

栏目文章


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