Number类型

    数字类型,代表整数和浮点数,数字可以进行正常的数学运算;

    JS中可以表示的最大数和大于零的最小的数分别为下:

    Number.MAX_VALUE
    1.7976931348623157e+308
    Number.MIN_VALUE 大于0的最小值
    5e-324

    除了常规数字,还有“特殊数值”也属于 number 类型,包括 Infinity 、-Infinity 、 NaN 。Infinity 代表数学概念中的无穷大,比任何数字都要大。NaN 代表一个计算错误,他是一个不正确的或者未定义的数学操作所得到的结果,比如用一个非数字和数字相乘或相除,NaN是粘性的,任何对NaN的进一步数学运算都会返回NaN,只有一个例外:NaN ** 0 的结果为1。

    BigInt类型

    在JavaScript中,number 类型能表示的数字大小有限制,无法表示大于 2的53次方减1 和小于 -(2的53次方减1)的数

    而 BigInt 可以表示任意长度的整数,通过将 n 附加到整数字段的末尾来创建 BigInt 值。

    也可以通过构造函数 BigInt 将括号内的参数转换为 BigInt 类型的数字。

    new BigInt(参数)

    String类型

    JavaScript中的字符串必须被包括在引号中,单引号、双引号、反引号都是可以的。

    单引号和双引号都是“简单引用”,在JavaScript中这两者几乎没有区别,只要别混用就可。

    反引号是“功能扩展”引号,它允许我们通过将变量和表达式包装在 ${…} 中,来将他们嵌入到字符串中。例如:

    let name = “John”; // 嵌入一个变量 alert( Hello, </font>_<font style="color:#E8323C;">${name}</font>_<font style="color:#E8323C;">! ); // Hello, John! // 嵌入一个表达式

    alert( `the result is ${1 + 2}` ); // the result is 3

    (注意:这种嵌入方法只能在反引号中引用,在另外两种引号中这种嵌入方法是不被允许的)

    Boolean类型(逻辑类型)

    boolean 类型仅包含两个值:true 和 false 。

    “null”值

    特殊的 null 值不属于上述任何一种类型。它构成了一个独立的类型,只包含 null 值。

    相比较于其他编程语言,JavaScript 中的 null 不是一个“对不存在的 object 的引用”或者 “null 指针”。JavaScript 中的 null 仅仅是一个代表“无”、“空”或“值未知”的特殊值。

    “undefined”值

    特殊值 undefined 和 null 一样自成类型。undefined 的含义是 未被赋值。如果一个变量已被声明,但未被赋值,那么它的值就是 undefined。我们可以将 undefined 赋值给变量,但是不建议这么做,我们一般给一个空变量赋值为 null ,而 undefined 则保留为未初始化变量的默认值。

    object类型和symbol类型

    object 类型是一个特殊的类型,其他所有类型都被称为“原始类型”(包括symbol类型),因为他们的值只包含一个单独的内容,而 object 类型则用于储存数据的集合和更复杂的实体。

    symbol 类型用于创建对象的唯一标识符。

    注意:数组、函数、日期,不是数据类型,它们都属于对象 Object。

    typeof运算符

    typeof运算符主要是返回参数的类型,当我们想要快速的分类处理不同的数据时,或者对数据类型进行检验的时候,这个运算符很有用。

    对 typeof x 的调用会议字符串的形式返回数据的类型。

    typeof undefined // “undefined”

    typeof 0 // “number”

    typeof 10n // “bigint”

    typeof true // “boolean”

    typeof “foo” // “string”

    typeof Symbol(“id”) // “symbol”

    typeof Math // “object” (1)

    typeof null // “object” (2)

    typeof alert // “function” (3)

    对于最后三个:(1)math 时一个提供数学运算的内建 object。(2)null返回的类型是 object 是typeof返回类型的错误,这个问题源于JavaScript语言早期阶段,但为了兼容性而保留了下来,这是一个错误的行为。(3)对 alert 返回 function ,是因为 alert 在 Javascript 中是一个函数,但是函数并非一个单独的类型,函数隶属于 object 类型,这也是一个 JavaScript 语言早期的错误,从技术上这是错误的,但是实际开发中这个行为还挺方便的。