变量提升
提升是用来描述变量和函数移动到全局或函数作用域顶部的术语 ==注意:== 只有使用var声明的变量,或者函数声明才会被提升,相反,函数表达式或箭头函数,const和let声明的变量,都不会被提升。 ==例子:==
数组的方法
会改变原始数组的方法:
push、pop、unshift、shift、reverse、sort、splice、
不会改变原始数组的方法:
join、indexOf、lastIndexOf、slice、concat
==使用:== 数组.方法();
首位: unshift(新增)、shift(删除);
末尾: push(新增)、 pop(删除);
==注意:== 新增返回数组最新长度,删除返回被删除的值;
反转: reverse;
排序: sort
==注意:== 不带函数时,会将数组下标对应的值转换为字符串进行比较,带函数时,则根据参数来排序(a - b从小到大|b - a从大到小)
截取与替换:
相同:
splice与slice都可以截取数组并作为返回值赋值给某个变量;
不同
splice会改变原数组,且可以将截取到的数组替换为定义的参数 使用方法: 数组.splice==(截取起始的下标,截取的个数,替换的变量);== ==注意:== 当只有一个参数时,默认是截取的个数,截取从头开始; slcie不会改变原数组,截取结束的位置不包括第二个参数; 使用方法: 数组.slice==(截取起始的下标,截取终止的下标);== ==注意:== 截取终止位置不包括第二个参数,且当只有一个参数是默认从该下标位置截取至结束位置,==当参数为负数时,倒着截取可以参考python;==
合并
采用concat连接时不会改变原数组,若连接内容中包含==一重数组==,则会将数组中的值分别取出再连接至数组末尾并返回;
间隔
join可以用来使数组扁平化,默认值是',',在不填写参数时,默认以逗号来分隔数组;
查询
indexOf和lastIndexOf的用法相同,第二个参数是开始索引下标,可不写;不同在于该值存在时,返回的是第一次和最后一次,不存在时则都返回-1;
数组塌陷
当数组长度改变时,循环变量需要进行与循环条件相反的操作(==如:++|--==)来使得循环顺利进行