美文网首页
一些与ES6相关的知识点

一些与ES6相关的知识点

作者: 神奇的佃农九 | 来源:发表于2017-08-09 20:48 被阅读0次
    1. 首先javascript与ECMAscript的关系是:前者是后者的规格(标准),后者是前者的一种实现(另外的ECMAScript方言还有Jscript和ActionScript)。平常所说的JavaScript实现是由ECMAScript和BOM ,DOM组成的。在日常场合,这两个词是可以互换的。
      到这里,我们就知道为什么要学ES6 (ES2015)啦~

    2. 关于ES6最常用的特性:

    • let,
    • const,
    • class,
    • extends,
    • super,
    • arrow functions,
    • template string,
    • destructuring,
    • default,
    • rest arguments
      共计10个

    唔~偷个懒(先掌握前两个……)

    let,const用法(声明变量)

    举个栗子:

    代码引自:http://www.jianshu.com/p/ebfeb687eb70

    var name = 'zach'
    
    while (true) {
        var name = 'obama'
        console.log(name)  //obama
        break
    }
    
    console.log(name)  //obama
    

    上述结果,内层变量覆盖外层变量,是因为在ES5中只有全局作用域和函数作用域,没有块级作用域。

    在ES6中,let为javascript新增了块级作用域,用它声明的变量只有在let命令所在的代码块才生效。

    let name = 'zach'
    
    while (true) {
        let name = 'obama'
        console.log(name)  //obama
        break
    }
    
    console.log(name)  //zach
    

    除此之外,var带来的不便还有循环计数的变量泄露为全局变量,如:

    var a = [];
    for (var i = 0; i < 10; i++) {
      a[i] = function () {
        console.log(i);
      };
    }
    a[6](); // 10
    

    对比之下

    var a = [];
    for (let i = 0; i < 10; i++) {
      a[i] = function () {
        console.log(i);
      };
    }
    a[6](); // 6
    

    其实有个疑问,关于如下两个例子:

    图片.png 图片.png
    这结果真是出乎我的意料啊,我本以为用let来定义,此时会输出undefinded呢~~~~~~~~~~~~~~~~~~

    相关文章

      网友评论

          本文标题:一些与ES6相关的知识点

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