2010-07-16 13 views
8

He visto un punto y coma triple en algunas expresiones aquí y allá.
¿Tiene algún efecto lógico?¿Qué significa tres puntos y comas en una expresión javascript?

Lo más parecido que he visto para una explicación es que le dice al compresor Dean Edwards que ignore esa línea.

;;; var someVar = 'Rebel'; 
+0

Por favor, publique algunos ejemplos. Podría tener diferentes significados en diferentes contextos. – FrustratedWithFormsDesigner

+0

¿Muestra de código? No creo que sea una convención o sintaxis especial con la que me haya encontrado alguna vez. –

+0

¿Podría publicar un ejemplo? Si no me equivoco, ';;;' es equivalente a ';', ya que una declaración vacía no hace nada. Supongo que alguien estaba usando ';;;' para separar el código o algo así. Además, asegúrese de que el código que está leyendo sea en realidad JavaScript :-) –

Respuesta

11

Las líneas que comienzan con tres puntos y coma están ahí para el código de depuración: indica que esas líneas no deberían aparecer en el entorno de producción. El Javascript se ejecuta a través de un compresor u otro algoritmo que elimina las líneas ;;; al crear el archivo JS optimizado.

;;; console.log("only run this line when debugging!"); 

Como se indicó anteriormente, tres puntos y comas en realidad no hacen nada en Javascript: simplemente finaliza tres instrucciones vacías consecutivas. Si se ha utilizado un comentario real

// console.log("only run this line when debugging!"); 

entonces tendría que entrar y eliminar manualmente todos los comentarios cuando se quería entrar en el modo de depuración, y luego ir y poner de nuevo cuando estaba terminado. La otra solución es crear una variable DEBUG y envolver todas las líneas de depuración en una condición:

var DEBUG = true; 
if(DEBUG){ 
    console.log("only run this line when debugging!"); 
} 

pero esto es un poco complicado y realmente añade código que no sean necesarios a su documento Javascript. Por supuesto, puede ejecutar el JS a través de un compresor para eliminar las condiciones DEBUG, pero en ese momento también podría usar el método ;;;, que es más simple.

Ver this question para un ejemplo de la vida real de esto. Por cierto, creo que la sintaxis proviene de emacs.

+0

Manera de ser golpeado sobre 1k. –

+3

¿cómo no se vota más? – Joe

+0

parece que 'grunt-contrib-uglify' no eliminará esto. – atian25

18

Nada. Absolutamente nada.

Tres puntos y comas, diez puntos y coma, cien puntos y comas, todos se interpretan con el mismo resultado: nada.

+1

Déjame ser conocido como el tipo que te consiguió más de 10K rep. :) – ChaosPandion

+0

@Chaos, gracias amigo! –

+1

@Gert - También mido el tiempo en nano segundos. :) – ChaosPandion

1

Son declaraciones vacías y no tienen ningún efecto. Es posible que el intérprete o compilador los elimine a menos que la sintaxis requiera una declaración.

25

Hace que las personas hagan preguntas en StackOverflow.

Aparte de eso, no hace nada.

8

Finaliza una declaración vacía 3 veces.

+0

Hmm, creo que solo conocemos dos declaraciones vacías. No sabemos que los tres puntos y comas no siguen una instrucción no vacía. – ghoti

+0

Responda según el código OPs. – Incognito

+0

Mi lectura de la pregunta fue que el código publicado era "lo más cercano [que él] había visto", no necesariamente uno de los ejemplos que ha "visto ... aquí y allá". El código del OP es claro sobre solo dos declaraciones vacías entre los cuatro puntos y comas que se muestran. – ghoti

Cuestiones relacionadas