再探JS---eval函数
eval函数
“魔鬼”函数?
如果你现在的代码中使用了eval(),记住该咒语“eval()是魔鬼”。此方法接受任意的字符串,并当作JavaScript代码来处理。当有问题的代码是事先知道的(不是运行时确定的),没有理由使用eval()。eval 用的好不好 其实和使用者的水平有关系
作用域
在eval()中创建的任何变量或函数都不会被提升,因为在解析代码的时候,它们被包含在一个字符串中;它们只在eval()执行的时候创建
为什么不提倡使用eval函数?
- 可读性非常差
- 不好再做优化和编译
- 会轻微增加性能消耗
- 不安全,比如 eval input 的值
直接引用 or 间接引用
var a = 1;
(function(){var a = 2;eval("console.log(a)");//输出为2(0, eval)("console.log(a)");//输出是1
})()
间接引用eval,语句会被优化至全局作用域
详见stackoverflow
一些奇妙的用途
var arr = [1,2,3,4,5]
function sum(arr) {return eval(arr.join('+'));
}
//输出15
for (var loop = 1; loop < 10; loop++) {eval('document.getElementById("div"+loop).innerHTML="123"');
}
但很多时候,我们仍能找到其他更高效的的方法替代eval
var obj={name:'lxl',age:20
}//eval
var property = "name";
alert(eval("obj." + property));// 更好的
var property = "name";
alert(obj[property]); //es6解构赋值
再探JS---eval函数相关推荐
- js eval()函数
JS eval()函数 转自:http://www.86822.com/code/zw.asp?id=614 eval()函数 JavaScript有许多小窍门来使编程更加容易. ...
- js html字符串转对象,js eval函数使用,js对象和字符串互转.
js eval函数使用,js对象和字符串互转. JavaScript eval() 函数 JavaScript 全局函数 定义和用法 eval() 函数计算 JavaScript 字符串,并把它作为 ...
- JSONObject JSONArray各种用法以及js eval()函数与JSON.parse的区
2019独角兽企业重金招聘Python工程师标准>>> 一.在后台使用JSONObject对象,并将从数据库中取出来的数据直接使用 JSONObject的put方法放进去,再将这个J ...
- JS eval函数作用
首先来个最简单的理解 eval可以将字符串生成语句执行,和SQL的exec()类似. eval的使用场合是什么呢?有时候我们预先不知道要执行什么语句,只有当条件和参数给时才知道 ...
- C++ 重载函数调用运算符 | 再探lambda,函数对象,可调用对象
文章目录 重载函数调用运算符 lambda lambda等价于函数对象 lambda等价于类 标准库函数对象 可调用对象与function 可调用对象 function 函数重载与function 重 ...
- 【Vue.js 牛刀小试】:第九章 - 组件基础再探(data、props)
系列目录地址 一.基础知识概览 第一章 - 一些基础概念(posted at 2018-10-31) 第二章 - 常见的指令的使用(posted at 2018-11-01) 第三章 - 事件修饰符的 ...
- js的eval函数解析后台返回的json数据时为什加上圆括号eval((+data+)),而HTML页面定义的数据不用...
一,情况如下,这是成功代码: $(function () {$.ajax({url: "Demo.aspx",type: "post",data: { Id: ...
- c++ _int64转字符串_C语言 仿JS的eval函数 解析字符串
C语言 利用后缀表达式解析字符串(符合c98标准,很容易移植到计算器上) 最近用98标准的C语言写了个解析字符串,类似于JavaScript中的eval函数,感觉挺实用(移植到了计算器上,可以画F(X ...
- C#中实现js中的eval函数功能
在js中有eval函数,比如 eval('3+3*4')结果为15: 但C#中想要完成这样的功能,却没有相应的函数,可以用sql语句的方式实现,比如,执行 select 3+3*4 的方式. 可以先构 ...
- C++ 类的知识 | 构造函数再探、匿名对象、友元函数、内部类、类的const成员、类的static成员
文章目录 构造函数再探 以下代码共调用多少次拷贝构造函数 委托构造函数 概念 形式 匿名对象 友元 友元的声明 友元类 令成员函数作为友元 函数重载和友元 注意 内部类 特性 类的const成员 可变 ...
最新文章
- Redis 的持久化方案
- Trilogy公司的笔试题:根据指定规则用最少的步骤将数转为1
- matlab 双音多频 接收端检测到的号码,信号语音论文,关于基于MATLAB的双音多频信号识别相关参考文献资料-免费论文范文...
- 第二个情人节表白网页源码
- 如何批量删除Excel工作簿中vba代码
- Linux编译websocketpp解决方案
- cad中tk什么意思_cad绘图tk命令技巧
- 宇视摄像头IP地址修改工具
- 聚类分析原理及R语言实现过程
- Tomcat 漏洞修复建议
- 基于FPGA的乒乓ram控制系统设计
- 红黑树——简单明了的学生思路
- 近期java面试总结
- iOS - 一份参考简历,请注意查收!
- uniapp 小程序用高德地图sdk
- 愿家乡的教育走出一片新天地!
- java程序日志管理
- 续流二极管的作用及选型
- AI测温人脸门禁防疫布控解决方案:为构建城市防疫战线提供有力支持 | 百万人学AI评选
- Python Spider: 爬取项目外包网站TaskCity