今天我們來探討一下,為什么 小程序不支持 eval 方法和 new Function
在微信 和 抖音小程序的開發文檔上,都標明了 不支持使用 eval() , new Function 創建函數。
二、拋出問題:這是為什么呢?
因為 eval()
函數會將傳入的字符串當做 JavaScript 代碼進行執行。如果你用 eval()
運行的字符串代碼被惡意方(不懷好意的人)修改,您最終可能會在您的網頁/擴展程序的權限下,在用戶計算機上運行惡意代碼。第三方代碼可以看到某一個 eval()
被調用時的作用域,這也有可能導致一些不同方式的攻擊。
查閱 JavaScript 文檔,我們就很清楚的曉得了~
三、回頭再想想,為什么 好多人還是選擇用 eval 呢
這個 eval 真的是讓人又愛又恨,因為在 eval 中可以運行 javascript 代碼,所以在計算大型算數的時候,很多時候開發者為了方便,直接使用,就可計算出最終結果。用起來也是爽歪歪的。
四、eval 的替代方案
使用 Function 代替