Почему назначение Infinity в JavaScript не возвращает ошибок, но не работает? - PullRequest
5 голосов
/ 28 сентября 2019

Почему бесконечность не выдает ошибку при попытке переназначения, но не присваивается?

var x = 3;

x = 1; //good, normal
true = 3; //Error, normal

Infinity = 4; //no error

console.log(Infinity); //Infinity

1 Ответ

5 голосов
/ 28 сентября 2019

Как вы можете прочитать здесь :

Бесконечность - это свойство глобального объекта или, другими словами, переменная вглобальная область действия .

Поскольку это глобальное свойство, вы можете получить к нему доступ и присвоить любое значение.Однако присвоение значения свойству non Writable не вызывает никаких исключений, , когда вы находитесь в not строгом режиме , и не изменяет значениесобственности.

Если вы используете «строгий режим», то будет выдано исключение.

"use strict"

Infinity = 4;
...