1、a=a++問題
var a = 1;
a = a++;
console.log(a)
自己測試看結果吧。結果有點出乎意料。只能認爲“=”號從新改變了a指向的內存,如果理解錯誤煩請指正。
2、數組中的淺拷貝
var a = [
[1, 2, 3]
]
var b = a.slice();
console.log(b)
b[0].push(4);
console.log(b)
console.log(a)
// 結果如下
[ [ 1, 2, 3 ] ]
[ [ 1, 2, 3, 4 ] ]
[ [ 1, 2, 3, 4 ] ]
因爲a[0]是一個數組是object類型,所以a.slice是淺拷貝,也就是引用複製,所以b[0]和a[0]指向的是同一個內存,導致改變b[0]時a[0]數據跟着改變。