eval() 函数可计算某个字符串,并执行其中的的 JavaScript 代码。javascript
eval(string)
参数 | 描述 |
---|---|
string | 必需。要计算的字符串,其中含有要计算的 JavaScript 表达式或要执行的语句。 |
经过计算 string 获得的值(若是有的话)。java
该方法只接受原始字符串做为参数,若是 string 参数不是原始字符串,那么该方法将不做任何改变地返回。所以请不要为 eval() 函数传递 String 对象来做为参数。express
若是试图覆盖 eval 属性或把 eval() 方法赋予另外一个属性,并经过该属性调用它,则 ECMAScript 实现容许抛出一个 EvalError 异常。函数
若是参数中没有合法的表达式和语句,则抛出 SyntaxError 异常。spa
若是非法调用 eval(),则抛出 EvalError 异常。对象
若是传递给 eval() 的 Javascript 代码生成了一个异常,eval() 将把该异常传递给调用者。ip
提示:虽然 eval() 的功能很是强大,但在实际使用中用到它的状况并很少。字符串
在本例中,咱们将在几个字符串上运用 eval(),并看看返回的结果:string
<script type="text/javascript"> eval("x=10;y=20;document.write(x*y)") document.write(eval("2+2")) var x=10 document.write(eval(x+17)) </script>
输出:it
200 4 27
看一下在其余状况中,eval() 返回的结果:
eval("2+3") // 返回 5 var myeval = eval; // 可能会抛出 EvalError 异常 myeval("2+3"); // 可能会抛出 EvalError 异常
可使用下面这段代码来检测 eval() 的参数是否合法:
try { alert("Result:" + eval(prompt("Enter an expression:",""))); } catch(exception) { alert(exception); }
关于catch:
try {
return a/b;
}
catch (Exception e) {
//当b为0的时候这里能够打印提示:除数不能为0
}
异常的通俗原理在于,当出现某些错误的时候,你又不想直接把程序直接关闭,那么就在你捕捉到的异常里进行处理,这样程序能够继续运行,而不是立刻关闭.
上面你返回a/b,正常状况下b不是0,那么就直接返回,不会执行catch里的东西,可是当你的b是0,就没法返回数据,那么异常了,异常而后被catch捕捉到,就执行catch里的语句,而后继续运行下面的代码.