认识 ES2015 (一) —— 需要知道的几个特性

ES2015 特性

1、属性和方法的简写

// new
var person = {
  name,
  age,
  sayHello () {
    alert( 'hello! my name is ' + this.name );
  }
};

// old
var person = {
  name: name,
  age: age,
  sayHello: function () {
    alert( 'hello! my name is ' + this.name );
  }
};

2、计算属性

// new
var obj = {
  [a]: 1
};

// old
var obj = {};
obj[a] = 1;

3、let和const
- let是更完美的var
   - let声明的变量拥有块级作用域。
   - let声明的全局变量不是全局对象的属性。
   - 形如for (let x...)的循环在每次迭代时都为x创建新的绑定。
   - let声明的变量直到控制流到达该变量被定义的代码行时才会被装载,所以在到达之前使用该变量会触发错误。
   - 用let重定义变量会抛出一个语法错误(SyntaxError)。

- const:与let类似,然而
   - const声明的变量只可以在声明时赋值,不可随意修改,否则会导致SyntaxError(语法错误)
   - const声明变量后必须要赋值,否则也抛出语法错误。

4、展开运算符

// new
function test(a,b,c) { }
var args = [0,1,2];
test(...args);

// old
function test(a, b, c) { }
var args = [0, 1, 2];
test.apply(null, args);

5、模块

// Default exports and named exports
import theDefault, { named1, named2 } from 'src/mylib';
import theDefault from 'src/mylib';
import { named1, named2 } from 'src/mylib';

// Renaming: import named1 as myNamed1
import { named1 as myNamed1, named2 } from 'src/mylib';

// Importing the module as an object
// (with one property per named export)
import * as mylib from 'src/mylib';

// Only load the module, don’t import anything
import 'src/mylib';

你可能感兴趣的:(认识 ES2015 (一) —— 需要知道的几个特性)