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

一、eval是基本使用规则

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

•2 eval(string)

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

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

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

二、eval的错误使用方法

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

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

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

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

三、使用例子

rush:js;"> <Meta charset="UTF-8"> eval
<script type="text/javascript"&gt; 

   //正确输入 
    var x = 10; 
    document.write(eval(10*x + 10)) //表达式 <a href="https://www.jb51.cc/tag/shuchu/" target="_blank" class="keywords">输出</a>110 
    document.write("<br />"); 
    document.write(eval("10 == x")); //表达式 <a href="https://www.jb51.cc/tag/shuchu/" target="_blank" class="keywords">输出</a>true 
    document.write("<br />"); 
    eval(document.write(2+5*x));  //执行语句 <a href="https://www.jb51.cc/tag/shuchu/" target="_blank" class="keywords">输出</a>52 

  //非正常输入 
   try{ 
    var y = 8; 
    //表达式 
    document.write(eval("9+6*x"+"100")); //如果参数中没有合法的表达式和语句,则抛出 <a href="https://www.jb51.cc/tag/Syntax/" target="_blank" class="keywords">Syntax</a>Error 异常。 
    document.write("<br />");  
    eval('++++2');   //编译失败ReferenceError异常 
    eval(document.write(2+2)); //编译成功 
    document.write(eval());  //返回undefined 

    var my = eval();       //如果试图覆盖 eval <a href="https://www.jb51.cc/tag/shuxing/" target="_blank" class="keywords">属性</a>或把 eval() <a href="https://www.jb51.cc/tag/fangfa/" target="_blank" class="keywords">方法</a>赋予另<a href="https://www.jb51.cc/tag/yige/" target="_blank" class="keywords">一个</a><a href="https://www.jb51.cc/tag/shuxing/" target="_blank" class="keywords">属性</a>, 
    document.write(my(1+2));  //并通过该<a href="https://www.jb51.cc/tag/shuxing/" target="_blank" class="keywords">属性</a><a href="https://www.jb51.cc/tag/diaoyong/" target="_blank" class="keywords">调用</a>它,则 ECMAScript 实现允许抛出<a href="https://www.jb51.cc/tag/yige/" target="_blank" class="keywords">一个</a> EvalError 异常。 

    } 

   catch(exception) { 
    alert(exception); 
   } 

</script> 

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

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

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...