let和var的区别

Posted llhweb

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了let和var的区别相关的知识,希望对你有一定的参考价值。

  • 通过var定义的变量,作用域是整个封闭函数,是全域的 。通过let定义的变量,作用域是在块级或是子块中。
  • 但是直接用let声明变量不赋值是会打印undefined,还是初始化了,只是let声明放在赋值之后,let声明会提前但不会初始化
  • let a; alert(a);//值为undefined alert b;//会报错 let b
  • let不允许在相同作用域内,重复声明同一个变量。
  • 只要块级作用域内存在let命令,它所声明的变量就“绑定”这个区域,不再受外部的影响。总之,在代码块内,使用let命令声明变量之前,该变量都是不可用的,尽管代码块外也存在相同全局变量。
  • let : 变量只能声明一次
  • var : 变量可以多次声明
    for(var i=0;i<5;i++){
               setTimeout(function(){
                   console.log("var:" + i);
              })
        }
           // let
        for(let i=0;i<5;i++){
               setTimeout(function(){
                   console.log("let" + i);
              })
        }

     

以上是关于let和var的区别的主要内容,如果未能解决你的问题,请参考以下文章

let 和 var的区别

let const和var的区别

Javascript var 和 let 的区别

var,let,const的区别和用法

setTimeout 中 let 和 var 的区别? [复制]

前端面试题:JS中的let和var的区别