Introduccion

JavaScript es un lenguaje de secuencias de comandos orientado a objetos y multiplataforma. Es un lenguaje pequeño y ligero. Dentro de un entorno de host (por ejemplo, un navegador web), JavaScript se puede conectar a los objetos de su entorno para proporcionar control programático sobre ellos.

JavaScript contiene una biblioteca estándar de objetos, como Array, Date y Math, y un conjunto básico de elementos de lenguaje, como operadores, estructuras de control y sentencias. Core JavaScript se puede extender para una variedad de propósitos al complementarlo con objetos adicionales, por ejemplo:

  • El JavaScript del lado del cliente amplía el lenguaje principal al proporcionar objetos para controlar un navegador y su Modelo de objetos de documento (DOM). Por ejemplo, las extensiones del lado del cliente permiten que una aplicación coloque elementos en un formulario HTML y responda a eventos del usuario, como clics del mouse, entrada de formulario y navegación de página.
  • JavaScript del lado del servidor amplía el lenguaje central al proporcionar objetos relevantes para ejecutar JavaScript en un servidor. Por ejemplo, las extensiones del lado del servidor permiten que una aplicación se comunique con una base de datos, proporcionen continuidad de información de una invocación a otra de la aplicación o realicen manipulaciones de archivos en un servidor.
Lo que ya debes saber

Esta guía asume que usted tiene los siguientes antecedentes básicos:

  • Una comprensión general de Internet y la World Wide Web (WWW).
  • Buen conocimiento práctico del lenguaje de marcado de hipertexto (HTML).
  • Algo de experiencia en programación. Si eres nuevo en la programación, prueba uno de los tutoriales vinculados en la página principal sobre JavaScript.
JavaScript y Java

JavaScript y Java son similares en algunos aspectos, pero fundamentalmente diferentes en otros. El lenguaje JavaScript se parece a Java, pero no tiene el tipado estático ni la verificación de tipos fuerte de Java. JavaScript sigue la mayoría de las sintaxis de expresiones de Java, las convenciones de nomenclatura y las construcciones básicas de flujo de control, razón por la cual se cambió el nombre de LiveScript a JavaScript.

A diferencia del sistema de clases en tiempo de compilación de Java construido por declaraciones, JavaScript admite un sistema de tiempo de ejecución basado en una pequeña cantidad de tipos de datos que representan valores numéricos, booleanos y de cadena. JavaScript tiene un modelo de objetos basado en prototipos en lugar del modelo de objetos basado en clases más común. El modelo basado en prototipos proporciona una herencia dinámica; es decir, lo que se hereda puede variar para objetos individuales. JavaScript también admite funciones sin ningún requisito declarativo especial. Las funciones pueden ser propiedades de objetos, ejecutándose como métodos vagamente tipificados.

JavaScript es un lenguaje de forma muy libre en comparación con Java. No tiene que declarar todas las variables, clases y métodos. No tiene que preocuparse por si los métodos son públicos, privados o protegidos, y no tiene que implementar interfaces. Las variables, los parámetros y los tipos de devolución de funciones no se escriben explícitamente.

Hola mundo

Para comenzar a escribir JavaScript, abra el Bloc de notas y escriba su primer código JavaScript "Hola mundo":

function saludame(tuNombre) { alert("Hola " + tuNombre); } saludame("Mundo");

Seleccione el código en el pad y presione Ctrl+R para verlo desplegarse en su navegador.

Variables

Utiliza variables como nombres simbólicos para valores en su aplicación. Los nombres de las variables, llamados identificadores, se ajustan a ciertas reglas.

Un identificador de JavaScript debe comenzar con una letra, un guión bajo (_) o un signo de dólar ($); los caracteres subsiguientes también pueden ser dígitos (0-9). Dado que JavaScript distingue entre mayúsculas y minúsculas, las letras incluyen los caracteres de la "A" a la "Z" mayúsculas (uppercase) y los caracteres de la "a" a la "z" minúsculas (lowercase).

Puede usar ISO 8859-1 o letras Unicode como å y ü en los identificadores. También puede usar las secuencias de escape Unicode como caracteres en los identificadores. Algunos ejemplos de nombres legales son Number_hits, temp99 y _name.

