Skip to content

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 深拷贝