es6.ruanyifeng.com/#docs/intro
1、let和const命令
- let
- let 定义变量,变量不可以再次定义,但可以改变其值
- 具有块级作用域
- 没有变量提升,必须先定义再使用
- let声明的变量不会压到window对象中,是独立的
- const
- 使用const关键字定义常量
- 常量是不可变的,一旦定义,则不能修改其值
- 初始化常量时,必须给初始值
- 具有块级作用域
- 没有变量提升,必须先定义再使用
- 常量也是独立的,定义后不会压入到window对象中
2、解构赋值
- 数组的解构赋值
let arr = [1, 2, 3];
let [a, b, c] = arr;
console.log(a, b, c); // 输出 1 2 3
复制代码
- 对象的解构赋值
let { foo, bar } = {foo: 'aaa', bar: 'bbb'};
console.log(foo, bar); // aaa, bbb
let {a, c} = {a: 'hello', b: 'world'};
console.log(a, c); // hello, undefined
复制代码
- 字符串的解构赋值
- 函数参数的解构赋值
3、箭头函数
// 非箭头函数
let fn = function (x) {
return x * 2;
}
// 箭头函数,等同于上面的函数
let fn = (x) => {
return x * 2;
}
复制代码
- 箭头函数的特点
- 形参只有一个,可以省略小括号
- 不需要 function 关键字来创建函数
- 省略 return 关键字
- 函数体可以省略大括号,并且表示返回函数体的内容
- 内部没有arguments
- 内部的this指向外部作用域中的this
- 不能作为构造函数
4、Promise
当异步请求变多时,就会成为回调地域,Promise是异步编程的一种解决方案,解决开发者对异步回调的烦恼。
一个 Promise 对象有三个状态,并且状态一旦改变,便不能再被更改为其他状态。
- pending,异步任务正在进行。
- resolved (也可以叫fulfilled),异步任务执行成功。
- rejected,异步任务执行失败。
5、模板字符串
模板字符串,优化字符串拼接,ES5通过反斜杠''来做多行字符串,ES6用反引号'`'直接搞定。
// bad
const foo = 'this is a' + example;
// good
const foo = `this is a ${example}`;
复制代码
6、扩展运算符···
7、类(class)
includes() 函数用来判断一个数组是否包含一个指定的值,如果包含则返回 true,否则返回false。
8、for···of和for···in
for···of用来遍历数组
for···in用来遍历对象
转载于:https://juejin.im/post/5d01a6315188251c064826a2