Почему "бесконечность", "нуль", "NaN" и "undefined" имеют непоследовательный корпус?
В JavaScript языковые конструкции "Infinity", "null", "NaN" и "undefined" имеют непоследовательный корпус.
Является ли это историческим, или есть намерение позади этого?
Ответы
Ответ 1
Я думаю, что причины:
-
В ECMAScript типы начинаются с прописных букв:
Undefined, Null, Boolean, Number, String, Symbol, Object
-
Undefined, а Null - два типа, которые имеют только одно значение, имеющее то же имя, что и тип. Но было бы слишком сложно, если бы случай был одинаковым, поэтому они использовали строчные буквы:
undefined
, null
-
NaN
имеет этот корпус, потому что это значение IEEE 754-2008 "Не-номер"
Не-номер ⟶ NaN
-
Infinity
может начинаться с верхнего регистра, потому что нет типа под названием Infinity. Я предполагаю, что это также может начаться с нижнего регистра, но, возможно, им нужно что-то похожее на NaN
(?)
Ответ 2
Никто не знает.: - (
(Исходный ответ следует)
Чистая спекуляция, но & hellip;
-
null
и undefined
- это - это ключевое слово JavaScript s, отражающее различную метатеку "не значение". Все ключевые слова, о которых я знаю, являются строчными буквами (c.f. true
, false
);
-
undefined
- глобальное свойство, представляющее еще больше метаупаков;
-
Infinity
и NaN
- глобальные свойства, отражающие значения дознавателя с плавающей запятой IEEE, и идут прямо (ish) из этой спецификации третьей стороны.
Итак, я могу понять, почему здесь могут участвовать различные условные условные обозначения: яблоки и апельсины.
На мой взгляд, реальный вопрос в том, почему последние два не являются Math.INFINITY
и Math.NAN
.