in
in 判断 左边 的字符串或者能转换成字符串的是否属于 右边 的属性。
var data = { x: 1, y: 4 };//定义了直接对象
alert("x" in data);//true ,x 是data 的一个属性
alert(1 in data);//false ,1 是data的属性值。
var arr = [4, 5, 7];//定义了直接数组对象
alert(0 in arr);//true ,arr 数组的index包括0,1,2,0 是他的一个[0]属性。
alert(4 in arr);//false ,4不是他的属性。
instanceof
instanceof 希望左边的实例是右边的对象的类型。
var date = new Date();
alert(date instanceof Date);//true
alert(date instanceof Object);//true
alert(date instanceof Number);//false
var date = [1, 2, 3];
alert(date instanceof Array);//true
alert(date instanceof Object);//true
alert(date instanceof Number);//false
delete
delete 删除一个对象的属性
var o = { x: 1, y: 2 };
alert(delete o.x); //true 删除成功
alert("x" in o);//false x不是o的属性
var o = 2;
alert(delete this.o);//false
y = 3;
alert(delete this.y);//true
alert(delete this.window);//false
summary
delete 是一元操作符,delete 不可删除javascript内置的全局变量,也不可删除有var声明的全局变量,但可以删除不用var声明的全局变量。