JavaScript 中的数据类型决定了变量可以存储什么样的数据。JavaScript 的数据类型分为两类:基本数据类型和复杂数据类型。了解这些数据类型对于编写正确和高效的代码非常重要。
1. 基本数据类型(Primitive Data Types)
基本数据类型是不可变的单一值。JavaScript 有六种基本数据类型:
Number
:表示数字,包括整数和浮点数。let num = 42; let pi = 3.14;
String
:表示文本数据,由一系列字符组成。let str1 = "Hello, World!"; let str2 = 'JavaScript'; let str3 = `Template literal`;
Boolean
:表示逻辑值,只有两个可能的值:true
或false
。let isTrue = true; let isFalse = false;
undefined
:表示变量未定义或未初始化。let value; console.log(value); // undefined
null
:表示“无”或“空”值。let empty = null;
Symbol
(ES6 引入):表示唯一且不可变的值,主要用于对象属性的唯一标识符。let sym = Symbol('description');
2. 复杂数据类型(Complex Data Types)
复杂数据类型是可变的,能够包含多个值。JavaScript 的复杂数据类型包括:
Object
:表示一组键值对。对象可以用来存储和操作数据。let person = { name: 'Alice', age: 30, greet: function() { return 'Hello!'; } };
Array
:表示一个有序的值集合。数组可以包含不同类型的元素。let colors = ['red', 'green', 'blue'];
Function
:JavaScript 函数也是对象的一种,可以用来执行代码和计算结果。function add(a, b) { return a + b; }
Date
:表示日期和时间(ES5 引入)。let today = new Date();
RegExp
:表示正则表达式,用于模式匹配(ES5 引入)。let pattern = /abc/;
3. 类型转换
JavaScript 提供了多种方式来进行类型转换,将一种数据类型转换为另一种数据类型:
- 显式类型转换:
String
转换:let num = 123; let str = String(num); // "123"
Number
转换:let str = "456"; let num = Number(str); // 456
Boolean
转换:let value = 0; let bool = Boolean(value); // false
- 隐式类型转换:JavaScript 在某些操作中会自动进行类型转换,例如在字符串和数字相加时:
let result = 'The number is ' + 42; // "The number is 42"
在比较操作中:let isEqual = (5 == '5'); // true (类型转换后比较)
4. 检测数据类型
typeof
:用于检查基本数据类型。console.log(typeof 42); // "number" console.log(typeof 'Hello'); // "string" console.log(typeof true); // "boolean"
instanceof
:用于检查对象的类型。console.log([] instanceof Array); // true console.log({} instanceof Object); // true
Array.isArray
:专门用于检测是否为数组。console.log(Array.isArray([1, 2, 3])); // true
总结
JavaScript 的数据类型分为基本数据类型和复杂数据类型。