JS中对象与数组一些使用上的相同与不同

来源:互联网 发布:java websocket 编辑:程序博客网 时间:2024/04/29 17:28
var array = [];
var object = {};

1,数组有length属性,对象没有
如果想获得对象的属性的长度,目前只知道通过遍历累加来获得

2,引用对象中元素只能用[],如a[2],引用对象中元素则有2种方法:

var a = {
            1 : "11",
            hello : "hi hello"
};
alert("a.length "+ a.length);
a['1']= "1";

a[1] = a[1] + "2";

a["hello"]= "Myhello";
alert("a.1 = "+ a[1]);
alert("a['hello'] = "+ a["hello"])

对于属性名为字符串的属性,通过a[],也可以通过a.x来访问,比如上面的a.hello和a["hello"]是一样的,注意这里不能写成a[hello],这样写[]里的hello会被认为是一变量名;
对于属性名为数字的属性,只能通过a[x]来访问,比如上面的a[1]或者a['1']是一样的,这里属性名加不加属性都没关系,但是写出a.1或者a."1"就会报错了。

3, 属性是可以直接赋值的,而且是值拷贝

var a = {};
var b = { 1:"a", xx:"b"};
a = b;
delete b;//或者b = null;
alert("a.x = "+ a[1]+ "; a.xx = "+ a.xx)

如以上例子,把对象b赋给a之后,删除b,这时还是可以访问a里面的值,说明这是值拷贝
0 0