合规国际互联网加速 OSASE为企业客户提供高速稳定SD-WAN国际加速解决方案。 广告
## es6有哪些新特性 1. **let && const** 使用let声明变量:有了**块级作用域**的概念,**没了声明提前**,**不能重复声明** 2. **iterable类型** 为了统一集合类型,ES6标准引入了新的iterable类型,Array、Map和Set都属于iterable类型,具有iterable类型的集合可以通过新的for … of循环来遍历。 3. **解构赋值和展开** ES6 允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构 展开:... * 解构 ~~~ var obj={ name:"li", age:21 } var name = obj.name; var {name,age} = obj; ~~~ * 展开 ~~~ var arr = [1,2,3]; var a = 4; var total = [...arr,a]; console.log(total); ~~~ * 赋值 ~~~ function go(a=10,b=20){ console.log(a+b); } ~~~ 4. **箭头函数** * ES6中新增箭头操作符用于**简化函数的写法**,操作符左边为参数,右边为具体操作和返回值。 ~~~ //1.不引入参数 var c = () => 1 + 2; //2.引入单个参数 var a = x => x; //3.传多个参 var b = (x, y) => { return x + y; } ~~~ * 箭头函数还**解决了this关键字的指向** ![](https://box.kancloud.cn/deb60ac6b10f5d5cd49706d08bcc66d9_624x382.png) 5. **类** ES6提供了更接近传统语言的写法,引入了Class(类)这个概念,**作为对象的模板** 6. **promise** 新版Ajax是一个promise 下面是一个简单的用setTimeout()实现的异步延迟加载函数: ~~~ setTimeout(function() { console.log('Yay!'); }, 1000); ~~~ 在ES6中,我们可以用promise重写: ~~~ var wait1000 = new Promise(function(resolve, reject) { setTimeout(resolve, 1000); }).then(function() { console.log('Yay!'); }); ~~~ 7. **模板对象** 模板和插入值是在字符串里面输出变量的一种方式 ES5,组合一个字符串 ~~~ var name = 'Your name is ' + first + ' ' + last + '.'; var url = 'http://localhost:3000/api/messages/' + id; ~~~ ES6 ~~~ var name = `Your name is ${first} ${last}. `; var url = `http://localhost:3000/api/messages/${id}`; ~~~ 8. **模块** ES6中可以用模块import 和export 操作 ~~~ module.exports = { port: 3000, getAccounts: function() { ... } } ~~~ 9. **新增继承语法** react中基于组件,组件向外暴露 封装HTTP