El punto "." tiene dos semánticas en JavaScript
Semántica 1. Representa el punto decimal (número de punto flotante) en aritmética, como 2,5
Semántica 2. Obtener atributos y métodos de objetos, como [].push(2)
No hay casi nada difícil de entender, pero la siguiente pregunta es interesante.
Copie el código de código de la siguiente manera:
// ¿Cómo se ejecutará esta línea de código?
1.toString();
Como sigue en Firebug
El punto aquí expresa la semántica 1 mencionada anteriormente, por lo que el punto debe ir seguido de un número. Lo que sigue aquí es toString, y la sintaxis del informe es incorrecta.
La solución es muy sencilla, como añadir paréntesis.
Copie el código de código de la siguiente manera:
(1).toString();
Aún puedes escribirlo así, pero es más difícil de entender.
Copie el código de código de la siguiente manera:
1..toString();
La razón por la que se puede ejecutar en navegadores es porque cada motor JS de navegador entiende "1..toString()" como "1.0.toString()". El primer punto aquí es el semántico 1 y el segundo punto es el semántico 2.
Hay una forma aún más extraña de escribirlo, pero no se informa ningún error.
Copie el código de código de la siguiente manera:
1.toString(); // Tenga en cuenta que hay un espacio antes del punto
Obviamente, el punto aquí es semántico 2, es decir, el motor JS ignorará los espacios antes del operador de punto. De hecho, no importa los espacios antes o después, se ignorará. como sigue
Copie el código de código de la siguiente manera:
1. toString(); // Hay un espacio antes y después del punto
1. toString(); // Hay dos espacios antes y después del punto.
1.toString(); // Hay una pestaña antes del punto
1. toString(); // Hay una pestaña antes y después del punto.
El motor JS no solo ignorará los espacios, sino también las pestañas.