JS:基本类型和引用类型

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]

总结
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/liuxudanhahaha/article/details/122226669