關於JS 按值引用還是按位址引用

2021-10-17 18:22:25 字數 528 閱讀 7334

好久不見,甚是想念

今天你敲**了嗎!?今天我們來聊聊js 中 按值引用和按位址引用這個話題

先給出結論哦~

基本型別按值引用,物件型別按位址引用

let a =

;let b = a;

a.val =1;

// 此時 a → , b →

a =;

// 此時 a → {}, b →

1、在js中,以上**段中的a其實只是儲存了乙個記憶體中的位址,每次使用a的時候其實是通過位址去找到真正的{}

2、而將a賦值給b,其實就是將a儲存的位址複製給b乙份,然後呼叫b也會去找到和a相同位址的{}

a.val = 1就是將a位址指向的物件{}增加乙個值為1的屬性val

3、因為b儲存的位址也指向同乙個物件,所以看起來就像是b也在同步變化。其實b儲存的位址並沒有變化。

4、a = {}則將乙個新的{}的位址賦值給了a,此時覆蓋掉了原來儲存的物件的位址,然而b所儲存的位址仍然指向原來的

希望對你有所幫助

js函式傳參是按值傳遞還是按引用傳遞?

基本型別 引用型別 閒扯完了,開始寫今天要總結的基礎知識。基本型別 undefined null boolean number string五種 簡單的資料段 引用型別 object 由多個值構成 兩種型別在使用上的區別 複製變數 這塊好理解,看乙個例子的對比就秒懂 基本型別 var num1 5 ...

JS按值傳遞與按引用傳遞小結

js的基本型別,是按值傳遞的。var a 1 function foo x foo a console.log a 仍為1,未受x 2賦值所影響 再來看看物件的傳遞 var obj function foo o foo obj console.log obj.x 3,被修改了 var obj fun...

JavaScript 按值傳遞 按引用傳遞

1 值的比較 引用的比較 首先,原始值的比較是值的比較 只有在它們值相等的時候它們才相等 比如簡單的 var a1 10 var a2 10 console.log a1 a2 true 其次,物件的比較並非值的比較 物件的比較均是引用的比較,當且僅當它們引用同乙個基物件時,它們才相等。即使兩個物件...