Javascript var變量刪除原理及實(shí)現(xiàn)
var有三種聲明的情形:
var聲明的全局變量 var在函數(shù)范圍內(nèi)聲明的局部變量 eval中聲明的全局變量。首先,
1、2種情形var聲明的變量是無(wú)法刪除的。
盡管var聲明的全局變量是屬于window對(duì)象的屬性(在瀏覽器中),但依然是無(wú)法刪除的,因?yàn)檫@種屬性的configurable=false,因此不能delete掉。
局部變量就更不用說(shuō)了,連var變量依附的對(duì)象都不知道在哪里,肯定無(wú)法刪除。
而eval(’vara=1’)看似和直接var是一樣的效果(當(dāng)然是在全局作用執(zhí)行eval),執(zhí)行完也會(huì)在window對(duì)象上創(chuàng)建一個(gè)a屬性,但是這個(gè)屬性的configurable=true,因此可以刪除。
<script type='text/javascript'> var a = 1; console.log(Object.getOwnPropertyDescriptor(window, ’a’)); //false aa=1; console.log(Object.getOwnPropertyDescriptor(window, ’aa’)); //true with({}) { var b = 1; console.log(Object.getOwnPropertyDescriptor(window, ’b’)); //false console.log(delete b); } eval(’var c = 1’); console.log(Object.getOwnPropertyDescriptor(window, ’c’)); //true</script>
函數(shù)不能被delete掉
局部作用域中的函數(shù)也不能被delete掉
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. IntelliJ IDEA設(shè)置默認(rèn)瀏覽器的方法2. IntelliJ IDEA設(shè)置背景圖片的方法步驟3. Spring security 自定義過(guò)濾器實(shí)現(xiàn)Json參數(shù)傳遞并兼容表單參數(shù)(實(shí)例代碼)4. docker /var/lib/docker/aufs/mnt 目錄清理方法5. Python TestSuite生成測(cè)試報(bào)告過(guò)程解析6. Python 的 __str__ 和 __repr__ 方法對(duì)比7. JAMon(Java Application Monitor)備忘記8. Python Scrapy多頁(yè)數(shù)據(jù)爬取實(shí)現(xiàn)過(guò)程解析9. Python OpenCV去除字母后面的雜線操作10. 增大python字體的方法步驟
