es6常用特性(三)

一、Iterator

  1. for...of与for...in的区别
    for...in只能获取对象的键名,不能直接获取键值;for...of允许遍历获取键值
    var arr = ['a','b','c'];
    for(let a in arr){
        console.info(a); //0,1,2
    }
    for(let a of arr){
        console.info(a); //a b c
    }
    
    for...in 可以遍历没有实现Iterator的对象,并输出键名;for...of不能够遍历未实现Iterator的对象,可以使用Object.keys()获取对象的键名数组然后进行遍历。
    var es6 = {
       edition: 6,
       committee: "TC39",
       standard: "ECMA-262"
     };
     
     for (let e in es6) {
       console.log(e);
     }
     // edition
     // committee
     // standard
     
     for (let e of es6) {
       console.log(e);
     }
     // TypeError: es6 is not iterable
    
  2. javascript中4种遍历方法
    1. for循环
    for(let i=0;i<10;i++){
        
    }
    
    1. forEach() 特别注意:在forEach中无法使用break,continue,break命令
    arry.forEach(function(value,index){
        
    })
    
    1. for...in
    2. for...of

二、 class

  1. 可以结合java中类的概念来理解。
  2. 特别注意,this关键字指向问题
class Logger {
     printName(name = 'there') {
       this.print(`Hello ${name}`);
     }
   
     print(text) {
       console.log(text);
     }
   }
   
   const logger = new Logger();
   const { printName } = logger;
   printName(); // TypeError: Cannot read property 'print' of undefined

printName方法中的this,默认指向Logger类的实例。但是,如果将这个方法提取出来单独使用,this会指向该方法运行时所在的环境,因为找不到print方法而导致报错。

三、Module

  1. export default命令

    export default 指定模块的默认输出,本质上,export default就是输出一个叫做default的变量或方法,然后系统允许你为它取任意名字。所以,下面的写法是有效的。

    // modules.js
     function add(x, y) {
       return x * y;
     }
     export {add as default};
     // 等同于
     // export default add;
     
     // app.js
     import { default as xxx } from 'modules';
     // 等同于
     // import xxx from 'modules';
    
  2. export

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 类 & 继承 类也是 ES6 一个不可忽视的新特性,虽然只是句法上的语法糖,但是相对于 ES5,学习 ES6 的类...
    day_day_up阅读 286评论 0 1
  • 以下内容是我在学习和研究ES6时,对ES6的特性、重点和注意事项的提取、精练和总结,可以做为ES6特性的字典;在本...
    科研者阅读 3,150评论 2 9
  • 一、let 和 constlet:变量声明, const:只读常量声明(声明的时候赋值)。 let 与 var 的...
    dadage456阅读 768评论 0 0
  • [TOC] 参考阮一峰的ECMAScript 6 入门参考深入浅出ES6 let和const let和const都...
    郭子web阅读 1,807评论 0 1
  • 人时常陷入情绪 念头 等等一系列的思维当中出不来,偶尔出来了,过一会又陷入了,有时会想我这样做对方会怎么想我,我要...
    新丽学阅读 270评论 0 0