2010-10-23 15 views

Respuesta

66

El concepto es conocido como Punto y coma JavaScript inserción o "Punto y coma automática de inserción". Esta entrada de blog: JavaScript Semicolon Insertion: Everything you need to know esboza el concepto bien de una manera comprensible usando ejemplos en los epígrafes:

  • donde se permiten comas
  • Cuando comas puede omitirse
  • Las reglas

Incluso profundiza en el official ECMAScript specification sobre el tema.

+0

Como regla general, los saltos de línea pueden reemplazar a los puntos y comas con algunas excepciones intuitivas: (1) sentencias vacías: 'while (true);', (2) dentro de la sintaxis de for '' (;;) 'y (3) cuando reemplazar rompería el código, por ejemplo: 'a = b \ n + c' o' $ http (...) \ n .success (...) 'sería un código inválido si el \ n fuera reemplazado, entonces simplemente no lo es. – VinGarcia

+0

Ops, me perdí 2 casos de esquina raros pero importantes que no se analizarán como se esperaba sin punto y coma: 'a = b \ n (función (...) {...})() 'analizaría como si \ n no existiera, y' a = b \ n [1,2,3] .forEach (...) 'también analizaría como si fuera una sola expresión. Entonces, en estos casos, sería necesario un punto y coma. – VinGarcia

2

Si no está arrojando errores de compilación, debería estar bien. Sin embargo, es mejor que recuerde usarlos todo el tiempo, ya que algunos idiomas en los que podría acceder, como object-c, son inflexibles sobre su uso.

+7

recordar una regla de sintaxis en un idioma no tiene ningún beneficio para otros idiomas. – SingleNegationElimination

+5

Pero la regla de un punto y coma es tan universal que, en general, recordarla tiene muchos beneficios. –

13

Javascript hace algo llamado "inserción de punto y coma", lo que significa que realmente puede escribir código que omite el punto y coma en ciertos lugares, y básicamente se agregarán cuando se analice el código.

Las reglas cuando esto sucede un poco complejo. Por simplicidad, muchos desarrolladores simplemente simulan que la inserción de punto y coma no existe.

+34

A veces fantaseo con un mundo donde la inserción de punto y coma no existe. – JAL

+1

Hubo un hilo interesante recientemente en la lista de correo node.js que vale la pena leer: http://groups.google.com/group/nodejs/browse_thread/thread/3166a2bd54e2acf6?pli=1. Mira el estilo de codificación de Isaac Schlueter; es una forma interesante de aprovechar ASI - no es necesariamente algo malo :) – ShZ

+0

El documento de estilo de código de Isaac Schlueter se ha mudado: https://github.com/isaacs/npm/blob/master/doc/misc/npm- coding-style.md – Pylinux

3

Los puntos y coma no son necesarios para la programación de JavaScript, sin embargo, le aconsejo que lo use. Hace que tu código sea más legible y en realidad es una buena práctica, y casi todos los lenguajes de programación geniales lo usan.

Tome una posición y úsela, ¡depende de usted ahora!

+7

No es cierto que no se requiera el punto y coma. De la especificación: 'Ciertas declaraciones ECMAScript ** deben ** terminarse ** con punto y coma. Http://bclary.com/2004/11/07/#a-7.9 –

+0

sí, tienes razón, aclaro gracias a la inserción automática que hay En muchos casos tienes derecho a evitarlo pero (un gran PERO) como dije antes no creo que sea una buena práctica hacerlo – Necronet

+2

En Scala y Groovy (y Python) no necesitas punto y coma, y ​​es más idiomático no usalos, usalos a ellos. ¿Cuáles son los idiomas "geniales" de los que habla que necesitan punto y coma? – Pylinux

4

Usted puede escribir javascript sin semiconon, sólo es necesario para insertarlos si se inicia una línea con un parantesis (o un soporte [

La función sugarjs veces() es un buen ejemplo:.

<script> 
    var somthing = 1 + 3 
    ;(5).times(function(n){ 
     console.log(n + " line") //prints "X line" 5 times 
    }) 
</script> 

en este artículo se echa por tierra la mayor parte de los mitos surounding javascript y puntos y comas: link

+1

tampoco necesita utilizar etiquetas de cierre html, los navegadores las cerrarán automáticamente –

+4

Personalmente estoy en desacuerdo sobre el cierre de las etiquetas html por dos razones: 1. Son requeridas por el [XHTML] (http: //codex.wordpress .org/HTML_to_XHTML # All_tags_must_be_closed.2C_even_single_tags) estándar. (Los puntos y coma es opcional en el estándar [ECMA] (http://www.ecma-international.org/ecma-262/5.1/#sec-7.9)) 2. Dan estructura a su código, dicen algo acerca de dónde las etiquetas terminan (En el punto y coma de JavaScript dice que el final de la línea fluye inmediatamente por una nueva línea que dice lo mismo) No quiero sonar duro, si usted y su equipo escriben sin cerrar las etiquetas, entonces Godsspeed :-) – Pylinux

+2

@DavidFregoli los navegadores se equivocarán la mayor parte del tiempo –

1

Decir que la escritura de código con punto y coma hace que sea más readab el es absurdo Hace que su código sea más CLUTTERED. Mira el código en esta página sin los puntos y comas y dime que es menos legible. Es más legible, menos desordenado, más limpio y más elegante. Los puntos y coma son feos e innecesarios. Ver este artículo: http://mislav.uniqpath.com/2010/05/semicolons/

+1

No puedo estar más en desacuerdo. He visto código con algunos bloques entonces/else y sin punto y coma, y ​​no puedo confiar en ello ... como un baile de sable en un piso recién encerado, que solía reservarse como una broma sobre el lenguaje C. – Kim

Cuestiones relacionadas