var有三种声明的情形: var声明的全局变量 var在函数范围内声明的局部变量 eval中声明的全局变量. 首先, 1.2种情形var声明的变量是无法删除的. 尽管var声明的全局变量是属于window对象的属性(在浏览器中),但依然是无法删除的,因为这种属性的configurable=false,因此不能delete掉. 局部变量就更不用说了,连var变量依附的对象都不知道在哪里,肯定无法删除. 而eval('var a = 1')看似和直接var是一样的效果(当然是在全局作用执行eval)…