结合实际开发,开发中常用的es6的知识:
1.新增let和const命令:
ES6 新增了let
命令,用来声明变量。它的用法类似于var
,但是所声明的变量,只在let
命令所在的代码块内有效;
const
声明一个只读的常量。一旦声明,常量的值就不能改变。
var与的let和const区别:var可以变量提升,而后二者没有变量提升;var是全局或者局部作用域,而后二者是块级作用域。
2.函数的扩展:
2.1箭头函数
不用function声明;省略return关键字;函数体内的this
对象,就是定义时所在的对象,而不是使用时所在的对象。
2.2函数参数默认值:
2.3rest扩展运算符
在函数中使用命名参数同时接收不定数量的未命名参数,在以前的JavaScript代码中我们可以通过arguments变量来达到这一目的
2.4es6中新增了严格模式
'use strict';
3.添加对类的支持class:
4.变量的结构赋值
5.字符串,字符串拼接
字符串中嵌入变量
var name = "Bob", time = "today";
`Hello ${name}, how are you ${time}?`
6.module的语法,import和export default命令
7.promise
Promise 是异步编程的一种解决方案,比传统的解决方案——回调函数和事件——更合理和更强大。它由社区最早提出和实现,ES6将其写进了语言标准,统一了用法,原生提供了Promise
对象。
es6还有很多很多新增的知识,不过开发中这些比较常用,es6有些方法有兼容性,要考虑兼容的请慎用
ES6新特性在Babel下的兼容性列表
ES6特性 | 兼容性 |
---|---|
箭头函数 | 支持 |
类的声明和继承 | 部分支持,IE8不支持 |
增强的对象字面量 | 支持 |
字符串模板 | 支持 |
解构 | 支持,但注意使用方式 |
参数默认值,不定参数,拓展参数 | 支持 |
let与const | 支持 |
for of | IE不支持 |
iterator, generator | 不支持 |
模块 module、Proxies、Symbol | 不支持 |
Map,Set 和 WeakMap,WeakSet | 不支持 |
Promises、Math,Number,String,Object 的新API | 不支持 |
export & import | 支持 |
生成器函数 | 不支持 |
数组拷贝 | 支持 |