ES6
ES6的好处
1、更加符合面向对象
2、新增作用域 块级作用域
3、改变函数的写法以及规定了this 的指向性
4、新增了模块化开发思想 打开前段新纪元
let const var 区别
1、let const只在块级作用域生效 {}是一种特殊的块级作用域 var在全局局部 都可以
2、let const不会变量提升 不会预处理 var存在变量的提升
3、let const不可以重复定义 var可以
4、let const不会挂载到window上面 var定义变量会被挂载到window上面
5、const 定义常量 永远不能修改
字符串模板
书写规范 `字符串a数字 ${变量}字符串` 在`` 中加入直接拼接的内容 变量用${}来写
数据解构
将复杂的结构(对象 数组) 简化
let obj{
键1:值1,
键2:值2,
键3:值3,
...
}
let{键1}=obj 得到键1的值
数组中的解构赋值
let arr=[20,30,40]
let [a,b,c]=arr
交换变量
let a=20
let b=30;
[a,b]=[b,a]
对象的简化
如果属性名等于变量名 可以简化 省略=后面的内容
let obj={
name:name,
age:age,
eat:function(){
console.log()
}
}
//简化后
let obj={
name, //具有name属性 并且name属性等于变量name
age,
//省略function
eat(){
}
}
箭头函数
因为传统函数存在一些使用中的不方便 所以出来箭头函数
传统函数与箭头函数的几点不同
1、传统函数 this指向性永远不明确 随环境改变
箭头函数 this指向性用于指向被定义的环境
2、传统函数 function有提升功能
箭头函数 不会提升
3、传统函数 可以作为构造函数使用
箭头函数 因为this指向不能改变 所以构造函数无法使用
4、传统函数 有arguments这个参数集合属性
箭头函数 没有arguments属性
箭头函数的书写方法
let fun=()=>{
}
!!!1、如果箭头函数只有一个参数 可以省略小括号
let pow=n=>{return n*n}
2、如果箭头函数有且只有一行return的语句 可以省略{} 和return
let pow=n=>n*n
参数的默认值
ES6 默认参数 将具有默认值放到后面,将没有默认值往前放
function show(c,a=1,b=2){
console.log(a+b+c)
}
show(20)
rest参数 类比于arguments
获取到用户传入所有参数
let sum=(a,b,...args)=>{
//rest参数 只会放入除了形参以外的所有参数
console.log(args) //3 4 5
}
sum(1,2,3,4,5)
拓展运算符
...三点运算 可以展开数组 得到用,分隔的数据 不能直接展开对象
let arr=[1,2,3]
console.log(...arr) //1,2,3
// //数组 合并数组
let r=[4,5,6]
r.push(...arr)
取数组中的最大值
let result=Math.max.apply(null,r)
let result=Math.max(...r)
...obj
可以在另一个对象(大对象)中使用 将obj(小对象)所有属性赋值到大对象中 不可以直接展开