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