目录
3.toString/join;reverse/sort;indexof/lastIndexof
1.charAt/charCodeAt;indexOf/lastIndexOf;toUpperCase/toLowerCase
数组中的常用方法
按照四个维度记忆:
方法的作用
方法的参数
方法的返回值
原有数组是否改变
1.push/pop/shift/unshift
push
作用:向数组“末尾”追加新的内容 参数:追加的内容(可以是一个,也可是多个) 返回值:新增后数组的长度 原有数组改变
var ary = [12,23,34];
ary.push(100); //=>4 ary:[12,23,34,100]
ary.push(100,{name:'xxx'}); //=>6 ary:[12,23,34,100,100,{...}]
pop
作用:删除数组最后一项 参数:无 返回:被删除的那一项内容 原有数组改变
shift
作用:删除数组中的第一项 参数:无 返回:被删除的那一项内容 原有数组改变
unshift
作用:向数组开始位置追加新内容 参数:要新增的内容 返回:新增后数组的长度 原有数组改变
2.splice/slice/concat
splice
基于 SPLICE可以对数组进行很多的操作:删除指定位置的内容、向数组指定位置增加内容、还可以修改指定位置的信息
删除:ary.splice(n,m)
从索引n开始,删除m个内容,把删除的部分以一个新数组返回,原有数组改变
(m不传或大于length,会删除到数组末尾)
新增:ary.splice(n,0,x,...)
从索引n开始删除零项(没删除),把插入的内容从索引N开始存放。
修改:ary.splice(n,m,x,...)
修改的原理就是把原有内容删除掉,然后用新的内容替换这部分信息即可
需求扩展:
-
删除数组最后一项,你有几种办法?
-
向数组末尾追加新内容,你有几种办法?
//=>删除最后一项
ary.pop()
ary.splice(ary.length-1)
ary.length--
//=>向数组末尾追加新内容
ary.push(100)
ary.splice(ary.length,0,100)
ary[ary.length]=100
slice
作用:在一个数组中,按照条件查找出其中的部分内容 参数:两个参数(n/m),从索引n开始,找到索引m处,但是不包含m 返回:以一个新数组存储查找的内容 原有数组不会变
实现数组的克隆
ary.slice(0)//ary.slice()
返回的是一个新数组,与原有的数组内容一样,但是不是一样的堆内存空间
concat
作用:实现多个数组(或者值)的拼接 参数:数组或者值 返回:拼接后的新数组 原有数组不变
3.toString/join;reverse/sort;indexof/lastIndexof
toString
作用:把数组转换为字符串 参数:无 返回:数组中的每一项用逗号分隔的字符串 原有数组不变
join
作用:和toString类似,也是把数组转换为字符串,但是我们可以设置每一项之间的连接符 参数:指定的链接符 返回:字符串 原有数组不变
reverse
作用:把数组倒过来排列 参数:无 返回:排列后的新数组 原有数组改变
sort
作用:给数组排序 参数:无/函数 返回:排序后的新数组 原有数组改变
indexOf / lastIndexOf
这两个方法不兼容IE低版本浏览器(IE6~8) 作用:检测当前值在数组中第一次或者最后一次出现位置的索引 参数:要检测的值 返回:索引 原有数组不变
如果有这一项,返回>=0的索引,没有返回-1
//=>验证数组中是否包含某一项
if(ary.indexOf(100)>-1){
//=>ARY中包含100这一项
}
除了以上方法,数组中还包含很多常用的方法(Array.prototype)
-
every
-
filter
-
find
-
forEach
-
includes
-
keys
-
map
-
reduce / reduceRight
-
some
-
...
字符串中常用的方法
字符串是基本数据类型,字符串的每一次操作都是值直接的进行操作,不像数组一样是基于空间地址来操作的,所以不存在原有字符串是否改变这一说,肯定都是不变的
1.charAt/charCodeAt;indexOf/lastIndexOf;toUpperCase/toLowerCase
charAt/charCodeAt
作用:charAt根据索引获取指定位置的字符,charCodeAt不仅仅获取字符,它获取的是字符对应的Unicode编码值(ASC II码值) 参数:索引 返回:字符或者对应的编码
indexOf/lastIndexOf
基于这两个方法,可以获取字符在字符串中第一次或者最后一次出现位置的索引,有这个字符,返回大于等于零的索引,不包含这个字符,返回的结果是-1,所以可以基于这两个方法,验证当前字符串中是否包含某个字符
toUpperCase/toLowerCase
实现字母的大小写转换,toUpperCase小写转大写,toLowerCase大写转小写
2.slice/substring/substr
slice
作用:str.slice(n,m) 从索引n开始找到索引为m处(不包含m),把找到的字符当做新字符串返回
substring
和slice语法一模一样,唯一的区别在于:slice支持负数索引,而substring不支持负数索引
substr
也是字符串截取的方法,用法是:str.substr(n,m),从索引n开始截取m个字符
3.split/replace
split
和数组中的join相对应,数组中的join是把数组们一项按照指定的连接符变为字符串,而split是把字符串按照指定的分隔符,拆分成数组中每一项
replace
作用:替换字符串中的原有字符 参数:原有字符,要替换的新字符 返回:替换后的字符串
字符串中还有很多常用方法,回去后大家可以自己扩展一下:(String.prototype)
-
includes
-
search
-
trim
-
...
数学函数Math
1.abs/ceil/floor/round
abs
:取绝对值
ceil/floor
:向上或者向下取整
round
:四舍五入
2.PI
PI
:获取圆周率
3.max/min/random
max/min
:获取最大值和最小值
random
:获取0~1之间的随机小数
4.sqrt/pow
sqrt
:开平方
pow
:取幂(N的M次方)