js eval函数使用方法介绍
比如说你现在要运行一个可变的方法eval(\"alert(\'abc\')\");//运行alert函数
eval 方法
检查 JScript 代码并执行.
eval(codeString)
必选项 codestring 参数是包含有效 JScript 代码的字符串值。这个字符串将由 JScript 分析器进行分析和执行。
说明
eval 函数允许 JScript 源代码的动态执行。例如,下面的代码创建了一个包含 Date 对象的新变量 mydate :
eval("var mydate = new Date();");
传递给 eval 方法的代码执行时的上下文和调用 eval 方法的一样
例
代码如下 | 复制代码 |
function name1(){……} |
举个小例子:
代码如下 | 复制代码 |
//执行表达式 var the_unevaled_answer = "2 + 3"; var the_evaled_answer = eval("2 + 3"); alert("the un-evaled answer is " + the_unevaled_answer + " and the evaled answer is " + the_evaled_answer); |
如果你运行这段eval程序, 你将会看到在JavaScript里字符串"2 + 3"实际上被执行了。
所以当你把the_evaled_answer的值设成 eval("2 + 3")时, JavaScript将会明白并把2和3的和返回给the_evaled_answer。
需要特别注意的是对象声明语法“{}”并不能返回一个值,需要用括号括起来才会返回值,简单示例如下:
代码如下 | 复制代码 |
1.)str = "alert('hello,cssrain!')"; 2.) var kc = "{name:'cssrain',email:'cssrain@gmail.com'}"; 3.)var the_unevaled_answer = "2 + 3"; //输出 2+3 |
例3
使用JS 中的eval函数,可以将JS字符串作为JS表达式进行执行。
将下列JS代码保存为1.js
代码如下 | 复制代码 |
function f(num,callback){ //eval()函数,这个函数可以把一个字符串当作一个JavaScript表达式一样去执行它。 eval(callback+"('"+num +"')"); } |
再定义一个test.html,保存到和1.js相同的目录
代码如下 | 复制代码 |
function test(){ |
然后打开test.html,可以看到我们调用了传过去的dosome()函数,使用eval函数必须保证字符串表示的JS表达式,在当前页面有效。
我们可以通过帧的方式来用eval执行任意可访问的帧的JS代码。也可以通过打开子窗体的方式,是父窗体和子窗体的JS代码能够相互调用,
而且我们只要传入函数名字符串(无论何种方式,不如通过url参数的方式),调用者无需知道调用的函数的名称,只要得到函数名字符串,即可调用,所以比较灵活。