JS September 09, 2020

学习Javascript应懂得33个概念之原始类型

Words count 2.7k Reading time 2 mins. Read count 0

前言

来自MDN

根据最新的ECMAScript的标准定义,基本类型(基本数值、基本数据类型)是一种既非对象也无方法的数据。在 JavaScript 中,共有7种基本类型:stringnumberbigint(ECMCScript 2020新增)booleannullundefinedsymbol (ECMAScript 2016新增)

多数情况下,基本类型直接代表了最底层的语言实现

所有基本类型的值都是不可改变的。但需要注意的是,基本类型本身和一个赋值为基本类型的变量的区别。变量会被赋予一个新值,而原值不能像数组、对象以及函数那样被改变。

除 Object 以外的所有类型都是不可变的(值本身无法被改变)。

JavaScript 中的基本类型包装对象

除了nullundefined之外,所有的基本类型都应对应的包装对象

Null 类型只有一个值: null
一个没有被赋值的变量会有个默认值 undefined

  • String 为字符串基本类型。

    JavaScript的字符串类型用于表示文本数据

不同于类 C 语言,JavaScript 字符串是不可更改的。这意味着字符串一旦被创建,就不能被修改。但是,可以基于对原始字符串的操作来创建新的字符串。例如:

  • 获取一个字符串的子串可通过选择个别字母或者使用 String.substr().

  • c两个字符串的连接使用连接操作符 (+) 或者 String.concat().

  • Number 为数值基本类型。

    基于 IEEE 754 标准的双精度 64 位二进制格式的值(-(253 -1) 到 253 -1)。它并没有为整数给出一种特定的类型。除了能够表示浮点数外,还有一些带符号的值:+Infinity-InfinityNaN(非数值,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()方法返回基本类型值。

0%