JS高階系列 eval

2021-08-15 23:19:04 字數 759 閱讀 2185

將字串當成**來執行

ajax中把獲取的字串資料轉換成json格式

因為eval把字串當成**來執行,並不能分辨**的正確性。黑客可以利用這個漏洞往裡面注入惡意**

不推薦使用eval

es5標準

- json.parse(str)函式:將str轉換成json格式的資料

- json.stringify(json)函式:將json轉換成string格式的資料

new function的格式:new function(變數1,變數2,……變數n,**塊)

new function(str)與function ***(變數)最大的區別是

利用new function能動態構造**塊,從而起到在程式執行過程中動態建立函式的作用

而function ***(變數)是一開始就必須寫好並且不能改變的

舉乙個栗子

ajax獲取到陣列形式的字串str」[1,2,3,4]」,要將其轉換成陣列物件

利用eval實現var arr = eval(str);利用 json.parse實現var arr = json.parse(str);利用new function實現var arr = (new function("return "+str+";"))();

js高階eval 不推薦使用

1.eval是個函式,可以用來將字串轉換成js 並且執行 2.注意一下json物件是有相容性問題的 eval 函式並不能直接把json字串轉化為乙個js物件 var jsondata var o eval jsondata console.log o 像上面這種用法就是錯誤的 原因 塊問題,因為 塊...

JS高階系列 物件導向程式設計

使用它所提供的介面而忽略其內部組成情況 js物件導向有三大特性 抽象 封裝 繼承 抽取這個物件的核心資料,不在特定條件下不知道是什麼 比如我如何描述乙個物件人?抽取這個物件的核心資料 name,age,function person obj 我知道人這個物件有姓名,年齡,性別。但是在人未具體化之前我...

js簡單解密(eval解密)

今天看文章,看到一篇比較好的文章。今天又學會一招,可以對一些採用eval加密的js進行解密。開啟谷歌或者火狐瀏覽器,然後按 f12,接著把這 複製進去,最後,去掉開頭 4 個字母 eval 然後回車執行下就得到原始碼了。eval function p,a,c,k,e,d if replace str...