ES6-const,解构赋值,箭头函数
const就是定义的常量,一旦赋值,就不能再改变了
不能重复定义变量
没有变量提升;
不会给window添加属性;
解构赋值:
数组解构赋值
(1)前后模式必须匹配(后面的值是什么模式,前面的变量必须是什么模式)
(2)前多后少(前面声明的变量多,后面赋值少,那么解构不成功,没有匹配上的变量就会报undefined)
(3)前少后多(1.省略赋值,用逗号隔开 2.不定参数赋值,...代表扩展运算符,必须写在最后)
(4)带默认值的问题(先结构赋值,不再考虑默认值;解构成功,就直接赋值,值为undefined,不成功,走默认值)
对象结构赋值
(1)变量和属性必须同名,可颠覆
(2)如果解构失败,就是undefined
(3)如果变量跟属性名不一样
等号右边的值只要带有length属性,都可以解构;
函数参数的解构;
参数集合
函数中等号左边是参数,右边是默认值;当函数调用不传参时,走函数形参的默认值;传参的话默认值不走,实参覆盖形参,赋值给左边的参数
在对象中:
实参有值时,赋值给形参,那么解构成功,走实参;
实参为空对象时,解构不成功,为undefined,走默认值;
通过参数传值时不考虑默认值;
形参就是变量赋值,没有变量提升;
实参没赋值,形参就是undefinded;
当私有作用跟外部有相同变量时,外部变量不能使用;
函数arguments是实参构成的集合;获取方式:扩展运算符
箭头函数:
箭头函数只适用于匿名函数/回调函数。如:let a=function(){} 匿名函数 fn(12,function(){}) 回调函数
匿名函数:只要不是关键字function声明的函数都叫匿名函数;
let fn=(形参)=>{函数体} 每一个函数结束一定要一个return. 当值有一个参数的时候,可以省略(),中间的形参得用空格隔开
当函数体只有一横代码且是return xxx时可以省略{}和return
箭头函数的优势1. 箭头函数没有this指向函数中改变this指向的方向
(1) 在函数前提前对this赋值 that= this
(2) 在函数结尾处{}.bind(this)
(3) 在函数的结尾处{}.apply{this}或者是{}.call{this}
(4) 使用箭头函数
函数的三种角色:类,普通函数,Function的实例对象;
构造函数的父类是Function;
所有实例对象的__proto__都指向父类的原型