JavaScript
JavaScript是一种用于编程的脚本语言,可通过在网页中添加交互性和动态效果来控制网页行为、处理数据和实现功能。
JavaScript 是一种动态、弱类型的编程语言,它支持多种不同类型的数据。在本文中,我们将探讨这些数据类型,包括 JavaScript 的基本数据类型和复杂数据类型。
JavaScript 中有六种基本数据类型,它们是:
数字类型代表着任何数值,包括正数、负数、整数和小数等等。在 JavaScript 中,数字类型使用 64 位浮点数表示,可以通过整数、小数或科学计数法来表示,例如:
let a = 1;
let b = 3.14;
let c = 2.998e8; // 科学计数法表示 299800000
JavaScript 还提供了一些特殊的数字类型值,如 Infinity 和 NaN。Infinity 表示无限大,NaN 则表示非数字,如果对一个无意义的表达式进行运算操作,就会返回 NaN。
console.log(1 / 0); // Infinity
console.log("abc" / 2); // NaN
字符串类型是指包含在单引号(')或双引号(")之间的任意文本。字符、数字、标点符号等都可以组成字符串,如下所示:
let a = "Hello, world!";
let b = '12345';
需要注意的是,JavaScript 中的字符串是不可变的,也就是说一旦被创建,字符串中的内容就不能再被修改。但我们可以通过使用字符串连接、分割等函数来对字符串进行操作。
布尔类型只有两个值,一个是 true(真),一个是 false(假)。在 JavaScript 中,会自动将条件语句的结果转换成布尔类型。
console.log(10 > 5); // true
console.log(0 == false); // true
console.log("" == false); // true
需要注意的是,在条件语句中,JavaScript 中一些类型的值会被强制类型转换。
空值类型表示一个空对象指针,也就是没有指向任何有效对象的值。在 JavaScript 中使用关键字null表示空值。
let a = null; // 空对象指针
undefined 表示变量没有被赋值,它是一种特殊的值。当变量被声明但未被赋值时,默认为 undefined。
let a;
console.log(a); // undefined
如果一个函数没有返回值,则默认返回 undefined。同样地,如果函数中使用了还未定义的变量,则该变量的默认值为 undefined。
Symbol 类型是 ECMAScript 6 中新增的数据类型,用于创建唯一的标识符,在某些情况下可以用于对象的属性名(解决命名冲突)。
let sym1 = Symbol();
let sym2 = Symbol("foo");
console.log(sym1); // Symbol()
console.log(sym2); // Symbol(foo)
需要注意的是,Symbol 不是构造函数,不能使用 new 操作符创建实例。
对象类型是 JavaScript 中使用最广泛的引用类型。它表示一组键值对的无序集合,任意数据类型均可作为键或值。在 JavaScript 中使用object
关键字来定义对象类型的变量。
let obj = {
name: 'Tom',
age: 18,
hobbies: ['reading', 'music']
};
需要注意的是,对象是按引用传递的,即当将对象赋值给另一个变量时,实际上是将该对象的地址复制到了新变量中,而非将对象本身复制。因此,修改其中一个变量的对象将会影响到另外一个变量。
let a = { x: 1 };
let b = a;
b.x = 2;
console.log(a.x); // 2
数组是一种特殊的对象类型,由一组有序元素组成,可以存储任意类型的数据。在 JavaScript 中数组可以通过字面量语法或构造函数创建。
let arr1 = [1, 2, 3];
let arr2 = ['apple', 'banana', 'orange'];
数组支持基本的数组操作,例如索引、遍历、排序等。同时还支持高级特性,如映射、过滤、归约等。
函数类型是一种可调用的对象类型,它由一组可执行代码封装起来,通常用于实现特定的操作并返回结果。在 JavaScript 中使用function
关键字来定义函数。
function add(a, b) {
return a + b;
}
console.log(add(2, 3)); // 5
函数也是一种对象类型,可以设置属性和方法,并且可以作为其他函数的参数传递或返回值。
Date类型表示日期和时间,并提供了操作日期和时间的计算和操作,如格式化时间、比较时间大小等。在JavaScript中,日期和时间以毫秒数的形式存储。可以使用new关键字和Date 构造函数创建日期对象。
let d = new Date(); // 当前时间
console.log(d.getFullYear()); // 2023
console.log(d.getMonth() + 1); // 6
console.log(d.getDate()); // 10
RegExp 可以通过字面量定义或者使用 RegExp 构造函数创建。是用来匹配和操作文本的一种表达式。正则表达式还有一些修饰符,用于指定如何匹配字符。例如,修饰符 g 表示全局匹配,i 表示忽略大小写等。
let pattern = /hello/;
let regex = new RegExp('hello');
定义了一个正则表达式后,就可以在字符串中使用它进行匹配操作了。JavaScript 提供了一些内置的 RegExp 方法来执行各种操作,例如 test() 和 exec() 等。