## ES7和ES8语法
### ES7
> 1.includes()
> 2.幂运算符( **)
### ES8
> 1.padStart(),padEnd()
> 2.Object.values和Object.entries
> 3.Object.getOwnPropertyDescriptors
> 4.函数参数列表和调用中的尾逗号
> 5.异步函数(Async Functions)
### includes
~~~
var array1 = [1, 2, 3];
console.log(array1.includes(2));
// expected output: true
var pets = ['cat', 'dog', 'bat'];
console.log(pets.includes('cat'));
// expected output: true
console.log(pets.includes('at'));
// expected output: false
~~~
### 幂运算
~~~
let a = 7 ** 12
let b = 2 ** 7
console.log(a === Math.pow(7,12)) // true
console.log(b === Math.pow(2,7)) // true
~~~
### padStart(),padEnd()
~~~
'x'.padStart(5, 'ab') // 'ababx'
'x'.padStart(4, 'ab') // 'abax'
'x'.padEnd(5, 'ab') // 'xabab'
'x'.padEnd(4, 'ab') // 'xaba'
~~~
如果原字符串的长度,等于或大于指定的最小长度,则返回原字符串。
~~~
'xxx'.padStart(2, 'ab') // 'xxx'
'xxx'.padEnd(2, 'ab') // 'xxx'
~~~
### Object.values和Object.entries
~~~
const obj = { foo: 'bar', baz: 42 };
Object.values(obj)
// ["bar", 42]
~~~
~~~
const obj = { foo: 'bar', baz: 42 };
Object.entries(obj)
// [ ["foo", "bar"], ["baz", 42] ]
~~~
### Object.getOwnPropertyDescriptors
~~~
const obj = {
foo: 123,
get bar() { return 'abc' }
};
Object.getOwnPropertyDescriptors(obj)
// { foo:
// { value: 123,
// writable: true,
// enumerable: true,
// configurable: true },
// bar:
// { get: [Function: get bar],
// set: undefined,
// enumerable: true,
// configurable: true } }
~~~
### 函数参数列表和调用中的尾逗号
~~~
function clownsEverywhere(
param1,
param2,
) { /* ... */ }
clownsEverywhere(
'foo',
'bar',
);
~~~
### 异步函数(Async Functions)
async 函数是什么?一句话,它就是 Generator 函数的语法糖
~~~
var timer = new Promise((resolve,reject) => {
setTimeout(() => {
resolve(123)
},1000)
})
function* gen(){
var f = yield timer
}
var g = gen();
g.next().value.then((x) => {
console.log(x)
})
~~~
~~~
var f = new Promise((resolve,reject) => {
setTimeout(() => {
resolve(123)
}, 1000)
})
f.then((s) => {
console.log(s)
})
~~~
~~~
var f = new Promise((resolve,reject) => {
setTimeout(() => {
resolve(123)
}, 1000)
})
async function test() {
let test = await f
console.log(test)
}
test()
~~~
- Less
- 课程规划
- Less概述
- 变量
- 混合
- 嵌套
- 继承
- 导入
- 函数
- 其他
- 实战
- ES6
- 课程规划
- ES6概述
- let和const命令
- 变量的解构赋值
- 字符串扩展
- 函数扩展
- 数组扩展
- Set和Map数据结构
- Symbol
- Generator 函数
- Promise对象
- Class语法
- Module 的语法
- ES7和ES8
- 实战
- VUE
- 课程规划
- vue概述
- vue实例
- 模版语法
- 计算属性和侦听器
- Class和Style的绑定
- 条件渲染
- 列表渲染
- 事件处理
- 表单输入绑定
- 组件基础
- 过渡和动画
- 自定义指令
- 过滤器
- 响应式原理
- 实战课程
- Node
- 课程规划
- 课程概述
- node入门实例
- 模块系统
- 回调函数
- 全局对象
- 常用模块介绍
- 常用模块介绍-1
- 常用模块介绍-2
- 常用模块介绍-3
- npm使用
- express的使用
- express的使用-1
- webpack基础
- 实战
- 微信小程序
- 课程规划
- 课程概述
- 基本配置和生命周期
- wxml模版
- wxss
- wxs
- 组件
- 微信API
- 自定义组件开发
- 实战小程序
- Element
- 课程规划
- 课程概述
- 特性介绍
- 组件介绍-基础组件
- 组件介绍-表单组件
- 组件介绍-数据展示组件
- 组件介绍-提示组件
- 组件介绍-导航组件
- 组件介绍-其他组件
- 综合案例