JS中的eval 为什么加括号

 更新时间:2016年04月13日 17:28:24   作者:刘江龙  
JS中的eval 为什么加括号呢?相信很多朋友都不是很清楚吧,下面小编通过本教程帮助大家学习JS中的eval 为什么加括号,感兴趣的朋友了解下吧

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中sort()的用法实例分析

    javascript中sort()的用法实例分析

    这篇文章主要介绍了javascript中sort()的用法,实例分析了sort()的功能、定义及使用技巧,需要的朋友可以参考下
    2015-01-01
  • angular之ng-template模板加载

    angular之ng-template模板加载

    本篇文章主要介绍了angular之ng-template模板加载,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-11-11
  • 探索Javascript中this的奥秘

    探索Javascript中this的奥秘

    本文介绍了JavaScript中的this关键字在各种情况下的含义,实例都很简单,这样更能有助于加深理解。虽然这只是js中一个很小的概念,但借此我们可以了解js中函数的执行环境,充分掌握this的相关知识有助于我们在编写面向对象的JavaScript程序时能够游刃有余。
    2016-12-12
  • fullpage.js全屏滚动的具体使用方法

    fullpage.js全屏滚动的具体使用方法

    fullPage.js 是一个基于 jQuery 的插件,它能够很方便、很轻松的制作出全屏网站,本文主要介绍了fullpage.js全屏滚动的具体使用方法,感兴趣的可以了解一下
    2021-09-09
  • 纯js实现无限空间大小的本地存储

    纯js实现无限空间大小的本地存储

    这篇文章主要介绍了纯js实现无限空间大小的本地存储的功能,源码和demo都放给大家,本文着重说下实现的原理,具体的实践扩展小伙伴们自由发挥吧。
    2015-06-06
  • 微信小程序防止多次点击跳转和防止表单组件输入内容多次验证功能(函数防抖)

    微信小程序防止多次点击跳转和防止表单组件输入内容多次验证功能(函数防抖)

    这篇文章主要介绍了微信小程序防止多次点击跳转和防止表单组件输入内容多次验证功能(函数防抖),需要的朋友可以参考下
    2019-09-09
  • json对象转为字符串,当做参数传递时加密解密的实现方法

    json对象转为字符串,当做参数传递时加密解密的实现方法

    下面小编就为大家带来一篇json对象转为字符串,当做参数传递时加密解密的实现方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-06-06
  • javascript currentTarget对象介绍

    javascript currentTarget对象介绍

    javascript currentTarget对象介绍...
    2007-10-10
  • JavaScript使用canvas实现手写签名功能

    JavaScript使用canvas实现手写签名功能

    最近遇到一个h5手写签名的需求,按理说这种功能网上随便一搜一大把现成的源码和组件,但是像这种比较经典又很简单的功能,还是要弄清楚到底怎么实现的,所以接下来本文就给大家介绍一下如何用canvas实现手写签名功能
    2023-08-08
  • JSON.parse损坏大数字的原因解析及解决方案

    JSON.parse损坏大数字的原因解析及解决方案

    从10多年前JSON在线编辑器的早期开始,用户经常反映编辑器有时会破坏他们JSON文档中的大数字的问题,这篇文章主要介绍了为什么JSON.parse会损坏大数字,如何解决这个问题,需要的朋友可以参考下
    2022-10-10

最新评论