Declaración de variables

Puede declarar una variable de tres maneras:

Con la palabra clave var. Por ejemplo,

var x = 42.

Esta sintaxis se puede utilizar para declarar variables locales y globales.

Simplemente asignándole un valor. Por ejemplo,

x = 42.

Esto siempre declara una variable global. Genera una advertencia estricta de JavaScript. No deberías usar esta variante.

Con la palabra clave let. Por ejemplo,

let y = 13.

Esta sintaxis se puede utilizar para declarar una variable local de ámbito de bloque. Consulte el alcance de las variables a continuación.

Alcance de variables

Cuando declara una variable fuera de cualquier función, se llama variable global, porque está disponible para cualquier otro código en el documento actual. Cuando declara una variable dentro de una función, se denomina variable local, porque solo está disponible dentro de esa función.

JavaScript anterior a ECMAScript 2015 no tiene alcance de declaración de bloque; más bien, una variable declarada dentro de un bloque es local a la función (o ámbito global) en el que reside el bloque. Por ejemplo, el siguiente código registrará 5, porque el alcance de x es la función (o contexto global) dentro del cual se declara x, no el bloque, que en este caso es una declaración if.

if (true) { var x = 5; } console.log(x); // 5

Este comportamiento cambia cuando se usa la declaración let introducida en ECMAScript 2015.

if (true) { let y = 5; } console.log(y); // Error de referencia: y no está definido
Variables globales

Las variables globales son, de hecho, propiedades del objeto global. En las páginas web, el objeto global es ventana, por lo que puede establecer y acceder a variables globales utilizando la sintaxis de ventana.variable.

En consecuencia, puede acceder a las variables globales declaradas en una ventana o marco desde otra ventana o marco especificando el nombre de la ventana o marco. Por ejemplo, si en un documento se declara una variable denominada phoneNumber, puede hacer referencia a esta variable desde un iframe como parent.phoneNumber.

Constantes

Puede crear una constante con nombre de solo lectura con la palabra clave const. La sintaxis de un identificador constante es la misma que para un identificador variable: debe comenzar con una letra, un guión bajo o un signo de dólar y puede contener caracteres alfabéticos, numéricos o guiones bajos.

const PI = 3.14;

Una constante no puede cambiar el valor a través de la asignación ni volver a declararse mientras se ejecuta el script. Tiene que ser inicializado a un valor.

Las reglas de ámbito para las constantes son las mismas que para las variables de ámbito de bloque let. Si se omite la palabra clave const, se supone que el identificador representa una variable.

No puede declarar una constante con el mismo nombre que una función o variable en el mismo ámbito. Por ejemplo:

// ESTO CAUSARÁ UN ERROR function f() {}; const f = 5; // ESTO TAMBIÉN CAUSARÁ UN ERROR function f() { const g = 5; var g; //declaraciones }

Sin embargo, los atributos de los objetos no están protegidos, por lo que la siguiente instrucción se ejecuta sin problemas.

const MY_OBJECT = {"key": "value"}; MY_OBJECT.key ="otherValue";
Tipos de datos

El último estándar ECMAScript define siete tipos de datos:

  • Seis tipos de datos que son primitivos:
    • Boolean. true y false.
    • Null. Una palabra clave especial que denota un valor nulo. Debido a que JavaScript distingue entre mayúsculas y minúsculas, null no es lo mismo que Null, NULL o cualquier otra variante.
    • Undefined. Una propiedad de nivel superior cuyo valor no está definido.
    • Number. 42 o 3.14159.
    • String. "Hola"
    • Symbol. (nuevo en ECMAScript 2015). Un tipo de datos cuyas instancias son únicas e inmutables.
  • Y Object

Aunque estos tipos de datos son una cantidad relativamente pequeña, le permiten realizar funciones útiles con sus aplicaciones. Objetos y funciones son los otros elementos fundamentales en el lenguaje. Puede pensar en los objetos como contenedores con nombre para valores y en las funciones como procedimientos que su aplicación puede realizar.

