variables javascript
variables javascript
Const se usa para crear una constate, es decir una variable inmutable.
Variables
Ambito: mientras que la palabra clave let crea una variable cuyo ámbito está ligado al
bloque en que se declara, var crea una variable con ámbito de función.
Volver declarar una variable: non es posible usar let en el mismo ámbito, provocaría un
error de referencia en la consola. Con la palabra clave var, en cambio, tenemos más
flexibilidad y es posible volver declarar variables sin problemas.
Hoisting: las variables Let no se pueden usar antes de la linea en la que se declaran,
mientras que las variables var se inicializan desde el inicio del bloque en el que aparecen
Propiedades globales: si las variables var se usan más allá de una función, se crea una
variable global accesible a través del objecto window, lo que no ocurre, por ejemplo, con
la variable let.
Ejecución javascript en navegador
Los navegadores interpretan el código Javascript que se encuentra dentro
de una etiqueta script.
La etiqueta script se puede colocar tanto en la
cabecera del documento <head> como
dentro de <body>. Normalmente, se coloca en la
cabecera si es código para cargar
librerías o código que define funciones y objetos
globales que no interacciona con
el documento.
El atributo crossorigin permite establecer atributos relacionado con CORS (tema del
que hablaremos más adelante). CORS (Cross-Origin Resource Sharing, Compartición de
recursos de origen cruzado) es una técnica que permite añadir atributos a las peticiones
http que, a veces, se necesitan para poder acceder a recursos de servidores remotos. El
atributo crossorigin de la etiqueta script, permite configurar algunos de esos parámetros
Actualmente, la librería de JavaScript más utilizada es jQuery que, hace un tiempo, tuvo
el problema de que su código fue modificado con malas intenciones en sus propios
servidores de Internet
Diferencia entre lenguajes compilados e interpretados.
Un lenguaje compilado se convierte a código máquina, analizando todas las líneas del mismo
antes de empezar a convertir en binario el código. De esta forma, se consigue un código más
eficiente. Si hay un error, por ejemplo, en la línea de código número 200, en el proceso de
compilación se nos indicará el error de esa línea y no veremos el resultado que producen las
primeras 199 líneas
En los lenguajes interpretados se realiza la conversión a código máquina línea a línea.
Usando el mismo ejemplo, si tenemos un error en la línea 200 veríamos con normalidad el
resultado de las primeras 199 líneas. Sería al intentar interpretar la línea 200 cuando se
notificaría el error.
A estos tres tipos hay que añadir el tipo complejo Objeto y los valores indefinido y nulo.
Existe un operador llamado typeof que permite conocer el tipo JavaScript de un valor concreto
●
El operador typeof valora la expresión que escribamos a su derecha. Si es compleja, se
debe indicar entre paréntesis para asegurar que se evalúa el conjunto completo
●
Todos los números tienen el mismo tipo (number) sin importar si son decimales o no
●
Los textos se entrecomillan. Cualquier expresión entrecomillada se entiende que es un texto
(string).
●
El tipo undefined se emplea cuando JavaScript no puede evaluar una expresión. La
expresión typeof hola provoca un resultado indefinido porque se busca la variable hola y,
como no existe, se decide que es una expresión indefinida.
Tipos de datos primitivos.
Javascript usa sólo un tipo de datos para los números sin importar si se trata de números
Enteros o decimales (usa el punto como separador decimal)
Podemos usar la notación científica para expresar números muy grandes o muy pequeños
const
AVOGADRO=6.022e+23;
Podemos usar números expresados en forma hexadecimal(Ox),octal(0o) y binario(0b).
var x=1/0;
console.log(x);
Tipos de datos primitivos.
Si ejecutamos el siguiente código :
var x="Hola" * 3;
console.log(x);
Lo lógico sería pensar que la primera línea provoca un error de ejecución de código, al intentar
operar de forma numérica con un texto. Pero no es así. Lo que resulta de ese código es que,
por pantalla, aparezca el texto NaN
NaN es el acrónimo de Not a Number (No es un Número), que se provoca cuando una
expresión intenta operar de forma numérica un valor que no es un número
Desde su primera versión, JavaScript permite delimitar textos con comillas dobles o simples.
Así, estas expresiones son equivalentes
texto="Hola a todo el
mundo";
texto='Hola a todo el mundo';
frase=”Mi apellido es O’Donnell”;
frase2= José se acercó y dijo
"Hola" ;
Desde la versión 6 se permiten también las comillas invertidas ( backticks en inglés):
texto= `Hola a todo el mundo`;
Si queremos escribir una línea mezclando texto y variables podemos usar el operador
de concatenación +
var nombre="Jorge";
consolé.log("Me llamo " + nombre);
Cadenas
Plantillas de cadena.
Las plantillas de cadena (String templates)son los textos delimitados con comillas invertidas.
La cuestión es que se admite incluir el signo $ dentro del texto delimitado y después, entre
llaves, indicar una expresión JavaScript. El texto dentro de las llaves no se tomará como texto
literal, se interpretará literalmente como si estuviera fuera de las comillas. Ejemplo:
var nombre="Jorge";
console.log('Me llamo ${nombre} )
La conversión implícita ocurre cuando JavaScript convierte un valor a otro tipo de dato automáticamente en
función del contexto en el que se usa.
Operación Aritmética
JavaScript convierte las cadenas en números cuando realiza operaciones aritméticas.
Operación de Concatenación
En la concatenación de cadenas y otros tipos, JavaScript convierte los valores a cadenas.
let saludo = 'El número es ' + 7; // 7 se convierte en la cadena '7'
console.log(saludo); // Imprime: El número es 7
Este da lugar a muchos errores poco intuitivos, porque + es tanto operador aritmético como comparación
Conversión implicita.
Operación de comparación
Las comparaciones de igualdad (==) también pueden involucrar coerción implícita.
Operadores Lógicos
Los operadores lógicos (&&, ||) pueden realizar coerción implícita para convertir valores a booleanos.
En JavaScript, los tipos primitivos incluyen string, number, boolean, null, undefined, y symbol. Cada uno de
estos tipos tiene reglas específicas para la coerción.
Reglas de conversión.
Conversión a Number
Las cadenas de texto que contienen números se convierten en esos números
Mientras que cadenas no numéricas resultan en NaN
true se convierte a 1
false y null a 0
undefined a NaN
Conversión a String
Todos los tipos pueden convertirse a una representación textual usando su valor (por
ejemplo, true se convierte a "true", y null a "null")
Conversión a Boolean
Los valores “falsos” (0, false, null, undefined, NaN o una cadena vacía "") se convierten a false
Mientras que todo lo demás es true.