for...of 循环中变量的默认值是多少?
What is the default value of variable in for...of loop?
for..of 循环中变量的默认类型是什么。
for (value of [1,2,3]) // what is the default type of value
console.log(value)
我想知道 value
类型是否会是 var/let/const。
据我所知,任何未声明的变量都是 var
类型。适用于for循环变量吗?
没有默认值,但我想您可以在松散模式下将 The Horror of Implicit Globals¹ 称为一种默认值。 :-) 不要依赖隐式全局变量的恐怖,它实际上是严格模式修复的语言中的错误。 :-)
如果您按照自己的方式编写代码,则必须在循环之前声明变量。如果不这样做,在松散模式下,将隐式创建全局 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);
}
¹ (这是我贫血、被忽视的博客上的 post)
for..of 循环中变量的默认类型是什么。
for (value of [1,2,3]) // what is the default type of value
console.log(value)
我想知道 value
类型是否会是 var/let/const。
据我所知,任何未声明的变量都是 var
类型。适用于for循环变量吗?
没有默认值,但我想您可以在松散模式下将 The Horror of Implicit Globals¹ 称为一种默认值。 :-) 不要依赖隐式全局变量的恐怖,它实际上是严格模式修复的语言中的错误。 :-)
如果您按照自己的方式编写代码,则必须在循环之前声明变量。如果不这样做,在松散模式下,将隐式创建全局 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);
}
¹ (这是我贫血、被忽视的博客上的 post)