學習筆記 JS 陣列Array push相關問題

2022-02-12 06:19:36 字數 644 閱讀 3685

前言:

今天用寫了乙個二維陣列,都賦值為零,然後更新其中乙個值,結果和預期是不一樣,會整列的相同位置都是同乙個值。

1.用chrome的控制台樣例如下:

arrs[2][2] =1的賦值,竟然是三個陣列相同位置都賦值了。

2.分析

最主要原因在於arrs中三個arr,其實都是引用,指向了同一塊記憶體位址,所以,只要乙個變化了,其它引用到的地方也是跟著變化的。

如果重新new出來的新變數,就不會出現這個問題了。

例如如下:

3.總結

17年3月份時,js物件,陣列理解不透切導致的疑問,後來更深入學習了js陣列(其實是物件的一種特例),修正時這篇文章時間是170807。.

JS學習筆記 陣列

ecmas cript 中沒有提供類和介面等的定義,但它卻是一門物件導向的語言,由於它能夠通過其它 方式實現類似高階語言的物件導向功能,這些內容將在後面的文章中進行一步步的總結。此篇僅對 js中物件作簡要說明,重點彙總一些類似於物件的陣列的經常用法。物件建立 上篇提到建立物件的兩種方式 使用new ...

js學習筆記040 稀疏陣列

就是包含從0開始的不連續索引的陣列。a new array 5 沒有元素,但length 5 a 1000 0 賦值新增乙個元素,但是設定length為1001。可以使用in操作符檢測兩者之間的區別 var a1 陣列是 undefined,undefined,undefined var a2 ne...

js學習筆記 044 陣列型別

ecmascript5 判斷陣列型別 array.isarray true array.isarray false 但ecmascript5之前 區分陣列和非陣列物件卻很困難,typeof操作符這裡幫不上忙 陣列返回物件,並且除函式以外的所有物件都是如此。instanceof也只能用於簡單情形如 i...