ECMAScript 6 知识总结(一、ES6与ES5对比)

ECMAScript 6 知识总结

一、ES6改良ES5的缺陷

  1. ES6新增块级作用域

    **在块级作用域内声明的变量不会被外层所引用,也就是说不需要ES5通过(函数)闭包来解决全局变量污染的问题. **

    • 防止变量在块级作用域外被访问.
    image
    • let/cont防止变量重声明.重复声明会报错.
    image
    • 不需要ES5闭包来解决变量污染的问题
    image
    • ES5中循环体的闭包会访问全局的 i ,而使用let 声明的循环体会将本次循环变量锁在块级作用域内!
    image

  2. 箭头函数代替词法作用域的"this"

    在ES5中,"this"会随着函数调用位置(全局/闭包),和函数调用方式(构造/普通)改变,ES6箭头函数中的"this"总是指向声明时的哪个对象

    1. 在下图中,我们希望打印一个用户的名字和薪水。假设我们从服务器异步获取薪水数据。注意到当服务器返回结果时,函数里的 “this” 是 “window” 而不是 “person”。
      image

  3. 处理"arguments"

    在ES5中, arguments是一个伪数组,可以使用length来遍历他,但却不能使用完全Array的api(slice/sort).
    在ES6中,可以使用新特性叫做rest参数,他的形式为 ...参数名,比如...args,rest是一个真数组,所以至此Array所有api调用.

    1. image

      image
  4. **从概念上讲,在 ES6 之前的 JS 中并没有和其他面向对象语言那样的“类”的概念。长时间里,人们把使用 new 关键字调用的函数(也叫构造器)当做“类”来使用。 通过原型链混乱继承(不方便) **

    1. 对比ES5与ES6中实现类


      image
  5. 严格模式

    "use strice",在 ES5 中, 严格模式是可选项,但是在 ES6 中,许多特性要求必须使用严格模式。 因此大多数开发者和 babel 之类的工具默认添加 use strict 到 JS 文件的头部,以确保整个 JS 文件的代码都采用严格模式,这个习惯有助于我们写更好的 JavaScript.**

参考链接:https://75team.com/post/5-javascript-%E2%80%9Cbad%E2%80%9D-parts-that-are-fixed-in-es6.html

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

推荐阅读更多精彩内容

  • 一、ES6简介 ​ 历时将近6年的时间来制定的新 ECMAScript 标准 ECMAScript 6(亦称 ...
    一岁一枯荣_阅读 6,108评论 8 25
  • 官方中文版原文链接 感谢社区中各位的大力支持,译者再次奉上一点点福利:阿里云产品券,享受所有官网优惠,并抽取幸运大...
    HetfieldJoe阅读 3,996评论 12 65
  • 三,字符串扩展 3.1 Unicode表示法 ES6 做出了改进,只要将码点放入大括号,就能正确解读该字符。有了这...
    eastbaby阅读 1,561评论 0 8
  • 或许这就是一个美丽的答案 董卿的读书生活 是一件赏心悦目的事 生活可以是这样的,悦然而美 她写一手美字 原来字不见...
    静素阅读 279评论 0 1
  • 2017.1.1.14:26 昨天,朋友圈里都是新年祝福,大家分享的这一年的感动与不足,期待今年有一个新的开始。 ...
    赵晓越阅读 853评论 2 8