JavaScript 数据类型

JavaScript 中的数据类型,说白了就是下图中 “值” 的类型。在 JavaScript 中,数据类型可以分为以下 2 大类:

  • 基本类型:只会包含一个值。基本类型有 7 种,包括数字、字符串、布尔值、undefined、null、BigInt、Symbol。
  • 引用类型:可以包含多个值。引用类型只有 1 种,也就是对象。其中,数组本质上也是一个对象。

JavaScript数据类型

在这一节中,我们先来介绍一下基本类型。然后在后面章节,再去详细介绍引用类型。

JavaScript 数字类型

在 JavaScript 中,数字是最基本的数据类型。所谓的 “数字” ,就是我们数学意义上的数字,比如 10、-10、3.14 等。

注意: JavaScript 中的数字是不区分 “整型(int)” 和 “浮点型(float)” 的,所有变量或常量都是使用 let 或 const 来定义。

示例 1:使用数字类型

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
</head>
<body>
    <script>
        const n = 1001;
        console.log(n);
    </script>
</body>
</html>

运行结果如下。

1001

JavaScript 字符串类型

字符串,从名字上来就很好理解,就是一串字符嘛。在 JavaScript 中,字符串都是用英文单引号或英文双引号(注意都是英文)括起来的。

单引号括起来的一个或多个字符,比如:

'我'
'绿叶网'

双引号括起来的一个或多个字符,比如:

"我"
"绿叶网"

单引号括起来的字符串中可以包含双引号,比如:

'我来自"绿叶网"'

双引号括起来的字符串中可以包含单引号,比如:

"我来自'绿叶网'"

示例 2:使用字符串

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
</head>
<body>
    <script>
        const str = "lvyenet";
        console.log(str);
    </script>
</body>
</html>

运行结果如下。

lvyenet

分析:

如果我们把字符串两边的引号去掉后,会发现控制台不输出内容了,小伙伴们可以自己试一试。因此对于一个字符串来说,一定要加上引号,单引号或双引号都可以。

const str = "lvyenet";
console.log(str);

对于上面这两句代码,也可以直接用下面一句代码来实现,因为 console.log() 这个方法本身就是用来输出一个字符串的。

console.log("lvyenet");

示例 3:内部包含引号的字符串

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
</head>
<body>
    <script>
        const str = '"lvye"net';
        console.log(str);
    </script>
</body>
</html>

运行结果如下。

"lvye"net

分析:

单引号括起来的字符串中,不能含有单引号,只能含有双引号。同样的道理,双引号括起来的字符串中,也不能含有双引号,只能含有单引号。

为什么要这么规定呢?我们看看下面这句代码就知道了。字符串中含有 4 个双引号,此时 JavaScript 是无法正确判断哪两个双引号是一对的。

""lvye"net"

示例 4:内容是数字的字符串

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
</head>
<body>
    <script>
        const n = "1001";
        console.log(n);
    </script>
</body>
</html>

运行结果如下。

1001

分析:

如果数字加上双引号,此时 JavaScript 会把这个数字当做 “字符串” 来处理,而不是当做 “数字” 来处理。

我们都知道,数字是可以进行加减乘除的,但加上双引号的数字一般是不可以进行加减乘除的,因为这个时候它不再是数字,而是被当成字符串了。

const n = 1001       // n 是一个数字
const n = "1001"     // n 是一个字符串

JavaScript 布尔值类型

在 JavaScript 中,数字和字符串这两个类型的值可以有无数多个,但是布尔类型的值只有 2 个:true 和 false。true 表示 “真”,false 表示 “假”。

有些小伙伴可能觉得很奇怪,为什么这种数据类型叫 “布尔值” 呢?这名字是咋来的呢?实际上,布尔是 “bool” 的音译,它是以英国数学家、布尔代数的奠基人乔治·布尔(George Boole)来命名的。

布尔值最大的用途就是:选择结构的条件判断。对于选择结构,我们在后面的 “JavaScript if 语句” 一节中会详细给大家介绍,这里只需要简单了解一下就行。

示例 5:使用布尔值类型

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
</head>
<body>
    <script>
        const a = 10;
        const b = 20;
        if (a < b) {
            console.log("a 小于 b");
        }
    </script>
</body>
</html>

运行结果如下。

a 小于 b

分析:

在这个例子中,我们首先定义了两个数字类型的变量:a、b。然后在 if 语句中对 a 和 b 进行大小判断,如果 a 小于 b,此时返回 true,则使用 console.log() 方法输出一个字符串:" a 小于 b"。

JavaScript undefined 类型

在 JavaScript 中,如果一个变量虽然已经用 let 来声明了,但如果没有对这个变量进行赋值,那么此时该变量的值就是 undefined。其中,undefined 也叫做 “未定义值” 。

示例 6:使用 undefined 类型

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
</head>
<body>
    <script>
        let n;
        console.log(n);
    </script>
</body>
</html>

运行结果如下。

undefined

分析:

在 JavaScript 中,凡是已经用 let 来声明但没有赋值的变量,其值都是 undefined。

JavaScript null 类型

数字、字符串等数据在定义的时候,系统都会分配一定的内存空间。在 JavaScript 中,空值用 null 表示。如果一个变量的值等于 null,如 “let n = null”,则表示系统没有给这个变量 n 分配内存空间。

对于内存分配这个概念,非计算机专业的小伙伴可能理解起来比较困难,不过没关系,我们只需要简单认识一下就可以了。

经过这一节的学习,我们也清楚地知道 “数据类型” 是怎样一个东西了。数据类型,就是值的类型。就像我们数学,也得分整数、小数、分数这样的类型。

常见问题

1. 这一节讲了那么多数据类型,如果我想要知道一个变量是什么类型,该怎么做呢?

我们可以使用 typeof 关键字来判断变量的类型,比如:

console.log(typeof 666);          // "number"
console.log(typeof "lvyenet");    // "string"

上一篇: JavaScript 常量

下一篇: JavaScript 运算符

给站长反馈

绿叶网正在不断完善中,小伙伴们如果发现任何问题,还望多多给站长反馈,谢谢!

邮箱:lvyenet@vip.qq.com

「绿叶网」服务号
绿叶网服务号放大
关注服务号,微信也能看教程。
绿叶网服务号