tutorial style ejemplo definicion attribute javascript numbers syntax-error

javascript - style - title css



¿Por qué 00.0 causa un error de sintaxis? (2)

Las expresiones 0.0 y 00.0 se 00.0 diferente.

  • 0.0 se analiza como un literal numérico 1
  • 00.0 se analiza como:
    • 00 - literal numérico octal 2
    • . - acceso de propiedad
    • 0 - 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 una Parte de exponente
2 Sección B.1.1 - Los 0 iniciales pueden ser seguidos por OctalDigits

Esto es raro Esto es lo que sucede en la consola de JavaScript en Chrome (versión 42.0.2311.135, 64 bits).

> 0 < 0 > 00 < 0 > 0.0 < 0 > 00.0 X Uncaught > SyntaxError: Unexpected number

Firefox 37.0.2 hace lo mismo, aunque su mensaje de error es:

SyntaxError: missing ; before statement

Probablemente haya alguna explicación técnica con respecto a la forma en que JavaScript analiza los números, y tal vez solo pueda suceder al modificar el indicador de la consola, pero aún parece incorrecto.

¿Porque hace eso?


00 se evalúa como un número octal y .0 se evalúa como el acceso a la propiedad de ese número. Pero como no se permite el uso de enteros como accesores de propiedades, se genera el error.

Obtiene el mismo error para cualquier otro objeto:

''string''.0 // Syntax error: unexpected number ({}).0 // Syntax error: unexpected number

Puede encontrar información relacionada sobre MDN propiedades en MDN .