Logo
Section 1 / 7

数据类型和算术运算符

了解 JavaScript 中可用的不同数据类型和算术运算符。

检查点

数据类型和算术运算符

了解 JavaScript 中可用的不同数据类型和算术运算符。

...
JavaScript 原始类型

简介

大多数编程语言都允许你创建表示数字、文本中的字符,或更长文本的值。你也可以使用布尔值来表示真和假的概念。此外,还可以创建表示“无值”状态的值。这些值统称为 原始数据类型。

“原始”一词并非带有贬义。这些数据类型并不比 JavaScript 中其他类型低级。名称“原始”源于它们的简单性。你之后将学习的其他数据类型是 复合类型,它们由多个原始数据类型组成。

原始类型

在 JavaScript 中,共有七种原始类型:

  1. 布尔类型(true 或 false)
  2. 数字类型(包括整数如 1、-2,以及浮点数如 1.1、2e-3)
  3. 字符串类型(用单引号 '' 或双引号 "" 表示,例如 'ES6 实践' 或 "ES6 实践")
  4. null 类型(用 null 表示)
  5. undefined(用 undefined 表示)
  6. bigint(用于表示大整数)
  7. Symbol(暂时无需关注)

整数与算术运算符

让我们尝试一些 JavaScript 表达式。

1console.log(5 + 2); 2console.log(7 % 5); 3console.log(5 ** 2);

处理整数非常直接。你可以使用四种基本算术运算符(+、-、*、/)分别进行加法、减法、乘法和除法。

% 运算符称为取模运算符。a % b 返回 a / b 的余数。在示例中,7 / 5 的结果是 1,余数为 2,因此返回值是 2。

** 运算符称为幂运算符。5 ** 2 表示 5 的平方。

浮点数

运行以下代码:

1console.log(0.1 + 0.2); 2console.log(3.1e-3);

由于数值的内部表示方式,0.1 + 0.2 并不精确等于 0.3。这是正常现象,在大多数编程语言中都会出现。

3.1e-3 是 0.0031 的科学记数法表示形式。可以理解为 3.1 乘以 10 的负三次方。虽然它与 3.1 * (10 ** -3) 形式相似,但存在细微差别:3.1e-3 会被解析为最接近 0.0031 的浮点数;而 3.1 * (10 ** -3) 是一个需要计算的复合表达式:

1console.log(3.1 * (10 ** -3))

即使使用浮点数运算,也无法完全保证精确性。

NaN

除以零(0 / 0)或类型不匹配的操作会产生一个特殊值,称为 非数字,即 NaN。

1console.log(0 / 0); 2console.log('JavaScript 实践' * 2);

上述代码中的第二个例子对 Python 用户来说可能比较有趣,因为在 Python 中,结果会是 'JavaScript 实践JavaScript 实践'。但 JavaScript 不同于此行为。

无穷大

还有一个有趣的值:无穷大(Infinity),它属于 Number 类型。

1console.log(1 / 0); 2console.log(Infinity * Infinity); 3console.log(-1 / 0); 4console.log(1e+308); 5console.log(1e+309);

JavaScript 将非常大的数值识别为无穷大。例如,10 的 309 次方会被表示为无穷大。除以零的结果也是无穷大。

Quiz

单选题

JavaScript 提供了一种原始类型用于字符串,即 string 类型。

1 / 2

JavaScript 简介

字符串的趣味探索