varias sentencia que programacion else ejemplos condiciones javascript semicolon

javascript - que - ¿Por qué los puntos y coma no se utilizan después de las sentencias if/else?



sentencia if ejemplos (3)

La respuesta real es porque muchos idiomas modernos copiaron su sintaxis de C, que tiene esta propiedad. JavaScript es uno de estos idiomas.

C permite bloques de instrucciones

{ ... }

(que no necesita punto y coma) para ser usado donde se pueden usar las declaraciones. Por lo tanto, puede usar bloques de instrucciones como cláusulas then y else, sin los puntos y coma.

Si coloca una sola declaración en la cláusula then o else, deberá terminarla con un punto y coma. Nuevamente, al igual que en C, con el JavaScript adicional, tuerce eso; es opcional al final de una línea, si insertarlo no causaría un error de sintaxis.

Entiendo que es una buena sintaxis usar puntos y coma después de todas las declaraciones en Javascript, pero ¿alguien sabe por qué si las declaraciones / else no las requieren después de las llaves?


Porque las llaves son en sí mismas caracteres de terminación.

Los tokens que encierran un bloque de instrucción compuesto y están terminados intrínsecamente. Es como poner un punto al final de una oración, le indica al analizador que el pensamiento está completo.

Si bien es completamente feo, es válido envolver cada declaración en {} y omitir la;


  • El punto y coma se usa para finalizar UNA sentencia
  • { y } comienzan y cierran un grupo de declaraciones

Básicamente, un if-else debe ir seguido de una declaración o un grupo de declaraciones.

if-else seguido de una declaración:

if (condition) statement; if (condition); // followed by a statement (an empty statement)

if-else seguido de un grupo de declaraciones:

if (condition) { statement; statement; } if (condition) { // followed by a group of statements of zero length }

if-else debe terminar con un ; si es seguido por una sola declaración. if-else no termina con un ; cuando es seguido por un grupo de declaraciones porque ; se utiliza para finalizar una sola instrucción y no se utiliza para finalizar un grupo de declaraciones.