美文网首页开发碎片知识
let 和 var 有什么区别?

let 和 var 有什么区别?

作者: Gema玩家 | 来源:发表于2021-06-09 22:53 被阅读0次

1.Var可以看成是JavaScript语言设计上的错误(if和for都没有块级作用域),Brendan Eich决定修复这个错误,所以提出了let。Let是一个更完美的var,因为let是有块级作用域的,var没有。

2.变量作用域:变量在什么范围内是可用的。

  1. If没有块级作用域引起的问题


注意:name属性本来是在if里面定义的,按道理只能在if里起作用。但是现在是全局都可以用。引发作用域问题。

注意:闭包可以解决块级作用域,因为函数就是一个作用域,if,for是没有块级作用域。

  1. for没有块级作用域引起的问题




定义5个按钮,分别为按钮添加单击事件,我们从控制台可以看到,无论哪个按钮被单击,控制台总打印第5个按钮被点击,因为i的值在遍历后已经变成5了。在添加事件的函数内的i已经变成5.

  1. let块级作用域


用let替换var,完美解决问题、

相关文章

  • 面试题 var let const的区别 箭头函数和普通函数的区

    var let const 有什么区别 var var声明的变量可进行变量提升,let和const不会var可以重...

  • let 和 var 有什么区别?

    1.Var可以看成是JavaScript语言设计上的错误(if和for都没有块级作用域),Brendan Eich...

  • let和var以及const有什么区别

    在JavaScript中有三种声明变量的方式:var、let、const。 var:声明全局变量,换句话理解就是,...

  • var、let、const有什么区别?

    首先,ES6 中新增了块级作用域。块作用域由 { } 包括,if语句和 for语句里面的{ }也属于块作用域。 v...

  • 浅谈ES6

    1.var、let、const声明变量,有什么区别? (1)作用域: var 声明的变量不用多说,我们之前写j...

  • 前端面试题js:let,const

    4. 如何在ES5环境下实现let 这个问题实质上是在回答let和var有什么区别,对于这个问题,我们可以直接查看...

  • Swift基础语法

    let 和 var let 标识常量var 表示变量 swift :自动推导,var/let的类型是由“=” ...

  • let和var

    首先看一个var示例: 如果使用相同示例(简化注释)var改为let: 会报#1的x未定义,因为let声明的变量不...

  • var 和let

    上面代码中,变量i是var命令声明的,在全局范围内都有效,所以全局只有一个变量i。每一次循环,变量i的值都会发生改...

  • 回答问题

    1.const和let有什么区别 第一个 const 第二个 let 其实还有一个var,他也是声明变量的一种,v...

网友评论

    本文标题:let 和 var 有什么区别?

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