js基本数据类型有什么特点

JavaScript有7种基本数据类型:Number、String、Boolean、Null、Undefined、Symbol和BigInt,均为不可再分的原始值,存储在栈内存中,赋值时为值的拷贝,具有不可变性,任何操作都生成新值而非修改原值;其中Null的typeof返回"object"属历史bug,Symbol用于唯一属性键,BigInt表示任意大整数;JS存在隐式类型转换,如"5"+3得"53"、"5"-3得2,建议用===避免类型转换问题。

JavaScript的基本数据类型共有7种,它们的特点是不可再分的原始值,存储在栈内存中,操作时直接按值访问。这7种类型分别是:NumberStringBooleanNullUndefinedSymbol(ES6新增)、BigInt(ES2025新增)。

1. 值类型,存储在栈中

基本数据类型的变量保存的是实际的值,赋值时是值的拷贝。

  • 修改一个变量不会影响另一个变量
  • 例如:let a = 10; let b = a; a = 20; 此时b仍是10

2. 不可变性(Immutable)

基本类型的值一旦创建就不能被改变,任何“修改”实际上是创建了新值。

  • String:字符串拼接不会改变原字符串,而是生成新字符串
  • Number:数学运算返回新值,原值不变

3. 类型自动判断与转换

JS会根据上下文自动进行类型转换,这是双刃剑,需注意隐式转换带来的问题。

  • "5" + 3 得到 "53"(字符串拼接)
  • "5" - 3 得到 2(强制转为数字)
  • 使用 === 可避免类型转换,推荐用于比较

4. 各类型简要特点

  • Null:表示“有意为空”,typeof 返回 "object"(历史遗留bug)
  • Undefined:变量声明未赋值,或对象属性不存在时的默认值
  • Symbol:唯一且不可变,常用于对象属性键,防止命名冲突
  • BigInt:表示任意大的整数,通过在整数后加 n 创建,如 100n

基本上就这些。理解基本数据类型的特点,有助于写出更稳定、可预测的JavaScript代码。