JavaScript数据类型
JavaScript 有 8 种数据类型
- 字符串
- 数字
- Bigint
- 布尔值
- 未定义
- Null
- 符号
- 对象
对象数据类型
对象数据类型可以包含:
- 对象
- 数组
- 日期
1 | // Numbers: |
笔记
JavaScript 变量可以保存任何类型的数据。
数据类型的概念
在编程中,数据类型是一个重要的概念。
为了能够对变量进行操作,了解有关类型的信息非常重要。
如果没有数据类型,计算机就无法安全地解决这个问题:
1 | let x = 16 + "Volvo"; |
把“沃尔沃”加到十六有什么意义吗?它会产生错误还是会产生结果?
JavaScript 会将上面的示例视为:
1 | let x = "16" + "Volvo"; |
笔记
当添加数字和字符串时,JavaScript 会将数字视为字符串。
1 | let x = 16 + "Volvo"; |
1 | let x = "Volvo" + 16; |
JavaScript 从左到右计算表达式。不同的顺序可以产生不同的结果:
1 | let x = 16 + 4 + "Volvo"; |
结果:
1 | 20Volvo |
1 | let x = "Volvo" + 16 + 4; |
结果:
1 | Volvo164 |
在第一个示例中,JavaScript 将 16 和 4 视为数字,直到到达“Volvo”。
在第二个示例中,由于第一个操作数是字符串,因此所有操作数都被视为字符串。
JavaScript 类型是动态的
JavaScript 具有动态类型。这意味着同一个变量可以用于保存不同的数据类型:
1 | let x; // Now x is undefined |
JavaScript 字符串
字符串(或文本字符串)是一系列字符,例如“John Doe”。
字符串是用引号书写的。您可以使用单引号或双引号:
1 | // Using double quotes: |
您可以在字符串内使用引号,只要它们与字符串周围的引号不匹配即可:
1 | // Single quote inside double quotes: |
JavaScript 数字
所有 JavaScript 数字都存储为十进制数字(浮点)。
数字可以带小数,也可以不带小数:
1 | // With decimals: |
指数表示法
特大或特小的数字可以用科学(指数)表示法书写:
1 | let y = 123e5; // 12300000 |
笔记
大多数编程语言都有多种数字类型:
整数(整数):
byte(8 位)、short(16 位)、int(32 位)、long(64 位)
实数(浮点):
float(32 位)、double(64 位)。
JavaScript 数字始终是一种类型:
双精度(64 位浮点)。
JavaScript 大整型
所有 JavaScript 数字都以 64 位浮点格式存储。
JavaScript BigInt 是一种新的数据类型 ( [ES2020]
),可用于存储太大而无法用普通 JavaScript 数字表示的整数值。
1 | let x = BigInt("123456789012345678901234567890"); |
JavaScript 布尔值
布尔值只能有两个值:true
或false
。
1 | let x = 5; |
JavaScript 数组
JavaScript 数组是用方括号编写的。
数组项以逗号分隔。
以下代码声明(创建)一个名为 的数组cars
,其中包含三个项目(汽车名称):
1 | const cars = ["Saab", "Volvo", "BMW"]; |
JavaScript 对象
JavaScript 对象是用花括号编写的{}
。
对象属性被写为名称:值对,以逗号分隔。
1 | const person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"}; |
上例中的对象(人)有 4 个属性:firstName、lastName、age 和 eyeColor。
您将在本教程后面了解有关对象的更多信息。
运算符类型
您可以使用 JavaScripttypeof
运算符来查找 JavaScript 变量的类型。
该typeof
运算符返回变量或表达式的类型:
1 | typeof "" // Returns "string" |
1 | typeof 0 // Returns "number" |
您将在本教程后面了解有关typeof 的更多信息。
不明确的
在 JavaScript 中,没有值的变量具有值undefined
。类型也是undefined
。
1 | let car; // Value is undefined, type is undefined |
通过将值设置为undefined
,可以清空任何变量。类型也将是undefined
.
1 | car = undefined; // Value is undefined, type is undefined |
空值
空值与undefined
无关。
空字符串同时具有合法值和类型。
1 | let car = ""; // The value is "", the typeof is "string" |
0评论