JavaScript 中的值都具有特定的类型。例如,字符串或数字。
在 JavaScript 中有 8 种基本的数据类型(译注:7 种原始类型和 1 种引用类型)。在这里,我们将对它们进行大体的介绍,在下一章中,我们将详细讨论它们。
我们可以将任何类型的值存入变量。例如,一个变量可以在前一刻是个字符串,下一刻就存储一个数字:
// 没有错误let message = "hello";message = 123456;允许这种操作的编程语言,例如 JavaScript,被称为“动态类型”(dynamically typed)的编程语言,意思是虽然编程语言中有不同的数据类型,但是你定义的变量并不会在定义后,被限制为某一数据类型。
Number 类型 let n = 123;n = 12.345;number 类型代表整数和浮点数。
数字可以有很多操作,比如,乘法 *、除法 /、加法 +、减法 - 等等。
除了常规的数字,还包括所谓的“特殊数值(“special numeric values”)”也属于这种类型:Infinity、-Infinity 和 NaN。
Infinity 代表数学概念中的 无穷大 ∞。是一个比任何数字都大的特殊值。
我们可以通过除以 0 来得到它:
alert( 1 / 0 ); // Infinity或者在代码中直接使用它:
alert( Infinity ); // InfinityNaN 代表一个计算错误。它是一个不正确的或者一个未定义的数学操作所得到的结果,比如:
alert( "not a number" / 2 ); // NaN,这样的除法是错误的NaN 是粘性的。任何对 NaN 的进一步数学运算都会返回 NaN:
alert( NaN + 1 ); // NaNalert( 3 * NaN ); // NaNalert( "not a number" / 2 - 1 ); // NaN所以,如果在数学表达式中有一个 NaN,会被传播到最终结果(只有一个例外:NaN ** 0 结果为 1)。
数学运算是安全的在 JavaScript 中做数学运算是安全的。我们可以做任何事:除以 0,将非数字字符串视为数字,等等。
脚本永远不会因为一个致命的错误(“死亡”)而停止。最坏的情况下,我们会得到 NaN 的结果。
特殊的数值属于 “number” 类型。当然,对“特殊的数值”这个词的一般认识是,它们并不是数字。
我们将在 数字类型 一节中学习数字的