let和var的区别

2019-05-23  本文已影响0人  无名程序猿

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 
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);
   })
}
上一篇 下一篇

猜你喜欢

热点阅读