美文网首页
ES6 笔记之let,const

ES6 笔记之let,const

作者: cutecat | 来源:发表于2016-11-24 22:30 被阅读0次

    const定义的变量,和let声明的变量都不会进行变量提升,预编译阶段扫描到变量声明时,将变量声明放入暂时性死区,待到执行到声明变量赋值才会离开死区,所以使用const,let定义的变量必须在执行声明赋值之后才可以拿到,否则会出现Uncaught ReferenceError: value is not defined错误

    console.log(val-value);

    var val-value=123;   //123

    console.log(const-value);

    const const-value=123  //Uncaught ReferenceError: const-value is not defined(…)

    console.log(let-value);

    let let-value=123  //Uncaught ReferenceError: let-value is not defined(…)

    在同一个块级作用域中,不能用let,var,const定义同名变量,会产生语法错误

    if(true)

    {
        var a=1;

        let a=2;
    }    //Uncaught SyntaxError: Identifier 'a' has already been declared

    const 定义一个变量,一旦定义,不能通过赋值直接修改

    const val=23;

    val=34;  //Uncaught TypeError: Assignment to constant variable.(…)

    当const定义的是一个数组时,可以通过数组的队列方法来修改数组;当const定义的是一个对象时,可以添加对象的属性和方法,但不能通过字面量来重写对象。因为数组也属于对象,当用字面量方法重新赋值时,是创建了一个新的对象实例,原则上已经改变了变量。

    const array=[1,2,3,4]

    array=[1,2,3];//Uncaught TypeError: Assignment to constant variable.(…)

    array.push(5);

    console.log(array); //  [1,2,3,4,5]

    array.length=0;

    console.log(array) //  []

    相关文章

      网友评论

          本文标题:ES6 笔记之let,const

          本文链接:https://www.haomeiwen.com/subject/qlytpttx.html