JavaScript comparte similitudes sintácticas con lenguajes como Java, pero posee características propias que todo desarrollador debe conocer. A continuación, se detallan los pilares fundamentales de su sintaxis, manejo de variables, tipos de datos y operadores.
Reglas Sintácticas Básicas
- Sensibilidad a mayúsculas y minúsculas: Los identificadores de variables, funciones y palabras reservadas distinguen estrictamente entre mayúsculas y minúsculas.
- Punto y coma: Su uso al final de cada instrucción es opcional gracias a la inserción automática, aunque se recomienda encarecidamente para mantener la consistencia y evitar errores de parseo.
- Comentarios: Se utilizan
//para comentarios de una sola línea y/* ... */para bloques de varias líneas. - Bloques de código: Las llaves
{}delimitan bloques de instrucciones.
Mecanismos de Salida de Datos
Para mostrar información, el lenguaje ofrece tres métodos principales dependiendo del contexto de ejecución:
<script>
// Muestra un cuadro de diálogo nativo en el navegador
window.alert("Bienvenido al sistema");
// Inyecta contenido directamente en el documento HTML
document.write("<h1>Contenido dinámico</h1>");
// Registra mensajes en la consola de herramientas de desarrollo
console.log("Depuración: Módulo cargado correctamente");
</script>
Declaración y Gestión de Variables
Al ser un lenguaje de tipado dinámico, una misma variable puede almacenar valores de distinta naturaleza durante su ciclo de vida. Históricmaente se usaba var, pero las versiones modernas (ES6 en adelante) introdujeron let y const.
let usuarioActivo = "Carlos";
usuarioActivo = 42; // Válido debido al tipado dinámico
const MAX_INTENTOS = 3; // Constante, no puede ser reasignada
Normas para identificadores:
- Pueden contener letras, dígitos, guiones bajos (
_) y el símbolo de dólar ($). - No pueden iniciar con un número.
- Se recomienda adoptar la convención camelCase.
Diferencias clave entre var, let y const:
var: Tiene alcance de función o global, y permite redeclaraciones, lo que puede causar efectos secundarios inesperados.let: Posee alcance de bloque y prohíbe la redeclaración en el mismo ámbito.const: Similar alet, pero exige inicialización y bloquea la reasignación de la referencia.
Tipos de Datos
Los datos se clasifican en primitivos y de referencia. Los tipos primitivos incluyen:
- Number: Representa enteros, decimales y el valor especial
NaN(Not a Number). - String: Cadenas de texto delimitadas por comillas simples, dobles o backticks.
- Boolean: Valores lógicos
trueofalse. - Null: Ausencia intencional de un valor de objeto.
- Undefined: Valor por defecto de una variable declarada pero no inicializada.
El operador typeof permite inspeccionar el tipo de dato en tiempo de ejecución.
Operadores
El lenguaje soporta los operadores estándar:
- Aritméticos:
+,-,*,/,%,++,--. - De asignación:
=,+=,-=,*=,/=,%=. - Lógicos: AND (
&&), OR (||), NOT (!). - Ternario:
condicion ? valorSiVerdadero : valorSiFalso.
Comparación estricta vs. abstracta:
Es crucial distinguir entre == (igualdad abstracta, realiza coerción de tipos) y === (igualdad estricta, evalúa tipo y valor simultáneamente).
let precio = 50;
console.log(precio == "50"); // true (convierte el string a número)
console.log(precio === "50"); // false (los tipos difieren)
console.log(precio === 50); // true
Coerción y Conversión de Tipos
Transformar cadenas a valores numéricos se logra mediante funciones de parseo. Si la conversión falla, el resultado es NaN.
console.log(parseInt("85")); // 85
console.log(parseInt("85px")); // 85 (ignora los caracteres no numéricos finales)
console.log(parseInt("texto")); // NaN
Reglas de conversión a Boolean:
- Números:
0yNaNse evalúan comofalse; cualquier otro número estrue. - Cadenas: La cadena vacía
""esfalse; el resto estrue. - Nulos e indefinidos: Tanto
nullcomoundefinedse resuelven comofalse.