javascriptの勉強をしております。
配列をコピーする際にコピーの仕方による挙動の違いに少し混乱してしまったので、確認させて下さいませ!
javascript
1var listA = []; 2var listB = [1,2,3]; 3 4listA = listB.concat(); 5 6console.log(listA); // => [1, 2, 3] 7console.log(listB); // => [1, 2, 3] 8 9listB.shift() 10console.log(listA); // => [2, 3] 11console.log(listB); // => [1,2, 3] 12 13console.log(listA[1] === listB[0]) // => true
javascript
1var listA = []; 2var listB = [1,2,3]; 3 4listA = listB; 5console.log(listA); // => [1, 2, 3] 6console.log(listB); // => [1, 2, 3] 7 8listB.shift() 9console.log(listA); // => [2, 3] 10console.log(listB); // => [2, 3] 11 12console.log(listA[0] === listB[0]) // => true
1つ目の方はlistBに入った配列の箱への参照自体をlistAにコピーしたという認識で合ってますでしょうか?
逆に2つ目の方はlistBに入った配列が持つ各値への参照をlistAにコピーしたという認識でよろしいでしょうか?
非常に基礎的な質問で恐縮ですが、ご回答頂けると助かります。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。