最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JavaScript中eval()函數(shù)用法詳解

 更新時間:2015年12月14日 11:44:11   作者:程序員小菜  
eval() 函數(shù)計算 JavaScript 字符串,并把它作為腳本代碼來執(zhí)行,本文給大家

eval() 函數(shù)計算 JavaScript 字符串,并把它作為腳本代碼來執(zhí)行。

如果參數(shù)是一個表達(dá)式,eval() 函數(shù)將執(zhí)行表達(dá)式。如果參數(shù)是Javascript語句,eval()將執(zhí)行 Javascript 語句。

語法

復(fù)制代碼 代碼如下:

eval(string)

參數(shù) 描述
string 必需。要計算的字符串,其中含有要計算的 JavaScript 表達(dá)式或要執(zhí)行的語句。

eval()函數(shù)用法詳解:

此函數(shù)可能使用的頻率并不是太高,但是在某些情況下具有很大的作用,下面就介紹一下eval()函數(shù)的用法。

此函數(shù)可以接受一個字符串str作為參數(shù),并把此str當(dāng)做一段javascript代碼去執(zhí)行,如果str執(zhí)行結(jié)果是一個值則返回此值,否則返回undefined。如果參數(shù)不是一個字符串,則直接返回該參數(shù),實例如下:

eval("var a=1");//聲明一個變量a并賦值1。
eval("2+3");//執(zhí)行加運(yùn)算,并返回運(yùn)算值。
eval("mytest()");//執(zhí)行mytest()函數(shù)。
eval("{b:2}");//聲明一個對象。

在以上代碼特別注意的是,最后一個語句是聲明了一個對象,如果想返回此對象,則需要在對象外面再嵌套一層小括號,如下:

復(fù)制代碼 代碼如下:

eval("({b:2})");

以上內(nèi)容簡單介紹了eval()函數(shù)的用法,比較容易理解。此函數(shù)最讓人感到困惑的是關(guān)于它的作用域問題,下面就結(jié)合實例來介紹一下相關(guān)內(nèi)容,先看一段代碼實例:

function a(){ 
 eval("var x=1"); 
 console.log(x); 
} 
a(); 
console.log(x); 

在上面的代碼中,第一個alert()函數(shù)能夠彈出1,而第二個會因為x未定義而報錯。
由以上表現(xiàn)可以得出,eval()函數(shù)并不會創(chuàng)建一個新的作用域,并且它的作用域就是它所在的作用域。這在所有主流瀏覽器都是如此,但是有時候需要將eval()函數(shù)的作用域設(shè)置為全局,當(dāng)然可以將eval()在全局作用域中使用,但是往往實際應(yīng)用中,需要在局部作用域使用具有全局作用域的此函數(shù),這個時候可以用window.eval()的方式實現(xiàn),例如以上代碼可以改造如下:

function a(){ 
 window.eval("var x=1"); 
 console.log(x); 
} 
a(); 
console.log(x); 

在上面的代碼中,兩個alert()語句都能夠正常彈出1。但是此中方式在標(biāo)準(zhǔn)瀏覽器中是可以的,但是在IE8和IE8以下瀏覽器中的表現(xiàn)依然和eval()一樣,作用域是它們所在的作用域。這個時候可以使用IE瀏覽器獨(dú)有的window.execScript()解決IE8和IE8瀏覽器的問題。為了實現(xiàn)兼容所有主流瀏覽器,把代碼改造如下:

function a(){ 
 if(window.execScript){ 
  window.execScript("var x=1"); 
 } 
 else{ 
  window.eval("var x=1"); 
 } 
 console.log(x); 
} 
a(); 
console.log(x); 

如果瀏覽器支持window.execScript(),則使用此函數(shù),不支持則使用window.eval(),這樣就可以解決IE8和IE8以下瀏覽器的問題。

以上內(nèi)容是小編給大家分享的JavaScript中eval()函數(shù)用法詳解,希望大家喜歡。

