更多内容,请访问
声明和定义区别
JavaScript-变量类型判断
JavaScript-如何使用变量
JavaScript-undefined和null区别
JavaScript变量类型有6种(新增加的Symbol、BigInt,八种),又将分为两大类:基础数据类型和引用数据类型。
1. 基础数据类型
- null:空对象
- undefined:未定义
- number:数字
- boolean:布尔类型 true/false
- string: 字符串
2. 引用数据类型
- object: 对象
区别:
-
存放位置:简单数据类型存放在栈中,复杂数据类型存放在堆中
栈:容量小、运行速度快、先进后出
堆:容量大、运行速度慢、先进先出
-
简单数据类型的变量是真真实实的数据值,而承载复杂数据类型的变量是变量指针,指向堆中存放的复杂数据。
当我们将一个简单数据赋值给另一个变量时,其实是相当于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