JS分为8种内置类型,又分为基础类型和引用类型
# 基础类型
- Number、String、Boolean、Undefined、Null、Symbol、BigInt
- Symbol类型的对象永不相等,即使传入相同的值,可以用来解决属性键名冲突的问题,用于标记
- Number中有一种特殊的是NaN,用于表示一个本来要返回数值的操作数未返回数值的情况,用isNaN判断
NaN === NaN // false
NaN == NaN // false
NaN / 10 // NaN
isNaN(NaN) // true
isNaN(1) // false
typeof NaN // number
1
2
3
4
5
6
2
3
4
5
6
# BigInt
- BigInt是谷歌67版加入的类型,用于安全存储、操作较大的整数
- 用n为后缀表示为bigint(10n),或者用BigInt(1)创建、(BigInt(1) === 1n)
- BigInt除了一元加号不能运算,其他的都能进行运算
10n + 20n // 30n
20n - 10n // 10n
+10n // typeError,因为一元加表示将后面转换为number,而bigint不能转换为number
-10n // -10n
10n * 10n // 100n
10n / 10n // 1n
10n ** 3n // 1000n
10n % 3n // 1n
const x = 10n
++x // 11n
--x // 10n
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
- 除法运算符会自动向下取整
25 / 10 // 2.5
25n / 10n // 2n
1
2
2
# 引用类型
Object(普通object、Array、Math、Date、Function、RegExp)