前端/移动开发面试题更新 2026-08-05

在JavaScript中,内置数据类型分为哪几类?请说明各自的特点并比较它们之间的主要差异。

前端/移动开发技术原理JavaScript

考察说明

考查对JavaScript语言基础数据类型的掌握程度及其核心区别。

回答思路

  1. 【回答框架 1】JavaScript数据类型分为原始类型和引用类型。原始类型包括Undefined、Null、Boolean、Number、String、Symbol和BigInt;引用类型主要指Object,以及其子类型如Array、Function、Date等。
  2. 【回答框架 2】核心区别在于存储方式与复制行为。原始类型值直接存储在栈内存中,按值访问和复制;引用类型值存储在堆内存中,栈中保存指向堆内存的地址,按引用访问和复制。
  3. 【回答框架 3】原始类型不可变,操作时产生新值;引用类型可变,修改属性会影响所有引用该对象的变量。类型判断方面,typeof对原始类型基本可区分,但对Null返回object;引用类型需要用instanceof或Object.prototype.toString区分。
  4. 【回答框架 4】比较时,原始类型比较值是否相等;引用类型比较引用地址是否相同。字符串、数字等在比较时可能出现隐式转换,需注意相等运算符与全等运算符的区别。
  5. 【回答框架 5】原始类型中Symbol是唯一且不可变的,BigInt用于表示任意精度整数;包装对象如new Number是引用类型,与字面量原始值在类型判断和比较行为上存在差异。
  6. 【关键点 1】JavaScript数据类型分为原始类型与引用类型,原始类型共7种,引用类型核心为Object。
  7. 【关键点 2】原始类型按值存储与复制且不可变,引用类型按引用存储与复制且可变。
  8. 【关键点 3】typeof用于判断多数原始类型,但null返回object;引用类型判断需instanceof或Object.prototype.toString。
  9. 【关键点 4】原始类型比较值,引用类型比较引用地址。
  10. 【关键点 5】Symbol与BigInt分别解决唯一标识与大整数需求。
  11. 【易错点 1】误将null判断为对象,忽略typeof null返回object的特殊性。
  12. 【易错点 2】混淆原始类型与包装对象,如'1'与new Number(1)在typeof和比较行为上不同。
  13. 【易错点 3】使用==比较时忽略隐式类型转换导致意外结果。