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