ES5及ES6
ES (ESMA SCRIPT)常见的版本 ES3 (最基础的版本 所有的浏览器都能解析) ES5 (部分低版本浏览器不能解析) ES6 (大部分的不能直接解析)ES7…
ES5
es5的增强内容(2009年 12月)
严格模式 (是es5新增的一个模式)
1.变量命名必须要有修饰符
2.函数内部this不能指向window
3.函数内容的arguments形参不同步
4.禁止在非函数代码块内 声明函数
5.禁止八进制
数组加强
indexOf 根据对应的内容找下标 从前到后 找不到返回-1
lastIndexOf 根据对应的内容找下标 从后往前 找不到返回-1
高阶函数
forEach 遍历的(遍历每个结果做相关操作)
map 遍历的 return (遍历每个结果做相关操作 返回一个新的数组)
some 有一些内容 返回boolean
every 所有都是 返回boolean
reduce reduceRigth 计算 (遍历每个值 做相关计算 返回结果)
filter 过滤 (遍历每个结果找到返回条件的结果返回数组)
bind 绑定this指向
<script>
var obj = {
name:'jack'
}
//属于window
var name = "tom"
function sayHello(){
//this指向window
console.log(this.name);
}
sayHello() //打印tom
//bind方法 属于object的方法
//把sayHello 绑定给obj sayHello里面的this 指向对应的obj
var bindFuntion = sayHello.bind(obj)
//bind的返回值也是一个对象
bindFuntion()//打印jack
</script>
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0AaUeSIk-1655780146790)(C:\Users\29769\AppData\Roaming\Typora\typora-user-images\image-20220613145402800.png)]
apply方法
call方法
var obj = {
name:'jack'
}
//属于window
var name = "tom"
function sayHello(){
//this指向window
console.log(this.name);
}
sayHello() //打印tom
//绑定this指向 自动执行方法 第一个参数指定的this指向 第二个参数为函数需要的参数 他传递的参数为数组
sayHello.apply(obj,null)
// 第一个参数指定的this指向 第二个参数为函数需要的参数 传递的参数为一个个的元素
sayHello.call(obj,null)
ES6
es6诞生于2015年6月 (对于函数对象和string 数组做了全套加强)
<script type=‘module’> es6的代码 </script>
命名修饰符
let 块状作用域
let b = 11 //声明的是一个块状作用域 let关键词在对应的区间不能重复声明
// let b = 12
for(let i=0;i<10;i++){
}
for(let i=0