Bootstrap

解锁JavaScript的神秘力量:常见内置对象一网打尽

目录

JS内置对象解析

常见内置对象

Math对象

常用方法

代码列举

日期对象

常用get方法

常用set方法

代码列举

数组对象

数组类型检测

添加或删除数组元素

数组排序

数组索引 

数组转化为字符串

数组的其他方法

 字符串对象

字符串对象的使用

根据字符返回位置

字符串操作方法


JS内置对象解析

JavaScript中有一系列内置对象,这些对象为开发者提供了强大的功能和工具,使得在应用程序中能够更轻松地处理字符串、数字、数组、函数等。以下列举一些内置对象,以及它们的主要功能:

  • String(字符串对象):用于处理文本数据,提供了各种字符串操作方法。
  • Boolean(布尔对象):表示逻辑上的 true 或 false 值,通常用于条件判断。
  • Number(数字对象):处理数值,提供了数值的常用操作和方法。
  • Array(数组对象):用于存储和操作有序的数据集合,提供了丰富的数组操作方法。
  • Object(对象对象):JavaScript中的基础对象,用于存储键值对的集合。
  • Function(函数对象):用于定义和调用函数,函数是 JavaScript 中的基本构建块。
  • Math(数学对象):提供了数学相关的操作和常数,例如三角函数、对数函数等。
  • Date(日期对象):用于处理日期和时间,提供了获取当前时间、设置日期等功能。
  • RegExp(正则表达式对象):用于处理字符串的模式匹配,支持强大的文本搜索和替换功能。

这些内置对象构成了 JavaScript 编程语言的核心,并为开发者提供了丰富的工具和方法来处理各种编程任务。合理利用这些对象,能够提高代码的可读性和维护性,同时加速开发过程。

常见内置对象

Math对象

常用方法
成员功能
PI获取圆周率,结果为3.141592653589793
abs()获取x的绝对值,可传入普通数值或者是字符串表示的数值
max()获取所有参数中的最大值
min()获取所有参数中的最小值
pow(base,exponent)获取基数(base)的指数(exponent)次幂
sqrt(x)获取x的平方根
ceil(x)获取大于或等于x的最小整数,即向上取整
floor(x)获取小于或等于x的最大整数,即向下取整
round(x)获取x的四舍五入之后的整数值
random()获取随机生成的一个实数,它在[0,1)范围内
代码列举
// 获取圆周率
const piValue = Math.PI;
console.log(`圆周率: ${piValue}`);

// 获取绝对值
const absoluteValue = Math.abs(-5);
console.log(`绝对值: ${absoluteValue}`);
// 结果:5

// 获取最大值
const maxValue = Math.max(10, 20, 30);
console.log(`最大值: ${maxValue}`);
// 结果: 30

// 获取最小值
const minValue = Math.min(5, 15, 25);
console.log(`最小值: ${minValue}`);
// 结果: 5

// 获取指数幂
const powerResult = Math.pow(2, 3); // 2的3次幂
console.log(`2的3次幂: ${powerResult}`);
// 结果: 8

// 获取平方根
const squareRoot = Math.sqrt(16);
console.log(`16的平方根: ${squareRoot}`);
// 结果: 4

// 向上取整
const ceilValue = Math.ceil(3.14);
console.log(`向上取整: ${ceilValue}`);
// 结果: 4

// 向下取整
const floorValue = Math.floor(3.9);
console.log(`向下取整: ${floorValue}`);
// 结果: 3

// 四舍五入
const roundValue = Math.round(4.5);
console.log(`四舍五入: ${roundValue}`);
// 结果: 5

// 获取随机数
const randomValue = Math.random();
console.log(`随机数: ${randomValue}`);
// 结果: 随机生成的在[0, 1)范围内的实数

日期对象

