更多内容,请访问
声明和定义区别
JavaScript-变量类型判断
JavaScript-如何使用变量
JavaScript-undefined和null区别
JavaScript变量类型有6种(新增加的Symbol、BigInt,八种),又将分为两大类:基础数据类型和引用数据类型。
区别:
存放位置:简单数据类型存放在栈中,复杂数据类型存放在堆中
栈:容量小、运行速度快、先进后出
堆:容量大、运行速度慢、先进先出
简单数据类型的变量是真真实实的数据值,而承载复杂数据类型的变量是变量指针,指向堆中存放的复杂数据。
当我们将一个简单数据赋值给另一个变量时,其实是相当于copy了一份数据给赋值的变量。去修改a时,不影响b,b还是赋值的值。
例如:
let a = 'a';
const b = a; // 相当于:const b = 'a';
a = 'b';
console.log(b); // 输出:a
当我们将一个引用数据类型赋值给另一个变量时,其实是赋值的是一个指针(指向堆内存中的数据的一个指针),此时两个变量都是指向堆内存数据的指针,当我们修改变量时(这边的改变变量指的是给对象添加属性),其实改变的堆内存中数据,那么相应的另一变量也能访问到新添加的属性。
const a = { name: 'xiaoli' };
const b = a;
a.age = 18;
console.log(b.age); // 输出:18