你所不知道的javascript數組特性

工作中,我們經常使用js的數組,但是,下面的東西你見過嗎?

 

1,文本下標:

 

1 var  a=[];

2 a[-1]=1;  

你想過數組的下標為負數的情況嗎?我們對數組的下標規定從0開始。但是上面那麼寫也還是可以的。不過,請看:

 

1 console.log(a.length); //0

2 console.log(a[-1]); // 1

3 console.log(a["-1"]);//1

4 a.hasOwnProperty(-1); //true

這個說明此處還是以對象的屬性存儲的。

 

2,二維數組:

 

復制代碼

1 var a = [];

2 a[0,0]=1;

3 a[0,1]=2;

4 a[1,0]=3;

5 a[1,1]=4;

7 console.log(a.length); //2

8 console.log(a[0]); //3

9 console.log(a[1]); //4

復制代碼

js本身是不支持二維數組的,所以上面的length長度為2,它的內部實現是將二維數組小標當成逗號表達式,所以隻有最有一個值有效。

 

如果你非要實現二維數組,那麼也是可以的:

 

1 var  a = [1];

2 var  b=[];

3 b[0]=a;

4 console.log(b[0][0]); //1

3,對象下標:

 

當數組的下標為對象時,js會試圖將它轉化為數值,如果不行,則把它轉化為字符串。

 

1 var   a = [];

2 var b ={c:1};

3 a[b]=2;

4 console.log(a[b]);//2

發佈留言