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种类型分别是:Number、String、Boolean、Null、Undefined、Symbol(ES6新增)、BigInt(ES2020新增)。
1. 值类型,存储在栈中
基本数据类型的变量保存的是实际的值,赋值时是值的拷贝。
- 修改一个变量不会影响另一个变量
- 例如:let a = 10; let b = a; a = 20; 此时b仍是10
2. 不可变性(Immutable)
基本类型的值一旦创建就不能被改变,任何“修改”实际上是创建了新值。
技术上面应用了三层结构,AJAX框架,URL重写等基础的开发。并用了动软的代码生成器及数据访问类,加进了一些自己用到的小功能,算是整理了一些自己的操作类。系统设计上面说不出用什么模式,大体设计是后台分两级分类,设置好一级之后,再设置二级并选择栏目类型,如内容,列表,上传文件,新窗口等。这样就可以生成无限多个二级分类,也就是网站栏目。对于扩展性来说,如果有新的需求可以直接加一个栏目类型并新加功能操作
- String:字符串拼接不会改变原字符串,而是生成新字符串
- Number:数学运算返回新值,原值不变
3. 类型自动判断与转换
JS会根据上下文自动进行类型转换,这是双刃剑,需注意隐式转换带来的问题。
- "5" + 3 得到 "53"(字符串拼接)
- "5" - 3 得到 2(强制转为数字)
- 使用 === 可避免类型转换,推荐用于比较
4. 各类型简要特点
- Null:表示“有意为空”,typeof 返回 "object"(历史遗留bug)
- Undefined:变量声明未赋值,或对象属性不存在时的默认值
- Symbol:唯一且不可变,常用于对象属性键,防止命名冲突
- BigInt:表示任意大的整数,通过在整数后加 n 创建,如 100n
基本上就这些。理解基本数据类型的特点,有助于写出更稳定、可预测的JavaScript代码。









