esto es raro Esto es lo que sucede en la consola JavaScript de Chrome (versión 42.0.2311.135, 64 bits).
> 0 < 0 > 00 < 0 > 0.0 < 0 > 00.0 X Uncaught > SyntaxError: Unexpected numberFirefox 37.0.2 hace lo mismo, aunque su mensaje de error es:
SyntaxError: missing ; before statementProbablemente haya alguna explicación técnica con respecto a la forma en que JavaScript analiza los números, y tal vez solo pueda suceder cuando se modifica el indicador de la consola, pero aún parece incorrecto.
¿Porque hace eso?
Las expresiones 0.0 y 00.0 se analizan de manera diferente.
0.0 se analiza como un literal numérico 100.0 se analiza como:00 - literal numérico octal 2. – acceso a la propiedad0 – nombre del identificador Su código arroja un error de sintaxis porque 0 no es un identificador de JavaScript válido. El siguiente ejemplo funciona ya que toString es un identificador válido:
00.toString 1 Sección 7.8.3 : el 0 inicial puede ir seguido de un separador decimal o de una parte exponencial
2 Sección B.1.1 – El 0 inicial puede ir seguido de OctalDigits
00 se evalúa como un número octal y .0 se evalúa como acceso a la propiedad de ese número. Pero dado que no se permite el uso de números enteros como elementos de acceso a la propiedad, se genera el error.
Obtiene el mismo error para cualquier otro objeto:
'string'.0 // Syntax error: unexpected number ({}).0 // Syntax error: unexpected numberPuede encontrar información relacionada sobre accesos de propiedad en MDN .