数据类型

Mr.Hope ... 2019-09-15 JavaScript
大约 3 分钟

JavaScript 语言的每一个值,都属于某一种数据类型。JavaScript 的数据类型,共有六种。

  • 数值 (number): 整数和小数(比如 13.14)
  • 字符串 (string): 文本(比如 Hello World)。
  • 布尔值 (boolean): 表示真伪的两个特殊值,即 true (真) 和 false (假)
  • undefined: 表示“未定义”或不存在,即由于目前没有定义,所以此处暂时没有任何值
  • null: 表示空值,即此处的值为空。
  • 对象 (object): 各种值组成的集合。

# Number

JavaScript 不区分整数和浮点数,统一用 Number 表示,以下都是合法的 Number 类型:

123; // 整数123
0.456; // 浮点数0.456
1.2345e3; // 科学计数法表示1.2345x1000,等同于1234.5
-99; // 负数
NaN; // NaN表示Not a Number,当无法计算结果时用NaN表示
Infinity; // Infinity表示无限大,当数值超过了JavaScript的Number所能表示的最大值时,就表示为Infinity
1
2
3
4
5
6

# 字符串

字符串 (String) 是以单引号 ' 或双引号 " 括起来的任意文本,比如 'abc'"xyz" 等等。

# 布尔值

布尔值 (Boolean) 和布尔代数的表示完全一致,一个布尔值只有 truefalse 两种值,要么是 true,要么是 false,可以直接用 truefalse 表示布尔值,也可以通过布尔运算计算出来:

true; // 这是一个true值
false; // 这是一个false值
2 > 1; // 这是一个true值
2 >= 3; // 这是一个false值
1
2
3
4

下列运算符会返回布尔值:

  • 前置逻辑运算符: ! (Not)
  • 相等运算符: ===!====!=
  • 比较运算符: >>=<<=

# null 和 undefined

null 表示一个 “空” 的值,它和 0 以及空字符串 '' 不同,0 是一个数值,'' 表示长度为 0 的字符串,而 null 表示“空”。

在其他语言中,也有类似 JavaScript 的 null 的表示,例如 Java 也用null,Swift 用 nil,Python 用 None 表示。但是,在 JavaScript 中,还有一个和 null 类似的 undefined,它表示 “未定义”。

JavaScript 的设计者希望用 null 表示一个空的值,而 undefined 表示值未定义。事实证明,这并没有什么卵用,区分两者的意义不大。大多数情况下,我们都应该用 nullundefined 仅仅在判断函数参数是否传递的情况下有用。

# 数组

数组 (Array) 是一组按顺序排列的集合,集合的每个值称为元素。JavaScript 的数组可以包括任意数据类型。例如:

[1, 2, 3.14, "Hello", null, true];
1

上述数组包含 6 个元素。数组用 [] 表示,元素之间用 , 分隔。

# 对象

JavaScript 的对象 (Object) 是一组由 键-值 组成的无序集合,例如:

let person = {
  name: "Bob",
  age: 20,
  tags: ["js", "web", "mobile"],
  city: "Beijing",
  hasCar: true,
  zipcode: null,
};
1
2
3
4
5
6
7
8

JavaScript 对象的键都是字符串类型,值可以是任意数据类型。上述 person 对象一共定义了 6 个键值对,其中每个键又称为对象的属性,例如,personname 属性为 'Bob'zipcode 属性为 null

要获取一个对象的属性,我们用 Object.Key 的方式:

person.name; // 'Bob'
person.zipcode; // null
1
2