Clase 2 - Test de JavaScript
¿Qué es una variable y para qué sirve?
En programación una variable es una dirección de memoria en la que se puede almacenar un valor o tipo de dato.
¿Cuál es la diferencia entre declarar e inicializar una variable?
Declarar una variable es cuando se crea la variable con su nombre. Ej:
let miVariable
.
La inicialización es cuando a la variable se le asigna un valor. Ej:
miVariable = 2022
.
Su principal diferencia esta en que una variable se puede declarar sin ser inicializada, pero, en algunos lenguajes, una variable no se puede inicializar sin ser declarada previamente. Ej:
"use strict"
// Declarar sin inicializar la variable:
let miVariable;
// Declarar e inicializar la variable:
let miVariable2 = "Valor inicial";
// Inicializar la variable sin Declararla:
variableSiDeclarar = "Esto puede dar error";
//>> Uncaught ReferenceError: variableSiDeclarar is not defined.
¿Cuál es la diferencia entre sumar números y concatenar strings?
La diferencia es que sumar es una operación aritmetica en la que al sumar dos valores numericos se optiene un total de dicho sumandos. Ej: 2 + 2 = 4
o 3 + 0.5 = 3.5
.
En cambio la concatenación es una función de los strings en la que no se suman los valores, sino que se unen. Ej: "2" + "2" = "22"
o "3" + "0.5" = "30.5"
.
¿Cuál operador me permite sumar o concatenar?
El operador que nos permite concatenar en JS es el +
. Ej:
"String 1" + " " + "String 2"
⇒ "String 1 String 2"
Pero en JS existen otras formas como la función .concat()
:
let text1 = "Hello";
let text2 = "world!";
let result = text1.concat(" ", text2);
// >> "Hello world!"
O mediante Literal Strings:
let text1 = "Hello";
let text2 = "world!";
let result = `${text1} ${text2}`;
// >> "Hello world!"
Dato | Nombre | Tipo de Dato |
---|---|---|
Nombre | userName | String |
Apellido | userLastName | String |
Nombre de usuario en Platzi | userPlatziName | String |
Edad | age | Number Integer |
Correo electrónico | String | |
Mayor de edad | isOlder | Boolean |
Dinero ahorrado | savedMoney | Number Float |
Deudas | debts | Number Float |
let userName = "Gabriel",
userLastName = "Gramajo",
userPlatziName = "Gabriel Gramajo",
age = 20,
email = "[email protected]",
isOlder = true,
savedMoney = 20000.43,
debts = 1500.56;
let fullName = `${userName} ${userLastName}`;
console.log(fullName);
//>> Gabriel Gramajo
let totalMoney = savedMoney - debts;
console.log(totalMoney);
//>> 18499.87
¿Qué es una función?
Una función es un bloque de código que realiza una tarea específica. Opcionalmente puede tener parámetros de entrada que al ser invocadas reciban argumentos. Una función también recibe un valor de entrada y puede devolver un valor como salida.
¿Cuándo me sirve usar una función en mi código?
Una función es útil cuando se requiere realizar una tarea específica varias veces en el código, lo cual nos permite reutilizar el código de la función cada vez que necesitemos realizar dicha tarea.
¿Cuál es la diferencia entre parámetros y argumentos de una función?
Al crear una función los parámetros son las variables que se crean al definirla y que se utilizarań para realizar el procedimiento. En cambio los argumentos son los valores que se envian al invocar la función y son los valores que tomarán los parametros.
function sumar(a, b) { // a y b son los parámetros.
return a + b;
}
// 5 y 3 son los argumentos.
sumar(5,3);
const name = "Juan David";
const lastname = "Castro Gallego";
const completeName = name + lastname;
const nickname = "juandc";
console.log("Mi nombre es " + completeName + ", pero prefiero que me digas " + nickname + ".");
function quienSoy(name, lastname, nickname) {
const completeName = `${name} ${lastname}`;
return `Mi nombre es ${completeName} pero prefiero que me digas ${nickname}`;
}
console.log( quienSoy("Juan David", "Castro Gallego", "juandc") );
¿Qué es un condicional?
Un condicional es una estructura de control que ejecuta una sentencia u otra dependiendo de la veracidad de una condición.
¿Qué tipos de condicionales existen en JavaScript y cuáles son sus diferencias?
Estructura If, else if, else.
if(condition) {
// sentencia
} else if(condition) {
// sentencia
} else {
// sentencia
}
Estructura Switch.
switch (expresion) {
case choice1:
// ejecuta este código
break;
case choice2:
// ejecuta este código
break;
// Se pueden incluir todos los casos que quieras
default:
// por si acaso, corre este código
}
Operador ternario.
( condición ) ? ejecuta este código : ejecuta este código en su lugar
let isBirthday = true;
let greeting = ( isBirthday )
? 'Happy birthday Mrs. Smith — we hope you have a great day!'
: 'Good morning Mrs. Smith.';
El uso de cada Estructura dependerá del contexto y la solución que se necesite.
El if else y el Operador ternario son útiles cuando se debe ejecutar un código u otro denpendiendo del valor de la condición (True o False). Pero cuando se requiere tomar multiples casos dependiendo de un mismo valor el estructura switch puede resultar más útil.
¿Puedo combinar funciones y condicionales?
Son totalmente compatibles y su combinación es muy normal en el dia a dia de un programador. Ya que muchas veces se necesita evaluar la condición de un valor para ejecutar una función u otra, o crear una funcion con un condicional dentro para que dependiendo de una valor se retorne un valor u otro.
const tipoDeSuscripcion = "Basic";
switch (tipoDeSuscripcion) {
case "Free":
console.log("Solo puedes tomar los cursos gratis");
break;
case "Basic":
console.log("Puedes tomar casi todos los cursos de Platzi durante un mes");
break;
case "Expert":
console.log("Puedes tomar casi todos los cursos de Platzi durante un año");
break;
case "ExpertPlus":
console.log("Tú y alguien más pueden tomar TODOS los cursos de Platzi durante un año");
break;
}
const tipoDeSuscripcion = "Basic";
if(tipoDeSuscripcion == "Basic")
console.log("Puedes tomar casi todos los cursos de Platzi durante un mes");
else if(tipoDeSuscripcion == "Expert")
console.log("Puedes tomar casi todos los cursos de Platzi durante un año");
else if(tipoDeSuscripcion == "ExpertPlus")
console.log("Tú y alguien más pueden tomar TODOS los cursos de Platzi durante un año");
else
console.log("Solo puedes tomar los cursos gratis");
const tipoDeSuscripcion = "Basic";
if(tipoDeSuscripcion == "Free")
console.log("Solo puedes tomar los cursos gratis");
if(tipoDeSuscripcion == "Basic")
console.log("Puedes tomar casi todos los cursos de Platzi durante un mes");
if(tipoDeSuscripcion == "Expert")
console.log("Puedes tomar casi todos los cursos de Platzi durante un año");
if(tipoDeSuscripcion == "ExpertPlus")
console.log("Tú y alguien más pueden tomar TODOS los cursos de Platzi durante un año");
💡 Bonus: si ya eres una experta o experto en el lenguaje, te desafío a comentar cómo replicar este comportamiento con arrays u objetos y un solo condicional. 😏
const tipoDeSuscripcion = "Basic";
const platziSuscriptciones = {
"Free": "Solo puedes tomar los cursos gratis",
"Basic": "Puedes tomar casi todos los cursos de Platzi durante un mes",
"Expert": "Puedes tomar casi todos los cursos de Platzi durante un año",
"ExpertPlus": "Tú y alguien más pueden tomar TODOS los cursos de Platzi durante un año",
}
if( Object.keys(platziSuscriptciones).includes(tipoDeSuscripcion) )
console.log(platziSuscriptciones[tipoDeSuscripcion]);
¿Qué es un ciclo?
Un bucle o ciclo, en programación, es una secuencia de instrucciones de código que se ejecuta repetidas veces, hasta que la condición asignada a dicho bucle deja de cumplirse.
¿Qué tipos de ciclos existen en JavaScript?
Ciclos básicos que existen en JS:
¿Qué es un ciclo infinito y por qué es un problema?
Un ciclo infinito sucede cuando no se indicó bien la condición que rompiera el bucle y el problema de esto es que consume muchos recursos computacionales y hace que nuestra computadora comience a relentizarce o incluso tildarse teniendo que reiniciar el equipo.
¿Puedo mezclar ciclos y condicionales?
Es totalmente común combinar estas dos estructuras en el dia a dia para solucionar problemas con código.
for (let i = 0; i < 5; i++) {
console.log("El valor de i es: " + i);
}
for (let i = 10; i >= 2; i--) {
console.log("El valor de i es: " + i);
}
// 1
let i = 0;
while(i < 5) {
console.log("El valor de i es: " + i);
i++;
}
// 2
let i = 10;
while(i >= 2) {
console.log("El valor de i es: " + i);
i--;
}
2 + 2
. Si responden bien, mostramos un mensaje de felicitaciones, pero si responden mal, volvemos a empezar.💡 Pista: puedes usar la función prompt de JavaScript.
while(true) {
respuesta = prompt('Veamos cuanta matemática sabes. ¿ Cuanto es 2 + 2 ?');
if(Number(respuesta) == 4){
alert("Excelente!!! Vas por buen camino! Nunca pares de aprender.");
break;
}
alert("ups! respuesta incorrecta. Ánimo, inténtalo de nuevo <3.");
}
¿Qué es un array?
Un array es una collección de datos donde se almacena consecutivamente valores del mismo tipo de dato, o relacionados, en el que luego puedes acceder a sus valores mediante sus indices comenzando desde el indice 0 hasta la longitúd del array -1.
¿Qué es un objeto?
Un objeto es una unidad dentro de un programa informático que tiene un estado, y un comportamiento. Es decir, tiene una serie de datos almacenados y tareas que realiza con esos datos en el tiempo de ejecución.
¿Cuándo es mejor usar objetos o arrays?
Los arrays son útiles cuando se necesita agrupar varios datos relacionados en un mismo grupo. Mientras que los objetos son útiles para agrupar las propiedades, métodos y estados de un mismo ente.
Por ejemplo: usariamos la estructura de un objeto para representar un auto con su marca, modelo, características, funciones, etc… y Un array lo utilizariamos para agrupar todos los autos de diferentes marcas y similares, teniendo así un array de objetos de tipo Auto.
¿Puedo mezclar arrays con objetos o incluso objetos con arrays?
Si, es totalmente normal mezclar ambas estructuras para dar soluciones diferentes problemas del dia a dia. Es muy común trabajar con arrays con objetos, por ejemplo un array con todos los empleados de una empresa descargada de una base de datos, u objetos con arrays dentro, por ejemplo crear una objeto Manzana
y una propiedad color
que contenga un array con los diferentes colores que puede tener [”Verde”, “Roja”, etc…]
.