Skip to content

ECMAScript 6——笔记 #7

@FannieGirl

Description

@FannieGirl

let 和 const 命令

  1. let声明的变量只在它所在的代码块有效。

  2. for循环的计数器,就很合适使用let命令。

3.计数器i只在for循环体内有效,在循环体外引用就会报错。

for循环还有一个特别之处,就是设置循环变量的那部分是一个父作用域,而循环体内部是一个单独的子作用域。

  1. let命令改变了语法行为,它所声明的变量一定要在声明后使用,否则报错。

  2. (暂时性死区)只要块级作用域内存在let命令,它所声明的变量就“绑定”(binding)这个区域,不再受外部的影响。

  3. “暂时性死区”也意味着typeof不再是一个百分之百安全的操作。

7.作为比较,如果一个变量根本没有被声明,使用typeof反而不会报错。

8.ES6 规定暂时性死区和let、const语句不出现变量提升,主要是为了减少运行时错误,防止在变量声明前就使用这个变量,从而导致意料之外的行为。

9.(不允许重复声明)let不允许在相同作用域内,重复声明同一个变量。

10.内层作用域可以定义外层作用域的同名变量。

11.ES6 允许块级作用域的任意嵌套。

12.外层作用域无法读取内层作用域的变量。

13.ES6 引入了块级作用域,明确允许在块级作用域之中声明函数。ES6 规定,块级作用域之中,函数声明语句的行为类似于let,在块级作用域之外不可引用。

14.ES6 的块级作用域允许声明函数的规则,只在使用大括号的情况下成立,如果没有使用大括号,就会报错。

15.本质上,块级作用域是一个语句,将多个操作封装在一起,没有返回值。

16.使得块级作用域可以变为表达式,也就是说可以返回值,办法就是在块级作用域之前加上do,使它变为do表达式。

  1. const 声明一个只读的常量。一旦声明,常量的值就不能改变。

18.对于const来说,只声明不赋值,就会报错。

19.const的作用域与let命令相同:只在声明所在的块级作用域内有效。

  1. 对象冻结,应该使用Object.freeze方法。

21.声明变量的六种方法:let,const,var,function,import,class

22.顶层对象,在浏览器环境指的是window对象,在Node指的是global对象。ES5之中,顶层对象的属性与全局变量是等价的。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions