第2章 let和const命令

  1. ES6声明变量的方法:var、function、let、const、import、class
  2. let命令用于声明变量,其用法类似于var。let命令和var命令的区别:
    1. let命令所声明的变量值在let命令所在的代码块内有效,而var声明的变量在全局环境中都有效。

    if(true){ let a=5; var b=2; } console.log(a); // ReferenceError: a is not defined console.log(b); // 2
    2. let不存在变量提升,而var存在变量提升现象。
    >console.log(typeof(x));// ReferenceError: a is not defined let x=5; console.log(a); // undefined var a=2;
    3. 在代码块内,使用let命令声明变量之前,该变量都是不可用的。也就是存在“暂时性死区”现象。
    >var a=3; if(true){ a="abc"; // ReferenceError: a is not defined let a; }
    4. let不允许在相同作用域内重复声明同一个变量,而var可以多次声明同一个变量。
    >var b="init b"; var b="second"; console.log(b); // "second" var a=10; let a=2; //报错:“Identifier 'a' has already been declared”

  3. const命令用于声明常量。一旦声明,其值就不能改变。其特性与let相似,不存在常量提升,存在暂时性死去,作用域为其块级作用域,不允许重复声明常量。

    const PI=3.1415; PI=2; // TypeError: Assignment to constant variable

  4. ES6规定,var命令和function命令声明的全局变量依旧是全局对象的属性,而let命令、const命令和class命令声明的全局变量不属于全局对象的属性。

你可能感兴趣的:(第2章 let和const命令)