js目前有8种数据类型:7种基本数据类型+引用数据类型。
基本数据类型:
ES6之前有5种 数字类型(Number)、字符串类型(String)、布尔类型(Boolean)、空类型(Null)、未定义类型(Undefined)
Null与Undefined的区别:定义但未赋值为Null,未定义为Undefined。
ES6 新增2种 大数值类型(Bigint)、独一无二类型(Symbol)。
Bigint应用场景:Number数据类型的安全显示范围为 - 2的53次方-1 到 2的53次方-1 之间,超过此范围就可能会丢失精度,所以需要Bigint来显示较大的数字类型。
Symbol特性及应用场景:
特性:
1.独一无二性:每个 Symbol 值都是唯一的,无法通过简单的值比较相等。
2.不可变性:Symbol 值一旦创建,就不能被修改。
3.作为属性键:Symbol 可以作为对象的属性键,用于创建对象的私有属性或隐藏属性,以避免命名冲突。
4.隐藏性:使用 Symbol 作为属性键,这些属性对于常规的对象遍历和操作是不可见的。
应用场景:
1.消除在代码中多次出现、与代码形成强耦合的某一个具体的字符串或者数值。例:Symbol("name")=/=Symbol("name"),虽然看起来都是name但是他俩并不相等,因为Symbol定义的是第一无二的两个字符串。
2.为对象定义一些非私有的、但又希望只用于内部的方法
引用数据类型:数组(Array)、对象(Object)、函数(Function)、日期(Date)、正则(RegExp)、数学(Math)等。