个人暂时学习心得,待后续学习修改补充,不足之处欢迎提意见
//直接定义window的全局变量,返回true,删掉了
window.color = "red";
console.log(delete window.color);//true
// delete window.color;
console.log(window.color);//undefined
//隐式全局变量,返回true,删除掉了
age = 21;
// delete window.age;
console.log(delete window.age);//true
console.log(window.age);//undefined
//var 声明的变量,返回false,没有删除
var name1 = "wyc";
// delete name1;
console.log(delete name1);//false
console.log(name1);//wyc
//var 声明的变量,返回true,删除掉window的属性name2,但是没有删除var声明的变量
var name2 = "wp";
// delete window.name2;
console.log(delete window.name2);//true
console.log(name2);//wp
//var 声明的对象,然后去删除他的属性,删掉了
var o = {x:1,y:2};
//delete o.x;
console.log(delete o.x);//true
console.log(o);//object{y:2}
//var定义对象,带有一个方法
var obj = {x:function(){return true;}}
//delete obj.x;
console.log(delete obj.x);//true
console.log(obj);//obj{}
//var 声明的函数
var fn = function(){
return {result:'fn'}
}
//delete fn;
console.log(delete fn);//false
console.log(typeof fn);//function
//直接声明函数
function func(){
return {result: 'func'}
}
//delete func;
console.log(delete func);//false
console.log(typeof func);//function
//阶段性总结:var变量是全局变量,但不是直接定义在window对象上面的属性,
// delete操作符可以删除window定义的属性和var变量定义的(对象的属性和方法),但不可以删除var变量定义的变量,也不可以删除函数函数