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__都指向父类的原型

posted @ 2019-07-09 14:47  前端学者  阅读(1047)  评论(0编辑  收藏  举报