JavaScript是一种动态类型语言,这意味着变量的类型是在运行时确定的。JavaScript中的数据类型可以分为基本数据类型和引用数据类型。
1、JavaScript的基本数据类型
JavaScript的基本数据类型是所有编程语言中最简单的数据类型,基本数据类型包括:String(字符串型)、Number(数值型)、Boolean(布尔型)、Null(空值)、Undefined(未定义)、Symbol(符号型)。
(1)String(字符串型)
String(字符串型):用于表示文本数据。字符串由零个或者多个字符构成,字符包括字母、数字、标点符号和空格等。字符串可以用英文的单引号(')、双引号(")或反引号(`)括起来。例如:let str = '你好!'。在实际开发中,我们经常需要将最终若干字符串拼接成一个字符串。可以使用“+”拼接或“${}”模板拼接。注意,“${}”模板拼接必须使用反引号(`)括起来。例如:
动手练一练:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>字符串拼接的两种方法</title>
</head>
<body>
<body>
<script>
let name = "张三";
let age = 15;
let str1 = "我是" + name + ",我今年" + age + "岁了。";
let str2 = `我是${name},我今年${age}岁了。`;
console.log(str1);
console.log(str2);
</script>
</body>
</html>
通过浏览器执行以上代码,我们按F12键打开浏览器的控制台,可以看到输出结果为:
我是张三,我今年15岁了。
我是张三,我今年15岁了。
与Python一样,在JavaScript中,英文的单引号(')和双引号(")大多数情况下可以互换使用。但是当字符串中包含单引号或双引号时,为了避免冲突,通常使用另一种引号来定义字符串。例如:
var string = "他说:'你好!'";
var string1 = '她说:"再见!"';
如果要表示的字符串中引号出现嵌套,为了避免产生错误冲突,可以使用“\”进行转义。例如:
var string = "他说:\"你好!\"";
var string1 = '她说:\'再见!\'';
在JavaScript中,转义字符是一种特殊的字符序列,用于将特殊字符转换为转义序列,以便在字符串中正确表示这些特殊字符。通过在字符前加上反斜杠(\),可以告诉JavaScript解释器该字符应被视为普通字符而非其特殊含义。
JavaScript中常见的转义字符如下所示:
反斜杠(\):一个反斜杠用于转义其他转义字符或特殊字符。例如:console.log("Hello\\nWorld"); 将输出“Hello\nWorld”,因为转义字符前加反斜杠会把换行符“\n”,转义成“\n”字符串。
反斜杠本身(\\):两个反斜杠表示反斜杠本身。例如:console.log("这是一个反斜杠\\。"); 将输出“这是一个反斜杠\。”。
单引号(\'):用于在字符串中插入单引号。例如:console.log('It\'s a sunny day.'); 将输出“It's a sunny day.”。
双引号(\"):用于在字符串中插入双引号。例如:console.log("Do you like \"JavaScript\" ?");将输出“Do you like "JavaScript" ?”。
换行符(\n):用于在字符串中插入换行符。例如:console.log("Hello\nWorld"); 将输出两行文字,因为JavaScript会识别字符串中“\n”转义字符并自动转换成换行符。
制表符(\t):表示水平制表符,通常用于对齐文本。
回车符(\r):在Windows系统中常用于表示新的一行。
转义字符在JavaScript中非常重要,特别是在处理用户输入或从外部数据源获取数据时,它们可以确保特殊字符被正确解析和处理,避免语法错误或意外的行为。
(2)Boolean(布尔型)
Boolean(布尔型):只有两个值,即true(真)和false(假),布尔值常用于逻辑判断。例如:let isTrue = true。注意,布尔型使用过程不能加引号,加上引号会使它们被当作字符串处理,而不是布尔值,例如:let isTrue = "false"。布尔类型在参与运算时,会进行隐式类型转换,true转为1,false转为0进行运算,例如:
动手练一练:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>布尔类型在参与运算</title>
</head>
<body>
<body>
<script>
let b = true;
console.log(b+1); // 输出: 2
</script>
</body>
</html>
通过浏览器执行以上代码,我们按F12键打开浏览器的控制台,可以看到输出结果为:
2
(3)其它基本数据类型
Number(数值型):用于表示数字。在JavaScript中,所有的数字统一的数值型,不需要像其他语言那样分为各种长度的整数以及浮点数类型。例如:let num = 16 或 let ip = 1.23456。
Null(空值):表示空值或没有值,通常用于初始化变量或表示对象不存在。例如:let emptyValue = null。
Undefined(未定义):表示变量未定义或不存在。当一个变量被声明了但没有赋值时,其值就是undefined。例如:let str。
Symbol(符号型):一种唯一的、不可变的数据类型,通常用于作为对象属性的标识符。Symbol值通过Symbol()函数生成,例如:let sym = Symbol('description')。
(4)基本数据类型的动态变化
由于JavaScript是一种动态类型语言,所以变量的类型可以在运行过程中发生改变,例如:
动手练一练:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>基本数据类型的动态变化</title>
</head>
<body>
<body>
<script>
let b = 10;
// typeof()函数用来查看变量的类型
console.log(typeof(b)); // 输出 number
b = "你好!";
console.log(typeof(b)); // 输出 string
b = true;
console.log(typeof(b)); // 输出 boolean
</script>
</body>
</html>
通过浏览器执行以上代码,我们按F12键打开浏览器的控制台,可以看到输出结果为:
number
string
boolean
2、JavaScript的引用数据类型
JavaScript中的引用数据类型主要包括以下几种:
对象(Object):对象是JavaScript中最常见的引用数据类型,它们是一组键值对的集合,可以存储各种数据和功能。对象由花括号“{}”分隔。例如:let obj = {name: "张三", age: 15}。
数组(Array):数组是一种特殊的对象,用于按顺序存储多个值。在JavaScript中定义数组需要使用方括号[ ],数组中的每个元素使用逗号进行分隔,例如: [4, 5, 6, '你好', true, null]。
函数(Function):函数是一种可执行的对象,可以封装可执行的代码块。例如:function add(x,y){return x+y;}。
日期(Date):日期对象用于处理日期和时间。可以使用 new Date() 构造函数创建日期对象。例如:var now = new Date()。
正则表达式(RegExp):正则表达式对象用于进行字符串模式匹配和替换。可以使用字面量 /pattern/ 或者 new RegExp(pattern) 构造函数创建。例如:var re = new RegExp('模式', '修饰符') 或者 var re = /模式/修饰符。
Map和Set:用于存储键值对或唯一值的集合类型。Map用于存储键值对,而Set用于存储唯一值。例如:let mapWithData = new Map([['key1', 'value1'], ['key2', 'value2']]),let SetWithData = new Set([1, 2, 3, 4])。
在后面的教程中,我们将详细讲解引用数据类型的用法。