JavaScript之 值类型 和 引用类型
值类型
特点:
变量在栈中直接保存值。
常见的 值类型
const s = 'abc' const n = 100 const b = true const s = Symbol('s')
特殊的 值类型
let a // undefined const u = null // 有疑虑,有的说是特殊引用类型,指针指向为空地址的。但红宝书中说明为值类型。
引用类型
特点:
变量在栈中保存堆的内存地址。
常见的 引用类型
const obj = { x: 100 } const arr = ['a', 'b', 'c'] function fn() {} // 特殊引用类型,因为不用于存储数据,所以没有“拷贝、复制函数”这一说
typeof 运算符
能判断:
所有常见值类型('string'、'number'、'boolean'、'symbol')
特殊值类型('undefined')
引用类型('function')
不能判断:
对象、数组、null。因为这三个都被识别为 ==> 'object'
能识别引用类型为'object',不能继续判断(数组 和 对象)
识别特殊值类型null也为'object',所以不能判断(null)