08 变量类型相关的面试
typeof 能判断哪些类型
typeof 运算符是 JavaScript 中用于确定一个变量或表达式的数据类型的运算符。它返回一个字符串,表示被检查的操作数的数据类型。
- 识别所有值类型
- 识别函数
- 判断是否是引用类型(不可再细分)
具体查看 03.typeof 运算符
何时使用 === 何时使用 ==
==:相等运算符,它会进行类型转换后再进行比较。===:全等运算符,它不会进行类型转换,只有当两个操作数的类型和值都相同时,才会返回true。
具体查看 07.相等运算符
值类型和引用类型的区别
- 值类型:基本数据类型,按值访问,存储在栈内存中。
- 引用类型:引用数据类型,按引用访问,存储在堆内存中。
具体查看 02.值类型和引用类型的区别
javascript
// 值类型
const a = 100
const b = a
b = 200
console.log(a) // 100
// 引用类型
const obj1 = { x: 100, y: 200 }
const obj2 = obj1
obj2.x = 300
console.log(obj1) // { x: 300, y: 200 }
let x1 = obj1.x // x1 = 300
obj2.x = 101 // obj2 = { x: 101, y: 200 }
x1 = 102 // x2 不会影响 obj1 或 obj2
console.log(obj1) // { x: 101, y: 200 }
console.log(x1) // 102手写深拷贝
- 浅拷贝:拷贝第一层,如果第一层有引用类型,拷贝的是引用。
- 深拷贝:拷贝多层,每一层都拷贝。
- 注意判断值类型和引用类型
- 注意判断是数组还是对象
- 递归
具体查看 04.JS 深拷贝