JS中的基本型別和參考型別
1.基本型別:number、boolean、string、undefined、 null
2.參考型別:array、object、function、regexp…
一、基本型別
1.基本型別的值是不可變得
var name = 'apple';
name.toUpperCase(); // 輸出 'APPLE'
console.log(name); // 輸出 'apple'
2.基本型別的比較是值的比較
var a = 1;
var b = true;
console.log(a == b);//true
var a = 'purpro';
var b = 'purpro';
console.log(a === b);//true
由上面可得,基本型別值只比較值是否相等
3.基本型別的變數是存放在堆疊區的(堆疊區指記憶體里的堆疊記憶體)當 變數傳值時,記憶體中產生新的副本,即進行克隆

如上,var b = a,在記憶體中進行一次克隆
二、參考型別
1.參考型別值是可變的
var obj = {
a: 1,
b: 2,
c: 3
};
delete obj.a;
console.log(obj.a) //undefined
2.參考型別的比較是參考的比較,即參考型別進行相等判斷時,會比較址是否相等,也就是說它會比較是否為記憶體中的同一個東西
var obj1 = {
a: 1,
b: 2,
c: 3
};
var obj2 = {
a: 1,
b: 2,
c: 3
};
console.log(obj1 == obj2); // false
console.log(obj1 === obj2); // false
// 在進行參考型別值得的== === 時,JS會比較兩個物件是不是記憶體中的同一個物件
console.log({} == {}); // false
console.log({} === {}); // false
// 兩個空物件在記憶體中不同的區域
3.當 變數傳值時,記憶體中不產生新的副本,而是讓新變數指向同一個物件

不會進行克隆,指向了同一個陣列
var arr1 = [1,2,3,4];
var arr2 = arr1; arr1.push(5);
console.log(arr1);
console.log(arr2);
//(5)[1, 2, 3, 4, 5]
//(5)[1, 2, 3, 4, 5]
總結

轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/399100.html
標籤:其他
上一篇:離子工具列邊框顏色不起作用-如何使用檔案中的自定義CSS屬性?
下一篇:我可以將控制臺輸出鏡像到網站嗎?
