php 中eval 和javascript中eval有什么区别,js中eval()函数的用处?

本文探讨了JavaScript的eval函数的用途,特别是在处理JSON数据时的角色。然而,由于其性能问题、安全隐患和可能导致的混乱代码逻辑,通常建议避免使用eval。推荐的替代方案包括JSON.parse和new Function。理解eval的风险对于编写更安全、高效的JavaScript代码至关重要。
摘要由CSDN通过智能技术生成

我大体知道这个函数会做什么,但还是不清楚它到底有什么用,想了解一下它的应用场景

对 eval 的态度应该是:学习它,并远离它。

Why is using the JavaScript eval function a bad idea?

Don’t be eval()

JavaScript Performance Tips & Tricks

eval vs new Function

AJAX 中当服务器端通过这种方式访问数据给请求者的时候:

echo '{"error":0;"msg":"OK"}';

客户端的 Javascript 可以这样获取:

eval("var result=" + ajaxResponseContent);

//其中 ajaxResponseContent = {"error":0;"msg":"OK"}

接着可以这样判断:

if (result.error != 0) {/*.....*/}

1 eval函数的原义是 使之执行

这个函数可以把一个字符串当作一个JavaScript表达式一样去执行它。

假设后台输出json字符串response

前台使用

var json = eval("(" + response + ")");

如果严谨点 我们可以加一个判断

var jsonData = "";

if (typeof (data) === “string” && data != “null”) {

if (data == “”) data = “{}”;

jsonData = eval(“(” + data + “)”);

}

2 这时 我们认为 eval的作用就是将json string转为js对象

我支持避免使用eval,故而可以说它没什么应用场景。

能够用eval实现的功能都可以用替代的方式实现(不是我说的,但是我同意)

比如JSON.parse(JSON对象解析),比如new Function()(执行特定代码)

大部分不支持使用eval的原因有:

1、性能不好

2、不安全

3、产生混乱的代码逻辑

73bccf0c0b4af35beddca4274520fb45.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值