var有三種聲明的情形:
var聲明的全局變量
var在函數範圍内聲明的局部變量
eval中聲明的全局變量。
首先,
1、2種情形var聲明的變量是無法删除的。
盡管var聲明的全局變量是屬于window對象的屬性(在浏覽器中),但依然是無法删除的,因為這種屬性的configurable=false,是以不能delete掉。
局部變量就更不用說了,連var變量依附的對象都不知道在哪裡,肯定無法删除。
而eval('var a = 1')看似和直接var是一樣的效果(當然是在全局作用執行eval),執行完也會在window對象上建立一個a屬性,但是這個屬性的configurable=true,是以可以删除。
函數不能被delete掉
局部作用域中的函數也不能被delete掉
本文轉自 sshpp 51CTO部落格,原文連結:http://blog.51cto.com/12902932/1926156,如需轉載請自行聯系原作者