let和const

2018-08-01  本文已影响0人  Warren_hu

   //let 和 const 声明变量和常量 var

//01-作用域只局限于当前代码块

    {

var str1 ="张三";

        console.log(str1);

        let str2 ="李四"

        console.log(str2);

    }

console.log('+++++'+ str1);//+++++张三

    console.log('-----'+ str2);//无打印结果

// 02-使用let声明的变量的作用域不会被提升

    {

console.log(str1); //undefined

        var str1 ="张三"

        console.log(str2); // Uncaught ReferenceError: str2 is not defined

        let str2 ="张三"

    }

// 03-在相同作用域下不能申明相同的变量

    {

var str1 ="张三";

        var str1 ="李四";

        console.log(str1);

        let str2 ="张三";

        let str2 ="李四";

        console.log(str2);

        //Uncaught SyntaxError: Identifier 'str2' has already been declared

    }

// 04-for循环体现let的父子作用域

    var btns = document.querySelectorAll('button');

    for (var i =0; i

btns[i].onclick =function () {

alert('点击了第' + i +'个按钮')

}

}

var btns = document.querySelectorAll('button');

    for (var i =0; i

(function (i) {

btns[i].onclick =function () {

alert('点击了第' + i +'个按钮')

}

})(i);

    }

let btns = document.querySelectorAll('button');

    for (let i =0; i

btns[i].onclick =function () {

alert('点击了第' + i +'个按钮')

}

}

//01-只在当前代码块中有效

    {

const a ="张三";

        console.log(a);

    }

console.log(a);

    // 02-作用域不会被提升

// 03-不能重复申明

// 04-申明的常量必须赋值

    {

const name ="张三";

        name ="李四";

        //不能修改,报错:Assignment to constant variable.

        console.log(name);

    }

const obj = {name:"张三"};

    console.log(obj);

    obj.name ="李四"

    console.log(obj);

上一篇下一篇

猜你喜欢

热点阅读