ES6相关语法

es6.ruanyifeng.com/#docs/introes6

一、let和const命令

  • let
    • let 定义变量,变量不能够再次定义,但能够改变其值
    • 具备块级做用域
    • 没有变量提高,必须先定义再使用
    • let声明的变量不会压到window对象中,是独立的
  • const
    • 使用const关键字定义常量
    • 常量是不可变的,一旦定义,则不能修改其值
    • 初始化常量时,必须给初始值
    • 具备块级做用域
    • 没有变量提高,必须先定义再使用
    • 常量也是独立的,定义后不会压入到window对象中

二、解构赋值

  • 数组的解构赋值
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
复制代码
  • 字符串的解构赋值
  • 函数参数的解构赋值

三、箭头函数

// 非箭头函数
let fn = function (x) {
    return x * 2;
}
// 箭头函数,等同于上面的函数
let fn = (x) => {
    return x * 2;
}
复制代码
  • 箭头函数的特色
    • 形参只有一个,能够省略小括号
    • 不须要 function 关键字来建立函数
    • 省略 return 关键字
    • 函数体能够省略大括号,而且表示返回函数体的内容
    • 内部没有arguments
    • 内部的this指向外部做用域中的this
    • 不能做为构造函数

四、Promise

当异步请求变多时,就会成为回调地域,Promise是异步编程的一种解决方案,解决开发者对异步回调的烦恼。编程

一个 Promise 对象有三个状态,而且状态一旦改变,便不能再被更改成其余状态。数组

  • pending,异步任务正在进行。
  • resolved (也能够叫fulfilled),异步任务执行成功。
  • rejected,异步任务执行失败。

五、模板字符串

模板字符串,优化字符串拼接,ES5经过反斜杠''来作多行字符串,ES6用反引号'`'直接搞定。bash

// bad
const foo = 'this is a' + example;

// good
const foo = `this is a ${example}`;

复制代码

六、扩展运算符···

七、类(class)

includes() 函数用来判断一个数组是否包含一个指定的值,若是包含则返回 true,不然返回false。异步

八、for···of和for···in

for···of用来遍历数组异步编程

for···in用来遍历对象函数

相关文章
相关标签/搜索