`
阅读更多

eval()函数

JavaScript有许多小窍门来使编程更加容易。
其中之一就是eval()函数,这个函数可以把一个字符串当作一个JavaScript表达式一样去执行它。
举个小例子:

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。
这个看起来似乎有点傻,其实可以做出很有趣的事。比如使用eval你可以根据用户的输入直接创建函数。
这可以使程序根据时间或用户输入的不同而使程序本身发生变化,通过举一反三,你可以获得惊人的效果。
在实际中,eval很少被用到,但也许你见过有人使用eval来获取难以索引的对象。

    文档对象模型(DOM)的问题之一是:有时你要获取你要求的对象简直就是痛苦。
    例如,这里有一个函数询问用户要变换哪个图象:变换哪个图象你可以用下面这个函数:

    function swapOne()
    {
     //JavaScript中的方法真是神奇,我一直以为是用window.prompt("111111");
     var the_image = prompt("change parrot or cheese","");
     var the_image_object;

     if (the_image == "parrot")
     {
      the_image_object = window.document.parrot;
     }
     else
     {
      the_image_object = window.document.cheese;
     }

     the_image_object.src = "ant.gif";
    }

    连同这些image标记:

    [img src="stuff3a/parrot.gif" name="parrot"]
    [img src="stuff3a/cheese.gif" name="cheese"]

    请注意象这样的几行语句:
          
    the_image_object = window.document.parrot;

    它把一个图象对象敷给了一个变量。虽然看起来有点儿奇怪,它在语法上却毫无问题。
    但当你有100个而不是两个图象时怎么办?你只好写上一大堆的 if-then-else语句,要是能象这样就好了:

    function swapTwo()
    {
     var the_image = prompt("change parrot or cheese","");
     window.document.the_image.src = "ant.gif";
    }

    不幸的是, JavaScript将会寻找名字叫 the_image而不是你所希望的"cheese"或者"parrot"的图象,
    于是你得到了错误信息:”没听说过一个名为the_image的对象”。

    还好,eval能够帮你得到你想要的对象。

    function simpleSwap()
    {
     var the_image = prompt("change parrot or cheese","");
     var the_image_name = "window.document." + the_image;
     var the_image_object = eval(the_image_name);
     the_image_object.src = "ant.gif";
    }


分享到:
评论

相关推荐

    Javascript中eval函数的用法

    JavaScript 中 eval 函数的用法 JavaScript 中的 eval 函数是一个非常强大且灵活的函数,可以将一个字符串当作一个 JavaScript 表达式来执行。正如我们在上面的描述中所看到的,eval 函数可以将一个字符串解释成 ...

    java实现js中eval功能

    在JavaScript中,`eval()`函数是一个非常特殊且强大的工具,它能够将字符串作为JavaScript代码执行。这个功能在处理动态生成的代码或者解析JSON时非常有用。然而,由于安全和性能问题,`eval()`通常被避免在生产环境...

    javascript中eval函数用法分析

    本文实例分析了javascript中eval函数用法。分享给大家供大家参考。具体分析如下: eval()只有一个参数,如果传入的参数不是字符串,则直接返回这个参数。否则会将字符串当成js代码进行编译,如果编译失败则...

    javascript中eval函数用法分析.docx

    ### JavaScript中eval函数用法分析 #### 一、eval函数简介 `eval()`函数是JavaScript中的内置函数之一,用于解析并执行包含JavaScript代码的字符串。它只有一个参数,该参数可以是字符串或非字符串类型。 - **非...

    javascript中eval解析JSON字符串.docx

    ### JavaScript中eval解析JSON字符串详解 #### 一、前言 在JavaScript开发中,解析JSON字符串是一项常见的任务。其中一种方法是使用`eval()`函数。虽然这种方法并不推荐,但了解其工作原理及其潜在风险仍然非常...

    在Javascript中Eval函数的使用?

    JavaScript中的`eval()`函数是一个非常特殊且功能强大的工具,它能够执行一个字符串作为JavaScript代码。这个函数在很多情况下被用于动态地编译和运行代码,但同时也因为其潜在的安全风险和性能问题而备受争议。在...

    在Javascript中Eval函数的使用.doc

    在JavaScript中,`eval()`函数是一个极具争议但又非常有用的工具。它允许我们将字符串作为JavaScript代码来执行,这在某些特定场景下提供了极大的灵活性。然而,这种灵活性也带来了安全风险和性能问题,因此在实际...

    js中eval()函数和trim()去掉字符串左右空格应用.docx

    ### JavaScript中的eval()函数与自定义trim()方法详解 #### 一、eval()函数解析 在JavaScript中,`eval()`函数是一种特殊的内置函数,它的主要功能是将传递给它的字符串参数作为JavaScript代码进行解析并执行。`...

    javascript中eval和with用法实例总结.docx

    ### JavaScript中的`eval`与`with`用法详解 #### 一、`eval`函数 ##### 1. 定义 `eval`是JavaScript中一个非常强大的内置函数,它可以将字符串解析并执行为JavaScript代码。这使得开发者能够在运行时动态地创建和...

    javascript执行eval函数时利用正则表达式去掉回车符换行符和注释

    JavaScript中的`eval()`函数是一个非常强大的工具,它能够将字符串作为JavaScript代码来执行。然而,直接使用`eval()`可能存在安全风险,比如代码注入攻击。在某些特定场景下,我们需要对输入的字符串进行预处理,...

    javascript中eval和with用法实例总结

    本文实例讲述了javascript中eval和with用法。分享给大家供大家参考,具体如下: 我们都知道javascript的作用域机制,但是with和eval有时会“破坏”我们对于作用域的常规理解。下面参考网上资源和自己理解总结一下...

    Javascript中Eval函数的使用说明

    JavaScript中的`eval()`函数是一个非常强大的工具,它可以将接收到的字符串当作JavaScript代码来执行。这个功能使得动态编程成为可能,允许程序根据运行时的条件或用户输入来改变其行为。然而,`eval()`的使用也需要...

    javascript 自定义eval函数实现

    JavaScript中的`eval()`函数是一个非常强大但又颇具争议的功能,它允许执行一个字符串作为JavaScript代码。在本讨论中,我们将深入探讨如何自定义`eval()`函数以提高代码的安全性和效率,同时也会涉及到JavaScript的...

    Javascript中eval函数的详细用法与说明

    Javascript 中 eval 函数的详细用法与说明 eval 函数是 JavaScript 中一个非常强大且灵活的函数,它可以将一个字符串当作一个 JavaScript 表达式一样去执行它。以下是 eval 函数的详细用法和说明: eval 函数的...

    js中eval详解

    JavaScript中的`eval`函数是一个非常强大但又充满争议的工具,它可以解析并执行一个字符串作为JavaScript代码。在处理动态生成的代码或者从服务器接收到的数据时,`eval`经常被用到。然而,由于安全性和性能上的风险...

    js eval 压缩工具

    "js eval 压缩工具"就是这样一个专门针对JavaScript文件进行压缩的工具,其原理是利用`eval`函数来执行经过压缩后的代码。 `eval`函数在JavaScript中是一个非常强大的功能,它可以将字符串作为JavaScript代码来执行...

    为什么JS中eval处理JSON数据要加括号

    总结一下,JS中eval处理JSON数据要加括号的原因是为了确保`eval()`将JSON字符串解析为表达式,从而创建JavaScript对象。然而,为了代码的安全性和性能,推荐使用`JSON.parse()`替代`eval()`来处理JSON数据。

    JS中eval函数的使用示例

    在JavaScript中,`eval()`函数是一个非常特殊且功能强大的工具,它能够将一个字符串作为JavaScript代码来执行。这个功能在某些情况下非常有用,但同时也带来了安全风险和性能问题。在深入探讨`eval()`的使用之前,...

    js中eval()函数和trim()去掉字符串左右空格应用

    对于js中eval()函数的理解和写一个函数trim()去掉字符串左右空格;对于js中eval()函数的理解是本人心得不一定正确,感兴趣的朋友参考下,或许对你学习eval()函数有所帮助

Global site tag (gtag.js) - Google Analytics