CoffeeScript - Sintaxis
En el capítulo anterior, hemos visto cómo instalar CoffeeScript. En este capítulo, veamos la sintaxis de CoffeeScript.
La sintaxis de CoffeeScript es más elegante en comparación con la sintaxis de JavaScript. Evita las características problemáticas como llaves, punto y coma y desaceleraciones variables.
Declaraciones de CoffeeScript
A diferencia de muchos otros lenguajes de programación como C, C ++ y Java, las declaraciones en CoffeeScript no terminan con punto y coma (;). En lugar de eso, el compilador CoffeeScript considera cada nueva línea como una declaración separada.
Ejemplo
Aquí hay un ejemplo de una declaración CoffeeScript.
name = "Javed"
age = 26
De la misma manera, podemos escribir dos declaraciones en una sola línea separándolas con punto y coma como se muestra a continuación.
name = "Javed";age = 26
Variables de CoffeeScript (sin palabra clave var)
En JavaScript, declaramos una variable usando el var palabra clave antes de crearla, como se muestra a continuación.
var name = "Javed"
var age = 20
Al crear variables en CoffeeScript, no es necesario declararlas usando el varpalabra clave. Podemos crear directamente una variable simplemente asignándole un valor como se muestra a continuación.
name = "Javed"
age = 20
Sin paréntesis
En general, usamos paréntesis al declarar la función, llamarla y también para separar los bloques de código para evitar ambigüedades. En CoffeeScript, no es necesario usar paréntesis y, al crear funciones, usamos una marca de flecha (->) en lugar de paréntesis como se muestra a continuación.
myfunction = -> alert "Hello"
Aún así, tenemos que usar paréntesis en ciertos escenarios. Al llamar a funciones sin parámetros, usaremos paréntesis. Por ejemplo, si tenemos una función llamada my_function en CoffeeScript, entonces tenemos que llamarla como se muestra a continuación.
my_function()
De la misma forma, también podemos separar el código ambiguo mediante paréntesis. Si observas el siguiente ejemplo, sin llaves el resultado es 2233 y con llaves será 45.
alert "The result is "+(22+33)
Sin tirantes rizados
En JavaScript, para los códigos de bloque como funciones, bucles y declaraciones condicionales, usamos llaves. En CoffeeScript, no es necesario utilizar llaves. En cambio, tenemos que mantener las sangrías adecuadas (espacios en blanco) dentro del cuerpo. Esta es la característica que se inspira en el lenguaje Python.
A continuación se muestra un ejemplo de una función en CoffeeScript. Aquí puede observar que en lugar de llaves, hemos utilizado tres espacios en blanco como sangría para separar el cuerpo de la función.
myfunction = ->
name = "John"
alert "Hello"+name
Comentarios de CoffeeScript
En cualquier lenguaje de programación, usamos comentarios para escribir una descripción sobre el código que hemos escrito. Estos comentarios no se consideran parte de los programas. Los comentarios en CoffeeScript son similares a los comentarios del lenguaje Ruby. CoffeeScript proporciona dos tipos de comentarios de la siguiente manera:
Comentarios de una sola línea
Siempre que queramos comentar una sola línea en CoffeeScript, solo necesitamos colocar una etiqueta hash antes como se muestra a continuación.
# This is the single line comment in CoffeeScript
Cada línea que sigue a una etiqueta hash (#) es considerado como un comentario por el compilador CoffeeScript y compila el resto del código en el archivo dado, excepto los comentarios.
Comentarios multilínea
Siempre que queramos comentar más de una línea en CoffeeScript (varias líneas), podemos hacerlo envolviendo esas líneas dentro de un par de etiquetas hash triples como se muestra a continuación.
###
These are the multi line comments in CoffeeScript
We can write as many number of lines as we want
within the pair of triple hash tags.
###
Palabras clave reservadas de CoffeeScript
En la siguiente tabla se proporciona una lista de todas las palabras reservadas en CoffeeScript. No se pueden utilizar como variables, funciones, métodos, etiquetas de bucle de CoffeeScript ni nombres de objeto.
caso defecto función var vacío con constante dejar enumeración exportar importar nativo __hasProp __ se extiende __rebanada __enlazar __índice de implementos |
más interfaz paquete privado protegido público estático rendimiento cierto falso nulo esta nuevo Eliminar tipo de en argumentos eval |
en vez de regreso lanzar descanso Seguir depurador Si más cambiar para mientras hacer tratar captura finalmente clase extiende súper |
indefinido luego a no ser que hasta lazo de por cuando y o es no es no si No en apagado |