Почему «of» не является ключевым словом JavaScript?

#javascript

#javascript

Вопрос:

Что означает «of» в инструкции цикла для …of?

Я могу присвоить ему значение

 const of = "text";
  

тогда как аналогия с «in» из for…in цикл

 const in = "text";
  

невозможно.

Почему «of» не является одним из зарезервированных слов?

Комментарии:

1. Скорее всего, проблемы с обратной совместимостью.

2. in и of ЯВЛЯЮТСЯ keywords , однако of , как вы говорите, могут быть назначены.

3. Хороший вопрос. У вас может быть of имя переменной, потому что of это не зарезервированное слово в стандарте ES . Почему это не зарезервированное слово, я не знаю..

4. in может появляться не только в цикле for, но, например, также в таком состоянии, как "a" in {a:1,b:2} . Имеет ли of аналогичное другое использование тогда в for of цикле?

5. Возможно, это не зарезервированное слово, но я бы определенно назвал его ключевым словом в for цикле.

Ответ №1:

of не является зарезервированным словом в соответствии со стандартом ECMAScript.

Это может быть связано с тем, что некоторые браузеры не соответствуют стандартам, а некоторые соответствуют. Если спецификация добавлена of в качестве ключевого слова, сайты, которые объявили переменную с именем of , могут полностью прерваться. Спецификация Javascript должна быть обратно совместимой, чтобы веб не ломался.

Процитировать @Bergi в комментариях,

Скорее, наоборот: спецификация написана так, что браузеры, которые остаются обратно совместимыми, могут соответствовать ей. Если бы язык ECMAScript 2020 был разработан сегодня, его определенно сделали бы зарезервированным словом.

Комментарии:

1. Скорее, наоборот: спецификация написана так, что браузеры, которые остаются обратно совместимыми, могут соответствовать ей. Если бы язык ECMAScript 2020 был разработан сегодня, его определенно сделали бы зарезервированным словом.