JavaScript 语言的类型分为:原始(primitive)类型 和 引用(reference)类型。
原始类型:数值类型、大整数类型、布尔类型、字符串类型、符号类型、Undefined类型、Null类型。
引用类型:对象类型、函数类型、数组类型、映射类型、集合类型。
1.数值(Number)类型
类型 范围 包装的引用类型 Number
整数(精确值):Number.MIN_SAFE_INTEGER ≤ n ≤ Number.MAX_SAFE_INTEGER
浮点数(非精确值):±Number.MIN_VALUE ≤ n ≤ ±Number.MAX_VALUE
Number
数值类型同时表示整数和浮点数。因为存储浮点数使用的内存空间是存储整数的两倍,所以在底层 JavaScript 会尽量转换为整数,在无法转换为整数的时候,则使用浮点数。
数值类型还可以使用科学记数法来表示:一个数值(整数或浮点数)后跟一个大写或小写的字母 e
(表示乘以 10
),再跟一个前面的乘以 10
的多少次幂。
//十进制形式
//整数
let a = 8;
//小数点后没有数字,则浮点数1.会被转换为整数1来处理。
let a = 1.;
//小数点后为数字0,则浮点数1.0会被转换为整数1来处理。
let a = 1.0;
//浮点数(小数点后至少有一个数字)
let b = 0.1;
//小数点前没有数字,则会被当成浮点数0.1来处理,但不推荐。
let b = .1;
//科学计数法形式
5e2
5.12e2
数值类型还包括五个特殊的值:
值 描述 示例 Infinity
(正无穷)-Infinity
(负无穷)任何无法表示的最大正数或最小负数。 Number.MAX_VALUE * 10 // Infinity
-Number.MAX_VALUE * 10 // -Infinity
0
(正零)-0
(负零)任何无法表示的最小正数或最大负数。 1/Infinity // 0
-1/Infinity // -0
NaN
(N ot a N umber,非数值)在数学运算中,当遇到一些无法运算的情况时,使用 NaN
表示这种情况,而不是抛出错误。 Infinity/Infinity // NaN
进制 描述 二进制 以 0b
(零和小写字母b) 或 0B
(零和大写字母B) 开头,后续只能包含数字 0 和 1。 八进制 以 0
(零) 或 0o
(零和小写字母o) 或 0O
(零和大写字母O) 开头,后续只能包含数字(0~7)。严格模式下,不支持以 0
(零) 开头。 十六进制 以 0x
(零和小写字母x) 或 0X
(零和大写字母X) 开头,后续只能包含 数字(0~9) 和 字母(a~f 或 A~F)。字母(a~f 或 A~F) 表示数字 10 到 15。
为了提高数值的可读性,下划线(_
)可以用作分隔符,解析时会被 JavaScript 解释器移除。
//作为千分位分隔符
1_000_000_000
0.123_456_789
2.大整数(BigInt)类型
类型 范围 包装的引用类型 BigInt
任意精度 BigInt
可以在一个任意精度整数后跟一个小写字母 n
定义一个大整数。
注意:小写字母 n
只是为了将大整数与下述数值类型中的整数区分。
//二进制
0b01n
//八进制
0o01234567n
//十进制
1234567890n
//十六进制
0x123456789ABCDEFn
关于进制部分,与上述数值类型描述一样。
关于下划线部分,与上述数值类型描述一样。
3.布尔(Boolean)类型
类型 值 包装的引用类型 Boolean
true
、false
Boolean
类型 这些值被 Boolean()
函数转换以后都是 false
BigInt
0n
Number
0
、0.0
、NaN
Boolean
false
String
''
、""
、``
(空字符串)Undefined
undefined
Null
null
4.字符串(String)类型
类型 描述 包装的引用类型 String
详见字符串章节 String
5.符号(Symbol)类型
类型 描述 包装的引用类型 Symbol
详见符号章节 Symbol
6.Undefined类型
类型 值 描述 包装的引用类型 Undefined
undefined
表示变量已声明但未初始化。如果一个变量已声明但未初始化,则此变量会被自动赋予 undefined
值。 ——————
7.Null类型
类型 值 描述 包装的引用类型 Null
null
表示变量已声明且已初始化。如果一个变量将来需要保存对象,但此时又需要初始化时,可以使用 null
值来初始化该变量。 ——————
8.对象(Object)类型
Object
是所有类型的根类型。
9.函数(Function)类型
10.数组(Array)类型
11.映射(Map)类型
12.集合(Set)类型
原创文章,作者:huoxiaoqiang,如若转载,请注明出处:https://www.huoxiaoqiang.com/javascript/javascriptlang/4735.html