push pop shift unshift
- push: 在数组末尾添加一个元素
- pop: 在数组末尾删除一个元素
- shift: 在数组前面取出一个元素并将这个元素从数组中删除
- unshift: 在数组前面添加一个元素
- 注意点:
- 返回的都是添加的或者被删除的元素
- 原数组会被修改
清空数组
语法糖(推荐)
var arr = [1, 3, 5];
arr = []; // 推荐
设置长度为0
arr.length = 0;
splice方法
- 第一个参数: 从什么地方开始删除
- 第二个参数: 删除多少个
//splice方法用于删除数组中的元素
//第一个参数: 从什么地方开始删除
//第二个参数: 需要删除多少个
arr.splice(0, arr.length);
concat
- 用于拼接数组
- 函数返回一个新数组,不会更改原数组
- 格式: 数组一.concat(数组二) (将数组二拼接到数组一后面)
slice
- 用于截取数组
- 函数返回一个新数组,不会更改原数组
- 格式: 数组一.slice(参数1,参数2)
- 参数1: 表示从哪里开始截取 参数2: 表示截取到哪里 但不包括参数2
- 参数1 参数2都代表索引
查找元素
indexOf
- 接收一个参数, 表示要查找的元素,返回查找到元素的索引,没有找到返回-1
- 注意点: 从前往后查找,一旦查找到就不会继续查找
lastIndexOf
- 接收一个参数, 表示要查找的元素,返回查找到元素的索引,没有找到返回-1
- 注意点: 从后往前查找,一旦查找到就不会继续查找
find
- find方法需要传递一个函数, 内部会遍历调用者(数组), 取出每一个元素.取出一个元素就调用一次传入的函数, 将取出的元素传递给这个函数
- 只要有一个元素满足函数中的条件就会停止查找,返回查找的数,如果数组里没有,返回undefined
注意点: 在IE浏览器中会有问题
findIndex
- find方法需要传递一个函数, 内部会遍历调用者(数组), 取出每一个元素.取出一个元素就调用一次传入的函数, 将取出的元素传递给这个函数
- 只要有一个元素满足函数中的条件就会停止查找,返回查找的数的索引,如果数组里没有,返回-1
注意点: 在IE浏览器中会有问题
filter
- 执行函数后,内部会创建一个新数组并返回
- 接收一个回调函数,回调函数满足条件返回true就把元素添加到新数组中
join
- 将数组转换为字符串,接收一个参数,表示数组元素之间用什么连接
- 返回转换的字符串
sort
- 常用于数组排序
- 不传参数,按照Unicode编码排序,排序不一定稳定,可能会有意想不到的结果
- 接收一个回调函数,回调函数接收两个参数a,b,如果返回值小于0,那么 a 会被排列到 b 之前,如果返回值大于0,b 会被排列到 a 之前,如果相等,位置不变
arr.sort(function (a, b) {
// 直接return, 用第一个参数减去第二个参数的结果, 就是升序排序
// 直接return, 用第二个参数减去第一个参数的结果, 就是降序排序
// return a - b;
return b - a;
});
reverse
- 用于数组的翻转
遍历数组
forEach
- 接收一个回调函数,回调函数接收一个参数
- forEach会依次取出调用者的每一个元素, 每取出一个元素就会执行一次回调函数,并且会将当前取出的元素传递给回调函数
- 注意点: 原数组会被修改
map
- 和filter函数差不多, 都用于过滤元素, 只有满足添加的元素才会被添加到新的数组中
- 但是和filter函数的区别是, filter返回的数组中只有满足添加的元素
- 而map返回的数组中不满足条件的元素会存储一个undefined
- map会依次取出调用者的每一个元素, 每取出一个元素就会执行一次回调函数,并且会将当前取出的元素传递给回调函数
字符串的类型
基本类型
Number
Boolean
null
undefined
String
基本类型的包装类型
- 通过Number/Boolean/String类型的构造函数创建的对象, 我们就称之为包装类型
var num2 = new Number(666);
var flag2 = new Boolean(false);
字符串的定义
字面量定义
- 通过字面量创建的字符串, 是一个常量, 是不可以修改的
var str1 = 'abc';
var str2 = "lnj";
var str3 = new String("it666");
字符串的性能
- 由于每次定义字符串都会重新开辟一块存储空间,所以以后在企业开发中, 一定要尽量避免频繁的拼接字符串
concat
- 和数组一样
获取字符
- 注意点: 以下的方法只有H5支持
charAt
- 接收一个数字,表示获取指定索引的字符
charCodeAt
- 接收一个数字,表示获取指定索引的字符的ASCII码
截取子串
slice
- 和数组一样,接收两个参数: 起始位置和结束位置,但不包括结束位置
- 返回截取的字串
substr
- 接收两个参数: 起始位置和截取的字符数
- 返回截取的字符串
substring
- 接收两个参数: 起始位置和结束位置,但不包括结束位置
- 返回截取的子串
字符串切割
split
- 接收一个参数: 按什么字符切割
- 返回一个数组,存放切割后的字符串
字符串查找
indexOf 和 lastIndexOf
- 和数组一样,返回找到的索引,一旦找到不会继续查找
demo
// http://www.it666.com?name=lnj&age=13;
// 获取URL中的参数
var url = "http://www.it666.com?name=lnj&age=13";
// 1.找到?的位置
var idx = url.indexOf("?");
// 2.将参数截取出来
// +1 是截取的是否不需要?, 所以从?后面一个开始截取
// url.length 是字符串的长度, 而字符串索引的最大值是长度-1
// substring会从第一个参数开始截取, 截取到第二个参数位置, 但是不包含第二位参数所在的位置
var res = url.substring(idx + 1, url.length);
// console.log(res);
// 3.拆分参数
var arr = res.split("&");
// console.log(arr); // [name=lnj, age=13]
arr.forEach(function (ele) {
// [name, lnj]
// [age, 13]
var tempArray = ele.split("=");
console.log(tempArray);
});