JavaScript let 和 var 用法

标签 javascript function variables for-loop

不久前,我读了一些关于在 JavaScript 中使用 let 和 var 的文章,他们说使用“var”关键字声明的变量(即使在 for 循环中)只能在它的函数内工作,那么为什么它可能要在一个函数中创建多个 for 循环,每个循环如下所示: for (var i = 0; i < array.length; i++); JavaScript 对于“重新声明” i 变量没有问题吗?谢谢:)

最佳答案

JS 对于 var 有一个特殊情况,因为它允许提升,这意味着允许对相同变量进行多次声明,并将它们移动到封闭的函数作用域。然而它们仍然是相同的变量。考虑以下代码:

function foo(){
 for(var i=0; i<3; i++){
  console.log("x");
 }
 for(var i;i<6;i++){
  console.log("y");
 }
}

foo()

请注意,第二个循环中没有对 i 进行初始化,但它将正常执行并生成 3 x 和 3 y。这曾经是旧浏览器的问题,但新浏览器只是允许它,并且没有给出错误。

关于JavaScript let 和 var 用法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47401772/

相关文章:

javascript - 是否可以通过指针使对象为 null 或 undefined ?

python - 需要 python multiprocessing.lock() 的帮助

c++ - 有哪些不同的初始化方式

python - 在 Python 中赋值变量值之前对变量执行操作

javascript - jquery 缩短数字长度(将兆字节转换为千兆字节)

javascript - 如何使用 npm 脚本运行 mocha?

c - 函数average 和stdDev const int tab[ ]。一般问题

function - Julia :怎么了!拉格朗日多项式函数

javascript - 未定义元素从 URL 获取 JSON

JavaScript - 从函数内引用参数