学习ES6版本新特性

6 阅读1分钟

ES6

1. 块级作用域

let a = 10;

if (true) {
  let a = 20;
  console.log(a); // 20
}

console.log(a); // 10

2. const 常量: 不能重新赋值

const a = 10;
const a = 15; // 报错

3. 箭头函数

const add = (a,b) => a + b;
console.log(add(1,2));

4. 模板字符串

const name = "lxy";
console.log(`我是${name}`);

5.解构赋值

const [a,b] = [1,2];
console.log(a,b); // 1 2

6. 对象解构

const {name,age}  = {name: "lxy",age: 13};
console.log(name,age);

7. 默认参数

function greet(name = "lxy"){
    console.log(`你好${name}`);
}
greet(); // 你好lxy

8. 对象简洁写法

const name = "lxy"
const obj = {name};
console.log(obj); // {name: "ixy"}

9. 对象简洁表示法

const person = {
  greet(){
    console.log("hellO");
  }
}
console.log(person) //{ greet: [Function: greet] }

10. 类与继承

class Animal {
  speak() {
    console.log("Animal speaks");
  }
}

class Dog extends Animal {
  speak() {
    console.log("Dog barks");
  }
}
console.log(Dog) //[class Dog extends Animal]

11. 模块的导入导出

// math.js
export function add(a, b) {
  return a + b;
}
// app.js
import { add } from './math.js';

12. promise(异步编程)

const p = new Promise((resolve,reject) =>{
    setTimeout(() => resolve("ok"),1000);
});

p.then(result => console.log(result));

13.唯一值

const sym = Symbol("id");
const obj = {[sym] : 123}
console.log(obj);  // { [Symbol(id)]: 123 }