Я недавно столкнулся с ошибкой, где я сделал это выражение:
Math.max(Number.MIN_VALUE, 0)
// returns 5e-324
Я не совсем уверен, как он вернул это значение, поэтому я попытался перевернуть выражение, чтобы увидеть, что произойдет:
Math.min(Number.MAX_VALUE, 0)
// returns 0
Однако это прекрасно работает.
То, как я исправил первое выражение, так:
Math.max(Number.MIN_SAFE_INTEGER, 0)
// returns 0
Несколько вопросов:
- Почему взятие МАКСА
Number.MIN_VALUE
и нуля равняется 5e-324?
- Если у нас есть
Number.MIN_SAFE_INTEGER
, должны ли мы всегда использовать это или есть вариант использования для Number.MIN_VALUE
?
- Если я просто использую значения MIN / MAX в качестве начального состояния (которое наверняка будет перезаписано при первом сравнении), я должен использовать вместо него
-Inifinity / Infinity
?