常用get方法
方法作用
getFullYear()获取表示年份的四位数字,如2023
getMonth()获取月份,范围0~11(0表示一月,1表示二月,依次类推)
getDate()获取月份中的某一天,范围1~31
getDay()获取星期,范围0~6(0表示星期日,1表示星期一,依次类推)
getHours()获取小时数,范围0-23
getMinutes()获取分钟数,范围0-59
getSeconds()获取秒数,范围0-59
getMiliseseconds()获取毫秒数,范围0-999
getTime()获取通过从1970-01-01 00:00:00计时的毫秒数
常用set方法
方法作用
setFullYear(value)设置年份
setMonth(value)设置月份
setDate(value)设置月份中的某一天
setHours(value)设置小时数
setMinutes(value)设置分钟数
setSeconds(value)设置秒数
setMiliseconds(value)设置毫秒数
setTime(value)通过从1970-01-01 00:00:00计时的毫秒数来设置时间
代码列举
// 创建一个Date对象,表示当前时间
const currentDate = new Date();

// 获取年份
const year = currentDate.getFullYear();
console.log(`当前年份: ${year}`);  // 当前年份: 2023

// 获取月份
const month = currentDate.getMonth();
console.log(`当前月份: ${month + 1}`); // 当前月份: 12(假设当前是12月,注意月份范围是0~11,所以要加1)

// 获取月份中的某一天
const dayOfMonth = currentDate.getDate();
console.log(`今天是本月的第${dayOfMonth}天`);  // 今天是本月的第1天(假设当前是1号)

// 获取星期
const dayOfWeek = currentDate.getDay();
console.log(`今天是星期${dayOfWeek}`);  // 今天是星期6(假设当前是星期六,注意星期范围是0~6)

// 获取小时数
const hours = currentDate.getHours();
console.log(`当前小时数: ${hours}`);  // 当前小时数: 15(假设当前是下午3点)

// 获取分钟数
const minutes = currentDate.getMinutes();
console.log(`当前分钟数: ${minutes}`);  // 当前分钟数: 30

// 获取秒数
const seconds = currentDate.getSeconds();
console.log(`当前秒数: ${seconds}`);  // 当前秒数: 45

// 获取毫秒数
const milliseconds = currentDate.getMilliseconds();
console.log(`当前毫秒数: ${milliseconds}`);  // 当前毫秒数: 123

// 获取从1970-01-01 00:00:00计时的毫秒数
const timestamp = currentDate.getTime();
console.log(`当前时间戳: ${timestamp}`);  // 当前时间戳: 1638313845123

// 使用set方法设置日期
currentDate.setFullYear(2025);
currentDate.setMonth(5); // 月份范围是0~11,所以这里表示6月
currentDate.setDate(15);
currentDate.setHours(12);
currentDate.setMinutes(30);
currentDate.setSeconds(45);

console.log(`设置后的时间: ${currentDate}`);
// 设置后的时间: Wed Jun 15 2025 12:30:45 GMT+0000 (Coordinated Universal Time)

数组对象

数组类型检测

两种常用的方式来检测一个变量是否为数组。使用 instanceof 运算符可以检测对象是否是某个类的实例,而 Array.isArray() 方法则专门用于判断一个值是否为数组。

// 创建一个数组和一个普通对象
var arr = [];
var obj = {};

// 使用 instanceof 运算符进行数组类型检测
console.log(arr instanceof Array);  // 输出结果:true,arr是数组
console.log(obj instanceof Array);  // 输出结果:false,obj不是数组

// 使用 Array.isArray() 方法进行数组类型检测
console.log(Array.isArray(arr));  // 输出结果:true,arr是数组
console.log(Array.isArray(obj));  // 输出结果:false,obj不是数组
添加或删除数组元素

JavaScript的数组对象提供了方法来添加或删除数组元素。通过以下方法,可以在数组的末尾或开头添加新的元素,或者在数组的末尾或开头移除元素。

方法名功能描述返回值
push(参数1...)数组末尾添加一个或多个元素,会修改原数组数组的新长度
unshift(参数1...)数组开头添加一个或多个元素,会修改原数组数组的新长度
pop()删除数组的最后一个元素,若是空数组则返回undefined,会修改原数组删除的元素值
shift()删除数组的第一个元素,若是空数组则返回undefined,会修改原数组删除的元素值

