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 相关文章推荐
JS location几个方法小姐
Jul 09 Javascript
javascript权威指南 学习笔记之javascript数据类型
Sep 24 Javascript
巧用js提交表单轻松解决一个页面有多个提交按钮
Nov 17 Javascript
JQuery异步加载无限下拉框级联功能实现示例
Feb 19 Javascript
解决bootstrap中modal遇到Esc键无法关闭页面
Mar 09 Javascript
JS组件Bootstrap实现下拉菜单效果代码
Apr 26 Javascript
Vue.js第四天学习笔记
Dec 02 Javascript
从零学习node.js之mysql数据库的操作(五)
Feb 24 Javascript
动态加载权限管理模块中的Vue组件
Jan 16 Javascript
解决vue中对象属性改变视图不更新的问题
Feb 23 Javascript
clipboard在vue中的使用的方法示例
Oct 19 Javascript
使用 webpack 插件自动生成 vue 路由文件的方法
Aug 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中feof()函数实例测试
2014/08/23 PHP
WordPress中缩略图的使用以及相关技巧
2015/11/24 PHP
获取body标签的两种方法
2011/10/13 Javascript
js 控制图片大小核心讲解
2013/10/09 Javascript
自定义的一个简单时尚js下拉选择框
2013/11/20 Javascript
JavaScript中创建对象和继承示例解读
2014/02/12 Javascript
jQuery中nextUntil()方法用法实例
2015/01/07 Javascript
jQuery+PHP星级评分实现方法
2015/10/02 Javascript
jQuery表格插件datatables用法详解
2020/11/23 Javascript
jQuery简单动画变换效果实例分析
2016/07/04 Javascript
jQuery ready()和onload的加载耗时分析
2016/09/08 Javascript
JavaScript for循环 if判断语句(学习笔记)
2017/10/11 Javascript
react.js组件实现拖拽复制和可排序的示例代码
2018/08/20 Javascript
关于JavaScript中高阶函数的魅力详解
2018/09/07 Javascript
python+mongodb数据抓取详细介绍
2017/10/25 Python
对python3 sort sorted 函数的应用详解
2019/06/27 Python
Python学习笔记之集合的概念和简单使用示例
2019/08/22 Python
python实现输入三角形边长自动作图求面积案例
2020/04/12 Python
浅谈tensorflow使用张量时的一些注意点tf.concat,tf.reshape,tf.stack
2020/06/23 Python
详解CSS3 弹性布局快速入门
2019/06/06 HTML / CSS
美国领先的在线旅游网站:Orbitz
2018/11/05 全球购物
牧马人澳大利亚官网:Wrangler澳大利亚
2019/10/08 全球购物
Shopbop中文官网:美国亚马逊旗下时尚购物网站
2020/12/15 全球购物
亲子读书活动方案
2014/02/22 职场文书
有关环保的标语
2014/06/13 职场文书
驾驶员安全责任书
2014/07/22 职场文书
党员演讲稿
2014/09/04 职场文书
公司离职证明范本(5篇)
2014/09/17 职场文书
离婚协议书范本(通用篇)
2014/11/30 职场文书
英文感谢信范文
2015/01/21 职场文书
年度考核登记表个人总结
2015/03/06 职场文书
2015年信访工作总结
2015/04/07 职场文书
有趣的二维码:使用MyQR和qrcode来制作二维码
2021/05/10 Python
Python OpenCV实现传统图片格式与base64转换
2021/06/13 Python
JavaWeb 入门篇:创建Web项目,Idea配置tomcat
2021/07/16 Java/Android
jdbc中自带MySQL 连接池实践示例
2022/07/23 MySQL