美文网首页
13.ES6常用新特性总结

13.ES6常用新特性总结

作者: 寄鱼予海与你 | 来源:发表于2018-05-29 14:41 被阅读0次

1.let && const

let命令也用于声明对象,但是作用域为局部

{

    let a = 10;

    var b = 1;

}

在函数外部可以获取到b,获取不到a,因此例如for循环计数器就适合使用let。

const用于声明一个常量,设定后值不会再改变。

const PI = 3.1415;

PI // 3.1415

PI = 3;

强行对其进行重新赋值会报错。

2.iterable类型

为了统一集合类型,ES6标准引入了新的iterable类型,Array、Map和Set都属于iterable类型,具有iterable类型的集合可以通过新的for … of循环来遍历。

var a = ['A', 'B', 'C'];var s = new Set(['A', 'B', 'C']);var m = new Map([[1, 'x'], [2, 'y'], [3, 'z']]);for (var x of a) { // 遍历Array alert(x);

}for (var x of s) { // 遍历Set    alert(x);

}for (var x of m) { // 遍历Map    alert(x[0] + '=' + x[1]);

}

Map相关操作方法如下,Set同理:

var m = new Map(); // 空Mapm.set('Adam', 67); // 添加新的key-valuem.set('Bob', 59);

m.has('Adam'); // 是否存在key 'Adam': truem.get('Adam'); // 67m.delete('Adam'); // 删除key 'Adam'm.get('Adam'); // undefined

3.解构赋值

ES6 允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构(Destructuring)。 

例如数组:

let [a, b, c] = [1, 2, 3];//等同于let a = 1;let b = 2;let c = 3;

对象的解构赋值:获取对象的多个属性并且使用一条语句将它们赋给多个变量。

>var {

  StyleSheet,

  Text,

  View

} = React;

等同于

var StyleSheet = React.StyleSheet...

4.箭头函数

ES6中新增箭头操作符用于简化函数的写法,操作符左边为参数,右边为具体操作和返回值。

var sum = (num1, num2) => { return num1 + num2; }//等同于var sum = function(num1, num2){ return num1 + num2;

};

箭头函数还修复了this的指向,使其永远指向词法作用域:

var obj = {

    birth: 1990,

    getAge: function(){        var b = this.birth; // 1990        var fn = () => new Date().getFullYear() - this.birth; // this指向obj对象        return fn();

    }

};

obj.getAge(); // 25

5.延展操作符

通过它可以将数组作为参数直接传入函数:

var people=['Wayou','John','Sherlock'];functionsayHello(people1,people2,people3){ console.log(`Hello ${people1},${people2},${people3}`);

}//改写为sayHello(...people);//输出:Hello Wayou,John,Sherlock

在函数定义时可以通过…rest获取定义参数外的所有参数:

functionfoo(a, b,...rest){ console.log('a = ' + a);

    console.log('b = ' + b);

    console.log(rest);

}

foo(1, 2, 3, 4, 5);// 结果:// a = 1// b = 2// Array [ 3, 4, 5 ]

6.类

ES6提供了更接近传统语言的写法,引入了Class(类)这个概念,作为对象的模板。通过class关键字,可以定义类,与多数传统语言类似。

//定义类classPoint{ constructor(x, y) {

    this.x = x;

    this.y = y;

  }

  toString() {

    return '(' + this.x + ', ' + this.y + ')';

  }

}

相关文章

  • 13.ES6常用新特性总结

    1.let && const let命令也用于声明对象,但是作用域为局部 { let a = 10; va...

  • Java8常用的新特性总结

    一、Java8常用的新特性总结 1.1.Java8常用特性总览 1.2.lambda表达式 在Java8中引入了一...

  • Math方法和es新特性

    es6常用 es7新特性 es8新特性 es9新特性 es10新特性

  • iOS 12正式版新特性总结

    iOS 12正式版新特性总结 iOS 12正式版新特性总结

  • ReactNative flex布局&es6

    一、ES6常用语法 & 新特性二、Flex布局 & 样式三、一般组件的使用 ES6常用语法 & 新特性 ECMAS...

  • Typescript 3.7 常用新特性

    写在前面 不是完整的版本新特性,这里只写出了我觉得常用的新特性 可选链式运算符 ?. js 也支持了这个特性 ob...

  • JAVA新特性总结

    Lambda 表达式− Lambda允许把函数作为一个方法的参数(函数作为参数传递进方法中。 方法引用− 方法引用...

  • 5.7新特性(总结)

    一.安全方面增强 1.mysql.user表变化 mysql.user表中的plugin更改成not null 少...

  • Typescript 3.9 常用新特性

    写在前面 挑重点的讲一讲 在条件语句中检测未调用的函数 在 3.7 的时候引入了检测未调用函数错误提示,3.9 做...

  • Typescript 3.8 常用新特性

    类型限制的导入导出方法 (Type-Only Imports and Export) TypeScript 3.8...

网友评论

      本文标题:13.ES6常用新特性总结

      本文链接:https://www.haomeiwen.com/subject/msqajftx.html