一,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>
我自己查了好多资料,也还很模糊,希望了解的大神能指点指点!
来源: http://www.cnblogs.com/dengting/p/5768715.html