您的位置:首页 > Web前端 > JavaScript

你所不知道的javascript数组特性

2014-04-03 18:56 323 查看
工作中,我们经常使用js的数组,但是,下面的东西你见过吗?

1,文本下标:

var  a=[];
a[-1]=1;


你想过数组的下标为负数的情况吗?我们对数组的下标规定从0开始。但是上面那么写也还是可以的。不过,请看:

console.log(a.length); //0
console.log(a[-1]); // 1
console.log(a["-1"]);//1
4 a.hasOwnProperty(-1); //true


这个说明此处还是以对象的属性存储的。

2,二维数组:

var a = [];
a[0,0]=1;
a[0,1]=2;
a[1,0]=3;
a[1,1]=4;

console.log(a.length); //2
console.log(a[0]); //3
console.log(a[1]); //4


js本身是不支持二维数组的,所以上面的length长度为2,它的内部实现是将二维数组小标当成逗号表达式,所以只有最有一个值有效。

如果你非要实现二维数组,那么也是可以的:

var  a = [1];
var  b=[];
b[0]=a;
console.log(b[0][0]); //1


3,对象下标:

当数组的下标为对象时,js会试图将它转化为数值,如果不行,则把它转化为字符串。

var   a = [];
var b ={c:1};
a[b]=2;
console.log(a[b]);//2


开心一刻:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: