Appearance
Elementos básicos del código JavaScript
Un programa JavaScript está formado por distintos elementos sintácticos, como expresiones, sentencias, bloques de código y comentarios.
Antes de estudiar las variables, los operadores o las estructuras de control, conviene conocer cómo se organiza el código y qué función desempeña cada uno de estos elementos.
Líneas de código
El código fuente de un programa se escribe habitualmente distribuyendo sus instrucciones en diferentes líneas.
js
const firstName = "Alice";
const age = 25;
console.log(firstName);
console.log(age);Sin embargo, una línea de código es solamente una unidad visual del archivo y no constituye una categoría sintáctica de JavaScript.
Una sentencia puede ocupar varias líneas:
js
const message = "Welcome to the JavaScript course";También es posible escribir varias sentencias en una misma línea:
js
const firstName = "Alice";
const age = 25;Aunque es válido, se recomienda escribir cada sentencia en su propia línea para mejorar la legibilidad.
Expresiones
Una expresión (expression) es cualquier fragmento de código que produce un valor.
Los valores literales son las expresiones más sencillas:
js
25;
("Hello");
true;
null;Un identificador que contiene un valor también puede formar una expresión:
js
age;
firstName;
totalPrice;Las operaciones producen nuevos valores y, por tanto, también son expresiones:
js
2 + 3;
price * quantity;
age >= 18;
firstName + " " + lastName;Una llamada a una función es otra clase de expresión, ya que produce un valor, aunque dicho valor pueda ser undefined.
js
Math.random();
Number("25");
console.log("Hello");También son expresiones el acceso a una propiedad y la asignación de un valor:
js
user.name;
numbers[0];
age = 26;Las expresiones pueden combinarse para formar expresiones más complejas:
js
price * quantity + shippingCost;En esta expresión aparecen otras expresiones más pequeñas:
pricequantityprice * quantityshippingCostprice * quantity + shippingCost
Sentencias
Una sentencia (statement), también denominada instrucción, es una unidad completa de código que indica al programa que debe realizar una acción.
js
const age = 25;Esta sentencia declara una constante llamada age y la inicializa con el resultado de la expresión 25.
js
console.log(age + 1);Esta línea contiene distintas expresiones:
age1age + 1console.log(age + 1)
La llamada completa se utiliza como una sentencia. Esta clase de construcción recibe el nombre de sentencia de expresión (expression statement).
Una sentencia puede contener una o varias expresiones:
js
const total = price * quantity;En este caso:
price * quantityes una expresión.const total = price * quantity;es una sentencia de declaración.
Sin embargo, no todas las sentencias contienen expresiones.
js
break;js
continue;Estas sentencias se utilizan para modificar la ejecución de determinadas estructuras de control y se estudiarán posteriormente.
Diferencia entre expresión y sentencia
La diferencia fundamental es la siguiente:
- Una expresión produce un valor.
- Una sentencia indica que debe realizarse una acción.
js
2 + 3;El código anterior es una expresión cuyo valor es 5.
js
const result = 2 + 3;El código completo es una sentencia que declara una constante. Dentro de ella, 2 + 3 es una expresión.
INFO
Algunas construcciones pueden actuar simultáneamente como expresión y como parte principal de una sentencia.
js
console.log("Hello");console.log("Hello") es una expresión de llamada. Al escribirse de manera independiente, forma una sentencia de expresión.
Bloques de código
Un bloque de código agrupa cero o más sentencias entre llaves ({}).
js
{
const firstName = "Alice";
const age = 25;
console.log(firstName);
console.log(age);
}Los bloques aparecen con frecuencia en funciones y estructuras de control:
js
if (age >= 18) {
console.log("Adult");
}En este código:
age >= 18es una expresión.console.log("Adult");es una sentencia.- El código delimitado por
{y}es un bloque. - La construcción completa es una sentencia
if.
Los bloques permiten organizar las instrucciones y delimitar el ámbito de determinadas variables, como se estudiará posteriormente.
Comentarios
Los comentarios permiten incluir explicaciones dentro del código fuente. El motor de JavaScript los ignora durante la ejecución.
Comentarios de una línea
Los comentarios de una línea comienzan con dos barras (//).
js
// Calculate the final price
const totalPrice = price * quantity;También pueden escribirse al final de una sentencia:
js
const taxRate = 0.21; // VAT rateComentarios de varias líneas
Los comentarios de varias líneas comienzan con /* y terminan con */.
js
/*
Calculate the final price by applying
the corresponding tax rate.
*/
const finalPrice = price * (1 + taxRate);BUENAS PRÁCTICAS
- Utiliza los comentarios para explicar decisiones, restricciones o aspectos que no resulten evidentes.
- Evita comentarios que se limiten a repetir literalmente lo que ya expresa el código.
- Mantén los comentarios actualizados cuando modifiques el programa.
- Escribe código suficientemente claro para que no necesite comentarios innecesarios.
js
// Increase age by one
age++;El comentario anterior no aporta información relevante, ya que repite lo que hace la instrucción.
js
// The minimum age is established by the service terms
const minimumAge = 18;En este caso, el comentario explica el motivo de la decisión.
El punto y coma
El punto y coma (;) se utiliza para indicar el final de determinadas sentencias.
js
const firstName = "Alice";
const age = 25;
console.log(firstName);
console.log(age);JavaScript incorpora un mecanismo denominado inserción automática de punto y coma (Automatic Semicolon Insertion o ASI), que añade puntos y coma en determinados lugares cuando se han omitido.
Por este motivo, el siguiente código suele funcionar:
js
const firstName = "Alice";
const age = 25;
console.log(firstName);
console.log(age);Sin embargo, el punto y coma no es completamente opcional. Su ausencia puede provocar que JavaScript interprete dos líneas consecutivas como una única sentencia.
js
const message = "Hello"[(1, 2, 3)].forEach((number) => {
console.log(number);
});JavaScript puede interpretar el comienzo de la segunda línea como una continuación de la expresión anterior:
js
const message = "Hello"[(1, 2, 3)].forEach((number) => {
console.log(number);
});Esto produce un comportamiento distinto del esperado.
El problema se evita terminando la primera sentencia con un punto y coma:
js
const message = "Hello";
[1, 2, 3].forEach((number) => {
console.log(number);
});BUENAS PRÁCTICAS
Utiliza puntos y coma de forma coherente al final de las sentencias que los admiten.
Esta convención evita determinadas ambigüedades y facilita que todas las personas que participan en un proyecto utilicen el mismo estilo.
Herramientas de formato como Prettier pueden añadirlos automáticamente.
Espacios en blanco
JavaScript ignora generalmente los espacios, las tabulaciones y los saltos de línea que aparecen entre los distintos elementos del código.
Las siguientes sentencias son equivalentes:
js
const age = 25;js
const age = 25;No obstante, los espacios no pueden insertarse dentro de un identificador, una palabra reservada o determinados operadores.
js
const firstName = "Alice";El siguiente código no es válido porque firstName se ha dividido en dos identificadores:
js
const first Name = "Alice";Aunque muchos espacios sean ignorados por el motor de JavaScript, deben utilizarse de manera coherente para facilitar la lectura del programa.
js
const totalPrice = price * quantity;Resulta menos legible escribir:
js
const totalPrice=price*quantity;Indentación
La indentación consiste en añadir espacios al comienzo de las líneas para representar visualmente la estructura del código.
js
if (age >= 18) {
console.log("Adult");
console.log("Access granted");
}Sin indentación, la relación entre el bloque y sus sentencias resulta menos evidente:
js
if (age >= 18) {
console.log("Adult");
console.log("Access granted");
}La indentación no suele modificar el comportamiento del programa, pero resulta fundamental para comprender su estructura.
BUENAS PRÁCTICAS
- Indenta todas las sentencias que se encuentren dentro de un bloque.
- Utiliza siempre el mismo número de espacios para cada nivel de indentación.
- Evita mezclar espacios y tabulaciones.
- Utiliza una herramienta de formato automático, como Prettier, para mantener un estilo uniforme.
Uso de mayúsculas y minúsculas
JavaScript distingue entre letras mayúsculas y minúsculas. Esta característica se denomina sensibilidad a mayúsculas y minúsculas (case sensitivity).
js
const age = 25;
console.log(age); // 25
console.log(Age); // ReferenceErrorLos identificadores age, Age y AGE son diferentes:
js
const age = 25;
const Age = 30;
const AGE = 35;
console.log(age); // 25
console.log(Age); // 30
console.log(AGE); // 35También deben respetarse las mayúsculas y minúsculas de las palabras y propiedades proporcionadas por JavaScript.
js
console.log("Hello");El siguiente código no funciona porque Console no es el mismo identificador que console:
js
Console.log("Hello"); // ReferenceErrorResumen
Los principales elementos básicos del código JavaScript son:
- Una línea de código es una división visual del archivo, pero no necesariamente una sentencia completa.
- Una expresión es un fragmento de código que produce un valor.
- Una sentencia es una unidad completa que indica la realización de una acción.
- Muchas sentencias contienen expresiones, aunque no todas.
- Un bloque agrupa sentencias entre llaves.
- Los comentarios permiten documentar el código y no se ejecutan.
- El punto y coma indica el final de determinadas sentencias y evita posibles ambigüedades.
- Los espacios en blanco y la indentación mejoran la legibilidad.
- JavaScript distingue entre letras mayúsculas y minúsculas.