1.4JavaScript语言的类型(Type)

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 * 2 // Infinity
-Number.MAX_VALUE * 2 // -Infinity
0(正零)
-0(负零)
任何无法表示的最小正数或最大负数。1/Infinity // 0
-1/Infinity // -0
NaN(Not a Number,非数值)在数学运算中,当遇到一些无法运算的情况时,使用 NaN 表示这种情况,而不是抛出错误。Infinity/Infinity // NaN
进制描述
二进制以 0B(零和大写字母B) 或 0b(零和小写字母b) 开头,后续只能包含 数字(0~1)。
八进制以 0O(零和大写字母O) 或 0o(零和小写字母o) 开头,后续只能包含 数字(0~7)。
十六进制以 0X(零和大写字母X) 或 0x(零和小写字母x) 开头,后续只能包含 数字(0~9)、字母(A~Fa~f)。字母(A~Fa~f) 表示 数字(10~15)。

为了提高数值的可读性,下划线(_)可以用作分隔符,解析时会被 JavaScript 解释器移除。

//作为千分位分隔符
1_000_000_000
0.123_456_789

2.大整数(BigInt)类型

类型范围包装的引用类型
BigInt任意精度BigInt

可以在一个任意精度整数后跟一个小写字母 n 定义一个大整数。

注意:小写字母 n 只是为了将大整数与下述数值类型中的整数区分。

//二进制
0b01n
//八进制
0o01234567n
//十进制
1234567890n
//十六进制
0x123456789ABCDEFn

关于进制部分,与上述数值类型描述一样。

关于下划线部分,与上述数值类型描述一样。

3.布尔(Boolean)类型

类型包装的引用类型
BooleantruefalseBoolean
类型这些值被 Boolean() 函数转换以后都是 false
BigInt0n
Number00.0NaN
Booleanfalse
String空字符串
Undefinedundefined
Nullnull

4.字符串(String)类型

类型描述包装的引用类型
String详见字符串章节String

5.符号(Symbol)类型

类型描述包装的引用类型
Symbol详见符号章节Symbol

6.Undefined类型

类型描述包装的引用类型
Undefinedundefined表示变量已声明但未初始化。如果一个变量已声明但未初始化,则此变量会被自动赋予 undefined 值。——————

7.Null类型

类型描述包装的引用类型
Nullnull表示变量已声明且已初始化。如果一个变量将来需要保存对象,但此时又需要初始化时,可以使用 null 值来初始化该变量。——————

8.对象(Object)类型

Object 是所有类型的根类型。

类型描述
Object详见类章节

9.函数(Function)类型

类型描述
Function详见函数章节

10.数组(Array)类型

类型描述
Array详见数组章节

11.映射(Map)类型

类型描述
Map详见映射章节

12.集合(Set)类型

类型描述
Set详见集合章节

原创文章,作者:huoxiaoqiang,如若转载,请注明出处:https://www.huoxiaoqiang.com/javascript/javascriptlang/4735.html

huoxiaoqiang的头像huoxiaoqiang

相关推荐

  • 2.2JavaScript类型之类(Class)

    1.类定义 类声明、类表达式都是 Function 类型的实例。 1.1类声明 1.2类表达式 注意:命名类表达式的右侧依然是类表达式,不是类声明。 注意:命名类表达式的类名 C2 的作用域仅仅为类体,不可以在类体外使用。 2.成员定义 注意:JavaScript 语言不支持成员常量。 3.继承 3.1方法继承 一个子…

  • 1.7JavaScript语言的函数(Function)

    1.函数定义 函数声明、函数表达式、箭头函数表达式都是 Function 类型的对象。 1.1函数声明 1.2函数表达式 注意:命名函数表达式的右侧依然是函数表达式,不是函数声明。 注意:命名函数表达式的函数名 f2 的作用域仅仅为函数体,比如可用于函数递归,但不可以在函数体外使用。 1.3箭头函数表达式 2.函数作用…

  • 2.7JavaScript类型之集合(Set)

    集合没有索引。 集合的元素可以是任何 JavaScript 数据类型,且不必都是同一个类型。 集合的元素是无序的,但迭代时是有序的。 集合的元素的个数(长度)可以动态改变,可以添加、删除元素,不可以更改元素。 集合的元素不可以重复。 1.集合声明 2.访问集合 3.集合长度 注意:size 是只读属性。

发表回复

登录后才能评论