JavaScript 语言有两种类型:原始类型(Primitive Type) 和 引用类型(Reference Type)。
原始类型是不可变的(immutable),引用类型是可变的(mutable)。
原始类型包括:大整数(BigInt)、数值(Number)、布尔(Boolean)、字符串(String)、符号(Symbol)、未初始化(Undefined)、空(Null)。
引用类型包括:对象(Object)、函数(Function)、数组(Array)、映射(Map)、集合(Set)、生成器(Generator)、期约(Promise)。
1.大整数(BigInt)类型
可以用在一个整数字面量后面加 n
的方式定义一个 BigInt
,比如:12345n
。
类型 | 范围 | 对象创建方式 |
BigInt | 任意精度整数 | 1.支持字面量 2.支持BigInt()构造函数,不支持new BigInt()构造函数打包方式 |
进制 | 描述 |
二进制 | 以 0b (零和小写字母b) 或 0B (零和大写字母B),后续只能包含数字 0 和 1。 |
八进制 | 以 0 (零) 或 0o (零和小写字母o) 或 0O (零和大写字母O),后续只能包含数字(0-7)。严格模式下,不支持以 0 (零) 开头。 |
十进制 | 没有 0 (零) 等前缀,后续只能包含数字(0-9)。 |
十六进制 | 以 0x (零和小写字母x) 或 0X (零和大写字母X),后续只能包含数字(0-9)和字母(a~f 或 A~F)。 |
2.数值(Number)类型
数值类型相当于其它语言的浮点数类型。
数值类型还包括三个特殊的值:非数值(NaN
,Not a Number)、正无穷(Infinity
)、负无穷(-Infinity
)。
类型 | 范围 | 对象创建方式 |
Number | 浮点数类型遵循IEEE 754二进制浮点算术标准。 | 1.支持字面量 2.支持Number()构造函数,支持new Number()构造函数打包方式 |
关于进制部分,与上述大整数(BigInt)类型描述一样。
3.布尔(Boolean)类型
类型 | 值 | 对象创建方式 |
Boolean | true 或 false(两个值都区分大小写) | 1.支持字面量 2.支持Boolean()构造函数,支持new Boolean()构造函数打包方式 |
4.字符串(String)类型
类型 | 对象创建方式 |
String | 1.支持字面量 2.支持String()构造函数,支持new String()构造函数打包方式 |
5.符号(Symbol)类型
类型 | 对象创建方式 |
Symbol | 1.不支持字面量 2.支持Symbol()构造函数,不支持new Symbol()构造函数打包方式 |
6.未初始化(Undefined)
类型 | 值 | 描述 |
Undefined | undefined | 表示变量已声明但未初始化。任何时候,只要已声明但未初始化的变量,都会被自动赋予 undefined 值。 |
7.空(Null)类型
类型 | 值 | 描述 |
Null | 只有一个值 null(区别大小写) | 表示变量已声明且已初始化。任何时候,只要变量需要保存对象,而当时又没有那个对象可保存,就需要 null 来初始化该变量。 |
8.对象(Object)类型
Object
是所有对象的基类。
类型 | 对象创建方式 |
Object | 1.支持字面量 2.支持Object()构造函数,支持new Object()构造函数 3.支持new 类名()构造函数 |
9.函数(Function)类型
类型 | 对象创建方式 |
Function | 1.支持字面量 2.支持Function()构造函数,支持new Function()构造函数 |
10.数组(Array)类型
类型 | 对象创建方式 |
Array | 1.支持字面量 2.支持Array()构造函数,支持new Array()构造函数 |
11.映射(Map)类型
类型 | 对象创建方式 |
Map | 1.不支持字面量 2.不支持Map()构造函数,支持new Map()构造函数 |
12.集合(Set)类型
类型 | 对象创建方式 |
Set | 1.不支持字面量 2.不支持Set()构造函数,支持new Set()构造函数 |
13.生成器(Generator)类型
类型 | 对象创建方式 |
Generator | 从生成器函数返回。 |
14.期约(Promise)类型
类型 | 对象创建方式 |
Promise | 1.不支持字面量 2.不支持Promise()构造函数,支持new Promise()构造函数 |
原创文章,作者:huoxiaoqiang,如若转载,请注明出处:https://www.huoxiaoqiang.com/javascript/javascriptlang/4735.html