二维码

JavaScript数据类型

JavaScript数据类型

JavaScript 有 8 种数据类型

  1. 字符串
  2. 数字
  3. Bigint
  4. 布尔值
  5. 未定义
  6. Null
  7. 符号
  8. 对象

对象数据类型

对象数据类型可以包含:

  1. 对象
  2. 数组
  3. 日期
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
// 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 变量可以保存任何类型的数据。

数据类型的概念

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

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

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

1
let x = 16 + "Volvo";

把“沃尔沃”加到十六有什么意义吗?它会产生错误还是会产生结果?

JavaScript 会将上面的示例视为:

1
let x = "16" + "Volvo";

笔记

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

1
let x = 16 + "Volvo";

1
let x = "Volvo" + 16;

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

:JavaScript
1
let x = 16 + 4 + "Volvo";

结果:

1
20Volvo

:JavaScript
1
let x = "Volvo" + 16 + 4;

结果:

1
Volvo164

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

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


JavaScript 类型是动态的

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

1
2
3
let x;       // Now x is undefined  
x = 5;       // Now x is a Number
x = "John";  // Now x is a String


JavaScript 字符串

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

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

1
2
3
4
5
// Using double quotes:  
let carName1 = "Volvo XC60";

// Using single quotes:
let carName2 = 'Volvo XC60';

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

1
2
3
4
5
6
7
8
// 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 数字都存储为十进制数字(浮点)。

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

1
2
3
4
5
// With decimals:  
let x1 = 34.00;

// Without decimals:
let x2 = 34;


指数表示法

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

1
2
let y = 123e5;    // 12300000  
let z = 123e-5;   // 0.00123


笔记

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

整数(整数):
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 布尔值

布尔值只能有两个值:truefalse

1
2
3
4
5
let x = 5;  
let y = 5;
let z = 6;
(x == y)       // Returns true
(x == z)       // Returns false


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
2
3
typeof ""             // Returns "string"  
typeof "John"         // Returns "string"
typeof "John Doe"     // Returns "string"

1
2
3
4
5
typeof 0              // Returns "number"  
typeof 314            // Returns "number"
typeof 3.14           // Returns "number"
typeof (3)            // Returns "number"
typeof (3 + 4)        // 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"