代码示例:

// 添加或删除数组元素
var arr = [1, 2, 3];
console.log(arr.push(4));  // 在数组末尾添加元素,返回新数组的长度:4
console.log(arr);          // 输出结果:[1, 2, 3, 4]

console.log(arr.unshift(0));  // 在数组开头添加元素,返回新数组的长度:5
console.log(arr);             // 输出结果:[0, 1, 2, 3, 4]

console.log(arr.pop());  // 移出数组末尾元素,返回被移出的元素:4
console.log(arr);        // 输出结果:[0, 1, 2, 3]

console.log(arr.shift());  // 移出数组开头元素,返回被移出的元素:0
console.log(arr);          // 输出结果:[1, 2, 3]
数组排序

JavaScript数组对象提供了对数组元素进行排序的方法,可以按照升序或降序排列数组元素,也可以自定义排序规则。

方法功能描述返回值
reverse()颠倒数组中元素的位置,该方法会改变原数组数组的新长度
sort()对数组的元素进行排序,该方法会改变原数组数组的新长度

代码示例:

// 数组排序
var numbers = [4, 2, 5, 1, 3];
console.log(numbers.sort());  // 对数组元素进行排序,返回排序后的数组:[1, 2, 3, 4, 5]
console.log(numbers.reverse());  // 颠倒数组元素的顺序,返回颠倒后的数组:[5, 4, 3, 2, 1]
数组索引 

在开发中,若要查找指定的元素在数组中的位置,可以使用数组对象提供的检索方法。

方法功能描述
indexOf()返回在数组可以找到给定值的第一个索引,如果不存在,则返回-1
lastIndexOf()返回指定元素在数组中的最后一个索引,如果不存在,则返回-1

代码示例:

// 数组索引
var fruits = ['apple', 'orange', 'banana'];
console.log(fruits.indexOf('orange'));  // 查找元素索引,返回元素在数组中的位置:1
数组转化为字符串

可以使用数组对象的 join()toString() 方法将数组转换为字符串。

方法功能描述
toString()把数组转换为字符串,逗号分隔每一项
join('分隔符')将数组的所有元素连接到一个子字符串中

代码示例:

// 数组转换为字符串
var letters = ['a', 'b', 'c'];
console.log(letters.toString());  // 转换为逗号分隔的字符串:"a,b,c"
console.log(letters.join());       // 使用默认分隔符转换为字符串:"a,b,c"
console.log(letters.join(''));     // 不使用分隔符转换为字符串:"abc"
console.log(letters.join('-'));    // 使用破折号分隔转换为字符串:"a-b-c"
数组的其他方法

JavaScript还提供了许多其他常用的数组方法,例如填充数组、连接数组、截取数组元素等。

方法功能描述
fill()用一个固定值填充数组中指定下标范围内的全部元素
splice()数组删除参数为(第几个开始,要删除个数),返回被删除项目的新数组
slice()数组截取,参数为(begin,end),返回被截取项目的新数组
concat()连接两个或多个数组,不影响原数组,返回一个新数组

代码示例:

// 数组填充
var numbers = [1, 2, 3, 4];
console.log(numbers.fill(0));  // 用0填充数组中所有元素,返回新数组:[0, 0, 0, 0]

// 数组删除
var fruits = ['apple', 'orange', 'banana', 'grape'];
console.log(fruits.splice(1, 2));  // 从索引1开始删除2个元素,返回被删除的元素数组:['orange', 'banana']
console.log(fruits);  // 输出结果:['apple', 'grape']

// 数组截取
var colors = ['red', 'blue', 'green', 'yellow'];
console.log(colors.slice(1, 3));  // 截取索引1到2的元素,返回新数组:['blue', 'green']
console.log(colors);  // 输出结果:['red', 'blue', 'green', 'yellow']

