《ECMAScript 6 入门》读书笔记

阮一峰先生开源作品

书上的示例代码能够经由过程 在线网站代码调试东西 JS Bin 调试。

作用域

作用域链

  • 每一个变量或函数经由过程实行环境 (execution context) 定义了其有权接见的其他数据,决议了他们各自的行动;

  • 全局实行环境是最顶层的实行环境,依据宿主环境的差别,示意全局实行环境的对象也差别:在浏览器中为 window 或 self 对象,在 Node.js 中为 global;

  • 每一个实行环境都有一个与之相干联的变量对象 (variable object) ,存储了改环境中定义的一切变量和函数;

  • 作用域(scope chain) 存储了与当前实行环境相干的一切变量对象,第一个为当前实行环境关联的变量对象,然后是包括环境的变量对象,直至全局实行环境的变量对象,即全局实行环境;

  • 在代码中查找变量的值称为变量剖析(variable name resolution),查找递次是沿作用域链一级一级向外搜刮;

全局作用域

函数作用域

块级作用域

函数声明

  • ES5 划定函数只能在顶层作用域和函数作用域当中声明,不能在块级作用域声明,但浏览器为兼容旧代码,仍许可在块级作用域中声明;

  • ES6 明白许可函数在块级作用域声明,但应只管运用函数表达式情势,以下:

let f = function () {
    return a;
  };

let 相比较 var 的差别点

  • 只在它地点的代码块有用;

  • 只能先声明后运用,不存在变量提拔;

  • 在其声明地点的代码块,不受外部影响,构成暂时性死区;

  • 不能反复声明;

    原文作者:拾柒_
    原文地址: https://segmentfault.com/a/1190000008825385
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