1.let和var类似,

(1)let与var不同的点:let没有预编译,变量提升这个过程,let声明的变量只能在当前作用域内访问到(一个{}可以看做是一个作用域),在全局var声明的变量属于window,而let声明的不属于

 

 let a = 12;
    (function () {

        console.log(a);  
        let a = 5;
    }());

    可见上面代码中是会报错的,如果a是var声明的,那么就不会报错、输出a的值是undefined

 

(2)虽然说let声明的变量不允许重复声明,但是在for循环中貌似又是可以的

 for (let i = 0; i < 10; i++) {
        let i = "abc";
        console.log(i);    //这里输出的是abc
    }
View Code

相关文章: