你的位置:首页 > Java教程

[Java教程]JS eval()函数的一些见解

一、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>

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