基本類型值和引用類型值的區(qū)別

概念:

基本類型值 是指變量在內(nèi)存中存儲時(shí)保存的是變量的值,操作的也是存儲的值

引用類型值 是指變量在內(nèi)存中存儲時(shí)自身保存的是指向?qū)嶋H存儲值位置的索引地址,操作的是地址

分類:

基本類型值:

Number
Boolean
String
null
undefined

引用類型值:

對象(數(shù)組、對象、函數(shù)...)

代碼示例:

基本類型值:

var a = 10;        // 在內(nèi)存中開辟一個(gè)空間,里面存儲10,a存儲的就是這個(gè)值
var b = a;         // 在內(nèi)存中重新開辟一個(gè)空間,里面存儲b的值是10 

// 將b的值賦值為0,只是單純修改b的值,a的值沒有任何變化
b = 0;

// 輸出變量的值
console.log(a);        // 10
console.log(b);        // 0

引用類型值:

// 聲明變量objA,自身存儲了指向值存儲位置的地址
var objA = {
    name: '孫悟空',
    age: 2000
};

// 賦值操作,將objA的地址賦值給objB
var objB = objA;    

// 修改
objB.name = '齊天大圣';

// objA和objB都是存儲了執(zhí)行值位置的地址,所以修改其中任意一個(gè),另外一個(gè)也會跟著變化
console.log(objA.name);    // 齊天大圣
console.log(objB.name);    // 齊天大圣

函數(shù)傳值:

基本類型值變量:

傳入的是變量的值,和變量本身沒有關(guān)系

// 定義變量
var a = 20;

// 定義函數(shù)
function setA (a) {
    // 賦值
    a = 10;
}

// 調(diào)用函數(shù),實(shí)際上變量a的值傳入了函數(shù)內(nèi)部
setA(a);
console.log(a);    // 20

引用類型值變量:

傳入函數(shù)的是變量的引用地址,函數(shù)內(nèi)部如果操作改變了該變量,會影響該變量

// 定義變量
var obj = {
    name: '孫悟空',
    age: 2000
}

// 定義函數(shù)
function setObj (obj) {
    obj.name = '齊天大圣';
}

// 調(diào)用函數(shù)
setObj(obj);

// 打印變量
console.log(obj.name);    // 齊天大圣
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容