《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 的不同点

  • 只在它所在的代码块有效;

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

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

  • 不能重复声明;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值