JS中的eval 為什么加括號(hào)
eval簡(jiǎn)介
---eval在ECMA定義中是全局對(duì)象原型的方法;
---eval接受的參數(shù)是字符串格式的js代碼, 將由執(zhí)行引擎(記得'高級(jí)程序設(shè)計(jì)'還是哪說(shuō)過(guò), 此時(shí)新建一個(gè)執(zhí)行引擎)執(zhí)行這段字符串, 然后返回結(jié)果到eval調(diào)用的位置.
<!DOCTYPE html> <html> <head> <title>eval學(xué)習(xí)</title> <script type="text/javascript"> /* eval("表達(dá)式");執(zhí)行表達(dá)式語(yǔ)句 eval("("+javascript類(lèi)型+")");轉(zhuǎn)為javascript對(duì)象 */ var jsonObj={"name":"ljl","data":123};//json,是javascript的對(duì)象 var jsonString='{"name":"ljl","data":123}';//javascript的string類(lèi)型,字符串內(nèi)容符合json格式的樣式 var objType=eval("("+jsonString+")");//通過(guò)eval函數(shù)將json字符轉(zhuǎn)為javascript對(duì)象 alert( typeof jsonString);//string alert( typeof objType);//obj alert(eval(123));//123 alert(typeof eval("("+123+")"));//number var x=2; var y=eval('x+1');//執(zhí)行 2+1 表達(dá)式 alert('y= '+y);//3 </script> </head> <body> </body> </html>
補(bǔ)充:總結(jié)
eval是js動(dòng)態(tài)特性之一, 通過(guò)它直接執(zhí)行js程序并返回結(jié)果, 常見(jiàn)的使用就是還原json數(shù)據(jù)為js對(duì)象;
但是由于其能在運(yùn)行時(shí)動(dòng)態(tài)改變上下文對(duì)象, 因此帶來(lái)了注入攻擊的風(fēng)險(xiǎn);
使用時(shí), 注意eval對(duì)字符串的語(yǔ)法認(rèn)識(shí)是如何的, 常見(jiàn)的就是'大括號(hào)'問(wèn)題
相關(guān)文章
純js實(shí)現(xiàn)無(wú)限空間大小的本地存儲(chǔ)
這篇文章主要介紹了純js實(shí)現(xiàn)無(wú)限空間大小的本地存儲(chǔ)的功能,源碼和demo都放給大家,本文著重說(shuō)下實(shí)現(xiàn)的原理,具體的實(shí)踐擴(kuò)展小伙伴們自由發(fā)揮吧。2015-06-06微信小程序防止多次點(diǎn)擊跳轉(zhuǎn)和防止表單組件輸入內(nèi)容多次驗(yàn)證功能(函數(shù)防抖)
這篇文章主要介紹了微信小程序防止多次點(diǎn)擊跳轉(zhuǎn)和防止表單組件輸入內(nèi)容多次驗(yàn)證功能(函數(shù)防抖),需要的朋友可以參考下2019-09-09json對(duì)象轉(zhuǎn)為字符串,當(dāng)做參數(shù)傳遞時(shí)加密解密的實(shí)現(xiàn)方法
下面小編就為大家?guī)?lái)一篇json對(duì)象轉(zhuǎn)為字符串,當(dāng)做參數(shù)傳遞時(shí)加密解密的實(shí)現(xiàn)方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-06-06javascript currentTarget對(duì)象介紹
javascript currentTarget對(duì)象介紹...2007-10-10JavaScript使用canvas實(shí)現(xiàn)手寫(xiě)簽名功能
最近遇到一個(gè)h5手寫(xiě)簽名的需求,按理說(shuō)這種功能網(wǎng)上隨便一搜一大把現(xiàn)成的源碼和組件,但是像這種比較經(jīng)典又很簡(jiǎn)單的功能,還是要弄清楚到底怎么實(shí)現(xiàn)的,所以接下來(lái)本文就給大家介紹一下如何用canvas實(shí)現(xiàn)手寫(xiě)簽名功能2023-08-08JSON.parse損壞大數(shù)字的原因解析及解決方案
從10多年前JSON在線(xiàn)編輯器的早期開(kāi)始,用戶(hù)經(jīng)常反映編輯器有時(shí)會(huì)破壞他們JSON文檔中的大數(shù)字的問(wèn)題,這篇文章主要介紹了為什么JSON.parse會(huì)損壞大數(shù)字,如何解決這個(gè)問(wèn)題,需要的朋友可以參考下2022-10-10