ES:ECMAScript简称ES - ECMA公司制定的规范
ES5:ECMA语法规范第5个版本
ES5研究两个特性:
1.ES5新增的语法 - 严格模式
2.ES5新增了一些数组的方法
1.严格模式总结:
严格模式的开启:
1.在全局的最上面,添加字符串: 'use strict'
2.在局部的最上面,添加字符串: 'use strict'
严格模式的特性:
1.不允许省略var定义变量
2.不允许函数形参同名
3.不允许普通函数中的this代表window - undefined
全局开启的严格模式,可以规范所有代码,局部开启的严格模式,只能规范局部代码
this关键字:
1.全局this、普通函数的this 、 自调用函数的this都代表window
2.事件函数中的this代表事件源
3.对象方法中的this代表当前对象
2.ES5新增了一些数组的方法
indexOf : 在数组中查找某个元素第一次出现的下标
语法:数组.indexOf(指定的元素)
返回值:如果在数组中找到元素了,返回这个元素对应的下标,如果没有找到,返回-1
var arr = [1,2,3,4,5,6,7,8,9]
// //查找5在数组中的位置
var index = arr.indexOf(5)
// console.log(index);
// 下标:0123456 ... 找不到就返回-1
// 利用indexOf判断某个元素是否数组中
if(index < 0){
console.log('不在数组中');
} else {
console.log('在');
}
forEach : 用于遍历数组的
语法:数组.forEach(function(value,index,array){
value是每次遍历出来的元素
index是每个元素对应的下标
array是当前正在遍历的数组
})
index和array是可选参数,在遍历的时候,这两个参数可加可不加
这个遍历方法,跟使用for循环遍历效果是一样的,方法内部就封装了for循环,所有这个fff是没有返回值 - undefined
如果要在遍历到某个值的时候,停止遍历只能使用for循环
var arr = ['李小璐','白百何','马伊琍','文章','贾乃亮','王宝强']
// 遍历这个数组
arr.forEach(function(value,index,array){
// console.log(value);
// console.log(index);
// console.log(array);
})
map:遍历数组,将每个元素都经过函数处理,处理成新的元素,将所有新的元素组成一个新的数组返回
语法:数组map(function(forEach的参数是一样的){
return newValue })
返回所有新元素组成的新数组
var arr = [10,20,30]
// 让每个元素都增加30%
var brr = arr.map(function(v){//这里的value是形参,我们可以自定义
var newValue = v + v*0.3
return newValue
})
console.log(brr);
filter: 过滤数组 - 遍历数组,将数组中满足指定条件的元素,组成新的数组并返回
语法:数组.fitler(function(跟forEach参数是一样的){
return 条件 })
返回值:返回满足条件的所有元素组成的数组
var arr = [85,90,68,45,96,21,59]
// 将数组中不及格的所有成绩放在新的数组中
var brr = arr.filter(function(v){
return v > 60
})
console.log(brr);