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 相关文章推荐
jQuery解析XML文件同时动态增加js文件的方法
Jun 01 Javascript
jQuery实用技巧必备(下)
Nov 03 Javascript
jQuery中deferred对象使用方法详解
Jul 14 Javascript
ajax实现动态下拉框示例
Jan 10 Javascript
BootStrap 图片样式、辅助类样式和CSS组件的实例详解
Jan 20 Javascript
JS中setTimeout和setInterval的最大延时值详解
Feb 13 Javascript
详解Weex基于Vue2.0开发模板搭建
Mar 20 Javascript
整理关于Bootstrap过渡动画的慕课笔记
Mar 29 Javascript
微信小程序使用toast消息对话框提示用户忘记输入用户名或密码功能【附源码下载】
Dec 09 Javascript
详解vue+axios给开发环境和生产环境配置不同的接口地址
Aug 16 Javascript
js实现图片无缝循环轮播
Oct 28 Javascript
echarts实现获取datazoom的起始值(包括x轴和y轴)
Jul 20 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与XML、XSLT、Mysql的结合运用实现代码
2009/11/19 PHP
PHP与Ajax相结合实现登录验证小Demo
2016/03/16 PHP
学习PHP session的传递方式
2016/06/15 PHP
?牟┛途W扣了一??效果出?? target=
2007/05/27 Javascript
JavaScript中使用Substring删除字符串最后一个字符
2013/11/03 Javascript
带左右箭头图片轮播的JS代码
2013/12/18 Javascript
nodejs事件的监听与触发的理解分析
2015/02/12 NodeJs
javascript日期处理函数,性能优化批处理
2015/09/06 Javascript
javascript中checkbox使用方法简单实例演示
2015/11/17 Javascript
JS修改地址栏参数实例代码
2016/06/14 Javascript
js学习阶段总结(必看篇)
2016/06/16 Javascript
JS工作中的小贴士之”闭包“与事件委托的”阻止冒泡“
2016/06/16 Javascript
基于Bootstrap实现下拉菜单项和表单导航条(两个菜单项,一个下拉菜单和登录表单导航条)
2016/07/22 Javascript
浅谈NodeJs之数据库异常处理
2017/10/25 NodeJs
Node登录权限验证token验证实现的方法示例
2020/05/25 Javascript
vue radio单选框,获取当前项(每一项)的value值操作
2020/09/10 Javascript
[01:24:09]Ti4 冒泡赛第二轮DK vs C9 1
2014/07/14 DOTA
利用Python画ROC曲线和AUC值计算
2016/09/19 Python
python format 格式化输出方法
2018/07/16 Python
通过PYTHON来实现图像分割详解
2019/06/26 Python
Python分割训练集和测试集的方法示例
2019/09/19 Python
Django后端发送小程序微信模板消息示例(服务通知)
2019/12/17 Python
python-OpenCV 实现将数组转换成灰度图和彩图
2020/01/09 Python
Python collections模块的使用方法
2020/10/09 Python
关于Python不换行输出和不换行输出end=““不显示的问题(亲测已解决)
2020/10/27 Python
科级干部考察材料
2014/02/15 职场文书
家长对孩子的评语
2014/04/18 职场文书
煤矿开采专业求职信
2014/07/08 职场文书
公司委托书格式
2014/08/01 职场文书
委托证明范本
2014/11/25 职场文书
2014年测量员工作总结
2014/12/12 职场文书
求职信格式范文
2015/03/19 职场文书
党组织结对共建协议书
2016/03/23 职场文书
Django Paginator分页器的使用示例
2021/06/23 Python
go select编译期的优化处理逻辑使用场景分析
2021/06/28 Golang
Python机器学习之决策树和随机森林
2021/07/15 Javascript