let、var的区别

63 阅读1分钟

1、let 和 var

区别1:var有声明提升,而let没有

var:

    var a=10
    console.log(a);//'abc'

等价于:

    var a
    a=10
    console.log(a);//'abc'

区别2:var可以重复声明变量,而let不可以

    var a=10
    var a=90
    console.log(a) //90

区别三:var是函数作用域,let是块级作用域,块级作用域即是花括号包裹起来的区域,也就是说函数作用域包括块级作用域。

var:

    function a(){
      var num=10
      console.log(num)
    }
    a()  //打印10
    console.log(num) //打印undefined
    for(var i=0;i<10;i++){
    //注意:i是在花括号内部定义的
    }
    console.log(i)//打印10
    
    

let:

    for(let i=0;i<10;i++){
    //注意:i是在花括号内部定义的
    }
    console.log(i)//提示未定义