基本型別(堆疊資料)
String Number Boolean null undefined symbol(ES6)
參考型別(堆資料)
Array Object Function Date RegExp 等
區分 堆疊小堆大
1.基礎型別是放置在堆疊里面,一般基礎型別的資料都比較小,賦值不影響自身
var a = 1; var b = a; a = 2; console.log(b); // 1
2.參考型別是放置在堆里面,一般參考型別的資料都比較大,而堆疊空間又比較小,所有參考型別都是放置在堆里面,而放置在堆疊空間的是參考型別的地址參考,互相賦值會影響雙方
var obj1 = { name: 'lyj' }; var obj2 = obj1; obj1.name = 'cjy'; console.log(obj2); // {name: 'cjy'}
3.如果參考型別想賦值卻有不想互相影響,可以通過淺克隆方式,如下
1.ES6結構 var obj1 = {name: 'lyj'} var obj2 = {...obj1} 2.JSON大法 var obj1 = {name: 'lyj'} var obj2 = JSON.parse(JSON.stringify(obj1)) 3.函式封裝clone function clone(origin, target) { var target = target || {} for(var prop in origin) { target[prop] = origin[prop] } return target } var obj1 = {name: 'lyj', sex: 'boy'} var obj2 = clone(obj1)
end!!!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/51747.html
標籤:JavaScript