相關(guān)文章

  • 配置Webpack?SourceMap?實踐教程

    配置Webpack?SourceMap?實踐教程

    這篇文章主要介紹了如何配置Webpack?SourceMap,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2024-03-03
  • JS數(shù)組方法reduce的妙用分享

    JS數(shù)組方法reduce的妙用分享

    在?JavaScript?中,reduce?是最難理解的數(shù)組方法之一,它是一個強(qiáng)大而靈活的高階函數(shù),下面就來看看?reduce?的妙用之處,希望對大家有所幫助
    2023-02-02
  • js下劃線和駝峰互相轉(zhuǎn)換的實現(xiàn)(多種方法)

    js下劃線和駝峰互相轉(zhuǎn)換的實現(xiàn)(多種方法)

    本文主要介紹了js下劃線和駝峰互相轉(zhuǎn)換的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • Js實現(xiàn)自定義右鍵行為

    Js實現(xiàn)自定義右鍵行為

    本文主要給大家分享的是一則javascript實現(xiàn)的自定義右鍵行為的小技巧,非常的簡單實用,有相同需求的小伙伴可以參考下。
    2015-03-03
  • JS前端知識點(diǎn) 運(yùn)算符優(yōu)先級,URL編碼與解碼,String,Math,arguments操作整理總結(jié)

    JS前端知識點(diǎn) 運(yùn)算符優(yōu)先級,URL編碼與解碼,String,Math,arguments操作整理總結(jié)

    這篇文章主要介紹了JS前端知識點(diǎn) 運(yùn)算符優(yōu)先級,URL編碼與解碼,String,Math,arguments操作,結(jié)合實例形式整理總結(jié)了javascript運(yùn)算符優(yōu)先級,URL編碼與解碼,String,Math,arguments操作原理及使用技巧,需要的朋友可以參考下
    2019-06-06
  • Js 正則表達(dá)式知識匯總

    Js 正則表達(dá)式知識匯總

    本文對javascript中正則表達(dá)式進(jìn)行了總結(jié)匯總,將知識點(diǎn)和注意點(diǎn)都理了一下,并附上2個練習(xí)題,這里分享給小伙伴
    2014-12-12
  • JavaScript制作游戲搖桿方向盤

    JavaScript制作游戲搖桿方向盤

    本文主要介紹了JavaScript制作游戲搖桿方向盤,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2014-04-04
  • layui自定義工具欄的方法

    layui自定義工具欄的方法

    今天小編就為大家分享一篇layui自定義工具欄的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-09-09
  • JS控件ASP.NET的treeview控件全選或者取消(示例代碼)

    JS控件ASP.NET的treeview控件全選或者取消(示例代碼)

    本篇文章主要是對JS控件ASP.NET的treeview控件全選或者取消的示例代碼進(jìn)行了介紹,需要的朋友可以過來參考下,希望對大家有所幫助
    2013-12-12
  • 分享JavaScript?類型判斷的幾種方法

    分享JavaScript?類型判斷的幾種方法

    這篇文章主要介紹了分享JavaScript?類型判斷的幾種方法,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的的參考價值,需要的小伙伴可以參考一下
    2022-05-05

最新評論

镇巴县| 资兴市| 鄂尔多斯市| 阳高县| 双柏县| 广西| 武鸣县| 游戏| 富蕴县| 远安县| 福州市| 彭泽县| 赞皇县| 大连市| 新巴尔虎右旗| 高唐县| 南昌市| 尼玛县| 海林市| 白城市| 固阳县| 蓬莱市| 绥阳县| 襄樊市| 通许县| 铜梁县| 道真| 岳普湖县| 盘山县| 河西区| 凤山县| 阿克苏市| 平遥县| 凌云县| 邹平县| 轮台县| 南华县| 凌云县| 桦川县| 科技| 秦皇岛市|