ES6 常用的那80%
编译工具
babel
traceur 编译工具
bootstrap 引导程序
定义变量
let定义变量
let具备块级作用域
不允许重复声明
|
|
var 具备函数作用域
用处(i问题):let拥有 块级作用域 = 匿名函数自执行
const定义变量
定义常量 赋值之后不能被修改 //const必须给初始值 不能被重复定义
用途:防止变量被意外修改,比如 引入库或者组件名
字符串连接
字符串模板
var a = haha
使用方式 ${a}
以前字符串拼接 ‘abc ‘+变量名+’efg’
现在 ‘abc${变量名}def’
解构赋值
解构 左边解构和右边解构一样
var [a,b,c] = [12,3,101]
console.log(a,b,c);
和JSON配合使用
var {a,b,c} = {b:12,a:5,c:101} //跟顺序无关
模式匹配 左边的样子和右边一样
var [a,[b,c],d] = [1,[2,3],4]
console.log(a,b,c,d)
var [{e,f},[b,c],d] = [{f:’bbb’,e:’aaa’},[2,3],4]
console.log(b,c,d,e,f)
数组循环
for for in
for of //能够循环数组,但是不能循环JSON,真正的目的是为了循环map对象
只循环值
for(var value of arr){}
只循环索引
for(var key of arr.keys()){}
循环索引和值
for(var some of arr.entries()){}
|
|
JSON的循环
|
|
map对象
和JSON相似,也是一种key-value的形式
Map对象为了和for of 循环配合而生的
Map的使用
|
|
函数
之前
|
|
箭头函数 =>
|
|
箭头函数需要注意
(1)this指向window
(2)arguments不能使用了
对象的定义
单例模式
|
|
面向对象
|
|
function aa(obj=’对象是必须的’,json={},options={‘time’:300,’width’:400}){
console.log(obj,json,options);
}
aa();
|
|
用面向对象来模拟队列
|
|
面向对象的选项卡
|
模块化
导出模块
export default a
引用模块
important modeA form ‘./a.js’
Promise
就是一个对象,用来实现传递异步操作的数据(消息)
pending(等待、处理中)-> resolve(完成 fullfilled)
-> Rejected(拒绝 失败)
|
|