ES6第一篇:let、const、块级作用域

一、let:

  1、let声明的变量只在它所在的代码块内有效;

  2、let声明的变量不存在变量提升;(变量提升:变量可以在声明之前使用,值为undefined);

  3、暂时性死区(temporal dead zone):在代码块内,使用let声明变量之前,该变量都是不可用的;

  4、let不允许在相同作用域内,重复声明同一个变量。

二、块级作用域:

  1、为什么需要:内层变量可能会覆盖外层变量、用来计数的循环变量泄露为全局变量;

  2、外层作用域无法读取内层作用域变量;

  3、内层作用域可以声明外层作用域同名变量;

  4、立即执行函数不再必要;

  5、 块级作用域内能不能声明函数?

三、const:

  1、const声明的是一个只读常量,一旦声明,常量的值就不会改变(总是指向一个固定的地址,它指向的数据结构是不是可变的,就完全不可控了);

  2、对于const来说,只声明不赋值,就会报错;

  3、同let的特性。

四、顶层对象的属性:

  顶层对象,在浏览器环境指的是window对象,在node指的是global对象,web worker指的是self。

  var命令和function命令声明的全局变量,依旧是顶层对象的属性;let、const、class声明的全局变量,不再是顶层对象的属性。

 

posted @ 2018-11-19 17:19  爱技术的比目鱼  阅读(244)  评论(0编辑  收藏  举报