一、数组的方法
会改变原数组
(1)push( )方法
接收任意数量的参数,把它们逐个添加到数组末尾,并返回修改后数组的长度。
![](https://i-blog.csdnimg.cn/blog_migrate/dcf0a22e3080c863b16e9074502f9dc7.png)
(2)pop( )方法
删除数组末尾最后一项,并返回删除元素的值。
![](https://i-blog.csdnimg.cn/blog_migrate/2b380c8875f097329500ef5a9509170c.png)
(3)shift( )方法
删除数组第一项,并返回删除元素的值(如果数组为空则返回 undefined )。
![](https://i-blog.csdnimg.cn/blog_migrate/3392ac614dbce6be8222a975f04137e3.png)
(4)unshift( )方法
将参数添加到原数组开头,并返回数组的长度。
![](https://i-blog.csdnimg.cn/blog_migrate/54a386fa6592189cfd8ffef6c4ac1b99.png)
(5)sort( )方法
默认按升序排列数组项,排序时会调用每个数组项的 toString() 转型方法,然后比较得到的字符
串, 以确定如何排序。
数组内为字符串时,会按升序来排列并改变原数组;数组内为数值时,排序并未发生改变。
![](https://i-blog.csdnimg.cn/blog_migrate/5c7ee9224d01a0030ad95f3c87582877.png)
为了使数组内的数值进行排序,sort() 方法可以接收一个比较函数作为参数。
![](https://i-blog.csdnimg.cn/blog_migrate/bbf7806e84e0bab348aeaae802f0d9e4.png)
(6)reverse( )方法
通过反转字符序列来反转该字符序列。
![](https://i-blog.csdnimg.cn/blog_migrate/4463fcb3e48dd3d7aee2b13287931fa6.png)
(7)splice( )方法
splice() 方法始终都会返回一个数组,该数组中包含从原始数组中删除的项,如果没有删除任何项,则
返回一个空数组。
删除:3 种参数:起始位置、要删除的项数和要插入的项(这里为空)。
例如, splice(1,3) 会删除数组中从位置1开始的三项,即2,3,4;
![](https://i-blog.csdnimg.cn/blog_migrate/f01130124165300d78bc7c4a9ae4d51c.png)
插入:3 种参数:起始位置、要删除的项数(这里为0)和要插入的项。
例如,splice(5,0,6,7,8) 会从当前数组的位置 5开始插入6、7、8;
![](https://i-blog.csdnimg.cn/blog_migrate/5af5ddb67f2199f23e8b3f0b69804382.png)
替换:3 种参数:起始位置、要删除的项数和要插入的项。
例如,splice (2,2,7,8) 会删除当前数组位置 2和位置3的项,然后再从位置 2 开始插入7,8;
![](https://i-blog.csdnimg.cn/blog_migrate/b61f106158fa5549f82307d1bb7c0b57.png)
不会改变原数组
(1)concat( )方法
将参数添加到原数组的副本中,没参数时只是复制当前数组并返回副本。
![](https://i-blog.csdnimg.cn/blog_migrate/1a38bdafd0a2f7b2e5d0a32513ca0781.png)
(2)slice( )方法
返回从原数组中指定开始下标到结束下标之间的项组成的新数组。
只有一个参数时,返回从该参数位置开始到末尾的所有项
如果有两个参数,返回起始和结束位置之间的项(但不包括结束位置的项)
![](https://i-blog.csdnimg.cn/blog_migrate/cd448d37751fff3074acca9b4767b850.png)
(3)join( )方法
将数组的元素组起一个字符串,该方法只接收一个参数:分隔符(默认为逗号)
![](https://i-blog.csdnimg.cn/blog_migrate/ea04a7beb2c3d27e810d6c1a1041dbae.png)
(4)indexOf( )方法
接收两个参数:要查找的项和起始位置(默认从0开始),查找方向从左往右。
![](https://i-blog.csdnimg.cn/blog_migrate/4ce0e62a1d6c24cb091688b2add98d08.png)
(5)lastlndexOf( )方法
接收两个参数:要查找的项和起始位置(默认从末尾开始),查找方向从右往左。
![](https://i-blog.csdnimg.cn/blog_migrate/436d816b0a612503411395544720f2ee.png)
(6)forEach( )方法
对数组进行遍历循环,对数组中的每一项运行参数的函数。参数都是function类型。
其中对应的参数分别为:遍历的数组内容,对应的数组索引,数组本身。
![](https://i-blog.csdnimg.cn/blog_migrate/2b9d9592c34d7fe49f32d8e31ed932d4.png)
(7)map( )方法
指“映射”,对数组中的每一项运行参数的函数,并返回每次函数调用的结果组成的数组。
![](https://i-blog.csdnimg.cn/blog_migrate/ad8a5f5bf3026cb1220e5897cdfa00a3.png)
(8)filter( )方法
指“过滤”,数组中的每一项运行参数的函数,并返回满足过滤条件组成的数组。
![](https://i-blog.csdnimg.cn/blog_migrate/9f7211e914368946922ca874864ae16b.png)
(9)every( )方法
判断数组中每一项都是否满足条件,只有所有项都满足条件,才会返回true。
![](https://i-blog.csdnimg.cn/blog_migrate/2731f5c76a010d48d894a600a0f4b0d9.png)
(10)some( )方法
判断数组中是否存在满足条件的项,只要有一项满足条件,就会返回true。
![](https://i-blog.csdnimg.cn/blog_migrate/2efdb84df847158756c6c6f8ddda96d6.png)
(11)reduce( )方法
实现迭代数组的所有项,然后构建一个最终返回的值。reduce() 接收两个参数:在每一项上调用的函
数,作为归并基础的初始值。
其中函数接收 4 个参数:前一个值、当前值、项的索引和数组对象。
![](https://i-blog.csdnimg.cn/blog_migrate/0cbd2dfbb26638033a93c8ee993bc240.png)
(12)reduceRight( )方法
与 reduce() 同理,但遍历是从右往左,与 reduce() 反向。
![](https://i-blog.csdnimg.cn/blog_migrate/4565c5c1d4ce63c5948f971e018fc0ea.png)
扩展方法
(1)Array.form( )方法
Array构造函数提供了一个from( )方法,它可以接受一个伪数组作为参数,返回值为伪数组转换后
的结果,这个结果是一个真正的数组。
![](https://i-blog.csdnimg.cn/blog_migrate/8bc2338e7660773bf1b7be480108d6f7.png)
在Array构造函数中from( )方法还可以接收两个参数,这与数组中的map( )方法类似,它用于处
理数组中的每个元素并将处理后的结果放入返回的数组中。
![](https://i-blog.csdnimg.cn/blog_migrate/99be02b258699d2cbc4d4a890d5c173b.png)
(2)find( )方法
用于在数组中查找出第一个符合条件的数组成员。find( )方法接受一个函数作为参数,所有数组
成员依次执行该回调函数,直到找出第一个返回值为true的成员,然后返回该成员,如果没有找到
符合条件的成员,则返回undefined。
![](https://i-blog.csdnimg.cn/blog_migrate/8191afc727b8bbea2d7e95ebf0ee41d2.png)
(3)findIndex( )方法
用于在数组中查找出第一个符合条件的数组成员的索引,如果没有找到则返回-1。
![](https://i-blog.csdnimg.cn/blog_migrate/3fd3d388da602c5971971dc9a616487a.png)
(4)includes( )方法
可以表示某个数组是否包含给定的值,返回一个布尔值,true表示包含给定的值,false表示不包
含给定的值。
![](https://i-blog.csdnimg.cn/blog_migrate/0f06c599b8e095f9988e0eca1fbd6edf.png)
二、字符串的方法
1.charAt( )方法
返回在指定位置的字符。
![](https://i-blog.csdnimg.cn/blog_migrate/49e0d698272997250c21a176c4187110.png)
2.charCodeAt( )方法
返回在指定的位置的字符的 Unicode 编码。
![](https://i-blog.csdnimg.cn/blog_migrate/caf80006fdb577a895b360c2bc0f0b30.png)
3.concat( )方法
连接字符串。
![](https://i-blog.csdnimg.cn/blog_migrate/541bd65bd78a2183530351c697461463.png)
4.indexOf( )方法
检索字符串。indexOf() 方法对大小写敏感。
![](https://i-blog.csdnimg.cn/blog_migrate/530cd8da862c9ae77df1ffcbe5fc0a5b.png)
5.match( )方法
match() 方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。该方法
类似 indexOf() 和 lastIndexOf(),但是它返回指定的值,而不是字符串的位置。
![](https://i-blog.csdnimg.cn/blog_migrate/0509d737c77da0731d663eab23d7481d.png)
6.replace( )方法
replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配
的子串。
![](https://i-blog.csdnimg.cn/blog_migrate/b59cbe221f9e91ec7133dec6cd882ec1.png)
7.search( )方法
用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串。要执行忽略
大小写的检索,请追加标志 i。如果没有找到任何匹配的子串,则返回 -1。
![](https://i-blog.csdnimg.cn/blog_migrate/47e869f99eeba3bd6d267b8e7a677846.png)
8.slice( )方法
提取字符串的片断,并在新的字符串中返回被提取的部分。
参数为(要抽取的片断的起始下标,紧接着要抽取的片段的结尾的下标);
如果该参数是负数,那么它规定的是从字符串的尾部开始算起的位置。
![](https://i-blog.csdnimg.cn/blog_migrate/a8abd2c05ed31193cc4411709e050e22.png)
9.split( )方法
把字符串分割为字符串数组。
![](https://i-blog.csdnimg.cn/blog_migrate/71589a0de00ed7c642d2177fa92291cb.png)
10.toLocaleLowerCase( )方法
把字符串转换为小写。
![](https://i-blog.csdnimg.cn/blog_migrate/9f108e002574e2bae036d8814a7229b4.png)
11.toLocaleUpperCase()方法
把字符串转换为大写。
![](https://i-blog.csdnimg.cn/blog_migrate/6ebc6f3a115c6da3ecf7d4fe7c8ffc83.png)
12.toLowerCase( )方法
把字符串转换为小写。
![](https://i-blog.csdnimg.cn/blog_migrate/d4ad5f71c2aea1e0113f8bd1fa0d5634.png)
13.toUpperCase( )方法
把字符串转换为大写。
![](https://i-blog.csdnimg.cn/blog_migrate/a8a86fdc5639ea3e2f1a1908a6f2e750.png)
14.substr( )方法
从起始索引号提取字符串中指定数目的字符。
参数(要抽取的子串的起始下标,子串中的字符数。必须是数值);
![](https://i-blog.csdnimg.cn/blog_migrate/a3770b8a540ff70fdbc2760282d8401e.png)
15.substring( )方法
提取字符串中两个指定的索引号之间的字符。
参数(起始位置,结束位置);
![](https://i-blog.csdnimg.cn/blog_migrate/56083db85a49196f936500a493cf6352.png)
16.codePointAt( )方法
codePointAt方法的参数是字符在字符串中的位置(从 0 开始),最终值返回十进制码。
![](https://i-blog.csdnimg.cn/blog_migrate/4dad3b92eebc391886e4214bbf25c6ef.png)
17.String.fromCodePoint( )方法
用于从码点返回对应字符,但是这个方法不能识别 32 位的 UTF-16 字符(Unicode 编号
大于0xFFFF)
![](https://i-blog.csdnimg.cn/blog_migrate/f0b3983c5e232a2017f89d7d618658c7.png)
18.字符串的遍历器接口 for of
它最大的优点是可以识别大于0xFFFF的码点,传统的for循环无法识别这样的码点。
![](https://i-blog.csdnimg.cn/blog_migrate/c5abe0fdb751686745cd978f2c87ecf9.png)
19.at( )方法
at方法可以识别Unicode 编号大于0xFFFF的字符,返回正确的字符。
![](https://i-blog.csdnimg.cn/blog_migrate/2ec3a2e379aba667b59e539e6a167d48.png)
20.normalize( )方法
用来将字符的不同表示方法统一为同样的形式,这称为 Unicode 正规化。
![](https://i-blog.csdnimg.cn/blog_migrate/193a55aacff748acae3ad74afe8672c3.png)
21.includes( ), startsWith( ), endsWith( )
includes( ),返回布尔值,表示是否找到了参数字符串;
startsWith( ),返回布尔值,表示参数字符串是否在原字符串的头部;
endsWith( ),返回布尔值,表示参数字符串是否在原字符串的尾部;
这三个方法都支持第二个参数,表示开始搜索的位置。
![](https://i-blog.csdnimg.cn/blog_migrate/93ba360cd822a007dabf603d9d47d65e.png)
22.repeat( )方法
返回一个新字符串,表示将原字符串重复n次。
参数如果是小数,会被取整。
参数是负数或者Infinity,会报错。
![](https://i-blog.csdnimg.cn/blog_migrate/19657c11502cee55a18fd7712b8a9843.png)
23.padStart( ),padEnd( )
字符串补全长度的功能。如果某个字符串不够指定长度,会在头部或尾部补全。padStart()
用于头部补全,padEnd()用于尾部补全。
![](https://i-blog.csdnimg.cn/blog_migrate/ec8706a1d0256c06a38a42a8a91f4a5d.png)
如果原字符串的长度,等于或大于指定的最小长度,则返回原字符串
![](https://i-blog.csdnimg.cn/blog_migrate/177f8e23878172743ab0ef541d09360d.png)
如果用来补全的字符串与原字符串,两者的长度之和超过了指定的最小长度,则会截去超
出位数的补全字符串。
![](https://i-blog.csdnimg.cn/blog_migrate/d660c0d42164314f5e85e75cdd5a6372.png)
如果省略第二个参数,默认使用空格补全长度。
另一个用途是提示字符串格式。
![](https://i-blog.csdnimg.cn/blog_migrate/cf2640d9be5810bec9d3b58350a08004.png)
24.matchAll( )方法
matchAll方法返回一个正则表达式在当前字符串的所有匹配。
![](https://i-blog.csdnimg.cn/blog_migrate/183613bf8ea5304a11750490fe71ee9a.png)
25.字符串模板
模板字符串(template string)是增强版的字符串,用反引号(`)标识。它可以当作普通
字符串使用,也可以用来定义多行字符串,或者在字符串中嵌入变量。如果你不想要这个
换行,可以使用trim方法消除它。
(1)如果使用模板字符串表示多行字符串,所有的空格和缩进都会被保留在输出之中。
(2)模板字符串中嵌入变量,需要将变量名写在${}之中,,括号内部可以放入任意的
JavaScript 表达式,可以进行运算,以及引用对象属性。
(3)模板字符串甚至还能嵌套。
![](https://i-blog.csdnimg.cn/blog_migrate/cc84ce3cf510fa3a91c6c8008facedc3.png)