JavaScript必知必会(六) delete in instanceof

in

in 判断 左边 的字符串或者能转换成字符串的是否属于 右边 的属性。

var data = { x: , y: };//定义了直接对象
alert("x" in data);//true ,x 是data 的一个属性
alert( in data);//false , 是data的属性值。 
var arr = [, , ];//定义了直接数组对象
alert( in arr);//true ,arr 数组的index包括,,, 是他的一个[]属性。
alert( in arr);//false ,不是他的属性。

instanceof

instanceof 希望左边的实例是右边的对象的类型。

var date = new Date();
alert(date instanceof Date);//true
alert(date instanceof Object);//true
alert(date instanceof Number);//false  
var date = [, , ];
alert(date instanceof Array);//true
alert(date instanceof Object);//true
alert(date instanceof Number);//false

delete

delete 删除一个对象的属性

var o = { x: , y: };
alert(delete o.x); //true 删除成功
alert("x" in o);//false x不是o的属性 
var o = ;
alert(delete this.o);//false
y = ;
alert(delete this.y);//true
alert(delete this.window);//false

summary

delete 是一元操作符,delete 不可删除javascript内置的全局变量,也不可删除有var声明的全局变量,但可以删除不用var声明的全局变量。

相关推荐