数据类型
Number 类型
number 类型代表整数和浮点数,还包括所谓的“特殊数值(“special numeric values”)”也属于这种类型:Infinity、-Infinity 和 NaN。
Infinity 代表数学概念中的 无穷大 ∞。
alert( 1 / 0 ); // 除以 0 得到 Infinity
alert( Infinity ); // 直接使用 Infinity
NaN 代表一个计算错误。它是一个不正确的或者一个未定义的数学操作所得到的结果
alert( "not a number" / 2 ); // NaN,这样的除法是错误的
NaN 是粘性的。任何对 NaN 的进一步数学运算都会返回 NaN:
alert( NaN + 1 ); //
NaN alert( 3 * NaN ); //
NaN alert( "not a number" / 2 - 1 );
NaN 例外情况:console.log(NaN**0) //结果为1
BigInt 类型
在 JavaScript 中,“number” 类型无法表示大于 (2^53-1)(即 9007199254740991),或小于 -(2^53-1) 的整数。
BigInt 用于表示任意长度的整数,尾部加 n 表示 bigint。
const bigInt = 123n;
String 类型
三种包含字符串的方式:
- 双引号:
"Hello". - 单引号:
'Hello'. - 反引号:
`Hello`. 双引号和单引号都是“简单”引用,在 JavaScript 中两者几乎没有什么差别。
反引号是 功能扩展 引号。它们允许我们通过将变量和表达式包装在 ${…} 中,来将它们嵌入到字符串中。${…} 内的表达式会被计算,计算结果会成为字符串的一部分。例如:
let name = "John"; // 嵌入一个变量
alert( `Hello, ${name}!` ); // Hello, John!
// 嵌入一个表达式
alert(`the result is ${1 + 2}` ); // the result is 3
Boolean 类型
布尔值也可作为比较的结果:
let isGreater = 4 > 1;
alert( isGreater ); // true(比较的结果是 "yes")
null
JavaScript 中的 null 仅仅是一个代表“无”、“空”或“值未知”的特殊值。
undefined
undefined 的含义是 未被赋值。
如果一个变量已被声明,但未被赋值,那么它的值就是 undefined.
通常,使用 null 将一个“空”或者“未知”的值写入变量中,而 undefined 则保留作为未进行初始化的事物的默认初始值。
symbol 类型
symbol 类型用于创建对象的唯一标识符。
object 类型
typeof 运算符
可以通过 typeof 运算符查看存储在变量中的数据类型。
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)