一些与ES6相关的知识点

  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呢~~~~~~~~~~~~~~~~~~

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容