gpt4 book ai didi

javascript - JavaScript 会混淆局部变量吗?

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:54:12 26 4
gpt4 key购买 nike

如果我有一对函数,它们都设置了局部变量,例如,for 循环中的变量 i,恰好一个被调用,另一个被调用正在运行,是否存在 namespace 混淆的危险?

最佳答案

请记住,JavaScript 没有 block 作用域,只有函数作用域。

另外,如果你有嵌套循环,在下面的例子中将只有一个i变量:

function myFunction() {
for (var i = 0; i < 10; i++) {
for (var i = 0; i < 10; i++) {
// code here will run 10 times instead of 100 times
}
}
// variable i is still accessible from here
}

Douglas Crockford建议 var 语句应该是 Code Conventions for the JavaScript Programming Language 函数体中的第一条语句:

JavaScript does not have block scope, so defining variables in blocks can confuse programmers who are experienced with other C family languages. Define all variables at the top of the function.

我认为他说得有道理,正如您在下面的示例中看到的那样,这不会让读者误以为变量 ij 保存在for 循环 block 的范围:

function myFunction() {
var i, j; // the scope of the variables is now very clear
for (i = 0; i < 10; i++) {
for (j = 0; j < 10; j++) {
// code here will run 100 times
}
}
}

关于javascript - JavaScript 会混淆局部变量吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3600173/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com