ES6相关语法

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

猜你喜欢

转载自blog.csdn.net/weixin_34273481/article/details/93182016