1.4JavaScript语言的类型(Type)

JavaScript 语言有两种类型:原始类型(Primitive Type) 和 引用类型(Reference Type)。

原始类型包括:大整数类型、数值类型、布尔类型、字符串类型、符号类型、Undefined类型、Null类型。

引用类型包括:对象类型、函数类型、数组类型、映射类型、集合类型、生成器类型、期约类型。

1.大整数类型

可以在一个整数字面量后面加 n 定义一个 BigInt 类型的数字。

0b11101001010101010101n   // 955733
0o777777777777n           // 68719476735
123456789123456789n       // 123456789123456789
0x123456789ABCDEFn        // 81985529216486895
类型范围
BigInt任意精度整数

关于进制部分,与下述数值(Number)类型描述一样。

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

2.数值类型

数值类型遵循IEEE 754二进制浮点算术标准

数值类型表示整数和浮点数。虽然用同一种类型来表示整数和浮点数,但存储浮点数使用的内存空间是存储整数的两倍,所以在底层会用不同的处理方式对待整数和浮点数。

//示例
//整数
let a = 88;
//小数点后没有数字,会被当成整数1来处理。
let a = 1.;
//小数点后为数字0,会被当成整数1来处理。
let a = 1.0;

//浮点数(小数点后至少有一个数字)
let b = 0.1;
//小数点前无数字,会被当成浮点数0.1来处理,但不推荐。
let b = .1;
类型范围
Number±5e-324
±1.797 693 134 862 315 7e+308

数值类型还包括五个特殊的值:+0(正零)、-0(负零)、正无穷(Infinity)、负无穷(-Infinity)、非数值(NaN,Not a Number)。+0(正零)、-0(负零) 与 0(零) 一样,只是书写方式不同而已。

进制描述
二进制以 0b(零和小写字母b) 或 0B(零和大写字母B) 开头,后续只能包含数字 0 和 1。
八进制以 0(零) 或 0o(零和小写字母o) 或 0O(零和大写字母O) 开头,后续只能包含数字(0~7)。严格模式下,不支持以 0(零) 开头。
十进制单个数字 0(零)。或 以 1~9 开头,后续只能包含数字(0~9)。
十六进制以 0x(零和小写字母x) 或 0X(零和大写字母X) 开头,后续只能包含 数字(0~9) 和 字母(a~f 或 A~F)。字母(a~f 或 A~F) 表示 数字 10 到 15。

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

1_000_000_000_000
1_050.95
0b1010_0001_1000_0101
0o2_2_5_6
0xA0_B0_C0
1_000_000_000_000_000_000_000n

3.布尔类型

类型
Booleantrue 或 false(其它的大小写混写形式是有效的标识符,但不是布尔值)

以下类型中的一些值会被认为是“假”,除此之外的任何其它值(包括 true)都被认为是”真“。

类型这些值会被认为是“假”
BigInt0n
Number0+0-0NaN
Booleanfalse
String''""``(空字符串)
Undefinedundefined
Objectnull

4.字符串类型

类型描述
String具体见字符串章节。

5.符号类型

类型描述
Symbol具体见符号章节。

6.Undefined类型

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

7.Null类型

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

8.对象类型

Object 是所有类的基类。

类型描述
Object具体见类章节。

9.函数类型

类型描述
Function具体见函数章节。

10.数组类型

类型描述
Array具体见数组章节。

11.映射类型

类型描述
Map具体见映射章节。

12.集合类型

类型描述
Set具体见集合章节。

13.生成器类型

类型描述
Generator具体见生成器章节。

14.期约类型

类型描述
Promise具体见期约章节。

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

(1)
huoxiaoqiang的头像huoxiaoqiang
上一篇 2020年8月3日
下一篇 2020年8月5日

相关推荐

  • 2.12JavaScript语言的可见性(Visibility)

    JavaScript 语言成员的可见性只支持 public 和 private,不支持 protected。 成员的可见性默认是 public,无需在成员标识符前显式添加。 可以通过在成员标识符前添加 # 的方式来声明 private 成员,# 也是标识符的一部分,所以操作 private 成员时必须带上 #。 目前,…

  • 1.7JavaScript语言的函数(Function)

    1.函数声明 函数声明是 Function 类型的实例,函数名相当于存储这个实例的变量或常量。 2.函数分类 2.1全局函数 名称 修饰符 全局函数 —————— 2.2成员方法 名称 修饰符 静态方法(类) static 实例方法(类) —————— 静态访问器属性(类) static 实例访问器属性(类) ————…

  • 2.3JavaScript原始类型之符号(Symbol)

    一个符号实例用于表示一个唯一的标识符。 1.创建符号实例 可以将 Symbol() 函数用作构造函数创建符号实例。 注意:符号实例没有字面量创建方式。 注意:Symbol() 函数不可以用作类构造函数与 new 关键字一起使用创建符号实例。 Symbol() 构造函数可选地接受一个字符串实参,字符串实参仅仅作为对符号实…

发表回复

登录后才能评论