对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 相关文章推荐
HTML Dom与Css控制方法
Oct 25 Javascript
JS分页效果示例
Oct 11 Javascript
JS刷新当前页面的几种方法总结
Dec 24 Javascript
js检测浏览器版本、核心、是否移动端示例
Apr 24 Javascript
jQuery使用getJSON方法获取json数据完整示例
Sep 13 Javascript
javaScript 事件绑定、事件冒泡、事件捕获和事件执行顺序整理总结
Oct 10 Javascript
JavaScript实现经典排序算法之插入排序
Dec 28 Javascript
Vue集成Iframe页面的方法示例
Dec 12 Javascript
react配合antd组件实现的管理系统示例代码
Apr 24 Javascript
Vue入门之数量加减运算操作示例
Dec 11 Javascript
react-router4按需加载(踩坑填坑)
Jan 06 Javascript
微信小程序轮播图swiper代码详解
Dec 01 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
php动态生成函数示例
2014/03/21 PHP
浅谈PHP调用Webservice思路及源码分享
2014/06/04 PHP
PHP实现上传文件并存进数据库的方法
2015/07/16 PHP
javascript 写类方式之二
2009/07/05 Javascript
Knockoutjs快速入门(经典)
2012/12/24 Javascript
JavaScript实现点击按钮后变灰避免多次重复提交
2013/07/15 Javascript
js自动生成对象的属性示例代码
2013/10/28 Javascript
jquery JSON的解析方式示例介绍
2014/07/27 Javascript
jquery append 动态添加的元素事件on 不起作用的解决方案
2015/07/30 Javascript
谈谈jQuery Ajax用法详解
2015/11/27 Javascript
jQuery EasyUI tree增加搜索功能的实现方法
2017/04/27 jQuery
requirejs + vue 项目搭建详解
2017/06/16 Javascript
Angular 4根据组件名称动态创建出组件的方法教程
2017/11/01 Javascript
解决element-ui中下拉菜单子选项click事件不触发的问题
2018/08/22 Javascript
ES6基础之默认参数值
2019/02/21 Javascript
python任务调度实例分析
2015/05/19 Python
使用paramiko远程执行命令、下发文件的实例
2017/10/01 Python
Python中GIL的使用详解
2018/10/03 Python
python读取目录下最新的文件夹方法
2018/12/24 Python
python实现桌面托盘气泡提示
2019/07/29 Python
css3动画事件—webkitAnimationEnd与计时器time事件
2013/01/31 HTML / CSS
意大利在线眼镜精品店:Ottica Lipari
2019/11/11 全球购物
保加利亚手表、香水、化妆品和珠宝购物网站:Brasty.bg
2020/04/22 全球购物
音乐表演专业毕业生求职信
2013/10/14 职场文书
车间工艺员岗位职责
2013/12/09 职场文书
业绩考核岗位职责
2014/02/01 职场文书
小学美术教学反思
2014/02/01 职场文书
优秀实习生感言
2014/03/01 职场文书
树转促学习心得体会
2014/09/10 职场文书
庆祝国庆节演讲稿2014
2014/09/19 职场文书
小学运动会宣传稿
2015/07/23 职场文书
小学安全教育主题班会
2015/08/12 职场文书
Redis6.0搭建集群Redis-cluster的方法
2021/05/08 Redis
Promise面试题详解之控制并发
2021/05/14 面试题
Nginx配置Https安全认证的实现
2021/05/26 Servers
Redis 异步机制
2022/05/15 Redis