前言
根据最新的ECMAScript的标准定义,基本类型(基本数值、基本数据类型)是一种既非对象也无方法的数据。在 JavaScript 中,共有7种基本类型:string,number,bigint(ECMCScript 2020新增),boolean,null,undefined,symbol (ECMAScript 2016新增)。
多数情况下,基本类型直接代表了最底层的语言实现。
所有基本类型的值都是不可改变的。但需要注意的是,基本类型本身和一个赋值为基本类型的变量的区别。变量会被赋予一个新值,而原值不能像数组、对象以及函数那样被改变。
除 Object 以外的所有类型都是不可变的(值本身无法被改变)。
JavaScript 中的基本类型包装对象
除了null与undefined之外,所有的基本类型都应对应的包装对象
Null类型只有一个值:null
一个没有被赋值的变量会有个默认值undefined
String为字符串基本类型。JavaScript的字符串类型用于表示文本数据
不同于类 C 语言,JavaScript 字符串是不可更改的。这意味着字符串一旦被创建,就不能被修改。但是,可以基于对原始字符串的操作来创建新的字符串。例如:
获取一个字符串的子串可通过选择个别字母或者使用
String.substr().c两个字符串的连接使用连接操作符 (+) 或者
String.concat().Number为数值基本类型。基于 IEEE 754 标准的双精度 64 位二进制格式的值(-(253 -1) 到 253 -1)。它并没有为整数给出一种特定的类型。除了能够表示浮点数外,还有一些带符号的值:
+Infinity,-Infinity和NaN(非数值,Not-a-Number)BigInt为大整数基本类型。BigInt类型是JavaScript中的一个基础的数值类型,可以用任意精度表示整数。使用BigInt,您可以安全地存储和操作大整数,甚至可以超过数字的安全整数限制。BigInt是通过在整数末尾附加 n 或调用构造函数来创建的。通过使用常量Number.MAX_SAFE_INTEGER,您可以获得可以用数字递增的最安全的值。通过引入 BigInt,您可以操作超过Number.MAX_SAFE_INTEGER的数字。
可以对BigInt使用运算符+、*、-、**和%,就像对数字一样。BigInt 严格来说并不等于一个数字,但它是松散的。
在将BigInt转换为Boolean时,它的行为类似于一个数字:if、||、&&、Boolean 和!。
BigInt不能与数字互换操作。否则,将抛出TypeError。
> const x = 2n ** 53n;
9007199254740992n
> const y = x + 1n;
9007199254740993n
Boolean为布尔基本类型。布尔表示一个逻辑实体,可以有两个值:true 和 false。
Symbol为字面量基本类型。符号类型是唯一的并且是不可修改的, 并且也可以用来作为Object的key的值(如下).
这个包裹对象的valueOf()方法返回基本类型值。