Fundamentos Javascript
Enviado por carhloss • 8 de Septiembre de 2020 • Apuntes • 4.706 Palabras (19 Páginas) • 86 Visitas
Javascript
Aspectos
- JavaScript es un lenguaje interpretado. Es decir, hay otro programa llamado intérprete que se encarga de leer línea por línea el código en tiempo de ejecución.
Si hay algún error, no se sabrá hasta que el intérprete llegue a la línea que lo contiene. Es decir, se ejecuta el programa y solo se da cuenta del error en el momento en que llegue a este.
- Se diferencia de los lenguajes compilados como Java o C, que requieren otro programa llamado el compilador. Este compilador se encarga de leer el código en tiempo de compilación.
Si hay algún error, el programa no se ejecuta porque antes ya identifica el error.
JavaScript es un lenguaje débilmente y dinámicamente tipado. Esto se llama Duck Typing.
Tipado: Una variable puede, o no, tener un tipo.
Tipado dinámico: De acuerdo a la variable, se asigna un tipo de dato. La variable no conservará un tipo de dato fijo.
Tipado débil: El intérprete no evalúa el tipo de dato hasta que el programa se encuentre en ejecución.
JavaScript es case sensitive, distingue entre mayúsculas y minúsculas.
Variables: Son dinámicas y requerirán cálculos mientras el programa se está ejecutando para reservar espacio en la memoria.
Constantes: Se usan si se está seguro de que el dato no tendrá cambios en todo el programa.
Bibliotecas/Librerías: Código que otros desarrolladores comparten con los demás para ayudar.
Boolean
Código para saber el valor de verdad de cualquier expresión, donde exp es el parámetro:
let booleano = new Boolean(exp);
console.log(booleano.toString());
Valores que darán “false”: undefined, NaN, “”, 0, -0, null, false.
Operadores de comparación: El operador doble igual (‘==’) ignora el tipo de dato. Así, 24 == “24” es true. Sin embargo, el operador triple igual (‘===’) compara también el tipo de dato. Así 24 === “24” es false. Análogamente, 24 !=="24" da true y 24 !==24 false.
Operadores lógicos: && (AND), || (OR), ¡ (NOT).
Condiciones: if (exp booleana) instr;
Ciclos: for (let i = 0; i <= n; i++) {…}
while (cond){...}
do{…} while (cond) // La condición se evalúa después de haber ejecutado cada instrucción.
Tipos especiales de datos, valores y cómo saber el tipo de dato:
- typeof var – Indica el tipo de dato de una variable.
- undefined – Tipo de dato que indica que no se ha declarado la variable o que no se le ha asignado un valor.
- null – Objeto que indica la ausencia de valor. Es un valor asignable, no un tipo de dato, typeof null es “object”.
- null == undefined es true.
- null === undefined es false.
- NaN – Indica que no es un número. Ejemplo: “alabama” + 3 da NaN.
- Infinity – El infinito. Ejemplo: 100/0 = infinity.
Funciones
- Se declara la función:
function cuadrado(n) {return n*n;}
- Se llama la función:
console.log(cuadrado(3));
- Se imprime una función anónima (no se le asigna un nombre):
console.log((function(){})());
- Una vez que una función llega a return, se termina su ejecución, además de generar un resultado.
Scope:
Es una colección de variables, funciones y objetos que están al alcance del desarrollador en algún punto del código.
Todo aquello que está fuera de una función está en el global scope. Si se declara una variable afuera de una función, está dentro del global scope. Es decir, dicha variable estará disponible para cualquier función.
Principio de menor acceso: Se da acceso a ciertas funciones a cierto conjunto de variables, funciones y objetos.
Puede haber muchos local scope, esto de acuerdo a cada función. Si se declara una variable sin usar let, const o var; esta siempre estará en el scope global. Por ello, NO es recomendable declarar así.
[pic 1]
Const, let, var:
Let y const tienen alcance dentro del bloque (iteración o condicional) más próximo. En cambio, var tiene alcance dentro de la función (scope local o global si se declaró afuera de una función) más próxima.
Argumentos: Es lo que se pasa a la función. (Ejemplo: cuadrado(2)). Los argumentos llenan los parámetros y se pueden enviar todos los argumentos que se quieran o no enviarlos. Sin embargo, la función tomará los que sean necesarios.
Parámetros: Es el que se coloca en la definición de la función: function cuadrado (n){n*n;}. Un parámetro no tiene tipo y recibe argumentos de cualquier tipo. Se pueden usar tantos parámetros como sea necesario.
- Se puede usar un valor por defecto: function cuadrado(n=0){return n*n}. En este caso, si no se envía argumento al llamar a cuadrado(n), se toma como 0. En caso de que se envíe un argumento, se toma el valor de dicho argumento.
Se recomienda que el valor por defecto se ponga en la última parte de la función. Así, se asigna el (los) argumento(s) al(los) parámetro(s) que no tenga(n) valor por defecto.
- Existe arguments, que es un arreglo por defecto que se puede usar cuando se pasan muchos argumentos. Por ejemplo:
function sumaTodo() {return arguments[0] + arguments [1];}
console.log(sumaTodo(1,2));
El resultado será 3 aunque no se haya declarado en la función ningún parámetro. El objeti arguments también se puede recorrer para hacer su uso más cómodo.
First-class citizen, funciones anónimas: Objeto que puede ser asignado a una variable, retornado o enviado como un argumento. Esto, en JavaScript se aplica a las funciones, así como las cadenas, los números, los arreglos, etc. Ejemplo en funciones:
function executor (funcion){funcion();}
...