ES6基础知识

一. let 与 conts

  1. let 声明的变量只在所在代码块内有效,不可声明多次

    作用域
    function demo{
    	let a = 1;
    	console.log(a); ///1
    }
    console.log(a);  //报错  ReferenceError: a is not defined
    
    不可声明多次
    let a = 1;
    let a = 1;
    a  //Identifier 'a' is already been declared
    
  2. const 声明一个只读的常量,一旦声明,值就不能改变

    基本用法:

    const a = 1;
    a //1
    
    const b;  // SyntaxError: Missing initializer in const declaration
    

    暂时性死区:

    var a = 1;
    if(true) {
    	console.log(a); // ReferenceError: a is not defined
    	const a = 2;
    }
    

    ES6 明确规定,代码块内如果存在 let 或者 const,代码块会对这些命令声明的变量从块的开始就形成一个封闭作用域。代码块内,在声明变量 a 之前使用它会报错。

  3. var 声明全局变量,在全局范围内有效,可声明多次

  4. let 不存在变量提升,var 存在变量提升

    console.log(a); //ReferenceError: a is not defined
    let a = 1; 
    
    console.log(b); //undefined
    var b = 1;
    

    变量 b 用 var 声明存在变量提升,所以当脚本开始运行的时候,b 已经存在了,但是还没有 赋值,所以会输出 undefined。
    变量 a 用 let 声明不存在变量提升,在声明变量 a 之前,a 不存在,所以会报错。

你可能感兴趣的:(ES6)