# es6笔记(一):let和const

es6笔记(一):let和const

  • let
  • const

let

es6新增了let命令,用于声明变量,其用法类似于var,但所声明的变量只在let命令所在的代码块内有效。

let的特点:

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

function test() {
    for(let i=1;i<3;i++) {
        console.log(i);
    }
    console.log(i);  //'ReferenceError: i is not defined'
}

test();

2.let不像var那样存在“变量提升”现象,所以,变量一定要先声明后使用,否则报错

 function test() {
    console.log(foo); //ReferenceError: foo is not defined
    let foo = 3;
}

test();

3.let不允许在相同作用域内重复声明

function test() {
    let a = 10;
    let a = 12; //报错
}

test();

const

const用来声明常量。

const的特点:

  1. const一旦声明,其值就不可变。
  function test() {
    const PI = 3.1415;
    PI = 9;  //TypeError: Assignment to constant variable.
}

test(); 

2.const一旦声明常量,就必须马上初始化,不能留到以后赋值
3.const的作用域和let命令相同,只在声明所在的块级作用域内有效
4. const命令声明的常量也不提升,只能在声明后使用
5. const命令只是保证变量名指向的地址不变,并不保证该地址的数据不变

 function test() {
    const foo = {};
    foo.prop = 123;

    foo = {}; //TypeError: Assignment to constant variable.
}

test();

你可能感兴趣的:(es6,读书笔记)