Javascript中每个循环的当前元素的变量是否需要在循环外部定义?

Javascript中每个循环的当前元素的变量是否需要在循环外部定义?,javascript,Javascript,JS for each循环()的示例如下 我想知道为什么x是在循环外定义的,如果在那个特定的例子中它只在循环内使用,或者这是为每个循环定义a的必要条件,如果是,为什么?这是一个旧的约定,主要是为了表明x不仅仅存在于循环内部 在函数顶部声明变量是不必要的,不同样式的工具不同程度地鼓励/不鼓励在函数顶部声明变量。在一个地方对变量声明进行分组可能很方便,但可能会增加声明和使用之间的距离(通常认为这是一件坏事) 在JS中,变量在函数范围内工作,因此变量被提升到最近函数的顶部,并在函数持续期间保持活动。见

JS for each循环()的示例如下

我想知道为什么
x
是在循环外定义的,如果在那个特定的例子中它只在循环内使用,或者这是为每个循环定义a的必要条件,如果是,为什么?

这是一个旧的约定,主要是为了表明
x
不仅仅存在于循环内部

在函数顶部声明变量是不必要的,不同样式的工具不同程度地鼓励/不鼓励在函数顶部声明变量。在一个地方对变量声明进行分组可能很方便,但可能会增加声明和使用之间的距离(通常认为这是一件坏事)

在JS中,变量在函数范围内工作,因此变量被提升到最近函数的顶部,并在函数持续期间保持活动。见:

函数foo(){
对于(var i=19;i>0;--i){
console.log(typeof i);//编号
}
console.log(typeof i);//编号
}

foo()否,
for(var i=0;i
工作正常。可能最好避免将w3schools作为主要资源。不,这不是必需的。具体原因可能是“因为w3schools”谷歌问题:JSloops@CodeWhisperer我用谷歌搜索了它,并被带到了W3school。我确信还有其他地方可以向您展示另一个for循环,甚至是在堆栈上。
var person = {fname:"John", lname:"Doe", age:25};

var text = "";
var x;
for (x in person) {
    text += person[x];
}