JS中的eval 为什么加括号


Posted in Javascript onApril 13, 2016

eval简介

---eval在ECMA定义中是全局对象原型的方法;

---eval接受的参数是字符串格式的js代码, 将由执行引擎(记得'高级程序设计'还是哪说过, 此时新建一个执行引擎)执行这段字符串, 然后返回结果到eval调用的位置.

<!DOCTYPE html>
<html>
<head>
<title>eval学习</title>
<script type="text/javascript">
/*
eval("表达式");执行表达式语句
eval("("+javascript类型+")");转为javascript对象
*/
var jsonObj={"name":"ljl","data":123};//json,是javascript的对象
var jsonString='{"name":"ljl","data":123}';//javascript的string类型,字符串内容符合json格式的样式
var objType=eval("("+jsonString+")");//通过eval函数将json字符转为javascript对象
alert( typeof jsonString);//string
alert( typeof objType);//obj
alert(eval(123));//123
alert(typeof eval("("+123+")"));//number
var x=2;
var y=eval('x+1');//执行 2+1 表达式
alert('y= '+y);//3
</script>
</head> 
<body>
</body>
</html>

补充:总结

eval是js动态特性之一, 通过它直接执行js程序并返回结果, 常见的使用就是还原json数据为js对象;

但是由于其能在运行时动态改变上下文对象, 因此带来了注入攻击的风险;

使用时, 注意eval对字符串的语法认识是如何的, 常见的就是'大括号'问题

Javascript 相关文章推荐
javascript add event remove event
Apr 07 Javascript
由document.body和document.documentElement想到的
Apr 13 Javascript
JavaScript 判断浏览器是否支持SVG的代码
Mar 21 Javascript
window.onresize 多次触发的解决方法
Nov 08 Javascript
JS获取网页属性包括宽、高等等
Apr 03 Javascript
谈谈js中的prototype及prototype属性解释和常用方法
Nov 25 Javascript
JavaScript获取图片像素颜色并转换为box-shadow显示
Mar 11 Javascript
js正则表达式惰性匹配和贪婪匹配用法分析
Dec 26 Javascript
JavaScript中利用Array filter() 方法压缩稀疏数组
Feb 24 Javascript
vue左侧菜单,树形图递归实现代码
Aug 24 Javascript
ES6入门教程之Array.from()方法
Mar 23 Javascript
ajax请求前端跨域问题原因及解决方案
Oct 16 Javascript
jQuery操作属性和样式详解
Apr 13 #Javascript
jquery跟随屏幕滚动效果的实现代码
Apr 13 #Javascript
两种方法解决javascript url post 特殊字符转义 + &amp; #
Apr 13 #Javascript
Angular.js与Bootstrap相结合实现手风琴菜单代码
Apr 13 #Javascript
JQuery 两种方法解决刚创建的元素遍历不到的问题
Apr 13 #Javascript
更高效的使用JQuery 这里总结了8个小技巧
Apr 13 #Javascript
深入理解关于javascript中apply()和call()方法的区别
Apr 12 #Javascript
You might like
收集的二十一个实用便利的PHP函数代码
2010/04/22 PHP
简单的php新闻发布系统教程
2014/05/09 PHP
js对象之JS入门之Array对象操作小结
2011/01/09 Javascript
各浏览器对document.getElementById等方法的实现差异解析
2013/12/05 Javascript
使用jQuery简单实现模拟浏览器搜索功能
2014/12/21 Javascript
Node.js实现Excel转JSON
2015/04/24 Javascript
Bootstrap打造一个左侧折叠菜单的系统模板(二)
2016/05/17 Javascript
js注入 黑客之路必备!
2016/09/14 Javascript
javascript使用递归算法求两个数字组合功能示例
2017/01/03 Javascript
使用bat打开多个cmd窗口执行gulp、node
2017/02/17 Javascript
详解JavaScript调用栈、尾递归和手动优化
2017/06/03 Javascript
vue.js实现只弹一次弹框
2018/01/29 Javascript
微信二次分享报错invalid signature问题及解决方法
2019/04/01 Javascript
记录vue项目中遇到的一点小问题
2019/05/14 Javascript
一文快速了解JQuery中的AJAX
2019/05/31 jQuery
在vue中使用Base64转码的案例
2020/08/07 Javascript
[03:09]显微镜下的DOTA2第一期——带你走进华丽的DOTA2世界
2014/06/20 DOTA
[04:16]DOTA2全国高校联赛16强抽签
2018/05/02 DOTA
[01:36:17]DOTA2-DPC中国联赛 正赛 Ehome vs iG BO3 第一场 1月31日
2021/03/11 DOTA
使用python获取csv文本的某行或某列数据的实例
2018/04/03 Python
Python快速查找list中相同部分的方法
2018/06/27 Python
python3 读取Excel表格中的数据
2018/10/16 Python
Python实现打印实心和空心菱形
2019/11/23 Python
Scrapy框架基本命令与settings.py设置
2020/02/06 Python
Python中os模块功能与用法详解
2020/02/26 Python
使用Python爬虫爬取小红书完完整整的全过程
2021/01/19 Python
python+opencv3.4.0 实现HOG+SVM行人检测的示例代码
2021/01/28 Python
旅游管理实习自我鉴定
2013/09/29 职场文书
思想政治自我鉴定
2013/10/06 职场文书
中学生爱国演讲稿
2013/12/31 职场文书
国际商贸专业自荐信
2014/06/09 职场文书
医学生求职信
2014/07/01 职场文书
升国旗演讲稿
2014/09/05 职场文书
今日说法观后感
2015/06/08 职场文书
2016大学生暑期三下乡心得体会
2016/01/23 职场文书
导游词之蜀山胜景瓦屋山
2019/11/29 职场文书