欢迎来到福编程网,本站提供各种互联网专业知识!

Javascript入门学习第四篇 js对象和数组第1/2页

发布时间:2008-07-06 作者: 来源:转载
上篇文章讲了js中的变量,表达式,和运算符还有一些js语句.这章我们来探讨js中的对象和数组。

比较难哦。做好心里准备吧。。。。。。深呼吸。。。

1,for/in:
一种遍历(枚举)对象属性的方法,可以循环我们呢事先不知道的属性。
它可以枚举处用户定义的所有属性,但却不能枚举出某些预定义的属性和方法。
不能枚举的属性通常是继承的属性

删除一个对象的属性:
deletebook.width;
从对象中移除了属性,在删除之后,用for/in将不会枚举该属性,并且用widthinbook也检测不到该属性。

for/in的另一个重要的用途就是跟关联数组一起使用:(如果忘记关联数组的定义,可以看前面的章节。)
for(stoctinport){
value+=get_value(stoct)*port[stoct];
}

2,通用的Object属性和方法:
1):constructor属性:
每个对象都有这个属性,他引用了初始化这个对象的构造函数。
比如:
vard=newDate();//使用Date()构造函数,创建一个对象d;
d.constructor==Date;//true//属性d.constructor引用Date;

这个属性有助于确定一个对象的类型;
比如:
我们想确定一个值的类型是否是Date类型:
If((typeofo==”object”)&&(o.constructor==Date)){
//首先看是否是对象,然后看是否引用Date
}

上面的代码也可以写成:
If((typeofo==”object”)&&(oinstanceofDate)){
//instanceof运算符来检测o.constructor属性的值。
}

3,toStirng()和toLocaleString()方法:
1):toLocaleStirng()返回对象的一个本地化字符串。
toString和toLocaleString一般都返回相同,但在子类中,有点区别:
比如:
Array,Date和Number都定义了返回本地化的值的toLocaleString()方法.

4,hasOwnProperty()和propertyIsEnumerable()方法:
1):hasOwnProperty
vara={x:1,y:2};
vark=a.hasOwnProperty("x");
alert(k)//true
alert(Math.hasOwnProperty("z"));//false
alert(Math.hasOwnProperty("cos"));//true
注:Math,cos():以弧度为单位计算并返回指定角度的余弦值。
propertyIsEnumerable()跟返回的结果跟hasOwnProperty()相同;

4,isPrototypeOf()方法:
如果方法所属的对象是参数的原型对象。
vara={x:1,y:2};
vark1=Object.prototype.isPrototypeOf(a);//o.constructor=Object
vark2=Object.prototype.isPrototypeOf(Function);//Function.constructor=Object
alert(k1)//true
alert(k2)//true

5,数组:
1)创建数组:
数组直接量:
vares=[];
复杂点vares=[[1,{x:1,y:2}],[2,{x:3,y:4}]];
还有一种方式:使用Array()构造函数:
V1:无参数:
vara=newArray();
空数组,和vara=[]相等;

V2:多个参数:
vara=newArray(1,2,3,”tt”);//可以看出直接量定义简单些。

V3:1个数字参数:
vara=newArray(3);
具有3个元素的数组,每个元素的值为undefined;

6,数组的下标(索引):
大小:0<=下标<2的32次方–1;
如果不在范围内,js会讲它转换为一个字符串,作为对象属性的名称;
而不是作为数组的下标;
比如:
a[-1.2]=“test”;//等价于a[“-1.2”]=”test”;
//代码解释:创建一个名为“-1.2”的属性,而不是定义一个新的数组元素。
当前1/2页12下一页阅读全文

相关推荐