52ky 发表于 2022-5-5 09:06:34

for hellip;of 循环中变量的默认类型?

问题
for..of 循环中变量的默认类型是什么。
for (value of ) // what is the default type of value
console.log(value)

我想知道 value 是否属于 var/let/const 类型。

据我所知,任何未声明的变量都是 var 类型。它适用于循环变量吗?

回答
没有默认值,尽管我想您可以将松散模式下隐式全局变量的恐怖称为默认值。 :-) 不要依赖隐式全局变量的可怕之处,它实际上是语言中的一个错误,由严格模式修复。 :-)

如果您以现有方式编写代码,则必须在循环之前声明变量。如果在松散模式下没有隐式创建全局变量;在严格模式下(我总是推荐)这是一个错误。如果变量是在循环之前声明的,那么 let 或 var (但不是 const )都可以工作。

如果您在循环中声明变量,则可以使用 let 或 const ,具体取决于您是否要更新循环中的变量(以及您喜欢的样式):
const values = ["one", "two", "three"];

for (const value of values) {
    console.log(value);
}

for (let value of values) {
    console.log(value);
}

for (let value of values) {
    // (Note the following only changes the value of the variable, not the entry in the array)
    value = value.toUpperCase(); // You couldn't do thsi with `const`
    console.log(value);
}



页: [1]
查看完整版本: for hellip;of 循环中变量的默认类型?