ES6 let const学习

1、let命令:用法类似于var,但是所声明的变量,只在let命令所在的代码块有效。

  例:var a = [ ];

    for(var i=0;i<10;i++){

      a[ i ] = function(){

        console.log( i );

      };

    }

    a[ 6 ]( );     // 10

 

    var a = [ ];

    for(let i=0;i<10;i++){

      a[ i ] = function(){

        console.log( i );

      };

    }

    a[ 6 ]( );     // 6

这样子看来就是let是每次循环都是一个新的变量,而var 是全局变量每一次循环变量i的值都会改变;

  for循环的特殊之处就是设置循环变量的那部分是一个父作用域,而循环体内部是一个单独的子作用域;

let 命令不存在变量提升,我们很多时候使用var的时候是,先使用在声明,用为var存在提升变量,var,function声明的全局变量,属于顶层对象的属性,而es6 新出的4中命令(let,const,class,import)声明的全局变量,不属于顶层对象的属性。所以使用,let,const需要先声明在使用。

 

暂时性死区:

只要块级作用域内存在let命令,它所声明的变量就“绑定这个区域”,不在受外部的影响,(就是闭关锁国了谁也不例了,你进不来的)。

不允许重复声明:let 不允许在相同的域内重复声明同一个变量

块级作用域:

ES6允许块级作用域的任意嵌套:{{{{{let insane="Hello World"}}}}}

posted @ 2019-03-20 11:18  哭辽  阅读(100)  评论(0编辑  收藏  举报