本文系统梳理了 JavaScript 中常用内置对象的核心方法。涵盖数组的增删改查与排序(concat, push, pop, sort 等),字符串的查找替换与分割(indexOf, replace, split 等),数字的精度控制(toFixed, toExponential),以及正则表达式的匹配与测试(exec, test)。通过具体代码示例,帮助开发者快速掌握这些基础且高频使用的 API。
数组常用方法
数组的方法:
array.concat 用于将一个或多个数组与当前数组合并,返回一个新的合成数组。例如:var arrC=arrA.concat(arrB,'asd','sad',true,1.5); array.join 将数组元素使用指定分隔符连接成一个字符串并返回。其性能通常优于使用 + 号进行字符串拼接。例如:var strA=arrA.join(",");//默认为逗号 array.pop 移除并返回数组的最后一个元素。例如:var A=arrA.pop(); array.push 将一个或多个参数追加到数组末尾,并返回数组的新长度。例如:arrA.push("asd"); array.shift 移除并返回数组的第一个元素。由于需要将后续所有元素前移,其执行效率通常比 pop 低。例如:var A=arrA.shift(); array.unshift 将一个或多个参数插入到数组头部。例如:arrA.unshift("asd"); array.reverse 反转数组中元素的顺序,并返回引用原数组。例如:var arrB=arrA.reverse(); array.slice 返回数组指定范围的浅拷贝,包含起始索引,不包含结束索引。例如:var arrB=arrA.slice(0,3);//将第0,1,2个元素取出,后面的3也可以不填 array.sort 对数组元素进行排序。若不传参,默认将元素转换为字符串并按 Unicode 码点排序。可传入比较函数自定义排序逻辑。例如: arrA.sort(function(a,b){ return a-b; }); array.splice 从数组中移除指定数量的元素,并可插入新元素替代被移除的部分。例如:var arrB=arrA.splice(0,3,'asd','ads');//移除从下标0开始的3个元素,并用后面两个元素进行替换
函数与对象方法
函数的方法:
function.apply 用于调用函数,并指定函数内部 this 指向的对象,同时可传递一个数组作为参数列表。
数字精度控制方法
数字的方法:
number.toExponential 将数字转换为指数形式的字符串表示。例如:Math.PI.toExponential(2);//3.14e+0 number.toFixed 将数字转换为指定小数位数的十进制字符串。例如:Math.PI.toFixed(2);//3.14,保留两位小数 number.toPrecision 将数字转换为指定有效数字位数的字符串。例如:Math.PI.toPrecision(2);//3.1,保留两个有效数字 number.toString 将数字转换为字符串。若传入参数,则指定转换进制而非精度。例如:Math.PI.toString(2);//这里的2表示进制,而不是精度
对象的方法:
object.hasOwnProperty 用于判断对象自身是否包含指定的属性名(字符串)。
正则表达式匹配方法
正则表达式的方法:
regexp.exec 若匹配成功,返回一个数组。索引 0 为匹配到的完整字符串,后续索引依次对应捕获组的内容。 若正则表达式带有 g 标识(全局匹配),则搜索从 regexp.lastIndex 指定的位置开始。匹配成功后,regexp.lastIndex 更新为匹配字符串后的第一个字符位置;若未匹配,则重置为 0。 regexp.test 尝试在字符串中搜索正则表达式的匹配。若成功返回 true,否则返回 false。
字符串处理与替换方法
字符串的方法:
string.charAt 返回字符串中指定索引位置的字符。 string.charCodeAt 返回字符串中指定索引位置字符的 Unicode 编码值。 string.concat 将其他字符串连接到当前字符串末尾,返回新的合成字符串。实际开发中通常直接使用 + 运算符,更为直观便捷。 string.indexOf 在字符串中查找指定子串首次出现的位置,找到则返回索引,否则返回 -1。例如:"asdasd".indexOf("sd",2);//值为4,2表示从第3个字符开始查找 string.lastIndexOf 与 indexOf 类似,但从字符串末尾向前搜索。 string.localeCompare 根据本地环境规则比较两个字符串。strA.localeCompare(strB);//结果返回正数、负数或零,用于判断大小关系。 string.replace 执行字符串查找与替换操作,返回新字符串(以下涉及正则的方法均支持正则表达式)。
常规方法:
'asdasd'.replace('as','d');//结果为ddasd,replace只会替换第一次的出现位置。
正则表达式方法:
加g标识匹配多次,不加匹配一次
var regExp=/ee(asd\d{0,3})/g;//加g标识匹配多次,不加匹配一次 var p='eeasd1323'.replace(regExp,'$1end');//结果为eeasd1323end //'$1end'的位置也可以放一个函数,每次匹配到会运行这个函数,然后用函数的返回值替换,这里就不举栗子了 '$1end'这个东西的解释是这样的: $$:表示$这个符号 $&: 表示$&整个匹配到的文本 $number:表示分组捕获到的文本,比如上面的$1就是捕获分组1捕捉到的文本 $`:匹配之前的文本 $':匹配之后的文本 string.match 使字符串与正则表达式进行匹配。其行为受 g 标识影响。 若不带 g 标识,返回结果与 regexp.exec 类似。 若带 g 标识,返回包含所有匹配项的数组(不包括捕获组内容,具体行为视实现而定)。 string.search 与 indexOf 类似,但接受正则表达式作为参数。此方法忽略 g 标识。 string.split 根据分隔符将字符串分割为数组。此方法忽略 g 标识。 一般的玩法 var digits='0123456789'; var arr=digits.split('',5);//5表示得到的数组顶多五个元素,多余的去掉 //结果为['0','1','2','3','4'] 正则表达式的玩法 var text='troy ,123 , good '; var d=text.split(/\s*,\s*/);//前面讲过\s表示unicode各种空字符,然后所以匹配的分隔符就是包含空字符的逗号,这样就自动去掉空字符了,好强大 //但是有特例哦,来自分组捕获的文本会被包含在分割后的字符,所以我个人建议那就别用分组捕获好了,在这里没必要 string.slice 复制字符串的一部分以构建新字符串。 string.substring 与 slice 功能相似,但不支持负数索引。作者认为没有理由使用 substring 而非 slice,尽管前者在语义上可能更直观。 string.toLowerCase 返回全部小写的新字符串。 string.toLocaleLowerCase 同上,主要针对土耳其语等特定语言环境,通常可忽略。 string.toUpperCase 返回全部大写的新字符串。 string.toLocaleUpperCase 同上,针对特定语言环境,通常可忽略。 String.fromCharCode 注意 String 为大写,这是静态方法而非实例方法。根据 Unicode 编码值返回对应的字符串。(实际应用中较少见)