引言

JavaScript 提供了一系列内置对象和方法,这些对象和方法为开发者提供了强大的工具,用于操作字符串、数字、日期、数组等数据类型。熟练掌握这些内置对象和方法,将大大提升你处理数据和开发应用的效率。本篇文章将带你深入了解 JavaScript 中最常用的一些内置对象及其方法,涵盖 String、Number、Array、Date 和 Math 对象。


1. String 对象的方法

字符串是 JavaScript 中最常用的数据类型之一。String 对象提供了丰富的方法,用于操作和处理字符串。

1.1 创建字符串

字符串可以通过字面量或 String 构造函数来创建。

使用字符串字面量:

const greeting = "Hello, World!";

使用 String 构造函数:

const greeting = new String("Hello, World!");

提示:

  • 通常我们直接使用字符串字面量来创建字符串,而不是使用构造函数,因为字面量更简洁,也更符合 JavaScript 的惯用法。
1.2 常用字符串方法

charAt()charCodeAt()

const str = "JavaScript";

console.log(str.charAt(0)); // 输出:J
console.log(str.charCodeAt(0)); // 输出:74,J 的 Unicode 编码

toUpperCase()toLowerCase()

const str = "JavaScript";

console.log(str.toUpperCase()); // 输出:JAVASCRIPT
console.log(str.toLowerCase()); // 输出:javascript

indexOf()lastIndexOf()

const str = "Hello, World!";

console.log(str.indexOf("o")); // 输出:4,第一个 "o" 的位置
console.log(str.lastIndexOf("o")); // 输出:8,最后一个 "o" 的位置

substring()slice()

const str = "Hello, World!";

console.log(str.substring(0, 5)); // 输出:Hello
console.log(str.slice(-6)); // 输出:World!

split()

const str = "apple,banana,cherry";

const fruits = str.split(",");
console.log(fruits); // 输出:["apple", "banana", "cherry"]

trim()replace()

const str = "  Hello, World!  ";

console.log(str.trim()); // 输出:"Hello, World!",去掉了两端的空格
console.log(str.replace("World", "JavaScript")); // 输出:"Hello, JavaScript!"

高级用例:模板字符串

ES6 引入了模板字符串,使得字符串的拼接和插值更加直观和简洁。

示例:

const name = "Alice";
const age = 25;

const message = `Hello, my name is ${name}, and I am ${age} years old.`;
console.log(message); // 输出:Hello, my name is Alice, and I am 25 years old.

模板字符串支持多行文本和内嵌表达式,极大地简化了字符串的操作。


2. Number 对象的方法

JavaScript 中的数字包括整数和浮点数,Number 对象提供了多种方法,用于处理和转换数字。

2.1 创建数字

数字可以直接通过字面量创建,也可以使用 Number 构造函数。

使用数字字面量:

const num = 42;

使用 Number 构造函数:

const num = new Number(42);
2.2 常用数字方法

toFixed()

const num = 3.14159;

console.log(num.toFixed(2)); // 输出:3.14,保留两位小数

toString()toExponential()

const num = 42;

console.log(num.toString()); // 输出:"42",将数字转换为字符串
console.log(num.toExponential(2)); // 输出:"4.20e+1",科学计数法表示

parseInt()parseFloat()

console.log(parseInt("123")); // 输出:123,转换为整数
console.log(parseFloat("3.14")); // 输出:3.14,转换为浮点数

isNaN()isFinite()

console.log(isNaN("abc")); // 输出:true,"abc" 不是数字
console.log(isFinite(1000)); // 输出:true,1000 是有限数字

高级用例:数字的格式化

使用 Intl.NumberFormat 可以对数字进行格式化,例如用于显示货币或千分位分隔符。

示例:

const num = 1234567.89;

const formatted = new Intl.NumberFormat("en-US", {
  style: "currency",
  currency: "USD",
}).format(num);

console.log(formatted); // 输出:$1,234,567.89

Intl.NumberFormat 提供了灵活的国际化数字格式化选项,可以根据不同的语言和地区设置格式。


3. Array 对象的方法

数组是 JavaScript 中用于存储有序元素的集合,Array 对象提供了大量的方法,用于操作和迭代数组。

3.1 创建数组

数组可以通过数组字面量或 Array 构造函数创建。

使用数组字面量:

const fruits = ["apple", "banana", "cherry"];

使用 Array 构造函数:

const fruits = new Array("apple", "banana", "cherry");
3.2 常用数组方法

push()pop()

const stack = [];

// 添加元素到数组末尾
stack.push(1);
stack.push(2);
console.log(stack); // 输出:[1, 2]

// 移除并返回数组末尾的元素
const last = stack.pop();
console.log(last); // 输出:2
console.log(stack); // 输出:[1]

shift()unshift()

const queue = [1, 2, 3];

// 移除并返回数组开头的元素
const first = queue.shift();
console.log(first); // 输出:1
console.log(queue); // 输出:[2, 3]

