eval 与 Function
上述兩種情況eval的作用域不同
eval 可將字符串解析為:
還記得json的格式嗎?以"{"開(kāi)頭對(duì)吧,在此那么你還記的語(yǔ)句塊的格式嗎?也是以"{"開(kāi)頭是吧,那么問(wèn)題就來(lái)了,eval解析時(shí)會(huì)把我們的json當(dāng)成語(yǔ)句塊,而且這個(gè)所謂的語(yǔ)句塊里還有":",那么極有可能會(huì)報(bào)錯(cuò)
表達(dá)式與語(yǔ)句
表達(dá)式:表達(dá)式,是由數(shù)字、算符、數(shù)字分組符號(hào)(括號(hào))、自由變量和約束變量等以能求得數(shù)值的有意義排列方法所得的組合。約束變量在表達(dá)式中已被指定數(shù)值,而自由變量則可以在表達(dá)式之外另行指定數(shù)值。
語(yǔ)句:JavaScript 語(yǔ)句向?yàn)g覽器發(fā)出的命令。語(yǔ)句的作用是告訴瀏覽器該做什么。通常我們?cè)诿織l可執(zhí)行的語(yǔ)句結(jié)尾添加分號(hào)以分隔 JavaScript 語(yǔ)句,多條語(yǔ)句構(gòu)成語(yǔ)句塊。
有些時(shí)候,表達(dá)式和語(yǔ)句會(huì)看不出區(qū)別,但其作用做不同,即有一些表達(dá)式會(huì)出現(xiàn)在語(yǔ)句的上下文中,為了解決歧義,JavaScript語(yǔ)法禁止表達(dá)式以大括號(hào)"{"或關(guān)鍵字"function"開(kāi)頭,如果要以"{"開(kāi)頭的表達(dá)式能被正確解析,需要把這個(gè)"{}"包裹的內(nèi)容放在"()"中,確保表達(dá)式被解析在表達(dá)式上下文中,如果表達(dá)式被解析在表達(dá)式上下文中,此時(shí)json解析后會(huì)轉(zhuǎn)換成對(duì)象類型,這就是我們想要的結(jié)果。
轉(zhuǎn)載于:https://www.cnblogs.com/chenxijywc/p/5434990.html
總結(jié)
以上是生活随笔為你收集整理的eval 与 Function的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 新买u盘被写保护怎么解除 解除U盘写保护
- 下一篇: 电脑usb驱动怎么删除吗 如何彻底删除电