当前位置:网站首页 > 技术博客 > 正文

es6特性总结



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展示在文档中。

image-20210809114226980.png

下面就关于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的话,两个就相互不影响了。

 
  

下面的内容下期见,谢谢

版权声明


相关文章:

  • 单元测试有哪些步骤?各个步骤有哪些实施内容2025-09-04 07:29:59
  • 绑定网卡有什么作用2025-09-04 07:29:59
  • 思科模拟器交换机2025-09-04 07:29:59
  • vs断点调试不能用2025-09-04 07:29:59
  • 常用运维工具合集2025-09-04 07:29:59
  • ntp time server monitor2025-09-04 07:29:59
  • 面向对象设计6大原则2025-09-04 07:29:59
  • 总结移位指令的使用方法2025-09-04 07:29:59
  • 什么是 vsphere 的网络虚拟化平台?2025-09-04 07:29:59
  • seekbar设置进度值2025-09-04 07:29:59