點擊上方藍字關注“小鄭搞碼事”,每天都能學到知識,搞懂一個問題!
在JavaScript中操作數組,是經常要做的一件事,可見正確處理數組的問題是多麼的重要,今天,我通過一道題來聊一下,JavaScript在處理數組時,一定要搞懂(或者記住)的四個重要知識點。
一,看輸出結果
上面這道題輸出結果是一樣的。
輸出:'array 1:length=10 last=g,a,o,m,a,s,h,i'
輸出:'array 2:length=10 last=g,a,o,m,a,s,h,i'
如果這個結果不是你認為那樣, 那說明有幾個點你並沒有搞懂,不管怎樣,我們來看一下這道題涉及的幾個關鍵知識點。
二,分析涉及到哪些知識
第一點:reverse
在調用數組對象的reverse()方法時,不僅會以相反的順序返回數組,還會顛倒數組本身的順序。如上面arr1所示。在進行reverse之後,輸出就是:["g", "n", "e", "h", "z", "o", "a", "i", "x"]。
第二點:返回的是引用
通過reverse方法之後返回的是對數組本身的引用。所以,上面代碼中,arr2僅僅是對arr1的引用,而不是一個副本。因此,當對arr2做任何事情時(即,當我們調用arr2.push(arr3);)時,arr1也會受到影響,因為arr1和arr2只是對同一個對象的引用。
第三點:push
push方法會將整個數組作為單個元素推入數組的末尾。如上代碼所示,arr2的最後一個元素就是arr3。由於返回引用的原因,arr1的最後一個元素也是arr3。
第四點:slice
負下標規定從數組尾部開始算起的位置。也就是說,-1指最後一個元素。
'小鄭搞碼事'.slice(-1)
輸出:"事"
'小鄭搞碼事'.slice(-3,-1)
輸出:"搞碼"
最後總結一下:
代碼寫多了,你自然就發現,這些東西是經常要用的。搞懂讓代碼少出BUG。
閱讀更多 小鄭搞碼事 的文章
關鍵字: 知識點 技術 JavaScript