对js eval()函数的一些见解


Posted in Javascript onAugust 15, 2016

一、eval是基本使用规则

•1 eval() 函数可计算某个字符串,并执行其中的的 JavaScript 代码。

•2 eval(string)

•3 string必需。要计算的字符串,其中含有要计算的 JavaScript 表达式或要执行的语句。

•4 eval()只有一个参数。

•5 eval使用比较不安全,忘慎重使用

二、eval的错误使用方法

•1 如果传入的参数不是字符串,它直接返回这个函数。

•2 如果参数是字符串,它会把字符串当成JavaScript代码进行编译,如果编译失败者抛出一个语法错误异常。

•3 如果编译成功,则开始执行这一段代码,并返回字符串中的最后一个表达式或语句的值,

•4 如果最后一个表达式或语句没有值,则最终返回undefined。

三、使用例子

<!DOCTYPE html> 
<html> 
  <head> 
    <meta charset="UTF-8"> 
    <title>eval</title> 
  </head> 
  <body>     
     
    <script type="text/javascript"> 
 
       //正确输入 
        var x = 10; 
        document.write(eval(10*x + 10)) //表达式 输出110 
        document.write("<br />"); 
        document.write(eval("10 == x")); //表达式 输出true 
        document.write("<br />"); 
        eval(document.write(2+5*x));  //执行语句 输出52 
  
      //非正常输入 
       try{ 
        var y = 8; 
        //表达式 
        document.write(eval("9+6*x"+"100")); //如果参数中没有合法的表达式和语句,则抛出 SyntaxError 异常。 
        document.write("<br />");  
        eval('++++2');   //编译失败ReferenceError异常 
        eval(document.write(2+2)); //编译成功 
        document.write(eval());  //返回undefined 
 
        var my = eval();       //如果试图覆盖 eval 属性或把 eval() 方法赋予另一个属性, 
        document.write(my(1+2));  //并通过该属性调用它,则 ECMAScript 实现允许抛出一个 EvalError 异常。 
         
        } 
   
       catch(exception) { 
        alert(exception); 
       } 
        
    </script> 
     
  </body> 
</html>

我自己查了好多资料,也还很模糊,希望了解的大神能指点指点!

以上这篇对js eval()函数的一些见解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Jquery 复选框取值兼容FF和IE8(测试有效)
Oct 29 Javascript
extjs_02_grid显示本地数据、显示跨域数据
Jun 23 Javascript
js实现根据身份证号自动生成出生日期
Dec 15 Javascript
Extjs实现下拉菜单效果
Apr 01 Javascript
JavaScript预解析及相关技巧分析
Apr 21 Javascript
详解使用vuex进行菜单管理
Dec 21 Javascript
利用d3.js力导布局绘制资源拓扑图实例教程
Jan 08 Javascript
Jquery Datatables的使用详解
Jan 30 jQuery
基于PHP pthreads实现多线程代码实例
Jun 24 Javascript
OpenLayers3实现鼠标移动显示坐标
Sep 25 Javascript
JavaScript控制台的更多功能
Apr 28 Javascript
js作用域及作用域链工作引擎
Jul 07 Javascript
详细解读Jquery各Ajax函数($.get(),$.post(),$.ajax(),$.getJSON())
Aug 15 #Javascript
js HTML5 Canvas绘制转盘抽奖
Sep 13 #Javascript
jQuery学习笔记之回调函数
Aug 15 #Javascript
纯css下拉菜单 无需js
Aug 15 #Javascript
浅谈JavaScript 中有关时间对象的方法
Aug 15 #Javascript
js轮盘抽奖实例分析
Apr 17 #Javascript
JavaScript 中有关数组对象的方法(详解)
Aug 15 #Javascript
You might like
提问的智慧(2)
2006/10/09 PHP
spl_autoload_register与autoload的区别详解
2013/06/03 PHP
基于PHP服务端图片生成缩略图的方法详解
2013/06/20 PHP
深入PHP许愿墙模块功能分析
2013/06/25 PHP
php设计模式之单例、多例设计模式的应用分析
2013/06/30 PHP
PHP利用REFERER根居访问来地址进行页面跳转
2013/09/28 PHP
用PHP实现弹出消息提示框的两种方法
2013/12/17 PHP
PHP将身份证正反面两张照片合成一张图片的代码
2017/04/08 PHP
Laravel框架定时任务2种实现方式示例
2018/12/08 PHP
PHP实现的用户注册表单验证功能简单示例
2019/02/25 PHP
js css样式操作代码(批量操作)
2009/10/09 Javascript
JavaScript 学习笔记(九)call和apply方法
2010/01/11 Javascript
JS获取并操作iframe中元素的方法
2013/03/21 Javascript
ExtJS DOM元素操作经验分享
2013/08/28 Javascript
jquery和js实现对div的隐藏和显示方法
2014/09/26 Javascript
Javascript writable特性介绍
2015/02/27 Javascript
从零学习node.js之express入门(六)
2017/02/25 Javascript
JavaScript数据结构之二叉树的删除算法示例
2017/04/13 Javascript
jquery一键控制checkbox全选、反选或全不选
2017/10/16 jQuery
vscode中vue-cli项目es-lint的配置方法
2018/07/30 Javascript
nodejs中方法和模块用法示例
2018/12/24 NodeJs
移动端 Vue+Vant 的Uploader 实现上传、压缩、旋转图片功能
2019/06/10 Javascript
关于vue3默认把所有onSomething当作v-on事件绑定的思考
2020/05/15 Javascript
[43:53]OG vs EG 2019国际邀请赛淘汰赛 胜者组 BO3 第三场 8.22
2019/09/05 DOTA
python 实现归并排序算法
2012/06/05 Python
使用python绘制常用的图表
2016/08/27 Python
Python数据结构之顺序表的实现代码示例
2017/11/15 Python
使用 Python 写一个简易的抽奖程序
2019/12/08 Python
Python如何使用argparse模块处理命令行参数
2019/12/11 Python
html5 input元素新特性_动力节点Java学院整理
2017/07/06 HTML / CSS
大学生学习生活的自我评价
2013/11/01 职场文书
军校本科大学生自我评价
2014/01/14 职场文书
土建施工员岗位职责
2014/07/16 职场文书
大学生学年个人总结
2015/02/15 职场文书
Opencv实现二维直方图的计算及绘制
2021/07/21 Python
Python语言内置数据类型
2022/02/24 Python