麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 語(yǔ)言 > JavaScript > 正文

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

2024-05-06 16:26:20
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
eval() 函數(shù)計(jì)算 JavaScript 字符串,并把它作為腳本代碼來(lái)執(zhí)行,本文給大家
 

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

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

語(yǔ)法

 

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

eval(string)

 

 

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

 

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

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

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

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

在以上代碼特別注意的是,最后一個(gè)語(yǔ)句是聲明了一個(gè)對(duì)象,如果想返回此對(duì)象,則需要在對(duì)象外面再嵌套一層小括號(hào),如下:

 

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

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

 

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

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

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

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

在上面的代碼中,兩個(gè)alert()語(yǔ)句都能夠正常彈出1。但是此中方式在標(biāo)準(zhǔn)瀏覽器中是可以的,但是在IE8和IE8以下瀏覽器中的表現(xiàn)依然和eval()一樣,作用域是它們所在的作用域。這個(gè)時(shí)候可以使用IE瀏覽器獨(dú)有的window.execScript()解決IE8和IE8瀏覽器的問(wèn)題。為了實(shí)現(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以下瀏覽器的問(wèn)題。

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



注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到JavaScript/Ajax教程頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 国产污污视频 | av国产在线被下药迷网站 | 免费a级网站 | 毛片视频播放 | 在线亚洲播放 | 国产精品刺激对白麻豆99 | 欧美一级特黄aaaaaaa什 | 黄污在线看 | 国产高潮国产高潮久久久91 | 亚洲午夜一区二区三区 | 96视频在线免费观看 | 黄色羞羞视频在线观看 | 中日韩乱码一二新区 | 亚洲一区成人 | 久久sp| 免费看成年人网站 | 一级做受大片免费视频 | 亚洲成人国产 | 欧美特级黄色 | 免费视频xxxx | 黄色免费在线网站 | 国产毛片网站 | 99精彩视频在线观看 | 特级黄色一级毛片 | 亚洲国产资源 | 国产精品久久久乱弄 | 国产91一区 | 久久久久久久亚洲精品 | 精品一区二区三区日本 | 羞羞视频免费观看入口 | 中文字幕四区 | 在线成人免费观看www | 中日韩免费视频 | 日本黄色一级视频 | 色网站综合 | 成人在线观看地址 | 日美黄色片 | 午夜免费一区 | 精品久久久久久久久久中文字幕 | 中文字幕四区 | 草免费视频 |