js 要注意的事項

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]數據跟着改變。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章