// 添加元素到数组开头
queue.unshift(0);
console.log(queue); // 输出:[0, 2, 3]

map()filter()

const numbers = [1, 2, 3, 4, 5];

// `map` 创建一个新数组,包含原数组中每个元素处理后的值
const doubled = numbers.map((num) => num * 2);
console.log(doubled); // 输出:[2, 4, 6, 8, 10]

// `filter` 创建一个新数组,包含原数组中所有通过测试的元素
const even = numbers.filter((num) => num % 2 === 0);
console.log(even); // 输出:[2, 4]

reduce()

const numbers = [1, 2, 3, 4, 5];

// `reduce` 将数组中的所有元素进行累加,返回一个值
const sum = numbers.reduce((acc, num) => acc + num, 0);
console.log(sum); // 输出:15

高级用例:数组的扁平化与嵌套数组操作

使用 flat() 方法可以将嵌套的数组展平成一个新的数组。

示例:

const nestedArray = [1, [2, 3], [4, [5, 6]]];

const flatArray = nestedArray.flat(2); // 参数表示展开的深度
console.log(flatArray); // 输出:[1, 2, 3, 4, 5, 6]

数组的扁平化使得处理嵌套结构的数据更加简便,尤其是在处理复杂的数据集合时非常有用。


4. Date 对象的方法

Date 对象用于处理日期和时间,是在开发中经常需要处理的内容。

4.1 创建日期对象

你可以通过构造函数创建日期对象。

使用当前日期和时间:

const now = new Date();
console.log(now); // 输出当前日期和时间

指定日期和时间:

const specificDate = new Date(2024, 7, 15, 12, 30);
console.log(specificDate); // 输出:Thu Aug 15 2024 12:30:00 GMT+0000 (UTC)
4.2 常用日期方法

获取日期和时间:

const now = new Date();

console.log(now.getFullYear()); // 输出当前年份
console.log(now.getMonth()); // 输出当前月份(0-11)
console.log(now.getDate()); // 输出当前日期
console.log(now.getDay()); // 输出当前星期几(0-6)
console.log(now.getHours()); // 输出当前小时
console.log(now.getMinutes()); // 输出当前分钟
console.log(now.getSeconds()); // 输出当前秒

设置日期和时间:

const date = new Date();

date.setFullYear(2025);
date.setMonth(11); // 设置为12月
date.setDate(25);
date.setHours(10);
date.setMinutes(30);
date.setSeconds(45);

console.log(date); // 输出更新后的日期和时间

日期的比较和运算:

const start = new Date(2024, 7, 15);
const end = new Date(2024, 8, 15);

const duration = end - start; // 日期差值,以毫秒为单位
console.log(duration / (1000 * 60 * 60 * 24)); // 输出相差的天数

高级用例:格式化日期

使用 Intl.DateTimeFormat 可以对日期进行格式化。

示例:

const now = new Date();

const formattedDate = new Intl.DateTimeFormat("en-US", {
  year: "numeric",
  month: "long",
  day: "numeric",
}).format(now);

console.log(formattedDate); // 输出:August 15, 2024

Intl.DateTimeFormat 提供了丰富的日期格式化选项,支持不同语言和地区的格式需求。


5. Math 对象的方法

Math 对象提供了数学常数和函数,不需要创建实例即可使用这些方法。

5.1 常用 Math 方法

Math.random()

const randomNum = Math.random();
console.log(randomNum); // 输出一个 0 到 1 之间的随机数

Math.floor()Math.ceil()

const num = 5.67;

console.log(Math.floor(num)); // 输出:5,向下取整
console.log(Math.ceil(num)); // 输出:6,向上取整

Math.max()Math.min()

console.log(Math.max(1, 2, 3)); // 输出:3,返回最大值
console.log(Math.min(1, 2, 3)); // 输出:1,返回最小值

Math.pow()Math.sqrt()

console.log(Math.pow(2, 3)); // 输出:8,2 的 3 次方
console.log(Math.sqrt(16)); // 输出:4,16 的平方根

高级用例:生成范围内的随机数

使用 Math 方法,可以生成特定范围内的随机整数。

示例:

function getRandomInt(min, max) {
  return Math.floor(Math.random() * (max - min + 1)) + min;
}

console.log(getRandomInt(1, 10)); // 输出:1 到 10 之间的随机整数

这种方法在生成随机数据或实现游戏中的随机事件时非常有用。


结论

掌握 JavaScript 中的内置对象和常用方法,可以显著提升你的编程效率和代码质量。通过熟悉 String、Number、Array、Date 和 Math 对象的方法,你将能够轻松应对各种常见的开发任务。

社区与资源

想进一步学习和探索 JavaScript 的内置对象吗?以下是一些推荐的社区和资源:

最后修改:2024 年 08 月 14 日
如果觉得我的文章对你有用,请随意赞赏