发表于: 2019-10-26 23:27:06

1 871


今日完成的事

学习了es6

Es6

Let的基础语法:let 变量名=变量值,

使用let创建变量与使用var创建变量的区别。

1使用letconst声明的变量不存在变量提升

2 es6只提供了创建变量的新语法,创建函数还是用es5function(还会存在变量提升)。如果也想让函数不能变量提升,的使用函数表达式复制的操作,let xx =function(){}

使用let定义的变量在同一个不能重复命名,但是可以重新赋值

0          es6中浏览器在执行js代码时会把所有let声明查看一番,有错误会先报错(不提升但是找了,找到了说明当前作用域中是有这个变量的,提前用都会报错。)

1          不管之前用的什么变量,用let创建都会报错

2          Es6创建的变量有块级作用域,es5创建的变量没有块级作用域(我们可以把块级作用域理解为私有作用域:存在私有变量和作用链的一些机制)es6把大部分大括号包起来的都称之为块级作用域,判断体也是一个块级私有作用域,在这个作用域声明的变量是私有变量,在这个块级作用域之外是无法使用的。循环体也是一个块级作用域。

Const的细节知识点

相同点:基础语法跟let一样

不同点:const是设置常量,值是不允许修改的

Js设置变量的6种方法

1.       var es5设置变量

2.       functiones5设置函数

3.       letes6设置常量

4.       constes6中设置常量

5.       classes6中设置类名

6.       impotjs中导入模块的方式

es6中的解构赋值:按照原有值得结构,把原有值中的某一部分内容快速获取到(快速复制给一个变量)

数组的解构赋值,

                                               

解构赋值本身是es6的语法规范,使用什么关键字声明是无所谓的,使用var或者let都可以,不加关键字也可以,但是不加关键字不是变量,相当于给window增加了全局属性,有关键字是变量,但是在严格模式下不加关键字是不允许的,因为严格模式下是不允许出现不是var或者let声明的。

多维数组

数组里面还有数组的叫做多维数组

获取多维数组的56,34,86,52,59,58

多维数组的解构赋值可以让我们快速获取到需要的结果,如果只想获取前几项内容,后面的解构不用补全

如果要获取后面的几项内容前面的结构必须补全。我们还可以给某一项设置默认值

 

数组克隆

在解构赋值中支持的扩展运算符,但是解构运算符只能在最后面。

对象的解构赋值

在对象的解构赋值中,赋值的变量需要和对象中的属性名吻合,否则无法获得对应的属性值。

第二个显示的是undefined

和数组的赋值解构一样,我们可以把后面不需要获取的解构省略掉,而且可以给当前的变量设置默认值。但是前面的不能省略。

和数组解构赋值不一样的地方是对象前面不允许空来站位,因为对象是通过属性名来获取,如果是空的话浏览器不知道怎么识别。

对象也支持运转运算符

对象的浅度克隆

在对象结构复制当中我们可以把对象的属性名起一个小名(AB相当于小名或者别名)。

解构赋值的意义

快速交换两个变量的值

可以让函数返回的多个值

函数参数的定义和函数参数的默认值

可以快速接收到多个值,传递的是个数组或者对象,支持给函数设置默认值

 

箭头函数

语法:

只传1个参数括号可以省略,箭头函数不支持argumentses6使用剩余运算符

优势使用剩余运算符接收到的本身就是一个数组

Es6给对象的属性设置函数也可以简写

箭头函数的this指向问题,不管什么情况this都指向window

箭头函数没有自己的this指向,用到的this都是宿主环境(他的上级作用域中)的this,项目中不是要把所有的函数都改为箭头函数,根据自身需要修改即可,例如我们需要this是宿主函数的this,或者函数不用this。宿主环境不是执行的环境,而是定义的环境。

明天计划的事

学习angular

遇到的困难

什么框架的脚手架,路由啥的还是不理解是啥玩应

收获

学习了es6语法



返回列表 返回列表
评论

    分享到