人妻系列无码专区av在线,国内精品久久久久久婷婷,久草视频在线播放,精品国产线拍大陆久久尤物

當(dāng)前位置:首頁(yè) > 編程技術(shù) > 正文

js中eval函數(shù)是干嘛的?用途及詳解

js中eval函數(shù)是干嘛的?用途及詳解

js-eval( eval() 函數(shù)在JavaScript中扮演著特殊的角色,它能將接收到的字符串當(dāng)作代碼來(lái)。其主要語(yǔ)法是通過(guò)調(diào)用 eval(string),其中 s...

js-eval()

eval() 函數(shù)在JavaScript中扮演著特殊的角色,它能將接收到的字符串當(dāng)作代碼來(lái)。其主要語(yǔ)法是通過(guò)調(diào)用 eval(string),其中 string 參數(shù)應(yīng)為表示表達(dá)式、語(yǔ)句或一語(yǔ)句的字符串。評(píng)估表達(dá)式時(shí),eval會(huì)根據(jù)變量和已存在對(duì)象的屬性來(lái)求值。

方法一:使用eval()函數(shù) 首先,定義一個(gè)包含數(shù)組元素的字符串。var str = [a, b, c, d];接著,利用eval()函數(shù)將字符串解析成數(shù)組。var arr = eval( + str + );最后,打印原始字符串、轉(zhuǎn)換后的數(shù)組及數(shù)組的第一個(gè)值。

如果試圖覆蓋 eval 屬性或把 eval() 方法賦予另一個(gè)屬性,并通過(guò)該屬性調(diào)用它,則 ECMAScript 實(shí)現(xiàn)允許拋出一個(gè) EvalError 異常。拋出:如果參數(shù)中沒(méi)有合法的表達(dá)式和語(yǔ)句,則拋出 SyntaxError 異常。如果調(diào)用 eval(),則拋出 EvalError 異常。

eval()函數(shù)的特點(diǎn)和用途 通過(guò)eval()的代碼包含在該次調(diào)用的環(huán)境中,因此被的代碼具有與該環(huán)境相同的作用域鏈。基于這個(gè)特點(diǎn), eval()可以讓寫(xiě)在函數(shù)里的代碼運(yùn)行在全局作用域中。,比如我們通過(guò)ajax請(qǐng)求獲取了一段js代碼,需要在全局作用域中,可代碼卻是在函數(shù)中獲得的。

eval方法是在運(yùn)行時(shí)對(duì)腳本進(jìn)行解釋,而普通的javascript會(huì)有一個(gè)預(yù)處理的過(guò)程。所以會(huì)有一些性能上的損失,但是通常通過(guò)一些手段能將這些性能損失降低到非常少。不至于談虎色變。eval通常用在一些需要?jiǎng)討B(tài)字符串,或?qū)⒆址D(zhuǎn)為javascript對(duì)象的場(chǎng)景,比如將json字符串轉(zhuǎn)為javascript對(duì)象。