1. delete 运算符,可以删除没有使用关键字var定义的变量;不能删除由关键字var 定义的变量;删除未定义的变量会返回true;删除后的变量将不能被访问。用法: delete variableName
2. delete 删除数组中的元素,要注意以下几点:有没有用var定义的数组,它里面的元素都可以被delete;删除了数组中的元素之后,数组长度并没有变短,只是该元素的值被删除了;被删除的元素仍然可以访问,只是元素值为undefined;
3. in 是二元运算符,in在对象中使用:第一个操作数是string(对象的属性),第二个操作数是对象;in在数组中使用:第一个运算法是数字(数组下标),第二个运算符是数组名称;
4. instanceof 用法: objectName instanceof objectType 判断一个对象的类型;
5.for...in 用于遍历对象属性和数组元素;用法:
varmyObject = {widths:10,heights:20,long : 30};
for (myPropertities in myObject ){
document.write(myObject[myPropertities] );
}
输出的结果是10,20,30;
如果直接document.write(myPropertities);则是直接输出属性名(包括方法名),而没有属性的值;
6.for each ... in 同样也用于遍历对象的属性和数组元素;用法:
var myObject = {widths:10,heights:20,long : 30};
for each ( myPropertities in myObject ){
document.write(myPropertities);
}
输出的结果是10,20,30;注意和for...in 的区别!
7.break 和 label结起来使用:label 要用在循环体前面才能起作用,break只能跳转到当前循环语句或者外层循环语句前的label;
step2:
for(var i=1;i<3;i++){
for(var j=0;j<3;j++){
if(i==j){ break step2;}
}
}
8.方法里面可以内嵌方法,常用在构造函数中,里面再嵌入一个方法,这样就只有这个对象能调用这个方法,例如:
function Monitor(_price,_factory,_type,_size){
this.price = _price;
this.factory = _factory;
this.type = _type;
this.size = _size;
this.open = openMonitor;
function openMonitor(){
alert("您的浏览器已经打开了");
}
//this.open = new Function("document.write('显示器已经打开了<br>')"); 这么写也可以。。。
}
var myMonitor = new Monitor(1800,"远志公司","C1","17");
document.write("显示器的生产厂家:",myMonitor.factory,"<br>");
document.write("显示器的型号:",myMonitor.type,"<br>");
document.write("显示器的尺寸:",myMonitor.size,"<br>");
document.write("显示器的价格:",myMonitor.price,"<br>");
myMonitor.open();
这样只有显示器的实例能调用open方法;
9.当一个对象里面既有属性,又有方法的时候,如何去遍历其中的方法或属性呢?其实so easy,用typeof就搞定啦~看例子:
for(var obj1 in myMonitor){
if( typeof (myMonitor[obj1]) == "function"){
document.write("方法名:",obj1,"<br>");
} else {
document.write("属性名:",obj1,",属性值:",myMonitor[obj1],"<br>");
}
}
输出的结果是:(注意typeof后面跟的是属性的值,而不是属性名)
属性名:price,属性值:1800
属性名:factory,属性值:远志公司
属性名:type,属性值:C1
属性名:size,属性值:17
方法名:open
10.在已经定义出来的对象中添加新的属性:myMonitor.interface = "VGA";这样就直接多了一个interface属性。
11.删除属性:delete myMonitor.interface;
12.用for(var obj in myMonitor){document.write(obj,"<br>");}直接遍历属性名,就能马上验证属性是否添加或者删除了。。。
13.对象的属性也可以是一个对象,跟java里面的属性可以是一个类一样。。。
今天就到这啦~华丽丽的分割线-------------------------------------------------------------------------------------