1、ES6是对于ES2015+的俗称,也可以说是通常叫法,那么,ES6是什么呢?
ES 全称是ECAMScript,它是JavaScript基础构建的一种语言,JavaScript正是建立在ECAMScript语言的基础规范中建立使用的,那么,ECAMScript的使用,对于JavaScript至关重要!
在我的理解中,ECAMScript是一种语言层面的东西,它只是定义了JavaScript以及在它基础之上建立的其他语言的语法规范,而JavaScript的语言,更关于一种平台性质在其中。
正如图1-1所示,JavaScript包括 ECAMScript、DOM、BOM三个组成部分,DOM和BOM是web API提供的接口或者是JavaScript和浏览器之间进行交互的部分,实质就是操纵文档元素,进行展示布局,而ECAMScript在JavaScript中其中语法的作用,它不会去跟文档有直接的关系,但是他的数据处理完成后会通过web API展示在文档中。

下面就关于ES2015、ES2016、ES2017三个版本的更新内容,即我们通常讲的ES6来展开讲讲它都有哪些新内容
我们将讲解的内容主要归为四大类:
1、解决原有语法上的一些不足
let 和 const 的块级作用域
2、对原有语法进行增强
解构、展开、参数默认值、模板字符串
3、全新的对象、全新的方法、全新的功能
promise、proxy、object的assign、is
4、全新的数据类型和数据结构
symbol、set、map
1、let 和 const 的块级作用域
在之前的ECMAScript中,对于作用域的划分只有全局作用域和函数作用域,在ES6中又新增了块级作用域,通常的来说就是一对{} 包裹着的代码,在{}中的作用域就是块级作用域,因此新定义了两个let和const关键词,对于var这个老的关键词,是用于对老代码的维护所保留。
1> let 关键字禁止变量提升,要先定义后使用,而且只作用于它所定义的块级作用域中,常用于for 或 if 之类的结构中。
2> 在for循环中,let效果实际上是利用了闭包的机制,并且,对于循环块中的let 和 执行块中的let是两个块中分别定义的变量,互不影响。
3> const 是在let 的基础上添加了一个只读属性,即变量一旦声明过后就不允许在修改,这里是不允许修改定义的地址,而不是不可以修改他内部的属性值。
4>在使用上,不要使用var,主要使用 const 并配合着 let 使用
2、数组的解构
数组的解构是根据位置进行获取的。
3、对象的解构
对象的解构和数组类似,只不过不是根据位置下标获取,而是根据属性名进行获取。
4、模板自变量
在ES6的语法中,新增了模板自变量的新语法格式,使用破折号按键那个点做双引号的格式 ·· ,这个模板自变量的特性如下:
1、支持换行;
2、采用${}的方式进行插值表达式,{}中的内容就是js代码;
3、在模板自变量之前,我们可以加一个标签函数用来对模板自变量的值进行处理。
5、默认参数和剩余参数
默认参数
默认参数的设定在之前是通过在函数内部进行条件判断进行判断。
在ES6中新增的给参数设置默认值的特性,将大大简化我们的代码
剩余参数
之前我们是使用arguments对象,通过伪数组方式来接收参数,包括我们在未知参数个数的情况下。现在,在ES6的语法中,新增了...的操作符,它有两个作用:
1、剩余操作符,用来接收从当前位置剩余参数的操作。
2、spread用法:(展开),将数组或者对象中内容或者属性进行依次展开。
6、箭头函数
箭头函数 (参数列表)=> {函数体} ,在函数体中只有返回值的情况下, 大括号可以省略。
箭头函数的特点:
1、简化的函数的书写格式,使函数看起来更加容读和书写
2、它没有this的机制,不会改变this的指向,任何情况下都不会改变
打扰一下,这里想到了apply、call、bind 三个方法是用来改变this执行的,记录一下:
7、对象字面量的增强
对于对象用法的增强,主要表现在:
1、如果想给对象的属性赋值一个变量值,并且该变量名和属性名一样,则可以省略写法。
2、在对象中的方法也可以省略写,当方法名和属性名相同时,省略冒号,这里的this是指向调用对象方法的对象
3、对于属性名的命名,必须使用明确的值,在es2015中,可以使用[]的方式对对象属性名进行命名
在说之前,现补充一个遗漏的点,
1、对于字符串,新增加了三个方法,includes 和 startsWith endsWith,入参是字符串,返回一个是否包含该字符串的boolean值.
2、assign方法:将源对象合并到目标对象中
具体的应用场景是:
1、如果一个对象(o1)的属性引用了另一个对象(o2)的值,在修改o1的时候,也会修改o2的值,这里用到assign方法,将o2的值赋值给o1的话,两个就相互不影响了。
下面的内容下期见,谢谢
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.mushiming.com/mjsbk/3753.html