目录

JavaScript 数据类型

JavaScript 有 8 种数据类型

1. 字符串
2. 数量
3. 比格特
4. 布尔值
5. 未定义
6. 空
7. 符号
8. 对象

对象数据类型

对象数据类型可以包含:

1. 一个物体
2. 数组
3. 约会

示例

// Numbers:
let length = 16;
let weight = 7.5;

// Strings:
let color = "Yellow";
let lastName = "Johnson";

// Booleans
let x = true;
let y = false;

// Object:
const person = {firstName:"John", lastName:"Doe"};

// Array object:
const cars = ["Saab", "Volvo", "BMW"];

// Date object:
const date = new Date("2022-03-25");

笔记

JavaScript 变量可以保存任何类型的数据。

数据类型的概念

在编程中,数据类型是一个重要的概念。

为了能够对变量进行操作,了解有关类型的信息非常重要。

如果没有数据类型,计算机就无法安全地解决这个问题:

let x = 16 + "Volvo";

将"Volvo" 加到十六有什么意义吗?它会产生错误还是会产生结果?

JavaScript 会将上面的示例视为:

let x = "16" + "Volvo";

笔记

当添加数字和字符串时,JavaScript 会将数字视为字符串。

示例

let x = 16 + "Volvo";
亲自试一试 »

示例

let x = "Volvo" + 16;
亲自试一试 »

JavaScript 从左到右计算表达式。不同的顺序可以产生不同的结果:

JavaScript:

let x = 16 + 4 + "Volvo";

结果:

20Volvo
亲自试一试 »

JavaScript:

let x = "Volvo" + 16 + 4;

结果:

Volvo164
亲自试一试 »

在第一个示例中,JavaScript 将 16 和 4 视为数字,直到达到 "Volvo"。

在第二个示例中,由于第一个操作数是字符串,因此所有操作数都被视为字符串。



JavaScript 类型是动态的

JavaScript 具有动态类型。这意味着同一个变量可以用于保存不同的数据类型:

示例

let x;       // Now x is undefined
x = 5;       // Now x is a Number
x = "John";  // Now x is a String
亲自试一试 »

JavaScript 字符串

字符串(或文本字符串)是一系列字符,如 "John Doe"。

字符串是用引号书写的。您可以使用单引号或双引号:

示例

// Using double quotes:
let carName1 = "Volvo XC60";

// Using single quotes:
let carName2 = 'Volvo XC60';
亲自试一试 »

您可以在字符串内使用引号,只要它们与字符串周围的引号不匹配即可:

示例

// Single quote inside double quotes:
let answer1 = "It's alright";

// Single quotes inside double quotes:
let answer2 = "He is called 'Johnny'";

// Double quotes inside single quotes:
let answer3 = 'He is called "Johnny"';
亲自试一试 »

您将了解更多有关字符串在本教程的后面部分。


JavaScript 数字

所有 JavaScript 数字都存储为十进制数字(浮点)。

数字可以带小数,也可以不带小数:

示例

// With decimals:
let x1 = 34.00;

// Without decimals:
let x2 = 34;
亲自试一试 »

指数表示法

特大或特小的数字可以用科学(指数)表示法书写:

示例

let y = 123e5;    // 12300000
let z = 123e-5;   // 0.00123
亲自试一试 »

笔记

大多数编程语言都有多种数字类型:

整数(整数):
byte(8 位)、short(16 位)、int(32 位)、long(64 位)

实数(浮点):
浮点型(32 位)、双精度型(64 位)。

JavaScript 数字始终是一种类型:
双精度(64 位浮点)。

您将了解更多有关数字在本教程的后面部分。


JavaScript 大整型

所有 JavaScript 数字都以 64 位浮点格式存储。

JavaScript BigInt 是一种新的数据类型(ES2020)可用于存储太大而无法用普通 JavaScript 数字表示的整数值。

示例

let x = BigInt("123456789012345678901234567890");
亲自试一试 »

您将了解更多有关大整型在本教程的后面部分。


JavaScript 布尔值

布尔值只能有两个值:true或者false

示例

let x = 5;
let y = 5;
let z = 6;
(x == y)       // Returns true
(x == z)       // Returns false
亲自试一试 »

布尔值经常用于条件测试。

您将了解更多有关布尔值在本教程的后面部分。


JavaScript 数组

JavaScript 数组是用方括号编写的。

数组项以逗号分隔。

以下代码声明(创建)一个名为的数组cars,包含三个项目(汽车名称):

示例

const cars = ["Saab", "Volvo", "BMW"];
亲自试一试 »

数组索引从零开始,这意味着第一项是 [0],第二项是 [1],依此类推。

您将了解更多有关数组在本教程的后面部分。


JavaScript 对象

JavaScript 对象是用大括号编写的{}

对象属性被写为名称:值对,以逗号分隔。

示例

const person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};
亲自试一试 »

上例中的对象(人)有 4 个属性:firstName、lastName、age 和 eyeColor。

您将了解更多有关物体在本教程的后面部分。


运算符类型

您可以使用 JavaScripttypeof运算符来查找 JavaScript 变量的类型。

这个typeof运算符返回变量或表达式的类型:

示例

typeof ""             // Returns "string"
typeof "John"         // Returns "string"
typeof "John Doe"     // Returns "string"
亲自试一试 »

示例

typeof 0              // Returns "number"
typeof 314            // Returns "number"
typeof 3.14           // Returns "number"
typeof (3)            // Returns "number"
typeof (3 + 4)        // Returns "number"
亲自试一试 »

您将了解更多有关类型在本教程的后面部分。


不明确的

在 JavaScript 中,没有值的变量有值undefined。类型也是undefined

示例

let car;    // Value is undefined, type is undefined
亲自试一试 »

通过将值设置为,可以清空任何变量undefined。类型也将是undefined

示例

car = undefined;    // Value is undefined, type is undefined
亲自试一试 »

空值

空值与以下内容无关undefined

空字符串同时具有合法值和类型。

示例

let car = "";    // The value is "", the typeof is "string"
亲自试一试 »

通过练习测试一下

练习:

使用注释描述以下变量的正确数据类型:

let length = 16;            // 
let lastName = "Johnson";   // 
const x = {
  firstName: "John",
  lastName: "Doe"
};                          // 

开始练习