笔记如下,如有错误,欢迎大家指正!
循环语句:通过循环语句可以反复执行一段代码多次
- while循环
- 语法:while(条件表达式){语句...} //先判读条件后执行语句
- do...while循环
- 语法:do{语句...} while(条件表达式)//先执行语句后判断条件
- for循环
- 语法:for(初始化表达式;条件表达式;更新表达式){语法...}
console.time('计时器名字') //可以用来开启一个计时它需要一个字符串作为参数,这个字符串将会作为计时器的标识
console.timeEnd() //用来停止一个计时器
数组(Array):使用数字来作为索引操作元素。
- 索引:从0开始的数字就是索引,可以使用length属性来获取数组的长度(元素的个数)
- 语法:数组.length
- 对于连续的数组,使用length可以获取到数组的长度(元素的个数)
- 对于非连续的数组,使用length会获取到数组的最大索引+1
- 修改length: 如果修改的length大于原长度,则多出的部分会空出来;如果修改的length小于原长度,则多出的元素会被删除
- 向数组的最后一个位置添加元素
- 语法:数组[数组.length] = 值;
- Array的方法
- push():该方法可以向数组末尾添加一个或多个元素,并返回数组的新长度;
- pop():该方法可以删除数组最后一个元素,并将删除的元素作为返回值返回;
- unshift():向数组开头添加一个或多个元素,并返回新的数组长度;
- shift():可以删除数组的第一个元素,并将删除的元素作为返回值返回;
- slice(start,end):可以用来从数组提取指定元素,包含开始索引,不包含结束索引;
- 参数:1.start截取开始位置的索引 2.end截取结束位置的索引
- splice(start,num):可以用于删除数组中的指定元素并添加新元素;使用splice()会影响到原数组,会将指定元素从原数组中删除,并将被删除的元素作为返回值返回;
- 参数:1.start表示开始位置的索引 2.num表示删除的数量 3.可以传递一些新的元素,并将这些元素自动插入到开始位置索引前面
- concat():可以连接或多个数组,并将新的数组返回,该方法不会对原数组产生影响
- join():将数组中的元素转换为字符串
- reverse():将数组中的元素倒叙
var arr = [1,2,3,2,2,1,3,4,2,5]; //去除数组中重复的数字
//获取所有元素
for(var i=0;i<arr.length;i++){
// 获取当前元素后面的所有元素
for(var j=i+1;j<arr.length;j++){
if(arr[i] == arr[j]){
arr.splice(j,1);
j--;
}
}
forEach()遍历数组
- 它需要一个函数作为参数,像这种函数,由我们创建但是不由我们调用,称为回调函数
- 数组中有几个元素函数就会执行几次,每次执行时,浏览会将遍历到的元素以实参的形式传递进来
- 浏览器会在回调函数中传递三个参数,分别是:元素,索引,数组;
arr.forEach(function(self,index,arr){},this);
self: 数组当前遍历的元素,默认从左往右依次获取数组元素。
index: 数组当前元素的索引,第一个元素索引为0,依次类推。
arr: 当前遍历的数组。
this: 回调函数中this指向。
for和forEach的区别
-
for循环可以使用break跳出循环,但forEach不能。
-
for循环可以控制循环起点(i初始化的数字决定循环的起点),forEach只能默认从索引0开始。
-
for循环过程中支持修改索引(修改 i),但forEach做不到(底层控制index自增,我们无法左右它)