Es no un rango, la expresión 1..z
se devuelva undefined
.
¿Por qué?
El primer punto termina una representación de un Numeric Literal, que le da una primitiva Number
:
var n = 1.;
La gramática de un literal numérico se expresa así:
DecimalIntegerLiteral . DecimalDigitsopt ExponentPartopt
Como se puede ver la DecimalDigits parte después del punto es opcional (sufijo opt).
El segundo punto es el acceso a la propiedad, se tratará sólo para obtener la propiedad z
, que es undefined
, ya que no existe en el objeto Number.prototype
:
1..z; // undefined
1..toString(); // "1"
es equivalente a tener acceso a una propiedad con el acceso a la propiedad de notación de corchetes:
1['z']; // or
1['toString']();
gracias por desactivar la información errónea – spender
Awesome answer. – Nicole
Gracias! Muy buena explicación. – Roman