Number.POSITIVE_INFINITY
es una constante y por lo tanto no overwritable, mientras que Infinity
es una propiedad de window
y es overwritable:
Number.POSITIVE_INFINITY = 123;
Number.POSITIVE_INFINITY; // Infinity
Infinity = 123;
Infinity; // 123
Esto es lo mismo que undefined
o NaN
, que son básicamente propiedades de window
y overwritable . Tampoco es bueno confiar en window.undefined
; más bien quieres producir un undefined
'real' (como en una función auto ejecutada donde no pasas un argumento pero lo declaras en la función).
Especificaciones:
15.7.3.6 Number.POSITIVE_INFINITY
El valor de Number.POSITIVE_INFINITY
es +∞
.
Esta propiedad tiene los atributos { [[Writable]]:
false
, [[Enumerable]]: false, [[Configurable]]: false }
.
En ES5, la capacidad de sobrescribir se ha eliminado:
15.1.1: Las propiedades de valor NaN
, Infinity
y undefined
del objeto global se han cambiado a propiedades de sólo lectura.
Sobre isFinite
: Una vez enviado el question de por qué el Cierre Biblioteca Google implementa una función personalizada para isFinite
, y la respuesta fue que probablemente hubo alguna inconsistencia entre navegadores, aunque no está claro qué navegador y qué inconsistencia.
+1, me encanta aprender algo nuevo – Joe
Pero, realmente no respondiste si 'Number.POSITIVE_INFINITY' da el mismo resultado que' Infinity' además del hecho de que 'Infinity' es modificable en los navegadores más antiguos. – jfriend00
@ jfriend00: Esa no es la pregunta si lo estoy entendiendo correctamente. Se pregunta si hay una razón para usar 'Number.POSITIVE_INFINITY' sobre' Infinity', y esta razón es legítima, creo. – pimvdb