js eval替代方法学习笔记
来源:互联网 发布:轱辘软件 编辑:程序博客网 时间:2024/06/15 18:34
写前端的小伙伴们都知道,js种eval()方法是用来把一段字符串转换成js代码并执行。但是eval的执行效率非常差,并且容易造成作用于混乱。所以非常不提倡使用eval,甚至要避免使用。
但是在某些情况下这个功能却是必不可少的。同在csdn上 有一篇 js替代eval方法,作者写的非常好。下面就拿代码来学习一下。
第一种方法:
function evil(str) { var fn = Function; return new fn('return ' + str)();}
/*
第一种方法传入的内容需要包含在对象中。不然会报错。
比如
传入一个字符串 "var a = 1;"
就一定会报错。因为 其内容需要return。不然传入的对象的作用于怎么暴露呢。不过这种方法的思路非常好,而且其中包含着大量的只是点。值得深入研究下去*/第二种方法:
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);}
/*
第二种方法的思路简洁明了,就是在页面上创建script标签,然后再移除掉。
这种方法传入任何正确的代码都会被执行。但是操作dom结构的方法还不是首选。
*/
0 0
- js eval替代方法学习笔记
- Javascript替代eval方法
- js学习--eval()方法
- js学习(一)eval()方法
- js中的Eval方法
- python学习笔记-eval
- Js 代替eval的方法
- 【Python学习笔记】pip安装失败的替代方法&解决方案
- JavaScript 中替代eval
- eval及其替代 matlab20170313
- eval()的替代写法
- 【Javascript 学习笔记】eval 函数
- [tensorflow学习笔记]tensor.eval
- js中执行脚本字符串方法:window.eval()/eval()
- JSON相关的学习笔记,json的表示方法,eval(),parse(),stringify()方法的使用
- [学习笔记]JS四舍五入方法
- 关于js里eval()方法的使用
- 关于js eval 的解密方法
- 排序算法之基数排序
- Failed to execute goal org.apache.maven.plugins
- MATLAB下的共轭转置与非共轭转置
- TextView多文本折叠/展开效果
- Spring的@PostConstruct与ApplicationContextAware冲突问题
- js eval替代方法学习笔记
- linux open files
- python——类——封装 继承 多态
- apk签名的步骤(使用studio签名apk)
- java 对象生命周期
- 创建型模式之简单工场模式
- 学习廖雪峰python之sorted()
- 排序算法之堆排序
- python——类——实例对象