上述文章是說明宣告變數的差異,這邊來介紹變數與值的關係: 記憶體 記憶體中,一個值就存放一個空間,一個變數也會佔用一個空間,兩者之間不會有重疊,但是在將值賦予到變數上時,卻會因為值型別的不同,而有不同方式,將這個值賦予到變數上: 傳值 call by value : 當值為原始型別時 傳參考 call by reference : 當值為物件型別時 傳值 call by value : 原始型別 當記憶體中的值為原始型別(number, string, boolean, undefined, null)時,碰到下方情況,會直接將值100,複製一份,存到另外一個記憶體中,並賦予到 b 變數上 let a = 100;
let b = a ;
b += 200; //300 後續,b 變數的值重新賦予值,或是運算,都不會影響到 a 變數的值,因為記憶體空間已經完全不同。