JavaScript常用API-更新中
记录一些JavaScript中经常用到的一些API,方便后续可以快速查看,如字符串、数组的方法,对象的遍历,还有后续ES6的常用API
字符串方法
| 方法 | 功能 |
|---|---|
charAt() | 得到指定位置的字符 |
substring() | 提取子串,从a开始到b |
substr() | 提取子串,从a开始,长度为b |
slice() | 提取子串,从a开始到b结束(不包括b处) |
toUpperCase() | 将字符串转换为大写 |
toLowerCase() | 将字符串转换为小写 |
indexOf() | 检索字符串,返回指定内容首次出现的位置 |
charAt()方法
-
charAt()方法可以得到指定位置的字符
'我喜欢JS,我也喜欢HTML'.charAt(0) // '我''我喜欢JS,我也喜欢HTML'.charAt(11) // 'T''我喜欢JS,我也喜欢HTML'.charAt(74) // ''
substring()、substr()和slice()
-
substring(a, b) 方法得到从a开始到b结束(不包括b处)的子串
'我喜欢JS,我也喜欢HTML'.substring(3, 5) // 'JS''我喜欢JS,我也喜欢HTML'.substring(10, 14) // 'HTML' -
substring(a) 方法如果省略第二个参数,返回的子串会一直到字符串 的结尾
'我喜欢JS,我也喜欢HTML'.substring(6) // '我也喜欢HTML' -
substring(a, b) 中,a可以大于b,数字顺序将自动调整为小数在前
'我喜欢JS,我也喜欢HTML'.substring(5, 3) // 'JS' -
substr (a, b)中,将得到从a开始的长度为b的子串
'我喜欢JS,我也喜欢HTML'.substr(3, 2) // 'JS' -
substr(a, b)中,b可以省略,表示到字符串结尾
'我喜欢JS,我也喜欢HTML'.substr(3) // 'JS,我也喜欢HTML -
substr (a, b)中,a可以是负数,表示倒数位置
'我喜欢JS,我也喜欢HTML'.substr(-4, 2) // HT' -
slice(a, b)方法得到从a开始到b结束(不包括b处)的子串
'我喜欢JS,我也喜欢HTML'.slice(3, 5) // 'JS' -
slice(a, b)的参数a可以是负数
'我喜欢JS,我也喜欢HTML'.slice(-4, -1) // 'HTM' -
slice(a, b)中,参数a必须小于参数b
'我喜欢JS,我也喜欢HTML'.slice(5, 2) // ''
对比总结
-
substring(a, b)和slice(a, b)功能基本一致,都是得到从a开始到b 结束(不包括b)的子串,区别:
① substring()可以自动交换两个参数位置,而slice()不行;
②slice()的参数a可以是负数,而substring()不行。
-
substr(a, b)中参数b是子串长度,而不是位置编号
toUpperCase()和toLowerCase()
-
toUpperCase() 转为大写
-
toLowerCase() 转为小写
'i love you'.toUpperCase(); // 'I LOVE YOU''IMOOC'.toLowerCase(); // 'imooc'
indexOf()
-
indexOf()方法返回某个指定的字符串值在字符串中首次出现的位置
-
如果要检索的字符串值没有出现,则该返回 -1
'abcdeb'.indexOf('b') // 1'abcdeb'.indexOf('de') // 3'abcdeb'.indexOf('m') // -1
数组的常用方法
数组提供大量内置方法,主要包括添加、删除、查找、遍历、排序和转换。这里只列举一些常用的,在ES6语法中会再增加一些(slice、splice、split这三个英文非常像,初学很可能弄混,这三个是完全不一样功能的,split是字符串的方法,数组可以通过join转字符串,字符串可以使用split转为数组)
添加与删除:这5个是最基础的,splice是功能最多的,push和pop是开发中最常用的
| 方法 | 作用 | 是否修改原数组 |
|---|---|---|
push() | 末尾添加元素 | 是 |
pop() | 删除末尾元素 | 是 |
unshift() | 开头添加元素 | 是 |
shift() | 删除开头元素 | 是 |
splice() | 添加、删除或替换指定位置元素 | 是 |
push()方法:(末尾追加)
-
push()方法用来在数组末尾推入新项,参数就是要推入 的项
-
如果要推入多项,可以用逗号隔开
-
调用push()方法后,数组会立即改变,不需要赋值
var arr = [1, 2, 3];arr.push(4);console.log(arr); // [1, 2, 3, 4]arr.push(5, 6);console.log(arr); // [1, 2, 3, 4, 5, 6]
pop()方法:(删除末尾)
-
与push()相反,pop()方法用来删除数组中的最后一项
-
pop()方法不仅会删除数组末项,而且会返回被删除的项
var arr = [1, 2, 3, 4];var item = arr.pop();console.log(arr); // [1, 2, 3]console.log(item); // 4
unshift()方法:(头部插入)
-
unshift()方法用来在数组头尾插入新项,参数就是要 插入的项
-
如果要插入多项,可以用逗号隔开
-
调用unshift()方法后,数组会立即改变,不需要赋值
var arr = [2, 3, 4];arr.unshift(1);console.log(arr); // [1, 2, 3, 4]arr.unshift(-1, 0);console.log(arr); // [-1, 0, 1, 2, 3, 4]
shift()方法:(删除头部)
-
与unshift()相反,shift()方法用来删除数组中下标为0 的项
-
shift()方法不仅会删除数组末项,而且会返回被删除的项
var arr = [10, 20, 30];var item = arr.shift();console.log(arr); // [20, 30]console.log(item); // 10
splice()方法
-
splice()方法第一个参数是从哪个下标开始,第二个参数是删除多少个项
arr.splice(起始下标, 删除个数)var arr = ['A','B','C','D','E','F','G'];arr.splice(3,2,'X','Y','Z');console.log(arr);// 下标3开始,连续替换2项;这种说法错误的// 准确是:下标3开始,连续删除2项,然后插入新元素// [ 'A', 'B', 'C', 'X', 'Y', 'Z','F', 'G'] -
splice()方法可以用于在指定位置插入新项(第二个参数设置0,就没有删除项)
arr.splice(起始下标, 0, 新元素)var arr = [1, 2, 5, 6];arr.splice(2, 0, 3, 4);console.log(arr); // [1, 2, 3, 4, 5, 6] -
splice()方法可以用于删除指定项;result返回被删除的项
arr.splice(起始下标, 删除个数)var arr = [10, 20, 30, 40];var result = arr.splice(1, 1);console.log(arr); // [10, 30, 40]console.log(result); // [20] -
splice()方法会以数组形式返回被删除的项
查找与判断:
| 方法 | 作用 | 返回值 |
|---|---|---|
indexOf() | 查找元素首次出现的位置 | 下标或 -1 |
lastIndexOf() | 查找元素最后出现的位置 | 下标或 -1 |
includes() | 判断是否包含元素 | 布尔值 |
find() | 查找第一个符合条件的元素 | 元素或 undefined |
findIndex() | 查找第一个符合条件的元素下标 | 下标或 -1 |
some() | 是否至少一个元素符合条件 | 布尔值 |
every() | 是否所有元素符合条件 | 布尔值 |
indexOf()方法的功能是搜索数组中的元素,并返回它所 在的位置,如果元素不存在,则返回-1
var arr = ['A', 'B', 'C', 'D'];
console.log(arr.indexOf('B')); // 1console.log(arr.indexOf('Z')); // -1includes()方法的功能是判断一个数组是否包含一个指定 的值,返回布尔值
var arr = ['A', 'B', 'C'];console.log(arr.includes('B')); // trueconsole.log(arr.includes('Z')); // false截取、合并与转换
| 方法 | 作用 | 是否修改原数组 |
|---|---|---|
slice() | 截取数组片段 | 否 |
concat() | 合并数组 | 否 |
join() | 将数组连接成字符串 | 否 |
reverse() | 反转数组 | 是 |
sort() | 对数组排序 | 是 |
flat() | 展平嵌套数组 | 否 |
slice()方法:slice()方法用于得到子数组,slice(a, b)截取的子数组从下标为a的项开始,到下标为 b(但不包括下标为b的项)结束
-
标准写法
var arr = ['A','B','C','D','E','F'];var result = arr.slice(1, 4);console.log(result); // ['B','C','D'] 从下标 1 开始;(B)到下标 4 结束(不包含4)所以是:B、C、Dconsole.log(arr); // ['A','B','C','D','E','F'] -
slice()如果不提供第二个参数,则表示从指定项开始,提 取所有后续所有项作为子数组
var arr = ['A','B','C','D','E','F'];var result = arr.slice(2);console.log(result); // ['C','D','E','F'] -
slice(a, b)方法不会更改原有数组,返回的是截取的数组
var arr = [1, 2, 3, 4];var result = arr.slice(1, 3);console.log(result); // [2, 3]console.log(arr); // [1, 2, 3, 4] ✔ 原数组不变 -
slice()方法的参数允许为负数,表示数组的倒数第几项
var arr = ['A','B','C','D','E','F'];var result = arr.slice(-3);console.log(result); // ['D','E','F']
concat()方法
-
concat()方法可以合并连结多个数组
-
concat()方法不会改变原数组
var arr1 = [1, 2, 3, 4];var arr2 = [5, 6, 7, 8];var arr3 = [9, 10, 11];var arr = arr1.concat(arr2 , arr3);console.log(arr);// [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
join()方法
-
数组的join()方法可以使数组转为字符串;字符串的split() 方法可以使字符串转为数组。
-
join()的参数表示以什么字符作为连接符,如果留空则默 认以逗号分隔,如同调用toString()方法
var arr = ['A', 'B', 'C'];var str = arr.join('-');console.log(str); // "A-B-C" -
split()的参数表示以什么字符拆分字符串,一般不能留空
var str = "A-B-C";var arr = str.split('-');console.log(arr); // ["A", "B", "C"]
reverse()方法
-
reverse()方法用来将一个数组中的全部项顺序置反
var arr = ["A","B","C","D"];arr.reverse();console.log(arr); // ["D","C","B","A"]
文章分享
如果这篇文章对你有帮助,欢迎分享给更多人!














