ES6入门学习

来源:互联网 发布:centos关闭iptables 编辑:程序博客网 时间:2024/05/19 17:06
本博客中ES6入门学习系列均参考阮一峰老师的《ECMAScript6入门》一书,以自学汇总为目的,相当于学习笔记。更多详细内容还请移步[阮一峰-ECMAScript6入门](http://es6.ruanyifeng.com/)。

1 let

  • let命令用来声名变量、开辟新作用域。
  • 再for循环中,循环变量的那部分是一个作用域,循环体是另一个作用域。
  • 不存在变量提升。
  • 暂时性死区(TDZ):再let声明变量之前,不能对该变量进行赋值操作,即使上层可以查到var生命的该变量。
  • 在相同作用域内不允许试用let重复声明同一个变量。

2 块级作用域

  • 在ES5中只有全局作用域和函数作用域,而其他如for循环等都没有开辟新作用域,加上变量提升的特点,很容易造成变量混乱。
  • ES6中增加了块级作用域,让作用域更加清晰,变量不易混乱。
  • 在ES6中试用let开辟新作用域。

3 const

  • const声明一个只读常量,一旦声明值就不能更改。
  • const声明时必须赋值,否则会报错。因为只有声明时才能赋值。
  • const与let相同,只在声明所在的块级作用域中有效。
  • const不允许重复声明同一常量,否则报错。
  • const常量并不是保证变量的值不能改动,而是变量指向的内存地址不得改动。

4 顶层对象的属性

  • 在浏览器中顶层对象是window对象,也是全局对象。
  • 在node中顶层对象是global对象。
  • ES6中,var和function命令声明的全局变量,是顶层对象的属性。
  • ES6中,let、const、class命令声明的全局变量,不属于顶层对象的属性。
原创粉丝点击