// 数组连接
var arr1 = [1, 2, 3];
var arr2 = ['a', 'b', 'c'];
console.log(arr1.concat(arr2));  // 连接两个数组,返回新数组:[1, 2, 3, 'a', 'b', 'c']
console.log(arr1);  // 输出结果:[1, 2, 3],原数组不受影响
console.log(arr2);  // 输出结果:['a', 'b', 'c'],原数组不受影响

 字符串对象

字符串对象的使用

字符串对象使用new String()来创建,在String构造函数中传入字符串,这样就会在返回的字符串对象中保存这个字符串。

// 直接创建字符串,不需要使用 new String()
var str = 'apple'; // 创建字符串
console.log(str); // 输出结果: 'apple'
console.log(str.length); // 获取字符串长度,输出结果: 5
根据字符返回位置
方法功能描述
indexOf(searchValue)获取searchValue在字符串中首次出现的位置
lastIndexOf(searchValue)获取searchValue在字符串中最后出现的位置

代码示例:​

// 根据字符返回位置
var helloWorld = 'HelloWorld';
console.log(helloWorld.indexOf('o')); // 获取 'o' 在字符串中首次出现的位置,输出结果: 4
console.log(helloWorld.lastIndexOf('o')); // 获取 'o' 在字符串中最后出现的位置,输出结果: 6

根据位置返回字符

成员作用
charAt(index)获取index位置的字符,位置从0开始
charCodeAt(index)获取index位置的字符的ASCII码
str[index]获取指定位置处的字符(HTML5新增)

​​​​​​代码示例:

// 使用 charAt(index) 方法
var str = 'HelloWorld';
var charAtIndex = str.charAt(1); // 获取位置 1 处的字符
console.log(charAtIndex); // 输出结果: 'e'

// 使用 charCodeAt(index) 方法获取字符的 ASCII 码
var asciiCode = str.charCodeAt(1); // 获取位置 1 处字符的 ASCII 码
console.log(asciiCode); // 输出结果: 101

// 使用字符串索引 (str[index]) 直接获取指定位置处的字符
var charAtIndex2 = str[1]; // 获取位置 1 处的字符
console.log(charAtIndex2); // 输出结果: 'e'
字符串操作方法
方法作用
concat(str1,str2,str3...)连接多个字符串
slice(start,end)截取从start位置到end位置之间的一个子字符串
substring(start,end)截取从start到end之间的一个子字符串,基本和slice相同,但是不接受负值
substr(start,length)截取从start开始到length的子字符串
toLowerCase()获取字符串的小写形式
toUpperCase()获取字符串的大写形式
split(separator,limit)使用separator分隔符将字符串分隔成数组,litmit用于限制数量
replace(str1,str2)使用str2替换字符串的str1,返回替换结果,只会替换第一个字符

代码示例:

// 字符串连接
var str1 = 'Hello';
var str2 = 'World';
var resultConcat = str1.concat(' ', str2);
console.log(resultConcat);  // 输出结果:Hello World

// 字符串截取
var originalStr = 'JavaScript is powerful';
var resultSlice = originalStr.slice(0, 10);
var resultSubstring = originalStr.substring(11, 18);
var resultSubstr = originalStr.substr(19, 9);
console.log(resultSlice);      // 输出结果:JavaScript
console.log(resultSubstring);  // 输出结果:powerful
console.log(resultSubstr);      // 输出结果:l

// 字符串大小写转换
var mixedCaseStr = 'MiXeD CaSe StRinG';
var resultLowerCase = mixedCaseStr.toLowerCase();
var resultUpperCase = mixedCaseStr.toUpperCase();
console.log(resultLowerCase);  // 输出结果:mixed case string
console.log(resultUpperCase);  // 输出结果:MIXED CASE STRING

// 字符串分割和替换
var splitStr = 'apple,orange,banana';
var resultSplit = splitStr.split(',');
var replaceStr = 'Hello World';
var resultReplace = replaceStr.replace('World', 'Universe');
console.log(resultSplit);       // 输出结果:["apple", "orange", "banana"]
console.log(resultReplace);     // 输出结果:Hello Universe

更多的内置对象可以Mozilla开发者网络(MDN)上查询。

;