美文网首页JavaScript
面试题 -- let与var的区别

面试题 -- let与var的区别

作者: 开着五菱宏光的小白 | 来源:发表于2019-04-22 12:46 被阅读0次

区别

  • let 可以定义块级作用域变量
{
   var i = 0
}
console.log(i)   //0

{
  let i = 0
}
console.log(i)  //i is not defined

  • let 配合for循环的独特应用
 for(var i = 0; i < 5; i ++) {
      setTimeout(() => {
          console.log(i)
      },0)
  }
   // 5个5

 for(let i = 0; i < 5; i ++) {
     setTimeout(() => {
        console.log(i)
     },0) 
 }
 // 0,1,2,3,4


  • let 没有变量提升和暂时性死区
console.log(a)
let a = "b"
// a is not defined

ES6 明确规定,如果区块中存在let和const命令,这个区块对这些命令声明的变量,从一开始就形成了封闭作用域。凡是在声明之前就使用这些变量,就会报错。
总之,在代码块内,使用let命令声明变量之前,该变量都是不可用的。这在语法上,称为“暂时性死区”(temporal dead zone,简称 TDZ)。


  • let变量不能重复声明
let a = 0
let a = 1
//Identifier 'a' has already been declared

相关文章

  • 关于ES6的let命令

    1、let的基本用法以及let和var的区别 (1) let与var一样是用来声明变量的,与var的区别是let所...

  • ES6相关知识点

    var、let 及 const 区别 涉及面试题:什么是提升?什么是暂时性死区?var、let 及 const 区...

  • 20190301 es6学习—let和const命令

    let命令 let与var之间的不同 声明变量的作用域 作用:声明变量 类似var与var的区别:var声明的变量...

  • js中的栈内存和对内存

    常见面试题: Q:说说var、let、const的区别A:balabalabalabla...Q:const定义的...

  • var、let 和 const 区别的实现原理是什么

    问题 var、let 和 const 区别的实现原理是什么? 区别 首先先说下三者的区别 var与let是可以声明...

  • let 和 const;函数默认参数

    let let 和 var 一样, 也是是用来定义变量的。如 let 与 var 的区别 let 定义的变量的作用...

  • let和const

    let/const(常用) let和var 区别 let,const用于声明变量,用来替代老语法的var关键字,与...

  • 面试题 -- let与var的区别

    区别 let 可以定义块级作用域变量 let 配合for循环的独特应用 let 没有变量提升和暂时性死区 ES6 ...

  • let 与 var区别

    变量提升,let没有,var有。 重复声明,表现不同 作用域不同

  • var 与 let 区别

    es6 刚流行那会,我只知道 var 即将退出历史舞台,取而代之的是 let 和 const,却不知道 var 有...

网友评论

    本文标题:面试题 -- let与var的区别

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