Каково значение переменной по умолчанию для for ... of l oop? - PullRequest
1 голос
/ 17 апреля 2020

Какой будет тип переменной по умолчанию для for of of l oop.

for (value of [1,2,3]) // what is the default type of value
  console.log(value)

Я хочу знать, будет ли тип value иметь тип var / let / const.

Насколько я знаю, любая необъявленная переменная будет иметь тип var. Это относится к переменным l oop?

1 Ответ

5 голосов
/ 17 апреля 2020

Нет значения по умолчанию, хотя я думаю, вы могли бы назвать Ужас неявных глобалов ¹ в свободном режиме своего рода значением по умолчанию. :-) Не полагайтесь на ужас неявных глобалов, это фактически ошибка в языке, которая исправлена ​​строгим режимом. : -)

Если вы пишете код так, как у вас, вы должны объявить переменную до l oop. Если вы не делаете этого в свободном режиме, глобально var создается неявно; в строгом режиме (который я рекомендую использовать всегда) это ошибка. Если вы объявите переменную до l oop, то будет работать let или var (но не const).

Если вы объявите переменную в , l oop, вы можете использовать let или const, в зависимости от того, хотите ли вы обновить переменную в l oop (а также в предпочитаемом вами стиле):

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);
}

¹ (это пост в моем анеми c, пренебрегаемый блог)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...