`
linychuo
  • 浏览: 9133 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
社区版块
存档分类
最新评论

eval 的应用和它的代替方案

阅读更多
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);

 

var name="Jimmy",

var age=23;
var json="{name:'"+name+"',age:"+age+"}";

//这里通过eval函数可以将一个字符串转换成json.

json = eval('('+json+')');

alert(json.name+"="+json.age);




//也可以用以下的办法,也可以将一个字符串转换成json

var fun = new Function("return "+arr);

var obj = fun();

alert(obj.name+"="+obj.age);



不过这种方法明显没有eval用起来方便。



分享到:
评论

相关推荐

    eval 加密和解密

    开发者应当谨慎使用`eval`,尽量选择安全的替代方案,并且遵循最佳实践,以确保应用程序的安全性。在阅读压缩包中的`eval.html`文件后,可以获取更具体的信息和示例,进一步加深对这个主题的理解。

    winform Eval的功能

    它提供了一套丰富的控件和组件,帮助开发者创建交互式的、图形化的应用。而“winform Eval的功能”这个主题,显然是关于在WinForms环境中如何使用Eval表达式来执行动态计算或表达式的讨论。 Eval函数在多种编程语言...

    Javascript中Eval函数的使用说明

    `eval()`的一个实际应用是动态创建和执行函数。例如,根据用户输入或特定条件,程序可以构建相应的函数代码,然后通过`eval()`执行。这样可以实现高度可定制的行为,但同时也可能导致代码注入攻击,如果用户输入的...

    js下用eval生成JSON对象

    尽管`eval()`提供了一种简便的方法,但为了提高代码的安全性和可维护性,建议使用`JSON.parse()`方法来代替`eval()`。`JSON.parse()`不仅能够更安全地解析JSON字符串,而且还支持处理各种异常情况,例如非法JSON数据...

    eval

    不过,为了安全起见,通常推荐使用`JSON.parse()`代替`eval()`来解析JSON,因为前者专门为此目的设计,不会执行任何非JSON格式的代码: ```javascript let jsonObject = JSON.parse(jsonString); console.log...

    了解一点js的Eval函数

    2. **性能下降**:`eval()`的执行速度比普通JavaScript代码慢,因为它需要额外的解析和编译步骤。 3. **作用域问题**:`eval()`中的代码会在全局作用域中执行,可能会修改全局变量,导致难以调试的问题。 ### 替代...

    Javascript中eval函数的使用方法与示例

    由于 eval() 的安全和性能问题,通常建议寻找替代方案,如使用对象和数组来存储和访问数据、使用模板字符串来代替字符串拼接,或使用其他函数(如 setTimeout 和 setInterval)来代替 eval() 动态执行代码。...

    PHP_diseval_extension-master

    - 然后,你可以使用提供的API来代替`eval()`,例如可能有一个`diseval()`函数,它接受代码字符串并安全地执行。 4. **替代方案**: - **PHP函数和语言结构**:许多情况下,你可以使用现有的PHP函数和语言结构来...

    关于拉格朗日插值法的内容及程序

    拉格朗日插值法的内容及...通过对病人CD4和HIV浓度的测试数据进行插值,可以预测病人的治疗效果,并对治疗方案进行优化。 拉格朗日插值法是一种重要的数值计算方法,广泛应用于科学计算、工程设计、数据分析等领域。

    让IE8和遨游兼容eWebEditor编辑器

    5. **社区资源**: 加入开发者社区,参考其他开发者分享的兼容性解决方案和最佳实践,可以节省大量时间和精力。 总之,确保eWebEditor编辑器在IE8和遨游等浏览器上的兼容性,不仅需要对JavaScript和DOM有深入的理解...

    Redis学习笔记-包括周阳和狂神说

    - 数据结构选择:根据应用场景选择合适的数据结构,如使用哈希代替多条独立键值。 4. Redis在实际项目中的应用 - 缓存:快速响应常用数据,减轻数据库压力。 - 消息队列:使用发布订阅模式实现消息传递,支持...

    黑马kotlin高清视频教学2

    6. **Kotlin函数作业讲解**:13.kotlin函数作业讲解.mp4可能包含了一些实际编程练习的解决方案,帮助巩固对函数理解和应用的理解。 7. **Kotlin条件控制if和else**:Kotlin的`if`和`else`语句与Java类似但更强大,...

    phpredis4.2.0

    总之,`phpredis4.2.0` 是一个强大的 PHP 扩展,它提供了一系列高效的方法来利用 Redis 的各种功能,为 PHP 应用程序提供了灵活且高性能的数据存储和缓存解决方案。正确理解和使用这些功能,将有助于提升应用程序的...

    android 系统可删除软件列表(大全).

    为了提供更好的用户体验和服务,Android系统内置了许多预装应用程序。然而,并非所有的预装应用都能满足每一位用户的需求,有些应用甚至可能占用宝贵的存储空间或带来不必要的资源消耗。因此,了解哪些应用可以安全...

    Javascript在IE和Mozilla中的兼容性问题.doc

    JavaScript是一种广泛应用于网页和网络应用开发的脚本语言,它被设计用来操作DOM(文档对象模型)并控制用户的交互。然而,由于不同浏览器对JavaScript的支持程度和实现方式存在差异,尤其是在早期版本的Internet ...

    scala in depth电子书

    Scala提供了一种REPL(Read-Eval-Print Loop)工具,这是一种便捷的环境,允许程序员快速测试代码片段,它支持交互式编程和实验驱动开发。书中还包括了对Scala语言中不易表达的语言特性的探讨,比如围绕“急切求值”...

    Java用 Rhino/Nashorn 代替第三方 JSON 转换库

    然而,随着Java标准库的更新和扩展,对于一些特定的使用场景,我们可以利用Java自带的JavaScript引擎Rhino或Nashorn来代替这些第三方库,进行JSON数据的转换工作。 Rhino是一个完全用Java编写的JavaScript引擎,它...

    js在火狐和IE浏览器的差异

    - 应该使用`document.getElementById(idName)`来代替`eval(idName)`。 6. **变量名与HTML对象ID相同** - 在火狐中,可以声明与HTML对象ID相同的变量,但IE中会引发混淆。 - 为了避免问题,始终在声明变量时加上`...

    XML的代替者----JSON

    JSON被广泛应用于Web服务和客户端之间的数据交互,特别是在AJAX(Asynchronous JavaScript and XML)技术中,它逐渐取代了XML,成为更受欢迎的选择。 在XML和JSON的比较中,XML虽然提供了丰富的结构化表示,但其...

Global site tag (gtag.js) - Google Analytics