zoukankan      html  css  js  c++  java
  • JS eval()函数的一些见解

    一、eval是基本使用规则

    • 1 eval() 函数可计算某个字符串,并执行其中的的 JavaScript 代码。
    • 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>
    

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

  • 相关阅读:
    python设置环境变量(临时和永久)
    python items和setdefault函数
    Django学习day3——Django的简单使用
    DOS打印目录树到文件
    Django学习day2——Django安装与环境配置
    Django学习day1——Django的简单介绍
    sets,relations,and fuctions
    lecture 1
    number theory
    lecture 9.18
  • 原文地址:https://www.cnblogs.com/dengting/p/5768715.html
Copyright © 2011-2022 走看看