美文网首页
let和var的区别

let和var的区别

作者: 无名程序猿 | 来源:发表于2019-05-23 10:36 被阅读0次

var 和 let 都是用于变量声明的关键字

  • 作用域
    var 是函数级作用域,let是块级作用域
  • 变量提升问题
//var
console.log(a);
var a=0;
//结果a= undefined
//let 暂时性死区(let块级作用域下,在变量声明之前的区域内不可使用该变量。)
console.log(b);//Uncaught ReferenceError: Cannot access 'b' before initialization(不可再变量声明前使用)
let b = 2;
  • 声明次数(同一变量)
    var 可以声明多次
    let 只可声明一次
//var 
var a=1;
var a=2;
console.log(a); // 2
//let
let b=1;
let b=2;//直接报错  
  • 典型事例
var a = 0;
function test() {
  console.log(a);
  var a = 2;
}
test(); // undefined  包含var是函数作用域 + 变量提升问题
console.log(a);// 0 访问到的变量全局作用域下的a变量,test函数中声明的变量只作用域是当前函数内。
// for 循环应用实例
  // 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的区别

      本文链接:https://www.haomeiwen.com/subject/fcvmzqtx.html