const与let

在ES6中添加了let及const声明变量

const

1、声明一个变量,且这个值不能再被改变,且声明变量时要同时赋值;

    const COUNT=1;

    COUNT=2;    //报错,COUNT的值不能再改变

2、变量只在声明的块级作用域里有用;

    If(i>10){

    const a=1;

}

a;    //报错,a只在if作用域里有用

3、声明的变量不能提升;

    If(i>10){

    console.log(a);

    const a=1;    //报错,使用之前应先声明

}

4、不能重复声明;

    const a=1;

    const a=1;    //报错

备注:const声明变量,是指内存中保存的值不能变。当声明的变量为基本数据类型时,内存中存的是变量本身,因此不可变。而当声明的变量是复合类型时,内存中存的是指向一个内存空间的位置值(指针),这个位置值不可变,原来是多少仍然是多少,但是指向的这个位置上面保存的值是可变的。

let

1、let声明变量与的特点同const的2、3、4条;

2、比较下面代码:

3、使用let可能会出现的错误;

    1)    let a=a;        //等号左边的a未声明;

    2)    typeof a;    //a存在暂时性死区,未声明不可以使用

        let a;

 

 

posted @ 2017-03-04 15:32  JulietteWang  阅读(265)  评论(0编辑  收藏  举报