JavaScript eval()方法的替代方法

Shiv Yadav 2022年5月10日
JavaScript eval()方法的替代方法

eval() 方法用于评估或实现参数。如果参数是断言,则表达式由 eval() 评估,如果参数包含一个或多个 JavaScript 语句,eval() 将执行它们。

使用 eval(),恶意代码可以在未经你许可的情况下在你的应用程序中运行,并且第三方代码可以看到你的应用程序的范围,从而可能导致攻击。

在 JavaScript 中使用 eval() 方法的替代方法

JavaScript 是一种非常灵活的语言。在极少数情况下 eval() 是任何给定问题的正确答案,这里当然不需要。

例如,如果 sk 变量是对象的一部分,你可以使用字符串下标来访问它们。因此,你可以使用变量作为下标,从而动态引用 newobj 中的任何元素。

代码:

var newobj = {s : 20, k : 30};
var value1 = 's';
var value2 = 'k';
alert( newobj[value1] + newobj[value2] );

运行代码

输出:

javascript eval 替代方法

没有必要使用 eval() 方法。你可以用任何你想要的方式构造 value 字符串,给你几乎无限的灵活性。

如果 sk 变量是全局变量,你可以使用这种技术,因为 JS 全局变量是浏览器中窗口对象的子对象。

具体来说,你的全局变量可以通过 window.swindow['s'] 访问,后者允许你执行与上述相同的 dynamicProperty 技巧。

Author: Shiv Yadav
Shiv Yadav avatar Shiv Yadav avatar

Shiv is a self-driven and passionate Machine learning Learner who is innovative in application design, development, testing, and deployment and provides program requirements into sustainable advanced technical solutions through JavaScript, Python, and other programs for continuous improvement of AI technologies.

LinkedIn

相关文章 - JavaScript Method