Declaración if...else

Use la declaración if para ejecutar una declaración si una condición lógica es verdadera. Use la cláusula else opcional para ejecutar una declaración si la condición es falsa. Una sentencia if tiene el siguiente aspecto:

if (condición) { declaracion_1; } else { declaracion_2; }

Condición puede ser cualquier expresión que se evalúe como verdadera o falsa. Consulte Boolean para obtener una explicación de lo que se evalúa como verdadero y falso. Si la condición se evalúa como verdadera, se ejecuta la declaración_1; de lo contrario, se ejecuta la declaración_2. declaración_1 y declaración_2 pueden ser cualquier declaración, incluidas otras declaraciones if anidadas.

También puede combinar las declaraciones usando else if para probar varias condiciones en secuencia, de la siguiente manera:

if (condición_1) { declaración_1; } else if (condición_2) { declaración_2; } else if (condición_n) { declaración_n; } else { declaración_last; }

En el caso de varias condiciones, solo se ejecutará la primera condición lógica que se evalúe como verdadera. Para ejecutar varias sentencias, agrúpelas dentro de una sentencia de bloque ({ ... }) . En general, es una buena práctica usar siempre sentencias de bloque, especialmente al anidar sentencias if:

if (condición) { declaración_1_ejecuta_si_condición_es_true; declaración_2_ejecuta_si_condición_es_true; } else { declaración_3_ejecuta_si_condición_es_false; declaración_4_ejecuta_si_condición_es_false; }

Es aconsejable no utilizar asignaciones simples en una expresión condicional, porque la asignación puede confundirse con la igualdad al revisar el código. Por ejemplo, no use el siguiente código:

if (x = y) { /* declaraciones */ }

Si necesita usar una tarea en una expresión condicional, una práctica común es poner paréntesis adicionales alrededor de la tarea. Por ejemplo:

if ((x = y)) { /* declaraciones */ }
Instrucción While

Una instrucción while ejecuta sus instrucciones siempre que una condición específica se evalúe como verdadera. Una instrucción while tiene el siguiente aspecto:

while (condición) declaración

Si la condición se vuelve falsa, la instrucción dentro del bucle deja de ejecutarse y el control pasa a la instrucción que sigue al bucle.

La prueba de condición ocurre antes de que se ejecute la declaración en el bucle. Si la condición devuelve verdadero, la declaración se ejecuta y la condición se prueba nuevamente. Si la condición devuelve falso, la ejecución se detiene y el control se pasa a la instrucción que sigue a while.

Para ejecutar varias declaraciones, use una declaración de bloque ({ ... }) para agrupar esas declaraciones.

Example:

El siguiente bucle while itera siempre que n sea menor que tres:

var n = 0; var x = 0; while (n < 3) { n++; x += n; }

Con cada iteración, el ciclo incrementa n y agrega ese valor a x. Por lo tanto, x y n toman los siguientes valores:

  • Después de la primera pasada: n = 1 y x = 1
  • Después del segundo pase: n = 2 y x = 3
  • Después del tercer pase: n = 3 y x = 6

Después de completar el tercer paso, la condición n < 3 ya no es verdadera, por lo que el ciclo termina.

Declaración de funciones

Una definición de función (también llamada declaración de función) consta de la palabra clave de function, seguida de:

  • El nombre de la función.
  • Una lista de argumentos para la función, entre paréntesis y separados por comas.
  • Las instrucciones de JavaScript que definen la función, encerradas entre corchetes, { }.

Por ejemplo, el siguiente código define una función simple llamada cuadrado:

function cuadrado(numero) { return numero * numero; }

El cuadrado de la función toma un argumento, llamado número. La función consta de una declaración que dice devolver el argumento de la función (es decir, el número) multiplicado por sí mismo. La declaración de retorno especifica el valor devuelto por la función.

return numero * numero;

Los parámetros primitivos (como un número) se pasan a las funciones por valor; el valor se pasa a la función, pero si la función cambia el valor del parámetro, este cambio no se refleja globalmente ni en la función que llama.

Referencia
  • Toda la documentación de esta página está tomada de MDN