Compra acceso a todo Platzi por 1 a帽o

Antes: $249

Currency
$209/a帽o

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscr铆bete

Termina en:

15D
22H
28M
8S
Curso Pr谩ctico de JavaScript

Curso Pr谩ctico de JavaScript

Juan David Castro Gallego

Juan David Castro Gallego

Test de JavaScript

2/29

Lectura

隆Es hora de poner a prueba cu谩nto sabes sobre JavaScript!

Esta lectura es una prueba de JavaScript. A diferencia de un examen, nadie te obligar谩 a nada. Puedes hacer trampa y saltar a la siguiente clase, ese es el camino f谩cil. Pero tengo mucha fe en ti, conf铆o en que seguir谩s mis consejos y no avanzar谩s a la siguiente clase hasta superar esta prueba.

Instrucciones para tomar esta prueba

  • Eval煤a muy cr铆ticamente tu conocimiento.
  • Si logras resolver la prueba, no importa cu谩nto te cueste, puedo asegurarte que tienes todo para continuar a las siguientes clases y tomar el resto del curso.
  • Si no lo logras, no te preocupes, absolutamente nadie puede juzgarte, solo t煤. Vuelve al Curso B谩sico de JavaScript, anota los temas clave donde puedes mejorar, ubica las clases donde puedes aprenderlos y estudia vigorosamente.
  • Es completamente v谩lido hacer b煤squedas en Google, cursos y tutoriales de Platzi, incluso usar tu cuaderno de notas sin importar si es f铆sico o virtual.

Recuerda que el 茅xito no se mide por cu谩nto tiempo te toma aprender, esa m茅trica es relativamente in煤til. Mejor conc茅ntrate en completar los cursos de tu ruta de aprendizaje profesional y desarrollar los proyectos que realmente demuestran que dominas cada tecnolog铆a.

隆Mucha suerte!

Variables y operaciones

1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:

  • 驴Qu茅 es una variable y para qu茅 sirve?
  • 驴Cu谩l es la diferencia entre declarar e inicializar una variable?
  • 驴Cu谩l es la diferencia entre sumar n煤meros y concatenar strings?
  • 驴Cu谩l operador me permite sumar o concatenar?

2锔忊儯 Determina el nombre y tipo de dato para almacenar en variables la siguiente informaci贸n:

  • Nombre
  • Apellido
  • Nombre de usuario en Platzi
  • Edad
  • Correo electr贸nico
  • Mayor de edad
  • Dinero ahorrado
  • Deudas

3锔忊儯 Traduce a c贸digo JavaScript las variables del ejemplo anterior y deja tu c贸digo en los comentarios.

4锔忊儯 Calcula e imprime las siguientes variables a partir de las variables del ejemplo anterior:

  • Nombre completo (nombre y apellido)
  • Dinero real (dinero ahorrado menos deudas)

Funciones

1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:

  • 驴Qu茅 es una funci贸n?
  • 驴Cu谩ndo me sirve usar una funci贸n en mi c贸digo?
  • 驴Cu谩l es la diferencia entre par谩metros y argumentos de una funci贸n?

2锔忊儯 Convierte el siguiente c贸digo en una funci贸n, pero, cambiando cuando sea necesario las variables constantes por par谩metros y argumentos en una funci贸n:

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 + ".");

Condicionales

1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:

  • 驴Qu茅 es un condicional?
  • 驴Qu茅 tipos de condicionales existen en JavaScript y cu谩les son sus diferencias?
  • 驴Puedo combinar funciones y condicionales?

2锔忊儯 Replica el comportamiento del siguiente c贸digo que usa la sentencia switch utilizando if, else y else if:

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;
}

3锔忊儯 Replica el comportamiento de tu condicional anterior con if, else y else if, pero ahora solo con if (sin else ni else if).

馃挕 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. 馃槒

Ciclos

1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:

  • 驴Qu茅 es un ciclo?
  • 驴Qu茅 tipos de ciclos existen en JavaScript?
  • 驴Qu茅 es un ciclo infinito y por qu茅 es un problema?
  • 驴Puedo mezclar ciclos y condicionales?

2锔忊儯 Replica el comportamiento de los siguientes ciclos for utilizando ciclos while:

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);
}

3锔忊儯 Escribe un c贸digo en JavaScript que le pregunte a los usuarios cu谩nto es 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.

Listas

1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:

  • 驴Qu茅 es un array?
  • 驴Qu茅 es un objeto?
  • 驴Cu谩ndo es mejor usar objetos o arrays?
  • 驴Puedo mezclar arrays con objetos o incluso objetos con arrays?

2锔忊儯 Crea una funci贸n que pueda recibir cualquier array como par谩metro e imprima su primer elemento.

3锔忊儯 Crea una funci贸n que pueda recibir cualquier array como par谩metro e imprima todos sus elementos uno por uno (no se vale imprimir el array completo).

4锔忊儯 Crea una funci贸n que pueda recibir cualquier objeto como par谩metro e imprima todos sus elementos uno por uno (no se vale imprimir el objeto completo).

驴C贸mo te fue? 馃弳

隆Felicidades por completar la prueba de JavaScript! Conf铆o en que hayas completado cada paso y hayas pausado para repasar los temas de los ejercicios que se te complicaron.

Ahora s铆, contin煤a a la siguiente clase, pero recuerda que ya no puedes abandonar el curso, debes completarlo hasta el final. No importa cu谩nto tiempo te tome. Yo s茅 que t煤 puedes. Y t煤 deber铆as de saberlo tambi茅n.

隆Te espero en la siguiente clase para comenzar!

Aportes 1459

Preguntas 16

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

o inicia sesi贸n.

Test Javascript Platzi 馃殌

Te invito a mi GitHub 馃

Variables y operaciones

1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:

  • 驴Qu茅 es una variable y para qu茅 sirve?

    Es un espacio reservado en memoria que nos permite almacenar informaci贸n. Podemos almacenar diferentes tipos de datos para usarlos en nuestro c贸digo. En JS existe tres formas de crear una variable var, let, const. en ES6 nacen let & const que son variable de tipo scope y esto quiere decir que dependiendo del scope es su accesibilidad.

  • 驴Cu谩l es la diferencia entre declarar e inicializar una variable?

    Cuando declaramos una variable, simplemente nombramos la variable, sin indicarle que tipo de informaci贸n o dato almacenara. En cambio, cuando inicializamos una variable indicamos el tipo de dato e informaci贸n que va a almacenar.

    Ejemplo:

    //Declarar una variable
    let nombre;
    //Inicializar la variable 
    nombre = "Camilo"; 
    //Podemos generar este proceso en una sola linea de codigo. 
    let nombre = "Camilo";
    
  • 驴Cu谩l es la diferencia entre sumar n煤meros y concatenar strings?

    Al momento sumar n煤meros estamos realizando una operaci贸n matem谩tica con dos tipos de datos (Numbers) mientras que al concatenar estamos sumando dos tipos de datos (String) que son cadena de textos.

  • 驴Cu谩l operador me permite sumar o concatenar?

    El operador utilizado es el signo +

2锔忊儯 Determina el nombre y tipo de dato para almacenar en variables la siguiente informaci贸n:

  • Nombre 鈥淪tring鈥
  • Apellido 鈥淪tring鈥
  • Nombre de usuario en Platzi 鈥淪tring鈥
  • Edad 鈥淣umber鈥
  • Correo electr贸nico 鈥淪tring鈥
  • Mayor de edad 鈥淏oolean鈥
  • Dinero ahorrado 鈥淣umber鈥
  • Deudas 鈥淣umber鈥

3锔忊儯 Traduce a c贸digo JavaScript las variables del ejemplo anterior y deja tu c贸digo en los comentarios.

//Variables 
let name = "Camilo";
let lastName = "Saavedra";
let user_name = "cisaa";
let age = 27;
let mail = "[email protected]"
let adult = true;
let savedMoney = 1500;
let debtMoney = 500000;

4锔忊儯 Calcula e imprime las siguientes variables a partir de las variables del ejemplo anterior:

  • Nombre completo (nombre y apellido)
//Nombre completo 
let name = "Camilo";
let lastName = "Saavedra";
console.log(`Mi nombre completo es ${name} ${lastName}`);
  • Dinero real (dinero ahorrado menos deudas)
//Dinero ahorrado
let savedMoney = 1000000;
let debtMoney = 500000;
let totalMoney = savedMoney - debtMoney;
console.log(`El total de mi dinero actual es: $${totalMoney`});

Funciones

1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:

  • 驴Qu茅 es una funci贸n?

    Es un conjunto de acciones que nos permitir谩 reutilizar en nuestro c贸digo y siempre deben devolver un resultado. Podemos crear diferentes funciones con par谩metros distintos y luego utilizar la informaci贸n para realizar un evento o acci贸n dentro de nuestro c贸digo.

  • 驴Cu谩ndo me sirve usar una funci贸n en mi c贸digo?

    Cuando necesitamos repetir una acci贸n en nuestro c贸digo, en vez de escribir una suma, por ejemplo en cada l铆nea, podemos crear una funci贸n que nos permita sumar elementos cada vez que lo necesitemos y solo cambiamos sus par谩metros.

  • 驴Cu谩l es la diferencia entre par谩metros y argumentos de una funci贸n?

    Los par谩metros son las variables declaras y solicitadas en nuestra funci贸n, al momento de realizar el llamado de nuestra funciones nos exigir谩 declarar nuestras variables que vendr铆an a ser nuestros argumentos de la funci贸n.

    function myFunction(par谩metro1 + par谩metro2) {
      //... All my code here
    }
    
    myFunction(argumento + argumento2);
    //Al declarar las variables par谩metro1 y par谩metro2 estamos generando los argumentos de nuestra funci贸n. 
    
    

2锔忊儯 Convierte el siguiente c贸digo en una funci贸n, pero, cambiando cuando sea necesario las variables constantes por par谩metros y argumentos en una funci贸n:

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 + ".");
//My solution
function presentation(name, lastName, nickName){
  return console.log(`Mi nombre completo es ${name} ${lastName}, pero prefiero que me digas ${nickName}.`);
}
presentation("Camilo", "Saavedra", "cisaa");

Condicionales

1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:

  • 驴Qu茅 es un condicional?

    Es una expresi贸n que nos permite evaluar si es True o False.

  • 驴Qu茅 tipos de condicionales existen en JavaScript y cu谩les son sus diferencias?

    • If鈥lse
    • Switch

    Con el condicional If鈥lse podemos tener diferentes expresiones para evaluar dependiente del caso, y generar tantos If o else como sea necesario. Mientras que Switch case toma una sola expresi贸n de entrada pero puede evaluar todos los casos como sea necesario de una forma m谩s ordenada.

  • 驴Puedo combinar funciones y condicionales?

    Podemos encadenar una respusta desde un condional a otro pero no podemos combinarlo dentro de una misma expresi贸n. Si podemos ocuparlos de forma separada y luego encadenar una acci贸n dependiendo del resultado.

2锔忊儯 Replica el comportamiento del siguiente c贸digo que usa la sentencia switch utilizando if, else y else if:

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;
}
//My solution
const tipoDeSuscripcion = "Basic";
if (tipoDeSuscripcion == "Free") {
	console.log("Solo puedes tomar los cursos gratis");
} else 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("No tienes ninguna suscripci贸n");
}

3锔忊儯 Replica el comportamiento de tu condicional anterior con if, else y else if, pero ahora solo con if (sin else ni else if).

馃挕 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. 馃槒

let typeSuscripci贸n = [
"Free",
"Basic", 
"Expert", 
"ExpertPlus"
];
let infoSuscripci贸n = [
"solo puedes tomar los cursos gratis", 
"puedes tomar casi todos los cursos de Platzi durante un mes", 
"puedes tomar casi todos los cursos de Platzi durante un a帽o", 
"t煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi durante un a帽o"];
let userSuscription = "Expert";
for (let i=0; i < typeSuscripci贸n.length; i++) {
  if (userSuscription == typeSuscripci贸n[i]) {
  	console.log(`Si estas suscrito al plan ${typeSuscripci贸n[i]} en el cual ${infoSuscripci贸n[i]}`)
  }
}

Ciclos

1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:

  • 驴Qu茅 es un ciclo?

    Un ciclo es un bucle que se repite hasta que se cumpla una condici贸n.

  • 驴Qu茅 tipos de ciclos existen en JavaScript?

    Ciclo For, While, etc.

  • 驴Qu茅 es un ciclo infinito y por qu茅 es un problema?

    Un ciclo infinito es cuando la condici贸n es infinita, nunca se cumple y, por lo tanto, no existe termino al proceso, por consecuencia nuestro c贸digo puede fallar y ralentizar nuestras computadoras.

  • 驴Puedo mezclar ciclos y condicionales?

    S铆, podemos condicionar un ciclo para que se repita todas las veces hasta que se cumplan una condici贸n que internamente puede tener otra condici贸n para su evaluaci贸n.

2锔忊儯 Replica el comportamiento de los siguientes ciclos for utilizando ciclos while:

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);
}
//My Solution
let i = 0;
while (i < 5) {
  i++;
  console.log(`El valor de i es: ${i}`)
}
let i = 10;
while (i >= 2) {
  i--;
  console.log(`El valor de i es: ${i}`)
}

3锔忊儯 Escribe un c贸digo en JavaScript que le pregunte a los usuarios cu谩nto es 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.

//Basic Math Quiz
let num = 10;
let num2 = 10;
const result = num + num2;
let questions = {
  q1: `Cuanto es ${num} + ${num2}`
}
function Quizzer() {
  let userInput = prompt(questions.q1);
  if (userInput == result) {
    alert("Felicitaciones, respondiste correctamente el desafio 馃槑");
  } else {
    alert("lamentablemente, tu respuesta es incorrecta, sigue practicando 鉂!");
  }
}
Quizzer();

Listas

1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:

  • 驴Qu茅 es un array?

    Un array es una colecciones de elementos con valores de una sola variable. Se escriben dentro de [ 鈥 ], separado por una coma.

  • 驴Qu茅 es un objeto?

    Es una colecci贸n de datos relacionados con m煤ltiples variables con sus valores.

  • 驴Cu谩ndo es mejor usar objetos o arrays?

    Ocupamos objetos cuando el conjunto de elementos es muy grande y de distintos tipos de valores.

  • 驴Puedo mezclar arrays con objetos o incluso objetos con arrays?

2锔忊儯 Crea una funci贸n que pueda recibir cualquier array como par谩metro e imprima su primer elemento.

let myArray = ['Manchester', 'London', 'Liverpool', 'Birmingham', 'Leeds', 'Carlisle'];
function readArray(array){
	console.log(array[0])
}
readArray(myArray);

3锔忊儯 Crea una funci贸n que pueda recibir cualquier array como par谩metro e imprima todos sus elementos uno por uno (no se vale imprimir el array completo).

let myArray = ['Manchester', 'London', 'Liverpool', 'Birmingham', 'Leeds', 'Carlisle'];
function readArray(array) {
  for (let i = 0; i < array.length; i++) {
    console.log(`${i + 1} ${array[i]}`)
  }
}
readArray(myArray);

4锔忊儯 Crea una funci贸n que pueda recibir cualquier objeto como par谩metro e imprima todos sus elementos uno por uno (no se vale imprimir el objeto completo).

let myCar = {
  make: 'Ford',
  model: 'Mustang',
  year: 1969
};
function readObject(object) {
  for (let key in object) {
    console.log(object[key]);
 	}
 }
readObject(myCar);

馃挭 Test de JavaScript

Variables y operaciones.

1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:

  • 驴Qu茅 es una variable y para qu茅 sirve?

    Un espacio reservado en memoria. Una caja de informaci贸n dependiendo de la los tipos y estructuras que soporta nuestro lenguaje.

  • 驴Cu谩l es la diferencia entre declarar e inicializar una variable?

    Declarar es reservar un espacio en memoria con una palabra reservada (var, let, const) seguida de la asignaci贸n de ese espacio ej. nombre .

    Inicializar una variable es asignar un valor en el espacio que reservamos anteriormente.

    // declarar un avariable.
    let nombre;
    // inicializar una variable.
    nombre = "Ellie";
    // declarar e inicializar una variable en una sola linea de c贸digo.
    let nombre = "Ellie";
    
  • 驴Cu谩l es la diferencia entre sumar n煤meros y concatenar strings?

Al sumar n煤meros se hace una operaci贸n matem谩tica asumiendo que los valores asignados a las variables son de tipo n煤mero. En cambio concatenar agrupa los valores asignados en cada variable.

```jsx
// sumar valores de n煤mero.
let suma = 2+2;
console.log(suma)
// sumar valores de strings.
let sumaStrings = "Hola, " + "驴c贸mo te llamas? "
console.log(sumaStrings)
```
  • **驴Cu谩l operador me permite sumar o concatenar?
    **
    + Es un operador flexible que nos permite sumar o concatenar de acuerdo como interprete los valores de las variables.

2锔忊儯 Determina el nombre y tipo de dato para almacenar en variables la siguiente informaci贸n:

  • Nombre: String
  • Apellido: String
  • Nombre de usuario en Platzi: String
  • Edad: number
  • Correo electr贸nico: String
  • Mayor de edad: Bolean
  • Dinero ahorrado: number
  • Deudas: number

3锔忊儯 Traduce a c贸digo JavaScript las variables del ejemplo anterior y deja tu c贸digo en los comentarios.

let nombre = 'Elizabeth';
let apellido = 'Vega';
let userName = 'elliev';
let edad = 19;
let mail = '[email protected]';
let isMayorDeEdad = true;
let dineroAhorrado = 1000;
let deudas = 100;

4锔忊儯 Calcula e imprime las siguientes variables a partir de las variables del ejemplo anterior:

  • Nombre completo (nombre y apellido)

    let nombreCompleto = nombre + " " + apellido;
    console.log (nombreCompleto);
    
  • Dinero real (dinero ahorrado menos deudas)

    let dineroReal = dineroAhorrado - deudas;
    console.log (dineroReal);
    

Condicionales
3锔忊儯 Replica el comportamiento de tu condicional anterior con if, else y else if, pero ahora solo con if (sin else ni else if).

馃挕 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.

let tipoDeSuscripcion = {
	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',
};

const suscripcion = "Basic"

Object.keys(tipoDeSuscripcion).find((plan) => {
  if (plan == suscripcion) {
    console.log(tipoDeSuscripcion[plan]);
  }
});

Test de JavaScript

鈥 Quise rendirme, y en la parte de los ejercicios en Listas tuve que recurrir a apoyo, pero vaya que me agrada ver que realmente he aprendido algo y que pase de no saber nada a poder hacer estas pruebas, s茅 que es solo lo b谩sico, pero a m铆 me alegra.
Mi Prueba

Test Finalizado!! 鉁

Variables y operaciones

1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:
驴Qu茅 es una variable y para qu茅 sirve?

Una variable es un espacio en memoria destinado a almacenar datos, estos datos pueden ser de tipo String, Number, Boolean, etc.

驴Cu谩l es la diferencia entre declarar e inicializar una variable?

Cuando declaramos una variable le damos un nombre, cuando inicializamos una variable le asignamos un dato a esta para que lo guarde.

//declaracion
let miVariable;

//inicializacion
miVariable = 10;

Podemos declara e inicializar una variable en la misma linea de codigo:

//declaraci贸n e inicializaci贸n
let miVariable = 10;

驴Cu谩l es la diferencia entre sumar n煤meros y concatenar strings?

Cuando sumamos n煤meros se realiza un operaci贸n mat茅matica cuyo resultado es la adici贸n de los numeros suministrados, para que esto suceda todos los datos involucrados en la operaci贸n deben ser tipo Number.

let suma = 10 + 20 + 30;

console.log(suma); // 60

Cuando se concatenan strings o cadenas de texto se realiza una uni贸n de estas, generando as铆 un nuevo string, por ejemplo una frase, oraci贸n o simplemente un texto compuesto por multiples partes.

let miTexto = 'pares de ';
let miTexto2 = 'Nunca ' + miTexto + 'aprender';

console.log(miTexto2); // 'Nunca pares de aprender';

驴Cu谩l operador me permite sumar o concatenar?

para sumar o concatenar se utiliza el operador 鈥+鈥. Al usar este operador javascript determinar谩 a partir de los tipos de datos si debe realizar la suma o la concatenaci贸n de estos.

2锔忊儯 Determina el nombre y tipo de dato para almacenar en variables la siguiente informaci贸n:

Nombre = string
Apellido = string
Nombre de usuario en Platzi = string
Edad = number
Correo electr贸nico = string
Mayor de edad = boolean
Dinero ahorrado = number
Deudas = number

3锔忊儯 Traduce a c贸digo JavaScript las variables del ejemplo anterior y deja tu c贸digo en los comentarios.

//Nombre = string
let nombre = 'Felipe';

// Apellido = string
let apellido = 'Moreno';

// Nombre de usuario en Platzi = string
let usuario = 'pipemalz';

// Edad = number
let edad = 26;

//Correo electr贸nico = string
let correoElectronico = '[email protected]';

//Mayor de edad = boolean
let mayorDeEdad = true;

//Dinero ahorrado = number
let ahorros = 1000;

//Deudas = number
let deudad = 500;

4锔忊儯 Calcula e imprime las siguientes variables a partir de las variables del ejemplo anterior:
Nombre completo (nombre y apellido)

console.log(nombre + ' ' + apellido);

Dinero real (dinero ahorrado menos deudas)

let dineroReal = ahorros - deudas;
console.log(dineroReal);

Funciones

1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:
驴Qu茅 es una funci贸n?
Una funci贸n es un bloque de codigo que puede retornar un valor a partir de distintas operaciones.

驴Cu谩ndo me sirve usar una funci贸n en mi c贸digo?
Una funci贸n es util cuando debemos realizar varias veces una misma operaci贸n o secuencia de operaciones, de esta forma podemos encapsular el c贸digo en una funci贸n y mandarla a llamar cuando necesitemos ejecutar dicha operaci贸n sin tener que reescribirla.

驴Cu谩l es la diferencia entre par谩metros y argumentos de una funci贸n?
Los par谩metros son variables que al definir nuestra funci贸n ser谩n utilizados para realizar la operaci贸n que necesitemos.

function suma(parametro1, parametro2){
    return parametro1 + parametro2;
}

Los argumentos son los datos que le indicamos a la funci贸n cuando la mandamos a llamar, estos datos son utilizados para realizar las operaciones que al definir la funci贸n le dimos como par谩metros.

suma(3, 10); // 13

2锔忊儯 Convierte el siguiente c贸digo en una funci贸n, pero, cambiando cuando sea necesario las variables constantes por par谩metros y argumentos en una funci贸n:

const name = "Juan David";
const lastname = "Castro Gallego";
const completeName = name + lastname;
const nickname = "juandc";

function alias(completeName, nickname){
    console.log("Mi nombre es " + completeName + ", pero prefiero que me digas " + nickname + ".");
}

alias(completeName, nickname);

Condicionales

1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:

驴Qu茅 es un condicional?
Un condicional es una estructura de codigo que permite realizar una comparaci贸n y tomar una decicisi贸n dependiendo si el resultado es true o false.

驴Qu茅 tipos de condicionales existen en JavaScript y cu谩les son sus diferencias?
Tipos de condicionales en Javascript:

-if, else y elseif
-Switch

La diferencia es que if, else y elseif nos permite realizar diversas comparaciones utilizando variables, operadores y adem谩s podemos evaluar diversas expresiones haciendo uso de elseif. Switch permite evaluar diferentes casos y tomar decisiones dependiendo del resultado de una unica expresi贸n.

驴Puedo combinar funciones y condicionales?
Si, una funcion puede contener condicionales y retornar diversos valores o ejecutar otras funciones a partir del resultado de estos.

2锔忊儯 Replica el comportamiento del siguiente c贸digo que usa la sentencia switch utilizando if, else y else if:

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;
}

Solucion:

if(tipoDeSuscripcion === 'Free'){
    console.log("Solo puedes tomar los cursos gratis");
}else 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");
}

3锔忊儯 Replica el comportamiento de tu condicional anterior con if, else y else if, pero ahora solo con if (sin else ni else if).
馃挕 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. 馃槒

let suscripciones = {
    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(tipoDeSuscripcion){
    console.log(suscripciones[tipoDeSuscripcion])
}

Ciclos

1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:
驴Qu茅 es un ciclo?
Un ciclo es una estructura que nos permite realizar iteraciones y ejecutar codigo repetidamente mientras que se cumpla una condici贸n.

驴Qu茅 tipos de ciclos existen en JavaScript?

-For
-While
-Do While

驴Qu茅 es un ciclo infinito y por qu茅 es un problema?
Un ciclo infnito ocurre cuando una condicion siempre se cumple y es est谩tica, por lo tanto el ciclo nunca se detiene. Es un problema porque satura la memoria y puede provocar un 鈥榗rasheos鈥 al navegador o perdida de rendimiento.

驴Puedo mezclar ciclos y condicionales?
Si se pueden mezclar ciclos y condicionales, bien sea un ciclo dentro de un condicional o un condiciional dentro de un ciclo.

2锔忊儯 Replica el comportamiento de los siguientes ciclos for utilizando ciclos while:

for (let i = 0; i < 5; i++) {
    console.log("El valor de i es: " + i);
}

Soluci贸n

let i = 0;
while(i < 5){
    console.log("El valor de i es: " + i);
    i++;
}
for (let i = 10; i >= 2; i--) {
    console.log("El valor de i es: " + i);
}

Soluci贸n

let i = 10;
while(i >=2){
    console.log("El valor de i es: " + i);
    i--;
}

3锔忊儯 Escribe un c贸digo en JavaScript que le pregunte a los usuarios cu谩nto es 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.

function validar(){
    let resultado = parseInt(prompt('Escribe el resultado de sumar 2 + 2'));
    if(resultado === 4){
        alert('Felicitaciones el resultado es correcto');
    }else{
        alert('Intentalo nuevamente');
        validar();
    }
}

Listas

1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:
驴Qu茅 es un array?
Un array es un tipo de dato estructurado, que permite almacenar un conjunto de datos de tipo diverso los cuales pueden ser accedidos mediante un indice.

驴Qu茅 es un objeto?
Un objeto es tun tipo de dato estructurado, que permite almacenar un conjunto de datos diversos de forma asociativa, a diferencia de los arrays estos datos pueden ser accedidos por una variable en lugar de un indice.

驴Cu谩ndo es mejor usar objetos o arrays?
Dependiendo de la necesidad, ambas estructuras son muy utiles y pueden almacenar gran cantidad de datos. Los objetos suelen ser muy utiles cuando necesitamos almacenar gran cantidad de datos que van a ser accedidos por medio de variables.

驴Puedo mezclar arrays con objetos o incluso objetos con arrays?
Si, puedo almacenar arrays dentro de objetos y objetos dentro de arrays.

2锔忊儯 Crea una funci贸n que pueda recibir cualquier array como par谩metro e imprima su primer elemento.

const semana = ['Lunes', 'Martes', 'Miercoles', 'Jueves', 'Viernes', 'Sabado', 'Domingo'];
function imprimir(array){
    console.log(array[0]);
}
imprimir(semana);

3锔忊儯 Crea una funci贸n que pueda recibir cualquier array como par谩metro e imprima todos sus elementos uno por uno (no se vale imprimir el array completo).

const semana = ['Lunes', 'Martes', 'Miercoles', 'Jueves', 'Viernes', 'Sabado', 'Domingo'];
function imprimir(array){
    array.forEach(elemento => console.log(elemento));
}
imprimir(semana);

4锔忊儯 Crea una funci贸n que pueda recibir cualquier objeto como par谩metro e imprima todos sus elementos uno por uno (no se vale imprimir el objeto completo).

const planeta = {
    nombre: 'Jupiter',
    radio: 71492,
    diametro: 142984 
}

function imprimir(objeto){
    for(let elemento in objeto){
        console.log(objeto[elemento]);
    }
}

imprimir(planeta);

Les comparto mis respuesta en una pagina de Notion Test de JavaScript 馃摑

Variables y operaciones

const nombre = 'Jhon'
const apellido = 'Bocanegra'
let usuario = '@jhoneduard26'
let edad = 23
let email = '[email protected]'
let esMayordeEdad = true
let dineroAhorrado = 1000
let deudas = 500

const nombreCompleto = `${nombre} ${apellido}`
let dineroReal = dineroAhorrado - deudas

console.log(nombreCompleto)
console.log(dineroReal)

Funciones

const name = "Juan David";
const lastname = "Castro Gallego";
const nickname = "juandc";

function sayName (name, lastName, nick) {
  console.log(`Mi nombre es ${name} ${lastName}, pero prefiero que me digas ${nick}.`)
}

sayName(name, lastname, nickname)

Condicionales

const tipoDeSuscripcion = "Basic"

// if, else if, else

if (tipoDeSuscripcion === 'Free') {
  console.log("Solo puedes tomar los cursos gratis")
} else 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 {
  console.log("T煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi durante un a帽o")
}

// solo if

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")
}

Reto usando arrays y objetos

const tipoDeSuscripcion = 'ExpertPlus';

const tipoSuscripcion = [
  {
    type: 'Free',
    text: 'Solo puedes tomar los cursos gratis',
  },
  {
    type: 'Basic',
    text: 'Solo puedes tomar los cursos gratis',
  },
  {
    type: 'Expert',
    text: 'Puedes tomar casi todos los cursos de Platzi durante un a帽o',
  },
  {
    type: 'ExpertPlus',
    text: 'T煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi durante un a帽o',
  },
];

const element = tipoSuscripcion.find(tipo => tipo.type === tipoDeSuscripcion);

console.log(element.text)

Ciclos

let i = 0

while(i < 5) {
  console.log('El valor de i es:', i)
  i++
}

i = 10

while(i >= 2) {
  console.log('El valor de i es: '+ i)
  i-=2
}
// Reto
let userPrompt = parseInt(prompt('驴Cu谩nto es 2 + 2?'))

while(userPrompt !== 4) {
  userPrompt = parseInt(prompt('驴Cu谩nto es 2 + 2?'))
}

console.log('Felicidades acertaste!')

Listas

const myArr = ['Kiwi', 'Strawberry', 'Apple']

function printFirstElement (array = []) {
  console.log(array[0])
}

function printAllElements (array = []) {
  array.map((element, idx) => console.log(`${idx +1}. ${element}`))
}

printFirstElement(myArr)
printAllElements(myArr)

//Reto
const myObj = {
  Colombia: 'Bogota',
  Peru: 'Lima',
  Ecuador: 'Quito'
}

function printAllElementsObject (object = {}) {
  for (let key in object) {
    console.log(key)
  }
}

printAllElementsObject(myObj)

驴Qu茅 es una variable y para qu茅 sirve?
es una palabra clave que se guarda en memory y se puede emplear variables const o let que se pueden utilizar en funciones o estado en los que se los requiera.
驴Cu谩l es la diferencia entre declarar e inicializar una variable?
En declarar una variable se esta determinando que en que lugar existe, mientras que inicializar se designa un valor en la variable ya sea number, string , boleanos o objectos.
驴Cu谩l es la diferencia entre sumar n煤meros y concatenar strings?
Se entiende por sumar numeros a que se toman todos los valores y resuelve con un solo resultado y Concatenar strings es agrupar en una sola linea los valores que se esta almacenando [鈥渉ola鈥, 鈥淥scar鈥," de Platzi"] = [hola Oscar de Platzi]
驴Cu谩l operador me permite sumar o concatenar?
En sumar el operador + permite sumar valores example (let suma = 5 + 2; suma= 7)
Para concatenar se aplica (let concatenar = 鈥5鈥 + 鈥2鈥 ; concatenar = 52).
2* Determina el nombre y tipo de dato para almacenar en variables la siguiente informaci贸n:
Nombre: es strings,
Apellido: strings
Nombre de usuario : es un strings,
Edad: numbers,
Correo electr贸nico: es un strings,
Mayor de edad: es numbers,
Dinero ahorrado: numbers
Deudas: numbers
3* Traduce a c贸digo JavaScript las variables del ejemplo anterior y deja tu c贸digo en los comentarios.
let Nombre = 鈥淥scar鈥;
let Apellido = "Quintero
let Nombre de usuario en Platzi = 鈥淥sq"
let Edad = 19;
const Correo_electr贸nico = 鈥[email protected]鈥;
const Mayor_de_edad = 鈥淓res mayor de edad鈥;
const Dinero_ahorrado = 300;
const Deudas = -700;
4* Calcula e imprime las siguientes variables a partir de las variables del ejemplo anterior:
Nombre completo (nombre y apellido)
const nuevoNombre = Nombre+鈥 " + Apellido;
console.log(nuevoNombre);
Dinero real (dinero ahorrado menos deudas)
const dineroAhorrado = 300;
const deudas = -700;
const dineroReal = dineroAhorrado + deudas;
console.log(dineroReal);

Hola, les comparto mi soluci贸n en Notion 馃槃 鉂わ笍
Soluci贸n

馃幃 Test de Javascript: Mi soluci贸n 馃

馃憠S铆gueme en GITHUB

Variables y operaciones 馃М


    • Una variable es un espacio en memoria que nos permite almacenar informacion para poder acceder a ella mas facil
    • Declarar: Cuando 鈥渁nuncio鈥 o le digo al lenguaje que cree una variable de nombre cualquiera Inicializar: Cuando le asigno el valor a una variable, esto se puede hacer al momento de declararla o no
    • cuando sumo numeros se realiza una operacion matematica y el resultado sera otro numero. Para concatenar strings tambien uso el operador aritmetico + sin embargo no se hace una operacion matematica porque es imposible sumar caracteres, en lugar de eso se agregan o se unen para formar 1 sola cadena de caracteres
    • el operador +

    • Nombre: String
    • Apellido: String
    • Nombre de usuario en Platzi: String
    • Edad: Entero
    • Correo electr贸nico: String
    • Mayor de edad: Booleano
    • Dinero ahorrado: Float
    • Deudas: Float

    • let Nombre = 鈥淣elson鈥;
    • let Apellido = 鈥淎revalo鈥;
    • let Usuario = 鈥渘ear_fuentes鈥;
    • let Edad = 24;
    • let email = 鈥[email protected]鈥;
    • let Mayor_de_edad = True;
    • let Dinero_ahorrado = 150.000;
    • let Deudas = 80.000;

    • console.log(Nombre + " " + Apellido);
    • console.log(Dinero_ahorrado - Deudas);

Funciones 鈿


    • Es una estructura que nos permite hacer tareas manipular , transformar o generar datos e informacion, su funcion es realizar tareas que de otra forma resultaria mas complejo o dificil de leer
    • cuando tenemos una proceso que se va a repetir recurrentemente en varias secciones de nuestro codigo
    • los parametros es el nombre que reciben las variables que se van a enviar a una funci贸n a trav茅s de una 鈥渓lamada鈥. Los argumentos es el nombre que reciben las mismas variables que se enviaron desde la "llamada "pero en la funcion misma.
var completeName = function(name, lastname)
    {
        return name + lastname;
    }
const name = "Juan David";
const lastname = "Castro Gallego";
const nickname = "juandc";

console.log("Mi nombre es " + completeName(name, lastname) + ", pero prefiero que me digas " + nickname + ".");

Condicionales 馃敶馃煝


    • Es una serie de instrucciones que se van a ejecutar dependiendo si se cumple o no una condici贸n

      • if, else: b谩sicamente nos permite ejecutar una instrucci贸n si se cumple una condici贸n o de lo contrario se ejecutar谩 otra instrucci贸n
      • else if: a veces necesitamos evaluar m谩s de una condici贸n porque para cada condici贸n le corresponde una acci贸n diferente, en esos casos se usa else if
      • switch case: tiene cierta similitud con else if su diferencia radica en la sem谩ntica misma, aqu铆 se eval煤an diferentes casos y dependiendo se ejecutar谩 uno u otro
    • Si, se puede usar condiciones dentro de funciones y funciones dentro de condiciones

const tipoDeSuscripcion = "Basic";

if (tipoDeSuscripcion === "Free"){
       console.log("Solo puedes tomar los cursos gratis");
}
else 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 {
       console.log("T煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi durante un a帽o");
}



3.

const tipoDeSuscripcion = "Free";

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");
}

Ciclos 馃攣


    • Es una estructura de control que nos permite repetir instrucciones una determinada cantidad de veces dependiendo de un iterador o una condici贸n
    • Existen 3 tipos de ciclos: for, while y do while
    • Un ciclo infinito es una repetici贸n indeterminada de instrucciones y se da cuando la condici贸n o el iterador no indican cuantas veces se va a repetir, esto provoca que se ejecuten infinitamente, es un problema porque puede llenar la memoria del sistema y provoque un colapso del mismo
    • Si es posible mezclar ciclos y condicionales

let i = 0;
while(i < 5){
    console.log("El valor de i es: " + i);
    i++;
}

let i = 10
while (i >= 2) {
    console.log("El valor de i es: " + i);
    i--;
}



3.

let result;

do {
  result = prompt("Cuanto es 2+2?");
    if(result == 4){
        console.log("Felicidades, tu conocimiento en matem谩ticas es avanzado :v");
    }
} while (result != 4);

Listas 馃搵


    • Un array es una estructura de datos lineal, una colecci贸n de datos organizados a los cuales accedo a trav茅s un n煤mero que representa una posici贸n
    • Es una forma de agrupar propiedades de algo, funciona de forma similar a un array ya que tambi茅n es una colecci贸n de datos que describen una entidad cualquiera por ejem: un auto es un objeto y dentro de este tenemos caracter铆sticas tales como color, modelo, velocidad m谩xima, capacidad etc.
    • Los arrays son objetos iterables y se accede a la informaci贸n a trav茅s de un n煤mero, si no conocemos la posici贸n de un dato necesitamos recorrer el arreglo para encontrarlo, en cambio en un objeto los datos est谩n enlazados con una llave o un 鈥渘ombre鈥, estos objetos no se pueden recorrer y se accede a los datos con la llave
    • Si, puedo tener objetos dentro de un arreglo y arreglos dentro de un objeto
let persona= function(datos){
    if (datos != null && datos.length > 0){
        console.log(datos[0]);
    }
}


3.

let array_inf= function(datos){
    if (datos != null && datos.length > 0){
        for (dato of datos){
            console.log(dato);
        }
    }
}


4.

let obj_inf= function(datos){
    if (datos != null){
        for (let key in datos){
            console.log(datos[key]);
        }
    }
}

!Buena suerte a todos! 馃槉鉁岋笍

  • Es un espacio en memoria para guardar datos de cualquier tipo y sirve para usarlos posteriormente, incluso para nunca usarlos XD.

  • Declarar es darle nombre a la variable, se puede indicar el tipo, aunque no es necesario en JS, e inicializar es hacer lo anterior pero d谩ndole un valor desde el principio, con esto ya decimos que tipo de variable es.

  • Sumar es hacer la operaci贸n aritm茅tica y por lo tanto act煤a sobre n煤meros, concatenar solo funciona con cadenas de caracteres y las 鈥減ega鈥 una detr谩s de otra.

  • Nombre, apellido y nombre usuario en platzi, son string.

  • La edad puede ser tambi茅n string o un n煤mero entero, pero depende de qu茅 vayamos a hacer con ese dato.

  • correo es string.

  • Si es mayor puede ser un boolean.

  • Dinero es un float. por los centavos.

  • Deudas es dinero y por ende un float.

let name = '';
let lasName = '';
let userName = '';
let age = undefined;
let email = '';
let isAdult = false;
let moneySaved = 0;
let debts = 0;
console.log('Your name is: ' + name + ' '+ lastName)
/*o podr铆a haber hecho con template Strings pero creo que el motivo de esto es usar concatenaci贸n con +*/
let realMoney = moneySaved - debs;
console.log( 'Your real money is: ' + realMoney.toString()  )

Funciones:
1)

  • Es un bloque de c贸digo encapsulado que tiene su propio ambito, que puede o no recibir valores fuera de 茅l, realizar acciones y devolver o no valores.

  • Yo las uso cuando repito ese c贸digo m谩s de una vez.

  • Los parametros son valores que puede recibir la funci贸n y est谩n definidos en su construcci贸n, los argumentos son los valores en s铆 que pasamos al llamar a la funci贸n. Corresponden uno al otro, pero pueden o no omitirse dependiendo la construcci贸n de la funci贸n.

function greetings(name, lastName, nickName) {
    return `Mi nombre es ${name} ${lastName}, pero prefiero que me digas ${nickName}`
}

console.log(greetings("Juan David", "Castro Gallego", "juandc"));

Condicionales:
1)

  • Es una pregunta sobre un dato dentro del programa, el dato puede ser una variable o una comparaci贸n de valores presentes dentro del programa. Una vez contestada esa pregunta se toma una u otro rumbo de ejecuci贸n, dejando o no c贸digo sin ejecutar dependiendo la pregunta.

  • if/ese, realiza una comparaci贸n y dependiendo si es verdadera o no realiza un c贸digo, se pueden anidar.

  • switch - revisa un valor con una lista de opciones y la primera que cumpla con la condicional se ejecuta, dejando a los dem谩s sin realizarse, puede o no tener un 鈥渃aso鈥 por default si no se tiene esa opci贸n contemplada.

  • S铆.

Esto es tricky, el realidad solo deber铆a de ser:

const tipoDeSuscripcion = "Basic";
if (tipoDeSuscripcion === "Basic") {
    console.log("Puedes tomar casi todos los cursos de Platzi durante un mes");
}

porqu茅 no entra a nada m谩s, pero, el ejercicio completo es:

const tipoDeSuscripcion = "Basic";
f (tipoDeSuscripcion === "Free"){
    console.log("Solo puedes tomar los cursos gratis");
} else 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");
}
const tipoDeSuscripcion = "Basic";
const suscription = {
    "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"
}

console.log(suscription[tipoDeSuscripcion]);

Ciclos:
1)

  • Es un c贸digo que se repite determinadas veces o mientras una condici贸n se cumpla.

  • Podemos clasificarlos en finitos e 鈥渋nfinitos鈥.

  • Es un ciclo que puede nunca 鈥渞omperse鈥 y es un problema porque consume recursos m谩quina y pueden 鈥渢rabar鈥 el equipo, aunque los motores como el V8 ya no lo permiten.

  • s铆, aunque los ciclos por dentro usan condicionales

let i=0;
while (i<5) {
    console.log("El valor de i es: " + i);
    i++;
}
i=10;
while (i>=2) {
    console.log("El valor de i es: " + i);
    i--;
}
if (prompt('驴Cuanto es 2 + 2?') === "4")
    console.log("Correcto, es 4, felicidades")
else
    console.log("Incorrecto.");

Listas:

  • Un array es una colecci贸n ordenada de datos bajo un mismo nombre, pueden ser de varias dimensiones. Y como est谩n ordenados tiene varios m茅todos de acceso a ellos. Pueden tener diferentes tipos de datos dentro, pero lo normal es que sean un tipo especifico.

  • Un objeto es una colecci贸n de tipo de datos b谩sicos bajo un mismo nombre, normalmente lo usamos para generar datos 鈥渃ustom鈥.

  • Un array es mejor cuando vamos a realizar una iteraci贸n sobre esos datos, ya que su acceso puede ser m谩s sencillo. Un objeto es usado cuando tenemos diferentes tipos de datos bajo un solo nombre.

  • s铆.

function printFirst(array1) {
    console.log(array1[0]);
}

const array2 = [1,2]
printFirst(array2)
function printArray (array1){
    array1.map(element => console.log(element))
}
function printObject(object) {
    for (let key in object) {
      console.log(object[key]);
       }
   }

Variables y Operaciones
1)

  • Una variable es un espacio en memoria en el cual se guarda la informaci贸n desdeada.
  • Cuando declaramos una variable solo estamos creando ese espacio en memoria junto con su nombre espec铆fico. Por otro lado cuando inicializamos una variable estamos estableciendo que tipo de datos va a almacenar y cual ser谩 dicha informaci贸n.
  • Cuando sumamos n煤meros estamos realizando una operaci贸n matem谩tica, claro que esto se realiza cuando estamos trabajando con datos de tipo n煤merico. Mientras que, cuando concatenamos strings, lo que estamos haciendo es unir dos cadenas de texto en una sola.
  • Estas dos acciones (sumar y concatenar), se realizan con el signo de mas (+).
  • Nombre: 鈥渟tring鈥
  • Apellido: 鈥渟tring鈥
  • Nombre de usuario: 鈥渟tring鈥
  • Edad: 鈥渘umber鈥
  • Email: 鈥渟tring鈥
  • Mayor de edad: 鈥渂oolean鈥
  • Dinero ahorrado: 鈥渘umber鈥
  • Deudas: 鈥渘umber鈥
let nombre = "Lionel";
let apellido = "Messi";
let userName = "campeon_del_mundo22";
let edad = 35;
let email = "[email protected]";
let esAdulto = true;
let ahorro = 450000;
let deuda = 6000;
let nombreCompleto = nombre + " " + apellido;
let dineroReal = ahorro - deuda;
console.log(nombreCompleto);
console.log(dineroReal);

Test de JavaScript 馃浉
Repositorio con respuestas y c贸digo 馃枛

Variables y operaciones

1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:

驴Qu茅 es una variable y para qu茅 sirve?
Espacio en memoria identificado por un nombre 煤nico con la capacidad de almacenar alg煤n valor.

驴Cu谩l es la diferencia entre declarar e inicializar una variable?
Se declara cuando la variable se nombra y se inicializa cuando se le asigna alg煤n valor.

驴Cu谩l es la diferencia entre sumar n煤meros y concatenar strings?
Usando el mismo signo de 鈥渕谩s鈥, los valores num茅ricos se operan matem谩ticamente y las cadenas de texto se van agregando haciendo esta m谩s grande en longitud de caracteres.

驴Cu谩l operador me permite sumar o concatenar?
El signo m谩s, 鈥+鈥.

2锔忊儯 Determina el nombre y tipo de dato para almacenar en variables la siguiente informaci贸n:

Nombre - String
Apellido - String
Nombre de usuario en Platzi - String
Edad - Number
Correo electr贸nico - String
Mayor de edad - Boolean
Dinero ahorrado - Number
Deudas - Number

3锔忊儯 Traduce a c贸digo JavaScript las variables del ejemplo anterior y deja tu c贸digo en los comentarios.

var name = "Michael";
var Lastname = "Rodr铆guez Medina";
var user = "michael_rdz";
var age = 29;
var email = "[email protected]";
var mayor = true;
var saving = 65000;
var debt = 12000;

4锔忊儯 Calcula e imprime las siguientes variables a partir de las variables del ejemplo anterior:

//Nombre completo (nombre y apellido):
	var name = "Michael";
var lastName = "Rodr铆guez Medina";
console.log("Nombre completo: "+name+" "+lastname);

//Dinero real (dinero ahorrado menos deudas)
var saving = 65000;
var debt = 12000;
let real = saving - debt; 
console.log("Dinero real: "+real);

TEST JAVASCRIPT (Nuevo curso pr谩ctico de JavaScript) 馃 鈥

1锔忊儯 Variables & Operaciones

  • 驴Qu茅 es una variable y para qu茅 sirve?
    RESPUESTA: Es un lugar en memoria y nos sirve para almacenar informaci贸n (datos). A las variables le podemos poner nombres humanos que sean f谩ciles de recordar.

  • 驴Cu谩l es la diferencia entre declarar e inicializar una variable?
    RESPUESTA: Declarar una variable, es cuando le decimos al programa donde empieza la variable, que nombre y que tipo de dato tendr谩. E inicializar una variable es cuando le asignas un valor a esa variable.

  • 驴Cu谩l es la diferencia entre sumar n煤meros y concatenar strings?
    RESPUESTA: La principal diferencia es el tipo de valor de cada variable. Por ejemplo: Si sumo 20 + 鈥2鈥 tendremos como resultado 202. Al contrario que si sumo 20 + 2 = 22. O si sumo "Hola " + 鈥20鈥 = Hola 20, estoy concatenando dos strings.

  • 驴Cu谩l operador me permite sumar o concatenar?
    RESPUESTA: El operador suma (+)

2锔忊儯 Determina el nombre y tipo de dato para almacenar en variables la siguiente informaci贸n:

  • const name = 鈥淛airo鈥;

  • const lastname = 鈥淐ol贸n鈥;

  • const username = 鈥渏airo_developer鈥;

  • const age = 26;

  • const mail = 鈥[email protected]鈥;

  • const olderAge = true;

  • const savedMoney = 1000000;

  • const debts = 100000;

3锔忊儯 Traduce a c贸digo JavaScript las variables del ejemplo anterior y deja tu c贸digo en los comentarios.

const name = "Jairo";
const lastname = "Col贸n";
const username = "jairo_developer";
const age = 26;
const email = "[email protected]";
const olderAge = true;
const savedMoney = 4000000;
const debts = 60000;

4锔忊儯 Calcula e imprime las siguientes variables a partir de las variables del ejemplo anterior:
Nombre completo (nombre y apellido)
Dinero real (dinero ahorrado menos deudas)


- Nombre completo (nombre y apellido)
const name = "Jairo";
const lastname = "Col贸n";
console.log(`Mi nombre es ${name} ${lastname}, un gusto estar ac谩`)
  • Dinero real (dinero ahorrado menos deudas)
const savedMoney = 40000000;
const debts = 60000;
const totalMoney = savedMoney - debts;

console.log(`El total de mi dinero es ${totalMoney}`);

Funciones
1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:

  • 驴Qu茅 es una funci贸n?
    RESPUESTA: B谩sicamente es un conjunto de instrucciones para realizar una tarea en espec铆fico.

  • 驴Cu谩ndo me sirve usar una funci贸n en mi c贸digo?
    RESPUESTA: Cuando se que voy a poder reutilizar esa funci贸n.

  • 驴Cu谩l es la diferencia entre par谩metros y argumentos de una funci贸n?
    RESPUESTA: Los par谩metros son los nombres que aparecen en la definici贸n de la funci贸n. Y los argumentos son los valores que le pasamos, y que por ende recibe una funci贸n.

2锔忊儯 Convierte el siguiente c贸digo en una funci贸n, pero, cambiando cuando sea necesario las variables constantes por par谩metros y argumentos en una funci贸n

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 + ".");

/*MY SOLUTIONS*/

const myPresentation = function(name, lastname, nickname) {
    return console.log(`Mi nombre es ${name} ${lastname}, pero prefiero que me digas ${nickname}`);
}

myPresentation("Juan David", "Castro Gallego", "juandc")

Condicionales
1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:

  • 驴Qu茅 es un condicional?
    RESPUESTA: Es una sentencia para ver diferentes casos, si es verdadero o falso b谩sicamente.

  • 驴Qu茅 tipos de condicionales existen en JavaScript y cu谩les son sus diferencias?
    RESPUESTA: Tenemos los siguientes condiciones en JavaScript.

  1. if
  2. else if
  3. else
  4. swicth
  5. se pueden trabajar condicionales tambi茅n con objetos
  • 驴Puedo combinar funciones y condicionales?
    RESPUESTA: Si se pueden combinar.

2锔忊儯 Replica el comportamiento del siguiente c贸digo que usa la sentencia switch utilizando if, else y else if:

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;
}

/*MY SOLUTIONS*/

let typeOfSubscription = "Expert";

if(typeOfSubscription == "Free"){
   console.log("Solo puedes tomar los cursos gratis 馃鈥嶐煉");
} else if(typeOfSubscription == "Basic"){
    console.log("Puedes tomar casi todos los cursos de Platzi durante un mes 鉁呪");
} else if(typeOfSubscription == "Expert"){
  console.log("Puedes tomar casi todos los cursos de Platzi durante un a帽o 馃鈥嶐煉烩渽");
}else if(typeOfSubscription == "ExpertPlus") {
   console.log("T煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi 馃鈥嶐煉烩渽馃挴馃暤锔忊嶁檧锔") 
}


3锔忊儯 Replica el comportamiento de tu condicional anterior con if, else y else if, pero ahora solo con if (sin else ni else if).

/*MY SOLUTIONS*/

const typeSubcription = [
"Free",
"Basic", 
"Expert", 
"ExpertPlus"
];

const infoSubcription = [
"solo puedes tomar los cursos gratis", 
"puedes tomar casi todos los cursos de Platzi durante un mes", 
"puedes tomar casi todos los cursos de Platzi durante un a帽o", 
"t煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi durante un a帽o"];

const userSubcription = "Basic";

for (let i=0; i < typeSubcription.length; i++) {
  
  if (userSubcription == typeSubcription[i]) {
  	console.log(`Si tienes la suscripci贸n ${typeSubcription[i]}, ${infoSubcription[i]}`)
  }
}

Ciclos
1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:

  • 驴Qu茅 es un ciclo?
    RESPUESTA: Es una secuencia de c贸digo que repite varias veces.

  • 驴Qu茅 tipos de ciclos existen en JavaScript?
    RESPUESTA:
    Declaraci贸n ** for**.
    Declaraci贸n do鈥 while.
    Declaraci贸n while.
    Declaraci贸n for鈥n.
    Declaraci贸n for鈥f.
    Habr谩n m谩s, pero estos son lo que conozco.

  • 驴Qu茅 es un ciclo infinito y por qu茅 es un problema?
    RESPUESTA: Un ciclo infinito ocurre cuando olvidamos escribir una condici贸n que nunca se va a dar. El problema con esto es que el ciclo queda eternamente repiti茅ndose y esto causa que el programa quede colgado.

  • 驴Puedo mezclar ciclos y condicionales?
    RESPUESTA: Si podemos combinarlos

2锔忊儯 Replica el comportamiento de los siguientes ciclos for utilizando ciclos while:

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);
}

/*MY SOLUTIONS*/

let index = 0;
while (index < 5) {
  index++;
  console.log(`El valor del index es: ${index}`)
}

let j = 10;
while (j >= 2) {
  j--;
  console.log(`El valor de j es: ${j}`)
}

3锔忊儯 Escribe un c贸digo en JavaScript que le pregunte a los usuarios cu谩nto es 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.

const suma = prompt("Cuanto es 2 + 2");
 if(suma == 4){
   console.log("Felicitaciones, respuesta correcta 鈥嬸煡斥嬧湐锔忊");
 } else {
   console.log("Respuesta incorrecta, vuelve a intentar 鈥嬧潓鈥");
 } 

Listas
1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:

  • 驴Qu茅 es un array?
    RESPUESTA: Es un conjunto de elementos con el mismo tipo de datos, los cuales se pueden recorrer para agregar elementos, eliminarlos, duplicarlos.

  • 驴Qu茅 es un objeto?
    RESPUESTA: Es una entidad independiente la cual tiene propiedades, lo podemos comparar en la vida real con un ejemplo, como el cuerpo humano: El cual tiene brazos, piernas, cabeza, color de piel, tiene m茅todos para caminar, correr, pensar, comer, etc.

  • 驴Cu谩ndo es mejor usar objetos o arrays?
    RESPUESTA: Los arrays se utilizan cuando almacenamos m煤ltiples valores de una sola variable, mientras que un objeto puede contener m煤ltiples variables con sus valores.

  • 驴Puedo mezclar arrays con objetos o incluso objetos con arrays?
    RESPUESTA: Si podemos

2锔忊儯 Crea una funci贸n que pueda recibir cualquier array como par谩metro e imprima su primer elemento.

const office = ["Computer", "Laptop", "Mouse", "Printer"];

const myOffice = function(element){
	console.log(element[0])
}

myOffice(office);

3锔忊儯 Crea una funci贸n que pueda recibir cualquier array como par谩metro e imprima todos sus elementos uno por uno (no se vale imprimir el array completo).

const office = ["Computer", "Laptop", "Mouse", "Printer"];

function myOffice(element) {
  for (let i = 0; i < element.length; i++) {
    console.log(`${i + 1} ${element[i]}`)
  }
}
myOffice(office);

4锔忊儯 Crea una funci贸n que pueda recibir cualquier objeto como par谩metro e imprima todos sus elementos uno por uno (no se vale imprimir el objeto completo).

let myPets = {
  dog1: [
    "Jeyka", "8 a帽os"
  ],
  dog2: [
    "Kira", "6 a帽os"
  ],
  cat1: [
    "Simona", "3 a帽os"
  ],
  cat2: [
    "Mona", "2 a帽os" 
  ]
};

function readObject(object) {
  for (let key in object) {
    console.log(object[key]);
 	}
 }
readObject(myPets);

Listas

1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:

  • 驴Qu茅 es un array?

    Un array es una estructura de datos que permite almacenar, de manera secuencial y estructurada, diferentes valores de cualquier tipo. Incluso puedes almacenar arrays dentro un array. Cada unos de los valores que guardes dentro de un array se les conoce como elementos, y cada elemento tiene una posici贸n en el array, mejor conocido como el 铆ndice. Mira el siguiente en el cual se colocan algunos ejemplos de arrays:

    var numeros = [1, 2, 3, 4, 5];
    
    var estudiantesDePlatzi = ["Andr茅s", "Dylan", "Herl谩n", "Andrea"];
    
    var profesDePlatzi = ["Diego De Granda", "JuanDC", "Oscar Barajas", "Estefany Aguilar", "Diana Mart铆nez", "Ricardo Celis"];
    

    Como puedes ver, es muy importante que separes a cada uno de los elementos con una coma. Y por otro lado, el 铆ndice se refiere a cada una de las posiciones en las que se encuentran cada uno de los elementos. En el caso del array numeros tenemos 5 elementos (que van desde el 1 hasta el 5), el 铆ndice del primer elemento (es decir, el n煤mero 1) es el 0; el 铆ndice del segundo es el 1; el del tercero es el 2; y as铆 sucesivamente. Y as铆 pasa con todos los dem谩s arrays. Espero te haya podido quedar claro.

    Para acceder a un valor en espec铆fico que est谩 dentro de un array, solo colocas el nombre de la variable en donde se encuentra el array y luego, entre corchetes ([]), colocas su 铆ndice. Por ejemplo:

    console.log(estudiantesDePlatzi[2]); // "Herl谩n"
    
  • 驴Qu茅 es un objeto?

    Un objeto tambi茅n es una estructura de datos que permite almacenar valores mediante la relaci贸n propiedad - valor. Puede que ahora me digas 驴espera, c贸mo as铆 Andr茅s? Pues pasemos a mirarlo m谩s fijamente mediante c贸digo:

    var profePlatzi1 = {
    		nombre: "JuanDC",
    		facultad: "Desarrollo Web"
    }
    
    var profePlatzi2 = {
    		nombre: "Carolina Boqu铆n",
    		facultad: "Ingl茅s"
    }
    
    var profePlatzi3 = {
    		nombre: "Renzo Cuadra",
    		facultad: "Habilidades Blandas"
    }
    
    var profePlatzi4 = {
    		nombre: "Geraldinne Boh贸rquez",
    		facultad: "Negocios"
    }
    

    Cada una de las variables es un objeto para un profe espec铆fico de Platzi, en el cual tiene dos propiedades para cada uno. La propiedad nombre el cual asigna como valor el nombre de cada profesor, y la propiedad facultad que tiene la categor铆a de los cursos que imparte dicho profesor (que el valor es un string con el nombre de la categor铆a). Para acceder a una de las propiedades con su respectivo valor, puedes hacerlo de dos maneras: con la notaci贸n de corchetes y la notaci贸n de puntos.

    // Notaci贸n de corchetes
    console.log(profePlatzi1["nombre"]); // "JuanDC"
    console.log(profePlatzi1["facultad"]); // "Desarrollo Web"
    
    // Notaci贸n de puntos
    console.log(profePlatzi3.nombre); // "Renzo Cuadra"
    console.log(profePlatzi3.facultad); // "Habilidades Blandas"
    

    La diferencia entre estas dos notaciones, como habr谩s notado, es que para la notaci贸n de corchetes tienes que, entre los corchetes, colocar el nombre de la propiedad entre comillas. Por en cambio, con la notaci贸n de punto esto no ocurre.

  • 驴Cu谩ndo es mejor usar objetos o arrays?

    Los objetos son muy 煤tiles para cuando necesites almacenar datos asociados con claves 煤nicas. Los objetos son ideales cuando quieres acceder a los valores utilizando una clave personalizada en lugar de un 铆ndice num茅rico. Puedes usarlos tambi茅n, si deseas agrupar datos relacionados y acceder a ellos de manera eficiente a trav茅s de la clave, o bien quieras aprovechar las caracter铆sticas y funcionalidades adicionales de los objetos, como los m茅todos incorporados y la capacidad de definir comportamiento personalizado.

    En cambio, los arrays son muy 煤tiles en caso de que necesites almacenar una colecci贸n de elementos ordenados y acceder a ellos mediante un 铆ndice num茅rico, o quieras aprovechar las caracter铆sticas y funcionalidades espec铆ficas de los arrays, como los m茅todos de manipulaci贸n de arreglos (por ejemplo, push, pop, shift, unshift) y las funciones de iteraci贸n (por ejemplo, forEach, map, filter).

  • 驴Puedo mezclar arrays con objetos o incluso objetos con arrays?

    隆Definitivamente, s铆! Pues, en muchos casos, los objetos y los arrays se pueden combinar para lograr la estructura de datos deseada. Por ejemplo, puedes tener un array de objetos donde cada objeto contiene propiedades clave-valor. Mira el siguiente c贸digo en donde cada uno de los objetos profePlatzi est谩n estructurados dentro de un array.

    var profesPlatzi = [
    		{ nombre: "JuanDC", facultad: "Desarrollo Web" },
    		{ nombre: "Carolina Boqu铆n", facultad: "Ingl茅s" },
    		{ nombre: "Renzo Cuadra", facultad: "Habilidades Blandas" },
    		{ nombre: "Geraldinne Boh贸rquez", facultad: "Negocios" }
    ];
    

2锔忊儯 Crea una funci贸n que pueda recibir cualquier array como par谩metro e imprima su primer elemento.

function firstElement(array) {
		console.log(array[0]);
}

3锔忊儯 Crea una funci贸n que pueda recibir cualquier array como par谩metro e imprima todos sus elementos uno por uno (no se vale imprimir el array completo).

function allElements(array) {
		for (var element of array) {
				console.log(element);
		}
}

4锔忊儯 Crea una funci贸n que pueda recibir cualquier objeto como par谩metro e imprima todos sus elementos uno por uno (no se vale imprimir el objeto completo).

function printObject(object) {
    for (var key in object) {
        if (object.hasOwnProperty(key)) {
            console.log(object[key]);
        }
    }
}
  1. a) Una variable representa un espacio en memoria y esta nos permite almacenar informaci贸n. Se pueden alojar diversos tipos de datos en las variables.
    b) Se declara una variable para reservar el espacio en memoria y se inicializa al asignarle alg煤n valor determinado.
    c) Una operaci贸n matem谩tica vs la uni贸n de datos tipo string.
    d) +
  2. nombre = "string"
    apellido = "string"
    usuario = "string"
    edad = number
    email = "string"
    mayor de edad = booleano
    dinero = number
    deudas = number
 var nombre = "johan";
var apellido = "l贸pez";
var usuario = "user";
var edad = 33;
var email = "email@email";
var mayorEdad = true;
var dinero = 5000;
var deuda = 400;

console.log(nombre + apellido);
var total;
total = dinero -deuda;
console.log(total);

Funciones

Una funci贸n es una parte del c贸digo que nos permite automaitzar el mismo, se puede declarar o expresar y depende (seg煤n su utilidad) de unos par谩metros para su ejecuci贸n.

Test JavaScript 馃槃

Variables y operaciones 馃専

1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:

  • 驴Qu茅 es una variable y para qu茅 sirve?

    • Elemento que se emplea para almacenar y hacer referencia a otro valor. Pueden tenerse presentes las variables 鈥渧ar鈥, 鈥渓et鈥 o 鈥渃onst鈥
  • 驴Cu谩l es la diferencia entre declarar e inicializar una variable?

    • Declarar: Es darle nombre a la variable.
    • Inicializar: Es darle valor a una variable declarada
  • 驴Cu谩l es la diferencia entre sumar n煤meros y concatenar strings?

    • Sumar n煤meros: Realizar la operaci贸n entre 2 o n n煤meros teniendo presente el operador de la suma 鈥+鈥.
    • Concatenar: Unir varios Strings con el operando +; pero teniendo en cuenta que los Strings deben ir en comillas, ya sean simples o dobles.
  • 驴Cu谩l operador me permite sumar o concatenar?

    • Con el signo de sumar 鈥+鈥

2锔忊儯 Determina el nombre y tipo de dato para almacenar en variables la siguiente informaci贸n:

  • Nombre: String
  • Apellido: String
  • Nombre de usuario en Platzi: String
  • Edad: int
  • Correo electr贸nico: String
  • Mayor de edad: boolean o int (depende del contexto)
  • Dinero ahorrado: boolean o int (depende del contexto)
  • Deudas: boolean o int (depende del contexto)

3锔忊儯 Traduce a c贸digo JavaScript las variables del ejemplo anterior y deja tu c贸digo en los comentarios.

<code> 
var nombre;
var apellido;
var nombreUsuario;
var edad;
var correoElectronico;
var mayorEdad;
var dineroAhorrado;
var deudas;

nombre = "Laura";
apellido = "Garc铆a";
nombreUsuario = "LauraVaGarciaA";
edad = 27;
correoElectronico = "[email protected]";
mayorEdad = true;
dineroAhorrado = true;
deudas = false;

console.log('Mi nombre es: '+nombre+' '+apellido+'; mi usuario es: '+nombreUsuario+'; tengo '+edad+' a帽os. Mi correo electr贸nico es: '+correoElectronico+' 驴Soy mayor de edad?: '+mayorEdad+' 驴Tengo dinero Ahorrado?: '+dineroAhorrado+' 驴Tengo deudas?: '+deudas );

4锔忊儯 Calcula e imprime las siguientes variables a partir de las variables del ejemplo anterior:

  • Nombre completo (nombre y apellido)
  • Dinero real (dinero ahorrado menos deudas)
<code> 

var nombre;
var apellido;
var nombreUsuario;
var edad;
var correoElectronico;
var mayorEdad;
var dineroAhorrado;
var deudas;

nombre = "Laura";
apellido = "Garc铆a";
nombreUsuario = "LauraVaGarciaA";
edad = 27;
correoElectronico = "[email protected]";
mayorEdad = true;
dineroAhorrado = 10000000;
deudas = 500000;

dineroReal = dineroAhorrado - deudas;

console.log('Mi nombre es: '+nombre+' '+apellido+'; mi usuario es: '+nombreUsuario+'; tengo '+edad+' a帽os. Mi correo electr贸nico es: '+correoElectronico+' 驴Soy mayor de edad?: '+mayorEdad+'. Mi dinero real, es: $ '+dineroReal+' Pesos Colombianos' );

// Variables y operaciones

// 驴Qu茅 es una variable y para qu茅 sirve?
// Una variable es un espacio en memoria, que sirve para almacenar
// cualquier tipo de dato ya se string, int, o boolean

// 驴Cu谩l es la diferencia entre declarar e inicializar una variable?
// Cuando se declara una variable, se esta reservando un espacio en
// memoria, pero que no tiene ningun tipo de informacion esta alli
// esperandonos, Ahora cuando la inicializamos, es cuando le damos
// algun tipo de valor que es almacenado en la variable.Ahora

// 驴Cu谩l es la diferencia entre sumar n煤meros y concatenar strings?
// Cuando se suman dos numeros, estamos involucrando tipos de datos
// entero o boolenos, cuando se concardenan, se unen dos tipos de
// datos string, es decir que son dos cosas totalmente diferentes.

// 驴Cu谩l operador me permite sumar o concatenar?
// Es el operador de suma, este operador te permite sumar y concardenar
// datos de tipo string.

// Determina el nombre y tipo de dato para almacenar en
// variables la siguiente informaci贸n:

// Nombre name = string
// Apellido lastName = string
// Nombre de usuario en Platzi userName = string
// Edad age = int
// Correo electr贸nico email = string
// Mayor de edad ageAlderly = int
// Dinero ahorrado dinerSaved = int
// Deudas debts = string

// Traduce a c贸digo JavaScript las variables del ejemplo anterior
// y deja tu c贸digo en los comentarios.

// let name, lastName, userName, age, email, ageAlder,y, dinerSaved, debts;

// Calcula e imprime las siguientes variables a partir de las variables del ejemplo anterior:
// Nombre completo (nombre y apellido)
// Dinero real (dinero ahorrado menos deudas)

// let name = 鈥淥scar鈥, lastName = 鈥淟opez鈥, fullName;
// console.log(${name} ${lastName});

// let deinerSaved = 5000, deudas = 15000; realDiner;
// realDiner = dinerSaved - realDiner;
// console.log(realDiner);

// Funciones

// Responde las siguientes preguntas en la secci贸n de comentarios:

// 驴Qu茅 es una funci贸n?
// Una funcion es pedacito de codigo envuelto entre llaves, que hacen algo
// especifico y que ademas es reutilizable.

// 驴Cu谩ndo me sirve usar una funci贸n en mi c贸digo?
// En este caso si veo que el codigo que estoy escribiendo es muy repetitivo,
// es decir hace siempre lo mismo por ejemplo una operacion de suma alli
// aplico una funcion por que la puedo reutilizar y escribiria el codigo una sola vez

// 驴Cu谩l es la diferencia entre par谩metros y argumentos de una funci贸n?
// Bueno cuando hablamos de parametros, son los que van dentro de los parentesis
// de la funcion y los argumentos son el valor de los parametros, seria como
// la variable y el valor de la variable.Ahora

// Convierte el siguiente c贸digo en una funci贸n, pero, cambiando cuando sea necesario
// las variables constantes por par谩metros y argumentos en una funci贸n:

// function datos(name= 鈥淛uan David鈥, lastname = 鈥淐astro Gallego鈥, nickname = 鈥渏uandc鈥){
// completeName = name + lastname;
// console.log(completeName);
// }
// datos();

// Condicionales

// 驴Qu茅 es un condicional?
// Un condicional es algo que se puedo cumplir o no dependiendo de una condicion.Qu茅

// 驴Qu茅 tipos de condicionales existen en JavaScript y cu谩les son sus diferencias?
// En JavaScript existen los condicionales simples, condicionales dobles, condicionales
// anidados, condicionales multiples bueno esos son de los que yo me acuerdo, ahora su
// diferencia implica en que los simples validan una sola condicion, los dobles como dice su nombre
// dos condiciones, los multiples muchas condiciones, y los anidados si la consicion
// primera es verdadera evaluara otra condicion dependiendo de la anterior y asi sucesivamente
// ademas de la diferencia de us estructura.

// 驴Puedo combinar funciones y condicionales?
// Si claro ademas de eso arreglos, objetos y funciones con funciones.

// Replica el comportamiento del siguiente c贸digo que usa la sentencia
// switch utilizando if, else y else if:
// const tipoDeSuscripcion = 鈥淏asic鈥;

// switch (tipoDeSuscripcion) {
// case 鈥淔ree鈥:
// console.log(鈥淪olo puedes tomar los cursos gratis鈥);
// break;
// case 鈥淏asic鈥:
// console.log(鈥淧uedes tomar casi todos los cursos de Platzi durante un mes鈥);
// break;
// case 鈥淓xpert鈥:
// console.log(鈥淧uedes tomar casi todos los cursos de Platzi durante un a帽o鈥);
// break;
// case 鈥淓xpertPlus鈥:
// console.log(鈥淭煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi durante un a帽o鈥);
// break;
// }

// let tipoDeSuscripcion = 鈥淓xpertPlus鈥;

// if (tipoDeSuscripcion === 鈥淔ree鈥) {
// console.log(鈥淪olo puedes tomar los cursos gratis鈥);
// } else if (tipoDeSuscripcion === 鈥淏asic鈥) {
// console.log(鈥淧uedes tomar casi todos los cursos de Platzi durante un mes鈥);
// } else if (tipoDeSuscripcion === 鈥淓xpert鈥) {
// console.log(鈥淧uedes tomar casi todos los cursos de Platzi durante un a帽o鈥);
// } else if (tipoDeSuscripcion === 鈥淓xpertPlus鈥) {
// console.log(
// 鈥淭煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi durante un a帽o鈥
// );
// }

// Replica el comportamiento de tu condicional anterior con if, else y else if,
// pero ahora solo con if (sin else ni else if).

// let tipoDeSuscripcion = 鈥淓xpertPlus鈥;

// if (tipoDeSuscripcion === 鈥淔ree鈥) {
// console.log(鈥淪olo puedes tomar los cursos gratis鈥);
// }
// if (tipoDeSuscripcion === 鈥淏asic鈥) {
// console.log(鈥淧uedes tomar casi todos los cursos de Platzi durante un mes鈥);
// }
// if (tipoDeSuscripcion === 鈥淓xpert鈥) {
// console.log(鈥淧uedes tomar casi todos los cursos de Platzi durante un a帽o鈥);
// }
// if (tipoDeSuscripcion === 鈥淓xpertPlus鈥) {
// console.log(
// 鈥淭煤 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. 馃槒

// let tipoSuscripcion = [
// 鈥淔ree鈥,
// 鈥淏asic鈥,
// 鈥淓xpert鈥,
// 鈥淓xpertPlus鈥
// ];

// let = descripcionServicio = [
// 鈥淪olo puedes tomar los cursos gratis鈥,
// 鈥淧uedes tomar casi todos los cursos de Platzi durante un mes鈥,
// 鈥淧uedes tomar casi todos los cursos de Platzi durante un a帽o鈥,
// 鈥淭煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi durante un a帽o鈥
// ];

// let userTipoSuscripcion = 鈥淏asic鈥;

// for(i = 0; i < tipoSuscripcion.length; i++){
// if(tipoSuscripcion[i
// ] == userTipoSuscripcion){
// console.log(Ususario tiene un tipo de suscripcion: ${tipoSuscripcion[i]} // nota: ${descripcionServicio[i]})
// }
// }

// Ciclos

// 驴Qu茅 es un ciclo?
// Un ciclo es un pedacito de codigo que se ejecuta una y otra vez hasta que la condicion
// deja de ser verdadera se rompe y se ejecuta el codigo dentro de su ScriptProcessorNode

// 驴Qu茅 tipos de ciclos existen en JavaScript?
// Bueno existen los ciclos while, for, do while, foreach

// 驴Qu茅 es un ciclo infinito y por qu茅 es un problema?
// Un ciclo infinito es cuando la condicion es siempre verdadera, estos casos pasan cuando
// la variable contador no tiene incremento y siempre tendra el mismo valor, lo que hara
// que el ciclo se ejecute una y otra vez, esto es un problema para nuesta pagina web
// ya que no se ejecutaran el resto de codigo y la pagina simpre quedara cargando.

// 驴Puedo mezclar ciclos y condicionales?
// si claro podemos mesclar ciclos nocesariamente con condicionales sino tan bien con
// objetos, arrays, funciones etc

// Replica el comportamiento de los siguientes ciclos for utilizando ciclos while:
// for (let i = 0; i < 5; i++) {
// console.log("El valor de i es: " + i);
// }
// let i = 0;
// while(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);
// }

// let i = 10;
// while (i >= 0) {
// console.log("El valor de i es: " + i);
// i鈥;
// }

// Escribe un c贸digo en JavaScript que le pregunte a los usuarios cu谩nto es 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.

// let suma = 4
// let res = prompt(parseInt(鈥渃uanto es 2 + 2 ?鈥));
// while(suma != res){
// res = prompt(鈥渃uanto es 2 + 2?鈥);
// }
// console.log(鈥淒IVINOOOOOOO鈥)

// ARRAY
// Responde las siguientes preguntas en la secci贸n de comentarios:
// 驴Qu茅 es un array?
// Es una variable que p煤ede almacenar diferentes tipo de datos, string, int, boolean,
// funciones, objestos etc, en pocas palabras es como una caja grande que puede
// almacenar diferentes tipo de datos.

// 驴Qu茅 es un objeto?
// Es algo que tiene propiedades que conforman al objeto, es decir un carro
// tiene llantas, puertas, vidrios, asientos etc
// estas pro铆edades conforman al objeto.

// 驴Cu谩ndo es mejor usar objetos o arrays?
// ambos son utiles, aqui depende del caso de lo que uno quiere hacer
// hay veces que es mejor usar arrays que objetos y lo contrario

// 驴Puedo mezclar arrays con objetos o incluso objetos con arrays?
// si se puede

// Crea una funci贸n que pueda recibir cualquier array como par谩metro
// e imprima su primer elemento.

// let comidas = [鈥榣eche鈥, 鈥榶ogut鈥, 鈥榖anana鈥, 鈥榓rroz鈥, 鈥榝rijoles鈥橾;

// function imprimir(recibir){
// console.log(recibir[3]);
// }

// imprimir(comidas)

// Crea una funci贸n que pueda recibir cualquier array como par谩metro e imprima
// todos sus elementos uno por uno (no se vale imprimir el array completo).

// let dia = [鈥榣unes鈥,鈥榤artes鈥,鈥榤iercoles鈥,鈥榡ueves鈥,鈥榲iernes鈥橾;

// function imprimir ( recibir){
// for(i=0; i < recibir.length; i++){
// console.log(dia: ${recibir[i]})
// }
// }
// imprimir(dia)

// Crea una funci贸n que pueda recibir cualquier objeto como
// par谩metro e imprima todos sus elementos uno por uno
// (no se vale imprimir el objeto completo).
//

// aqui me falto casi la cumino jejejje鈥

Variables y operaciones
1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:
驴Qu茅 es una variable y para qu茅 sirve?

It's a code block that we write with a name and a value that save it on memory

驴Cu谩l es la diferencia entre declarar e inicializar una variable?

When you declare a var you put the name but do not necessarily you put the value and init a var it's when putting the var value

驴Cu谩l es la diferencia entre sumar n煤meros y concatenar strings?

sum numbers you use the format of the numbers and concatenate string it's when you join strings

驴Cu谩l operador me permite sumar o concatenar?

the operator or signal +

2锔忊儯 Determina el nombre y tipo de dato para almacenar en variables la siguiente informaci贸n:
Nombre - string
Apellido - string
Nombre de usuario en Platzi - string
Edad - number
Correo electr贸nico - string
Mayor de edad - boolean
Dinero ahorrado - number
Deudas - boolean
3锔忊儯 Traduce a c贸digo JavaScript las variables del ejemplo anterior y deja tu c贸digo en los comentarios.
let name = 鈥楬ector鈥;
let lastName = 鈥楳ilano鈥;
let username = 鈥楾orecito鈥;
let age = 20;
let correo = 鈥[email protected]鈥;
let fullAge = boolean;
let saveMoney = number;
let debts = number

4锔忊儯 Calcula e imprime las siguientes variables a partir de las variables del ejemplo anterior:
Nombre completo (nombre y apellido)
const fullName = (name, lastName) => name + lastName;

Dinero real (dinero ahorrado menos deudas)
const realMoney = (saveMoney, debts) => saveMoney - debts;

Funciones
1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:
驴Qu茅 es una funci贸n?

a code block that saves code that with can use in other parts of our project

驴Cu谩ndo me sirve usar una funci贸n en mi c贸digo?

When you have to use the same piece of code more than one time

驴Cu谩l es la diferencia entre par谩metros y argumentos de una funci贸n?
parameters are the name listed on the function and arguments are the value passed on the function

2锔忊儯 Convierte el siguiente c贸digo en una funci贸n, pero, cambiando cuando sea necesario las variables constantes por par谩metros y argumentos en una funci贸n:
const name = 鈥淛uan David鈥;
const lastName = 鈥淐astro Gallego鈥;
const nickname = 鈥渏uandc鈥;

const completeName = (name, lastName) => let fullName = 鈥榥ame + lastName鈥;

console.log("Mi nombre es " + fullName + ", pero prefiero que me digas " + nickname + 鈥.鈥);
Condicionales
1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:
驴Qu茅 es un condicional?
code block that is ejecuted if something it鈥檚 true or not
驴Qu茅 tipos de condicionales existen en JavaScript y cu谩les son sus diferencias?
if: something true
else: sometring that is not true
if else: a specific condition

驴Puedo combinar funciones y condicionales?
2锔忊儯 Replica el comportamiento del siguiente c贸digo que usa la sentencia switch utilizando if, else y else if:
const tipoDeSuscripcion = 鈥淏asic鈥;

switch (tipoDeSuscripcion) {
case 鈥淔ree鈥:
console.log(鈥淪olo puedes tomar los cursos gratis鈥);
break;
case 鈥淏asic鈥:
console.log(鈥淧uedes tomar casi todos los cursos de Platzi durante un mes鈥);
break;
case 鈥淓xpert鈥:
console.log(鈥淧uedes tomar casi todos los cursos de Platzi durante un a帽o鈥);
break;
case 鈥淓xpertPlus鈥:
console.log(鈥淭煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi durante un a帽o鈥);
break;
}
3锔忊儯 Replica el comportamiento de tu condicional anterior con if, else y else if, pero ahora solo con if (sin else ni else if).
馃挕 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. 馃槒

Ciclos
1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:
驴Qu茅 es un ciclo?
驴Qu茅 tipos de ciclos existen en JavaScript?
驴Qu茅 es un ciclo infinito y por qu茅 es un problema?
驴Puedo mezclar ciclos y condicionales?
2锔忊儯 Replica el comportamiento de los siguientes ciclos for utilizando ciclos while:
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);
}
3锔忊儯 Escribe un c贸digo en JavaScript que le pregunte a los usuarios cu谩nto es 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.

Listas
1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:
驴Qu茅 es un array?
驴Qu茅 es un objeto?
驴Cu谩ndo es mejor usar objetos o arrays?
驴Puedo mezclar arrays con objetos o incluso objetos con arrays?
2锔忊儯 Crea una funci贸n que pueda recibir cualquier array como par谩metro e imprima su primer elemento.
3锔忊儯 Crea una funci贸n que pueda recibir cualquier array como par谩metro e imprima todos sus elementos uno por uno (no se vale imprimir el array completo).
4锔忊儯 Crea una funci贸n que pueda recibir cualquier objeto como par谩metro e imprima todos sus elementos uno por uno (no se vale imprimir el objeto completo).

Condicionales
3锔忊儯 Replica el comportamiento de tu condicional anterior con if, else y else if, pero ahora solo con if (sin else ni else if).

馃挕 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.

var tiposDeSuscripcion = [
    "Free",
    "Basic", 
    "Expert", 
    "ExpertPlus"
];
var infoDeSuscripcion = [
    "solo puedes tomar los cursos gratis", 
    "puedes tomar casi todos los cursos de Platzi durante un mes", 
    "puedes tomar casi todos los cursos de Platzi durante un a帽o", 
    "t煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi durante un a帽o"
];

const suscripcion = "Basic";

var indice = tiposDeSuscripcion.indexOf(suscripcion);

console.log(infoDeSuscripcion[indice]);

Test de Javascript
Variables y operaciones

  • 驴Qu茅 es una variable y para qu茅 sirve?
    Una variable es un contenedor o espacio de memoria en donde se pueden almacenar datos.
  • 驴Cu谩l es la diferencia entre declarar e inicializar una variable?
    Cuando se declara una variable unicamente se le indica al programa a partir de donde existe o desde donde se puede empezar a ocupar, y se inicializa una variable cuando ya se le asigna un valor.
  • 驴Cu谩l es la diferencia entre sumar n煤meros y concatenar strings?
    La primera diferencia y la mas importante seria el valor que obtiene cada variable. Cuando se suman dos n煤meros obtenemos un valor entero y numerico por ejempo, 3 + 6 = 9 y cuando concatenamos dos strings obtenemos un string mas largo, por ejemplo 鈥3鈥 + 鈥6鈥 = 36
  • 驴Cu谩l operador me permite sumar o concatenar?
    El signo de suma 鈥+鈥 es el que nos permite realizar ambas operaciones.

Replica el comportamiento de tu condicional anterior con if, else y else if, pero ahora solo con if (sin else ni else if).

 const typeSuscripcion = {
  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",
};
let userSuscription = "Expert";

if (userSuscription in typeSuscripcion) {
  console.log(typeSuscripcion[userSuscription]);
}

FUNCIONES
2锔忊儯 Convierte el siguiente c贸digo en una funci贸n, pero, cambiando cuando sea necesario las variables constantes por par谩metros y argumentos en una funci贸n:

function publicSpeech() {
    const name = "Juan David ";
    const lastname = "Castro Gallego ";
    const completeName = name + lastname;
    const nickname = "juandc";
    for ( i = 0; i < 1; i++) {
        console.log("My name is " + completeName + "but please call me " + nickname);
    }
}
publicSpeech();

1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:
驴Qu茅 es un condicional?
Una instrucci贸n que eval煤a verdadero o falso para luego realizar una acci贸n
驴Qu茅 tipos de condicionales existen en JavaScript y cu谩les son sus diferencias?
_Existen 2 tipos de funciones

  1. Declarativas
  2. De expresi贸n_
    驴Puedo combinar funciones y condicionales?
    Si

2锔忊儯 Replica el comportamiento del siguiente c贸digo que usa la sentencia switch utilizando if, else y else if:

let tipoDeSuscripcion = 'Basic';

if (tipoDeSuscripcion === 'Free') {
  console.log('Solo puedes tomar los cursos gratis');
} else 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");
}

3锔忊儯 Replica el comportamiento de tu condicional anterior con if, else y else if, pero ahora solo con if (sin else ni else if).

let tipoDeSuscripcion2 = 'Free';

if (tipoDeSuscripcion2 === 'Free') {
  console.log('Solo puedes tomar los cursos gratis');
} 
if (tipoDeSuscripcion2 === 'Basic') {
  console.log('Puedes tomar casi todos los cursos de Platzi durante un mes');
} 
if (tipoDeSuscripcion2 === 'Expert') {
  console.log('Puedes tomar casi todos los cursos de Platzi durante un a帽o');
} 
if (tipoDeSuscripcion2 === 'ExpertPlus') {
  console.log("T煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi durante un a帽o");
}

Ac谩 dejo mi aporte.


// Variables y operaciones
let nombre = 'luis';
let apellido = 'pacheco';
let usuarioPlatzi = 'pachecolanzziano';
let edad = 32;
let email = '[email protected]';
let mayor_de_edad = true;
let dinero_ahorrado = 200000;
let deudas = 2700000;

console.log(`Bienvenido ${nombre.toUpperCase()}`)
document.write(nombre +' '+apellido);
document.write('<br>')
document.write(`${nombre} ${apellido}`);

//Funciones
const name = "Juan David";
const lastname = " Castro Gallego";
const completeName = name + lastname;
const nickname = "juandc";

function mostrarDatos(completeName, nickname) {
  document.write("Mi nombre es " + completeName + ", pero prefiero que me digas " + nickname + ".");
}
mostrarDatos(completeName, nickname)

// Condicionales
const tipoDeSuscripcion = "Basic";

if (tipoDeSuscripcion == "Free") {
  console.log("Solo puedes tomar los cursos gratis");
}else 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("T煤 opcion no es valida");
}

// ------ 2 ------
const tipoDeSuscripcion2 = "Basic";

if (tipoDeSuscripcion2 == "Free") {
  console.log("Solo puedes tomar los cursos gratis");
}
if(tipoDeSuscripcion2 == "Basic"){
  console.log("Puedes tomar casi todos los cursos de Platzi durante un mes");
}
if(tipoDeSuscripcion2 == "Expert"){
  console.log("Puedes tomar casi todos los cursos de Platzi durante un a帽o");
}
if(tipoDeSuscripcion2 == "ExpertPlus"){
  console.log("T煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi durante un a帽o");
}
 
// ---  Bonus ---
var arrayDeSuscripcion =[
  "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",
]
let pos = arrayDeSuscripcion.indexOf('Free');

if (pos != -1){
  console.log(arrayDeSuscripcion[pos+1])
}

// Ciclos
//convertir de For a While
let i = 0
while(i<5){
  console.log("El valor de i es: " + i);
  i++
}

let k = 10
while (k >= 2 ) {
  console.log("El valor de i es: " + k);
  k--
}

// 2+2=?

while (true){
  let valor = parseInt(prompt("cuanto es 2+2="));
  if(valor == 4){
    document.write(`Felicitaciones 2 + 2 = ${valor}`);
    break;
  }else{
    alert(`La respuesta no es ${valor}, vulve a intentarlo`);
  }
}


//Listas
// --- 1 ---
function firstElementArray(array){
  document.write(array[0]);
}
let frutas=["manzana", "pera", "mango"]
firstElementArray(frutas);

// --- 2 ---
let frutas=["manzana", "pera", "mango"]
function mostrarArray(array){
  for (let elemento of array){
    document.write(`${elemento}<br>`)
  }
}
mostrarArray(frutas)

//--- 3 ---
let persona = {
  'nombre':'luis',
  'apellido':'pacheco',
  'edad':32,
  'email':'[email protected]'
}

function mostrarObjeto(objeto){
  for(item in objeto){
      document.write(`${objeto[item]}<br>`)
  }
}
mostrarObjeto(persona);

let i = 0;
while(i < 1){
let x = prompt(鈥2 + 2?鈥);
x = parseInt(x);
if(x == 4){alert(鈥楩elicidades鈥)
i = 1;}

}

Variables y operaciones
1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:

  • 驴Qu茅 es una variable y para qu茅 sirve?
    Una variable es una elemento cuyo valor puede cambiar en la ejecucion del programa, y se utiliza generalmente para almacenar los resultados deseados de una operacion.

  • 驴Cu谩l es la diferencia entre declarar e inicializar una variable?
    El declarar solo es nombrar sin especificar un valor inicial o tipo de dato a manipular, y el inicializar si se le especifica esta informacion.

  • 驴Cu谩l es la diferencia entre sumar n煤meros y concatenar strings?
    Sumar n煤meros entrega como resultado otro n煤mero, y concatenar, entregra como resultado la union de dos o mas cadena de caracteres.

  • 驴Cu谩l operador me permite sumar o concatenar?
    El operador es el 鈥+鈥

2锔忊儯 Determina el nombre y tipo de dato para almacenar en variables la siguiente informaci贸n:
Nombre --> String
Apellido --> String
Nombre de usuario en Platzi --> String
Edad --> Number
Correo electr贸nico --> String
Mayor de edad --> Boolean
Dinero ahorrado --> Number
Deudas --> Number

3锔忊儯 Traduce a c贸digo JavaScript las variables del ejemplo anterior y deja tu c贸digo en los comentarios.
var Nombre = "Oscar Giovanny"
var Apellido = "Rivera Alvarez"
var Nombre_de_usuario_en_Platzi = "argo_platzi"
var Edad = "26"
var Correo_electr贸nico = "[email protected]"
var Mayor_de_edad = true
var Dinero_ahorrado = 10551000
var Deudas = 254627

4锔忊儯 Calcula e imprime las siguientes variables a partir de las variables del ejemplo anterior:
Nombre completo (nombre y apellido)
Dinero real (dinero ahorrado menos deudas)

Funciones
1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:

-驴Qu茅 es una funci贸n?
Es una maquina que hace lo que yo quiero, en donde al darle una entrada, se procesara con las instrucciones programdas y generara una sailda

-驴Cu谩ndo me sirve usar una funci贸n en mi c贸digo?
Cuando requiero realizar operaciones repetitivas

-驴Cu谩l es la diferencia entre par谩metros y argumentos de una funci贸n?
Los parametros son con las que se define la funcion, y los argumentos son las que se usan cuando se llama a la funcion

2锔忊儯 Convierte el siguiente c贸digo en una funci贸n, pero, cambiando cuando sea necesario las variables constantes por par谩metros y argumentos en una funci贸n:

Condicionales
1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:
-驴Qu茅 es un condicional?
Evaluacion de alguna expresion para realizar o no una accion

-驴Qu茅 tipos de condicionales existen en JavaScript y cu谩les son sus diferencias?
If 鈥 else
Switch 鈥 case
Con if 鈥 else puedo evaluar varias condiciones y con switch solo se evalua la igualdad con una expresion especifica

驴Puedo combinar funciones y condicionales?
Si se refiere a que dentro de una funcion puedo utilizar condicionales o que dependiendo del resultado de una condicion (true o false) puedo invocar a una funcion, si.

2锔忊儯 Replica el comportamiento del siguiente c贸digo que usa la sentencia switch utilizando if, else y else if:

Ciclos
1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:
-驴Qu茅 es un ciclo?
Instruciones ordenadas repetitivas que dependen de una condicion
-驴Qu茅 tipos de ciclos existen en JavaScript?
While
For
Do 鈥 While
-驴Qu茅 es un ciclo infinito y por qu茅 es un problema?
Un ciclo que su condicion siempre es true, por lo cual se ejecutara siempre, y solo se saldra del ciclo hasta que se se detenga manualmente de manera abrupta el proceso y el problema de estos ciclos es que con el tiempo afectan el rendimiento de la maquina que lo ejecuta

-驴Puedo mezclar ciclos y condicionales?
Si

2锔忊儯 Replica el comportamiento de los siguientes ciclos for utilizando ciclos while:

3锔忊儯 Escribe un c贸digo en JavaScript que le pregunte a los usuarios cu谩nto es 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.

Listas
1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:
-驴Qu茅 es un array?
Es un vector, 1xn, en donde se puede almacenar datos listados
-驴Qu茅 es un objeto?
Es una colecci贸n de datos relacionados con m煤ltiples variables con sus valores.
-驴Cu谩ndo es mejor usar objetos o arrays?
-驴Puedo mezclar arrays con objetos o incluso objetos con arrays?
Si
2锔忊儯 Crea una funci贸n que pueda recibir cualquier array como par谩metro e imprima su primer elemento.

3锔忊儯 Crea una funci贸n que pueda recibir cualquier array como par谩metro e imprima todos sus elementos uno por uno (no se vale imprimir el array completo).

4锔忊儯 Crea una funci贸n que pueda recibir cualquier objeto como par谩metro e imprima todos sus elementos uno por uno (no se vale imprimir el objeto completo).

Variables y operaciones
1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:
驴Qu茅 es una variable y para qu茅 sirve?

Es un espacio reservado en la mem贸ria para poder guardar la informaci贸n que necesitamos para nuestro programa.

驴Cu谩l es la diferencia entre declarar e inicializar una variable?

Para decirlo de forma directa declarar una variable es hacer una reserva de espacio pero sin darle un visualViewport. El inicializar una variable
es poner dentro de ese espacio una informaci贸n.

驴Cu谩l es la diferencia entre sumar n煤meros y concatenar strings?

La diferencia es que sumar n煤meros es hacer una operaci贸n matem谩tica, mientras que concatenar implica poner dos valores uno al lado del onstorage.

驴Cu谩l operador me permite sumar o concatenar?

El operador que permite sumar o concatenar seg煤n como lo pongas es +

2锔忊儯 Determina el nombre y tipo de dato para almacenar en variables la siguiente informaci贸n:
Nombre - varchar, nombre
Apellido -varchar, apellido
Nombre de usuario en Platzi - varchar, usuario
Edad - Integer, edad
Correo electr贸nico - varchar(255), mail
Mayor de edad - Boolean, mayor
Dinero ahorrado - Float, saldo
Deudas - Float, deuda
3锔忊儯 Traduce a c贸digo JavaScript las variables del ejemplo anterior y deja tu c贸digo en los comentarios.

let nombre = 鈥楳aria鈥;
let apellido = 鈥榤artinez鈥;
let usuario = 鈥榤arti鈥;
let edad = 26;
var correoElectronico = 鈥[email protected]鈥;
let mayorDeEdad = true;
var ahorros = 50000;
var deuda = 500;

4锔忊儯 Calcula e imprime las siguientes variables a partir de las variables del ejemplo anterior:
Nombre completo (nombre y apellido)
console.log("Este es mi "+ nombre + " y mi apellido es " + apellido)
Dinero real (dinero ahorrado menos deudas)
var dinero-real = ahorrado -deudas;
console.log("El dinero ahorrado es " + dinero-real)
Funciones
1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:
驴Qu茅 es una funci贸n?

Es como un procedimiento que tiene en el interior una s茅rie de instrucciones.

驴Cu谩ndo me sirve usar una funci贸n en mi c贸digo?

Usamos las funciones cuando deber铆amos repetir muchas veces un trozo de c贸digo. Para ello simplemente creamos una funci贸n.

驴Cu谩l es la diferencia entre par谩metros y argumentos de una funci贸n?

los par谩metros son los nombres que aparecen en la definici贸n de una funci贸n. Por su parte, los argumentos son los valores que le
pasamos (y que, por tanto, recibe) una funci贸n.

2锔忊儯 Convierte el siguiente c贸digo en una funci贸n, pero, cambiando cuando sea necesario las variables constantes por par谩metros y argumentos en una funci贸n:
const name = 鈥淛uan David鈥;
const lastname = 鈥淐astro Gallego鈥;
const completeName = name + lastname;
const nickname = 鈥渏uandc鈥;

function nombre (completeName, nickname){
return console.log("Mi nombre es " + completeName + ", pero prefiero que me digas " + nickname + 鈥.鈥);
}

nombre(completeName, nickname)

Condicionales
1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:
驴Qu茅 es un condicional?

Si se da una condici贸n pasan una s茅rie de cosas si no no.

驴Qu茅 tipos de condicionales existen en JavaScript y cu谩les son sus diferencias?

Existen:

!== no es igual ni en valor ni en tipo

= es mayor igual que
<= es menor igual que
true es verdad
false no es verdad
mayor que
< menor que
= igual que
&& y
|| o
== es igual al valor
=== es igual al valor y al tipo

驴Puedo combinar funciones y condicionales?

Si puedo combinar condicionales y puedo llamar a funciones dentro de funciones.

2锔忊儯 Replica el comportamiento del siguiente c贸digo que usa la sentencia switch utilizando if, else y else if:
const tipoDeSuscripcion = 鈥淏asic鈥;

switch (tipoDeSuscripcion) {
case 鈥淔ree鈥:
console.log(鈥淪olo puedes tomar los cursos gratis鈥);
break;
case 鈥淏asic鈥:
console.log(鈥淧uedes tomar casi todos los cursos de Platzi durante un mes鈥);
break;
case 鈥淓xpert鈥:
console.log(鈥淧uedes tomar casi todos los cursos de Platzi durante un a帽o鈥);
break;
case 鈥淓xpertPlus鈥:
console.log(鈥淭煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi durante un a帽o鈥);
break;
}

if(tipoDeSuscripcion == 鈥淔ree鈥){
console.log(鈥淪olo puedes tomar los cursos gratis鈥);
}else if(tipoDeSuscripcion == 鈥淏asic鈥 ){
console.log(鈥淧uedes tomar casi todos los cursos de Platzi durante un mes鈥);
}else if(tipoDeSuscripcion == 鈥淓xpert鈥){
console.log(鈥淧uedes tomar casi todos los cursos de Platzi durante un a帽o鈥);
}else if(tipoDeSuscripcion == 鈥淓xpertPlus鈥){
console.log(鈥淭煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi durante un a帽o鈥);
}else{
console.log(鈥淣o hay ninguna opci贸n v谩lida鈥);
}

3锔忊儯 Replica el comportamiento de tu condicional anterior con if, else y else if, pero ahora solo con if (sin else ni else if).
馃挕 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. 馃槒

if(tipoDeSuscripcion == 鈥淔ree鈥潀|tipoDeSuscripcion == 鈥淏asic鈥潀|tipoDeSuscripcion == 鈥淓xpert鈥潀|tipoDeSuscripcion == 鈥淓xpertPlus鈥){
console.log(鈥淧uedes tomar un curso en Platzi鈥);
}

Ciclos
1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:
驴Qu茅 es un ciclo?
驴Qu茅 tipos de ciclos existen en JavaScript?
驴Qu茅 es un ciclo infinito y por qu茅 es un problema?
驴Puedo mezclar ciclos y condicionales?
2锔忊儯 Replica el comportamiento de los siguientes ciclos for utilizando ciclos while:
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);
}
3锔忊儯 Escribe un c贸digo en JavaScript que le pregunte a los usuarios cu谩nto es 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.
prompt(驴Cu谩nto son 2 + 2 ?);
Listas
1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:
驴Qu茅 es un array?

Es un tipo de dato estructurado que almacena datos, del mismo tipo y relacionados.

驴Qu茅 es un objeto?

Es una estructura con la que puedes replicar una misma estructura para un conjunto de datos. Puedes hacer sin repetir c贸digo
ojetos similares y programar solo las diferencias.

驴Cu谩ndo es mejor usar objetos o arrays?

Cuando teneemos que replicar una estructura varias veces usamos objetos. Cuando tenemos un grupo de datos que debemos mantener juntos para
trabajar con ellos. B谩sicamente los arrays continenen valores simples mientras que en los objetos tenemos propiedades con diferentes valores.

驴Puedo mezclar arrays con objetos o incluso objetos con arrays?
2锔忊儯 Crea una funci贸n que pueda recibir cualquier array como par谩metro e imprima su primer elemento.

var primerArray = [鈥淗ola鈥漖;
console.log(primerArray[0]);
3锔忊儯 Crea una funci贸n que pueda recibir cualquier array como par谩metro e imprima todos sus elementos uno por uno (no se vale imprimir el array completo).

var miArray = [鈥淗ola鈥, 鈥渕undo鈥漖;
var miFuncion = function miPrimeraFuncion(miArray){
for(var i = 0; i < miArray.lenght(); i++){
console.log(miArray[i]);
}
}

miFuncion(miArray);

4锔忊儯 Crea una funci贸n que pueda recibir cualquier objeto como par谩metro e imprima todos sus elementos uno por uno (no se vale imprimir el objeto completo).

function imprimirObjeto(objeto) {
for (var clave in objeto) {
if (objeto.hasOwnProperty(clave)) {
console.log(clave + ": " + objeto[clave]);
}
}
}

// Ejemplo de uso:
var miObjeto = {
nombre: 鈥淛uan鈥,
edad: 30,
ciudad: 鈥淓jemploville鈥
};

imprimirObjeto(miObjeto);

Test Javascript Platzi 馃殌 Completado

// Variables y operaciones

//1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:

//驴Qu茅 es una variable y para qu茅 sirve?
    //Una variable es un espacio que reservamos en memoria, se usa para guardar un valor o una operaci贸n a la que podemos acceder desp煤es por medio del llamado de esa variable.

//驴Cu谩l es la diferencia entre declarar e inicializar una variable?
    //Declarar una variable es cuando definimos el nombre de la variable, inicializar la variable es cuando le asignamos un valor.

//驴Cu谩l es la diferencia entre sumar n煤meros y concatenar strings?
    //Sumar numeros es una operaci贸n matematica que se realiza entre numeros, concatenar un string es unir dos caracteres o textos.

//驴Cu谩l operador me permite sumar o concatenar?
    //El operador que me permite sumar o concatenar es +.


//2锔忊儯 Determina el nombre y tipo de dato para almacenar en variables la siguiente informaci贸n:
    //Nombre = 鈥渟tring鈥
    //Apellido = 鈥渟tring鈥
    //Nombre de usuario en Platzi = 鈥渟tring鈥
    //Edad = number
    //Correo electr贸nico = 鈥渟tring鈥
    //Mayor de edad = boolean
    //Dinero ahorrado = number
    //Deudas = number


//3锔忊儯 Traduce a c贸digo JavaScript las variables del ejemplo anterior y deja tu c贸digo en los comentarios.
    var nombre = "Darwin"
    var apellido = "Avenda帽o"
    var usuario = "darwina1103"
    var edad = 24
    var email = "[email protected]"
    var mayorEdad = function(){
        if (edad >= 18) {
            return true
        } else { return false}
    }
    var ahorro = 10000000
    var deudas = 6554638

//4锔忊儯 Calcula e imprime las siguientes variables a partir de las variables del ejemplo anterior:

//Nombre completo (nombre y apellido)
var nombreCompleto = nombre + " " + apellido

//Dinero real (dinero ahorrado menos deudas)
var dineroReal = ahorro - deudas



//Funciones

//1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:

//驴Qu茅 es una funci贸n?
    //Una funci贸n es un bloque de codigo que realiza un calculo o una tarea especifica que luego puede ser reutilizada.

//驴Cu谩ndo me sirve usar una funci贸n en mi c贸digo?
    //Cuando necesito que una tarea se ejecute varias veces a lo largo de mi codigo. 

//驴Cu谩l es la diferencia entre par谩metros y argumentos de una funci贸n?
    //Los parametros hacen referencia a la variable declarada dentro de la funci贸n y los argumentos son los valores que se le asignan a estas variables.

//2锔忊儯 Convierte el siguiente c贸digo en una funci贸n, pero, cambiando cuando sea necesario las variables constantes por par谩metros y argumentos en una funci贸n:
    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 + ".");

    //Soluci贸n

    function preference (name, lastname, nickname) {
        completeName = name + " " + lastname
        console.log("Mi nombre es " + completeName + ", pero prefiero que me digas " + nickname + "."); 
    }



//Condicionales

//1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:

//驴Qu茅 es un condicional?
    //Los condicionales nos permiten ejecutar una acci贸n siempre y cuando se valide una situaci贸n.

//驴Qu茅 tipos de condicionales existen en JavaScript y cu谩les son sus diferencias?
 //Las condicionales que existen son if - else - else if y Switch, la diferencia es que con if puedes validar cualquier operaci贸n y/o comparaci贸n, con switch solo puedes validar si algo es verdadero.

//驴Puedo combinar funciones y condicionales?
    //Si, podemos usar condicionales dentro de una funci贸n y tambi茅n podemos usar una funci贸n dentro de un condicional.

//2锔忊儯 Replica el comportamiento del siguiente c贸digo que usa la sentencia switch utilizando if, else y else if:

    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;
    }

    //Soluci贸n

    const tipoDeSuscripcion = "Basic";

    if (tipoDeSuscripcion == "Free") {
        console.log("Solo puedes tomar los cursos gratis");
    } else 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("Registrate en Platzi!");
    }

//3锔忊儯 Replica el comportamiento de tu condicional anterior con if, else y else if, pero ahora solo con if (sin else ni else if).
    
    var tipoDeSuscripcion = "Basic";

    var msgSuscripcion = {
        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",
    };

    function mensajeSuscripcion (suscripcion) {
        if (suscripcion == "Free" || suscripcion == "Basic" || suscripcion == "Expert" || suscripcion == "ExpertPlus") {
            console.log(msgSuscripcion[suscripcion]);
        }
    };

    mensajeSuscripcion(tipoDeSuscripcion);

//馃挕 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. 馃槒



//Ciclos

//1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:

//驴Qu茅 es un ciclo?
    //Un ciclo es una funcionalidad de javascript que nos permite ejecutar una tarea repetidas veces.

//驴Qu茅 tipos de ciclos existen en JavaScript?
    //Existen los ciclos for y while.

//驴Qu茅 es un ciclo infinito y por qu茅 es un problema?
    //Es un ciclo que no cumple un parametro que lo termine, es un problema porque puede consumir y agotar los recursos de la computadora donde se est谩 ejecutando.

//驴Puedo mezclar ciclos y condicionales?
    //Si, puedo anidar un ciclo dentro de un condicional y un condicional dentro de un ciclo.

//2锔忊儯 Replica el comportamiento de los siguientes ciclos for utilizando ciclos while:

    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);
    }

    //Solucion
    var i = 0
    while (i < 5) {
        console.log("El valor de i es: " + i);
        i++
    }

    var i = 10
    while (i >= 2) {
        console.log("El valor de i es: " + i);
        i--
    }

//3锔忊儯 Escribe un c贸digo en JavaScript que le pregunte a los usuarios cu谩nto es 2 + 2. Si responden bien, mostramos un mensaje de felicitaciones, pero si responden mal, volvemos a empezar.

    var result = prompt("Cuanto es 2+2?");

    if (result == 4) {
        alert("Felicitaciones!!")
    } else {
        alert("volvamos a empezar :(")
        location.reload()
    }

//馃挕 Pista: puedes usar la funci贸n prompt de JavaScript.




//Listas

//1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:

//驴Qu茅 es un array?
    //Un array es una variable en la que se pueden almacenar 1 o m谩s valores.

//驴Qu茅 es un objeto?
    //Un objeto es una variable en la que podemos almacenar valores con propiedades distintas.

//驴Cu谩ndo es mejor usar objetos o arrays?
    //Es preferible usar un array cuando necesitamos construir una lista simple de valores, y es mejor usar objetos cuando necesitamos que cada valor de esa lista sea identificable mediante su propiedad.

//驴Puedo mezclar arrays con objetos o incluso objetos con arrays?
    //Si, podemos crear un array de objetos.

//2锔忊儯 Crea una funci贸n que pueda recibir cualquier array como par谩metro e imprima su primer elemento.
    
    function firstItem (array) {
        return array[0]
    }

//3锔忊儯 Crea una funci贸n que pueda recibir cualquier array como par谩metro e imprima todos sus elementos uno por uno (no se vale imprimir el array completo).

    var estudiantes = [ 'Maria', 'Sergio', 'Rosa', 'Daniel' ]; 

    function nombreEstudiantes(nombres) {
        for (var nombre of nombres) {
            console.log(nombre);
        }
    }

    nombreEstudiantes(estudiantes)

//4锔忊儯 Crea una funci贸n que pueda recibir cualquier objeto como par谩metro e imprima todos sus elementos uno por uno (no se vale imprimir el objeto completo).

    var estudiantes = {
        nombre: "Maria",
        edad: 20,
        suscripcion: "Expert",
    }; 

    function nombreEstudiantes(nombres) {
        for (prop in nombres) {
            console.log(prop,": ",nombres[prop]);
        }
    }

    nombreEstudiantes(estudiantes)
//VARIABLES & OPERACIONES/Traduce a c贸digo JavaScript las variables del ejemplo anterior y deja tu c贸digo en los comentarios.
let name = 'Jose';
let lastName = 'Garcia';
let nickName = 'Jose_g';
let age = 35;
let mail = '[email protected]';
let mayoriaEdad = true;
let debt = 100;
let saving = 10000;


//VARIABLES & OPERACIONES/Calcula e imprime las siguientes variables a partir de las variables del ejemplo anterior:
let fullName = ` ${name}  ${lastName}`
let patrimony = saving - debt;
console.log(`Soy ${fullName} y mi patrimonio es de: $${patrimony} USD  `)

//FUNCIONES/Convierte el siguiente c贸digo en una funci贸n, pero, cambiando cuando sea necesario las variables constantes por par谩metros y argumentos en una funci贸n:

const name2 = "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 + ".");

let register = (name,lastName,nickName) => {
    const lastName2 = `${name}  ${lastName}`
    console.log(`Mi nombre es  ${lastName2} pero prefiero que me digas ${nickName} ` );
}

//CONDICIONALES / Replica el comportamiento de tu condicional anterior con if, else y else if, pero ahora solo con if (sin else ni else if).
/* 馃挕 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 functionCourse2 = (course) => {
 cursos.forEach( (element,index,array) => {
    if ((Object.keys(array[index])[0] === course )) x = (array[index][course])
 } )
return console.log(x);
}



 //馃挕CICLOS/Escribe un c贸digo en JavaScript que le pregunte a los usuarios cu谩nto es 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.

const  sumaCuatro = () => { 
        respuesta = parseInt(prompt("Cuanto es 2+2?"));
        while ( respuesta !== 4 ) {
            if(respuesta !== 4)  console.warn(`${respuesta} Incorrecto, vuelve a intentarlo  `)
            respuesta = parseInt(prompt("Cuanto es 2+2?"));
        }
     if ( respuesta == 4)  {console.info(`Has respondido ${respuesta}, te felcito隆`)}     
}

//馃挕ARRAY/
 
//ARRAY/ Crea una funci贸n que pueda recibir cualquier array como par谩metro e imprima su primer elemento.
 
  const functionArray = (array) => {
    console.log(array[0]);
  }

//ARRAY/Crea una funci贸n que pueda recibir cualquier array como par谩metro e imprima todos sus elementos uno por uno (no se vale imprimir el array completo).
const printArray = (array) => {
    array.forEach( element => console.log(element) );
}

//ARRAY/Crea una funci贸n que pueda recibir cualquier objeto como par谩metro e imprima todos sus elementos uno por uno (no se vale imprimir el objeto completo).


const printObject = (objetc) => {
    for (element in objetc ) {
         console.log(element); 
    }
}


Variables y operaciones

1锔忊儯聽Responde las siguientes preguntas en la secci贸n de comentarios:

  • 驴Qu茅 es una variable y para qu茅 sirve?

    Las variables son espacios reservados en memoria a los cuales podemos acceder mediante un identificador ya sea para consultar su valor o actualizarlo. Son la base de cualquier lenguaje de programaci贸n ya que en ellas es donde se almacenan los datos que requieren los programas para funcionar, por decirlo de alguna forma es la memoria del programa.

    En JavaScript hay varias formas de declarar variables var, let y cont. Las tres sirven para almacenar datos en memoria, pero tienen algunas diferencias entre si:

    Var por muchos a帽os fue la 煤nica forma de declarar variables en JS, sin embargo con el paso del tiempo a sido desplazado su uso por let y const ya que estas opciones al momento de declararlas, su scope se limita a donde fueron declaradas. Adem谩s no se pueden re declarar y en el caso de const tampoco se puede reasignar un valor.

  • 驴Cu谩l es la diferencia entre declarar e inicializar una variable?

    Declarar una variable implica decirle a la computadora que cree un espacio en memoria y le asigne el identificador de acceso (nombre de la variable) que hallamos elegido, mientras que inicializarla significa darle un valor inicial a dicha variable.

  • 驴Cu谩l es la diferencia entre sumar n煤meros y concatenar strings?

    Que al sumar n煤meros se realiza una operaci贸n matem谩tica de suma, danto por ejemplo 4 la suma de 2 + 2, en tanto que concatenar strings es unir dos cadenas de texto por ejemplo: 鈥淎prendo, 鈥 y 鈥淛avaScript鈥 da como resultado 鈥淎prendo Javascript鈥.

  • 驴Cu谩l operador me permite sumar o concatenar?

    El operador de suma +


2锔忊儯 Determina el nombre y tipo de dato para almacenar en variables la siguiente informaci贸n:

  • Nombre 鈫 name / string
  • Apellido 鈫 lastName / string
  • Nombre de usuario en Platzi 鈫 user / string
  • Edad 鈫 age / number
  • Correo electr贸nico 鈫 email / string
  • Mayor de edad 鈫 isAdult / boolean
  • Dinero ahorrado 鈫 savings / number
  • Deudas 鈫 debt / number

3锔忊儯 Traduce a c贸digo JavaScript las variables del ejemplo anterior y deja tu c贸digo en los comentarios.

let name = 'Jes煤s'
let lastName = 'Velasco'
let user = 'jesusrobot'
let age = 23
let email = '[email protected]'
let isAdult = true 
let savings = 3500
let debt = 1800

4锔忊儯 Calcula e imprime las siguientes variables a partir de las variables del ejemplo anterior:

  • Nombre completo (nombre y apellido)
  • Dinero real (dinero ahorrado menos deudas)
let fullName = name + lastName
let money = savings - debt

console.log({fullName, money})

Funciones

1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:

  • 驴Qu茅 es una funci贸n?

    Las funciones permiten abstraer la l贸gica de un procedimiento con el prop贸sito de reutilizar dicha l贸gica en varios lugares a lo largo del programa. Las funciones pueden recibir argumentos y retornar valores.

  • 驴Cu谩ndo me sirve usar una funci贸n en mi c贸digo?

    Cuando tienes un fragmento de c贸digo que se repite varias veces en tu aplicaci贸n, esto te ayudara a hacer m谩s f谩cil de editar y entender tu c贸digo

  • 驴Cu谩l es la diferencia entre par谩metros y argumentos de una funci贸n?

    Los par谩metros son los nombres que aparecen en la definici贸n de una funci贸n.聽Por su parte, los argumentos son los valores que le pasamos (y que, por tanto, recibe) una funci贸n.


2锔忊儯 Convierte el siguiente c贸digo en una funci贸n, pero, cambiando cuando sea necesario las variables constantes por par谩metros y argumentos en una funci贸n:

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 presentation({completeName, nickname}) {
	console.log("Mi nombre es " + completeName + ", pero prefiero que me digas " + nickname + ".");
}

presentation(completeName, nickname)

Condicionales

1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:

  • 驴Qu茅 es un condicional?

    Una condicional es una estructura de control de flujo que permite ejecutar un fragmento de c贸digo u otro en base al resultado de una condici贸n.

  • 驴Qu茅 tipos de condicionales existen en JavaScript y cu谩les son sus diferencias?

    Existe if que ejecuta una porci贸n de c贸digo en base al resultado de su condici贸n, a el if se le puede a帽adir el else if que ejecuta el c贸digo que contiene en caso de que su condici贸n sea positiva y la del if principal y los dem谩s else if anteriores (si los hay) sea negativa. Adem谩s se puede dar un por a si decirlo un c贸digo a ejecutar por defecto en caso de que todo sea negativo con el else que permite ejecutar un c贸digo en caso de que todas las condiciones sean negativas.

    Tambi茅n existe switch que ejecuta alg煤n c贸digo examinado los posibles valores de una variable.

  • 驴Puedo combinar funciones y condicionales?

    Si, 驴por qu茅 no? xD


2锔忊儯 Replica el comportamiento del siguiente c贸digo que usa la sentencia switch utilizando if, else y else if:

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;
}
if (tipoDeSuscripcion === 'Basic') {
	console.log("T煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi durante un a帽o");
} 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");
}

3锔忊儯 Replica el comportamiento de tu condicional anterior con if, else y else if, pero ahora solo con if (sin else ni else if).


if (tipoDeSuscripcion === 'Free'){
	console.log("Solo puedes tomar los cursos gratis");
	return
}

if (tipoDeSuscripcion === 'Basic') {
	console.log("T煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi durante un a帽o");
	return
} 

if(tipoDeSuscripcion === 'Expert') {
	console.log("Puedes tomar casi todos los cursos de Platzi durante un a帽o");
	return
}

if (tipoDeSuscripcion === 'ExpertPlus') {
	console.log("T煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi durante un a帽o");
	return
}

馃挕 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 = "ExpertPlus";

const planesDeSubscripcion = ['Free', 'Basic', 'Expert', 'ExpertPlus']
const mensajes = [
	"Solo puedes tomar los cursos gratis",
  "Puedes tomar casi todos los cursos de Platzi durante un mes",
	"Puedes tomar casi todos los cursos de Platzi durante un a帽o",
	"T煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi durante un a帽o"
]

const index = planesDeSubscripcion.indexOf(tipoDeSuscripcion)
if(index) {
	console.log(mensajes[index]) 
}

1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:

  • 驴Qu茅 es un ciclo?

    Los ciclos son otro tipo de estructura de la sintaxis de JavaScript y sirven para ejecutar una porci贸n de c贸digo tantas veces como la condici贸n del ciclo lo permita.

  • 驴Qu茅 tipos de ciclos existen en JavaScript?

    Existe el ciclo for que ejecuta el c贸digo que contiene mientras la condici贸n que maneja sea verdadera, este ciclo se inicializa con la inicializaci贸n de una variable, luego la condici贸n en si y al final el incremento de la variable cada vez que se ejecuta el ciclo.

    El ciclo while mezcla el ciclo con el poder de un if ya que ejecuta un c贸digo si su condici贸n es verdadera, la cual incluso eval煤a antes de la primera iteraci贸n. Si esta no es verdadera desde un principio no se va a ejecutar nunca, el incremento va dentro del cuerpo del while.

    Por otro lado el do while funciona de manera similar con la diferencia de que ejecuta el c贸digo al menos una vez.

    Por 煤ltimo est谩n los ciclos for of y el for in el primero itera sobre los valores de un array o similares como los strings o nodeLists y el segundo sobre las propiedades de los objetos.

  • 驴Qu茅 es un ciclo infinito y por qu茅 es un problema?

    Un ciclo infinito es cuando la condici贸n del loop siempre es verdadera, esto se debe a que no se esta haciendo un incremento en las variables involucradas en la condici贸n y es un problema por que va a consumir toda la memoria de la computadora provocando que el programa se rompa.

  • 驴Puedo mezclar ciclos y condicionales?

    Si, incluso tenemos las sentencias break y continue para este tipo de casos.


2锔忊儯 Replica el comportamiento de los siguientes ciclos for utilizando ciclos while:

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);
}
let i = 0

while (i < 5) {
  console.log("El valor de i es: " + i)
  i++
}

let i2 = 10

while (i2 > 2) {
  console.log("El valor de i es: " + i2);
  i2--
}

3锔忊儯 Escribe un c贸digo en JavaScript que le pregunte a los usuarios cu谩nto es聽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.

let question
do {
  question = Number(prompt('Cuanto es 2 + 2'))
  if(question === 4) {
    console.log('Felicidades sabes sumar')
  }
} while (question !== 4)

Listas

1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:

  • 驴Qu茅 es un array?

    Los arrays son una estructura de de datos que sirve para guardar una lista de valores de distintos datos si se quiere o uno solo. A estos valores se puede acceder por su posici贸n en el array comenzando por 0 para el primero.

  • 驴Qu茅 es un objeto?

    Un objeto tambien es una lista de valores de distinto tipo si se desea y que pueden estar relacionados para representar a una entidad dentro del programa por ejemplo un usuario. Se puede acceder a estos valores mediante el identificador del valor que queremos obtener. Los objetos son una estructura de datos llave:valor .

  • 驴Cu谩ndo es mejor usar objetos o arrays?

    Si necesitas asociar datos con claves y representar informaci贸n con contexto, los objetos son m谩s adecuados. Si est谩s trabajando con una colecci贸n de elementos ordenados y deseas realizar operaciones de lista, los arrays son m谩s apropiados.

  • 驴Puedo mezclar arrays con objetos o incluso objetos con arrays?

    Si

2锔忊儯 Crea una funci贸n que pueda recibir cualquier array como par谩metro e imprima su primer elemento.

const faces = ['馃槑', '馃ゴ', '馃サ', '馃']

function firstElmentOf(array) {
  console.log(array[0])
}

firstElmentOf(faces)

3锔忊儯 Crea una funci贸n que pueda recibir cualquier array como par谩metro e imprima todos sus elementos uno por uno (no se vale imprimir el array completo).

const faces = ['馃槑', '馃ゴ', '馃サ', '馃']
function allElementsOf(array) {
  for (element of array) {
    console.log(element)
  }
}

allElementsOf(faces)

4锔忊儯 Crea una funci贸n que pueda recibir cualquier objeto como par谩metro e imprima todos sus elementos uno por uno (no se vale imprimir el objeto completo).

const facesObj = {
  cool: '馃槑',
  stunned: '馃ゴ',
  hot: '馃サ',
  thoughtful: '馃'
}
function allElementsOf(obj) {
  for (property in obj) {
    console.log(obj[property])
  }
}

allElementsOf(facesObj)

pueden ver mi test en Notion

驴Qu茅 es una variable y para qu茅 sirve?
es como un espacio que creo para almacenar un valor
驴Cu谩l es la diferencia entre declarar e inicializar una variable?
cuando declaro una variable le digo a mi programa que guarde un espacio en memoria para ese valor que no debe ir ah铆, cuando inicializo una variable es por que le estoy asignando un valor desde el proncipio.
驴Cu谩l es la diferencia entre sumar n煤meros y concatenar strings?
yo lo veo asi: concatenar es como pegar, sumar numeros es eso la operacion de dos valores que tengo en mis datos
驴Cu谩l operador me permite sumar o concatenar?
el "+"
Determina el nombre y tipo de dato para almacenar en variables la siguiente informaci贸n:
let nombre = 鈥溾; // string.
let Apellido= 鈥溾, // string.
let usuarioPlatzi = 鈥溾// string
let edad = 鈥溾 // number
let correo = 鈥溾 // email
let mayorEdad = 鈥溾 // boolean
let dineroAhorrado = 0.0; // number
let deudas = 0.0; // number

Calcula e imprime las siguientes variables a partir de las variables del ejemplo anterior:

let nombre = "Kevin"
let apellido = "Franco"
let dineroAhorrado = 5000
let deudas = 1000

let nombreCompleto = nombre + " " + apellido
let dineroTotal = dineroAhorrado - deudas

console.log(鈥渘ombre completo:鈥, nombreCompleto);
console.log(鈥淒inero real del usuarios:鈥, dineroTotal);
驴Qu茅 es una funci贸n?
bloques de codigo ejecutable
驴Cu谩ndo me sirve usar una funci贸n en mi c贸digo?
cuando queremos modular nuestros programas y crear bloques que hagan una tarea concreta
驴Cu谩l es la diferencia entre par谩metros y argumentos de una funci贸n?
Los par谩metros se definen en la declaraci贸n de la funci贸n y representan los datos que la funci贸n espera recibir.
Los argumentos son los valores reales que se pasan a la funci贸n cuando la llamamos.
function presentacion(name, lastname, nickname) {
const completeName = name + " " + lastname;
console.log("Mi nombre es " + completeName + ", pero prefiero que me digas " + nickname + 鈥.鈥);
}

presentacion(鈥淛uan David鈥, 鈥淐astro Gallego鈥, 鈥渏uandc鈥);
Condicionales
驴Qu茅 es un condicional?
instrucciones que nos permiten ejecutar una secuencia de instrucciones
驴Qu茅 tipos de condicionales existen en JavaScript y cu谩les son sus diferencias?
if /elsedepende del resultado muestra un valor si lo cumple y otro si no
switch: depende del caso que este en la consicion devolvera un valor si se cumple y otro general si no
驴Puedo combinar funciones y condicionales?
si se puede
const tipoDeSuscripcion = 鈥淏asic鈥;

if (tipoDeSuscripcion === 鈥淔ree鈥) {
console.log(鈥淪olo puedes tomar los cursos gratis鈥);
} else if (tipoDeSuscripcion === 鈥淏asic鈥) {
console.log(鈥淧uedes tomar casi todos los cursos de Platzi durante un mes鈥);
} else if (tipoDeSuscripcion === 鈥淓xpert鈥) {
console.log(鈥淧uedes tomar casi todos los cursos de Platzi durante un a帽o鈥);
} else if (tipoDeSuscripcion === 鈥淓xpertPlus鈥) {
console.log(鈥淭煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi durante un a帽o鈥);
} else {
console.log(鈥淭ipo de suscripci贸n no reconocida鈥);
}
驴Qu茅 es un ciclo?
un bloque que se jecuta cuando se cumple una condicion
驴Qu茅 tipos de ciclos existen en JavaScript?
While, Do/While, For
驴Qu茅 es un ciclo infinito y por qu茅 es un problema?
es un ciclo que nunca se detiene, los problemas son, consumen recursos, consumo de memoria elevado,
驴Puedo mezclar ciclos y condicionales?
Si se puede
let i = 0;
while (i < 5) {
console.log("El valor de i es: " + i);
i++;
}
let i = 10;
while (i >= 2) {
console.log("El valor de i es: " + i);
i鈥;
}
Qu茅 es un array?
una coleccion de datos
驴Qu茅 es un objeto?
una coleccion de variables
驴Cu谩ndo es mejor usar objetos o arrays?
cuando debo realizar una operacion de una lista usare arrays
Cuando tengo datos que se identifican con nombres claros y no me es relevante el orden uso objetos
驴Puedo mezclar arrays con objetos o incluso objetos con arrays?
Si se puede

function imprimirPrimerElemento(arr) {
if (arr.length > 0) {
console.log(arr[0]);
} else {
console.log(鈥淓l array est谩 vac铆o鈥);
}
}
function imprimirElementos(arr) {
for (let i = 0; i < arr.length; i++) {
console.log(arr[i]);
}
}
function imprimirPropiedadesYValores(obj) {
for (let propiedad in obj) {
console.log(Propiedad: ${propiedad}, Valor: ${obj[propiedad]});
}
}

let respuesta;

do {
respuesta = prompt("驴Cu谩nto es 2 + 2?");
} while (respuesta != 4);

alert("隆Felicitaciones, es correcto!");

1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:

驴Qu茅 es una variable y para qu茅 sirve?
Es un espacio en memoria, que reservamos para guardar informacion mas adelante鈥

驴Cu谩l es la diferencia entre declarar e inicializar una variable?
Al declarar una variable, solo estamos seleccionando el espacio en memoria y al inicializarya le damos un valor a la variable.

驴Cu谩l es la diferencia entre sumar n煤meros y concatenar strings?

la suma de enteros se hace sin las 鈥溾 y la concatenacion incluye las comillas, ejemplo:
2+2 //suma
"2"+鈥2鈥 //concatenar

驴Cu谩l operador me permite sumar o concatenar?
ambos se hacen con el operador +

2锔忊儯 Determina el nombre y tipo de dato para almacenar en variables la siguiente informaci贸n:
Nombre // tipo de dato string
Apellido // tipo de dato string
Nombre de usuario en Platzi // tipo de dato string
Edad // tipo de dato int
Correo electr贸nico // tipo de dato string
Mayor de edad // tipo de dato boolean
Dinero ahorrado // tipo de dato int
Deudas //// tipo de dato int

3锔忊儯 Traduce a c贸digo JavaScript las variables del ejemplo anterior y deja tu c贸digo en los comentarios.
Nombre // var nombre = "Denis"
Apellido // var apellido = "Alvarez"
Nombre de usuario en Platzi // var usuario = "DenisAlvarez"
Edad // var edad = 36
Correo electr贸nico // var nombre = "[email protected]"
Mayor de edad // var edadmayor = true
Dinero ahorrado // var dinero = 3000
Deudas //var debe = 100

4锔忊儯 Calcula e imprime las siguientes variables a partir de las variables del ejemplo anterior:
Nombre completo (nombre y apellido)
console.log(nombre + " " + apellido );
Dinero real (dinero ahorrado menos deudas)
console.log(dinero - debe );

Variables y operaciones
1锔忊儯 Responde las siguientes preguntas

  • 驴Qu茅 es una variable y para qu茅 sirve?
    Es un espacio de almacenamiento reservado y sirve para almacenar informaci贸n
  • 驴Cu谩l es la diferencia entre declarar e inicializar una variable?
    Al declarar una variable no se le asigna ningun valor, mientras que al inicializar la variable ya se le asigna un valor o dato.
  • 驴Cu谩l es la diferencia entre sumar n煤meros y concatenar strings?
    Al sumar numeros el resultado sera la suma de esos numeros, si se concatena strings se unen esos dos strings. ej:
    2 + 4 --> 6 鈥2鈥 + 鈥4鈥 --> 鈥24鈥
  • 驴Cu谩l operador me permite sumar o concatenar?
    El operador aritm茅tico Suma +

2锔忊儯 Determina el nombre y tipo de dato para almacenar en variables la siguiente informaci贸n:

  • Nombre - var nombre - tipo string
  • Apellido - var apellido - tipo string
  • Nombre de usuario en Platzi - var usuarioPlatzi - tipo string
  • Edad - var edad - tipo numero
  • Correo electr贸nico - var email - tipo string
  • Mayor de edad - var mayorEdad - tipo booleano
  • Dinero ahorrado - var dineroAhorro - tipo numero
  • Deudas - var deudas - tipo numero

3锔忊儯 Traduce a c贸digo JavaScript las variables del ejemplo anterior y deja tu c贸digo en los comentarios.

var nombre = "Adri";
var apellido = "Barrera";
var usuarioPlatzi = "Adriana Beatriz Barrera Estrella";
var edad = 25;
var email = "[email protected]";
var mayorEdad = true;
var dineroAhorro = 100;
var deudas = 1000; //:c

4锔忊儯 Calcula e imprime las siguientes variables a partir de las variables del ejemplo anterior:
Nombre completo (nombre y apellido)

var nombre = "Adriana";
var apellido = "Barrera";
conlose.log(nombre + " " + apellido);

Dinero real (dinero ahorrado menos deudas)

var dineroAhorro = 100;
var deudas = 1000;
var dineroReal = (dineroAhorro - deudas);
console.log("Tu dinero real es: " + dineroReal);

Funciones
1锔忊儯 Responde las siguientes preguntas

  • 驴Qu茅 es una funci贸n?
    Es un subprograma que realiza cierta tarea y puede ser reutilizada.
  • 驴Cu谩ndo me sirve usar una funci贸n en mi c贸digo?
    para poder reutilizar la funcion nuevamente.
  • 驴Cu谩l es la diferencia entre par谩metros y argumentos de una funci贸n?
    los parametros son los datos de entrada que tiene la funcion y los argumentos son los datos que mandamos a la funcion para que sean datos de entrada.

2锔忊儯 Convierte el siguiente c贸digo en una funci贸n, pero, cambiando cuando sea necesario las variables constantes por par谩metros y argumentos en una funci贸n:

function miFuncion(name, lastname, nickname){
	console.log("Mi nombre es " + name + " " + lastname + ", pero prefiero que me digas " + nickname + "."); 
}

miFuncion("Adriana", "Barrera","Adri Tris")

Condicionales
1锔忊儯 Responde las siguientes preguntas

  • 驴Qu茅 es un condicional?
    Es un proceso en el cual hay una condicion y existen dos caminos, una donde se cumple y otra donde no se cumple
  • 驴Qu茅 tipos de condicionales existen en JavaScript y cu谩les son sus diferencias?
    IF, IF ELSE, ELSE IF y SWITCH
  • 驴Puedo combinar funciones y condicionales?
    No lo recuerdo exactamente鈥

2锔忊儯 Replica el comportamiento del siguiente c贸digo que usa la sentencia switch utilizando if, else y else if:

const tipoDeSuscripcion = "Basic";

if (tipoDeSuscripcion === "Free"){
	console.log("Solo puedes tomar los cursos gratis");
} else 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");
} 

3锔忊儯 Replica el comportamiento de tu condicional anterior con if, else y else if, pero ahora solo con if (sin else ni else if).

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");
} 

Ciclos
1锔忊儯 Responde las siguientes preguntas

  • 驴Qu茅 es un ciclo?
    Es una iteraci贸n que se repite hasta que se cumpla una condicion.
  • 驴Qu茅 tipos de ciclos existen en JavaScript?
    While, Do-While, For, For of
  • 驴Qu茅 es un ciclo infinito y por qu茅 es un problema?
    Significa que la condici贸n nunca se cumple y va a seguirse ejecutando por siempre lo cual es un problema.
  • 驴Puedo mezclar ciclos y condicionales?
    Por supuesto que si

2锔忊儯 Replica el comportamiento de los siguientes ciclos for utilizando ciclos while:

for (let i = 0; i < 5; i++) {
    console.log("El valor de i es: " + i);
}

//Solucion
var i = 0;
while(i < 5){
	console.log("El valor de i es: " + i);
	i++;
}

for (let i = 10; i >= 2; i--) {
    console.log("El valor de i es: " + i);
}

//Solucion 
var i = 10;
while(i >= 2){
	console.log("El valor de i es: " + i);
	i--;
}

3锔忊儯 Escribe un c贸digo en JavaScript que le pregunte a los usuarios cu谩nto es 2 + 2. Si responden bien, mostramos un mensaje de felicitaciones, pero si responden mal, volvemos a empezar.

var respuesta;
do{
	respuesta = prompt("驴Cu谩nto es 2 + 2?");
}while(respuesta >= 5 || respuesta <= 3);
console.log("Felicitaciones lo lograaste");

Listas
1锔忊儯 Responde las siguientes preguntas

  • 驴Qu茅 es un array?
    Es un tipo de almacenamiento donde se guardan varios datos
  • 驴Qu茅 es un objeto?
    Es un contenedor de propiedades, donde una propiedad tiene un nombre y un valor
  • 驴Cu谩ndo es mejor usar objetos o arrays?
    Depende de la problem谩tica
  • 驴Puedo mezclar arrays con objetos o incluso objetos con arrays?
    Si.

2锔忊儯 Crea una funci贸n que pueda recibir cualquier array como par谩metro e imprima su primer elemento.

function imprimirArray(array){
	console.log(array[0]);
}

imprimirArray(["Peloso", "Quki"]);

hasta aqui mi reporte joaquin 馃槚馃珷

1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:
驴Qu茅 es una variable y para qu茅 sirve?
Una variable es un espacio en la memoria de un programa inform谩tico que se utiliza para almacenar un valor o una informaci贸n.
驴Cu谩l es la diferencia entre declarar e inicializar una variable?
declarar una variable es reservar espacio en memoria para ella y especificar su tipo y nombre, mientras que inicializar una variable es asignarle un valor por primera vez.
驴Cu谩l es la diferencia entre sumar n煤meros y concatenar strings?
La principal diferencia entre sumar n煤meros y concatenar strings es que la primera es una operaci贸n matem谩tica que se realiza con valores num茅ricos, mientras que la segunda es una operaci贸n de texto que se realiza con cadenas de caracteres.
驴Cu谩l operador me permite sumar o concatenar
Usando el operador 鈥+鈥

2锔忊儯 Determina el nombre y tipo de dato para almacenar en variables la siguiente informaci贸n:
Nombre de Variable: nombre
Tipo de Datos: Cadena de caracteres (String)
Apellido

Nombre de Variable: apellido
Tipo de Datos: Cadena de caracteres (String)
Nombre de usuario en Platzi

Nombre de Variable: nombreUsuarioPlatzi
Tipo de Datos: Cadena de caracteres (String)
Edad

Nombre de Variable: edad
Tipo de Datos: Entero (Integer) o N煤mero (Number)
Correo electr贸nico

Nombre de Variable: correoElectronico
Tipo de Datos: Cadena de caracteres (String)
Estado de Mayor铆a de Edad (Si la persona es mayor de edad o no)

Nombre de Variable: esMayorEdad
Tipo de Datos: Booleano (Boolean)
Cantidad Ahorrada

Nombre de Variable: cantidadAhorrada
Tipo de Datos: N煤mero (Number) o Decimal (Float)
Deudas

Nombre de Variable: deudas
Tipo de Datos: N煤mero (Number) o Decimal (Float)

3锔忊儯 Traduce a c贸digo JavaScript las variables del ejemplo anterior y deja tu c贸digo en los comentarios.
var nombre = 鈥淛uan鈥;
var apellido = 鈥淧茅rez鈥;
var nombreUsuarioPlatzi = 鈥渏uanito123鈥;
var edad = 28;
var correoElectronico = 鈥[email protected]鈥;
var esMayorEdad = true;
var cantidadAhorrada = 1500.75;
var deudas = 500.25;

4锔忊儯 Calcula e imprime las siguientes variables a partir de las variables del ejemplo anterior:
var nombre = 鈥淛uan鈥;
var apellido = 鈥淧茅rez鈥;
var nombreUsuarioPlatzi = 鈥渏uanito123鈥;
var edad = 28;
var correoElectronico = 鈥[email protected]鈥;
var esMayorEdad = true;
var cantidadAhorrada = 1500.75;
var deudas = 500.25;

var nombreCompleto = nombre + " " + apellido;
console.log(鈥淣ombre completo:鈥, nombreCompleto);

var dineroReal = cantidadAhorrada - deudas;
console.log(鈥淒inero real:鈥, dineroReal);

Responde las siguientes preguntas:
鈥 驴Qu茅 es una variable y para qu茅 sirve?
R: Una variable es una reserva de memoria que se destina a guardar datos de tipo num茅rico, string o booleano; sirve para que a lo largo del c贸digo se pueda llamar a la variable para hacer operaciones matem谩ticas, modificarla o simplemente traerla a colaci贸n; lo anterior reduce tiempo y espacio (en el c贸digo) al no tener que volver a especificar datos repetitivos
鈥 驴Cu谩l es la diferencia entre declarar e inicializar una variable?
R: Declarar la variable es definir el nombre de la variable y a partir de donde va a empezar a existir, mientras que inicializar es definir a que va a ser igual ese nombre que previamente se declar贸
鈥 驴Cu谩l es la diferencia entre sumar n煤meros y concatenar strings?
R: Sumar es una operaci贸n matem谩tica y se puede hacer entre datos de tipo num茅ricos, mientras que concatenar es poner un valor al lado de otro dato, se puede hacer con datos num茅ricos y strings
鈥 驴Cu谩l operador me permite sumar o concatenar?
R: 鈥+鈥 este s铆mbolo realiza sumas y concatena: realiza suma si dos o m谩s datos son num茅ricos; concatena si son dos datos de diferentes tipos.

2锔忊儯 Determina el nombre y tipo de dato para almacenar en variables la siguiente informaci贸n:
鈥 Nombre: string
鈥 Apellido: string
鈥 Nombre de usuario en Platzi: string
鈥 Edad: num茅rico
鈥 Correo electr贸nico: string
鈥 Mayor de edad: booleano
鈥 Dinero ahorrado: num茅rico
鈥 Deudas: num茅rico

3锔忊儯 Traduce a c贸digo JavaScript las variables del ejemplo anterior y deja tu c贸digo en los comentarios.

Let Nombre: 鈥溾;
Let Apellido: 鈥溾;
Let NombreDeUsuarioEnPlatzi = 鈥濃;
Let Edad = 0
Let CorreoElectr贸nico: 鈥溾;
let MayorEdad = false
Let DineroAhorrado = 0;
Let Deudas = 0;

4锔忊儯 Calcula e imprime las siguientes variables a partir de las variables del ejemplo anterior:

Let NombreCompleto = Nombre + 鈥 鈥 + Apellido;
Console.log (NombreCompleto);
Let DineroReal = DineroAhorrado 鈥 Deudas;
Console.log (DineroReal);

Funciones
1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:
鈥 驴Qu茅 es una funci贸n?
R Una funci贸n es una tarea en donde se ingresa unos par谩metros y pasa por unas instrucciones para que al final salga un resultado que tenga relaci贸n con los par谩metros ingresados
鈥 驴Cu谩ndo me sirve usar una funci贸n en mi c贸digo?
R Cuando dentro del c贸digo hay una tarea que se repita varias veces, se define una vez y se llama
鈥 驴Cu谩l es la diferencia entre par谩metros y argumentos de una funci贸n?
R Los par谩metros son variables que se ingresan cuando se declara la funci贸n, mientras que los argumentos son estas mismas variables cuando se les da un valor; es decir cuando la funci贸n se inicialice.

2锔忊儯 Convierte el siguiente c贸digo en una funci贸n, pero, cambiando cuando sea necesario las variables constantes por par谩metros y argumentos en una funci贸n:

const name = "Juan David";
const lastname = "Castro Gallego";
const completeName
= name +
const nickname = "juandc";
console.log("Mi nombre es " + completeName + ", pero prefiero que me digas " + nickname + ".");
//Soluci贸n:
const name = "";
const lastname = "";
const nickname = "";
function saludar (name, lastname, nickname
const completeName = name + " " + lastname;
console.log("Mi nombre es " + completeName + ", pero prefiero que me digas " + nickname + ".");
}
saludar ("juan", "garcia", "juanca")

Condicionales
1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:
鈥 驴Qu茅 es un condicional?
R Es una operaci贸n en donde se ejecuta un bloque de c贸digo si se cumple una condici贸n
鈥 驴Qu茅 tipos de condicionales existen en JavaScript y cu谩les son sus diferencias?
R If/else if: se ponen la condiciones; las cuales se deben cumplir para ejecutar un bloque de c贸digo, en caso de que no (else) se ejecuta otro bloque de c贸digo. Esta es 煤til para cuando se tienen hasta 2 o 3 condiciones diferentes
R Switch: trabaja como una funci贸n en donde se declaran los par谩metros con las cuales se van a comparar; despu茅s se ponen las condiciones (case 1) para ejecutar un bloque de c贸digo, se definen las condiciones del case 2, case 3鈥 case n y finalmente un valor por defecto en caso de que no se cumplan los diferentes casos definidos. Este condicional es 煤til para cuando se tengan 3 o m谩s casos para comparar.
鈥 驴Puedo combinar funciones y condicionales?
R Si

2锔忊儯 Replica el comportamiento del siguiente c贸digo que usa la sentencia switch utilizando if, else y else if:

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;
}
//Soluci贸n:
const tipoDeSuscripcion = "basic";
function mensaje (tipoDeSuscripcion){
if (tipoDeSuscripcion === "free") {
console.log("Solo puedes tomar los cursos gratis");
} else 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 === "expert plus") {} else if (tipoDeSuscripcion === "expert plus") {
console.log("T煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi durante un a帽o");
}
}

3锔忊儯 Replica el comportamiento de tu condicional anterior con if, else y else if, pero ahora solo con if (sin else ni else if).

function mensaje (tipoDeSuscripcion){
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 === "expert plus") {
console.log("T煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi durante un a帽o");
}
}

Ciclos
1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:
鈥 驴Qu茅 es un ciclo?
R Es una estructura de control que permite realizar acciones (funciones) mientras se cumpla una condici贸n
鈥 驴Qu茅 tipos de ciclos existen en JavaScript?
R For, for each, while, f or of
鈥 驴Qu茅 es un ciclo infinito y por qu茅 es un problema?
R Es un ciclo que no cumple con la condici贸n para finalizar el ciclo y es un problema se queda dando vueltas en el ciclo infinitamente y lo da帽a.
鈥 驴Puedo mezclar ciclos y condicionales?
R si
2锔忊儯 Replica el comportamiento de los siguientes ciclos for utilizando ciclos while:

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);
}
Solucion:
let i = 0;
while (i<5) {
console.log("el valor de i es: " + i++)
}
Let i =
1 0;
While (i<=2){
console.log (鈥渆l valor de i es: 鈥 i
}

3锔忊儯 Escribe un c贸digo en JavaScript que le pregunte a los usuarios cu谩nto es 2锔 + 2锔. Si responden bien, mostramos un mensaje de felicitaciones, pero si responden mal, volvemos a empezar.

while (true){
const message = "How much is 2 +2?"
let answer = Number(prompt(message));
if (answer === 4){
alert ("excellent")
break;
}
}

Listas
1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:
鈥 驴Qu茅 es un array?
R Una variable que contiene un grupo de variables
鈥 驴Qu茅 es un objeto?
R Es un array con diferentes propiedades
鈥 驴Cu谩ndo es mejor usar objetos o arrays?
R Los objetos se usan cuando se tiene varias variables con propiedades parecidas, mientras que los arrays se usan cuando se tienen variables sin propiedades
鈥 驴Puedo mezclar arrays con objetos o incluso objetos con arrays?
R Si
2锔忊儯 Crea una funci贸n que pueda recibir cualquier array como par谩metro e imprima su primer elemento.

function imprimir (array){
if (array.length > 0){
console.log(array[0]);
} else {
console.log("el array esta vacio");
}
}

3锔忊儯 Crea una funci贸n que pueda recibir cualquier array como par谩metro e imprima todos sus elementos uno por uno (no se vale imprimir el array completo).

function imprimir (arreglo){
if (arreglo.length > 0){
for(let i = 0; i<arreglo.length; i++){
console.log(arreglo[i]);
} else if (arreglo.length===
console.log("array vac铆o")
}
}

4锔忊儯 Crea una funci贸n que pueda recibir cualquier objeto como par谩metro e imprima todos sus elementos uno por uno (no se vale imprimir el objeto completo).

function print (objeto){
if(Object.getOwnPropertyNames(objeto).length > 0){
for (let i =0; i < Object.getOwnPropertyNames(objeto).length; i++){
console.log(Object.getOwnPropertyNames(objeto)[i] + ": " +
Object.values(objeto)[i])
}
} else {
console.log("Objeto sin propiedades")
}
}

Variables y operaciones

驴Qu茅 es una variable y para qu茅 sirve?
Una variable en JavaScript es un contenedor que almacena un valor. Estos valores pueden ser n煤meros, cadenas de texto, objetos, funciones y m谩s. Las variables permiten manipular y acceder a estos valores en el c贸digo.

驴Cu谩l es la diferencia entre declarar e inicializar una variable?
Declarar una variable significa crearla en el c贸digo, mientras que inicializarla significa asignarle un valor por primera vez.

驴Cu谩l es la diferencia entre sumar n煤meros y concatenar strings?
Sumar n煤meros es una operaci贸n aritm茅tica que resulta en la adici贸n de valores num茅ricos. Concatenar strings es la acci贸n de unir cadenas de texto en una sola cadena.

驴Cu谩l operador me permite sumar o concatenar?
El operador + se utiliza tanto para sumar n煤meros como para concatenar strings.

Determina el nombre y tipo de dato para almacenar en variables la siguiente informaci贸n:

Nombre: nombre (Tipo de dato: string)
Apellido: apellido (Tipo de dato: string)
Nombre de usuario en Platzi: nombreUsuario (Tipo de dato: string)
Edad: edad (Tipo de dato: number)
Correo electr贸nico: correoElectronico (Tipo de dato: string)
Mayor de edad: esMayorDeEdad (Tipo de dato: boolean)
Dinero ahorrado: dineroAhorrado (Tipo de dato: number)
Deudas: deudas (Tipo de dato: number)
Traduce a c贸digo JavaScript las variables del ejemplo anterior:

javascript
Copy code
let nombre = 鈥淛uan鈥;
let apellido = 鈥淧茅rez鈥;
let nombreUsuario = 鈥渏uan123鈥;
let edad = 25;
let correoElectronico = 鈥[email protected]鈥;
let esMayorDeEdad = true;
let dineroAhorrado = 1000;
let deudas = 500;
Calcula e imprime las siguientes variables a partir de las variables del ejemplo anterior:
javascript
Copy code
let nombreCompleto = nombre + " " + apellido;
let dineroReal = dineroAhorrado - deudas;

console.log("Nombre completo: " + nombreCompleto);
console.log("Dinero real: " + dineroReal);
Funciones

驴Qu茅 es una funci贸n?
Una funci贸n en JavaScript es un bloque de c贸digo reutilizable que realiza una tarea espec铆fica. Puede aceptar par谩metros como entrada y devolver un valor como salida.

驴Cu谩ndo me sirve usar una funci贸n en mi c贸digo?
Las funciones son 煤tiles para dividir el c贸digo en partes m谩s peque帽as y manejables, lo que facilita la lectura, mantenimiento y reutilizaci贸n del c贸digo.

驴Cu谩l es la diferencia entre par谩metros y argumentos de una funci贸n?
Los par谩metros son variables que se definen en la declaraci贸n de la funci贸n y act煤an como marcadores de posici贸n para los valores que se pasan como argumentos al llamar a la funci贸n.

Convierte el siguiente c贸digo en una funci贸n:

javascript
Copy code
function saludar(nombre, apellido, nickname) {
const nombreCompleto = nombre + " " + apellido;
console.log("Mi nombre es " + nombreCompleto + ", pero prefiero que me digas " + nickname + 鈥.鈥);
}

saludar(鈥淛uan David鈥, 鈥淐astro Gallego鈥, 鈥渏uandc鈥);
Condiciones

驴Qu茅 es un condicional?
Un condicional es una estructura de control que permite tomar decisiones en el flujo de ejecuci贸n del c贸digo, bas谩ndose en una condici贸n evaluada como verdadera o falsa.

驴Qu茅 tipos de condicionales existen en JavaScript y cu谩les son sus diferencias?
En JavaScript, existen los condicionales if, else if y else para evaluar diferentes situaciones y ejecutar bloques de c贸digo correspondientes.

驴Puedo combinar funciones y condicionales?
S铆, puedes combinar funciones y condicionales para realizar acciones espec铆ficas dependiendo de ciertas condiciones.

Replica el comportamiento del c贸digo switch utilizando if, else y else if:

javascript
Copy code
const tipoDeSuscripcion = 鈥淏asic鈥;

if (tipoDeSuscripcion === 鈥淔ree鈥) {
console.log(鈥淪olo puedes tomar los cursos gratis鈥);
} else if (tipoDeSuscripcion === 鈥淏asic鈥) {
console.log(鈥淧uedes tomar casi todos los cursos de Platzi durante un mes鈥);
} else if (tipoDeSuscripcion === 鈥淓xpert鈥) {
console.log(鈥淧uedes tomar casi todos los cursos de Platzi durante un a帽o鈥);
} else if (tipoDeSuscripcion === 鈥淓xpertPlus鈥) {
console.log(鈥淭煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi durante un a帽o鈥);
}
Replica el comportamiento del condicional anterior utilizando solo if:
javascript
Copy code
if (tipoDeSuscripcion === 鈥淔ree鈥) {
console.log(鈥淪olo puedes tomar los cursos gratis鈥);
}
if (tipoDeSuscripcion === 鈥淏asic鈥) {
console.log(鈥淧uedes tomar casi todos los cursos de Platzi durante un mes鈥);
}
if (tipoDeSuscripcion === 鈥淓xpert鈥) {
console.log(鈥淧uedes tomar casi todos los cursos de Platzi durante un a帽o鈥);
}
if (tipoDeSuscripcion === 鈥淓xpertPlus鈥) {
console.log(鈥淭煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi durante un a帽o鈥);
}
Ciclos

驴Qu茅 es un ciclo?
Un ciclo es una estructura que permite repetir un bloque de c贸digo varias veces mientras se cumpla una condici贸n.

驴Qu茅 tipos de ciclos existen en JavaScript?
En JavaScript, existen los ciclos for, while y do-while.

驴Qu茅 es un ciclo infinito y por qu茅 es un problema?
Un ciclo infinito es un bucle que se ejecuta continuamente sin terminar. Esto puede causar que el programa se quede bloqueado y no responda.

驴Puedo mezclar ciclos y condicionales?
S铆, puedes utilizar ciclos dentro de condicionales y viceversa para crear estructuras m谩s complejas.

Replica el comportamiento de los ciclos for utilizando ciclos while:

javascript
Copy code
let i = 0;
while (i < 5) {
console.log("El valor de i es: " + i);
i++;
}

let j = 10;
while (j >= 2) {
console.log(鈥淓l valor de j es: " + j);
j鈥;
}
Escribe un c贸digo en JavaScript que le pregunte a los usuarios cu谩nto es 2 + 2:
javascript
Copy code
while (true) {
const respuesta = prompt(鈥淐u谩nto es 2 + 2?鈥);
if (respuesta === 鈥4鈥) {
console.log(鈥澛orrecto! 隆Felicitaciones!");
break;
} else {
console.log(鈥淩espuesta incorrecta. Intenta nuevamente.鈥);
}
}
Listas

驴Qu茅 es un array?
Un array es una estructura de datos que permite almacenar m煤ltiples valores en una sola variable. Los valores se almacenan en posiciones indexadas y se pueden acceder y modificar mediante su 铆ndice.

驴Qu茅 es un objeto?
Un objeto es una estructura de datos que permite almacenar pares clave-valor. Cada valor se almacena junto con una clave que act煤a como identificador.

驴Cu谩ndo es mejor usar objetos o arrays?
Los objetos son ideales cuando necesitas almacenar valores junto con sus identificadores 煤nicos (claves). Los arrays son 煤tiles cuando deseas almacenar una lista ordenada de valores.

驴Puedo mezclar arrays con objetos o incluso objetos con arrays?
S铆, puedes mezclar arrays con objetos y viceversa para crear estructuras de datos m谩s complejas y flexibles.

Crea una funci贸n que pueda recibir cualquier array como par谩metro e imprima su primer elemento:

javascript
Copy code
function imprimirPrimerElemento(arr) {
console.log(鈥淧rimer elemento:鈥, arr[0]);
}

const miArray = [1, 2, 3, 4, 5];
imprimirPrimerElemento(miArray);
Crea una funci贸n que pueda recibir cualquier array como par谩metro e imprima todos sus elementos uno por uno:
javascript
Copy code
function imprimirElementos(arr) {
for (let i = 0; i < arr.length; i++) {
console.log("Elemento " + i + ": " + arr[i]);
}
}

const otroArray = [鈥渁鈥, 鈥渂鈥, 鈥渃鈥漖;
imprimirElementos(otroArray);
Crea una funci贸n que pueda recibir cualquier objeto como par谩metro e imprima todos sus elementos uno por uno:
javascript
Copy code
function imprimirElementosObjeto(obj) {
for (let key in obj) {
console.log(key + ": " + obj[key]);
}
}

const miObjeto = {
nombre: 鈥淛uan鈥,
edad: 30,
profesion: 鈥淒esarrollador鈥
};

imprimirElementosObjeto(miObjeto);

Me pareci贸 interesante el reto n煤mero 3* de las CONDICIONALES:
.
Aqu铆 mi solution utilizando objetos:

Escribe un c贸digo en JavaScript que le pregunte a los usuarios cu谩nto es 2 + 2. Si responden bien, mostramos un mensaje de felicitaciones, pero si responden mal, volvemos a empezar. (pru茅balo en la consola del navegador)

const num1 = 2
const num2 = 2
const sum = num1 + num2

const resultado = () => {
  alert(`Cu谩nto es ${num1} + ${num2}?`)
  const val = prompt()
  if (val == sum) {
    alert('Felicidades')    
  } else {
    resultado()
  }
}
resultado()

1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:
驴Qu茅 es una variable y para qu茅 sirve?
Una variable es donde se almacenan y se recuperan los datos de un programa. As铆 de simple. En programaci贸n, la utilizamos para guardar datos y estados, asignar ciertos valores de variables a otras, representar valores de expresiones matem谩ticas y mostrar valores por pantallas.
驴Cu谩l es la diferencia entre declarar e inicializar una variable?
Cuando declaramos una variable, simplemente nombramos la variable, sin indicarle que tipo de informaci贸n o dato almacenara. En cambio, cuando inicializamos una variable indicamos el tipo de dato e informaci贸n que va a almacenar
驴Cu谩l es la diferencia entre sumar n煤meros y concatenar strings?
Sumar n煤meros es una operaci贸n matem谩tica y concatenar es unir strings uno tras otro.
驴Cu谩l operador me permite sumar o concatenar?
JavaScript usa el signo + tanto para una suma como para concatenar strings, as铆 cuando uno de los operadores de una suma es un string
2锔忊儯 Determina el nombre y tipo de dato para almacenar en variables la siguiente informaci贸n:
Nombre "string"
Apellido "string"
Nombre de usuario en Platzi "string"
Edad "number"
Correo electr贸nico"string"
Mayor de edad "boolean"
Dinero ahorrado "number"
Deudas "number"
3锔忊儯 Traduce a c贸digo JavaScript las variables del ejemplo anterior y deja tu c贸digo en los comentarios.

//Variables
let name = 鈥渕ichael鈥;
let lastName = 鈥渞eyes鈥;
let user_name = 鈥渕ichell鈥;
let age = 24;
let mail = "[email protected]"
let adult = falce;
let savedMoney = 1900;
let debtMoney = 600000;
4锔忊儯 Calcula e imprime las siguientes variables a partir de las variables del ejemplo anterior:
Nombre completo (nombre y apellido)
//Nombre completo
let name = 鈥渕ichael鈥;
let lastName = 鈥渞eyes鈥;
console.log(Mi nombre completo es ${name} ${lastName});
Dinero real (dinero ahorrado menos deudas)
//Dinero ahorrado
let savedMoney = 1600;
let debtMoney = 60000;
let totalMoney = savedMoney - debtMoney;
console.log(El total de mi dinero actual es: $${totalMoney});
1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:
驴Qu茅 es una funci贸n?
Una funci贸n en JavaScript es un bloque de c贸digo o un conjunto de instrucciones que realiza una tarea espec铆fica y que puede reutilizarse a voluntad. Por lo tanto, una funci贸n es uno de los building blocks fundamentales de JavaScript.
驴Cu谩ndo me sirve usar una funci贸n en mi c贸digo?
Una funci贸n en JavaScript es similar a un procedimiento 鈥 un conjunto de instrucciones que realiza una tarea o calcula un valor, pero para que un procedimiento califique como funci贸n, debe tomar alguna entrada y devolver una salida donde hay alguna relaci贸n obvia entre la entrada y la salida.
驴Cu谩l es la diferencia entre par谩metros y argumentos de una funci贸n?
As铆, los par谩metros son los nombres que aparecen en la definici贸n de una funci贸n. Por su parte, los argumentos son los valores que le pasamos (y que, por tanto, recibe) una funci贸n.

const name = 鈥淛uan David鈥;
const lastname = 鈥淐astro Gallego鈥;
const completeName = name + lastname;
const nickname = 鈥渏uandc鈥;
console.log("Mi nombre es " + completeName + ", pero prefiero que me digas " + nickname + 鈥.鈥);

//My solution
function presentation(name, lastName, nickName){
return console.log(鈥淢i nombre completo es鈥 + name + lastName + 鈥減ero prefiero que me digas鈥 + nickName );
}

presentation();

1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:
驴Qu茅 es un condicional?
El condicional if en javascript, si en espa帽ol, nos permite introducir una situaci贸n que debe ser verdadera para que una acci贸n suceda. Luego de este, escribiremos la acci贸n a ejecutar. Entonces, podemos hacer que, por ejemplo, si una variable llega a determinado valor (i = 3), un bucle se detenga (break).
驴Qu茅 tipos de condicionales existen en JavaScript y cu谩les son sus diferencias?
If鈥lse
Switch
Con el condicional If鈥lse podemos tener diferentes expresiones para evaluar dependiente del caso, y generar tantos If o else como sea necesario. Mientras que Switch case toma una sola expresi贸n de entrada pero puede evaluar todos los casos como sea necesario de una forma m谩s ordenada.

驴Puedo combinar funciones y condicionales?

Podemos encadenar una respusta desde un condional a otro pero no podemos combinarlo dentro de una misma expresi贸n. Si podemos ocuparlos de forma separada y luego encadenar una acci贸n dependiendo del resultado.

2锔忊儯 Replica el comportamiento del siguiente c贸digo que usa la sentencia switch utilizando if, else y else if:

const tipoDeSuscripcion = 鈥淏asic鈥;
switch (tipoDeSuscripcion) {
case 鈥淔ree鈥:
console.log(鈥淪olo puedes tomar los cursos gratis鈥);
break;
case 鈥淏asic鈥:
console.log(鈥淧uedes tomar casi todos los cursos de Platzi durante un mes鈥);
break;
case 鈥淓xpert鈥:
console.log(鈥淧uedes tomar casi todos los cursos de Platzi durante un a帽o鈥);
break;
case 鈥淓xpertPlus鈥:
console.log(鈥淭煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi durante un a帽o鈥);
break;
}
//My solution
const tipoDeSuscripcion = 鈥淏asic鈥;
if (tipoDeSuscripcion == 鈥淔ree鈥) {
console.log(鈥淪olo puedes tomar los cursos gratis鈥);
} else if (tipoDeSuscripcion == 鈥淏asic鈥) {
console.log(鈥淧uedes tomar casi todos los cursos de Platzi durante un mes鈥);
} else if (tipoDeSuscripcion == 鈥淓xpert鈥) {
console.log(鈥淧uedes tomar casi todos los cursos de Platzi durante un a帽o鈥);
} else if (tipoDeSuscripcion == 鈥淓xpertPlus鈥) {
console.log(鈥淭煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi durante un a帽o鈥);
} else {
console.log(鈥淣o tienes ninguna suscripci贸n? suscribete ahora鈥);
}

1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:
驴Qu茅 es un ciclo?
Los bucles en JavaScript son una manera de crear repeticiones en nuestro c贸digo y son una parte importante de la sintaxis de este lenguaje de programaci贸n. Por ello, conocer c贸mo funcionan nos ayuda a elaborar situaciones complejas en las que automatizamos la repetici贸n de varias funciones.
驴Qu茅 tipos de ciclos existen en JavaScript?
Existe 4 tipos de ciclos en JavaScript, estos son For, While, Do While, For in y For of.
驴Qu茅 es un ciclo infinito y por qu茅 es un problema?
Un bucle infinito es una secuencia de instrucciones en un programa de computadora que se repite sin cesar, ya sea porque el bucle no tiene una condici贸n de terminaci贸n, porque tiene una que nunca se puede cumplir o porque causa el bucle.
驴Puedo mezclar ciclos y condicionales?
驴Puedo mezclar ciclos y condicionales? Si, tanto ciclos como condicionales pueden anidarse.
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);
}
//My Solution
let i = 0;
while (i < 5) {
i++;
console.log(El valor de i es: ${i})
}
let i = 10;
while (i >= 2) {
i鈥;
console.log(El valor de i es: ${i})
}

3锔忊儯 Escribe un c贸digo en JavaScript que le pregunte a los usuarios cu谩nto es 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.

//Basic Math Quiz
let num = 10;
let num2 = 10;
const result = num + num2;
let questions = {
q1: Cuanto es ${num} + ${num2}
}
function Quizzer() {
let userInput = prompt(questions.q1);
if (userInput == result) {
alert(鈥淔elicitaciones, respondiste correctamente el desafio 馃槑鈥);
} else {
alert(" tu respuesta es incorrecta");
}
}
Quizzer();

1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:
驴Qu茅 es un array?

Un array es una colecciones de elementos con valores de una sola variable. Se escriben dentro de [ 鈥 ], separado por una coma.

驴Qu茅 es un objeto?

Es una colecci贸n de datos relacionados con m煤ltiples variables con sus valores.

驴Cu谩ndo es mejor usar objetos o arrays?

Ocupamos objetos cuando el conjunto de elementos es muy grande y de distintos tipos de valores.

驴Puedo mezclar arrays con objetos o incluso objetos con arrays?

2锔忊儯 Crea una funci贸n que pueda recibir cualquier array como par谩metro e imprima su primer elemento.
let myArray = [鈥楳anchester鈥, 鈥楲ondon鈥, 鈥楲iverpool鈥, 鈥楤irmingham鈥, 鈥楲eeds鈥, 鈥楥arlisle鈥橾;
function readArray(array){
console.log(array[0])
}
readArray(myArray);
3锔忊儯 Crea una funci贸n que pueda recibir cualquier array como par谩metro e imprima todos sus elementos uno por uno (no se vale imprimir el array completo).
let myArray = [鈥楳anchester鈥, 鈥楲ondon鈥, 鈥楲iverpool鈥, 鈥楤irmingham鈥, 鈥楲eeds鈥, 鈥楥arlisle鈥橾;
function readArray(array) {
for (let i = 0; i < array.length; i++) {
console.log(${i + 1} ${array[i]})
}
}
readArray(myArray);
4锔忊儯 Crea una funci贸n que pueda recibir cualquier objeto como par谩metro e imprima todos sus elementos uno por uno (no se vale imprimir el objeto completo).
let myCar = {
make: 鈥楩ord鈥,
model: 鈥楳ustang鈥,
year: 1969
};
function readObject(object) {
for (let key in object) {
console.log(object[key]);
}
}
readObject(myCar);

Variables y Operaciones
Parte1

  • Una variable es un espacio en memoria reservado para almacenar informaci贸n/datos.

  • Declarar una variable se refiere a 煤nicamente darle nombre a la variable sin indicarle que dato y tipo de dato
    almacenara mientras que inicializarla se refiere a darle un valor a almacenar esa variable.

  • Cuando sumamos n煤meros lo que realizamos es una suma com煤n como por ejemplo 10 + 10 = 20, y cuando concatenamos strings lo que hacemos es unir dos cadenas de texto. Ejemplo: "Hola " + 鈥渁migo鈥 = 鈥淗ola amigo鈥.

  • El operador de suma 鈥+鈥.

Parte 2

  • Nombre: String; 鈥淪teven鈥

  • Apellido: String; 鈥淢oya鈥

  • Nombre de usuario Platzi: String; 鈥渟tevenmoya02鈥

  • Edad: Number; 21

  • Correo electronico: String 鈥[email protected]

  • Mayor de edad: Boolean; True

  • Dinero ahorrado: Number; 100000.00

  • Deudas: Number; 100000.00

Parte 3


  let nombre = "Steven";
  let apellido = "Moya";
  let userNamePlatzi = "stevenmoya02";
  let age = 21;
  let email = "[email protected]";
  let mayorEdad = true;
  let dineroAhorrado = 100000;
  let deudas = 100000;

Parte 4

  console.log(`Nombre completo: ${nombre} ${apellido}`);
  console.log( `Dinero total: ${dineroAhorrado - deudas}` );

Funciones
Parte 1

  • Una funci贸n es un pedazo de c贸digo, o una serie de instrucciones que realizan una operaci贸n. Una funci贸n puede retornar un valor de salida o no.
  • Una funci贸n es 煤til en nuestro c贸digo cuando repetimos mucho c贸digo, en lugar de estar repitiendo c贸digo podr铆amos pasarlo a una funci贸n donde solo lo tendr铆amos que escribir una vez.
  • Los par谩metros se definen a con la funci贸n y son los datos que una funci贸n espera recibir, mientras que los argumentos son los datos que se env铆an a la hora de invocar a una funci贸n.

Parte 2

const mensajeNombre = (nombre, apellido, apodo) => {

    console.log(`Mi nombre es ${nombre} ${apellido}, pero prefiero que me digas ${apodo}.`);
}

mensajeNombre(nombre,apellido,"Randys");

Condicionales
Parte 1

  • Un condicional es una porci贸n de c贸digo que se se ejecuta bas谩ndose en si una condici贸n es verdadera o falsa.

  • En JavaScript existen los siguientes condicionales: if, if else, else if, switch, operador ternario. Cada en el caso de if se ejecuta si la condici贸n es verdadera, en el else if b谩sicamente son if anidados, en el if else se ejecuta el if si la condici贸n es verdadera y el else en caso de que sea falsa, el operador ternario es como un if else pero con una sintaxis mas corta. Y el switch es un bloque de c贸digo que evalua diferentes opciones.

Parte 2

if (tipoDeSuscripcion == "Free"){
    console.log("Solo puedes tomar los cursos gratis");

} else 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");
    
}

Parte 3

let tipoDeSuscripcion = "Basic";

const tiposSub = ["Free","Basic", "Expert", "ExpertPlus"];
const mensajeTiposSub = ["Solo puedes tomar los cursos gratis",
                        "Puedes tomar casi todos los cursos de Platzi durante un mes",
                        "Puedes tomar casi todos los cursos de Platzi durante un a帽o",
                        "T煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi durante un a帽o"];

for (let i = 0; i < tiposSub.length; i++) {
    if(tiposSub[i] == tipoDeSuscripcion){
        console.log(mensajeTiposSub[i]);
    }
}

Ciclos
Parte 1

  • Un ciclo es un estructura de control que nos permite ejecutar una porci贸n de c贸digo varias veces hasta que se cumpla una condici贸n especifica.

  • En javascript existen los siguientes ciclos: for, while, do-while

  • Un bucle infinito es cunado la condici贸n de un ciclo nunca se deja de cumplir por lo que el c贸digo se ejecutara infinitas veces provocando que se rompa el c贸digo y no se pueda avanzar en la ejecuci贸n.

  • S铆, se pueden combinar bucles y condicionales.

Parte 2

let i = 0;
while(i < 6){
    console.log("El valor de i es: " + i);
    i++;
}

i = 10;
while(i >= 2){
    console.log("El valor de i es: " + i);
    i--;
}

Parte 3

let respueta = false;
let userRespuesta;
do{
    userRespuesta = prompt("cuanto es 2 + 2")

    if(userRespuesta == 4){
        alert("Es correcto!!!");
        respueta == true;
    }else{
        alert("Incorrecto, intenta de nuevo");
    }
} while(respueta == false)

Listas
Parte 1

  • Un array es una estructura de datos que permite almacenar m煤ltiples datos en una sola variable, cada dato tiene una posici贸n 煤nica que se conoce como 铆ndice y que se usa para acceder a dichos datos.
    ejemplo:
const numbers= [10, 20, 30, 40];

  • Un objeto es una estructura de datos que es una entidad al que se le pueden definir atributos y m茅todos agrupados y que pertenecen a esa entidad.
    ejemplo:
const persona = {
  nombre: "Steven",
  edad: 22,
  pais: "Costa Rica"
};
  • Los arrays es mejor usarlos cuando queremos crear una lista de n煤meros o cosas y poder ordenarla y acceder a su contenido a trav茅s de su posici贸n o numero de 铆ndice. En cambio los objetos es mejor usarlos cuando queremos asignar pares de clave valor, donde cada clave esta asociada a un valor en especifico.

  • S铆, podemos crear arrays de objetos y tambi茅n podemos crear objetos que contengan arrays como atributos.

Parte 2

const numbers= [10, 20, 30, 40];

function imprimirPrimerValor(array){
    console.log(array[0]);
}

imprimirPrimerValor(numbers);

Parte 3

const numbers= [10, 20, 30, 40];

function imprimirValoresArray(array){
    for (let i = 0; i < array.length; i++) {
        console.log(array[i]);
    }
}

imprimirValoresArray(numbers);

Parte 4

const persona = {
    nombre: "Steven",
    edad: 22,
    pais: "Costa Rica"
};

function imprimirValoresObjeto(objeto){
    for (let atributo in objeto) {
        console.log(persona[atributo])
    }
}

imprimirValoresObjeto(persona);

Mi codigo SM 馃殌


// Creacion de un metodo contructor para crear varios usuarios
function Usuario(nombre, apellido, platzi_user_name, edad, email, mayor, dinero_ahorrado, deudas){
    this.nombre = nombre;
    this.apellido = apellido;
    this.platzi_user_name = platzi_user_name;
    this.edad = edad;
    this.email = email;
    this.mayor = mayor;
    this.dinero_ahorrado = dinero_ahorrado;
    this.deudas = deudas;
    this.full_name = function(){
        console.log(`${this.nombre} ${this.apellido}`);
    };
    this.dinero_real = function(){
        console.log(`${this.dinero_ahorrado - this.deudas}`);
    };
    
}

// Creacion de un nuevo usuario
var newUser = new Usuario("Pepito", "Perez", "Pepito", 100, "[email protected]", true, 1000000, 500000);

// Imprimir el nombre completo
newUser.full_name();
// =>Pepito Perez


// Imprimir cuanto dinero real tiene en la cuenta
newUser.dinero_real();
// =>500000

By SsimorPro

1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:
驴Qu茅 es una variable y para qu茅 sirve?
Una variable es una entidad que reserva espacio en la memoria para almacenar informacion.
驴Cu谩l es la diferencia entre declarar e inicializar una variable?
Declarar una variable consiste en llamar a ese variable para usarlo en alguna instruccion de nuestro codigo. En cambio inicializar una variable consiste en asignarle un valor inicial a esa variable, asimismo podemos indicar el tipo de dato.
驴Cu谩l es la diferencia entre sumar n煤meros y concatenar strings?
Sumar 2 numeros estamos haciendo referencia a la funcion mantematica de adici贸n. En cambio al concatenar string simplemente estamos uniendo 2 tipo de datos, los cuales generalmente son string.
驴Cu谩l operador me permite sumar o concatenar?
El operador que permite sumar y concatenar es "+"
2锔忊儯 Determina el nombre y tipo de dato para almacenar en variables la siguiente informaci贸n:
Nombre "String"
Apellido "String"
Nombre de usuario en Platzi "String"
Edad "Number"
Correo electr贸nico "String"
Mayor de edad "Boolean"
Dinero ahorrado "Number"
Deudas 鈥淣umber鈥

3锔忊儯 Traduce a c贸digo JavaScript las variables del ejemplo anterior y deja tu c贸digo en los comentarios.

var nombre = "Jorge";
var apellido = "Holguin";
Nombre de usuario en platzi ="jorgeh";
Edad = 29;
Correo electronico = "[email protected]";
Mayor de edad = true;
DineroAhorrado = 500;
Deudas = 5000;

4锔忊儯 Calcula e imprime las siguientes variables a partir de las variables del ejemplo anterior:
Nombre completo (nombre y apellido)

var nombre = "Jorge";
var apellido = "Holguin";
console.log(`Mi nombre completo es ${nombre} ${apellido}`)

Dinero real (dinero ahorrado menos deudas)

var DineroAhorrado = 500;
var Deudas = 5000;
var DineroTotal = DineroAhorrado - Deudas;
console.log(`El total de mi dinero actual es: ${DineroTotal}`);

1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:
驴Qu茅 es una funci贸n?
Es un conjunto de instrucciones empaquetadas en nuestro codigo, con la finalidad de poder reutilizarlas.
驴Cu谩ndo me sirve usar una funci贸n en mi c贸digo?
Cuando tenemos acciones repetidas y necesitamos reducir nuestra cantidad y complejidad de codigo.
驴Cu谩l es la diferencia entre par谩metros y argumentos de una funci贸n?
Los parametros son las variables que se definen en la declaracion de nuestra funcion. En cambio los argumentos son los datos que asignamos a los parametros de la funcion para hacer un llamado a esa funcion.
2锔忊儯 Convierte el siguiente c贸digo en una funci贸n, pero, cambiando cuando sea necesario las variables constantes por par谩metros y argumentos en una funci贸n:

function Presentacion(name, lastName, nickName){
return console.log(Mi nombre completo es ${name} ${lastName}, pero prefiero que me digas ${nickName}.);
}
var presentar = presentation(鈥淛orge鈥, 鈥淗olguin鈥, 鈥渏orgeh鈥);

Condicionales
1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:
驴Qu茅 es un condicional?
Es una expresion booleana que nos permite evaluar una situacion como falsa o verdadera, es muy util para poder controlar la accion de un bloque de codigo dependiendo las diversas situaciones que tengamos.
驴Qu茅 tipos de condicionales existen en JavaScript y cu谩les son sus diferencias?
if/else -switch - ?
驴Puedo combinar funciones y condicionales?
Si se puede
2锔忊儯 Replica el comportamiento del siguiente c贸digo que usa la sentencia switch utilizando if, else y else if:

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 == "Free"){
console.log("Solo puedes tomar los cursos gratis");

}

else 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 ("Error")
}

1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:
驴Qu茅 es un ciclo?
Es un bucle que se repite hasta que se cumple una determinada condicion
驴Qu茅 tipos de ciclos existen en JavaScript?
while - do/while - for
驴Qu茅 es un ciclo infinito y por qu茅 es un problema?
Un ciclo infinito es cuando un bucle no tiene una condicion de salida. Puede relentizar la computadora o crashear el programa.
驴Puedo mezclar ciclos y condicionales?
Si, podemos iterar hasta que se cumpla una condicion de salida.Apellido
2锔忊儯 Replica el comportamiento de los siguientes ciclos for utilizando ciclos while:

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);
}

var i = 0;
while (i < 5) {
    console.log("El valor de i es: " + i);
    i++;
}

var i = 10;
while (i >=2 ){
    console.log("El valor de i es: " + i);
    i--;
}

3锔忊儯 Escribe un c贸digo en JavaScript que le pregunte a los usuarios cu谩nto es 2 + 2. Si responden bien, mostramos un mensaje de felicitaciones, pero si responden mal, volvemos a empezar.

let respuesta = prompt("驴Cu谩nto es 2 + 2?");

while (respuesta !== "4") {
  respuesta = prompt("Respuesta incorrecta. 驴Cu谩nto es 2 + 2?");
}

console.log("隆Felicitaciones! Respondiste correctamente.");

1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:
驴Qu茅 es un array?
Un array es un conjunto de valores o elementos, que se engloban en una sola variable. Tambien se les puede denominar como objetos.
驴Qu茅 es un objeto?
Es similar a un array. Es una coleccion de valores relacionados.
驴Cu谩ndo es mejor usar objetos o arrays?
Se puede emplear un array para poder relacionar elementos dentro de un mismo conjunto, y arrays para poder guardar informacion secuencial.

驴Puedo mezclar arrays con objetos o incluso objetos con arrays?
S铆, en JavaScript es posible mezclar arrays con objetos e incluso tener arrays de objetos. Esto te brinda flexibilidad para estructurar y organizar tus datos de manera m谩s compleja y espec铆fica seg煤n tus necesidades.

2锔忊儯 Crea una funci贸n que pueda recibir cualquier array como par谩metro e imprima su primer elemento.

function LeerArray (array){
    console.log(array[0]);
}

3锔忊儯 Crea una funci贸n que pueda recibir cualquier array como par谩metro e imprima todos sus elementos uno por uno (no se vale imprimir el array completo).

function LeerArray (array){
    while(i< array.length){
    console.log(array[i]);
    i++;
    }
}

4锔忊儯 Crea una funci贸n que pueda recibir cualquier obje

function imprimirElementos(objeto) {
    for (let key in objeto) {
      console.log(objeto[key]);
    }

}

Test de JavaScript
Variables y operaciones

  1. Responde las siguientes preguntas en la secci贸n de comentarios
  • Es un espacio de memoria y sirve para almacenar un dato
  • Cuando declaras, solo reservas un espacio de memoria y le asignas un nombre. Al inicializar, le das un valor a esa variable.
  • Sumar es n煤meros es hacer una operaci贸n aritm茅tica y concatenar strings es para unir texto.
  • El es operador de suma 鈥+鈥.
  1. Determina el nombre y tipo de dato para almacenar en variables la siguiente informaci贸n:
  • Nombre -> String
  • Apellido -> String
  • Nombre de usuario Platzi -> String
  • Edad -> Number
  • Correo electr贸nico -> String
  • Mayor de edad -> Boolean
  • Dinero ahorrado -> Number
  • Deudas -> Number
  1. Traduce a c贸digo JavaScript las variables del ejemplo anterior y deja tu c贸digo en los comentarios.
let nombre = "Adrian"
let apellido = "Ruiz"
let userPlatzi = "aruiz08"
let edad = 18
let correo = "[email protected]"
let mayorEdad = true
let dineroAhorrado = 2000
let deudas = 0
  1. Calcula e imprime las siguientes variables a partir de las variables del ejemplo anterior:
console.log(`Su nombre completo es ${nombre} ${apellido}`)
console.log(`El dinero real es:  ${dineroAhorrado - deudas}`)

Funciones

  1. Responde las siguientes preguntas en la secci贸n de comentarios:
  • Una funci贸n es un procedimiento almacenado que solo se ejecuta al ser invocado.
  • Cuando se repite c贸digo.
  • Los par谩metros son el nombre de variables que tiene como entrada una funci贸n. Los argumentos son el valor de esas entradas al invocar la funci贸n .
  1. Convierte el siguiente c贸digo en una funci贸n, pero, cambiando cuando sea necesario las variables constantes por par谩metros y argumentos en una funci贸n:
function saludo(name, lastname, nickname){
	const completeName = name + lastname;

	console.log("Mi nombre es " + completeName + ", pero prefiero que me digas " + nickname + ".");
}

Condicionales

  1. Responde las siguientes preguntas en la secci贸n de comentarios:
  • Es una estructura de control que permite realizar un flujo correcto de acuerdo a la situaci贸n que se presente
  • If, else if, else y switch. If es para poner una condici贸n y en caso de que se cumpla, se ejecutan las l铆neas de c贸digo que encapsula esta condicional. Else son las lineas de c贸digo que se ejecutan si no se cumple la condici贸n del if. Else if es para poner otra condici贸n en caso que la primera condici贸n no se haya cumplido. Switch me permite almacenar distintos casos donde solo se ejecutar谩 uno de acuerdo a la entrada que reciba est谩 estructura de control.
  1. Replica el comportamiento del siguiente c贸digo que usa la sentencia switch utilizando if, else y else if:
const tipoDeSuscripcion = "Basic";

if(tipoDeSuscripcion === "Free"){
	console.log("Solo puedes tomar los cursos gratis");
}else 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");
}
  1. Replica el comportamiento de tu condicional anterior con if, else y else if, pero ahora solo con if (sin else ni else if).
const tipoDeSuscripcion = "Basic";

const opciones = [{suscripcion: "Free", mensaje: "Solo puedes tomar los cursos gratis"}, {suscripcion: "Basic", mensaje: "Puedes tomar casi todos los cursos de Platzi durante un mes"}, {suscripcion: "Expert", mensaje: "Puedes tomar casi todos los cursos de Platzi durante un a帽o"}, {suscripcion: "ExpertPlus", mensaje: "T煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi durante un a帽o"}];

opciones.forEach(function(opcion){
	if(opcion.suscripci贸n === tipoDeSuscripcion){
		console.log(opcion.mensaje);
	}
})

Ciclos

  1. Responde las siguientes preguntas en la secci贸n de comentarios:
  • Permiten repetir c贸digo cierta cantidad de veces de acuerdo a una condici贸n.
  • for, for-of, for-in, while y do-while
  • Es cuando no le damos una salida al ciclo y se queda iterando infinitamente. Es un problema porque se mantiene consumiendo recursos del computador y pueden saturar el programa hasta detenerlo por completo.
  • Si. Es muy com煤n hacer estas combinaciones al recorrer arreglos u objetos.
  1. Replica el comportamiento de los siguientes ciclos for utilizando ciclos while:
let i = 0;
while(i < 5){
	console.log("El valor de i es: " + i);
	i++
}

i = 10;
while(i >= 2){
	console.log("El valor de i es: " + i);
	i--
}
  1. Escribe un c贸digo en JavaScript que le pregunte a los usuarios cu谩nto es 2 + 2. Si responden bien, mostramos un mensaje de felicitaciones, pero si responden mal, volvemos a empezar.
let respuesta = prompt("驴Cuanto es 2 + 2?");
if(respuesta == 4){
	console.log("隆Felicitaciones!")
} else {
	console.log("Respuesta Incorrecta :(")
}

Listas

  1. Responde las siguientes preguntas en la secci贸n de comentarios:
  • Es una estructura de datos que me permite almacenar distintos datos en un mismo lugar.
  • Es una estructura de datos que me permite designar propiedades y acciones en un mismo lugar.
  • Cuando se requiere almacenar una lista de datos o es necesario acceder a propiedades o caracter铆sticas de objetos a almacenar.
  • Si. Es muy com煤n utilizarlo. Un ejemplo podr铆a ser para almacenar un la informaci贸n de un carrito de compras en un Ecommerce.
  1. Crea una funci贸n que pueda recibir cualquier array como par谩metro e imprima su primer elemento.
function primerElemento(array){
	console.log(array[0])
}
  1. Crea una funci贸n que pueda recibir cualquier array como par谩metro e imprima todos sus elementos uno por uno (no se vale imprimir el array completo).
function imprimirArray(array){
	array.forEach(function(elemento){
		console.log(elemento);
	})
}
  1. Crea una funci贸n que pueda recibir cualquier objeto como par谩metro e imprima todos sus elementos uno por uno (no se vale imprimir el objeto completo).
function imprimirObjeto(objeto){
	for(const propiedad in objeto){
		console.log(`La propiedad: ${propiedad} y su valor: ${objeto[propiedad]}`)
	}
}

respuestas del test javascript
驴Qu茅 es una variable y para qu茅 sirve?
es un espacio en memoria que nos permite almacenar informaci贸n (cualquier tipo de datos)

驴Cu谩l es la diferencia entre declarar e inicializar una variable?
Cuando declaramos una variable, simplemente nombramos la variable, sin indicarle que tipo de informaci贸n o dato almacenara. En cambio, cuando inicializamos una variable indicamos el tipo de dato e informaci贸n que va a almacenar.

ejemplo
var articulo
var = articulo

驴Cu谩l es la diferencia entre sumar n煤meros y concatenar strings?
Al momento sumar n煤meros estamos realizando una operaci贸n matem谩tica con dos tipos de datos (Numbers) mientras que al concatenar estamos sumando dos tipos de datos (String) que son cadena de textos.

驴Cu谩l operador me permite sumar o concatenar?
El operador utilizado es el signo +

2锔忊儯 Determina el nombre y tipo de dato para almacenar en variables la siguiente informaci贸n:
Nombre : string
Apellido ; string
Nombre de usuario en Platzi: string
Edad: number
Correo electr贸nico: string
Mayor de edad: boleean
Dinero ahorrado: number
Deudas: number

3锔忊儯 Traduce a c贸digo JavaScript las variables del ejemplo anterior y deja tu c贸digo en los comentarios.
//Variables
let name = 鈥渟aid鈥;
let lastName = 鈥渏anacet鈥;
let user_name = 鈥渟aid鈥;
let age = 26;
let mail = "[email protected]"
let adult = true;
let savedMoney = 1500;
let debtMoney = 500000;

4锔忊儯 Calcula e imprime las siguientes variables a partir de las variables del ejemplo anterior:
Nombre completo (nombre y apellido)
//Nombre completo
let name = 鈥淐amilo鈥;
let lastName = 鈥淪aavedra鈥;
console.log(Mi nombre completo es ${name} ${lastName});

Dinero real (dinero ahorrado menos deudas)
//Dinero ahorrado
let savedMoney = 1000000;
let debtMoney = 500000;
let totalMoney = savedMoney - debtMoney;
console.log(El total de mi dinero actual es: $${totalMoney});

Funciones
1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:
驴Qu茅 es una funci贸n?

Es un conjunto de acciones que nos permitir谩 reutilizar en nuestro c贸digo y siempre deben devolver un resultado. Podemos crear diferentes funciones con par谩metros distintos y luego utilizar la informaci贸n para realizar un evento o acci贸n dentro de nuestro c贸digo.

驴Cu谩ndo me sirve usar una funci贸n en mi c贸digo?

Cuando necesitamos repetir una acci贸n en nuestro c贸digo, en vez de escribir una suma, por ejemplo en cada l铆nea, podemos crear una funci贸n que nos permita sumar elementos cada vez que lo necesitemos y solo cambiamos sus par谩metros.

驴Cu谩l es la diferencia entre par谩metros y argumentos de una funci贸n?

Los par谩metros son las variables declaras y solicitadas en nuestra funci贸n, al momento de realizar el llamado de nuestra funciones nos exigir谩 declarar nuestras variables que vendr铆an a ser nuestros argumentos de la funci贸n.

function myFunction(par谩metro1 + par谩metro2) {
//鈥 All my code here
}

myFunction(argumento + argumento2);
//Al declarar las variables par谩metro1 y par谩metro2 estamos generando los argumentos de nuestra funci贸n.

2锔忊儯 Convierte el siguiente c贸digo en una funci贸n, pero, cambiando cuando sea necesario las variables constantes por par谩metros y argumentos en una funci贸n:
const name = 鈥淛uan David鈥;
const lastname = 鈥淐astro Gallego鈥;
const completeName = name + lastname;
const nickname = 鈥渏uandc鈥;
console.log("Mi nombre es " + completeName + ", pero prefiero que me digas " + nickname + 鈥.鈥);
//My solution
function presentation(name, lastName, nickName){
return console.log(Mi nombre completo es ${name} ${lastName}, pero prefiero que me digas ${nickName}.);
}
presentation(鈥淐amilo鈥, 鈥淪aavedra鈥, 鈥渃isaa鈥);
Condicionales
1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:
驴Qu茅 es un condicional?

Es una expresi贸n que nos permite evaluar si es True o False.

驴Qu茅 tipos de condicionales existen en JavaScript y cu谩les son sus diferencias?

If鈥lse
Switch
Con el condicional If鈥lse podemos tener diferentes expresiones para evaluar dependiente del caso, y generar tantos If o else como sea necesario. Mientras que Switch case toma una sola expresi贸n de entrada pero puede evaluar todos los casos como sea necesario de una forma m谩s ordenada.

驴Puedo combinar funciones y condicionales?

Podemos encadenar una respusta desde un condional a otro pero no podemos combinarlo dentro de una misma expresi贸n. Si podemos ocuparlos de forma separada y luego encadenar una acci贸n dependiendo del resultado.

2锔忊儯 Replica el comportamiento del siguiente c贸digo que usa la sentencia switch utilizando if, else y else if:
const tipoDeSuscripcion = 鈥淏asic鈥;
switch (tipoDeSuscripcion) {
case 鈥淔ree鈥:
console.log(鈥淪olo puedes tomar los cursos gratis鈥);
break;
case 鈥淏asic鈥:
console.log(鈥淧uedes tomar casi todos los cursos de Platzi durante un mes鈥);
break;
case 鈥淓xpert鈥:
console.log(鈥淧uedes tomar casi todos los cursos de Platzi durante un a帽o鈥);
break;
case 鈥淓xpertPlus鈥:
console.log(鈥淭煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi durante un a帽o鈥);
break;
}
//My solution
const tipoDeSuscripcion = 鈥淏asic鈥;
if (tipoDeSuscripcion == 鈥淔ree鈥) {
console.log(鈥淪olo puedes tomar los cursos gratis鈥);
} else if (tipoDeSuscripcion == 鈥淏asic鈥) {
console.log(鈥淧uedes tomar casi todos los cursos de Platzi durante un mes鈥);
} else if (tipoDeSuscripcion == 鈥淓xpert鈥) {
console.log(鈥淧uedes tomar casi todos los cursos de Platzi durante un a帽o鈥);
} else if (tipoDeSuscripcion == 鈥淓xpertPlus鈥) {
console.log(鈥淭煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi durante un a帽o鈥);
} else {
console.log(鈥淣o tienes ninguna suscripci贸n鈥);
}
3锔忊儯 Replica el comportamiento de tu condicional anterior con if, else y else if, pero ahora solo con if (sin else ni else if).
馃挕 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. 馃槒

let typeSuscripci贸n = [
鈥淔ree鈥,
鈥淏asic鈥,
鈥淓xpert鈥,
鈥淓xpertPlus鈥
];
let infoSuscripci贸n = [
鈥渟olo puedes tomar los cursos gratis鈥,
鈥減uedes tomar casi todos los cursos de Platzi durante un mes鈥,
鈥減uedes tomar casi todos los cursos de Platzi durante un a帽o鈥,
鈥渢煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi durante un a帽o鈥漖;
let userSuscription = 鈥淓xpert鈥;
for (let i=0; i < typeSuscripci贸n.length; i++) {
if (userSuscription == typeSuscripci贸n[i]) {
console.log(Si estas suscrito al plan ${typeSuscripci贸n[i]} en el cual ${infoSuscripci贸n[i]})
}
}
Ciclos
1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:
驴Qu茅 es un ciclo?

Un ciclo es un bucle que se repite hasta que se cumpla una condici贸n.

驴Qu茅 tipos de ciclos existen en JavaScript?

Ciclo For, While, etc.

驴Qu茅 es un ciclo infinito y por qu茅 es un problema?

Un ciclo infinito es cuando la condici贸n es infinita, nunca se cumple y, por lo tanto, no existe termino al proceso, por consecuencia nuestro c贸digo puede fallar y ralentizar nuestras computadoras.

驴Puedo mezclar ciclos y condicionales?

S铆, podemos condicionar un ciclo para que se repita todas las veces hasta que se cumplan una condici贸n que internamente puede tener otra condici贸n para su evaluaci贸n.

2锔忊儯 Replica el comportamiento de los siguientes ciclos for utilizando ciclos while:
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);
}
//My Solution
let i = 0;
while (i < 5) {
i++;
console.log(El valor de i es: ${i})
}
let i = 10;
while (i >= 2) {
i鈥;
console.log(El valor de i es: ${i})
}
3锔忊儯 Escribe un c贸digo en JavaScript que le pregunte a los usuarios cu谩nto es 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.

//Basic Math Quiz
let num = 10;
let num2 = 10;
const result = num + num2;
let questions = {
q1: Cuanto es ${num} + ${num2}
}
function Quizzer() {
let userInput = prompt(questions.q1);
if (userInput == result) {
alert(鈥淔elicitaciones, respondiste correctamente el desafio 馃槑鈥);
} else {
alert(鈥渓amentablemente, tu respuesta es incorrecta, sigue practicando 鉂!鈥);
}
}
Quizzer();
Listas
1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:
驴Qu茅 es un array?

Un array es una colecciones de elementos con valores de una sola variable. Se escriben dentro de [ 鈥 ], separado por una coma.

驴Qu茅 es un objeto?

Es una colecci贸n de datos relacionados con m煤ltiples variables con sus valores.

驴Cu谩ndo es mejor usar objetos o arrays?

Ocupamos objetos cuando el conjunto de elementos es muy grande y de distintos tipos de valores.

驴Puedo mezclar arrays con objetos o incluso objetos con arrays?

2锔忊儯 Crea una funci贸n que pueda recibir cualquier array como par谩metro e imprima su primer elemento.
let myArray = [鈥楳anchester鈥, 鈥楲ondon鈥, 鈥楲iverpool鈥, 鈥楤irmingham鈥, 鈥楲eeds鈥, 鈥楥arlisle鈥橾;
function readArray(array){
console.log(array[0])
}
readArray(myArray);
3锔忊儯 Crea una funci贸n que pueda recibir cualquier array como par谩metro e imprima todos sus elementos uno por uno (no se vale imprimir el array completo).
let myArray = [鈥楳anchester鈥, 鈥楲ondon鈥, 鈥楲iverpool鈥, 鈥楤irmingham鈥, 鈥楲eeds鈥, 鈥楥arlisle鈥橾;
function readArray(array) {
for (let i = 0; i < array.length; i++) {
console.log(${i + 1} ${array[i]})
}
}
readArray(myArray);
4锔忊儯 Crea una funci贸n que pueda recibir cualquier objeto como par谩metro e imprima todos sus elementos uno por uno (no se vale imprimir el objeto completo).
let myCar = {
make: 鈥楩ord鈥,
model: 鈥楳ustang鈥,
year: 1969
};
function readObject(object) {
for (let key in object) {
console.log(object[key]);
}
}
readObject(myCar);

/ Test JavaScript en Platzi 馃槑馃挌

// Variables y Operaciones
//1)

// Una variable es un espacio en memoria en el cual se guarda la informaci贸n desdeada.
// Cuando declaramos una variable solo estamos creando ese espacio en memoria junto con su nombre espec铆fico. Por otro lado cuando inicializamos una variable estamos estableciendo que tipo de datos va a almacenar y cual ser谩 dicha informaci贸n.
// Cuando sumamos n煤meros estamos realizando una operaci贸n matem谩tica, claro que esto se realiza cuando estamos trabajando con datos de tipo n煤merico. Mientras que, cuando concatenamos strings, lo que estamos haciendo es unir dos cadenas de texto en una sola.
// Estas dos acciones (sumar y concatenar), se realizan con el signo de mas (+).

//declarar una variable

let nombre;

// inicializar la variable

nombre = 'Fabian';

//podemos declarar e inicializar en la misma linea 

let nombre = 'Fabian';

// variables y operaciones

let nombre = 'Fabian'; //string
let apellido = 'Huertas'; //string
let usuarioPlatzi = 'Fabian Camilo Huertas Suarez'; //string
let edad = 30; //number
let email = '[email protected]'; //string
let mayor_de_edad = true; //boolean
let dinero_ahorrado = 200000; //number
let deudas = 7600000; //number necesito un mejor sueldo xd 

// Calcula e imprime las siguientes variables a partir de las variables del ejemplo anterior:
// 1.Nombre completo (nombre y apellido)

let nombreCompleto = nombre + " " + apellido;
console.log (nombreCompleto);

//Dinero real (dinero ahorrado menos deudas)

let dineroTotal = dinero_ahorrado - deudas;
console.log (dineroTotal);

// Funciones
// 
// 驴Qu茅 es una funci贸n?
//R: Las funciones nos permiten guardar bloques de c贸digo para reutilizarlos y ejecutarlos en el futuro.

//驴Cu谩ndo me sirve usar una funci贸n en mi c贸digo?
//Cuando tenemos variables o bloquees de c贸digo que pueden comportarse como par谩metros y argumentos que podemos encapsular para usar m谩s de una vez en el futuro. Y ordenar y hacer mas legible nuestro c贸digo.

//驴Cu谩l es la diferencia entre par谩metros y argumentos de una funci贸n?
//R: Los par谩metros son variables a las que se les asignar谩 un valor. <<Las funciones reciben par谩metros al redactarse>>

//Los Argumentos son los valores asignados a los par谩metros al ejecutarse.<<Las funciones reciben argumentos al ejecutarse>>

//Convierte el siguiente c贸digo en una funci贸n, pero, cambiando cuando sea necesario las variables constantes por par谩metros y argumentos en una funci贸n:
const name = "Fabian Camilo";
const lastName = "Huertas Suarez";
const completeName = name + lastName;
const nickName = "Naibaf";

console.log("Mi nombre es " + completeName + ", pero prefiero que me digas " + nickname + ".");

//solucion

function presentacion (name, lastName, nickName) {
    return console.log("Mi nombre es" + completeName + ", pero prefiero que me digas " + nickName + ".")
}

//Replica el comportamiento del siguiente c贸digo que usa la sentencia switch utilizando if, else y else if:

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"ExpertDuo":
       console.log("T煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi durante un a帽o");
break;
}

// solucion if, else, if else  

if (tipoDeSuscripcion == "free"){
	console.log("Solo puedes tomar los cursos gratis");
}elseif (tipoDeSuscripcion == "Basic") {
	console.log("Puedes tomar casi todos los cursos de Platzi durante un mes");
}elseif (tipoDeSuscripcion == "Expert"){
	console.log("Puedes tomar casi todos los cursos de Platzi durante un a帽o");
}elseif (tipoDeSuscripcion == "ExpertDuo") {
	console.log("T煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi durante un a帽o");
};

// Replica el comportamiento de tu condicional anterior con if, else y else if, pero ahora solo con if (sin else ni else if).

functiontipoSuscripcion(suscripcion) {
	if (suscripcion == "Free"){
	console.log("Solo puedes tomar los cursos gratis");
	return;
}if (suscripcion == "Basic") {
	console.log("Puedes tomar casi todos los cursos de Platzi durante un mes");
return;
}if (suscripcion == "Expert"){
	console.log("Puedes tomar casi todos los cursos de Platzi durante un a帽o");
return;
}if (suscripcion == "ExpertDuo") {
	console.log("T煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi durante un a帽o");
return;
}
console.warn('Este tipo de suscripci贸n no existe')
};

// Condicionales
// Responde las siguientes preguntas en la secci贸n de comentarios:
// 驴Qu茅 es un condicional?

//R: Un bloque de c贸digo que se ejecuta dependiendo de las condiciones establecidas previamente. Para establecer dichas condiciones usamos:

//驴Qu茅 tipos de condicionales existen en JavaScript y cu谩les son sus diferencias?

//R: If (else, else if),

//Nos permite hacer validaciones de variables distintas en cada condicional (si eso requerimos).

//Switch (case),

//En cambio usando Switch todos los case se validan con la misma variable o condici贸n previamente definida en Switch .

//Booleanos (true o false )

//驴Puedo combinar funciones y condicionales?

//R: S铆, las funciones pueden encapsular cualquier bloque de c贸digo incluidas condicionales.

//Replica el comportamiento de los siguientes ciclos for utilizando ciclos while:

let i = 0;
while(i < 5){
    console.log("El valor de i es: " + i);
    i++;
}

for (let i = 10; i >= 2; i--) {
    console.log("El valor de i es: " + i);
}

let i = 10;
while(i >=2){
    console.log("El valor de i es: " + i);
    i--;
}

// Escribe un c贸digo en JavaScript que le pregunte a los usuarios cu谩nto es 2 + 2. Si responden bien, mostramos un mensaje de felicitaciones, pero si responden mal, volvemos a empezar.

let num1 = 10;
let num2 = 10;
const result = num + num2;
let question = {
  q1: `Cuanto es ${num1} + ${num2}`
}
function Quiz() {
  let userInput = prompt(question.q1);
  if (userInput == result) {
    alert("Felicitaciones, respondiste correctamente 馃帀");
  } else {
    alert("Lo siento, tu respuesta es incorrecta 馃様, sigue practicando 馃挭!");
  }
}
Quiz();

// -- Listas --

// 驴Qu茅 es un array?
// R: Una estructura de datos que permite almacenar informaci贸n con una cantidad indefinida de posiciones, d谩ndole a cada una un solo valor

// 驴Qu茅 es un objeto?
// R: Una estructura de datos que permite almacenar informaci贸n con una cantidad indefinida de posiciones, d谩ndole a cada, una clave y un valor de manera expl铆cita.

// 驴Cu谩ndo es mejor usar objetos o arrays?
// R: si necesitas almacenar datos estructurados y acceder a ellos mediante claves descriptivas, los objetos son una buena elecci贸n. Por otro lado, si necesitas una colecci贸n ordenada de elementos y acceder a ellos mediante 铆ndices num茅ricos, los arrays son m谩s adecuados.

// 驴Puedo mezclar arrays con objetos o incluso objetos con arrays?
// R: Si claro, las dos maneras son posibles y realmente 煤tiles cuando se trabaja con muchos datos.

// Crea una funci贸n que pueda recibir cualquier array como par谩metro e imprima su primer elemento.

const semana = ['Lunes', 'Martes', 'Miercoles', 'Jueves', 'Viernes', 'Sabado', 'Domingo'];
function imprimir(array){
    console.log(array[0]);
}
imprimir(semana);

// Crea una funci贸n que pueda recibir cualquier array como par谩metro e imprima todos sus elementos uno por uno (no se vale imprimir el array completo).
const semana = ['Lunes', 'Martes', 'Miercoles', 'Jueves', 'Viernes', 'Sabado', 'Domingo'];
function imprimir(array){
    array.forEach(elemento => console.log(elemento));
}
imprimir(semana);

// Crea una funci贸n que pueda recibir cualquier objeto como par谩metro e imprima todos sus elementos uno por uno (no se vale imprimir el objeto completo)
printEveryElement(array);

  function printObjectElements(obj) {
    for (let key in obj) {
      if (obj.hasOwnProperty(key)) {
        console.log(key + ':', obj[key]);
      }
    }
  }
  
  const person = {
    name: 'Fabian',
    age: 30,
    profession: 'Developer'
  };
  
  printObjectElements(person);

Una variable es un palabra definida la cual pued almacenar en un espacio de memoria su informaci贸, en javascript no es tipada pero puede haber diferentes tipo de datos en ella.
La declaraci贸n se hace para escribir el nombre de la variable es decir crearla juto con una de suspalabras reservadas, var y inicializar es declarar el contenido de la misma decir que contendra.
Para numeros estos se pueden sumar con el simbolo m谩s lo cual roducir谩 un resultado matem谩tico y concatenar es unir una cadena String con otra ya sea uniendo dos variables o dos cadenas en la misma variable esto se puede hacer a trav茅s del simbolo m谩s una vez cerradas las comillas del texto.
Este operador es el s铆mbolo m谩s mismo que usamos para sumar.
Nombre es una cadena String.
Apellido es una cadena String.
nombre de usuario de Platzi es una cadena String.
Edad es un numero Int.
Correo electr贸nico es una cadena String.
Mayor de edad es un n煤mero Int.
Dinero ahorrado es un numero Float.
Deudas es un n煤mero Float.

var Nombre;
var Apellido;
let NombreDeUsuarioDePlatzi;
let Edad;
let CorreoElectronico;
var MayorDeEdad;
let DineroAhorrado;
Let Deudas;

Una funci贸n es un fragmento de c贸digo el cual permite ejecutar de manera ordenado determinadas tareas de modo que no sea todo en un solo lugar qsino segmentar adem谩s esta misma permite la ejecuci贸n de la misma tarea m煤ltiples veces esta permite recibir par谩metros pasados.
Cuando tengo que realizar la misma tarea m煤ltiples veces.
Los par谩metros son aquellos que son pasados a la funci贸n para que se ejecute en la misma los argumento son aquellos pasado en la llamada de la funci贸n apra que se los pase a la funci贸n.

Un condicional es un c贸digo el cual permite ejecutar determinado c麓digo que en 茅l este escrito siempre y cuando se cumpla la consici贸n que se mencione.
existen if el cual permite decir una condici贸n que se debe cumplir para que un c贸dio se ejecute if else el cual nos demuestra la posibilidad de que si no se cumple la condici贸n del if se pueda ejecutar el c贸digo puesto en el else if anidado es el cual contiene multiples if los cuales permite establecer diferentes condiciones para cumplir en caso de que una se cumpla no ser谩 necesario entrar a las dem谩s.
En lo posible si por supuesto podemos colocar condicionales dentro de las funciones para poder determinar algo a cumplir dentro de nuestro co贸digo.

Un ciclo un fragmento de c贸digo que permite realizar una tarea de forma repetitiva hasta que su condici贸n de cierre se cumpla.
Existe el While que tiene una condici贸 para cumplirse el do while que finaliza con una condici贸n que le permite volver a repetirse el for que permite realizar tareas hasta que su condici贸n se cumpla pero cuenta con un n煤mero de partida que va incrementando el for in que cuenta con una variable la cual recorrera un cierto objeto con un array de manera que solo se declarar谩 y se colocar谩 despu茅s el nombre de la variable que se desea recorrer.
Un ciclo infinito es aquel cuya condici贸n de cierre nunca se cumple por lo que nunca se rompe esto puede consimir recursos del cumputador hasta agravarlo.
Es posible colocar dentro de un condicional colocar un ciclo que se ejecute hasta que su condici贸n se cumpla.

Un array es un elemento din谩mico el cual permte almacenar diferentes tipos de variables dentro de el.
Un objeto es aquel por medio del cual podemos crear determinados elementos con las misma caracteristicas de manera m谩s sencillas.
sON M脕S PRACTICOS DE SER USADOS CUANDO VAMOS A MANEJAR VOLUMENES MAS GRANDES DE INFORMACI脫N.
Si es posible crear arrays de objetos.

/*var nombre = prompt(鈥淒igite el nombre asi鈥)

var apellido = prompt(鈥淒igite el apellido asi鈥)

var completo = nombre+apellido

document.write(completo)*/

/*var Ahorrado = parseInt(prompt(鈥淒igite el dinero asi鈥))

var deudas = parseInt(prompt(鈥淒igite la deuda asi鈥))

var dinero = Ahorrado - deudas

document.write(dinero)*/

/*function saludar(names, lastname, nickname){

const completeName = names + lastname

console.log("Mi nombre es "+completeName+" , pero prefiero que me digas "+nickname+" . ")

}

saludar(鈥淛uan David鈥, 鈥淐astro Gallejo鈥, 鈥渏uandc鈥);

const name = 鈥淛uan David鈥;
const lastname = 鈥淐astro Gallego鈥;
const completeName = name + lastname;
const nickname = 鈥渏uandc鈥;

console.log("Mi nombre es " + completeName + ", pero prefiero que me digas " + nickname + 鈥.鈥);*/

/*var suscripcion = 鈥淏asic鈥

if(suscripcion == 鈥淔ree鈥){
document.write(鈥淪olo puedes tomar los cursos gratis鈥)
}else if(suscripcion == 鈥淏asic鈥){
document.write(鈥淧eudes tomar todoas los cursos de platzi durante un mes鈥)
}else if(suscripcion == 鈥淓xpertPlus鈥){
document.write(鈥淧uedes tomar casi todos los cursos platzi durante un ano鈥)
}else{
document.write(鈥淧uedes tomar casi todos los curos de platzi con alguien m谩s durante un ano.鈥)
}*/

/*var i = 0

while(i<5){
document.write("El valor de i es: "+i);
i++;
}*/

/*var i = 10

while(i>=2){
document.write("El valor de i es: "+i)
i鈥;
}*/

驴Qu茅 es una variable y para qu茅 sirve? es un espacio reservado en la memoria, que permite asignarle un valor para que dicho espacio tenga una finalidad

驴Cu谩l es la diferencia entre declarar e inicializar una variable? Declarar: llamar a la variable
inicializar: darle la orden al tipo de dato que se declaro para poder ser ejecutado

驴Cu谩l es la diferencia entre sumar n煤meros y concatenar strings?
sumar numeros: operacion matematica en JS (number)
concatenar: suma de dos o mas strings
驴Cu谩l operador me permite sumar o concatenar?
concatenar: +

Determina el nombre y tipo de dato para almacenar en variables la siguiente informaci贸n:
Nombre string
Apellido string
Nombre de usuario en Platzi string
Edad number
Correo electr贸nico string
Mayor de edad boolean
Dinero ahorrado number
Deudas number
Traduce a c贸digo JavaScript las variables del ejemplo anterior y deja tu c贸digo en los comentarios.
let Nombre = 鈥淛oel鈥;
let Apellido = 鈥淓nciso鈥;
let Nombre_de_usuario_en_Platzi = 鈥淓ncis0鈥;
let Edad = 25;
let Correo_electr贸nico= 鈥[email protected]鈥;
let Mayor_de_edad = false ;
let Dinero_ahorrado = 2009;
let Deudas = 3000;

4锔忊儯 Calcula e imprime las siguientes variables a partir de las variables del ejemplo anterior:
Nombre completo (nombre y apellido)
Dinero real (dinero ahorrado menos deudas)
Funcioneslet FullName = 鈥淛oel Enciso鈥;
let Money = 10000;
let lend = 5000;
let Total = (Money - lend);

console.log(El total de mi dinero actual es : $${Total} );
console.log(Mi nombre completo es: ${FullName});

1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:
驴Qu茅 es una funci贸n? conjunto de tareas que calculan un valor
驴Cu谩ndo me sirve usar una funci贸n en mi c贸digo? cuando deseamos repetir una accion, para no crear nuevo codigo ,le decimos a la funcion que lo haga a nuestro ritmo y manera
驴Cu谩l es la diferencia entre par谩metros y argumentos de una funci贸n? los parametros son los valores asignados a una variable, en este caso un parametro al ser ejecutado nos permite argumentar nuestro codigo.
2锔忊儯 Convierte el siguiente c贸digo en una funci贸n, pero, cambiando cuando sea necesario las variables constantes por par谩metros y argumentos en una funci贸n:
const name = 鈥淛uan David鈥;
const lastname = 鈥淐astro Gallego鈥;
const completeName = name + lastname;
const nickname = 鈥渏uandc鈥;

console.log("Mi nombre es " + completeName + ", pero prefiero que me digas " + nickname + 鈥.鈥);
Condicionales

const name = 鈥淛uan David鈥;
const lastname = 鈥淐astro Gallego鈥;
const completeName = name + lastname;
const nickname = 鈥渏uandc鈥;

function Presentation(name, lastname, completeName,nickname) {
return console.log(mi full name is:${completeName}, but you can call me ${nickname});
}
1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:
驴Qu茅 es un condicional? con el condicional podemos analizar si la inforamcion es boolean, (true or false) 驴Qu茅 tipos de condicionales existen en JavaScript y cu谩les son sus diferencias? if, if else, witch
驴Puedo combinar funciones y condicionales?
se pueden enlazar a tra ves de corchetes pero no se puedem combinar dado a que son expresiones que trabajan copletetamente independiente

2锔忊儯 Replica el comportamiento del siguiente c贸digo que usa la sentencia switch utilizando if, else y else if:

function Suscription(tipoDeSuscripcion) {
if (tipoDeSuscripcion === 鈥淔ree鈥) {
return console.log(鈥淪olo puede tomar los cursos gratis鈥);
}else if (tipoDeSuscripcion === 鈥淏asic鈥) {
return console.log(鈥淧uedes tomar casi todos los cursos de Platzi durante un mes鈥);
} else if (tipoDeSuscripcion === 鈥淓xpert鈥){
return console.log(鈥淧uedes tomar casi todos los cursos de Platzi durante un a帽o鈥);
}else if (tipoDeSuscripcion === 鈥淓xpertplus鈥){
return console.log(鈥淭煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi durante un a帽o鈥);
}

};

3锔忊儯 Replica el comportamiento de tu condicional anterior con if, else y else if, pero ahora solo con if (sin else ni else if).
馃挕 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. 馃槒
let typeSuscripci贸n = [
鈥淔ree鈥,
鈥淏asic鈥,
鈥淓xpert鈥,
鈥淓xpertPlus鈥
];
let infoSuscripci贸n = [
鈥渟olo puedes tomar los cursos gratis鈥,
鈥減uedes tomar casi todos los cursos de Platzi durante un mes鈥,
鈥減uedes tomar casi todos los cursos de Platzi durante un a帽o鈥,
鈥渢煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi durante un a帽o鈥漖;
let userSuscription = 鈥淓xpert鈥;
for (let i=0; i < typeSuscripci贸n.length; i++) {
if (userSuscription == typeSuscripci贸n[i]) {
console.log(Si estas suscrito al plan ${typeSuscripci贸n[i]} en el cual ${infoSuscripci贸n[i]})
}
}
Ciclos
1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:
驴Qu茅 es un ciclo? es un bucle que se crea for , while , que dan un determinado resultado en sierto determinado tiempo.

驴Qu茅 tipos de ciclos existen en JavaScript? FOR, WHILE; DO, DO WHILE
驴Qu茅 es un ciclo infinito y por qu茅 es un problema? puede presentarse errores a la hora de codificar, bugs, etcs
驴Puedo mezclar ciclos y condicionales? si se puede, siempre y cuando este finaliice cuanod se cumplan las condicionales.
2锔忊儯 Replica el comportamiento de los siguientes ciclos for utilizando ciclos while:
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);
}

let I = 0;
while (i<5) {
i++
console.log(El valor de i es ${i});
}

let i = 10;
while (i>=2) {
i鈥;
console.log(El valor de i es : ${i});
}

3锔忊儯 Escribe un c贸digo en JavaScript que le pregunte a los usuarios cu谩nto es 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.
let num = 10;
let num2 = 10;
const result = num + num2;
let questions = {
q1: Cuanto es ${num} + ${num2}
}
function Quizzer() {
let userInput = prompt(questions.q1);
if (userInput == result) {
alert(鈥淔elicitaciones, respondiste correctamente el desafio 馃槑鈥);
} else {
alert(鈥渓amentablemente, tu respuesta es incorrecta, sigue practicando 鉂!鈥);
}
}
Quizzer();
Listas
1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:
驴Qu茅 es un array?

Un array es una colecciones de elementos con valores de una sola variable. Se escriben dentro de [ 鈥 ], separado por una coma.

驴Qu茅 es un objeto?

Es una colecci贸n de datos relacionados con m煤ltiples variables con sus valores.

驴Cu谩ndo es mejor usar objetos o arrays?

Ocupamos objetos cuando el conjunto de elementos es muy grande y de distintos tipos de valores.

驴Puedo mezclar arrays con objetos o incluso objetos con arrays?

2锔忊儯 Crea una funci贸n que pueda recibir cualquier array como par谩metro e imprima su primer elemento.
let myArray = [鈥楳anchester鈥, 鈥楲ondon鈥, 鈥楲iverpool鈥, 鈥楤irmingham鈥, 鈥楲eeds鈥, 鈥楥arlisle鈥橾;
function readArray(array){
console.log(array[0])
}
readArray(myArray);
3锔忊儯 Crea una funci贸n que pueda recibir cualquier array como par谩metro e imprima todos sus elementos uno por uno (no se vale imprimir el array completo).
let myArray = [鈥楳anchester鈥, 鈥楲ondon鈥, 鈥楲iverpool鈥, 鈥楤irmingham鈥, 鈥楲eeds鈥, 鈥楥arlisle鈥橾;
function readArray(array) {
for (let i = 0; i < array.length; i++) {
console.log(${i + 1} ${array[i]})
}
}
readArray(myArray);
4锔忊儯 Crea una funci贸n que pueda recibir cualquier objeto como par谩metro e imprima todos sus elementos uno por uno (no se vale imprimir el objeto completo).
let myCar = {
make: 鈥楩ord鈥,
model: 鈥楳ustang鈥,
year: 1969
};
function readObject(object) {
for (let key in object) {
console.log(object[key]);
}
}
readObject(myCar);

Responde las siguientes preguntas en la secci贸n de comentarios:
驴Qu茅 es una variable y para qu茅 sirve?
una variable define lo que queremos mostrar y sirve para dar sentido a la programacion
驴Cu谩l es la diferencia entre declarar e inicializar una variable?
cuando declaramos ingresamos un nombre y tipo de dato y eso reserva un espacio en la memoria en cambio cuan declaramos estamos llamandafo al dato para poder utilizarlo
驴Cu谩l es la diferencia entre sumar n煤meros y concatenar strings?
cuando somamos numeros tenemos que declarar variables y luego creamos una funcion que nos permitira sumar ambas variables es cambio cuando concatenamos estamos uniciendo nada mas las variables sin la necesitdad de que estas tengan un resultado matematico
驴Cu谩l operador me permite sumar o concatenar?
+
2锔忊儯 Determina el nombre y tipo de dato para almacenar en variables la siguiente informaci贸n:
Nombre = string
Apellido = string
Nombre de usuario en Platzi = string
Edad = number
Correo electr贸nico = string
Mayor de edad = boolean
Dinero ahorrado =number
Deudas = number
3锔忊儯 Traduce a c贸digo JavaScript las variables del ejemplo anterior y deja tu c贸digo en los comentarios.
Let Nombre = 鈥渏esus鈥;
Let Apellido = "Tarazona ";
Let Nombre de usuario en Platzi = 鈥淩odnyn Jesus鈥;
Let Edad = 26;
Let Correo electr贸nico = 鈥[email protected]鈥;
Let Mayor de edad = True ;
Let Dinero ahorrado = 12312;
Let Deudas = 56456;
4锔忊儯 Calcula e imprime las siguientes variables a partir de las variables del ejemplo anterior:
Nombre completo (nombre y apellido)
var nombre = 鈥淛esus鈥;
var apellido = 鈥淭arazona鈥;

function nombreCompleto() {
var nombreCompleto = nombre + " " + apellido;
return nombreCompleto;
}

console.log(nombreCompleto());

Dinero real (dinero ahorrado menos deudas)
var dineroAhorrado = 1000;
var deudas = 500;

function dineroReal() {
var dineroReal = dineroAhorrado - deudas;
return dineroReal;
}

console.log(dineroReal());

Responde las siguientes preguntas en la secci贸n de comentarios:
驴Qu茅 es una funci贸n?
reciben parametro de entrada para realizar operacionss o calculos utilizando parametros y devuelven un resultado o tambien pueden devolver un valor
驴Cu谩ndo me sirve usar una funci贸n en mi c贸digo?
Puedes usar una funci贸n en programaci贸n siempre que necesites encapsular una l贸gica o una tarea espec铆fica que se repite o se puede reutilizar en diferentes partes del programa. Las funciones nos ayudan a mejorar la logica en programacion
驴Cu谩l es la diferencia entre par谩metros y argumentos de una funci贸n?los parametros son variables que se definen dentro de una funcion y actuando como marcadores cuando la funcion se llamada en cambio los argumentos son valores que se pasan a una funcion cuando se llaman
2锔忊儯 Convierte el siguiente c贸digo en una funci贸n, pero, cambiando cuando sea necesario las variables constantes por par谩metros y argumentos en una funci贸n:
var name = Juan David;
var lastname = Castro Gallego;
var apodo = juandc;

function yosoy(name, lastname, nickname){
var mePresento = name + " " + lastname;
return "Mi nombre es: "+ mePresento + "pero me gusta que me digan "+ apodo+ 鈥.鈥;
}

var mensaje = yosoy(name, lastname, nickname);
console.log(mensaje);
Responde las siguientes preguntas en la secci贸n de comentarios:
驴Qu茅 es un condicional?
permite tomar decisiones en funcion a una condicion determinanda conmo el else if
驴Qu茅 tipos de condicionales existen en JavaScript y cu谩les son sus diferencias?
el if da un condicion y else if te permite hacer una condion mas si es necesaria y else da finalidad a una condicion, tambien tenemos los switch case
驴Puedo combinar funciones y condicionales?
S铆, en JavaScript puedo combinar funciones y condicionales para crear l贸gica m谩s compleja y flexible en mi programa. Puedo utilizar funciones para encapsular bloques de c贸digo reutilizables y condicionales para controlar el flujo de ejecuci贸n en funci贸n de ciertas condiciones. Al hacer esto, puedo organizar mi c贸digo de manera m谩s estructurada y modular, lo que facilita el mantenimiento y la comprensi贸n de mi programa. Adem谩s, al utilizar condicionales dentro de mis funciones, puedo tomar decisiones basadas en diferentes escenarios y adaptar el comportamiento de mi programa seg煤n sea necesario. Esta combinaci贸n de funciones y condicionales es una poderosa herramienta para construir aplicaciones m谩s din谩micas y responsivas en JavaScript.
2锔忊儯 Replica el comportamiento del siguiente c贸digo que usa la sentencia switch utilizando if, else y else if:
const tipoDeSuscripcion = 鈥淏asic鈥;

if (tipoDeSuscripcion === 鈥淔ree鈥) {
console.log(鈥淪olo puedes tomar los cursos gratis鈥);
} else if (tipoDeSuscripcion === 鈥淏asic鈥) {
console.log(鈥淧uedes tomar casi todos los cursos de Platzi durante un mes鈥);
} else if (tipoDeSuscripcion === 鈥淓xpert鈥) {
console.log(鈥淧uedes tomar casi todos los cursos de Platzi durante un a帽o鈥);
} else if (tipoDeSuscripcion === 鈥淓xpertPlus鈥) {
console.log(鈥淭煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi durante un a帽o鈥);
} else {
console.log(鈥淭ipo de suscripci贸n inv谩lido鈥);
}
esponde las siguientes preguntas en la secci贸n de comentarios:
驴Qu茅 es un ciclo?
Un ciclo, tambi茅n conocido como bucle, es una estructura de control que permite repetir un bloque de c贸digo hasta que se cumpla una condici贸n espec铆fica.
驴Qu茅 tipos de ciclos existen en JavaScript?
En JavaScript, existen tres tipos de ciclos: for, while y do鈥hile.
驴Qu茅 es un ciclo infinito y por qu茅 es un problema?
Un ciclo infinito es aquel que se repite continuamente sin cumplir la condici贸n de salida necesaria para detenerse, lo cual puede causar problemas al bloquear la ejecuci贸n del programa.
驴Puedo mezclar ciclos y condicionales?
S铆, es posible mezclar ciclos y condicionales en JavaScript. Puedes utilizar condicionales dentro de los bloques de c贸digo de los ciclos para controlar su comportamiento en funci贸n de condiciones espec铆ficas. Esto permite tomar decisiones y modificar el flujo de ejecuci贸n dentro de un ciclo.

Replica el comportamiento de los siguientes ciclos for utilizando ciclos while:

let i = 0;
while (i < 5) {
console.log("El valor de i es: " + i);
i++;
}

let i = 10;
while (i >= 2) {
console.log("El valor de i es: " + i);
i鈥;
}
Escribe un c贸digo en JavaScript que le pregunte a los usuarios cu谩nto es 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.
let respuestaCorrecta = false;

while (!respuestaCorrecta) {
let respuesta = prompt("驴Cu谩nto es 2 + 2?");

if (respuesta === 鈥4鈥) {
alert("隆Correcto! Felicitaciones.");
respuestaCorrecta = true;
} else {
alert(鈥淩espuesta incorrecta. Int茅ntalo de nuevo.鈥);
}
}
responde las siguientes preguntas en la secci贸n de comentarios:
Claro, puedo responder tus preguntas:

  1. 驴Qu茅 es un array?
    Un array es una estructura de datos que puede almacenar varios valores del mismo tipo en una secuencia ordenada. Tambi茅n se le conoce como una colecci贸n o lista. Los elementos en un array se identifican mediante 铆ndices num茅ricos, lo que permite acceder y manipular los elementos de manera eficiente.

  2. 驴Qu茅 es un objeto?
    Un objeto es una entidad que combina datos y funciones relacionadas en una 煤nica unidad. Es una instancia de una clase en la programaci贸n orientada a objetos. Los objetos tienen atributos (variables) y m茅todos (funciones) que definen su comportamiento y caracter铆sticas. Cada objeto es 煤nico y puede interactuar con otros objetos mediante el intercambio de mensajes.

  3. 驴Cu谩ndo es mejor usar objetos o arrays?
    La elecci贸n entre usar objetos o arrays depende del contexto y del problema que se est茅 resolviendo. En general, los arrays son m谩s adecuados cuando necesitas almacenar una colecci贸n ordenada de elementos del mismo tipo, como una lista de n煤meros o una serie de valores secuenciales. Por otro lado, los objetos son 煤tiles cuando deseas representar entidades o conceptos m谩s complejos que tienen propiedades y comportamientos espec铆ficos. Los objetos permiten encapsular datos y funcionalidades relacionadas, lo que facilita el manejo de datos estructurados y la implementaci贸n de conceptos de programaci贸n orientada a objetos.

  4. 驴Puedo mezclar arrays con objetos o incluso objetos con arrays?
    S铆, puedes mezclar arrays con objetos e incluso objetos con arrays en muchos lenguajes de programaci贸n. Por ejemplo, puedes tener un array que contenga objetos como sus elementos. Esto es 煤til cuando necesitas almacenar una colecci贸n de objetos relacionados. Por otro lado, tambi茅n puedes tener un objeto que tenga un atributo que sea un array. Esto puede ser 煤til cuando deseas que un objeto tenga una propiedad que contenga m煤ltiples valores o elementos. La capacidad de combinar arrays y objetos te brinda flexibilidad para estructurar y organizar tus datos de acuerdo con las necesidades espec铆ficas de tu programa o proyecto.
    Crea una funci贸n que pueda recibir cualquier array como par谩metro e imprima su primer elemento.
    function imprimirPrimerElemento(array) {
    if (Array.isArray(array) && array.length > 0) {
    console.log("El primer elemento del array es: " + array[0]);
    } else {
    console.log(鈥淓l array est谩 vac铆o o no es v谩lido.鈥);
    }
    }

var miArray = [1, 2, 3, 4, 5];
imprimirPrimerElemento(miArray);

var otroArray = [鈥淗ola鈥, 鈥淢undo鈥漖;
imprimirPrimerElemento(otroArray);

var arrayVacio = [];
imprimirPrimerElemento(arrayVacio);

3锔忊儯 Crea una funci贸n que pueda recibir cualquier array como par谩metro e imprima todos sus elementos uno por uno (no se vale imprimir el array completo).
function imprimirPrimerElemento(array) {
if (Array.isArray(array) && array.length > 0) {
console.log("El primer elemento del array es: " + array[0]);
} else {
console.log(鈥淓l array est谩 vac铆o o no es v谩lido.鈥);
}
}

// Ejemplos de uso
var miArray = [1, 2, 3, 4, 5];
imprimirPrimerElemento(miArray);

var otroArray = [鈥淗ola鈥, 鈥淢undo鈥漖;
imprimirPrimerElemento(otroArray);

var arrayVacio = [];
imprimirPrimerElemento(arrayVacio);

4锔忊儯 Crea una funci贸n que pueda recibir cualquier objeto como par谩metro e imprima todos sus elementos uno por uno (no se vale imprimir el objeto completo).
function imprimirElementos(objeto) {
if (typeof objeto === 鈥榦bject鈥 && objeto !== null) {
for (var clave in objeto) {
if (objeto.hasOwnProperty(clave)) {
console.log(clave + ": " + objeto[clave]);
}
}
} else {
console.log(鈥淓l par谩metro no es un objeto v谩lido.鈥);
}
}

// Ejemplo de uso
var miObjeto = {
nombre: 鈥淛uan鈥,
edad: 30,
ciudad: 鈥淢adrid鈥
};

imprimirElementos(miObjeto);

// Test JavaScript en Platzi 馃巿

// -- Variables y operaciones --

// 驴Qu茅 es una variable y para qu茅 sirve?
// R: Una variable es un espacio en memoria que permite almacenar informaci贸n como textos, n煤meros, estructuras de datos, etc.

// 驴Cu谩l es la diferencia entre declarar e inicializar una variable?
// R: Declarar una variable hace referencia a su creaci贸n en la memoria. Inicializar una variable hace referencia a almacenar informaci贸n dentro de esta.

// 驴Cu谩l es la diferencia entre sumar n煤meros y concatenar strings?
// R: La diferencia es que el primero es la operaci贸n aritm茅tica cl谩sica y la segunda es la uni贸n de textos. La similitud entre ambos es el hecho de que usan el mismo operador (+).

// 驴Cu谩l operador me permite sumar o concatenar?
// R: El operador +

//  Determina el nombre y tipo de dato para almacenar en variables la siguiente informaci贸n:

// Nombre:
let nombre = "Daniel"; // (string)
// Apellido:
let apellido = "V茅lez"; // (string)
// Nombre de usuario en Platzi:
let platziUserName = ""; //(string)
// Edad:
let edad = 0; //(number)
// Correo electr贸nico:
let correo = ""; //(string)
// Mayor de edad:
let esMayor = 0; //(boolean)
// Dinero ahorrado:
let dineroAhorrado = 20000.25; //(number)
// Deuda:
let deuda = 15000.5; //(number)

function obtenerNombreCompleto(nombreUser, apellidoUser) {
  let nombreCompleto = `El nombre completo del usuario es: ${
    nombreUser + " " + apellidoUser
  }`;

  return nombreCompleto;
}

console.log(obtenerNombreCompleto(nombre, apellido));

const calcularDineroReal = (ahorro, deuda) => {
  let dineroReal = `La cantidad real de dinero que tiene el usuario es de: ${
    "$" + (ahorro - deuda)
  } COP`;

  return dineroReal;
};

console.log(calcularDineroReal(dineroAhorrado, deuda));

// -- Funciones --

// 驴Qu茅 es una funci贸n?
// R: Es una manera de abstraer operaciones o procesos que permiten generar resultados a trav茅s de una serie l贸gica de eventos, los cuales pueden tener o no entradas.

// 驴Cu谩ndo me sirve usar una funci贸n en mi c贸digo?
// R: Cuando quiero realizar una operaci贸n que requiere un nivel de complejidad realativamente alto o que agrupa un conjunto de procesos compuesto.

// 驴Cu谩l es la diferencia entre par谩metros y argumentos de una funci贸n?
// R: Los par谩metros son las "entradas" que reciben las funciones para realizar sus operaciones internas, pero que son agregadas a estas en su declaraci贸n (valores gen茅ricos)
// Los argumentos son las entradas agregadas a las funciones en el momento de su llamado (valores reales).

//  Convierte el siguiente c贸digo en una funci贸n, pero, cambiando cuando sea necesario las variables constantes por par谩metros y argumentos en una funci贸n: Convierte el siguiente c贸digo en una funci贸n, pero, cambiando cuando sea necesario las variables constantes por par谩metros y argumentos en una funci贸n:

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 + ".");

const nameMe = (completeName, nickname) => {
  let sentence = `Mi nombre es ${completeName}, pero prefiero que me digas ${nickname}.`;

  return sentence;
};

console.log(nameMe(completeName, nickname));

// -- Condicionales --

// 驴Qu茅 es un condicional?
// R: Es una estructura repetitiva que permite obtener resultados en funci贸n de decisiones.

// 驴Qu茅 tipos de condicionales existen en JavaScript y cu谩les son sus diferencias?
// R: - Condicional if -> Permite indicar qu茅 resultado se va a obtener en funci贸n de una o varias opciones dadas.
// - Condicional else -> Permite indicar el resultado que se va a obtener en la estructura en caso de que la opci贸n dada del if no se cumpla.
// - Condicional else if -> Permite indicar el resultado que se va a obtener en la estructura en caso de que la opci贸n dada del if no se cumpla, especificando cu谩l se debe cumplir.
// - Condicional switch -> Permite indicar el resultado que se va a obtener en la estructura con base en una serie de opciones grande.

// 驴Puedo combinar funciones y condicionales?
// R: Si claro, de hecho suele ser bastante com煤n usar condiciones para realizar operaciones dentro de funciones, ya que ayudan a mejorar la manera en que su flujo funciona.

// Replica el comportamiento del siguiente c贸digo que usa la sentencia switch utilizando if, else y else if:
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;
// }

// Con if, else if y else

if (tipoDeSuscripcion === "Free") {
  console.log("Solo puedes tomar los cursos gratis");
} else 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 {
  console.log(
    "T煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi durante un a帽o"
  );
}

// S贸lo con if

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 !== "Free" &&
  tipoDeSuscripcion !== "Basic" &&
  tipoDeSuscripcion !== "Expert"
) {
  console.log(
    "T煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi durante un a帽o"
  );
}

//   Reto estructuras 馃槒:

let tiposDeSubscripcion = [
  { 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",
  },
];

let plan = "ExpertPlus";

let encontrado = false;

for (let i = 0; i < tiposDeSubscripcion.length; i++) {
  if (tiposDeSubscripcion[i].hasOwnProperty(plan)) {
    console.log(tiposDeSubscripcion[i][plan]);
    encontrado = true;
    break;
  }
}

// -- Ciclos --

// 驴Qu茅 es un ciclo?
// R: Es aquel que permite realizar iteraciones sobre estructuras de datos como arreglos u objetos para recorrerlos y realizar operaciones sobre estos.

// 驴Qu茅 tipos de ciclos existen en JavaScript?
// R: ciclos for, while, forEach, do...while, for...in, for...of

// 驴Qu茅 es un ciclo infinito y por qu茅 es un problema?
// Es un ciclo que no termina nunca sus iteraciones, debido a que no cuenta con una condici贸n que detenga su ejecuci贸n. Es un problema porque detiene la ejecuci贸n habitual de un programa, al no hacer que este se quede esperando por su finalizaci贸n.

// 驴Puedo mezclar ciclos y condicionales?
// Si claro, al igual que en la pregunta de si puedo combinar funciones y condicionales, los ciclos suelen tener condicionales internos para dar pie a la obtenci贸n de resultados especificos que est茅n en funci贸n de lo que fue especificado.

// Replica el comportamiento de los siguientes ciclos for utilizando ciclos while:

// Usando for

/* 1 */ for (let i = 0; i < 5; i++) {
  console.log("El valor de i es: " + i);
}

/* 2 */ for (let i = 10; i >= 2; i--) {
  console.log("El valor de i es: " + i);
}

// Usando while

let val1 = 0;
let val2 = 10;

/* 1 */ while (val1 < 5) {
  console.log(`El valor actual es: ${val1}`);
  val1++;
}

/* 2 */ while (val2 >= 2) {
  console.log(`El valor actual es: ${val2}`);
  val2--;
}

// Escribe un c贸digo en JavaScript que le pregunte a los usuarios cu谩nto es 2 + 2. Si responden bien, mostramos un mensaje de felicitaciones, pero si responden mal, volvemos a empezar.

// function preguntaDos() {
//   let result;

//   while (result != 4) {
//     result = Number(prompt("驴Cu谩nto es 2 + 2?"));
//   }

//   alert("隆Felicitaciones!");
// }

// preguntaDos();

// -- Listas --

// 驴Qu茅 es un array?
// R: Una estructura de datos que permite almacenar informaci贸n con una cantidad indefinida de posiciones, d谩ndole a cada una un solo valor

// 驴Qu茅 es un objeto?
// R: Una estructura de datos que permite almacenar informaci贸n con una cantidad indefinida de posiciones, d谩ndole a cada, una clave y un valor de manera expl铆cita.

// 驴Cu谩ndo es mejor usar objetos o arrays?
// R: si necesitas almacenar datos estructurados y acceder a ellos mediante claves descriptivas, los objetos son una buena elecci贸n. Por otro lado, si necesitas una colecci贸n ordenada de elementos y acceder a ellos mediante 铆ndices num茅ricos, los arrays son m谩s adecuados.

// 驴Puedo mezclar arrays con objetos o incluso objetos con arrays?
// R: Si claro, las dos maneras son posibles y realmente 煤tiles cuando se trabaja con muchos datos.

// Crea una funci贸n que pueda recibir cualquier array como par谩metro e imprima su primer elemento.
let array = ["Daniel", "Juan", "Micaela", "Sebasti谩n", "脫scar", "Jos茅"];

const printFirstElement = (array) => {
  console.log(array[0]);
};

printFirstElement(array);

// Crea una funci贸n que pueda recibir cualquier array como par谩metro e imprima todos sus elementos uno por uno (no se vale imprimir el array completo).
const printEveryElement = (array) => {
  for (let i = 0; i < array.length; i++) {
    const element = array[i];
    console.log(element);
  }
};

// Crea una funci贸n que pueda recibir cualquier objeto como par谩metro e imprima todos sus elementos uno por uno (no se vale imprimir el objeto completo)
printEveryElement(array);

  function printObjectElements(obj) {
    for (let key in obj) {
      if (obj.hasOwnProperty(key)) {
        console.log(key + ':', obj[key]);
      }
    }
  }
  
  const person = {
    name: 'John',
    age: 30,
    profession: 'Software Engineer'
  };
  
  printObjectElements(person);

Test de Javascript

MIralo mejor en Github

Esta es una prueba que es parte del curso practico de Javascript dentro de la plataforma Platzi. Para resolver estas preguntas, lo har茅 en primera instancia con mis propias palabras y posteriormente complementar algunos conceptos que hagan falta con ayuda de Internet y IA.


  1. Variables y operaciones
  2. Funciones
  3. Condicionales
  4. Ciclos
  5. LIstas

Variables y operaciones

1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:

  • 驴Qu茅 es una variable y para qu茅 sirve?
    Una variable es la manera de almacenar un valor en memoria que no es constante, es decir que puede ser modificado a lo largo del tiempo y dependiendo de la necesidad del software. Sirve (asi como en las matematicas) para aplicar valores independientes a una formula, operacion o funcion y obtener un resultado a partir de este o modificar un comportamiento especifico.

  • 驴Cu谩l es la diferencia entre declarar e inicializar una variable?
    Declarar una variable permite determinar esta variable que nombre y que tipo tendra, mientras que inicializar una variable es **establecer un valor inicial **para poder ser utilizada posteriormente dentro de un programa.

  • 驴Cu谩l es la diferencia entre sumar n煤meros y concatenar strings?
    Numeros y strings son dos tipos de datos diferentes, por tanto, producen resultados diferentes al aplicarles un operador 鈥+鈥 entre si.
    Sumar numeros es una operacion aritmetica. e.g. 2 + 2 = 4.
    Concatenar strings es una operacion 鈥榥o aritmetica鈥 y no suma digitos sino encadena caracteres o cadenas de texto. e.g. 鈥2鈥 + 鈥2鈥 = 鈥22鈥

  • 驴Cu谩l operador me permite sumar o concatenar?
    Como dicho en el punto anterior, el operador que permite sumar (numeros o int) y concatenar (cadenas o strings) es el operador +

2锔忊儯 Determina el nombre y tipo de dato para almacenar en variables la siguiente informaci贸n:
Nombre = 'string鈥
Apellido = 'string鈥
Nombre de usuario en Platzi = 'string鈥
Edad = int
Correo electr贸nico = 'string鈥
Mayor de edad = boolean
Dinero ahorrado = float
Deudas = float
3锔忊儯 Traduce a c贸digo JavaScript las variables del ejemplo anterior y deja tu c贸digo en los comentarios.

var nombre = 'Armando'; //string
var apellido = 'Barreda'; //string
var nombreUsuarioEnPlatzi = 'cosme_Fulanito_20'; //string
var edad = 25; // int
var correoElectronico = 'pepito@perez.com';// string
var mayorDeEdad = true; // boolean
var dineroAhorrado = 1000.50; // float
var deudas = 500.75; // float

4锔忊儯 Calcula e imprime las siguientes variables a partir de las variables del ejemplo anterior:

//Nombre completo (nombre y apellido)
console.log(nombre + " " +apellido)
//Dinero real (dinero ahorrado menos deudas)
console.log()
//Funciones
function calcularDineroReal(dineroAhorrado, deudas){
	return dineroAhorrado - deudas
}

Funciones

1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:

  • 驴Qu茅 es una funci贸n?
    Una funcion permite realizar** una o multiples operaciones** en un bloque de codigo de programacion. Es decir, es la manera de usar una serie de instrucciones para modificar un valor y obtener un resultado dadas ciertas condiciones.

  • 驴Cu谩ndo me sirve usar una funci贸n en mi c贸digo?
    Las funciones pueden ahorrar tiempo, pues ayudan a realizar operaciones repetitivas, entonces, sirve usar una uncion cuando quiero reutilizar codigo multiples veces. Ademas no necesariamente deben devolver un resultado, pero si deben realizar una o muchas operaciones para un fin.

  • 驴Cu谩l es la diferencia entre par谩metros y argumentos de una funci贸n?
    Es una nocion similar a la de declarar una variable e iniciar una variable.

    Los parametros en una funcion es la manera de definir que **valores espera recibir una funcion ** en su sintaxis.
    e.g:
    function ejemplo(parametro1, parametro2,鈥){}

    Los argumentos en una funcion son los valores que toman dichos parametros una vez la funcion ha sido llamada.
    e.g:
    ejemplo(argumento1, argumento2鈥)
    function ejemplo(parametro1, parametro2,鈥){}

2锔忊儯 Convierte el siguiente c贸digo en una funci贸n, pero, cambiando cuando sea necesario las variables constantes por par谩metros y argumentos en una funci贸n:

const name = "Juan David";
const lastname = "Castro Gallego";
const nickname = "juandc";

nickName(name, lastname,nickname);

function nickName(name1, name2, nickname){
const completeName = name1 + name2;
console.log("Mi nombre es " + completeName + ", pero prefiero que me digas " + nickname + ".");
}

Condicionales

1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:

  • 驴Qu茅 es un condicional?
    Un condicional es una operacion en la cual se evalua una verdad segun una sentencia, principalmente de comparacion entre dos valores o para determinar si se cumple una condicion o no.
    e.g:
if( a > b){}
if( nombre === 'BETO')
  • 驴Qu茅 tipos de condicionales existen en JavaScript y cu谩les son sus diferencias?
    Existen 3 tipos de condicionales en Javascript.
    • If - else:
      Este condicional ejecuta una sentencia de verdad para evaluar si se cumple una condicion. En caso de que se cumpla, ejecuta el primer bloque de codigo encerrado por corchetes if {} , en caso de que no se cumpla, se ejecuta el segundo bloque de codido encerrado por los corchetes. else {}
      if ( a > b){
      primer bloque de codigo...
      } else {
      segundo bloque de codigo...
      }
      
    • if - else -if:
      Es muy similar al condicional if - else con el adicional de que se anidan multiples bloques de codigo donde se a帽aden nuevas condiciones.
      if ( a > b){
      primer bloque de codigo...
      } else if ( b > c ){
      segundo bloque de codigo...
      } else if ( c > d ){
      tercer bloque de codigo...
      }else{
      bloque final de codigo
      }
      
    • switch:
      Realiza multples evaluaciones de una variable y segun su resultado, rejecuta el bloque de codigo correspondiente.
    ```
    switch (expresion) {
      case valor1:
      	// Bloque de c贸digo a ejecutar si la expresion es igual a valor1
      	break;
      case valor2:
      	// Bloque de c贸digo a ejecutar si la expresion es igual a valor2
      	break;
      // M谩s casos...
      default:
      	// Bloque de c贸digo a ejecutar si ninguno de los casos anteriores coincide
    

}
```

  • 驴Puedo combinar funciones y condicionales?
    Si, se pueden combinar y de hecho son muy necesarias para poder realizar las tareas de una funcion.A modo de ejemplo, puedo recibir en la funcion un digito a evaluar dentro de un condicional para saber si es un numero par o no:
	esPar(2);
	
	function esPar( numero ){
	
		if( numero % 2 == 0){
			console.log('El numero es Par');
			return true;
	} else {
			console.log('El numero es Impar');
			return false;
	}

2锔忊儯 Replica el comportamiento del siguiente c贸digo que usa la sentencia switch utilizando if, else y else if:

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;
}

Solucion

const tipoDeSuscripcion = "Basic";

if (tipoDeSuscripcion == 'Free') {
       console.log("Solo puedes tomar los cursos gratis");
} else 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 {
       console.log("T煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi durante un a帽o");
}

3锔忊儯 Replica el comportamiento de tu condicional anterior con if, else y else if, pero ahora solo con if (sin else ni else if).
馃挕 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";

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");
}

Reto

const tipoDeSuscripcion = "Basic";

const mensajesSuscripcion = {
  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"
};

console.log(mensajesSuscripcion[tipoDeSuscripcion] || "Tipo de suscripci贸n no reconocido");

Ciclos

1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:

  • 驴Qu茅 es un ciclo?
    Un ciclo permite realizar la misma operacion una n cantidad de veces con un incremento determinado o hasta que se cumpla una condicion.
  • 驴Qu茅 tipos de ciclos existen en JavaScript?
    Existen 4 tipos de ciclo:
    • For: Se compone de una inicializaci贸n, una condici贸n de continuaci贸n y una expresi贸n de incremento.
for (let i = 0; i < 5; i++) {
  // Bloque de c贸digo a ejecutar en cada iteraci贸n
}
- While:  se utiliza para ejecutar un bloque de c贸digo mientras se cumple una condici贸n determinada. La condici贸n se verifica antes de cada iteraci贸n, y si es verdadera, el bloque de c贸digo se ejecuta.
```
while (condicion) {

// Bloque de c贸digo a ejecutar mientras la condici贸n sea verdadera
}
```

-  Do - While:  es similar al ciclo while, pero la diferencia radica en que la condici贸n se verifica despu茅s de ejecutar el bloque de c贸digo. Esto garantiza que el bloque de c贸digo se ejecute al menos una vez, incluso si la condici贸n inicialmente es falsa.
do {
  // Bloque de c贸digo a ejecutar al menos una vez
} while (condicion);
- For - in:  se utiliza para iterar sobre las propiedades de un objeto. Recorre todas las propiedades enumerables del objeto y ejecuta el bloque de c贸digo para cada propiedad.
for (let key in objeto) {
  // Bloque de c贸digo a ejecutar para cada propiedad
}
  • 驴Qu茅 es un ciclo infinito y por qu茅 es un problema?
    Como su nombre lo indica, un ciclo infinito se ejecuta sin fin o sin una condicion que haga que termine su ejecucion. Puede ser un problema, ya que cada ejecucion dentro de este ciclo ocupa espacio en memoria y capacidad de procesamiento de la maquina donde se ejecuta, ademas pueden causar que el programa se bloquee o se vuelva irresponsivo, lo que puede llevar a un mal funcionamiento del programa o incluso al bloqueo completo del sistema. Dando lugar a un agotamiento de los recursos y afectar el rendimiento general del sistema, como cuellos de botella, problemas de procesamiento y hasta de capacidad de almacenamiento.

  • 驴Puedo mezclar ciclos y condicionales?

Si se pueden mezclar y de hecho se complementan, pues lo que realiza un ciclo es una ejecucion repetitiva de codigo y el condicional evaluaria una sentencia de verdad para este codigo, lo que ayudaria en ciertos escenarios a descartar valores dentro de un arreglo o objeto.

2锔忊儯 Replica el comportamiento de los siguientes ciclos for utilizando ciclos while:

for (let i = 0; i < 5; i++) {
    console.log("El valor de i es: " + i);
}

Solucion:

let i = 0
do{
	    console.log("El valor de i es: " + i);
		 i++;
}while(i < 5);

2 ciclo:

for (let i = 10; i >= 2; i--) {
    console.log("El valor de i es: " + i);
}

Solucion:

let i = 10
do{
	    console.log("El valor de i es: " + i);
		 i--;
}while(i >= 2);

3锔忊儯 Escribe un c贸digo en JavaScript que le pregunte a los usuarios cu谩nto es 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.

do{
let valor = prompt("驴Cuanto es 2 + 2 ? ")
if()
}while()

Listas

1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:

  • 驴Qu茅 es un array?
    Un array es la manera de almacenar multiples valores dentro de una sola variable para que puedan ser accedidos de una manera indexada. Es decir, que cada elemento dentro del array tiene un indice que lo identifica, ademas de que pueden ser elementos de diferente tipo. Cada elemento se separa del otro por una coma. Tienen la particularidad de que la indexacion empieza desde 0, por lo que el primer elemento del array, se encuentra en el indice 0.
let array = [ 1, 2, '3', 'Sabroso', boolean, '03-04-23'] ;
array[3] // 'Sabroso'
  • 驴Qu茅 es un objeto?
    Un objeto es similar a un array debido a que en el tambien se almacenan multiples valores, con la diferencia de que la manera en que se acceden a estos valores es con una llave. El objeto se carateriza por tener una estructura llave:valor, donde la llave es la manera de identificar un atributo del objeto y el valor contiene el dato almacenado. Para acceder al conjunto llave:valor del objeto se realiza colocando un punto . despues del nombre de la variable objeto. Incluso pueden almacenar funciones que pueden ser llamadas al acceder al objeto.
const persona = {
  nombre: "Juan",
  edad: 30,
  esEstudiante: true,
  intereses: ["programaci贸n", "m煤sica", "deportes"],
  direccion: {
    calle: "Calle Principal",
    ciudad: "Ciudad Principal",
    pais: "Pa铆s Principal"
  },
 function saludar() {
    console.log("隆Hola! Mi nombre es " + this.nombre);
  }
};

console.log(persona.nombre); // "Juan"
console.log(persona.edad); // 30
console.log(persona.intereses[0]); // "programaci贸n"
console.log(persona.direccion.ciudad); // "Ciudad Principal"
persona.saludar(); // Imprime "隆Hola! Mi nombre es Juan"
  • 驴Cu谩ndo es mejor usar objetos o arrays?
    Cuando la situacion requiera crear multiples instancias con una estructura similar conviene utilizar objetos pues estos pueden comportarse de diferentes maneras y ademas almacenar funciones, ademas permiten acceso a los datos de manera personalizada con el uso de llaves con nombre. Cuando simplemente se requiera almacenar** multiples elementos de manera secuencial** y sin importar su valor, es mejor utilizar un array, pues unicamente es necesario conocer el indice del valor.
    En general, si los datos se pueden organizar de manera m谩s natural utilizando claves descriptivas y se necesita una estructura m谩s compleja, los objetos son una elecci贸n adecuada. Por otro lado, si se trata de una lista ordenada de datos o se requieren operaciones comunes como agregar, eliminar y buscar elementos, los arrays son m谩s apropiados.

  • 驴Puedo mezclar arrays con objetos o incluso objetos con arrays?
    SI, se pueden mezclar objetos que contengan arrays y viceversa, de hecho, los arrays en JavaScript tambi茅n son objetos.

2锔忊儯 Crea una funci贸n que pueda recibir cualquier array como par谩metro e imprima su primer elemento.

let clubes = ['FC Barcelona','Manchester United','Juventus FC'];

primerElemento(clubes);
function primerElemento(array){
	console.log('El primer elemento es:' +array[0]);
}

3锔忊儯 Crea una funci贸n que pueda recibir cualquier array como par谩metro e imprima todos sus elementos uno por uno (no se vale imprimir el array completo).

let clubes = ['FC Barcelona','Manchester United','Juventus FC'];

todos(clubes);
function todos(array){
	for(let i=0; i < array.length; i++){
	console.log('El  elemento '+ i +' es:' +array[i]);
	}
}

4锔忊儯 Crea una funci贸n que pueda recibir cualquier objeto como par谩metro e imprima todos sus elementos uno por uno (no se vale imprimir el objeto completo).

let clubes = {
  equipo1: 'FC Barcelona',
  equipo2: 'Manchester United',
  equipo3: 'Juventus FC'
};

todos(clubes);

function todos(objeto) {
  for (let club in objeto) {
    console.log(objeto[club]);
  }
}

驴Qu茅 es una variable y para qu茅 sirve?
Una variable es un contenedor de un valor, como un n煤mero o una cadena de texto. Las variables se usan para almacenar valores de datos que se pueden usar en su c贸digo .

驴Cu谩l es la diferencia entre declarar e inicializar una variable?
Declarar una variable significa reservar un espacio en memoria con un nombre, mientras que inicializar una variable significa asignarle un valor a ese espacio.

驴Cu谩l es la diferencia entre sumar n煤meros y concatenar strings?
Cuando sumas n煤meros, realizas una operaci贸n matem谩tica con dos tipos de datos (Numbers), mientras que cuando concatenas cadenas, est谩s uniendo dos tipos de datos (Strings) que son cadenas de texto.

驴Cu谩l operador me permite sumar o concatenar?
4. El operador + le permite sumar o concatenar seg煤n los tipos de datos que se utilicen.

Determina el nombre y tipo de dato para almacenar en variables la siguiente informaci贸n:

Nombre 鈥淪tring鈥
Apellido 鈥淪tring鈥
Nombre de usuario en Platzi 鈥淪tring鈥
Edad 鈥淣umber鈥
Correo electr贸nico 鈥淪tring鈥
Mayor de edad 鈥淏oolean鈥
Dinero ahorrado 鈥淣umber鈥
Deudas 鈥淣umber鈥

Traduce a c贸digo JavaScript las variables del ejemplo anterior y deja tu c贸digo en los comentarios.

var persona = {
    nombre: "Pierre",
    Apellido: "Ortega",
    Usuario: "Angelo",
    edad: 30,
    email: "[email protected]",
    MayorDeEdad: true,
    DineroAhorrado: 500,
    Deudas: 280   
}

Calcula e imprime las siguientes variables a partir de las variables del ejemplo anterior:
Nombre completo (nombre y apellido)
Dinero real (dinero ahorrado menos deudas)

var persona = {
    nombre: "Pierre",
    Apellido: "Ortega",
    Usuario: "Angelo",
    edad: 30,
    email: "[email protected]",
    MayorDeEdad: true,
    DineroAhorrado: 500,
    Deudas: 280   
}
console.log("Nombre completo: " + persona.nombre + " " + persona.Apellido);
console.log("Dinero real: " + (persona.DineroAhorrado - persona.Deudas));

驴Qu茅 es un condicional?

Un condicional es una estructura de control que permite ejecutar diferentes bloques de c贸digo dependiendo de si se cumple o no una determinada condici贸n. La condici贸n se eval煤a como verdadera o falsa, y en funci贸n de su valor, se ejecuta uno u otro bloque de c贸digo.

驴Qu茅 tipos de condicionales existen en JavaScript y cu谩les son sus diferencias?

En JavaScript existen principalmente dos tipos de condicionales: if...else y switch.

  • El condicional if...else permite ejecutar un bloque de c贸digo si se cumple una determinada condici贸n y otro bloque de c贸digo si no se cumple. Tambi茅n se puede utilizar else if para encadenar m煤ltiples condiciones. Por ejemplo:
if (condicion) {
    // C贸digo a ejecutar si la condici贸n es verdadera
} else {
    // C贸digo a ejecutar si la condici贸n es falsa
}

  • El condicional switch permite comparar una expresi贸n con m煤ltiples valores y ejecutar diferentes bloques de c贸digo dependiendo del valor que coincida con la expresi贸n. Por ejemplo:
switch (expresion) {
    case valor1:
        // C贸digo a ejecutar si expresion === valor1
        break;
    case valor2:
        // C贸digo a ejecutar si expresion === valor2
        break;
    default:
        // C贸digo a ejecutar si no hay coincidencia con ning煤n valor
}

驴Puedo combinar funciones y condicionales?
S铆, puedes combinar funciones y condicionales. Por ejemplo, puedes definir una funci贸n que contenga un condicional en su interior para tomar diferentes decisiones dependiendo de los argumentos que reciba la funci贸n. Tambi茅n puedes utilizar el resultado de una funci贸n como la condici贸n en un condicional.

Replica el comportamiento del siguiente c贸digo que usa la sentencia switch utilizando if, else y else if, mi solucion:

const tipoDeSuscripcion = "Basic"

if (tipoDeSuscripcion === "Free") {
    console.log("Solo puedes tomar los cursos gratis");
}else 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")
}

  • Replica el comportamiento de tu condicional anterior con if, else y else if, pero ahora solo con if (sin else ni else if).
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");
}

驴Qu茅 es un ciclo?
Un ciclo o bucle es una forma de ejecutar un bloque de c贸digo repetidamente. Esto es 煤til cuando desea ejecutar el mismo c贸digo una y otra vez, cada vez con un valor diferente .

驴Qu茅 tipos de ciclos existen en JavaScript?
Hay varios tipos de bucles en JavaScript, incluyendo for, for/in, for/of, while y do/while . Cada tipo de bucle tiene su propia sintaxis y casos de uso.

驴Qu茅 es un ciclo infinito y por qu茅 es un problema?

Un bucle infinito es un bucle que nunca termina porque su condici贸n nunca se eval煤a como falsa. Esto puede ser un problema porque puede hacer que el programa se bloquee o se congele .

驴Puedo mezclar ciclos y condicionales?
S铆, puedes mezclar bucles y condicionales. Puedes usar condicionales dentro de los bucles para controlar el flujo del bucle en funci贸n de ciertas condiciones

Replica el comportamiento de los siguientes ciclos for utilizando ciclos while:

let i = 0;
while (i < 5) {
    console.log("El valor de i es: " + i);
    i++;
}

i = 10;
while (i >= 2) {
    console.log("El valor de i es: " + i);
    i--;
}

Escribe un c贸digo en JavaScript que le pregunte a los usuarios cu谩nto es 2 + 2. Si responden bien, mostramos un mensaje de felicitaciones, pero si responden mal, volvemos a empezar.

let respuesta = prompt("驴Cu谩nto es 2 + 2?");
while (respuesta != 4) {
    respuesta = prompt("Incorrecto. Int茅ntalo de nuevo. 驴Cu谩nto es 2 + 2?");
}
alert("隆Correcto! Felicidades.");

驴Qu茅 es un array? Un array es una estructura de datos que puede almacenar una colecci贸n de elementos. Cada elemento en un array tiene un 铆ndice num茅rico que indica su posici贸n en la colecci贸n.

驴Qu茅 es un objeto? Un objeto es una estructura de datos que puede almacenar una colecci贸n de propiedades. Cada propiedad en un objeto tiene un nombre y un valor asociado.

驴Cu谩ndo es mejor usar objetos o arrays? Depende del tipo de datos que quieras almacenar y c贸mo quieras acceder a ellos. Si necesitas almacenar una lista ordenada de elementos y acceder a ellos por su posici贸n, entonces un array ser铆a la mejor opci贸n. Si necesitas almacenar datos con nombres de propiedades espec铆ficos y acceder a ellos por su nombre, entonces un objeto ser铆a la mejor opci贸n.

驴Puedo mezclar arrays con objetos o incluso objetos con arrays? S铆, puedes tener arrays que contengan objetos como elementos y tambi茅n puedes tener objetos cuyas propiedades sean arrays. Esto te permite crear estructuras de datos m谩s complejas para almacenar y organizar tus datos.

Crea una funci贸n que pueda recibir cualquier array como par谩metro e imprima su primer elemento.

function imprimirPrimerElemento(array) {
  console.log(array[0]);
}

Crea una funci贸n que pueda recibir cualquier array como par谩metro e imprima todos sus elementos uno por uno (no se vale imprimir el array completo).

function imprimirTodosLosElementos(array) {
  for (let i = 0; i < array.length; i++) {
    console.log(array[i]);
  }
}

Crea una funci贸n que pueda recibir cualquier objeto como par谩metro e imprima todos sus elementos uno por uno (no se vale imprimir el objeto completo).

function imprimirTodosLosElementosDeObjeto(objeto) {
  for (let clave in objeto) {
    console.log(objeto[clave]);
  }
}

1.a. una variable es un espacio en memoria con un nombre que puede almacenar cualquier tipo de dato. Estas pueden cambiar y con ellos el funcionamiento del programa.
b. Declarar una variable es solo el momento en el cual se reserva ese espacio en memoria para la variable, con su nombre y todo pero esta se encuentra vacia o indefinida, al contrario de inicializar, que es el momento en el cual introducimos un dato especifico a esa variable.
c. sumar numeros es la operacion matematica donde cada numero representa una cantidad de unidades y la suma de ellos dara un numero diferente. La concatenacion de strings simplemente consta de unir los caracteres uno al lado del otro, ya sean numeros, letras o simbolos, para formar un conjunto de caracteres distinto o un string.
d. el signo de MAS.

2:
string
string
string
number
string
boolean
number
boolean

3:
var name;
var lastName;
var user;
var DOB;
var email;
var isOldEnough;
var savedMoney;
var debts;

1.2
Una funcion es un bloque de codigo que permite ejecutar una tarea.
son dos casos en los que te puede servir una funcion. 1 es cuando queres almacenar un resultado en una variable cuya informacion deriva o es dependiente de otras, por lo que usaras una funcion expresiva sin nombre. El otro caso es cuando tenemos algo parecido pero sabemos este bloque de codigo puede ser usado mas adelante para otras variables, por lo que se guardan en memoria con un nombre y se las llama cuando es necesario.

Mi Test JavaScript

ALTAMENTE RECOMENDABLE QUE LO HAGAN, APREND脥 Y REFORC脡 MUCHO CONOCIMIENTO !!

1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:
a) 驴Qu茅 es una variable y para qu茅 sirve?
Una Variable es una entidad de espacio de memoria que sirve para guardar datos, que posteriormente se procesan.
b) 驴Cu谩l es la diferencia entre declarar e inicializar una variable?
La diferencia est谩 en que al declarar una variable solo definimos su nombre y su tipo, al inicializarla le damos un valor.
c) 驴Cu谩l es la diferencia entre sumar n煤meros y concatenar strings?
Al sumar n煤meros estamos realizando una ecuaci贸n matem谩tica, al concatenar strings estamos uniendo caracteres en cadena.
d) 驴Cu谩l operador me permite sumar o concatenar?
el operador [ + ] es el que permite ambas acciones.
2锔忊儯 Determina el nombre y tipo de dato para almacenar en variables la siguiente informaci贸n:
Nombre: 鈥淪tring鈥
Apellido: 鈥淪tring鈥
Nombre de usuario en Platzi: 鈥淪tring鈥
Edad: 鈥淣umber鈥
Correo electr贸nico: 鈥淪tring鈥
Mayor de edad: 鈥淏oolean鈥
Dinero ahorrado: 鈥淣umber鈥
Deudas: 鈥淣umber鈥
3锔忊儯 Traduce a c贸digo JavaScript las variables del ejemplo anterior y deja tu c贸digo en los comentarios.

let nombre = "Cristian";
let apellido = "Lotero Aquino";
let nombreDeUsuarioPlatzi = "cristianlotero";
let edad = 37;
let email = "[email protected]";
let mayorDeEdad = true;
let dineroAhorrado = 100;
let deudas = 2.5;

4锔忊儯 Calcula e imprime las siguientes variables a partir de las variables del ejemplo anterior:
*) Nombre completo (nombre y apellido):
*) Dinero real (dinero ahorrado menos deudas):

let nombreCompleto = nombre + " " + apellido;
let dineroReal = dineroAhorrado - deudas;

console.log(`Nombre completo : ${nombreCompleto} `);
console.log(`Dinero Real : ${dineroReal} U$D` );

Funciones
1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:
a) 驴Qu茅 es una funci贸n?:
Una funci贸n es una serie de instrucciones que reciben datos (valores, variables, otras funciones, etc) en forma de par谩metros, ejecutan una acci贸n varias acciones y preferentemente se reutiliza en varias ocasiones.
b) 驴Cu谩ndo me sirve usar una funci贸n en mi c贸digo?
Sirve usarla cuando necesitamos realizar procesos repetidamente, entonces podemos llamar a dicha funci贸n en diferentes partes de nuestro codigo.
c) 驴Cu谩l es la diferencia entre par谩metros y argumentos de una funci贸n?
Se le llama normalmente par谩metros a las variables que recibimos de una funci贸n, y argumento a los valores.

2锔忊儯 Convierte el siguiente c贸digo en una funci贸n, pero, cambiando cuando sea necesario las variables constantes por par谩metros y argumentos en una funci贸n:

const name = "Cristian Fernando";
const lastname = "Lotero Aquino";
const completeName = name + lastname;
const nickname = "Pela";

function myFunction (completeName, nickname) {
    console.log(`Mi nombre es ${completeName}, pero prefiero que me digas ${nickname}.`)
}

myFunction(completeName,nickname);

Condicionales

1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:
a) 驴Qu茅 es un condicional?
Un condicional es una sentencia que permite separar la respuesta entre dos o varias opciones.
b) 驴Qu茅 tipos de condicionales existen en JavaScript y cu谩les son sus diferencias?
Los condicionales que existen en JavaScript son:

https://programadorwebvalencia.com/cursos/javascript/condicionales/
c) 驴Puedo combinar funciones y condicionales?
Si se puede combinar ambas para mejorar la l贸gica del c贸digo.
2锔忊儯 Replica el comportamiento del siguiente c贸digo que usa la sentencia switch utilizando if, else y else if:

if (tipoDeSuscripcion == "Free"){
    console.log("Solo puedes tomar los cursos gratis");
} else 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("Que estas esperando para no parar de aprender? insncribete ya!");
}

3锔忊儯 Replica el comportamiento de tu condicional anterior con if, else y else if, pero ahora solo con if (sin else ni else if).
馃挕 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. 馃槒

let suscripciones = [
    {tipoDeSuscripcion: "free", mensaje:"Solo puedes tomar los cursos gratis"},
    {tipoDeSuscripcion: "Basic", mensaje:"Puedes tomar casi todos los cursos de Platzi durante un mes"},
    {tipoDeSuscripcion: "Expert", mensaje:"Puedes tomar casi todos los cursos de Platzi durante un a帽o"},
    {tipoDeSuscripcion:"ExpertPlus", mensaje:"T煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi durante un a帽o"}
];

let mensajeBasic = suscripciones.filter(function(suscripcion){
    return suscripcion.tipoDeSuscripcion == "Basic";
})

console.log(mensajeBasic[0].mensaje);

Ciclos
1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:
a) 驴Qu茅 es un ciclo?
Un ciclo es un bloque de c贸digo que se ejecuta repetidas veces cuando/mientas/hasta se cumpla una condici贸n.
b)驴Qu茅 tipos de ciclos existen en JavaScript?
existen los ciclos :
for, do while, while, for in, for of.
c) 驴Qu茅 es un ciclo infinito y por qu茅 es un problema?
Un ciclo infinito se da cuando es imposible culminar el ciclo debido a la condicion, y es un problema porque traba el programa o sobreestresa el navegador.
d) 驴Puedo mezclar ciclos y condicionales?
Si se pueden mesclar ambos.
2锔忊儯 Replica el comportamiento de los siguientes ciclos for utilizando ciclos while:

let i = 0;
while (i < 5){
    console.log(`El valor de i es: ${i}`);
    i++;
}

let i = 10;
while (i >= 2) {
    console.log(`El valor de i es: ${i}`);
    i--;
} 

3锔忊儯 Escribe un c贸digo en JavaScript que le pregunte a los usuarios cu谩nto es 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.

let pregunta;
while (pregunta != 4){
    pregunta = prompt("Cuanto es 2 + 2 ?");
} 
console.log("flicitaciones! tu maestra de 1er grado esta orgullosa!");

Listas
1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:
a) 驴Que es un array?
Un array es una estructura tipo objeto que puede contener varios elementos: otros arrays, objetos, variables.
b) 驴Qu茅 es un objeto?
Un objeto es una estructura de datos que contiene entes (que pueden ser tambien otros objetos) y que constan de un estado y un comportamiento y que a su vez respectivamente constan de datos almacenables y tareas realizables.
c) 驴Cu谩ndo es mejor usar objetos o arrays?
Es mejor usarlos cuando tengamos que estructurar varios datos y querramos darle correspondencia, significancia, y comportamientos.
d) 驴Puedo mezclar arrays con objetos o incluso objetos con arrays?
Si, al ser una estructura de datos que permite gran variedad de posibilidad de almacenamiento, se pueden mezclar ambos.

2锔忊儯 Crea una funci贸n que pueda recibir cualquier array como par谩metro e imprima su primer elemento.

let MisPosibilidadesConEllaAlHablarle = ["0.3%" ,"1.4%" ,"0.56%", "7%" ,"14%"];

function myFunction(anyArray) {
    console.log(anyArray[0]);
}

myFunction(MisPosibilidadesConEllaAlHablarle);

3锔忊儯 Crea una funci贸n que pueda recibir cualquier array como par谩metro e imprima todos sus elementos uno por uno (no se vale imprimir el array completo).

let misPosibilidadesConEllaAlHablarle = ["0.3%" ,"1.4%" ,"0.56%", "7%" ,"14%"];

function myFunction(anyArray) {
    for (posibilidades in anyArray){
    console.log(`Estas son mis posibilidades cada vez que le hablo: ${anyArray[posibilidades]}`);
    }
};

myFunction(misPosibilidadesConEllaAlHablarle);

4锔忊儯 Crea una funci贸n que pueda recibir cualquier objeto como par谩metro e imprima todos sus elementos uno por uno (no se vale imprimir el objeto completo):

let paisesQueQuieroConocer = ["Indonesia","turquia","senegal","todo el resto"];

let  AlMalTiempo = "buena cara"; 

let iLikeThis = {
    bebida: "Licuado de maracuy谩",
    bebidaAlcoholica: "Fernet",
    comida: "Carne de cerdo frita a la cacerola con papas a la crema",
    deporte: "El baile cuenta?",
    color: "Azul",
    automobil: "El que me envie la app",
    mascota: "Perro"
}

let myObj = {
    iLikeThis,
    salsa: [1,2,3,"s铆ncopa",5,6,7,"s铆ncopa"],
    paisesQueQuieroConocer,
    equivocacionesProgramando: 64956443232,
    tengoHambre: true,
    AlMalTiempo,
    intentoDeNuevo: function(){
        console.log(`Me caigo ${this.equivocacionesProgramando} y me levanto ${this.equivocacionesProgramando + 1}`)
    }
}

function myFunction(object){
    for (elemento in object){
    console.log(`${elemento}:`);
    console.log(object[elemento]);
    }
}

myFunction(myObj);

Variables y operaciones
1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:

-驴Qu茅 es una variable y para qu茅 sirve?
Una variable es un espacio de memoria que ocupamos para guardar valores o informaci贸n.

  • 驴Cu谩l es la diferencia entre declarar e inicializar una variable?
    Cuando la declaramos, hacemos un espacio en la memoria para en el futuro poder guardar una variable, sin embargo, cuando la inicializamos no solo la declaramos, sino que le ingresamos un valor en la variable.

  • 驴Cu谩l es la diferencia entre sumar n煤meros y concatenar strings?
    Cuando sumamos n煤meros podemos aumentar la cantidad de unidades con un operador matem谩tico, as铆 podemos hacer operaciones de a帽adido entre un n煤mero y otro, por otro lado, el concatenar strings solo hacemos que dos strings se conecten uno al otro, sin alterar el contenido de cada string, solo se a帽ade uno alado del otro formando uno o m谩s strings en uno solo.

  • 驴Cu谩l operador me permite sumar o concatenar?
    El operador 鈥+鈥 permite realizar este tipo de operaciones.

2锔忊儯 Determina el nombre y tipo de dato para almacenar en variables la siguiente informaci贸n:
Nombre -> string
Apellido -> string
Nombre de usuario en Platzi -> string
Edad -> number
Correo electr贸nico -> string
Mayor de edad -> boolean
Dinero ahorrado -> number
Deudas -> number

3锔忊儯 Traduce a c贸digo JavaScript las variables del ejemplo anterior y deja tu c贸digo en los comentarios.

var name = 鈥淒aniel鈥;
var lastName= 鈥淚turralde鈥;
var userName = 鈥string鈥;
var age = 27;
var email = 鈥渄aniel_iturralde_b@hotmai.com鈥;
var adult = true;
var savedMoney = 0;
var debt = 0;

4锔忊儯 Calcula e imprime las siguientes variables a partir de las variables del ejemplo anterior:
Nombre completo (nombre y apellido)
Dinero real (dinero ahorrado menos deudas)

var  fullName = name + " " + lastName;
console.log(fullName);

var equity = savedMoney - debt;
console.log(equity);

Funciones
1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:

  • 驴Qu茅 es una funci贸n?
    Una funci贸n es un conjunto de instrucciones encerrados en un bloque, que le damos a la computadora para que ejecute.

  • 驴Cu谩ndo me sirve usar una funci贸n en mi c贸digo?
    Me sirve para cuando tengo que repetir instrucciones de manera consecutiva, entonces me permito plantear una funci贸n que por medio de una variable o nombre de funci贸n puedo llamarla en distintos momentos de nuestro c贸digo.

  • 驴Cu谩l es la diferencia entre par谩metros y argumentos de una funci贸n?
    El par谩metro es la variable que le otorgamos a la funci贸n para poder recibir valores para que esta pueda ejecutar los pasos asignados en la funci贸n, por otro lado, los argumentos son aquellos valores que le entregamos a la funci贸n para que pueda tener elementos para ser transformados y presentados al llamar a la funci贸n.

2锔忊儯 Convierte el siguiente c贸digo en una funci贸n, pero, cambiando cuando sea necesario las variables constantes por par谩metros y argumentos en una funci贸n:

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 + "."); 
const name = "Juan David";
const lastName = "Castro Gallego";
const nickName = "juandc";

function fullName (theName, theLastName) {
    return theName + " " + theLastName;
}

function greetings (theName, theLastName, theNickname) {
    let completeName = fullName(name, lastName, nickName);

    console.log("Mi nombre es " + completeName + ", pero prefiero que me digas " + theNickname + ".")
}

greetings(name, lastName, nickName);

Condicionales
1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:

  • 驴Qu茅 es un condicional?
    Un condicional es una estructura de c贸digo que permite dirigir una secuencia de pasos por medio de verdaderos y falsos.

  • 驴Qu茅 tipos de condicionales existen en JavaScript y cu谩les son sus diferencias?
    Existen 3, If: Nos permite hacer una validaci贸n de verdadero o falso; If Else: Nos permite anidar varias validaciones de verdadero o falso; Switch: Nos permite evitar la anidaci贸n por medio de indicar varias posibilidades dependiendo del valor recibido del switch.

  • 驴Puedo combinar funciones y condicionales?
    Si.

2锔忊儯 Replica el comportamiento del siguiente c贸digo que usa la sentencia switch utilizando if, else y else if:

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 == "Free") {
    console.log("Solo puedes tomar los cursos gratis");
} else 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")
}

3锔忊儯 Replica el comportamiento de tu condicional anterior con if, else y else if, pero ahora solo con if (sin else ni else if).

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")
}

Ciclos
1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:

  • 驴Qu茅 es un ciclo?
    Es un bucle, el cu谩l recibe una condici贸n, est谩 condici贸n repetir谩 una serie de pasas hasta que el valor evaluado incumpla la condici贸n.

  • 驴Qu茅 tipos de ciclos existen en JavaScript?
    For, For of, While.

  • 驴Qu茅 es un ciclo infinito y por qu茅 es un problema?
    Un ciclo infinito es cuando no logramos colocar un valor que sea posible de romper el ciclo, entonces esta serie de pasos se van a ejecutar sin parar. Es un problema porque podemos colapsar la m谩quina o simplemente nunca obtener el resultado esperado.

  • 驴Puedo mezclar ciclos y condicionales?
    Si.

2锔忊儯 Replica el comportamiento de los siguientes ciclos for utilizando ciclos while:

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);
}
let i = 0

while (i < 5) {
    console.log("El valor de i es: " + i);
    i++
} 

let i = 10

while (i >= 2) {
    console.log("El valor de i es: " + i);
    i--
}

3锔忊儯 Escribe un c贸digo en JavaScript que le pregunte a los usuarios cu谩nto es 2 + 2. Si responden bien, mostramos un mensaje de felicitaciones, pero si responden mal, volvemos a empezar.

function pregunta (respuesta) {
    while (respuesta != 4) {
        respuesta = prompt("驴Cu谩nto es 2 + 2?")
        if (respuesta != 4) {
            alert("La respuesta no es " + respuesta + ", " + "Int茅ntalo de nuevo.")
        } else {
            alert("隆Correcto!")
        }
    }
}
pregunta()

Listas
1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:

  • 驴Qu茅 es un array?
    Un array es una estructura de datos.

  • 驴Qu茅 es un objeto?
    Es una estructura de datos que nos permite guardar informaci贸n de propiedades con su respectivo valor.

  • 驴Cu谩ndo es mejor usar objetos o arrays?
    Es mejor usar un array cuando tienes una lista simple de varias opciones, sin embargo, es mejor usar objetos cuando debes integrar propiedades m谩s complejas a esta estructura.

  • 驴Puedo mezclar arrays con objetos o incluso objetos con arrays?
    Si.

2锔忊儯 Crea una funci贸n que pueda recibir cualquier array como par谩metro e imprima su primer elemento.

var array = [1, 2, 3]

function imprimirPrimerObjeto (array) {
    return array[1];
}
imprimirPrimerObjeto(array);

3锔忊儯 Crea una funci贸n que pueda recibir cualquier array como par谩metro e imprima todos sus elementos uno por uno (no se vale imprimir el array completo).

array.forEach(elemento => console.log(elemento));

array.forEach(function(elemento) {
    console.log(elemento);
});

4锔忊儯 Crea una funci贸n que pueda recibir cualquier objeto como par谩metro e imprima todos sus elementos uno por uno (no se vale imprimir el objeto completo).

var object = {
    color: "azul",
    tama帽o: "peque帽o",
    forma: "circular"
}

function imprimirObjeto(objeto) {
    for (prop in objeto) {
        console.log(prop, ": ", objeto[prop]);
    }   
}
imprimirObjeto(object)

Variables y operaciones
1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:

  1. 驴Qu茅 es una variable y para qu茅 sirve?
    R= Es la representaci贸n de un espacio de memoria. Sirve para almacenar, manipular y facilitar datos.

  2. 驴Cu谩l es la diferencia entre declarar e inicializar una variable?
    R= Declaras una variable desde un inicio para tener un espacio en la memoria. Despu茅s a esta le asignas el valor que tendr谩 esa variable por primera vez.

  3. 驴Cu谩l es la diferencia entre sumar n煤meros y concatenar strings?
    R= Para sumar deben de estar ambos en n煤meros para poder sumar los valores o realizar cualquier operaci贸n, y concatenar solo los une. Ejemplo:
    1 + 1 = 2
    1 + 鈥1鈥 = 11

  4. 驴Cu谩l operador me permite sumar o concatenar?
    El operado de (+)
    2锔忊儯 Determina el nombre y tipo de dato para almacenar en variables la siguiente informaci贸n:
    鈥 Nombre = string
    鈥 Apellido = string
    鈥 Nombre de usuario en Platzi = 鈥渟tring鈥
    鈥 Edad = number
    鈥 Correo electr贸nico = string
    鈥 Mayor de edad = booleano
    鈥 Dinero ahorrado = number
    鈥 Deudas = number
    3锔忊儯 Traduce a c贸digo JavaScript las variables del ejemplo anterior y deja tu c贸digo en los comentarios.

鈥 let Nombre = 鈥淐oraz贸n鈥;
鈥 let Apellido = 鈥淛aime鈥;
鈥 let usuarioPlatzi = 鈥淐oraz贸n Jaime鈥;
鈥 let Edad = 24;
鈥 let Correo = [email protected]
鈥 let ciudadano = true;
鈥 let ahorro= 20000;
鈥 let Deudas = 5000;

4锔忊儯 Calcula e imprime las siguientes variables a partir de las variables del ejemplo anterior:
鈥 Nombre completo (nombre y apellido)
鈥 Dinero real (dinero ahorrado menos deudas)
鈥 let nombre = 鈥淐oraz贸n鈥;
鈥 let apellido = 鈥淛aime鈥;
鈥 let usuarioPlatzi = 鈥淐oraz贸n Jaime鈥;
鈥 let Edad = 24;
鈥 let correo = [email protected]
鈥 let ciudadano = true;
鈥 let ahorro= 20000;
鈥 let deudas = 5000;
鈥 let dineroReal = ahorro - deudas;

鈥 console.log("Mi nombre es: " + nombre + apellido)
鈥 console.log("El total de mi dinero es " + dineroReal)

Funciones
1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:

  1. 驴Qu茅 es una funci贸n?
    R= procedimientos o tareas para validar o generar algo, bloques de c贸digo que solucionan un problema espec铆fico para ser reutilizados.

  2. 驴Cu谩ndo me sirve usar una funci贸n en mi c贸digo?
    R= Cuando necesite validar, reutilizar c贸digo, mejorar la organizaci贸n, modularidad y legibilidad, as铆 como para abstraer tareas complejas y manejar eventos. Las funciones ayudan a estructurar el c贸digo de manera eficiente y promueven buenas pr谩cticas de programaci贸n.

  3. 驴Cu谩l es la diferencia entre par谩metros y argumentos de una funci贸n?
    R= en su uso y su relaci贸n con la llamada y definici贸n de la funci贸n.
    Par谩metros: Los par谩metros son variables declaradas en la definici贸n de una funci贸n. Estas variables act煤an como marcadores de posici贸n para los valores que se pasar谩n a la funci贸n cuando se llame. Los par谩metros se definen dentro de los par茅ntesis en la declaraci贸n de la funci贸n y se separan por comas.
    Argumentos: Los argumentos son los valores reales que se pasan a una funci贸n cuando se la llama. Cuando se llama a una funci贸n, se proporcionan los argumentos que corresponden a los par谩metros de la funci贸n.

2锔忊儯 Convierte el siguiente c贸digo en una funci贸n, pero, cambiando cuando sea necesario las variables constantes por par谩metros y argumentos en una funci贸n:

const name = 鈥淛uan David鈥;
const lastname = 鈥淐astro Gallego鈥;
const completeName = name + lastname;
const nickname = 鈥渏uandc鈥;

console.log(
鈥淢i nombre es " +
completeName +
鈥, pero prefiero que me digas " +
nickname +
"."
);

function datosRelevantes (nombre, lastname, nickname){
const completeName = name + lastname;
return 鈥淢i nombre es " +
completeName +
鈥, pero prefiero que me digas " +
nickname +
"."
}

Condicionales
1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:
鈥 驴Qu茅 es un condicional?
son estructuras de control que te permiten evaluar diferentes expresiones y realizar determinadas acciones en JavasScript. Es una serie de reglas.
鈥 驴Qu茅 tipos de condicionales existen en JavaScript y cu谩les son sus diferencias?

  • If = eval煤a si una expresi贸n o condici贸n es verdadera
  • Else if = evaluar m煤ltiples condiciones en secuencia.
  • Else = eval煤a cuando la expresi贸n del if es falsa

鈥 驴Puedo combinar funciones y condicionales?
Si, crea l贸gica m谩s compleja y flexible
2锔忊儯 Replica el comportamiento del siguiente c贸digo que usa la sentencia switch utilizando if, else y else if:

const tipoDeSuscripcion = 鈥淏asic鈥;

if (鈥淔ree鈥) {
console.log(鈥淪olo puedes tomar los cursos gratis鈥);
}
else if(鈥淏asic鈥){
console.log(鈥淧uedes tomar casi todos los cursos de Platzi durante un mes鈥);
}
else if (鈥淓xpert鈥){
console.log(鈥淧uedes tomar casi todos los cursos de Platzi durante un a帽o鈥);
}
else if (鈥淓xpertPlus鈥){
console.log(鈥淭煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi durante un a帽o鈥);
}
else{
console.log(鈥淒ebes escoger que te conviene para tu futuro鈥)
}

3锔忊儯 Replica el comportamiento de tu condicional anterior con if, else y else if, pero ahora solo con if (sin else ni else if).

function eleccion(tipoDeSuscripcion) {
if (tipoDeSuscripcion === 鈥淔ree鈥) {
return 鈥淪olo puedes tomar los cursos gratis鈥;
}
if (tipoDeSuscripcion === 鈥淏asic鈥) {
return 鈥淧uedes tomar casi todos los cursos de Platzi durante un mes鈥;
}
if (tipoDeSuscripcion === 鈥淓xpert鈥) {
return 鈥淧uedes tomar casi todos los cursos de Platzi durante un a帽o鈥;
}
if (tipoDeSuscripcion === 鈥淓xpertPlus鈥) {
return 鈥淭煤 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. 馃槒
Ciclos
1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:

  1. 驴Qu茅 es un ciclo?
    tambi茅n conocido como bucle, es una estructura de control que permite repetir un bloque de c贸digo m煤ltiples veces. Los ciclos son utilizados cuando se necesita ejecutar una determinada porci贸n de c贸digo de forma repetitiva hasta que se cumpla una condici贸n de salida.
  2. 驴Qu茅 tipos de ciclos existen en JavaScript?
    Ciclo 鈥渇or鈥: Se utiliza cuando se conoce de antemano el n煤mero exacto de repeticiones que se deben realizar.
    Ciclo 鈥渨hile鈥: Se utiliza cuando se desconoce el n煤mero exacto de repeticiones y se repite mientras una condici贸n especificada sea verdadera.
    Ciclo 鈥渄o-while鈥: Similar al ciclo 鈥渨hile鈥, pero garantiza que el bloque de c贸digo se ejecute al menos una vez, incluso si la condici贸n es falsa en la primera iteraci贸n.
    Ciclo 鈥渇or鈥n鈥: Se utiliza para iterar sobre las propiedades enumerables de un objeto. Recorre cada propiedad en el objeto especificado.
    Ciclo 鈥渇or鈥f鈥: Se utiliza para iterar sobre elementos iterables como arrays, strings, etc. Recorre cada elemento en la estructura de datos.
  3. 驴Qu茅 es un ciclo infinito y por qu茅 es un problema?
    no tiene una condici贸n de salida que lo detenga, lo que provoca que se repita indefinidamente. Esto es un problema porque el programa quedar谩 atrapado en ese ciclo y no podr谩 continuar ejecutando el resto del c贸digo.
  4. 驴Puedo mezclar ciclos y condicionales?
    si Puedes utilizar condicionales dentro de un ciclo para controlar la l贸gica de repetici贸n o utilizar ciclos dentro de condicionales para repetir un bloque de c贸digo seg煤n una condici贸n espec铆fica. Esta combinaci贸n te permite crear estructuras de control m谩s complejas y adaptar el flujo de ejecuci贸n de tu programa seg煤n tus necesidades.

2锔忊儯 Replica el comportamiento de los siguientes ciclos for utilizando ciclos while:

let i = 0;

while(i<5){
console.log("El valor de i es: " + i);
i++
}

let i = 10;
while(i>2){
console.log("El valor de i es: " + i);
i鈥;
}

3锔忊儯 Escribe un c贸digo en JavaScript que le pregunte a los usuarios cu谩nto es 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.

var quiz = prompt("驴Cuanto es 2 + 2 ?")

function cantidad(resultado){
if(resultado == 4 ){
return(鈥淔elicidades esa es la respuesta鈥)
}else{
return(鈥淭e falta reforzar el conocimiento鈥)
}
}
console.log(cantidad(quiz));

Listas
1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:

  1. 驴Qu茅 es un array?
    tambi茅n conocido como arreglo o matriz, es una estructura de datos en JavaScript que permite almacenar m煤ltiples valores en una sola variable. Los elementos dentro de un array est谩n ordenados y se acceden utilizando 铆ndices num茅ricos.

  2. 驴Qu茅 es un objeto?
    una estructura de datos que permite almacenar m煤ltiples valores relacionados, llamados propiedades, en una sola variable. A diferencia de los arrays, los objetos no est谩n ordenados y las propiedades se acceden mediante claves (generalmente strings).

  3. 驴Cu谩ndo es mejor usar objetos o arrays?
    depende de las necesidades del programa y la estructura de los datos que deseas representar:
    鈥 Los arrays son 煤tiles cuando tienes una colecci贸n de elementos que quieres acceder por su posici贸n num茅rica. Son especialmente 煤tiles cuando necesitas almacenar una lista de elementos del mismo tipo, como una lista de n煤meros o de nombres.
    鈥 Los objetos son m谩s apropiados cuando necesitas almacenar una colecci贸n de datos relacionados en pares clave-valor. Son 煤tiles cuando deseas representar entidades con propiedades distintas, como un usuario con nombre, edad, direcci贸n, etc.

  4. 驴Puedo mezclar arrays con objetos o incluso objetos con arrays?
    S铆, es posible mezclar arrays con objetos y viceversa en JavaScript. Puedes tener un array que contenga objetos como sus elementos, lo que te permite organizar y acceder a colecciones de objetos. Tambi茅n puedes tener propiedades de un objeto que sean arrays, lo que te permite almacenar m煤ltiples valores relacionados bajo una misma clave.
    La combinaci贸n de arrays y objetos te brinda flexibilidad para estructurar y organizar tus datos de manera eficiente en JavaScript.
    2锔忊儯 Crea una funci贸n que pueda recibir cualquier array como par谩metro e imprima su primer elemento.
    const imprimirElemento = [鈥渁鈥,鈥渂鈥,鈥渃鈥,鈥渄鈥漖

function imprimirPrimerElemento(arreglo){
console.log(arreglo[0]);
}
imprimirPrimerElemento(imprimirElemento);

3锔忊儯 Crea una funci贸n que pueda recibir cualquier array como par谩metro e imprima todos sus elementos uno por uno (no se vale imprimir el array completo).
var arreglo = [20, 40, 60];

for(i=0; i<arreglo.length; i++){
console.log(arreglo[i]);
}

4锔忊儯 Crea una funci贸n que pueda recibir cualquier objeto como par谩metro e imprima todos sus elementos uno por uno (no se vale imprimir el objeto completo).

VARIABLES Y OPERACIONES
1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:
驴Qu茅 es una variable y para qu茅 sirve? es un espacio en memoria que permite almacenar diferentes tipos de datos
驴Cu谩l es la diferencia entre declarar e inicializar una variable? en la declaracion se detalla el nombre y a veces el tipo de variable, mientras que en la inicializacion se le asignar un valor inicial
驴Cu谩l es la diferencia entre sumar n煤meros y concatenar strings? la suma de numeros es una operacion matematica, mientras que la concatenacion es la union de dos datos de tipo string
驴Cu谩l operador me permite sumar o concatenar? el operador suma 鈥+鈥

2锔忊儯 Determina el nombre y tipo de dato para almacenar en variables la siguiente informaci贸n:
Nombre: name | string
Apellido: lastName | string
Nombre de usuario en Platzi: user | string
Edad: age | number
Correo electr贸nico: email | string
Mayor de edad: isOlder | boolean
Dinero ahorrado: savedMoney | number
Deudas: debts | number

3锔忊儯 Traduce a c贸digo JavaScript las variables del ejemplo anterior y deja tu c贸digo en los comentarios.
var name=鈥淯ziel鈥;
var lastName=鈥淟orenzo鈥;
var user=鈥渟ebaslorenz97鈥;
var age=25;
var email="[email protected]";
var isOlder=true;
var savedMoney=9100;
var debts=40000;

4锔忊儯 Calcula e imprime las siguientes variables a partir de las variables del ejemplo anterior:
Nombre completo (nombre y apellido):var fullName=name + lastName;
Dinero real (dinero ahorrado menos deudas): var realMoney=savedMoney - debts;

FUNCIONES
1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:
驴Qu茅 es una funci贸n? es un bloque de codigo que hace una accion en especifico
驴Cu谩ndo me sirve usar una funci贸n en mi c贸digo? cuando esa accion se va a usar en varias partes es mejor envolverlo en una funcion y usarlo en las areas donde se necesite
驴Cu谩l es la diferencia entre par谩metros y argumentos de una funci贸n? Se le llama parametros a la definicion de las variables que se recibiran en la funcion, mientras que se le llama argumentos a las valores que se asignan a los parametros cuando se llama a la funcion

2锔忊儯 Convierte el siguiente c贸digo en una funci贸n, pero, cambiando cuando sea necesario las variables constantes por par谩metros y argumentos en una funci贸n:
const name = 鈥淛uan David鈥;
const lastname = 鈥淐astro Gallego鈥;
const completeName = name + lastname;
const nickname = 鈥渏uandc鈥;

function printFullName(completeName, nickname){
console.log("Mi nombre es " + completeName + ", pero prefiero que me digas " + nickname + 鈥.鈥);
}

printFullName(鈥淛uan David Castro Gallego鈥, 鈥渏uandc鈥);

CONDICIONALES
1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:
驴Qu茅 es un condicional? es un bloque de codigo que tiene una condicion y si es verdadero ejecuta lo que esta dentro del bloque
驴Qu茅 tipos de condicionales existen en JavaScript y cu谩les son sus diferencias? existen 2: if, if else
驴Puedo combinar funciones y condicionales? si se puede

2锔忊儯 Replica el comportamiento del siguiente c贸digo que usa la sentencia switch utilizando if, else y else if:
const tipoDeSuscripcion = 鈥淏asic鈥;

if(tipoDeSuscripcion === 鈥淔ree鈥){
console.log(鈥淪olo puedes tomar los cursos gratis鈥);
}else if(tipoDeSuscripcion === 鈥淏asic鈥){
console.log(鈥淧uedes tomar casi todos los cursos de Platzi durante un mes鈥);
}else if(tipoDeSuscripcion === 鈥淓xpert鈥){
console.log(鈥淧uedes tomar casi todos los cursos de Platzi durante un a帽o鈥);
}else if(tipoDeSuscripcion === 鈥淓xpertPlus鈥){
console.log(鈥淭煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi durante un a帽o鈥);
}

3锔忊儯 Replica el comportamiento de tu condicional anterior con if, else y else if, pero ahora solo con if (sin else ni else if).
const tipoDeSuscripcion = 鈥淏asic鈥;

if(tipoDeSuscripcion === 鈥淔ree鈥){
console.log(鈥淪olo puedes tomar los cursos gratis鈥);
}
if(tipoDeSuscripcion === 鈥淏asic鈥){
console.log(鈥淧uedes tomar casi todos los cursos de Platzi durante un mes鈥);
}
if(tipoDeSuscripcion === 鈥淓xpert鈥){
console.log(鈥淧uedes tomar casi todos los cursos de Platzi durante un a帽o鈥);
}
if(tipoDeSuscripcion === 鈥淓xpertPlus鈥){
console.log(鈥淭煤 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. 馃槒
var suscripciones = [
鈥淪olo puedes tomar los cursos gratis鈥,
鈥淧uedes tomar casi todos los cursos de Platzi durante un mes鈥,
鈥淧uedes tomar casi todos los cursos de Platzi durante un a帽o鈥,
鈥淭煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi durante un a帽o鈥
];
var tipoDeSuscripcion = 0;

if(tipoDeSuscripcion != null){
console.log(suscripciones[tipoDeSuscripcion])
}

CICLOS
1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:
驴Qu茅 es un ciclo? es un bloque de codigo que se repite hasta que se siga cumpliendo una condicion determinada
驴Qu茅 tipos de ciclos existen en JavaScript? for, for of y while
驴Qu茅 es un ciclo infinito y por qu茅 es un problema? es un ciclo cuya condicion de ejecucion siempre se cumple por lo que no para, esto causa un problema grande de gasto de recursos en la ejecucion infinita de ese ciclo
驴Puedo mezclar ciclos y condicionales? si se puede

2锔忊儯 Replica el comportamiento de los siguientes ciclos for utilizando ciclos while:
let i = 0;
while(i < 5){
console.log("El valor de i es: " + i);
i++
}

i = 10;
while(i >= 2){
console.log("El valor de i es: " + i);
i鈥;
}

3锔忊儯 Escribe un c贸digo en JavaScript que le pregunte a los usuarios cu谩nto es 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.
var resultado = prompt("驴Cuanto es 2 + 2?");
while(resultado != 4){
resultado = prompt("驴Cuanto es 2 + 2?");
}
console.log(鈥淔elicitaciones!!!鈥);

LISTAS
1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:
驴Qu茅 es un array? es una coleccion de objetos y variables
驴Qu茅 es un objeto? es un tipo de variable que permite almacenar caracteristicas del propio objeto
驴Cu谩ndo es mejor usar objetos o arrays?
驴Puedo mezclar arrays con objetos o incluso objetos con arrays? si se puede

2锔忊儯 Crea una funci贸n que pueda recibir cualquier array como par谩metro e imprima su primer elemento.
var estudiantes = [鈥淒avid鈥,鈥淯ziel鈥,鈥淟orenzo鈥,鈥淪ebastian鈥漖;
function funcionUno(estudiantes){
console.log(estudiantes[0]);
}

3锔忊儯 Crea una funci贸n que pueda recibir cualquier array como par谩metro e imprima todos sus elementos uno por uno (no se vale imprimir el array completo).
var estudiantes = [鈥淒avid鈥,鈥淯ziel鈥,鈥淟orenzo鈥,鈥淪ebastian鈥漖;
function funcionUno(estudiantes){
for(var estudiante of estudiantes){
console.log(estudiante);
}
}

4锔忊儯 Crea una funci贸n que pueda recibir cualquier objeto como par谩metro e imprima todos sus elementos uno por uno (no se vale imprimir el objeto completo).
var estudiante = {
nombre: 鈥淯ziel Lorenzo鈥,
usuario: 鈥渟ebaslorenz97鈥,
universidad: 鈥淯PQ鈥,
};
function funcionUno(auto){
console.log("Nombre completo: 鈥+estudiante.nombre+鈥, Usuario: 鈥+estudiante.usuario+鈥, Universidad: "+estudiante.universidad);
}

Variables y operaciones
1.1 驴Qu茅 es una variable y para qu茅 sirve?
Una variable es espacio de memoria reservado con un nombre espec铆fico
1.2 驴Cu谩l es la diferencia entre declarar e inicializar una variable?
Declarar es definir una palabra determinada seguida de la palabra reservada var o let, e indica que esa palabra es una variable. Inicializar es darle un valor a la palabra que ya se declar贸 anteriormente.
1.3 驴Cu谩l es la diferencia entre sumar n煤meros y concatenar strings?
Sumar n煤meros es una operaci贸n matem谩tica que involucra los valores de tipo number, y concatenar es unir valores de tipo string.
1.4 驴Cu谩l operador me permite sumar o concatenar?
+

  1. Determina el nombre y tipo de dato para almacenar en variables la siguiente informaci贸n:
    Nombre: string
    Apellido: string
    Nombre de usuario en Platzi: string
    Edad: number
    Correo electr贸nico: string
    Mayor de edad: boolean
    Dinero ahorrado: number
    Deudas: number

3

<code>
鈥渘ombre鈥;
鈥渁pellido鈥;
"nombre de usuario en Platzi"
23
"correo@electronico"
true
200
0

<code>
var nombre = 鈥楯uanito鈥;
var apellido = 'P茅rez鈥
var nombreCompleto = function(nombre, apellido) {
return nombre + 鈥 鈥 + apellido
};

var dineroAhorrado = 200;
var deudas = 0;
var dineroReal = function(dineroAhorrado, deudas) {
return dineroAhorrado - deudas
}

Funciones
1.1 驴Qu茅 es una funci贸n?
Es un procedimiento a realizar con determinadas especificaciones guardado en una palabra.
1.2 驴Cu谩ndo me sirve usar una funci贸n en mi c贸digo?
Cuando tengo una serie de datos y quiero realizar una acci贸n a partir de ellos de forma autom谩tica
1.3 驴Cu谩l es la diferencia entre par谩metros y argumentos de una funci贸n?
Los par谩metros son los 鈥渃ajones鈥 con una etiqueta que indican qu茅 informaci贸n se va a introducir para accionar la funci贸n. Los argumentos son los valores introducidos en esos cajones.

const name = 鈥淛uan David鈥;
const lastname = 鈥淐astro Gallego鈥;
const nickname = 鈥渏uandc鈥;

function quienEsEl(name, lastname, nickname) {
console.log(鈥淢i nombre es鈥 + " " + name + " " + lastname + 鈥, pero prefiero que me digas鈥 + " " + nickname + 鈥.鈥)
}

Condicionales
1.1 驴Qu茅 es un condicional?
Un condicional nos permite plantear una situaci贸n que debe ser verdadera para que determinada acci贸n suceda.
1.2 驴Qu茅 tipos de condicionales existen en JavaScript y cu谩les son sus diferencias?
I_If, Switch, for_ y while.
If, else if plantea una o m谩s situaciones determinadas y, de ser cumplidas, se va a ejecutar una acci贸n espec铆fica.
while es un bucle que permite utilizar una condici贸n para determinar cuantas veces se desea ejecutar una instrucci贸n.
for es muy similar a while, s贸lo cambia la forma en que se escribe.
switch permite ejecutar un bloque de c贸digo u otro dependiendo del valor de una variable.

function tipoDeSuscripcion(suscripcion) {
if ( suscripcion === 鈥淔ree鈥;
console.log(鈥淪贸lo puedes tomar los cursos gratis鈥);
} else if (suscripcion === 鈥淏asic鈥) {
console.log(鈥淧uedes tomar casi todos los cursos de Platzi durante un mes鈥);
} else if (suscripcion === 鈥淓xpert鈥) {
console.log(鈥淧uedes tomar casi todos los cursos de Platzi durante un a帽o鈥);
} else if (suscripcion === 鈥淓xpertPlus鈥) {
console.log(鈥淭煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi durante un a帽o鈥);
} else {
console.log(鈥淟o siento, no est谩s suscrito鈥);
}

Ciclos
1.1 驴Qu茅 es un ciclo?
Un ciclo permite repetir la ejecuci贸n de un c贸digo varias veces
1.2 驴Qu茅 tipos de ciclos existen en JavaScript?
for, while
1.3 驴Qu茅 es un ciclo infinito y por qu茅 es un problema?
Es una operaci贸n que continuar谩 ejecut谩ndose indefinidamente, es un problema porque nunca se detendr谩
1.4 驴Puedo mezclar ciclos y condicionales?
Supongo que s铆, 隆pero no lo recuerdo!

1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:
驴Qu茅 es una variable y para qu茅 sirve?

  • es un espacio reservado en memoria que nos permite guardar informaci贸n. Se puede almacenar diferentes tipos de informaci贸n para usarlo en el c贸digo.
    驴Cu谩l es la diferencia entre declarar e inicializar una variable?
  • Cuando de declara un variable, solo se le nombra no se indica que tipo de informacion se va a guardar. Ejemplo: let edad ; .
  • - Cuando inicializamon las variables se le indica que tipo de datos o informacion se guarda. Ejemplo: let edad=18 ; .
    驴Cu谩l es la diferencia entre sumar n煤meros y concatenar strings?
  • Al sumar se realiza la operaci贸n matematica pero cuando se concatena solo se juntan los datos suma: 2 + 2 = 4 concatenacion 鈥2鈥+鈥2鈥=鈥22鈥.
    驴Cu谩l operador me permite sumar o concatenar? 鈥+鈥

2锔忊儯 Determina el nombre y tipo de dato para almacenar en variables la siguiente informaci贸n:

  • Nombre: String
  • Apellido: String
  • Nombre de usuario en Platzi: String
  • Edad: Numero
  • Correo electr贸nico: String
  • Mayor de edad: Boolean
  • Dinero ahorrado: Numero
  • Deudas: Numero

3锔忊儯 Traduce a c贸digo JavaScript las variables del ejemplo anterior y deja tu c贸digo en los comentarios.

var nombre = "Edwin";
var apellido = " Gutierrez";
var nombreDeUsuarioDePlatzi= "baltazar gutierrez"
var edad = 28;
var correoElectronico = "[email protected]";
var mayorDeEdad = true;
var dineroAhorrado= 45000.00;
var deudas = 20000.00;

4锔忊儯 Calcula e imprime las siguientes variables a partir de las variables del ejemplo anterior:
Nombre completo (nombre y apellido)

var nombreCompleto = nombre + " "+ apellido
console.log("Mi nombre es:" + nombreCompleto);

Dinero real (dinero ahorrado menos deudas)

var dineroReal = dineroAhorrado - deudas;
console.log("Mi monto disponible es $" +dineroReal);

Funciones
1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:
驴Qu茅 es una funci贸n?

  • Las funciones son una serie de instrucciones en un bloque de c贸digo para realizar operaciones que se repiten

驴Cu谩ndo me sirve usar una funci贸n en mi c贸digo?

  • nos sirven para encapsular operaciones que se repetir谩n a lo largo del c贸digo

驴Cu谩l es la diferencia entre par谩metros y argumentos de una funci贸n?

  • Los par谩metros son la variables que recibe una funci贸n. Ejemplo: function suma(a, b){ }; .
  • Los arguntos son los valores que enviamos a la funci贸n. Ejemplo: function suma(2, 3); ._

2锔忊儯 Convierte el siguiente c贸digo en una funci贸n, pero, cambiando cuando sea necesario las variables constantes por par谩metros y argumentos en una funci贸n:

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 + ".");
// respuesta
function presentacion(name, lastname, nickname){
    const completeName = name +" " + lastname;
    console.log("Mi nombre es " + completeName + ", pero prefiero que me digas " + nickname + ".");
}

presentacion("Edwin Baltazar", "Gutierrez Santos", "Balta");

Condicionales
1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:
驴Qu茅 es un condicional?

  • Es una sentencia o instrucci贸n que nos hace tomar una opci贸n u otra en el c贸digo.
    驴Qu茅 tipos de condicionales existen en JavaScript y cu谩les son sus diferencias?
  • if(condici贸n){ operaci贸n }
  • if(condici贸n){ operaci贸n } else{ operaci贸n }.
  • if(condici贸n){ operaci贸n } else if (condici贸n){ operaci贸n } else{ operaci贸n } .
  • switch(condici贸n){ case 1: operaci贸n 1 case 2: operaci贸n 2 case 3: operaci贸n 3} .

驴Puedo combinar funciones y condicionales?

  • se pueden encadenar resultados, es decir : despu茅s de que se cumpla una condici贸n puedo poner una funci贸n o hacer una funci贸n con una condicional. Ejemplo 1: if(condici贸n){ function operacion(parametros); }; ejemplo 2: function (parametros) { if (condici贸n){ operaci贸n}; }; .

2锔忊儯 Replica el comportamiento del siguiente c贸digo que usa la sentencia switch utilizando if, else y else if:

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;
}
 // respuesta
if(tipoDeSuscripcion === "Free"){
    console.log("Solo puedes tomar los cursos gratis");
}else 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("No estas usando Platzi");
}

3锔忊儯 Replica el comportamiento de tu condicional anterior con if, else y else if, pero ahora solo con if (sin else ni else if).
馃挕 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";
// este es con array no pude hacerlo con un solo condicional
  
var suscripPlatzi = [
    {nombre: "Free" , mensaje: "Solo puedes tomar los cursos gratis"},
    {nombre: "Basic" , mensaje: "Puedes tomar casi todos los cursos de Platzi durante un mes"},
    {nombre: "Expert" , mensaje: "Puedes tomar casi todos los cursos de Platzi durante un a帽o"}, 
    {nombre: "ExpertPlus" , mensaje: "T煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi durante un a帽o"
} ]

var suscrip = suscripPlatzi.find(function(type){
    return type.nombre === tipoDeSuscripcion;
});

console.log(suscrip.mensaje);

Ciclos
1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:
驴Qu茅 es un ciclo?

  • Los ciclos son una serie de instrucciones que se repiten mientras o hasta que se cumpla una condici贸n

驴Qu茅 tipos de ciclos existen en JavaScript?

  • for (condici贸n) { instrucciones }
  • while (condici贸n) { instrucciones }
  • do 鈥 while (condici贸n) { instrucciones }

驴Qu茅 es un ciclo infinito y por qu茅 es un problema?

  • es cuando el ciclo se repite indefinidamente ya que en ning煤n momento se cumple la condici贸n para finalizar lo que impide que las que las operaciones realizadas dentro ciclo no entreguen mas informaci贸n haciendo que falle el programa y/o vaya mas lento

驴Puedo mezclar ciclos y condicionales?

  • Si, pero lo que realmente se hace es que un ciclo se cumpla siempre que que se cumpla una condici贸n o viceversa. Ejemplo1: for (condici贸n para ciclo ){ if( condici贸n ) { operaci贸n } } ejemplo2: if( condici贸n ){for (condici贸n para ciclo ){ operaci贸n } } .

2锔忊儯 Replica el comportamiento de los siguientes ciclos for utilizando ciclos while:

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);
}

i=0;
while (i<=5){ 
    console.log("El valor de i es: " + i);
    i++;};

i=10;
while(i >= 2){ 
    console.log("El valor de i es: " + i);
    i--;};

3锔忊儯 Escribe un c贸digo en JavaScript que le pregunte a los usuarios cu谩nto es 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.

//ejercicio de ciclos

respuesta=0;
while(respuesta != 4){
    respuesta = prompt("la suma de 2 + 2 es: ");
};

Listas
1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:
驴Qu茅 es un array?

  • Es una agrupacion de elementos en una misma variable cada uno de ellos ubicados con referencia a la posici贸n que ocupan. Ejemplo: vocales = [a, e, i, o, u] .

驴Qu茅 es un objeto?

  • Los objetos son una serie de propiedades para la descripci贸n de un elemento. las propiedades tiene un nombre o clave y un valor. Ejemplo: carro {marca: 鈥淣issan鈥, modelo: 鈥淩ogue鈥, annio: 鈥2015鈥潁 .

驴Cu谩ndo es mejor usar objetos o arrays?
-_ Cuando se necesiten guardar m煤ltiples caracteristicas con valores que correspondan a un mismo elemento es mejor los objetos._
-Cuando necesitemos guardar m煤ltiples elementos con una sola variable es mejor un array .

驴Puedo mezclar arrays con objetos o incluso objetos con arrays? si

2锔忊儯 Crea una funci贸n que pueda recibir cualquier array como par谩metro e imprima su primer elemento.

let series = ["Dragon Ball", "One Piece","Bleach","Naruto", "Digimon", "Pokemon"];
function imprimirPrimerElemento (series){
    console.log(series[0]);
};
imprimirPrimerElemento(series);

3锔忊儯 Crea una funci贸n que pueda recibir cualquier array como par谩metro e imprima todos sus elementos uno por uno (no se vale imprimir el array completo).

let series = ["Dragon Ball", "One Piece","Bleach","Naruto", "Digimon", "Pokemon"];
function imprimirElementos (series){
    for(i=0;i<=series.length;i++){
        console.log(series[i]);
    };
};
imprimirElementos(series);

4锔忊儯 Crea una funci贸n que pueda recibir cualquier objeto como par谩metro e imprima todos sus elementos uno por uno (no se vale imprimir el objeto completo).

let pokemon={
    nombre: "Mew",
    tipo: "psiquico",
    nivel: 35,
    ps: 135,
    ataques: "metronomo, megapu帽o, transformacion, fuerza"
}

function imprimirObjeto(pokemon){
    for (let key in pokemon) {
        console.log(key);
        console.log(pokemon[key]);
         }
}

imprimirObjeto(pokemon);

驴C贸mo te fue?
Pase un d铆a repasando y buscando las respuestas pero, me pareci贸 correcto el que se revisaran estos conceptos es mejor si se buscan y se tratan de responder solos ya que te dice cuanto conoces y si no puedes revisa las respuestas de aqu铆 buen reto

Variables y operaciones
1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:
鈥 驴Qu茅 es una variable y para qu茅 sirve?
Una variable es un contenedor que almacena datos, que podr铆an ser manipulados o modificados.

鈥 驴Cu谩l es la diferencia entre declarar e inicializar una variable?
La diferencia es que al declararla, solo estar铆amos indicando que existir谩 una variable con un nombre en espec铆fico, pero a煤n no se guarda un dato en esta variable. Al inicializara, ya estar铆amos guardando un dato como tal.

鈥 驴Cu谩l es la diferencia entre sumar n煤meros y concatenar strings?
La suma de n煤meros es una acci贸n aritm茅tica, mientras que concatenar strings es la uni贸n de datos tipo texto. La suma de datos tipo 鈥榥umber鈥 2+2 dar谩 4, mientras tipo 鈥榮tring鈥 2+2 dar谩 22.

鈥 驴Cu谩l operador me permite sumar o concatenar?
鈥+鈥

2锔忊儯 Determina el nombre y tipo de dato para almacenar en variables la siguiente informaci贸n:
鈥 Nombre String
鈥 Apellido String
鈥 Nombre de usuario en Platzi String
鈥 Edad Number
鈥 Correo electr贸nico String
鈥 Mayor de edad Booleano
鈥 Dinero ahorrado Number
鈥 Deudas Number

3锔忊儯 Traduce a c贸digo JavaScript las variables del ejemplo anterior y deja tu c贸digo en los comentarios.

let name = 鈥楢lejandro鈥;
let lastName = 鈥楤autista鈥;
let user = 鈥榖apder鈥;
let age = 30;
let email = 鈥[email protected]鈥;
let adult = true;
let savedMoney = 20000;
let debt = 1000;

4锔忊儯 Calcula e imprime las siguientes variables a partir de las variables del ejemplo anterior:
鈥 Nombre completo (nombre y apellido)

      console.log(`${name} ${lastName}`);

鈥 Dinero real (dinero ahorrado menos deudas)

      console.log(`${savedMoney - debt}`);

/* Responde las siguientes preguntas en la secci贸n de comentarios:
驴Qu茅 es una variable y para qu茅 sirve?
es la representacion de un espacio de memoria, sus utilidades son de lectura, escritura y edicion, se pueden
llamar en funciones u operar con ellas
驴Cu谩l es la diferencia entre declarar e inicializar una variable?
declarar solo crea la variable sin asignar un valor, inicializar le asigna un valor a la variable
驴Cu谩l es la diferencia entre sumar n煤meros y concatenar strings?
que la suma de numeros es una operacion aritmetica y la concatenacion es la agrupacion de caracteres.
驴Cu谩l operador me permite sumar o concatenar?
el operador sum (+)
2锔忊儯 Determina el nombre y tipo de dato para almacenar en variables la siguiente informaci贸n:
Nombre:
Apellido
Nombre de usuario en Platzi
Edad
Correo electr贸nico
Mayor de edad
Dinero ahorrado
Deudas
3锔忊儯 Traduce a c贸digo JavaScript las variables del ejemplo anterior y deja tu c贸digo en los comentarios.
4锔忊儯 Calcula e imprime las siguientes variables a partir de las variables del ejemplo anterior:
Nombre completo (nombre y apellido)
Dinero real (dinero ahorrado menos deudas)*/

var nombre= 鈥淪antiago鈥 //string
var apellido= 鈥淢allorca鈥 //string
var nombreDeUsuarioPlatzi=鈥渟mallorca鈥//string
var edad= 22 //integer
var CorreoElectr贸nico=鈥[email protected]鈥 //string
var MayorEdad= true //boolean
var dineroAhorrado= 1000 //integer
var Deudas=500 //integer

console.log(nombre + " " + apellido);
console.log(dineroAhorrado-Deudas);

/Funciones
1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:
驴Qu茅 es una funci贸n?
una operacion que estructuramos antes de usarla o al usarla
驴Cu谩ndo me sirve usar una funci贸n en mi c贸digo?
cuando debo realizar varias veces una operacion
驴Cu谩l es la diferencia entre par谩metros y argumentos de una funci贸n?
parametro es la variable que asignamos a una funcion, argumento es el valor con el que se incializa ese parametro
2锔忊儯 Convierte el siguiente c贸digo en una funci贸n, pero, cambiando cuando sea necesario las variables constantes por par谩metros y argumentos en una funci贸n:
/
const name = 鈥淛uan David鈥;
const lastname = 鈥淐astro Gallego鈥;
const completeName = name + lastname;
const nickname = 鈥渏uandc鈥;

function myName(name, lastname, nickname){
console.log(鈥淢i nombre es " + name +鈥 "+lastname + ", pero prefiero que me digas " + nickname + 鈥.鈥);

}

myName(name, lastname, nickname);

/*Condicionales
1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:
驴Qu茅 es un condicional?
una condicion a evaluar
驴Qu茅 tipos de condicionales existen en JavaScript y cu谩les son sus diferencias?
if-else realiza analiza si se cumple la condicion, toma un camino, si no se cumple toma otro camina, se pueden anidar cuantas veces sea necesario
switch toma el parametro y lo compara con varias condiciones y toma la que se cumpla, de no cumplirse ninguna condicion, toma un camino por defecto
驴Puedo combinar funciones y condicionales?
verdadero
2锔忊儯 Replica el comportamiento del siguiente c贸digo que usa la sentencia switch utilizando if, else y else if:
const tipoDeSuscripcion = 鈥淏asic鈥;

switch (tipoDeSuscripcion) {
case 鈥淔ree鈥:
console.log(鈥淪olo puedes tomar los cursos gratis鈥);
break;
case 鈥淏asic鈥:
console.log(鈥淧uedes tomar casi todos los cursos de Platzi durante un mes鈥);
break;
case 鈥淓xpert鈥:
console.log(鈥淧uedes tomar casi todos los cursos de Platzi durante un a帽o鈥);
break;
case 鈥淓xpertPlus鈥:
console.log(鈥淭煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi durante un a帽o鈥);
break;
}*/

tipoDeSuscripcion="Expert"
if (tipoDeSuscripcion == 鈥淔ree鈥){console.log(鈥淪olo puedes tomar los cursos gratis鈥);}
else if( tipoDeSuscripcion ==鈥淏asic鈥){
console.log(鈥淧uedes tomar casi todos los cursos de Platzi durante un mes鈥);}
else if (tipoDeSuscripcion ==鈥淓xpert鈥){console.log(鈥淧uedes tomar casi todos los cursos de Platzi durante un a帽o鈥);}
else if (tipoDeSuscripcion ==鈥淓xpertPlus鈥){console.log(鈥淭煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi durante un a帽o鈥);}
else {console.log(鈥淓rror鈥)}
/3锔忊儯 Replica el comportamiento de tu condicional anterior con if, else y else if, pero ahora solo con if (sin else ni else if).
tipo
/
tipoDeSuscripcion == 鈥淔ree鈥 ?console.log(鈥淪olo puedes tomar los cursos gratis鈥):
tipoDeSuscripcion ==鈥淏asic鈥?console.log(鈥淧uedes tomar casi todos los cursos de Platzi durante un mes鈥):
tipoDeSuscripcion ==鈥淓xpert鈥?console.log(鈥淧uedes tomar casi todos los cursos de Platzi durante un a帽o鈥):
tipoDeSuscripcion ==鈥淓xpertPlus鈥?console.log(鈥淭煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi durante un a帽o鈥)
:console.log(鈥淓rror鈥)
/*馃挕 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. 馃槒

Ciclos
1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:
驴Qu茅 es un ciclo?
una funcion que va a iterar hasta que se cumpla alguna condicion
驴Qu茅 tipos de ciclos existen en JavaScript?
for, while, do-while, for in, for of
驴Qu茅 es un ciclo infinito y por qu茅 es un problema?
es un ciclo que no va a parar de operar, y es un problema por que el codigo se va a quedar evaluando ahi hasta que le demos la orden de parar
驴Puedo mezclar ciclos y condicionales?
si

2锔忊儯 Replica el comportamiento de los siguientes ciclos for utilizando ciclos while:
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);
}*/
var i=0
while (i<5){
console.log("El valor de i es: " + i);
i++
}

var b=10
while (b >= 2){
console.log("El valor de i es: " + b);
b鈥
}

/*
3锔忊儯 Escribe un c贸digo en JavaScript que le pregunte a los usuarios cu谩nto es 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.

Listas
1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:
驴Qu茅 es un array?
es una estructura de datos
驴Qu茅 es un objeto?
una representacion abstracta, con caracteristicas
驴Cu谩ndo es mejor usar objetos o arrays?
cuando necesito acceder a sus caracteristicas por medio de una clave, y no de un indice, ade mas cuando los quiero utilizar en funciones
驴Puedo mezclar arrays con objetos o incluso objetos con arrays?
si
2锔忊儯 Crea una funci贸n que pueda recibir cualquier array como par谩metro e imprima su primer elemento.*/
const array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
function firstElement(array){console.log(array[0])}
/3锔忊儯 Crea una funci贸n que pueda recibir cualquier array como par谩metro e imprima todos sus elementos uno por uno (no se vale imprimir el array completo)./
function listAll(array){for(i=0; i<array.length; i++){console.log(array[i])}}
/4锔忊儯 Crea una funci贸n que pueda recibir cualquier objeto como par谩metro e imprima todos sus elementos uno por uno (no se vale imprimir el objeto completo)./
function printObject(object){
var values= Object.values(object);
values.forEach((valor)=>console.log(valor));
}
function objetCreation(name, lastname,){this.name=name; this.lastname=lastname}
firstElement(array);
listAll(array);
var test = new objetCreation(鈥淩odolfo鈥,鈥淐arter鈥);
printObject(test)

Test de JavaScript 馃懆鈥嶐煉

  • Variables y operaciones

Responde las siguientes preguntas en la secci贸n de comentarios:
驴Qu茅 es una variable y para qu茅 sirve? -> Espacio de memoria para guardar informaci贸n
驴Cu谩l es la diferencia entre declarar e inicializar una variable? -> Declarar es especificar el tipo de variable (var, let, const) y darle un nombre, inicializar es lo anterior pero con la diferencia de que le agregamos un dato y su tipo.
驴Cu谩l es la diferencia entre sumar n煤meros y concatenar strings? -> Sumar en una operaci贸n aritm茅tica entre 2 o m谩s n煤meros y se obtiene un resultado num茅rico y concatenar strings es una operaci贸n que combina dos o m谩s cadenas de texto en una sola cadena.
驴Cu谩l operador me permite sumar o concatenar? -> El operador 鈥+鈥 se utiliza tanto para sumar n煤meros como para concatenar strings.

Determina el nombre y tipo de dato para almacenar en variables la siguiente informaci贸n:
Nombre -> nombre (string)
Apellido -> apellido (string)
Nombre de usuario en Platzi -> user_name (string)
Edad -> edad (number)
Correo electr贸nico -> email (string)
Mayor de edad -> esMayorDeEdad (boolean)
Dinero ahorrado -> dineroAhorrado (number)
Deudas -> deudas (number)

Traduce a c贸digo JavaScript las variables del ejemplo anterior y deja tu c贸digo en los comentarios.

const nombre = 'Pepo';
const apellido = 'De La Vega';
let user_name = 'pepovega';
let edad = 22;
let email = "[email protected]";
let adulto = true;
let ahorro = 300000000;
let deudas = 400000000;

Calcula e imprime las siguientes variables a partir de las variables del ejemplo anterior:

console.log(nombre + " " + apellido); //"Pepo De La Vega"
console.log(ahorro - deudas); //-100000000 (est谩 jodido Pepo 馃槙)
  • Funciones

Responde las siguientes preguntas en la secci贸n de comentarios:
驴Qu茅 es una funci贸n? -> Bloque de c贸digo creado para cumplir una tarea en especifico y ser reutilizado en diferentes partes del programa.
驴Cu谩ndo me sirve usar una funci贸n en mi c贸digo? -> Cuando en tu c贸digo existe una tarea o un conjunto de instrucciones que se repiten en m煤ltiples partes.
驴Cu谩l es la diferencia entre par谩metros y argumentos de una funci贸n? -> Los par谩metros son las variables que ponemos entre los parentesis de nuestra funci贸n al momento de su declaraci贸n y los argumentos son los valores que se pasan a la funci贸n cuando se la invoca, tambi茅n van entre los par茅ntesis de la misma.

Convierte el siguiente c贸digo en una funci贸n, pero, cambiando cuando sea necesario las variables constantes por par谩metros y argumentos en una funci贸n:

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 + ".");

Soluci贸n:

function datos(name, lastname, nickname){
   console.log(`Mi nombre es ${name} ${lastname}, pero prefiero que me digas ${nickname}.`);
}

datos(name,lastname,nickname); -> "Mi nombre es Juan David Castro Gallego, pero prefiero que me digas juandc."
  • Condicionales

Responde las siguientes preguntas en la secci贸n de comentarios:
驴Qu茅 es un condicional? -> Estructura que permite tomar decisiones con el cumplimiento o no de una condici贸n especificada.
驴Qu茅 tipos de condicionales existen en JavaScript y cu谩les son sus diferencias? if, else, else if y switch, la diferencia es que if eval煤a una condici贸n 煤nica, mientras que switch permite seleccionar una opci贸n entre varios opciones basadas en el valor de una variable.
驴Puedo combinar funciones y condicionales? Si, dentro de una funci贸n pueden aplicarse la cantidad de condicionales que se requiera. Y viceversa tambi茅n es posible.

Replica el comportamiento del siguiente c贸digo que usa la sentencia switch utilizando if, else y else if:

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;
}

Soluci贸n:

const tipoDeSuscripcion = "Basic";

if(tipoDeSuscripcion === "Free"){
	console.log("Solo puedes tomar los cursos gratis");
}else if(tipoDeSuscripcion === "Basic"){
	console.log("Solo puedes tomar los cursos gratis");
}else if(tipoDeSuscripcion === "Expert"){
	 console.log("Puedes tomar casi todos los cursos de Platzi durante un a帽o");
}else(tipoDeSuscripcion === "ExpertPlus"){
	 console.log("Puedes tomar casi todos los cursos de Platzi durante un a帽o");
}

Replica el comportamiento de tu condicional anterior con if, else y else if, pero ahora solo con if (sin else ni else if).

const inputSuscripcion = document.getElementById('inputSuscripcion').value;

const suscripciones = {
    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",
    expert_plus: "T煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi durante un a帽o"
}
if(inputSuscripcion !== ''){
    console.log(suscripciones[inputSuscripcion]);
}
  • Ciclos

Responde las siguientes preguntas en la secci贸n de comentarios:
驴Qu茅 es un ciclo? -> Estructura que nos permite repetir una determinada tarea mientras se cumpla una condici贸n especificada.
驴Qu茅 tipos de ciclos existen en JavaScript? -> for, while y do while
驴Qu茅 es un ciclo infinito y por qu茅 es un problema? -> Un ciclo que nunca termina de ejecutarse y contin煤a repitiendo el bloque de c贸digo de forma indefinida. Los posibles problemas que conlleva pueden ser consumo excesivo de recursos, crasheo del programa, perdida de datos, etc.
驴Puedo mezclar ciclos y condicionales? -> Si es posible, podemos tener un ciclo con una condicional dentro o una condicional con un ciclo dentro.

Replica el comportamiento de los siguientes ciclos for utilizando ciclos while:

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);
}

Soluci贸n:

let i = 0;
while(i < 5){
    console.log(`El valor de i es: ${i}`);
    i++;
}

let i = 10;
while(i >= 2){
    console.log(`El valor de i es: ${i}`);
    i--;
}

Escribe un c贸digo en JavaScript que le pregunte a los usuarios cu谩nto es 2 + 2. Si responden bien, mostramos un mensaje de felicitaciones, pero si responden mal, volvemos a empezar.

let resultado = prompt('驴C煤anto es 2 + 2?');
while(parseInt(resultado) !== 4){
    resultado = prompt('De vuelta, 驴C煤anto es 2 + 2?');
}
alert('隆Felicitaciones 2 + 2 = 4! 馃榾');
  • Listas

Responde las siguientes preguntas en la secci贸n de comentarios:
驴Qu茅 es un array? -> Colecci贸n de elementos que se almacenan en posiciones consecutivas y se accede a ellos mediante 铆ndices num茅ricos, arr[0] = primer elemento de array.
驴Qu茅 es un objeto? -> Entidad que contiene propiedades y m茅todos para representar informaci贸n estructurada o conceptos del mundo real.
驴Cu谩ndo es mejor usar objetos o arrays? Depende del contexto y los requisitos el programa, arrays para almacenar colecciones ordenadas de elementos del mismo tipo, objetos para informaci贸n estructurada con propiedades y m茅todos asociados.
驴Puedo mezclar arrays con objetos o incluso objetos con arrays? -> S铆, es posible mezclar arrays con objetos y viceversa.

Crea una funci贸n que pueda recibir cualquier array como par谩metro e imprima su primer elemento.

const meses = ['Enero', 'Febrero', 'Marzo', 'Abril'];
function imprimirPrimerElemento(arr){
    console.log(arr[0]);
}
imprimirPrimerElemento(meses);

Crea una funci贸n que pueda recibir cualquier array como par谩metro e imprima todos sus elementos uno por uno (no se vale imprimir el array completo).

const meses = ['Enero', 'Febrero', 'Marzo', 'Abril'];
function imprimirTodosElementos(arr){
    arr.forEach(elem => console.log(elem));
}
imprimirPrimerElemento(meses);

Crea una funci贸n que pueda recibir cualquier objeto como par谩metro e imprima todos sus elementos uno por uno (no se vale imprimir el objeto completo).

const auto = {
    marca: 'Ford',
    modelo: 'Eco Sport Freestyle',
    year: 2018,
    color: 'azul'
}
function imprimirObj(obj){

    Object.keys(obj).forEach(function(prop){
        console.log(prop + ": " + obj[prop]);
    });
}
imprimirObj(auto);

que es una variable? es un espacio que se guarda en memoria para utilizar ya sea en condicionales o funciones (dependiendo si es scope o global)

cual es la direfencia entre declarar una variable e inicializar una variable? let variable; y inicializar una variable es asignarle un valor

驴Cu谩l es la diferencia entre sumar n煤meros y concatenar strings?

en que sumar numero se utiliza definir un valor matematico segun lo requerido y concatenar strings es juntar texto ej: console.log(鈥淗ola " + " mundo鈥) // Hola Mundo

驴Cu谩l operador me permite sumar o concatenar?
+

Determina el nombre y tipo de dato para almacenar en variables la siguiente informaci贸n:

let infoPersonal = {
Nombre: "Carlos",
Apellido: "Mendoza",
NombreDeUsuario: "kaka",
Edad: 41,
Correo: "[email protected]",
MayorDeEdad: "Si",
DineroAhorrado: 10,
Deudas: 8
}

Calcula e imprime las siguientes variables a partir de las variables del ejemplo anterior:

console.log(`${infoPersonal.Nombre} ${infoPersonal.Apellido}`) // Carlos Mendoza
function dineroReal() {
  const a = infoPersonal.DineroAhorrado;
  const b = infoPersonal.Deudas;
  return b - a;
}

dineroReal()

驴Qu茅 es una funci贸n?

una funciones es un conjunto de instrucciones a realizar, ya sea una tarea como anidar una condicinal o calcular un valor para retornarlo

驴Cu谩ndo me sirve usar una funci贸n en mi c贸digo?

para realizar una tarea en base a las instrucciones que le entreguemos

驴Cu谩l es la diferencia entre par谩metros y argumentos de una funci贸n?

Los par谩metros son los nombres que aparecen en la definici贸n de una funci贸n. Por su parte, los argumentos son los valores que le pasamos (y que, por tanto, recibe) una funci贸n

Convierte el siguiente c贸digo en una funci贸n, pero, cambiando cuando sea necesario las variables constantes por par谩metros y argumentos en una funci贸n:

const name = "Juan David";
const lastname = "Castro Gallego";
const completeName = name + lastname;
const nickname = "juandc";

function presentation(name, lastName, nickName){
  return console.log(`Mi nombre completo es ${name} ${lastName}, pero prefiero que me digas ${nickName}.`);
}
presentation("Juan David", "Castro Gallego", "juandc");

驴Qu茅 es un condicional?
es donde se entra evaluar si algo es verdadero o falso y dependiendo de eso tomar una accion

驴Qu茅 tipos de condicionales existen en JavaScript y cu谩les son sus diferencias?

if y else: que es 鈥渟i x y e es igual entonces haz esto si no, haz esto otro鈥

switch: evalua casos siempre y cuando sean solamente para comparacion, se utiliza cuando no quieres anidar muchos if.

驴Puedo combinar funciones y condicionales?

si por ejmplo:

function comparacion(){
if( 1 === "1"){
return true}else{
return false}
}

comparacion() // false
  1. Responde las siguientes preguntas en la secci贸n de comentarios:

a. Una variable es la representaci贸n de un espacio en la memoria de un dispositivo

b. Declarar hace referencia a crear una variable, sin asignarle un valor, mientras que inicializar, hace referencia a asignarle un valor a una variable

c. Sumar numeros es una acci贸n que ocurre cuando se usa el operador 鈥+鈥, junto a dos datos de tipo n煤mero, concatenas es una acci贸n que ocurre cuando se usa el operador 鈥+鈥, junto a un dato de tipo n煤mero y un dato de tipo string, o con dos datos de tipo string.

  1. Determina el nombre y tipo de dato para almacenar en variables la siguiente informaci贸n:

Nombre = nombre (string)
Apellido = apellido (string)
Nombre de usuario en Platzi = platziUsername (string)
Edad = edad (number)
Correo electr贸nico = email (string)
Mayor de edad = mayorDeEdad (boolean)
Dinero ahorrado = dineroAhorrado (function)
Deudas = deudas (number)

  1. Traduce a c贸digo JavaScript las variables del ejemplo anterior y deja tu c贸digo en los comentarios.
var nombre = "Brahyam";
var apellido = "Luna"
var platziUsername = "twiick.com"
var edad = 21;
var email = "[email protected]";
var mayorDeEdad = true;
var dineroAhorrado = function(dineroGanado, gastos, deudas) {
	return (dineroGanado - gastos - deudas);
};
var deudas = 0;
  1. Calcula e imprime las siguientes variables a partir de las variables del ejemplo anterior:
var nombreCompleto = nombre + apellido;
var dineroReal = function(dineroAhorrado, Deudas) {
	return dineroAhorrado-Deudas;
};
  1. Responde las siguientes preguntas en la secci贸n de comentarios:

a. Una funcion es una tarea o un proceso que debe realizarse. Las funciones pueden tener parametros los cuales son requerimientos que deben proporcionarse para la realizaci贸n de la tarea

b. Una funcion debe usarse cuando hay procesos que se realizan en varias ocaciones y lo que se busca es no repetir c贸digo, tambien, para hacer un c贸digo m谩s limpio y entendible. En ocaciones sirve para apropiarse del lenguaje de programaci贸n.

  1. Convierte el siguiente c贸digo en una funci贸n, pero, cambiando cuando sea necesario las variables constantes por par谩metros y argumentos en una funci贸n
function x (name, lastname, nickname) {
	var completeName = name + lastname;
	return ("Mi nombre es " + completeName + ", pero prefiero que me digas " + nickname + ".");
}
  1. Responde las siguientes preguntas en la secci贸n de comentarios:

a. Es una concici贸n que se utiliza para validar cierta informaci贸n dentro del c贸digo.

b. Existen los if, que pueden contener else if y else, y tambien est谩n los switch. La diferencia entre uno y otro es la estuctura, pues los if se crean en estructura de cascada y los switch en estructura de casos.

c. Si, dentro de las funciones se pueden incluir condicionales, que al validarse, continuen el flujo del c贸dico hacia otras funciones.

  1. Replica el comportamiento del siguiente c贸digo que usa la sentencia switch utilizando if, else y else if:
const tipoDeSuscripcion = "Basic";

if(tipoDeSuscripcion = "Free") {
	console.log("Solo puedes tomar los cursos gratis");
} else 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{
	onsole.log("T煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi durante un a帽o");
}
  1. Responde las siguientes preguntas en la secci贸n de comentarios:

a. Un ciclo es una tarea que debe realizarse de forma repetitiva por un n煤mero especi铆fico de veces o por un numero indeterminado de veces hasta que se cumpla una concici贸n.

b. Existen los ciclos for y los while. En los for, se especifica de cierta manera las veces que quiere que se realice el ciclo, mientras que el el while, el ciclo se repite hasta que se deje de cumplir una concici贸n.

c. Un ciclo infinito es un ciclo que nunca termina, es un error porque puede detener el ciclo de un programa para siempre y puede gastar la memoria ram del dispositivo.

d. Si, se pueden ejecutar ciclos dependiendo de si la condicion de un condicional se cumple o no y dentro de un ciclo se puede validar por cada repetici贸n, si la condici贸n de un condicional se cumple o no.

  1. Replica el comportamiento de los siguientes ciclos for utilizando ciclos while:
i=0;
while (i < 5){
	console.log("El valor de i es: " + i);
	i++;
}
i=10;
while (i >= 2){
	console.log("El valor de i es: " + i);
	i--;
}
  1. Escribe un c贸digo en JavaScript que le pregunte a los usuarios cu谩nto es 2 + 2. Si responden bien, mostramos un mensaje de felicitaciones, pero si responden mal, volvemos a empezar.
var respuesta = "";
var correcto = false

while (correcto==false){
	respuesta = prompt("驴Cu谩nto es 2 + 2?")
	if(respuesta == "4"){
		console.log("Felicitaciones");
	correcto = true
	}
	else{
		console.log("Mal, volvamos a iniciar");
	}
}
  1. Responde las siguientes preguntas en la secci贸n de comentarios:

a. Array es un tipo de dato que permite gusradar diferentes datos (que pueden ser de diferentes tipos) en su interior.

b. Un objeto es un tipo de elemento el cual tiene propiedades y valores

c. Array se usa cuando hay una lista de elementos que no est谩n relacionados entre si, un objeto se usa cuando hay una lista de elementos los cuales se pueden relacionar a un elemento en especifico, es decir, una lista de frutas corresponde a un array, mientras que nombre, edad, identificacion y estudios se pueden relacionar a un objeto llamado persona.

d. Si, puede haber un arreglo de personas el cual tenga una lista de onjetos, correspondientes a diferentes personas, o un objeto llamado personas puede tener una propiedad llamada habilidades, en donde se usa un arreglo para listar las habilidades que tiene.

  1. Crea una funci贸n que pueda recibir cualquier array como par谩metro e imprima su primer elemento.
function imprimir(miArray){
	console.log(miArray[0]);
}
  1. Crea una funci贸n que pueda recibir cualquier array como par谩metro e imprima todos sus elementos uno por uno (no se vale imprimir el array completo).
function imprimir(miArray){
	for (var i = 0; i < miArray.length; i++){
		console.log(miArray[i]);
	}
}
  1. Crea una funci贸n que pueda recibir cualquier objeto como par谩metro e imprima todos sus elementos uno por uno (no se vale imprimir el objeto completo).
function imprimir(miObjeto){
	for (let propiedad in miObjeto){
		console.log(miObjeto[propiedad]);
	}
}
  1. Responde las siguientes preguntas en la secci贸n de comentarios:
    驴Qu茅 es una variable y para qu茅 sirve?
    Es un espacio en memoria que permite almacenar informacion de cualquier tipo dependiendo del dato que nosotros requiramos y que podemos alterar y utilizar para la situaci贸n que necesitemos
    驴Cu谩l es la diferencia entre declarar e inicializar una variable?
    Una variable declarada es aquella que tiene un tipo de variable y un nombre de variable asignados, mientras que inicializar una variable es una variable la cual tiene un valor asignado al momento de crearla.
    驴Cu谩l es la diferencia entre sumar n煤meros y concatenar strings?
    La suma de n煤meros nos dar谩 como respuesta un 煤nico valor num茅rico mientras que al concatenar strings, obtendremos un texto con varios valores de variables en el.
    驴Cu谩l operador me permite sumar o concatenar?
    El operador 鈥+鈥
  2. Determina el nombre y tipo de dato para almacenar en variables la siguiente informaci贸n:
    String Nombre
    String Apellido
    String Nombre de usuario en Platzi
    Number Edad
    String Correo electr贸nico
    Boolean Mayor de edad
    Number Dinero ahorrado
    Number Deudas
  3. Traduce a c贸digo JavaScript las variables del ejemplo anterior y deja tu c贸digo en los comentarios.
let nombre = "Julian";
let apellido = "Perez";
let nombreUsuario = "jperez";
let edad = 24;
let correo = "[email protected]";
let mayorEdad = true;
let dineroAhorrado = 200000;
let deudas = 0;
  1. Calcula e imprime las siguientes variables a partir de las variables del ejemplo anterior:
console.log("Mi nombre completo es: " +nombre+ " " +apellido);
console.log("Mi dinero real es: " + dineroAhorrado - deudas);

Funciones

  1. Responde las siguientes preguntas en la secci贸n de comentarios:
    驴Qu茅 es una funci贸n?
    Es un proceso que cumple unas tareas especificas el cual puede o no requerir de una variable de entrada para poder realizar el flujo programado.
    驴Cu谩ndo me sirve usar una funci贸n en mi c贸digo?
    Cuando se requiera realizar una tarea especifica en varias ocasiones y con ello ahorrar l铆neas de c贸digo.
    驴Cu谩l es la diferencia entre par谩metros y argumentos de una funci贸n?
    El parametro es un valor de un procedimiento el cual espera que se pase para poder realizar la funcion mientras que los argumentos representa el valor que se pasa a un parametro de procedimientos al poder ser llamado
  2. Convierte el siguiente c贸digo en una funci贸n, pero, cambiando cuando sea necesario las variables constantes por par谩metros y argumentos en una funci贸n:
function estudiante(name, lastname){
	const completeName = name + lastname;
	const nickname = "juandc";

	console.log("Mi nombre es " + completeName + ", pero 			prefiero que me digas " + nickname + ".");
}
const name = "Juan David";
const lastname = "Castro Gallego";
estudiante(name, lastname);

Condicionales

  1. Responde las siguientes preguntas en la secci贸n de comentarios:
    驴Qu茅 es un condicional?
    Son aquellas que permiten igualar una variable o m谩s variables para verificar si cumple o no con una condici贸n dada, para que en caso de que sea verdadero realizar una acci贸n y en caso de que sea falso, realizar otra.
    驴Qu茅 tipos de condicionales existen en JavaScript y cu谩les son sus diferencias?
    If: Condicional que verifica si la condici贸n dada es verdadera, en caso de ser falsa, omitir铆a el procedimiento.
    If-else: Verifica la condici贸n para ver si es verdadera o falsa, dependiendo de la respuesta realizara un procedimiento distinto.
    Switch: Permite colocar m煤ltiples condicionales y solo correr谩 la que sea verdadera, en caso de que ninguna la sea, se ira a la de default
    驴Puedo combinar funciones y condicionales?
    Si, las funciones pueden tener cualquier tipo de codigo, incluso las condicionales
  2. Replica el comportamiento del siguiente c贸digo que usa la sentencia switch utilizando if, else y else if:
const tipoDeSuscripcion = "Basic";
if(tipoDeSuscripcion  == "Free"){
	console.log("Solo puedes tomar los cursos gratis");
}
else 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("Este tipo de suscripcion no es valida");
}
  1. Replica el comportamiento de tu condicional anterior con if, else y else if, pero ahora solo con if (sin else ni else if).
const tipoDeSuscripcion = "Basic";
if(tipoDeSuscripcion  == "Free"){
	console.log("Solo puedes tomar los cursos gratis");
return;
}
if(tipoDeSuscripcion  == "Basic"){
	console.log("Puedes tomar casi todos los cursos de Platzi durante un mes");
return;
}
if(tipoDeSuscripcion   == "Expert"){
	console.log("Puedes tomar casi todos los cursos de Platzi durante un a帽o");
return;
}
if(tipoDeSuscripcion   == "ExpertPlus"){
	console.log("T煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi durante un a帽o");
return;
}
console.log("Este tipo de suscripcion no es valida");

Ciclos

  1. Responde las siguientes preguntas en la secci贸n de comentarios:
    驴Qu茅 es un ciclo?
    Es aquel que nos permite realizar una misma acci贸n en bucle mientras cumpla una condici贸n cada vez que vaya realizando el ciclo.
    驴Qu茅 tipos de ciclos existen en JavaScript?
    Ciclo for: Este ciclo nos permite realizar un bucle de un proceso inicializando una variable i, la cual podremos utilizar para decirle al ciclo cuando debe de terminar de realizarlo
    Ciclo While: Permite realizar un bucle mientras se cumpla la condici贸n dada y se detendra cuando la condici贸n sea falsa.
    Ciclo do while: Ciclo que al entrar siempre correra la primera vez pero para que vuelva a repetir el bucle debe cumplir una condici贸n, y solo saldr谩 hasta que la condici贸n sea falsa
    驴Qu茅 es un ciclo infinito y por qu茅 es un problema?
    Un ciclo infinito es aquel ciclo que sin importar cuantas veces corra, este nunca terminara, haciendo que se consuma mucho procesamiento en el computador de forma interminable a menos que se cierre el programa que este corriendo ese ciclo
    驴Puedo mezclar ciclos y condicionales?
    Si, al crear un ciclo es posible incluir condicionales dentro de el si se desea que se realice una u otra funci贸n dentro del propio ciclo.
  2. Replica el comportamiento de los siguientes ciclos for utilizando ciclos while:
let i = 0;
while(i < 5){
	console.log("El valor de i es: " + i);
	i++;
}

let i = 10;
while(i >= 2){
	console.log("El valor de i es: " + i);
	i--;
}
  1. Escribe un c贸digo en JavaScript que le pregunte a los usuarios cu谩nto es 2 + 2. Si responden bien, mostramos un mensaje de felicitaciones, pero si responden mal, volvemos a empezar.
let valor = prompt("驴Cu谩nto es 2 + 2?");
if(valor === 4){
	alert("Felicitaciones!!")
}
else{
	alert("Respuesta incorrecta");
	return;
}

Listas

  1. Responde las siguientes preguntas en la secci贸n de comentarios:
    驴Qu茅 es un array?
    Es una variable que puede almacenar una lista de valores que pueden ser strings o numeros
    驴Qu茅 es un objeto?
    Es una coleccion de elementos que contiene unas caracter铆sticas y atributos
    驴Cu谩ndo es mejor usar objetos o arrays?
    Un array es mejor utilizarlo cuando se requiere guardar datos del mismo tipo para luego ser utilizada mientras que los objetos es mejor utilizarlos cuando se requiere definir atributos a varios elementos
    驴Puedo mezclar arrays con objetos o incluso objetos con arrays?
    Si, se puede almacenar arrays en objetos y viceversa.
  2. Crea una funci贸n que pueda recibir cualquier array como par谩metro e imprima su primer elemento.
function comida(comidas){
	console.log(comidas[0]);
}
var comidas = ["Tomate", 2, "Lechuga", 4.3];
comida(comidas);
  1. Crea una funci贸n que pueda recibir cualquier array como par谩metro e imprima todos sus elementos uno por uno (no se vale imprimir el array completo).
function comida(comidas){
	for(let i = 0; i < comidas.length; i++){
		console.log(comidas[i]);
	}
	
}
var comidas = ["Tomate", 2, "Lechuga", 4.3];
comida(comidas);
  1. Crea una funci贸n que pueda recibir cualquier objeto como par谩metro e imprima todos sus elementos uno por uno (no se vale imprimir el objeto completo).
var miAuto = {
    marca: "Toyota",
    modelo: "Corolla",
    anno: 2020,
    detalleDelAuto: function(){
        console.log(`Auto: ${this.modelo}`);
	console.log(`A帽o: ${this.anno}`);
	console.log(`Marca: ${this.marca}`):
    }
};
miAuto.detalleDelAuto();

Test de conocimientos

Por: Fernando Callisaya


1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:

  • 驴Qu茅 es una variable y para qu茅 sirve?

Almacena y asigna un valor y un espacio de memoria a algo en concreto

  • 驴Cu谩l es la diferencia entre declarar e inicializar una variable?

Declarar una variable es asignar un valor a la variable. ejemplo: a = 鈥渉ola鈥

Inicializar una variable es definir que tipo de valores permitira esta variable

char a

  • 驴Cu谩l es la diferencia entre sumar n煤meros y concatenar strings?

La diferencia de concatenar strings es para combinar mensajes o distintos tipos de textos en cambio sumar n煤meros solamente suma n煤meros

  • 驴Cu谩l operador me permite sumar o concatenar?

El simbolo mas (+)

2锔忊儯 Determina el nombre y tipo de dato para almacenar en variables la siguiente informaci贸n:

  • Nombre
  • Apellido
  • Nombre de usuario en Platzi
  • Edad
  • Correo electr贸nico
  • Mayor de edad
  • Dinero ahorrado
  • Deudas

3锔忊儯 Traduce a c贸digo JavaScript las variables del ejemplo anterior y deja tu c贸digo en los comentarios.

name = "Fernando"
lastname = "callisaya" 
username = "lfernand_cs"
age = 23
email = [email protected]
age_rectrict = false
ahorrado = 50 
deudas = 1500

4锔忊儯 Calcula e imprime las siguientes variables a partir de las variables del ejemplo anterior:

  • Nombre completo (nombre y apellido)
  • Dinero real (dinero ahorrado menos deudas)
const datos = {
  name : "Fernando",
lastname : "callisaya", 
username: "lfernand_cs",
age : 23,
email: "[email protected]",
age_rectrict: false,
ahorrado: 5000 ,
deudas: 1500
}

datos.name +" "+ datos.lastname
datos.ahorrado-datos.deudas

Funciones

1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:

  • 驴Qu茅 es una funci贸n?

es un conjunto de instrucciones que ayudan a simplificar y ver de mejor forma el c贸digo.

  • 驴Cu谩ndo me sirve usar una funci贸n en mi c贸digo?

cuando tenemos una tarea que se repite mucho como sumar 2 n煤meros

  • 驴Cu谩l es la diferencia entre par谩metros y argumentos de una funci贸n?

A lo que se los par谩metros son como las reglas que vamos a enviar a la funci贸n y los argumentos son los valores que enviamos

2锔忊儯 Convierte el siguiente c贸digo en una funci贸n, pero, cambiando cuando sea necesario las variables constantes por par谩metros y argumentos en una funci贸n:

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 + ".");

//my solution

function platzi(name, lastname, nickname){
 return console.log("Mi nombre es " + name +" "+lastname + ", pero prefiero que me digas " + nickname  );
}
const name = "Juan David";
const lastname = "Castro Gallego";
const nickname = "juandc";
platzi(name,lastname, nickname)

Condicionales

1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:

  • 驴Qu茅 es un condicional?
  • 驴Qu茅 tipos de condicionales existen en JavaScript y cu谩les son sus diferencias?
  • 驴Puedo combinar funciones y condicionales?

2锔忊儯 Replica el comportamiento del siguiente c贸digo que usa la sentencia switch utilizando if, else y else if:

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;
}

Mi soluci贸n

suscripcion = "expert"

if(suscripcion == "free"){
  "tienes acceso a los cursos gratis"
}else{
  if(suscripcion == "basic"){
    "tienes acceso a cursos limitados"
  }else{
    if(suscripcion == "expert"){
      "tienes acceso a todos los cursos"
    }
  }

Ciclos

1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:

  • 驴Qu茅 es un ciclo?

En programaci贸n un ciclo ayuda a realizar tareas repetitivas e iterativas

  • 驴Qu茅 tipos de ciclos existen en JavaScript?

for y while

  • 驴Qu茅 es un ciclo infinito y por qu茅 es un problema?

es cuando el ciclo nunca puede cerrarse y por ende va consumiendo recursos f铆sicos de la computadora

  • 驴Puedo mezclar ciclos y condicionales?

Si de hecho la misma estructura tiene condicionales

2锔忊儯 Replica el comportamiento de los siguientes ciclos for utilizando ciclos while:


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);
}

MI SOLUCION

for (let i = 0; i < 5; i++) {
    console.log("El valor de i es: " + i);
}
//------------------------------------
i = 0
while (i < 5){
  console.log("El valor de i es: " + i);
  i++
}

for (let i = 10; i >= 2; i--) {
    console.log("El valor de i es: " + i);
}
while (i>=2){
  console.log("El valor de i es: " + i);
  i--
}

Listas

1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:

  • 驴Qu茅 es un array?
  • 驴Qu茅 es un objeto?
  • 驴Cu谩ndo es mejor usar objetos o arrays?
  • 驴Puedo mezclar arrays con objetos o incluso objetos con arrays?

2锔忊儯 Crea una funci贸n que pueda recibir cualquier array como par谩metro e imprima su primer elemento.

3锔忊儯 Crea una funci贸n que pueda recibir cualquier array como par谩metro e imprima todos sus elementos uno por uno (no se vale imprimir el array completo).

4锔忊儯 Crea una funci贸n que pueda recibir cualquier objeto como par谩metro e imprima todos sus elementos uno por uno (no se vale imprimir el objeto completo).

1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:

  • 驴Qu茅 es una variable y para qu茅 sirve?
    Una variable es un contenedor que se utiliza para almacenar y representar un valor en la memoria de un programa. Sirve para guardar y manipular datos durante la ejecuci贸n de un programa.

  • 驴Cu谩l es la diferencia entre declarar e inicializar una variable?
    Declarar una variable es especificar su existencia y nombre en el c贸digo. Inicializar una variable es asignarle un valor por primera vez.

  • 驴Cu谩l es la diferencia entre sumar n煤meros y concatenar strings?
    Sumar n煤meros es una operaci贸n aritm茅tica que realiza la suma matem谩tica de dos valores num茅ricos. Concatenar strings es la operaci贸n de unir dos cadenas de texto en una sola.

  • 驴Cu谩l operador me permite sumar o concatenar?
    El operador + se utiliza tanto para sumar n煤meros como para concatenar strings.

2锔忊儯 Determina el nombre y tipo de dato para almacenar en variables la siguiente informaci贸n:

  • Nombre: nombre (string)
  • Apellido: apellido (string)
  • Nombre de usuario en Platzi: nombreUsuarioPlatzi (string)
  • Edad: edad (number)
  • Correo electr贸nico: correoElectronico (string)
  • Mayor de edad: esMayorDeEdad (boolean)
  • Dinero ahorrado: dineroAhorrado (number)
  • Deudas: deudas (number)

3锔忊儯 Traduce a c贸digo JavaScript las variables del ejemplo anterior y deja tu c贸digo en los comentarios.

let nombre = "Santiago";
let apellido = "L贸pez Alarc贸n";
let nombreUsuarioPlatzi = "santiagolopeza30";
let edad = 29;
let correoElectronico = "[email protected]";
let esMayorDeEdad = true;
let dineroAhorrado = 5000;
let deudas = 2000;

4锔忊儯 Calcula e imprime las siguientes variables a partir de las variables del ejemplo anterior:

  • Nombre completo (nombre y apellido)
  • Dinero real (dinero ahorrado menos deudas)
let nombreCompleto = nombre + " " + apellido;
let dineroReal = dineroAhorrado - deudas;

console.log("Nombre completo: " + nombreCompleto);
console.log("Dinero real: " + dineroReal);

Funciones
1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:

  • 驴Qu茅 es una funci贸n?
    Una funci贸n es un bloque de c贸digo reutilizable que se puede llamar para ejecutar una tarea espec铆fica. Toma cero o m谩s argumentos como entrada, realiza ciertas operaciones y puede devolver un valor como resultado.

  • 驴Cu谩ndo me sirve usar una funci贸n en mi c贸digo?
    Las funciones son 煤tiles cuando necesitas realizar una tarea repetitiva en diferentes partes de tu c贸digo. Al encapsular ese c贸digo en una funci贸n, puedes reutilizarlo f谩cilmente en m煤ltiples lugares y mejorar la legibilidad y mantenibilidad del c贸digo.

  • 驴Cu谩l es la diferencia entre par谩metros y argumentos de una funci贸n?
    Los par谩metros son variables declaradas en la definici贸n de una funci贸n y representan los valores que se esperan recibir cuando la funci贸n es llamada. Los argumentos son los valores reales que se pasan a una funci贸n cuando se la llama.

2锔忊儯 Convierte el siguiente c贸digo en una funci贸n, pero cambiando, cuando sea necesario, las variables constantes por par谩metros y argumentos en una funci贸n:

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 + ".");


//Mi soluci贸n
function greetPerson(name, lastname, nickname) {
  const completeName = name + lastname;
  console.log("Mi nombre es " + completeName + ", pero prefiero que me digas " + nickname + ".");
}

greetPerson("Juan David", "Castro Gallego", "juandc");

Condicionales
1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:

  • 驴Qu茅 es un condicional?
    Un condicional es una estructura de control que permite tomar decisiones en funci贸n de una condici贸n evaluada. Permite ejecutar diferentes bloques de c贸digo dependiendo si una expresi贸n es verdadera o falsa.

  • 驴Qu茅 tipos de condicionales existen en JavaScript y cu谩les son sus diferencias?
    En JavaScript, existen tres tipos de condicionales:

    • if: Permite ejecutar un bloque de c贸digo si la condici贸n especificada es verdadera. Si la condici贸n es falsa, se omite el bloque de c贸digo.
    • else if: Se utiliza despu茅s de un if o de otro else if para evaluar una nueva condici贸n si las anteriores son falsas.
    • else: Se utiliza despu茅s de un if o de un else if y se ejecuta si todas las condiciones anteriores son falsas.
  • 驴Puedo combinar funciones y condicionales?
    S铆, se pueden combinar funciones y condicionales. Puedes llamar a una funci贸n dentro de un bloque de c贸digo condicional para ejecutarla cuando se cumpla cierta condici贸n.

2锔忊儯 Replica el comportamiento del siguiente c贸digo que usa la sentencia switch utilizando if, else y else if:

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;
}

//mi Soluci贸n
const tipoDeSuscripcion = "Basic";

if (tipoDeSuscripcion === "Free") {
  console.log("Solo puedes tomar los cursos gratis");
} else 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");
}

3锔忊儯 Replica el comportamiento de tu condicional anterior con if, else y else if, pero ahora solo con if (sin else ni else if).

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");
}

Ciclos
1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:

  • 驴Qu茅 es un ciclo?
    Un ciclo, tambi茅n conocido como bucle, es una estructura de control que permite repetir un bloque de c贸digo varias veces hasta que se cumpla una condici贸n de salida.

  • 驴Qu茅 tipos de ciclos existen en JavaScript?
    En JavaScript, existen varios tipos de ciclos:

    • for: Permite ejecutar un bloque de c贸digo un n煤mero espec铆fico de veces.
    • while: Ejecuta un bloque de c贸digo mientras una condici贸n sea verdadera.
    • do...while: Ejecuta un bloque de c贸digo al menos una vez y luego repite la ejecuci贸n mientras una condici贸n sea verdadera.
  • 驴Qu茅 es un ciclo infinito y por qu茅 es un problema?
    Un ciclo infinito es un bucle que se repite continuamente sin cumplir una condici贸n de salida. Es un problema porque el programa queda atrapado en un bucle sin fin, lo que puede llevar a un consumo excesivo de recursos y bloquear la ejecuci贸n del programa.

  • 驴Puedo mezclar ciclos y condicionales?
    S铆, se pueden combinar ciclos y condicionales. Puedes utilizar estructuras condicionales dentro de un ciclo para controlar cu谩ndo se debe salir del ciclo o realizar ciertas acciones seg煤n una condici贸n.

2锔忊儯 Replica el comportamiento de los siguientes ciclos for utilizando ciclos while:

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);
}
//mi Soluci贸n
let i = 0;

while (i < 5) {
  console.log("El valor de i es: " + i);
  i++;
}

let i = 10;

while (i >= 2) {
  console.log("El valor de i es: " + i);
  i--;
}

3锔忊儯 Escribe un c贸digo en JavaScript que le pregunte a los usuarios cu谩nto es 2 + 2. Si responden bien, mostramos un mensaje de felicitaciones, pero si responden mal, volvemos a empezar.

let respuesta = "";

while (respuesta !== "4") {
  respuesta = prompt("驴Cu谩nto es 2 + 2?");
}

console.log("隆Felicitaciones! Respondiste correctamente.");

Listas
1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:

  • 驴Qu茅 es un array?
    Un array es una estructura de datos en JavaScript que se utiliza para almacenar y organizar m煤ltiples valores en una sola variable. Los elementos en un array se almacenan en posiciones numeradas llamadas 铆ndices y se acceden mediante estos 铆ndices.

  • 驴Qu茅 es un objeto?
    Un objeto es una entidad independiente que puede tener propiedades y m茅todos. En JavaScript, un objeto es una colecci贸n de pares clave-valor, donde las claves son cadenas (o s铆mbolos) y los valores pueden ser de cualquier tipo de dato, como n煤meros, cadenas, booleanos, arrays u otros objetos. Los objetos en JavaScript se utilizan para representar entidades complejas con propiedades y comportamientos espec铆ficos.

  • 驴Cu谩ndo es mejor usar objetos o arrays?
    La elecci贸n entre usar objetos o arrays depende del contexto y de los requisitos espec铆ficos del programa. Aqu铆 hay algunas consideraciones generales:

    • Arrays: Se utilizan cuando necesitas una colecci贸n ordenada de elementos del mismo tipo o similar. Los arrays son 煤tiles cuando quieres acceder a elementos por 铆ndice y realizar operaciones como recorridos, b煤squeda o filtrado de elementos. Por ejemplo, una lista de nombres o una serie temporal de datos num茅ricos se pueden representar como arrays.

    • Objetos: Se utilizan cuando necesitas almacenar y organizar datos m谩s complejos con propiedades espec铆ficas y comportamientos asociados. Los objetos son 煤tiles cuando deseas acceder a los datos mediante claves descriptivas en lugar de 铆ndices num茅ricos. Por ejemplo, para representar una persona con propiedades como nombre, edad y direcci贸n, un objeto ser铆a una elecci贸n adecuada.

  • 驴Puedo mezclar arrays con objetos o incluso objetos con arrays?
    S铆, en JavaScript puedes mezclar arrays con objetos e incluso objetos con arrays. Los arrays pueden contener objetos como elementos, lo que permite almacenar colecciones de objetos relacionados. Del mismo modo, los objetos pueden contener arrays como propiedades, lo que permite almacenar conjuntos de valores relacionados dentro de un objeto. Esta flexibilidad permite estructurar y organizar datos de manera m谩s compleja y adaptable seg煤n las necesidades del programa.
    2锔忊儯 Crea una funci贸n que pueda recibir cualquier array como par谩metro e imprima su primer elemento.

function imprimirPrimerElemento(array) {
  if (array.length > 0) {
    console.log("El primer elemento del array es: " + array[0]);
  } else {
    console.log("El array est谩 vac铆o.");
  }
}

// Ejemplo de uso
const miArray = [1, 2, 3, 4, 5];
imprimirPrimerElemento(miArray);

3锔忊儯 Crea una funci贸n que pueda recibir cualquier array como par谩metro e imprima todos sus elementos uno por uno (no se vale imprimir el array completo).

function imprimirElementos(array) {
  for (let i = 0; i < array.length; i++) {
    console.log("Elemento " + (i + 1) + ": " + array[i]);
  }
}

// Ejemplo de uso
const miArray = ["Hola", "mundo", "!"];
imprimirElementos(miArray);

4锔忊儯 Crea una funci贸n que pueda recibir cualquier objeto como par谩metro e imprima todos sus elementos uno por uno (no se vale imprimir el objeto completo).

function imprimirElementosObjeto(objeto) {
  for (let clave in objeto) {
    console.log(clave + ": " + objeto[clave]);
  }
}

// Ejemplo de uso
const miObjeto = { nombre: "Juan", edad: 25, profesion: "Programador" };
imprimirElementosObjeto(miObjeto);

1.- Responde las siguientes preguntas en la secci贸n de comentarios:

驴Qu茅 es una variable y para qu茅 sirve?
una variable es un espacio reservado en memoria que sirve para guardar un valor

驴Cu谩l es la diferencia entre declarar e inicializar una variable?
Una variable se declara para indicarle al programa a partir de qu茅 lugar empieza a existir, qu茅 nombre tendr谩 y qu茅 tipo de datos almacenar谩. La asignaci贸n de un valor inicial se llama inicializaci贸n

驴Cu谩l es la diferencia entre sumar n煤meros y concatenar strings?
Sumar n煤meros es una operaci贸n matem谩tica y concatenar es unir strings uno tras otro.

驴Cu谩l operador me permite sumar o concatenar?
el operador +

2.- Determina el nombre y tipo de dato para almacenar en variables la siguiente informaci贸n:

Nombre
Apellido
Nombre de usuario en Platzi
Edad
Correo electr贸nico
Mayor de edad
Dinero ahorrado
Deudas

nombre: string
apellido: string
nombre_usr_platzi: string
edad: int
correoElectrnico: string
mayorEdad: boolean
dineroAhorrado: float
deudas: float

3.- Traduce a c贸digo JavaScript las variables del ejemplo anterior y deja tu c贸digo en los comentarios.

var nombre 				= "Angel";
var apellido				= "Bautista";
var nombre_usr_platzi		= "AngelB";
var edad					= 46
var correoElectronico		= "[email protected]"
var mayorEdad			= true
var dineroAhorrado			= 2200.15;
var deudas				= 50000.01;

4.- Calcula e imprime las siguientes variables a partir de las variables del ejemplo anterior:

Nombre completo (nombre y apellido)
console.log("nombre completo:", nombre +" "+ apellido);

Dinero real (dinero ahorrado menos deudas)
var total_dinero;
console.log("dinero ahorrado", total_dinero=dineroAhorrado-deudas);

Funciones

1锔.- Responde las siguientes preguntas en la secci贸n de comentarios:
驴Qu茅 es una funci贸n?
Una funci贸n es un bloque de c贸digo que realiza alguna operaci贸n.
Una funci贸n puede definir opcionalmente par谩metros de entrada que permiten a los llamadores pasar argumentos a la funci贸n

驴Cu谩ndo me sirve usar una funci贸n en mi c贸digo?
para escribir un peque帽o trozo de c贸digo que se puede llamar en diferentes partes del programa, en lugar de repetir el mismo c贸digo en varios lugares del programa, ganando legibilidad y simplificaci贸n de c贸digo

驴Cu谩l es la diferencia entre par谩metros y argumentos de una funci贸n?
Los par谩metros son los nombres que aparecen en la definici贸n de una funci贸n. Por su parte, los argumentos son los valores que le pasamos (y que, por tanto, recibe) una funci贸n.

2.- Convierte el siguiente c贸digo en una funci贸n, pero, cambiando cuando sea necesario las variables constantes por par谩metros y argumentos en una funci贸n:

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 + ".");

var name = "Juan David";
var lastname = "Castro Gallego";
var nickname = "juandc";

function alias(nombre, apellido, apodo){
	var nombreCompleto = nombre+" "+apellido;
	console.log("Mi nombre es " + nombreCompleto + ", pero prefiero que me digas " + apodo + ".");
}

alias(name, lastname,nickname);

condicionales

1.- son estructuras de control que permiten elegir entre una acci贸n u otra.

if then else, operador ternario y swicht

2.- Replica el comportamiento del siguiente c贸digo que usa la sentencia switch utilizando if, else y else if:

const tipoDeSuscripcion = "Basic";
if (tipoDeSuscripcion == "Free"){
	console.log("Solo puedes tomar los cursos gratis");
}else 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("Deber铆as inscribirte a Platzi");
}

3.- Replica el comportamiento de tu condicional anterior con if, else y else if, pero ahora solo con
if (sin else ni else if).

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");
}

Ciclos

1.- Responde las siguientes preguntas en la secci贸n de comentarios:
驴Qu茅 es un ciclo?
Un ciclo es una estructura de repetici贸n que sirve para ejecutar un bloque de c贸digo un n煤mero determinado de veces

驴Qu茅 tipos de ciclos existen en JavaScript?
Existen el ciclo for, for of y for in, el ciclo while

驴Qu茅 es un ciclo infinito y por qu茅 es un problema?
Ciclo infinito es el que se repite indefinidamente debido a que su condici贸n nunca se cumple.

驴Puedo mezclar ciclos y condicionales?
Si

2.- Replica el comportamiento de los siguientes ciclos for utilizando ciclos while:

for (let i = 0; i < 5; i++) {
	console.log("El valor de i es: " + i);
}

let i=0;
while( i < 5 ){
	console.log("El valor de i es: " + i);
	i=i +1;
}

for (let i = 10; i >= 2; i--) {
	console.log("El valor de i es: " + i);
}

let i=10;
while( i >= 2 ){
	console.log("El valor de i es: " + i);
	i=i -1;
}

3.-Escribe un c贸digo en JavaScript que le pregunte a los usuarios cu谩nto es 2 + 2.
Si responden bien, mostramos un mensaje de felicitaciones, pero si responden mal, volvemos a empezar.

let resultado;
do{
resultado = window.prompt(鈥渃uanto es 2 + 2?鈥);
}
while(resultado != 4);
console.log(鈥淔elicidades!鈥);

Listas

1.- Responde las siguientes preguntas en la secci贸n de comentarios:
驴Qu茅 es un array?
es una colecci贸n o agrupaci贸n de elementos en una misma variable, cada uno de ellos ubicado con referencia a la posici贸n que ocupa dentro del mismo. Tanto la longitud como el tipo de los elementos de un array son variables

驴Qu茅 es un objeto?
un objeto es un entidad independiente con propiedades y tipos. Comp谩ralo con una taza, por ejemplo. Una taza es un objeto con propiedades. Una taza tiene un color, un dise帽o, un peso, un material del que est谩 hecha, etc

驴Cu谩ndo es mejor usar objetos o arrays?
Los arrays se usan para series que poseen valores simples, mientras que los objetos son utilizadas para las series en que hay distintos objetos y propiedades con diferentes valores.

驴Puedo mezclar arrays con objetos o incluso objetos con arrays?
Si

2.- Crea una funci贸n que pueda recibir cualquier array como par谩metro e imprima su primer elemento.

var arreglox=[];
function miArreglo(arreglox){
var arreglo = arreglox.shift();
console.log(arreglo);
}
3.- Crea una funci贸n que pueda recibir cualquier array como par谩metro e imprima todos sus elementos uno por uno (no se vale imprimir el array completo).

function miArreglo2(arreglox){
arreglox.forEach(function(arreglo) {
console.log(arreglo);
});
}

4.- Crea una funci贸n que pueda recibir cualquier objeto como par谩metro e imprima todos sus elementos uno por uno (no se vale imprimir el objeto completo).

var articulos = [
{nombre:鈥淏ici鈥, costo:3000},
{nombre:鈥淭v鈥, costo:2500},
{nombre:鈥淟Ibro鈥, costo:320},
{nombre:鈥淐elular鈥, costo:10000},
{nombre:鈥淟aptop鈥, costo:20000},
{nombre:鈥淭eclado鈥, costo:500},
{nombre:鈥淎udifonos鈥, costo:1700},
];

articulos.forEach(function(articulo){
console.log(articulo.nombre);
})

驴Qu茅 es una variable y para qu茅 sirve?
Es un contenedor que se utiliza para almacenar y manipular valores

驴Cu谩l es la diferencia entre declarar e inicializar una variable?
Declarar una variable es el acto de crear una variable especificando su nombre, pero sin asignarle un valor en ese momento.

Inicializar una variable es el proceso de asignar un valor inicial a una variable previamente declarada.

驴Cu谩l es la diferencia entre sumar n煤meros y concatenar strings?
Cuando sumas n煤meros, se realiza una operaci贸n matem谩tica en la que los valores num茅ricos se suman aritm茅ticamente. El operador utilizado para sumar en JavaScript es el signo 鈥+鈥.

Cuando concatenas strings, est谩s uniendo o combinando dos o m谩s cadenas de texto en una sola cadena. La concatenaci贸n se realiza utilizando el operador 鈥+鈥 en el contexto de strings.

驴Cu谩l operador me permite sumar o concatenar?
El operador 鈥+鈥 se utiliza tanto para sumar n煤meros como para concatenar strings en JavaScript.

2.- Determinar el nombre y tipo de dato para almacenar en variables:
var nombre (string)
var apellido (string)
var usuarioPlatzi (string)
var edad (n煤mero)
var correoElectronico (string)
var mayoEdad (Booleano)
var dineroAhorrado (n煤mero)
var deudas (n煤mero)

3.- Traducrir a c贸digo javaScript los ejemplos anteriores y dejar el codigo:

// Declarac铆on de variables

var nombre
var apellido
var usuarioPlatzi
var edad
var correoElectronico
var mayorEdad
var dineroAhorrado
var deudas

4.- Calular e imprimir variables a partir del ejemplo anterior:

// Calculo de nombre completo
var nombre
var apellido
console.log(`Nombre Completo ${nombre} ${apellido}`)
// Calculo de dinero real

var ahorro = 700
var deudas = 350
var totalAhorrado = ahorro - deudas
console.log(totalAhorrado)

FUNCIONES
驴Que es una funcion?
Es un bloque de c贸digo reutilizable que realiza una tarea o calcula un resultado espec铆fico. Se utiliza para agrupar un conjunto de instrucciones relacionadas y darles un nombre, lo cual permite ejecutar ese bloque de c贸digo en cualquier parte del programa simplemente llamando a esa funci贸n.

驴Cuando me sirve una funci贸n en mi codigo?
Reutilizaci贸n de c贸digo: Si tienes una determinada l贸gica o conjunto de instrucciones que se repite en diferentes partes de tu programa, puedes encapsular ese c贸digo en una funci贸n. Esto te permite reutilizar esa funci贸n en m煤ltiples lugares, evitando la duplicaci贸n de c贸digo y facilitando el mantenimiento.

Modularidad y legibilidad: Las funciones ayudan a dividir el c贸digo en m贸dulos m谩s peque帽os y manejables. Cada funci贸n se enfoca en realizar una tarea espec铆fica, lo que facilita la comprensi贸n del c贸digo y su mantenimiento. Adem谩s, al dar nombres descriptivos a las funciones, el c贸digo se vuelve m谩s legible y autodescriptivo.

Abstracci贸n: Las funciones te permiten abstraer detalles de implementaci贸n y centrarte en la funcionalidad en s铆 misma. Puedes crear funciones que realicen tareas complejas, pero al utilizarlas en otros lugares del c贸digo, solo necesitas conocer qu茅 hace la funci贸n y no c贸mo se implementa internamente.

Organizaci贸n y estructura: Las funciones te ayudan a organizar tu c贸digo de manera estructurada y coherente. Puedes agrupar las funciones relacionadas en un mismo lugar, lo que facilita la comprensi贸n y el mantenimiento del programa.

Testabilidad: Al utilizar funciones, puedes escribir pruebas unitarias m谩s f谩cilmente. Puedes probar cada funci贸n individualmente y verificar si produce los resultados esperados, lo que ayuda a garantizar la calidad y la correcci贸n del c贸digo.

Promover la colaboraci贸n: El uso de funciones bien definidas facilita el trabajo en equipo. Cada miembro del equipo puede trabajar en diferentes funciones y luego combinarlas para construir una aplicaci贸n completa.

Variables y operaciones

驴Qu茅 es una variable y para qu茅 sirve?
Las variables sirven para almacenar informaci贸n que luego podemos utilizar.

驴Cu谩l es la diferencia entre declarar e inicializar una variable?
Al declarar una variable, se est谩 creando la variable sin ninguna informaci贸n adentro, mientras que al inicializarla se le asigna informaci贸n a la variable.

驴Cu谩l es la diferencia entre sumar n煤meros y concatenar strings?
Cuando se concatenan strings, se unen las cadenas de texto, mientras que al sumar los n煤meros se realiza una operaci贸n matem谩tica para obtener un resultado num茅rico.

驴Cu谩l operador me permite sumar o concatenar?
El operador que se utiliza tanto para sumar n煤meros como para concatenar strings es el operador de suma +



// Variables y operaciones

let nombre = "Lucia";
let apellido = "Nishida";
let username = "Lucia_Nishimiya";
let edad = 19;
let email = "[email protected]";
let mayorDeEdad = true;
let dineroAhorrado = 3000;
let deudas = 453;

const nombreCompleto = `${nombre} ${apellido}`
const dineroReal = dineroAhorrado - deudas
console.log(nombreCompleto);    
console.log(dineroReal)

Funciones

驴Qu茅 es una funci贸n?
Una funci贸n es un bloque de c贸digo que realiza una tarea puede recibir datos de entrada y devolver un resultado.

驴Cu谩ndo me sirve usar una funci贸n en mi c贸digo?
Cuando el codigo es repetitivo y se puede reutilizar la misma fracion de codigo y tambien ayuda a mantener lo ordenado.

** 驴Cu谩l es la diferencia entre par谩metros y argumentos de una funci贸n?**
Los par谩metros son variables declaradas de una funci贸n, mientras que los argumentos son los valores que se pasan a la funci贸n cuando se la llama.

// Funciones

const name = "Juan David";
const lastname = "Castro Gallego";
const nickname = "juandc";

function preferName (Name, Lastname , nick) {
    console.log(`Mi nombre es ${Name} ${Lastname}, pero prefiero que me digas ${nick}.`);
};
preferName(name, lastname, nickname);

Condicionales

驴Qu茅 es un condicional?
Un condicional es una funcion que toma decisiones. Si algo es verdad, hace una acci贸n, y si es falso, hace otra acci贸n.

驴Qu茅 tipos de condicionales existen en JavaScript y cu谩les son sus diferencias?
Los condicionales son el if y el switch. El if eval煤a una condici贸n y ejecuta un bloque de c贸digo si es verdadera. El switch eval煤a una expresi贸n y realiza diferentes acciones seg煤n los que coinsidan.

** 驴Puedo combinar funciones y condicionales?**
Si se puden convinar.

// Condicionales

const tipoDeSuscripcion = "Basic";
if (tipoDeSuscripcion == "Free") {
	console.log("Solo puedes tomar los cursos gratis");
} else 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("No tienes ninguna suscripci贸n");
}

Ciclos

** 驴Qu茅 es un ciclo?**
Un ciclo es una estructura que nos permite repetir una serie de instrucciones mientras se cumpla una condici贸n espec铆fica.

** 驴Qu茅 tipos de ciclos existen en JavaScript?**
Los tipos de ciclos en JavaScript son for, while y do-while.

** 驴Qu茅 es un ciclo infinito y por qu茅 es un problema?**
Ocurre cuando una condici贸n siempre se cumple y el ciclo no se detiene. Es un problema porque puede sobrecargar la memoria y causar bloqueos

驴Puedo mezclar ciclos y condicionales?
S铆, se pueden mezclar ciclos y condicionales. Puedes tener un ciclo dentro de un condicional o un condicional dentro de un ciclo para realizar acciones repetidas en funci贸n de ciertas condiciones.

//Ciclos

let i = 0;
while (i < 5) {
  i++;
  console.log(`El valor de i es: ${i}`);
}

let i = 10;
while (i >= 2) {
  i--;
  console.log(`El valor de i es: ${i}`);
}

// Escribe un c贸digo en JavaScript que le pregunte a los usuarios cu谩nto es 2 + 2. Si responden bien, mostramos un mensaje de felicitaciones, pero si responden mal, volvemos a empezar.

let respuesta = parseInt(prompt('驴Cu谩nto es 2 + 2?'));

while(respuesta !== 4) {
    alert("Respuesta incorrecta");
    respuesta = parseInt(prompt('驴Cu谩nto es 2 + 2?'));
}

alert('Felicidades eres un genio!');

Listas

** 驴Qu茅 es un array?**
Un array es una forma de guardar muchos valores en una sola variable.

** 驴Qu茅 es un objeto?**
Un objeto es como una caja que puede contener diferentes piezas de informaci贸n con nombres.

** 驴Cu谩ndo es mejor usar objetos o arrays?**
Los arrays son 煤tiles cuando tenemos una lista de cosas, como una lista de n煤meros o nombres. Los objetos son mejores cuando queremos guardar informaci贸n con nombres descriptivos, como los detalles de una persona.

驴Puedo mezclar arrays con objetos o incluso objetos con arrays?
Se puedes poner arrays dentro de objetos.


//Listas

// Crea una funci贸n que pueda recibir cualquier array como par谩metro e imprima su primer elemento.
let animales = ["Perro", "Gato", "Le贸n", "Elefante", "Tigre", "Oso"];
function readArray(array){
	console.log(array[0])
}
readArray(animales);

//Crea una funci贸n que pueda recibir cualquier array como par谩metro e imprima todos sus elementos uno por uno (no se vale imprimir el array completo).

function readArray(array) {
    for (let i = 0; i < array.length; i++) {
      console.log(`${i + 1} ${array[i]}`)
    }
  }
  readArray(animales);
//Crea una funci贸n que pueda recibir cualquier objeto como par谩metro e imprima todos sus elementos uno por uno (no se vale imprimir el objeto completo).
let laGranjaDePepe = {
    vaca: "Muu",
    cerdo: "Oink",
    gallina: "Kokorako",
    caballo: "ujdshiuvsdfuih",
    oveja: "Beee",
    pato: "Cuac"
  };
  function readObject(object) {
    for (let key in object) {
      console.log(object[key]);
       }
   }
  readObject(laGranjaDePepe);

Mi solucion al Test de JavaScript:

  1. Responde las siguientes preguntas en la secci贸n de comentarios:

-驴Qu茅 es una variable y para qu茅 sirve?
Una variable es un espacio que le estamos dando en memoria a los datos que deseemos guardar ya sea un arreglo u objeto, podemos poner el ejemplo de muchos cajones cuando deseamos guardar cualquier dato podemos poner en X cajon lo que deseemos y en este cajon queda asignado ese valor o esos datos que ingresamos.

Una variable sirve para guardar datos arreglos o objetos podemos usarlos en nuestro codigo para asignar algun dato ya definido por el programador, o esperar cualquier dato segun lo que ingrese el usuario.

-驴Cu谩l es la diferencia entre declarar e inicializar una variable?

1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:
驴Qu茅 es una variable y para qu茅 sirve? Una variable es un espacio de memoria reservado el cual nos permite almacenar datos.
驴Cu谩l es la diferencia entre declarar e inicializar una variable? Declarar es reservar memoria con un nombre e inicializar es asignarle un dato que va estar almacenado en la memoria.
驴Cu谩l es la diferencia entre sumar n煤meros y concatenar strings? Sumar n煤meros es la ejecuci贸n de una operaci贸n aritm茅tica entre 2 n煤meros y concatenar es unir dos cadenas.
驴Cu谩l operador me permite sumar o concatenar? El operador es el signo +.

2锔忊儯 Determina el nombre y tipo de dato para almacenar en variables la siguiente informaci贸n:
Nombre = String
Apellido = String
Nombre de usuario en Platzi = String
Edad = Number
Correo electr贸nico = String
Mayor de edad = Boolean
Dinero ahorrado = Number
Deudas = Number

3锔忊儯 Traduce a c贸digo JavaScript las variables del ejemplo anterior y deja tu c贸digo en los comentarios.

//Variables
let nombre = 鈥淎ndr茅s鈥;
let apellido = 鈥淩ueda鈥;
let loginPlatzi = 鈥渁ruedap鈥;
let edad = 41;
let correo = "[email protected]"
let mayorEdad = true;
let dineroAhorrado = 20000;
let deuda = 10000;

Variables y operaciones

1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:

  • 驴Qu茅 es una variable y para qu茅 sirve?

    Asignaci贸n de un espacio en memoria, nos sirve para efectuar operaciones con diferentes valores.

  • 驴Cu谩l es la diferencia entre declarar e inicializar una variable?

    Al declarar damos el nombre de la varaiable y al inicializar su tipo y valor.

  • 驴Cu谩l es la diferencia entre sumar n煤meros y concatenar strings?

    Saumar seria la simple operaci贸n matem谩tica y al concatenar la uni贸n de dos cadenadas de caracteres.

  • 驴Cu谩l operador me permite sumar o concatenar?

    El simbolo (+)

2锔忊儯 Determina el nombre y tipo de dato para almacenar en variables la siguiente informaci贸n:

  • Nombre: name string
  • Apellido: lastName string
  • Nombre de usuario en Platzi: nickName string
  • Edad: age int
  • Correo electr贸nico: mail string
  • Mayor de edad: adult boolean
  • Dinero ahorrado: saveMoney float
  • Deudas: debt float

3锔忊儯 Traduce a c贸digo JavaScript las variables del ejemplo anterior y deja tu c贸digo en los comentarios.

var name = 'jose angel'; 
var lastName = 'Esquivel Cisneros';  
var nickName = 'jaec1146';  
var mail = '[email protected]';   
var adult = true;  
var saveMoney = 5000;  
var debt = 1000; 

4锔忊儯 Calcula e imprime las siguientes variables a partir de las variables del ejemplo anterior:

Nombre completo (nombre y apellido)

Dinero real (dinero ahorrado menos deudas)

var completeName = name +鈥 鈥+ lastName; 
Console.log( completeName ); 
var realMoney =  saveMoney + debt; 
Console.log( realMoney); 

1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:
驴Qu茅 es una variable y para qu茅 sirve?
es un espacio de memoria reservado para guardar un valor,
驴Cu谩l es la diferencia entre declarar e inicializar una variable?
se declara una variable cuando se coloca en el c贸digo fuente con su tipo pero sin ning煤n valor
se inicializa una variable cuando se coloca su valor.
驴Cu谩l es la diferencia entre sumar n煤meros y concatenar strings?
la suma de n煤meros se puede hacer para que el resultado de en un resultado espec铆fico
al concatenar strings en la uni贸n de los valores colocados en dicha concatenaci贸n
驴Cu谩l operador me permite sumar o concatenar?
la Operacion de union de Texto +

2锔忊儯 Determina el nombre y tipo de dato para almacenar en variables la siguiente informaci贸n:
name - String
lastName - string
nickname - String
age - number
mail - string
Mayor de edad - boolean
Dinero ahorrado - number
Deudas - number

3锔忊儯 Traduce a c贸digo JavaScript las variables del ejemplo anterior y deja tu c贸digo en los comentarios.

<code> 
var name = "Diana";
var lasName = "Rangel";
var nickName = "Diana Rangle";
var age = 27; 
var mail =  "[email protected]";
var mayordeEdad = true; 
var dineroAhorrado = 100;
var deudas = 25000;

4锔忊儯 Calcula e imprime las siguientes variables a partir de las variables del ejemplo anterior:

var name = "Diana";
var lasName = "Rangel";
var Nombres=  name + lasName;
console.log(Nombres);

var dineroAhorrado = 100;
var deudas = 25000;
var total= dineroAhorrado - deudas;
console.log(total); 

Funciones
1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:
驴Qu茅 es una funci贸n?
tareas que se pueden usar para aplicar acciones a las variables generadas

驴Cu谩ndo me sirve usar una funci贸n en mi c贸digo?
cuando queremos que las variables tengan un comportamiento

驴Cu谩l es la diferencia entre par谩metros y argumentos de una funci贸n?
los par谩metros se declaran para saber que viene una funcion en proceso si saber aun que valor se les dar谩.
las funciones son los valores declarados para esos par谩metros y de esta manera se ejecute el proceso

2锔忊儯 Convierte el siguiente c贸digo en una funci贸n, pero, cambiando cuando sea necesario las variables constantes por par谩metros y argumentos en una funci贸n:

const name = "Juan David";
const lastname = "Castro Gallego";
const nickname = "juandc"; 

function presentacion( name, lastnamen, nickname){
	return (`Mi nombre es ${name} ${lastname}, pero prefiero que me digas " ${nickname} `);
}

Condicionales
1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:
驴Qu茅 es un condicional?
es una estructura de control que permite tomar decisiones

驴Qu茅 tipos de condicionales existen en JavaScript y cu谩les son sus diferencias?
if
else
else if
switch

2锔忊儯 Replica el comportamiento del siguiente c贸digo que usa la sentencia switch utilizando if, else y else if:

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;
}


//MY SOLUCI脫N

const tipoDeSuscripcion = "Basic";

if (tipoDeSuscripcion === "free")  {
	console.log("Solo puedes tomar los cursos gratis");
} else 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("No cuentas no beneficios");
}


Variables y operaciones
1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:
驴Qu茅 es una variable y para qu茅 sirve?
Una variable es un espacio reservado en memoria y sirve para almacenar valores de todo tipo.
驴Cu谩l es la diferencia entre declarar e inicializar una variable?
Cuando se declara una variable, no se le asigna un valor, sino que cuando se inicializa se le est谩 asignando un valor.
驴Cu谩l es la diferencia entre sumar n煤meros y concatenar strings?
2 + 2 = 4
"2" + 鈥2鈥 = 鈥22鈥
驴Cu谩l operador me permite sumar o concatenar?
+

1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:
驴Qu茅 es un condicional?
Un condicional evalua si una condicion es verdadera o falsa para ejecutar una determinada tarea.
驴Qu茅 tipos de condicionales existen en JavaScript y cu谩les son sus diferencias?
Existen los ocndicionales if, if-else. If ejecuta determinado codigo s贸lo si la condicion es verdadera. En If-else, si la condicion es verdadera ejecuta una tarea, si es falsa ejecuta otra tarea.
驴Puedo combinar funciones y condicionales?
Si

Ciclos
1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:
驴Qu茅 es un ciclo?
Un ciclo es una forma automatizada de repetir c贸digo.
驴Qu茅 tipos de ciclos existen en JavaScript?
Existen los ciclos for, for-each, for-of, while.
驴Qu茅 es un ciclo infinito y por qu茅 es un problema?
Un ciclo es infinito cuando no tiene una condici贸n que detenga el ciclo de vida del ciclo. Es un problema porque puede producir que la pc se trave o no responda correctamente.
驴Puedo mezclar ciclos y condicionales?
Si.

Listas
1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:
驴Qu茅 es un array?
Un array es una estructura de datos de tipo objeto que almacena una serie de datos.
驴Qu茅 es un objeto?
Un objeto es una estructura de datos que almacena valores mediante propiedades y sus valores.
驴Cu谩ndo es mejor usar objetos o arrays?
Es mejor usar objetos cuando los valores que se introducen son de distintos tipos de datos. Es mejor usar un array cuando los datos son todos del mismo tipo.
驴Puedo mezclar arrays con objetos o incluso objetos con arrays?
Si, pero no se c贸mo.

Hasta aqu铆 llegu茅.

/*Responde las siguientes preguntas en la secci贸n de comentarios:

驴Qu茅 es una variable y para qu茅 sirve?
Es un espacio en memoria el cual sirve para almacenar un valor el cual puede cambiar durante la ejecuci贸n de un programa.

驴Cu谩l es la diferencia entre declarar e inicializar una variable?
Declarar es crear la variable sin asignarle ning煤n valor y inicializarla es asignarle un valor por defecto.

驴Cu谩l es la diferencia entre sumar n煤meros y concatenar strings?
Para sumar dos n煤meros es necesario que el tipo de dato sea num茅rico y para concatenar puedo concatenar valores con distintos tipos de dato.

驴Cu谩l operador me permite sumar o concatenar?
鈥+鈥 */

/*Determina el nombre y tipo de dato para almacenar en variables la siguiente informaci贸n:

Nombre: String
Apellido: String
Nombre de usuario en Platzi: String
Edad: number
Correo electr贸nico: String
Mayor de edad: Bolean
Dinero ahorrado: number
Deudas: number

Traduce a c贸digo JavaScript las variables del ejemplo anterior y deja tu c贸digo en los comentarios.*/

var nombre = "Will";
var apellido = "Atuesta";
var nombreUsuario = "watuesta";
var edad = 31;
var correo = "[email protected]";
var mayorEdad = true;
var dineroAhorrado = 100.0;
var deudas = 50.2;

/*Calcula e imprime las siguientes variables a partir de las variables del ejemplo anterior:*/

var nombreCompleto = nombre + " " + apellido;
console.log (nombreCompleto);

var dineroReal = dineroAhorrado - deudas;
console.log (dineroReal);

/*Responde las siguientes preguntas en la secci贸n de comentarios:

驴Qu茅 es una funci贸n?
Es un bloque de c贸digo que ejecuta unas instrucci贸nes las cuales puedo reutilizar realizando un llamado y pasandole parametros si asi lo requiere.

驴Cu谩ndo me sirve usar una funci贸n en mi c贸digo?
Me srive para reutilizar un bloque de c贸digo el cual haga alguna accion repetitiva haciendo mas legible y sostenible en el tiempo.

驴Cu谩l es la diferencia entre par谩metros y argumentos de una funci贸n?
Los par谩metros son variables a las que se les asignar谩 un valor. (Las funciones reciben par谩metros al crearse)
Los Argumentos son los valores asignados a los par谩metros al ejecutarse. (Las funciones reciben argumentos al ejecutarse)

*/

/*Convierte el siguiente c贸digo en una funci贸n, pero, cambiando cuando sea necesario las variables constantes por par谩metros y argumentos en una funci贸n:*/

const names = "William G.";
const lastname = "Atuesta Lugo";
const completeName = names + lastname;
const nickname = "Will";

console.log("Mi nombre es " + completeName + ", pero prefiero que me digas " + nickname + ".");

// Funci贸n

function nombreCompleto(names, lastname){
  return names + " " + lastname;
}

function saludo(names, lastname, nickname){
  
  const completeName = nombreCompleto(names, lastname);
  console.log("Mi nombre es " + completeName + ", pero prefiero que me digas " + nickname + ".");

}

/*Responde las siguientes preguntas en la secci贸n de comentarios:

驴Qu茅 es un condicional?
Es un bloque de c贸digo el cual me permite tomar una desici贸n u otra dependiendo de si cumple o no con la condici贸n escrita.

驴Qu茅 tipos de condicionales existen en JavaScript y cu谩les son sus diferencias?
If (else, else if),
Nos permite hacer validaciones de variables distintas en cada condicional (si eso requerimos).

Switch (case)
En cambio usando Switch todos los case se validan con la misma variable o condici贸n previamente definida en Switch .

Booleanos (true o false )

驴Puedo combinar funciones y condicionales?
S铆, las funciones pueden encapsular cualquier bloque de c贸digo incluidas condicionales.

*/

/*Replica el comportamiento del siguiente c贸digo que usa la sentencia switch utilizando if, else y else if:*/

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;
}

/* ELSE IF */
if (tipoDeSuscripcion == "Free") {
    console.log("Solo puedes tomar los cursos gratis");
} else 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");
}

/* IF */
function tipoSuscripcion(suscripcion) {
if (suscripcion == "Free"){
    console.log("Solo puedes tomar los cursos gratis");
	return;
}if (suscripcion == "Basic") {
    console.log("Puedes tomar casi todos los cursos de Platzi durante un mes");
return;
}if (suscripcion == "Expert"){
	console.log("Puedes tomar casi todos los cursos de Platzi durante un a帽o");
return;
}if (suscripcion == "ExpertPlus") {
	console.log("T煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi durante un a帽o");
return;
}
console.warn('Este tipo de suscripci贸n no existe');

};

/*Responde las siguientes preguntas en la secci贸n de comentarios:

驴Qu茅 es un ciclo?
Un bloque de c贸digo que itera n cantidad de veces a partir de una condici贸n.

驴Qu茅 tipos de ciclos existen en JavaScript?
for, while, do while

驴Qu茅 es un ciclo infinito y por qu茅 es un problema?
Sucede cuando no se controla me diante alguna condici贸n valida el fin del ciclo

驴Puedo mezclar ciclos y condicionales?
Si

*/

/* Replica el comportamiento de los siguientes ciclos for utilizando ciclos while: */

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);
}

/* Ciclos while */

var i = 0;
while(i <= 5) {
	console.log("El valor de i es: " + i);	
	i++;
}

var j = 10;

while(j>= 0) {
	console.log("El valor de j es: " + j);	
	j--;
}

/* Escribe un c贸digo en JavaScript que le pregunte a los usuarios cu谩nto es 2 + 2. Si responden bien, mostramos un mensaje de felicitaciones, pero si responden mal, volvemos a empezar. */

var number = 0;
var respuesta = false;

while(!respuesta) {
	var userResp = prompt("驴Cuanto es 2 + 2?");
	if(userResp == 4){
		console.log("Correcto!! Felicidades!!! :D");
		respuesta = true;
	}
}

/* 
驴Qu茅 es un array?
Una colecci贸n de datos organizados en forma contigua.

驴Qu茅 es un objeto?
Una colecci贸n de datos y funciones que pertenecen de forma concreta al objeto.

驴Cu谩ndo es mejor usar objetos o arrays?
Cuando se tienen listas simples y no relacionadas podemos usar arreglos y cuando la colecci贸n es de informaci贸n concreta que forma parte del objeto y este tiene m茅todos y funciones adem谩s de valores es cuando usamos objetos.

驴Puedo mezclar arrays con objetos o incluso objetos con arrays?
S铆 para cada caso se especifica como tipo de dato que almacenara en su secci贸n o nivel dado.

*/

/*  
Crea una funci贸n que pueda recibir cualquier array como par谩metro e imprima su primer elemento. 
*/

var marcas = ["Renault", "Mazda", "Toyota", "Hyundai", "Byd","Chevrolet"];

function listaMarcasCarro(miArray){
	
    console.log("Primer valor: "+ miArray[0]);
    
}

listaMarcasCarro(marcas);

/*
Crea una funci贸n que pueda recibir cualquier array como par谩metro e imprima todos sus elementos uno por uno (no se vale imprimir el array completo). 
*/

var marcas = ["Renault", "Mazda", "Toyota", "Hyundai", "Chevrolet"];

function listaMarcasCarro(marcasArray){
	console.log("Lista de marcas: ");
	marcasArray.forEach(element => console.log(element));
}

listaMarcasCarro(marcas);

/*
Crea una funci贸n que pueda recibir cualquier objeto como par谩metro e imprima todos sus elementos uno por uno (no se vale imprimir el objeto completo).
*/

var carro = {
    "Marca" : "Renault",
    "Modelo" : "Logan Expression",
    "Anio" : 2014,
    "Color" : "Rojo fuego",
    "Kilometraje" : 70000
}

function miObjeto(obj){
    console.log("Descripci贸n del carro: ");
    for (var i in obj) {
        console.log(carro[i]);
    }
}

miObjeto(carro);

variables y operaciones

1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:

驴Qu茅 es una variable y para qu茅 sirve?

Una variable es un espacio que se le asigna en la ram, de un determinado tipo (string, int, boolean, double)

驴Cu谩l es la diferencia entre declarar e inicializar una variable?

La diferencia entre declarar y inicializar una variable esta en que 	declarar una variable, es donde surge, donde se crea por primera 	vez, mientras que inicializarla es asignarle un valor a una variable 	que puede estar previamente creada o se crea en la misma linea. 

驴Cu谩l es la diferencia entre sumar n煤meros y concatenar strings?

La diferencia entre sumar numeros y concatenar strings esta en que sumar numeros, es un proceso matematico entre valores que genera un nuevo resultado (1+2=3). Por otra parte concatenar hace referencia a la union de dos valores (鈥1鈥+ 鈥2鈥) y su output sera (12). 

驴Cu谩l operador me permite sumar o concatenar?

El operador que nos permite concatenar y sumar es el signo +

2锔忊儯 Determina el nombre y tipo de dato para almacenar en variables la siguiente informaci贸n:

Nombre (String)

Apellido (String)

Nombre de usuario en Platzi (String)

Edad (Int)

Correo electr贸nico (String)

Mayor de edad (Boolean)

Dinero ahorrado (Double)

Deudas (Double)

3锔忊儯 Traduce a c贸digo JavaScript las variables del ejemplo anterior y deja tu c贸digo en los comentarios.

Var nombre = 鈥溾; 

Var apellido = 鈥溾; 

Var nombreUsuarioPlatzi = 鈥溾; 

Var edad = 0; 

Var correoElectronico = 鈥溾; 

Var mayorEdad = false; 

Var dineroAhorrado = 300000,00 

Var deudas = 15900,90 

4锔忊儯 Calcula e imprime las siguientes variables a partir de las variables del ejemplo anterior:


Nombre completo (nombre y apellido) 

console.log(nombre + 鈥 鈥+ apellido); 

Dinero real (dinero ahorrado menos deudas) 

Let dineroReal = dineroAhorrado 鈥 deudas; 

Funciones

1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:

驴Qu茅 es una funci贸n?

Una funcion es un bloque de codigo que se crea para una funcion especifica y que puede ser llamado desde cualquier parte del codigo

驴Cu谩ndo me sirve usar una funci贸n en mi c贸digo?

La funcion me sirve cuando quiero evitar codigo repetitivo, cuando quiero hacer un codigo escalable y mas limpio.

驴Cu谩l es la diferencia entre par谩metros y argumentos de una funci贸n?

La diferencia entre parametros y argumentos esta en que los parametros son variables que se le dan a una funcion, mientras que los argumentos son los valores con los que operara dicha funcion.

2锔忊儯 Convierte el siguiente c贸digo en una funci贸n, pero, cambiando cuando sea necesario las variables constantes por par谩metros y argumentos en una funci贸n:

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 + "."); 

/```
/Solucion

Function nameGamer (name, lastname, nickname){

					       completeName = name + 鈥 鈥 + lastname; 

		       console.log(鈥淢i Nombre es 鈥+ completeName + 鈥, pero prefiero que me digas 鈥 + nickname + 鈥.鈥); 

}

nameGamer(鈥淛uan David鈥, 鈥淐astro Gallego鈥, 鈥渏uandc鈥);

Condicionales 

1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios: 

驴Qu茅 es un condicional? 

Una condicional es cuando se hace una validacion de verdadero o falso (鈥渟i esto se cumple haga esto鈥 y 鈥渟i esto no se cumple haga esto鈥.)  

驴Qu茅 tipos de condicionales existen en JavaScript y cu谩les son sus diferencias? 

Existen los condicionales if-else, else if o operador ternario(es para hacer algo si es verdadero o de lo contrario hacer otra cosa), se usa para ejecutar un bloque de codigo dependiendo si la condici贸n se cumple o no mientras switch se usa mas para validar una variable y en caso de que no se cumpla se usa un default. 

驴Puedo combinar funciones y condicionales? 

Si, de hecho, es muy com煤n de utilizar dentro de funciones condicionales, se combinan bien ya que una funci贸n permite ejecutar un bloque de c贸digo y evita que sea repetitivo, y en ocasiones dentro de la funci贸n se validan algunas condiciones dependiendo el caso. 

 

2锔忊儯 Replica el comportamiento del siguiente c贸digo que usa la sentencia switch utilizando if, else y else if: 

 

const tipoDeSuscripcion = 鈥淏asic鈥;

switch (tipoDeSuscripcion) {

case 鈥淔ree鈥:

console.log(鈥淪olo puedes tomar los cursos gratis鈥);

break;

case 鈥淏asic鈥:

console.log(鈥淧uedes tomar casi todos los cursos de Platzi durante un mes鈥);

break;

case 鈥淓xpert鈥:

console.log(鈥淧uedes tomar casi todos los cursos de Platzi durante un a帽o鈥);

break;

case 鈥淓xpertPlus鈥:

console.log(鈥淭煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi durante un a帽o鈥); break; }

//solucion

Var tipoDeSuscripcion = prompt("");

if (tipoDeSuscripcion === 鈥淔ree鈥) {

console.log(鈥淪olo puedes tomar los cursos gratis鈥);

} else if (tipoDeSuscripcion === 鈥淏asic鈥) {

console.log(鈥淧uedes tomar casi todos los cursos de Platzi durante un mes鈥);

} else if (tipoDeSuscripcion === 鈥淓xpert鈥) {

console.log(鈥淧uedes tomar casi todos los cursos de Platzi durante un a帽o鈥);

} else if (tipoDeSuscripcion === 鈥淓xpertPlus鈥) {

console.log(鈥淭煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi durante un a帽o鈥);

}

 

3锔忊儯 Replica el comportamiento de tu condicional anterior con if, else y else if, pero ahora solo con if (sin else ni else if). 

var suscripcionesPlatzi = {

Free: 鈥淪olo puedes tomar los cursos gratis鈥,

Basic: 鈥淧uedes tomar casi todos los cursos de Platzi durante un mes鈥,

Expert: 鈥淧uedes tomar casi todos los cursos de Platzi durante un a帽o鈥,

ExpertPlus: 鈥淭煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi durante un a帽o鈥,

};

function suscripcion(tipoDeSuscripcion) {

if (tipoDeSuscripcion === 鈥淔ree鈥 || tipoDeSuscripcion === 鈥淏asic鈥 || tipoDeSuscripcion === 鈥淓xpert鈥 || tipoDeSuscripcion === 鈥淓xpertPlus鈥) {

console.log(suscripcionesPlatzi[tipoDeSuscripcion]); 

}

}

suscripcion(鈥淔ree鈥);

Ciclos 

1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios: 

驴Qu茅 es un ciclo? 
Un ciclo es un bucle que se repite un numero determinado de veces o mientras se cumpla determinada condici贸n. 

驴Qu茅 tipos de ciclos existen en JavaScript? 

Exiten 3  for (para un numero de repeticiones determinado), do while (Se ejecuta al menos una vez, y las sigueintes repeticiones dependen de si se sigue cumpliendo la condicion), while (mientras una condicion se cumpla, se seguir谩 repitiendo) 

驴Qu茅 es un ciclo infinito y por qu茅 es un problema? 

Un ciclo infinito o bucle infinito es un problema debido a los recursos que consume, puede ocasionar problemas en el rendimiento del dispositivo. 

驴Puedo mezclar ciclos y condicionales? 

Si, tambi茅n es muy com煤n usar dentro de ciclos condicionales, por el simple hecho de validar m谩s de una vez alguna situaci贸n. 

 

2锔忊儯 Replica el comportamiento de los siguientes ciclos for utilizando ciclos while: 

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);
}

//Solucion

// Ciclo while equivalente al primer ciclo for

let i = 0;

while (i < 5) {

console.log("El valor de i es: " + i);

i++;

}

// Ciclo while equivalente al segundo ciclo for

let i = 10;

while (i >= 2) {

console.log("El valor de i es: " + i);

i鈥;

}

 

3锔忊儯 Escribe un c贸digo en JavaScript que le pregunte a los usuarios cu谩nto es 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. 

Var respuesta = 0;

Do{

respuesta = prompt(鈥淐uando es 2 + 2? 鈥);

} (while respuesta !== 4)

Console.log(鈥渇elicitaciones鈥);

 

1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios: 

驴Qu茅 es un array? 

Es una estructura de datos que permite almacenasuna serie de datos localizados por indices separados por comas 

驴Qu茅 es un objeto? 

Un objeto es el conjunto de una o mas propiedades que componen el objeto, ejemplo un auto(tiene marca, placa, modelo, a帽o). 

驴Cu谩ndo es mejor usar objetos o arrays? 

Es mejor usar objetos en casos donde tengo las propiedades de algo, es decir que se haga relacion a la misma cosa, mientras que en un array seria mas bien una lista de muchos articulos sin que necesariamente tengan correlacion entre si. 

驴Puedo mezclar arrays con objetos o incluso objetos con arrays? 

 
S铆, se pueden mezclar objetos con arrays y viceversa. Esto puede ser 煤til en situaciones en las que se desea almacenar una colecci贸n de objetos relacionados, donde cada objeto puede tener sus propias propiedades y m茅todos, y se desea acceder a ellos a trav茅s de un 铆ndice num茅rico o una clave espec铆fica. Adem谩s, en JavaScript, un objeto puede contener tanto propiedades como m茅todos que devuelven o manipulan un array. 

 

2锔忊儯 Crea una funci贸n que pueda recibir cualquier array como par谩metro e imprima su primer elemento. 

Var arrayX = [0, 1, 2, 3];

Function imprimePrimer (arrayX){

Console.log(arrayX[0]) 

}


3锔忊儯 Crea una funci贸n que pueda recibir cualquier array como par谩metro e imprima todos sus elementos uno por uno (no se vale imprimir el array completo). 

function imprimeElementos(array) {

for (let i = 0; i < array.length; i++) {

console.log(array[i]); 

}

}

var arrayX = [0, 1, 2, 3];

imprimeElementos(arrayX); // imprime 0, 1, 2, 3 en l铆neas separadas

function imprimeElementos(array) {

for (let i = 0; i < array.length; i++) {

console.log(array[i]); 

}

}

var arrayX = [0, 1, 2, 3];

imprimeElementos(arrayX);

4锔忊儯 Crea una funci贸n que pueda recibir cualquier objeto como par谩metro e imprima todos sus elementos uno por uno (no se vale imprimir el objeto completo). 

var objeto = { nombre: 鈥淩oberto鈥, balones: 60, precision: 100 };

function imprimeObjeto(objeto) {

for (var propiedad in objeto) {

console.log(propiedad + ": " + objeto[propiedad]); 

}

}

imprimeObjeto(objeto);

1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:
驴Qu茅 es una variable y para qu茅 sirve?
Es un espacio que se crea para almacenar alg煤n tipo de dato, podemos compararlo como una caja que se crea en la memor铆a ram para ir almacenando.
驴Cu谩l es la diferencia entre declarar e inicializar una variable?
Cuando se declara le dices al lenguajes que esa variable existe, le est谩s notificando de su existencia y cuando inicializas le asignas un valor a una variable
驴Cu谩l es la diferencia entre sumar n煤meros y concatenar strings?
Cuando sumamos n煤meros con un lenguaje de programaci贸n simplemente hacemos la operaci贸n matem谩tica b谩sica, pero cuando concatenamos estamos juntando piezas de string para que el lenguaje lo pueda unir todo y represantarlo como una sola cadena de texto
驴Cu谩l operador me permite sumar o concatenar?
Usamos el operador +

2锔忊儯 Determina el nombre y tipo de dato para almacenar en variables la siguiente informaci贸n:
Nombre (let nombre; // tipo string)
Apellido (let apellido; //tipo string)
Nombre de usuario en Platzi (let usuarioEnPlatzi; //tipo string)
Edad (let edad; //tipo number)
Correo electr贸nico (let correoElectronico; //tipo string)
Mayor de edad (let mayoriaDeEdad; //tipo boolean)
Dinero ahorrado (let ahorros; //tipo number)
Deudas (let deudas = [ ]; //tipo array)
La 煤ltima depende porque puedo guardar las deudas por separado en un array o tambi茅n puedo tener la suma de todas ellas en una variable de tipo number >> let deudas;

ostia. esto fue el primer muro en programaci贸n que encontr茅.
pero pase el 70% vamos por mas

Variables y operaciones
1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:
驴Qu茅 es una variable y para qu茅 sirve?
Es un espacio reservado de memoria que nos permite almacenar informaci贸n y puede ser de diferentes tipos de datos.
驴Cu谩l es la diferencia entre declarar e inicializar una variable?
El declarar la variable reservamos un espacio en memoria y le ponemos el nombre.
Al inicializar la variable, le asignamos un valor y el tipo de dato que le corresponde.
驴Cu谩l es la diferencia entre sumar n煤meros y concatenar strings?
Usan el mismo operador, todo depende del tipo de dato y la coerci贸n.
驴Cu谩l operador me permite sumar o concatenar?
El operador logico 鈥+鈥.

2锔忊儯 Determina el nombre y tipo de dato para almacenar en variables la siguiente informaci贸n:
Nombre - String
Apellido - String
Nombre de usuario en Platzi - String
Edad - Number
Correo electr贸nico - String
Mayor de edad - Boolean
Dinero ahorrado - Number
Deudas - Number
3锔忊儯Traduce a c贸digo JavaScript las variables del ejemplo anterior y deja tu c贸digo en los comentarios.

let nombre= "ChristOs";
let apellido= "Carmona";
let usuario= "christosdev";
let edad= 29;
let email = "[email protected]"
let adulto= true;
let dineroAhorrado= 2000;
let desudas= 150;

4锔忊儯 Calcula e imprime las siguientes variables a partir de las variables del ejemplo anterior:

let nombre = "Christopher";
let apellido = "Carmona";
let dineroAhorrado= 2000;
let deudas = 150;
let dineroTotal= dineroAhorrado - deudas;

console.log(`Hola, mi nombre completo es ${nombre} ${apellido}, y mi dinero total es: $`+dineroTotal); 

Funciones

1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:
驴Qu茅 es una funci贸n?
Es un conjunto de acciones que nos permitir谩 reutilizar en nuestro c贸digo y siempre deben devolver un resultado. Podemos crear diferentes funciones con par谩metros distintos y luego utilizar la informaci贸n para realizar un evento o acci贸n dentro de nuestro c贸digo.
驴Cu谩ndo me sirve usar una funci贸n en mi c贸digo?
Cuando es un proceso que tiene que repetirse o es una operaci贸n complicada que requiere de valores variables.
驴Cu谩l es la diferencia entre par谩metros y argumentos de una funci贸n?
Los parametros son variables que ya fueron inicializadas y existen fuera del entorno local de la funcion. Los argumentos son datos unicos de la funcion que existen para realizar las operaciones de la misma.

2锔忊儯 Convierte el siguiente c贸digo en una funci贸n, pero, cambiando cuando sea necesario las variables constantes por par谩metros y argumentos en una funci贸n:

const name = "Christopher";
const lastname = "Carmona Lopez";
const completeName = name + lastname;
const nickname = "christosdev";

function saludo  (completeName  nickname) {
return console.log("Mi nombre es " + completeName + ", pero prefiero que me digas " + nickname + ".");
}

saludo  (completeName , nickname);

Condicionales
1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:

驴Qu茅 es un condicional?
Es una exprecion que permite evaluar si una operacion es verdadera o falsa y que hacer en determinados casos.
驴Qu茅 tipos de condicionales existen en JavaScript y cu谩les son sus diferencias?
if - Condicional que evalua si una operacion se cumple en caso de ser verdadero hace una sentencia en caso contrario un valor default.
elseif - es un if anidado que permite hacer otra evaluzaci贸n
else - el valor 鈥渄efault鈥 en caso de ser falsa la respuesta de la operacion.
switch - compara entre valores especificos y en caso de encontrar coincidencia hacer una operacion especifica. Tambien cuenta con un valor 鈥渄efault鈥 que se detona en caso de no encontrar coincidencias.
驴Puedo combinar funciones y condicionales?
Si, se puede usar una funcion para hacer la operacio o bien se puede poner condiciones dentro de una funci贸n.
2锔忊儯 Replica el comportamiento del siguiente c贸digo que usa la sentencia switch utilizando if, else y else if:

const suscripcion = "Basic";

if (suscripcion === 'Free') {
  console.log("Solo puedes tomar los cursos gratis");
} else if (suscripcion === 'Basic') {
  console.log("Puedes tomar casi todos los cursos de Platzi durante un mes");
} else if (suscripcion === 'Expert') {
  console.log("Puedes tomar casi todos los cursos de Platzi durante un a帽o");
} else {
  console.log("T煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi durante un a帽o");
}

3锔忊儯 Replica el comportamiento de tu condicional anterior con if, else y else if, pero ahora solo con if (sin else ni else if).

const tipoSuscripcion = {
	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',
};

let suscripcion = ["Free","Basic","Expert","ExpertPlus"];


function descripcion (tipoSuscripcion, suscripcion){
    Object.keys(tipoSuscripcion).find((plan) => {
      if (plan == suscripcion) {
        return console.log(tipoSuscripcion[plan]);
      }
    });
}
descripcion (tipoSuscripcion, suscripcion[0]); 

Ciclos
1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:

驴Qu茅 es un ciclo?
Es una sentencia que nos permite hacer ciclicamente una operacion mientras se cumpla una condicion.
驴Qu茅 tipos de ciclos existen en JavaScript?
for y while
驴Qu茅 es un ciclo infinito y por qu茅 es un problema?
Un proceso en que nunca deja de cumplirse la condicion y es un problema por que no permite que el flujo de l codigo trabaje comunmmente aparte de utilizar recursos hasta que ya no puedas mas
驴Puedo mezclar ciclos y condicionales?
Si

2锔忊儯 Replica el comportamiento de los siguientes ciclos for utilizando ciclos while:

let i = 0;
while (i < 5) {
  i++;
  console.log(`El valor de i es: ${i}`)
}
let i = 10;
while (i >= 2) {
  i--;
  console.log(`El valor de i es: ${i}`)
} 

3锔忊儯 Escribe un c贸digo en JavaScript que le pregunte a los usuarios cu谩nto es 2 + 2. Si responden bien, mostramos un mensaje de felicitaciones, pero si responden mal, volvemos a empezar.

const resp = 4;
let questions = "Cuanto es 2 + 2";

function Pregunta() {
    let usrInput = prompt(questions);
    if (usrInput != resp){
        alert("Sigue practicando!");
        Pregunta();
    }
    else{
        alert("Felicitaciones!");
    }
  }

  Pregunta();

Listas
1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:

驴Qu茅 es un array?
Un array es una colecciones de elementos con valores de una sola variable. Se escriben dentro de [ 鈥 ], separado por una coma.
驴Qu茅 es un objeto?
Es una colecci贸n de datos relacionados con m煤ltiples variables con sus valores.
驴Cu谩ndo es mejor usar objetos o arrays?
Ocupamos objetos cuando el conjunto de elementos es muy grande y de distintos tipos de valores.
驴Puedo mezclar arrays con objetos o incluso objetos con arrays?
2锔忊儯 Crea una funci贸n que pueda recibir cualquier array como par谩metro e imprima su primer elemento.
3锔忊儯 Crea una funci贸n que pueda recibir cualquier array como par谩metro e imprima todos sus elementos uno por uno (no se vale imprimir el array completo).
4锔忊儯 Crea una funci贸n que pueda recibir cualquier objeto como par谩metro e imprima todos sus elementos uno por uno (no se vale imprimir el objeto completo).

 // 1

  let numeros = [20, 2, 7, 9, 10, 78];
  function readArray(array){
    console.log(array[0])
  }
  readArray(numeros);

// 2
let numeros = [20, 2, 7, 9, 10, 78];
function readArray(array) {
  for (let i = 0; i < array.length; i++) {
    console.log(`${i + 1} ${array[i]}`)
  }
}
readArray(myArray);

// 3

let alumno = {
  nombre: 'christopher',
  apellido: 'Carmona',
  edad: 29
};
function readObject(alumno) {
  for (let key in object) {
    console.log(object[key]);
 	}
 }
readObject(alumno);

Variables y operaciones
1-Responde las siguientes preguntas en la secci贸n de comentarios:
驴Qu茅 es una variable y para qu茅 sirve?
Es una espacio de memoria reservado para almacenar datos temporales.

驴Cu谩l es la diferencia entre declarar e inicializar una variable?
Declarar una variable es cuando se crea e inicializar es cuando se le asigna el valor y tipo de dato.

驴Cu谩l es la diferencia entre sumar n煤meros y concatenar strings?
Al sumar numeros obtendremos resultados de la suma entre n煤meros. Por ejemplo 1 + 1 = 2
Al concatenar strings estaremos sumando tipo de datos caracter a nuestro string. Por ejemplo 鈥渃as鈥 + 鈥渁鈥 = 鈥渃asa鈥

驴Cu谩l operador me permite sumar o concatenar?
El operador 鈥+鈥

2-Determina el nombre y tipo de dato para almacenar en variables la siguiente informaci贸n:
Nombre = string
Apellido = string
Nombre de usuario en Platzi = string
Edad = integer
Correo electr贸nico = string
Mayor de edad = boolean
Dinero ahorrado = float
Deudas = float

3-Traduce a c贸digo JavaScript las variables del ejemplo anterior y deja tu c贸digo en los comentarios.
var nombre = "Martin"
var apellido = "Bonansea"
var userPlatzi = "martinbonansea"
var edad = 47
var correo = "[email protected]"
var mayorEdad = True
var ahorros = 10000
var deudas = 1000

4-Calcula e imprime las siguientes variables a partir de las variables del ejemplo anterior:
Nombre completo (nombre y apellido)
Dinero real (dinero ahorrado menos deudas)

var nombreCompleto = nombre + apellido
var dineroReal = ahorros - deudas
console.log(nombreCompleto, dineroReal);

Funciones
1-Responde las siguientes preguntas en la secci贸n de comentarios:
驴Qu茅 es una funci贸n?
Es un grupo de instrucciones que devuelve un valor.

驴Cu谩ndo me sirve usar una funci贸n en mi c贸digo?
Cuando tenga un proceso que deba realizar reiteras veces, entonces en lugar de repetir el codigo tantas veces lo preciso, lo encapsulo en una funcion.

驴Cu谩l es la diferencia entre par谩metros y argumentos de una funci贸n?
Los par谩metros son los valores estipulados que espera recibir la funcion.
Los argumentos son los valores que enviamos a la funci贸n.

2-Convierte el siguiente c贸digo en una funci贸n, pero, cambiando cuando sea necesario las variables constantes por par谩metros y argumentos en una funci贸n:

<code> 

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 myNameIs(nombre, apodo) {
	console.log("Mi nombre es " + nombre + ", pero prefiero que me digas " + apodo + ".");
}

myNameIs(completeName, nickname);

Condicionales
1-Responde las siguientes preguntas en la secci贸n de comentarios:
驴Qu茅 es un condicional?
Es una instruccion que nos permite evaluar si una comparaci贸n es verdadera o falsa para poder tomar una descici贸n.

驴Qu茅 tipos de condicionales existen en JavaScript y cu谩les son sus diferencias?
if : evalua una condicion devolviendo verdadero o falso.
switch : evalua multiples condiciones.
for y while : evaluan la condicion establecida y mientras esta se cumpla proporciona lugar para que se repitan instrucciones, es una construcci贸n de bucle.

驴Puedo combinar funciones y condicionales?
Si.

2-Replica el comportamiento del siguiente c贸digo que usa la sentencia switch utilizando if, else y else if:
const tipoDeSuscripcion = 鈥淏asic鈥;

switch (tipoDeSuscripcion) {
case 鈥淔ree鈥:
console.log(鈥淪olo puedes tomar los cursos gratis鈥);
break;
case 鈥淏asic鈥:
console.log(鈥淧uedes tomar casi todos los cursos de Platzi durante un mes鈥);
break;
case 鈥淓xpert鈥:
console.log(鈥淧uedes tomar casi todos los cursos de Platzi durante un a帽o鈥);
break;
case 鈥淓xpertPlus鈥:
console.log(鈥淭煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi durante un a帽o鈥);
break;
}

const tipoDeSuscripcion = 鈥渂asic鈥;
if (tipoDeSuscripcion == 鈥淔ree鈥) {
return 鈥渟olo puedes tomar los cursos gratis鈥;
}else if(tipoDeSuscripcion == 鈥淏asic鈥) {
return 鈥減uedes tomar casi todos los cursos de Platzi durante un mes鈥;
}else if(tipoDeSuscripcion == 鈥淓xpert鈥) {
return 鈥減uedes tomar casi todos los cursos de Platzi durante un a帽o鈥;
}else if(tipoDeSuscripcion == 鈥淓xpertPlus鈥) {
return 鈥淭煤 y alguien mas pueden tomar TODOS los cursos de Platzi durante un a帽o鈥;
}

Replica el comportamiento de tu condicional anterior con if, else y else if, pero ahora solo con if (sin else ni else if).
馃挕 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 = 鈥渂asic鈥;

if (tipoDeSuscripcion == 鈥淔ree鈥) {
return 鈥渟olo puedes tomar los cursos gratis鈥;
}
if(tipoDeSuscripcion == 鈥淏asic鈥) {
return 鈥減uedes tomar casi todos los cursos de Platzi durante un mes鈥;
}
if(tipoDeSuscripcion == 鈥淓xpert鈥) {
return 鈥減uedes tomar casi todos los cursos de Platzi durante un a帽o鈥;
}
if(tipoDeSuscripcion == 鈥淓xpertPlus鈥) {
return 鈥淭煤 y alguien mas pueden tomar TODOS los cursos de Platzi durante un a帽o鈥;
}

Ciclos
1-Responde las siguientes preguntas en la secci贸n de comentarios:
驴Qu茅 es un ciclo?
Un grupo de instrucciones que se repiten constantemente, loop.

驴Qu茅 tipos de ciclos existen en JavaScript?
for y while.

驴Qu茅 es un ciclo infinito y por qu茅 es un problema?
Es un grupo de instrucciones que se repiten sin fin, sin detenerse. Todo cliclo debe tener un condicional para detenerlo.

驴Puedo mezclar ciclos y condicionales?
Si.

2-Replica el comportamiento de los siguientes ciclos for utilizando ciclos while:
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);
}

var i = 0;
while (i < 5) {
i++;
console.log("El valor de i es: " + i);
}
var i = 10;
while (i >= 2) {
i鈥;
console.log("El valor de i es: " + i);
}

3-Escribe un c贸digo en JavaScript que le pregunte a los usuarios cu谩nto es 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

var usuarioResponde = parseInt(prompt("Cuanto es 2 + 2 ??? "))
var respuestaok = 4
function validarResp(usuario, respuesta) {
while(usuario === respuesta) {
return console.log(鈥淔elicitaciones !!!鈥);
}
return console.log(鈥淩espuesta err贸nea鈥);
}
validarResp(usuarioResponde, respuestaok);

Listas
Responde las siguientes preguntas en la secci贸n de comentarios:
驴Qu茅 es un array?
Es un objeto donde guardamos una coleccion de datos.

驴Qu茅 es un objeto?
Es una entidad con propiedades y tipos.

驴Cu谩ndo es mejor usar objetos o arrays?
Es mejor usar objetos cuando debemos encapsular nuestro codigo o procesos en metodos.
Los arrays es mas utilizables cuando tenemos una coleccion de datos.

驴Puedo mezclar arrays con objetos o incluso objetos con arrays?
Si.

2 Crea una funci贸n que pueda recibir cualquier array como par谩metro e imprima su primer elemento.
var nombres = [鈥楳artin鈥,鈥楯uan Carlos鈥, 鈥業smael鈥, 鈥楩ito Paez鈥橾;

function imprimirNombres(nombres){
console.log(nombres[0]);
}
imprimirNombres(nombres);

3 Crea una funci贸n que pueda recibir cualquier array como par谩metro e imprima todos sus elementos uno por uno (no se vale imprimir el array completo).

var nombres = [鈥楳artin鈥,鈥楯uan Carlos鈥, 鈥業smael鈥, 鈥楩ito Paez鈥橾;

function imprimirNombres(nombres){
for (i = 0; i < nombres.length; i++){
console.log(nombres[i]);
}
}
imprimirNombres(nombres);

4 Crea una funci贸n que pueda recibir cualquier objeto como par谩metro e imprima todos sus elementos uno por uno (no se vale imprimir el objeto completo).
var nombres = {
nombre: 鈥楳artin鈥,
direccion: 鈥楶ellegrini 833鈥,
ciudad: 鈥楻osario鈥
};

function imprimirObjeto(objeto){
for ( key in objeto){
console.log(objeto[key]);
}
}
imprimirObjeto(nombres);

3锔忊儯 Replica el comportamiento de tu condicional anterior con if, else y else if, pero ahora solo con if (sin else ni else if).
馃挕 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 = [
{
tipo: 鈥楩ree鈥,
msge: 鈥楽olo puedes tomar los cursos鈥
},
{
tipo: 鈥楤asic鈥,
msge: 鈥楶uedes tomar casi todos los cursos de Platzi durante un mes鈥
},
{
tipo: 鈥楨xpert鈥,
msge: 鈥楶uedes tomar casi todos los cursos de Platzi durante un a帽o鈥
}
]

function tipo (subs){
tipoDeSuscripcion.filter(function (sub){
if (sub.tipo === subs){
console.log(sub.msge);
}
})
}

tipo (鈥淔ree鈥)
tipo (鈥淏asic鈥)
tipo (鈥淓xpert鈥)

VARIABLES Y OPERACIONES
1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:

  • 驴Qu茅 es una variable y para qu茅 sirve?
    Una variable es la representaci贸n de un lugar que se reserva en la memoria y sirve para guardar un valor, esta puede ser un objeto, tipos de datos o funciones

  • 驴Cu谩l es la diferencia entre declarar e inicializar una variable?
    Para declarar una variable usamos la palabra reservada 鈥渧ar鈥 con ella indicamos que los que sigue a continuaci贸n va a ser una variable, y para inicializarla o asignarle un valor usamos le s铆mbolo 鈥=鈥 con esto le asignamos un valor a la variable que puede ser un string o number, una funci贸n o un objeto.

  • 驴Cu谩l es la diferencia entre sumar n煤meros y concatenar strings?
    Para mi la diferencia es que cuando sumamos usamos datos de tipo number, y cuando contatenamos usamos datos de tipo string que se reconocen porque est谩n dentro de comillas 鈥溾 y en ambos casos usamos el operador +.

  • 驴Cu谩l operador me permite sumar o concatenar?
    En ambos casos con el operador de suma o +

2锔忊儯 Determina el nombre y tipo de dato para almacenar en variables la siguiente informaci贸n:
Nombre: String
Apellido: String
Nombre de usuario en Platzi: String
Edad: Number
Correo electr贸nico: String
Mayor de edad: Boolean
Dinero ahorrado: Number
Deudas: Number

3锔忊儯 Traduce a c贸digo JavaScript las variables del ejemplo anterior y deja tu c贸digo en los comentarios.

4锔忊儯 Calcula e imprime las siguientes variables a partir de las variables del ejemplo anterior:

  • Nombre completo (nombre y apellido)

  • Dinero real (dinero ahorrado menos deudas)

FUNCIONES
1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:

  • 驴Qu茅 es una funci贸n?
    Son bloques de c贸digo que solucionan un problema puntual para ser reutilizados

  • 驴Cu谩ndo me sirve usar una funci贸n en mi c贸digo?
    Podemos hacer uso de una funci贸n cada vez que queramos resolver un problema, crear un ciclo o hacer una tarea repetidas veces.

  • 驴Cu谩l es la diferencia entre par谩metros y argumentos de una funci贸n?
    Los par谩metros son las variables a la cuales se les asignar谩 un valor, y los argumentos son esos valores asignados a los par谩metros al momento en que se corre una funci贸n.

2锔忊儯 Convierte el siguiente c贸digo en una funci贸n, pero, cambiando cuando sea necesario las variables constantes por par谩metros y argumentos en una funci贸n:

CONDICIONALES
1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:

  • 驴Qu茅 es un condicional?
    Son estructuras de control que te permiten evaluar diferentes expresiones y realizar determinadas acciones en JS.

  • 驴Qu茅 tipos de condicionales existen en JavaScript y cu谩les son sus diferencias?
    Existen If, Else, Else If, el operador ternario y Switch.
    鈥 If, Else, Else If: Sirven para evaluar expresiones tantas veces como sea necesario en varias l铆neas de c贸digo.
    鈥 Operador ternario: Sirve para evaluar una condici贸n de una manera r谩pida en una l铆nea de c贸digo.
    鈥 Switch: Sirve para evaluar tambi茅n condiciones la diferencia es que deben ser iguales a un caso o algo espec铆fico.

  • 驴Puedo combinar funciones y condicionales?
    Se puede hacer que la funci贸n me retorne un condicional dado el caso en que sea necesario.

2锔忊儯 Replica el comportamiento del siguiente c贸digo que usa la sentencia switch utilizando if, else y else if:

3锔忊儯 Replica el comportamiento de tu condicional anterior con if, else y else if, pero ahora solo con if (sin else ni else if).
馃挕 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. 馃槒

CICLOS
1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:

  • 驴Qu茅 es un ciclo?
    Es una estructura de control que se repite tantas veces hasta que cumpla una condici贸n.

  • 驴Qu茅 tipos de ciclos existen en JavaScript?
    Existen dos tipos de ciclos: For y While

  • 驴Qu茅 es un ciclo infinito y por qu茅 es un problema?
    Un ciclo infinito es aquel en el que no existir谩 nunca una condici贸n que ponga fin a la iteraci贸n, esto lo que genera es que el computador que cuelgue porque va a estar haciendo esta tarea sin fin.

  • 驴Puedo mezclar ciclos y condicionales?
    Yo pienso que si se nos puede dar un caso en el que usemos un If y si se cumple la condici贸n de ese If se ejecute un For o un While. Se me ocurre algo como el ejemplo visto de un evento con una lista de invitados, podemos tener un array con todos los nombres de los invitados y usamos el condicional If para que nos arroje si X persona puede o no puede entrar al evento, en el caso de que si pueda entrar entonces usamos un for para que busque dentro del array si esta persona esta en la lista. Esto es solo por citar un ejemplo.

2锔忊儯 Replica el comportamiento de los siguientes ciclos for utilizando ciclos while:

3锔忊儯 Escribe un c贸digo en JavaScript que le pregunte a los usuarios cu谩nto es 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.

LISTAS
1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:

驴Qu茅 es un array?
Es una estructura de datos que permite almacenar una serie de datos localizados por 铆ndices y separados por comas.

  • 驴Qu茅 es un objeto?
    Es una estructura de datos que permite almacenar valores mediante propiedad - valor a trav茅s de la sintaxis de llaves ({}) y separados por comas.

  • 驴Cu谩ndo es mejor usar objetos o arrays?
    Es mejor usar objetos cuando el conjunto de elementos es muy grande y de distintos tipos de valores.

  • 驴Puedo mezclar arrays con objetos o incluso objetos con arrays?
    S铆 porque los arrays pueden guardar objetos. Y los objetos pueden guardar arrays entre sus propiedades.

2锔忊儯 Crea una funci贸n que pueda recibir cualquier array como par谩metro e imprima su primer elemento.

3锔忊儯 Crea una funci贸n que pueda recibir cualquier array como par谩metro e imprima todos sus elementos uno por uno (no se vale imprimir el array completo).

4锔忊儯 Crea una funci贸n que pueda recibir cualquier objeto como par谩metro e imprima todos sus elementos uno por uno (no se vale imprimir el objeto completo).

TEST DE JAVASCRIPT
鈥擵ariable y operaciones鈥
1)
#驴Qu茅 es una variable y para qu茅 sirve?

  • Una variable es un espacio de memoria que se le asigna un nombre para poder usarlo en operaciones logicas.
    #驴Cu谩l es la diferencia entre declarar e inicializar una variable?
  • La diferencia es que mientras una puede variar su valor en operaciones la otro no, se quedara de manera estatica en el valor asignado.

驴Cu谩l es la diferencia entre sumar n煤meros y concatenar strings?

  • Que uno requiere la asignacion de una nueva variable para guardar este valor mientras que el otro solo concatena los valores si operarlos.

驴Cu谩l operador me permite sumar o concatenar?

  • El operador de la suma (+)
    // Como se explica en cursos anteriores las varibles deben ser nombradas de manera muy especificada dado que en la depuracion del codigo necesitamos entender a que se refiere cada varible y esto es una buena practica usada muy a menudo, tambien es recomendable usar nombres en ingles (eceptuando los ya reservados por el propio lenguaje ) ya que es mas usado este lenguaje dentro del mundo tech. //
    2-3)
    var name = nombre;
    var lastName = apellido;
    var userName = usuario;
    let age = edad;
    let email = correo;
    var 18age = adulto;
    var saved =dineroAhorrado;
    var debts = deudas;
    var money = dinero;

console.log ("name " + 鈥渓astName鈥);
money = saved-debts;
console.log (money);
鈥擣unciones鈥
1)
#驴Qu茅 es una funci贸n?

  • Una funci贸n es un compendio de instrucciones que se desarrollan mediante su llamado y no en cascada.

驴Cu谩ndo me sirve usar una funci贸n en mi c贸digo?

  • Cuando tengo una tarea repetitiva y necesito usar el c贸digo m煤ltiples veces.
    #驴Cu谩l es la diferencia entre par谩metros y argumentos de una funci贸n?
  • Los parametros son los datos que la funcion va a requerir mientras que los argumentos son los valores que le damos a la funcion para que los opere es decir los valores que pusimos como paramentros.

const name = 鈥淛uan David鈥;
const lastname = 鈥淐astro Gallego鈥;
const completeName = name + lastname;
const nickname = 鈥渏uandc鈥;

console.log("Mi nombre es " + completeName + ", pero prefiero que me digas " + nickname + 鈥.鈥);
function presentacion (name, lastName, completeName, nickName){
console.log("Mi nombre es " + completeName + ", pero prefiero que me digas " + nickname + 鈥.鈥);
}
鈥擟ondicionales鈥
1)
#驴Qu茅 es un condicional?

  • Es una condicion que se le asigna a una varibble para que realice una tarea dependiendo de si cumple o no el condicional.
    #驴Qu茅 tipos de condicionales existen en JavaScript y cu谩les son sus diferencias?
  • existen 3 (if, If-else, Swicht)
    la principal diferencia es su sintaxis ya que todos se encargan de evaluar y dependiendo de esa evaluacion realizar una u otra tarea
    #驴Puedo combinar funciones y condicionales?
  • Si, esto se le conoce como condicional anidado

const tipoDeSuscripcion = 鈥淏asic鈥;

switch (tipoDeSuscripcion) {
case 鈥淔ree鈥:
console.log(鈥淪olo puedes tomar los cursos gratis鈥);
break;
case 鈥淏asic鈥:
console.log(鈥淧uedes tomar casi todos los cursos de Platzi durante un mes鈥);
break;
case 鈥淓xpert鈥:
console.log(鈥淧uedes tomar casi todos los cursos de Platzi durante un a帽o鈥);
break;
case 鈥淓xpertPlus鈥:
console.log(鈥淭煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi durante un a帽o鈥);
break;
}
if (tipoDeSuscripcion == Free ){
console.log(鈥淪olo puedes tomar los cursos gratis鈥);
}
else if (tipoDeSuscripcion == Basic ){
console.log(鈥淧uedes tomar casi todos los cursos
de Platzi durante un mes鈥);
}
else if (tipoDeSuscripcion == Expert ){
console.log(鈥淧uedes tomar casi todos los cursos de Platzi durante un a帽o鈥);
}
else{
console.log(鈥淭煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi durante un a帽o鈥);
}
鈥擟iclos鈥
1)
#驴Qu茅 es un ciclo?

  • Un ciclo es una etapa repetitiva del codigo que se usa para hacer tareas de manera rapida que requieran su comprobaciones constante.

驴Qu茅 tipos de ciclos existen en JavaScript?

  • Existen dos (for, While)

驴Qu茅 es un ciclo infinito y por qu茅 es un problema?

  • Un ciclo infinito es una tarea que se repite de tal manera que nunca termina y esto evita que demas tareas posteriores se realicen.

驴Puedo mezclar ciclos y condicionales?

  • Si, es lo que mas se realiza en el codigo.

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);
}
let i= 1;
while (i<5){
console.log("El valor de i es: " + i);
i++;
}
let i=10;
while(i>=2){
console.log("El valor de i es: " + i);
}

TEST DE JAVASCRIPT
Variables y operaciones

  1. Responde las siguientes preguntas en la secci贸n de comentarios:

驴Qu茅 es una variable y para qu茅 sirve?
Una variable son ubicaciones de almacenamiento en la memoria de la computadora, se utilizan para guardar valores los cuales se pueden utilizar mas tarde en el programa.
驴Cu谩l es la diferencia entre declarar e inicializar una variable?
cuando declaramos una variable estamos haciendo espec铆ficos en cual ser谩 su nombre, cuando inicializamos la variable en ese momento le estamos asignando un valor.
驴Cu谩l es la diferencia entre sumar n煤meros y concatenar strings?
En que la suma nos permite llegar al resultado de la sumatoria de dos valores num茅ricos, mientras que la concatenaci贸n nos permite unir dos valores de tipo texto y num茅rico.
驴Cu谩l operador me permite sumar o concatenar?
El operador aritm茅tico de la suma (+).

  1. Determina el nombre y tipo de dato para almacenar en variables
    la siguiente informaci贸n:
Nombre = "string"
Apellido = "string"
Nombre de usuario en Platzi = "string"
Edad = "number"
Correo electr贸nico = "string"
Mayor de edad = "boolean"
Dinero ahorrado = "number"
Deudas = "number"

3锔. Traduce a c贸digo JavaScript las variables del ejemplo anterior y deja tu c贸digo en los comentarios.

var nombre = "Wilman"
var apellido = "Garc铆a"
var userPlatzi = "Wilman Garc铆a"
var edad = "300"
var email = "[email protected]"
var mayorEdad = "true"
var dineroAhorrado = "70"
var deudas = "1000"
  1. Calcula e imprime las siguientes variables a partir de las variables
    del ejemplo anterior:
  2. Nombre completo (nombre y apellido).
var nombre = "Wil";
var apellido = "Garc铆a";
var nombreCompleto = (nombre + " " + apellido);
console.log(nombreCompleto);
  1. Dinero real (dinero ahorrado menos deudas).
var dineroAhorrado = 150000
var deudas = 700
var dineroReal = (dineroAhorrado - deudas);
console.log(dineroReal);

Funciones

1锔. Responde las siguientes preguntas en la secci贸n de comentarios:

a. 驴Qu茅 es una funci贸n?
Una funci贸n es un bloque de c贸digo que realiza alguna operaci贸n.
b. 驴Cu谩ndo me sirve usar una funci贸n en mi c贸digo?
Las funciones se usan para realizar una tarea especifica.
c. 驴Cu谩ndo me sirve usar una funci贸n en mi c贸digo?
Los par谩metros son los nombres que aparecen en la definici贸n de una funci贸n. Por su parte, los argumentos son los valores que le pasamos (y que, por tanto, recibe) una funci贸n.

2锔. Convierte el siguiente c贸digo en una funci贸n, pero, cambiando cuando sea necesario las variables constantes por par谩metros y argumentos en una funci贸n:


function quienEres(name, lastname, nickname){
	completeName = (name + " " + lastname);
	return "Mi nombre es " + completeName + ", pero prefiero que me digas " + nickname + ".";
}

var resultado = quienEres("Wilman", "Garcia", "Wil");
console.log(resultado);

Condicionales

1锔. Responde las siguientes preguntas en la secci贸n de comentarios:

a. 驴Qu茅 es un condicional?
Una condicional nos permite tomar decisiones a partir de una comparaci贸n o a partir de una operaci贸n.

b. 驴Qu茅 tipos de condicionales existen en JavaScript y cu谩les son sus diferencias?
if/else y switch.
Las diferencias son en el uso, si debes elegir entre varias opciones posibles
dependiendo de una o varias condiciones, se usar铆a CASE, ya que permite juntar de manera m谩s f谩cil las distintas opciones. Ahora si debes comprobar que una
condici贸n es verdadera o falsa y seg煤n esto asignar un valor, se usar铆a IF.

c. 驴Puedo combinar funciones y condicionales?
Si claro.

2锔. Replica el comportamiento del siguiente c贸digo que usa la sentencia switch utilizando if, else y else if:

Ejemplo:

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;
}

Con if:

var tipoSuscripcion = "Basic";

if (tipoSuscripcion === "ExpertPlus"){
	console.log("T煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi durante un a帽o");
	}else if (tipoSuscripcion === "Expert"){
		console.log("Puedes tomar casi todos los cursos de Platzi durante un a帽o");
	}else if (tipoSuscripcion === "Basic"){
		console.log("Puedes tomar casi todos los cursos de Platzi durante un mes");
	}else if (tipoSuscripcion === "Free"){
		console.log("Solo puedes tomar los cursos gratis");
	}else{
		console.log("Error con el tipo de Suscripcion");
}

3锔. Replica el comportamiento de tu condicional anterior con if, else y else if, pero ahora solo con if (sin else ni else if). 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.

  
var tipoSuscripcion = ["Free","Basic", "Expert", "ExpertPlus"];
var infoSuscripcion = [
"solo puedes tomar los cursos gratis", 
"puedes tomar casi todos los cursos de Platzi durante un mes", 
"puedes tomar casi todos los cursos de Platzi durante un a帽o", 
"t煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi durante un a帽o"];
let usuarioSuscripcion = "Expert";
for (let i=0; i < tipoSuscripcion.length; i++) {
  if (usuarioSuscripcion == tipoSuscripcion[i]) {
  	console.log(`Si tienes la suscripcion tipo ${tipoSuscripcion[i] + ","}  tendras acceso a: ${infoSuscripcion[i]}`)
  }
}

Ciclos

1锔. Responde las siguientes preguntas en la secci贸n de comentarios:

a. 驴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.

b. 驴Qu茅 tipos de ciclos existen en JavaScript?
Existen 3 tipos de ciclos: For, While, Do-While.

c. 驴Qu茅 es un ciclo infinito y por qu茅 es un problema?
Un ciclo infinito es un error de l贸gica de programaci贸n. Los ciclos infinitos inicialmente no pueden ser detectados por algunos compiladores, por lo cual, el resultado se produce cuando el programa est谩 en ejecuci贸n. Los ciclos infinitos no tienen buena l贸gica en su condici贸n de terminaci贸n.

d. 驴Puedo mezclar ciclos y condicionales?
Si.

2锔. Replica el comportamiento de los siguientes ciclos for utilizando ciclos while:

Ejemplo a:

for (let i = 0; i < 5; i++) {
    console.log("El valor de i es: " + i);
}

var i = 0
while (i < 5){
	i++
	console.log("El valor de i es: " + i);
}

Ejemplo b:

for (let i = 10; i >= 2; i--) {
    console.log("El valor de i es: " + i);
}

var i = 10
while (i >= 2){
	i--
	console.log("El valor de i es: " + i);
}

3锔. Escribe un c贸digo en JavaScript que le pregunte a los usuarios cu谩nto es 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.

var numero1 = 2;
var numero2 = 2;
var resultado = numero1 + numero2;
let pregunta = {
  pregunta1: `Cuanto es ( ${numero1} + ${numero2} ) ?`
}
function prueba() {
  var usuarioInput = prompt(pregunta.pregunta1);
  if (usuarioInput == resultado) {
    alert("Felicitaciones! Respuesta correcta");
  } else {
    alert("Respuesta incorrecta, vuelva a intentarlo");
  }
}
prueba();


Listas

a. 驴Qu茅 es un array?
Un array, es un tipo de dato estructurado que permite almacenar un conjunto de datos homog茅neo, es decir, todos ellos del mismo tipo y relacionados.

b. 驴Qu茅 es un objeto?
La programaci贸n orientada a objetos o simplemente POO, es un paradigma de programaci贸n que utiliza el concepto de un 鈥渙bjeto鈥 para agrupar informaci贸n relacionada entre s铆.

c. 驴Cu谩ndo es mejor usar objetos o arrays?
Los arrays se usan para series que poseen valores simples, mientras que los objetos son utilizadas para las series en que hay distintos objetos y propiedades con diferentes valores.

d. 驴Puedo mezclar arrays con objetos o incluso objetos con arrays?
Afirmativo.

2锔. Crea una funci贸n que pueda recibir cualquier array como par谩metro e imprima su primer elemento.

var colors = ["Yellow", "Blue", "Red", "Green", "Orange", "Violet"];
function readArray(array){
	console.log(array[0])
}
readArray(colors);

3锔. Crea una funci贸n que pueda recibir cualquier array como par谩metro e imprima todos sus elementos uno por uno (no se vale imprimir el array completo).

var colors = ["Yellow", "Blue", "Red", "Green", "Orange", "Violet"];
function readArray(array) {
  for (let i = 0; i < array.length; i++) {
    console.log(`${i + 1} ${array[i]}`)
  }
}
readArray(colors);

4锔. Crea una funci贸n que pueda recibir cualquier objeto como par谩metro e imprima todos sus elementos uno por uno (no se vale imprimir el objeto completo).


var vehiculo = {
  make: "Honda",
  model: "Civic",
  year: 2001,
};
function readObject(object) {
  for (let key in object) {
    console.log(object[key]);
 	}
 }
readObject(vehiculo); 

1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:
驴Qu茅 es una variable y para qu茅 sirve?: Es un espacio que se guarda en memoria cuanto a informaci贸n y nos ayuda a darle un valor a otras cosas de nuestro c贸digo o bien utilizarlas como un m煤ltiple repertorio de informaci贸n dentro de nuestro c贸digo

驴Cu谩l es la diferencia entre declarar e inicializar una variable?: cuando declaramos una variable, le estamos dando un valor a algo que no lo tenia y al inicializarla estamos usando ese valor para realizar alguna acsion

驴Cu谩l es la diferencia entre sumar n煤meros y concatenar strings?: La suma de datos tipo numero solo nos dara un resultado pero si concatenamos strings, javaScript solo juntara los datos tipo string el uno a lado del otro.

驴Cu谩l operador me permite sumar o concatenar?: +

2锔忊儯 Determina el nombre y tipo de dato para almacenar en variables la siguiente informaci贸n:
Nombre: "String"
Apellido: "String"
Nombre de usuario en Platzi: "String"
Edad: "Number"
Correo electr贸nico: "String"
Mayor de edad: "Booleano"
Dinero ahorrado: "Number"
Deudas: "Number"
3锔忊儯 Traduce a c贸digo JavaScript las variables del ejemplo anterior y deja tu c贸digo en los comentarios.

<
var Nombre = "Gilberto"
var Apellido = "Monroy"
var NombreDeUsuarioEnPlatzi = "Gilberto Alejandro"
var Edad = 22
var CorreoElectr贸nico = "[email protected]"
> 

4锔忊儯 Calcula e imprime las siguientes variables a partir de las variables del ejemplo anterior:
Nombre completo (nombre y apellido)
Dinero real (dinero ahorrado menos deudas)

<var nombre = "gilberto ";
var apellido =  "Monroy";
let nombreCompleto = nombre + apellido
console.log("mi nombre completo es: ${nombreCompleto})

var dineroGanado = 1000
var deudas = 800
var dineroReal = dineroGanado - deudas> 

Funciones
1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:
驴Qu茅 es una funci贸n? es un conjunto de acciones que nos permite realizar nuestro codigo

驴Cu谩ndo me sirve usar una funci贸n en mi c贸digo? cuando la mandamos llamar o la inicializamos

驴Cu谩l es la diferencia entre par谩metros y argumentos de una funci贸n?: los par谩metros son los datos que toma una funci贸n para ejecutarse y los argumentos ser谩n los datos que nos pedir谩 el programa para saber si se ejecutara la funci贸n o no

2锔忊儯 Convierte el siguiente c贸digo en una funci贸n, pero, cambiando cuando sea necesario las variables constantes por par谩metros y argumentos en una funci贸n:

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 presentation(name, lastName, nickName){
  return console.log(`Mi nombre completo es ${name} ${lastName}, pero mis amigos me dicen ${nickName}.`);
}
presentation("Gilberto", "Monroy", "Guapo Gil");

Condicionales
1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:
驴Qu茅 es un condicional? nos ayuda a evaluar una seccion del codigo y saber si es falsa o verdadera

驴Qu茅 tipos de condicionales existen en JavaScript y cu谩les son sus diferencias?

  • if= si
    -else=si no

驴Puedo combinar funciones y condicionales? si se puede

2锔忊儯 Replica el comportamiento del siguiente c贸digo que usa la sentencia switch utilizando if, else y else if:

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 = "Free"){
		console.log("Solo puedes tomar los cursos gratis");
	}else 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 (tipoDeSuscripcion = "ExpertPlus"){
		console.log("T煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi durante un a帽o");
}

3锔忊儯 Replica el comportamiento de tu condicional anterior con if, else y else if, pero ahora solo con if (sin else ni else if).
馃挕 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"{
	if (tipoDeSuscripcion = "Free"){
		console.log("Solo puedes tomar los cursos gratis");
	}else (tipoDeSuscripcion = "Basic"){
		console.log("Puedes tomar casi todos los cursos de Platzi durante un mes");
	}else (tipoDeSuscripcion = "Expert"){
		console.log("Puedes tomar casi todos los cursos de Platzi durante un a帽o");
	}else (tipoDeSuscripcion = "ExpertPlus"){
		console.log("T煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi durante un a帽o");
}

Ciclos
1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:
驴Qu茅 es un ciclo? es una repetici贸n en bucle del codigo
驴Qu茅 tipos de ciclos existen en JavaScript? for/whiile
驴Qu茅 es un ciclo infinito y por qu茅 es un problema? es un ciclo que nunca se rompe y es un problema porque no permite que el usuario continue la ejecucuion del programa
驴Puedo mezclar ciclos y condicionales? si

Test de JavaScript


Variables y Operadores:


1- Responde las siguientes preguntas en la secci贸n de comentarios:

  • 驴Qu茅 es una variable y para qu茅 sirve?

Una variable es un espacio reservado en la memoria que nos almacena informaci贸n.

  • 驴Cu谩l es la diferencia entre declarar e inicializar una variable?

Declarar: Declarar una variable es crear un espacio reservado donde vamos a almacenar la informaci贸n ejemplo, var edad;
Inicializar: Es cuando ingresamos datos a la variable creada ejemplo, edad: 30;

  • 驴Cu谩l es la diferencia entre sumar n煤meros y concatenar strings?

Sumar numeros implica la adicion de dos o mas valores numericos para obtener un resultado ejemplo: 2 + 3 = 5
Mientras que la concatenacion de strings es tomar un 鈥淗ola鈥 y 鈥渕undo鈥 la concatenacion de ambas es 鈥淗ola mundo鈥, hay que tener presente que si vamos a realizar una concatenacion de un numero y un string nos puede dar un error en el codigo
ya que por ejemplo 2 y 鈥3鈥 nos puede dar un valor erroneo o 鈥2鈥 y 鈥3鈥 nos puede arrojar un 23 ya que no los suma por lo que los toma como string.

  • 驴Cu谩l operador me permite sumar o concatenar?

El operador 鈥+鈥 se utiliza tanto para sumar valores num茅ricos como para concatenar cadenas de texto en muchos lenguajes de programaci贸n.

Cuando se utiliza el operador 鈥+鈥 con valores num茅ricos, realiza la operaci贸n de suma aritm茅tica y devuelve el resultado num茅rico correspondiente. Por ejemplo, si se tienen las variables 鈥渁鈥 y 鈥渂鈥 con los valores num茅ricos 2 y 3, respectivamente, la expresi贸n 鈥渁 + b鈥 devolver谩 el valor num茅rico 5.

Por otro lado, cuando se utiliza el operador 鈥+鈥 con cadenas de texto, se realiza la concatenaci贸n de los strings y se devuelve una nueva cadena que resulta de unir las cadenas originales. Por ejemplo, si se tienen las variables 鈥渟aludo鈥 y 鈥渘ombre鈥 con los valores "Hola " y 鈥淛uan鈥, respectivamente, la expresi贸n 鈥渟aludo + nombre鈥 devolver谩 la cadena 鈥淗ola Juan鈥.

Es importante tener en cuenta que la suma y la concatenaci贸n son operaciones diferentes y que el operador 鈥+鈥 se comporta de manera diferente seg煤n el tipo de datos que se est茅n utilizando.


2- Determina el nombre y tipo de dato para almacenar en variables la siguiente informaci贸n:

  • Nombre 鈥淪tring鈥
  • Apellido 鈥淪tring鈥
  • Nombre de usuario en Platzi 鈥淪tring鈥
  • Edad 鈥淣umber鈥
  • Correo electr贸nico 鈥淪tring鈥
  • Mayor de edad 鈥淏oolean鈥
  • Dinero ahorrado 鈥淣umber鈥
  • Deudas 鈥淣umber鈥

3- Traduce a c贸digo JavaScript las variables del ejemplo anterior y deja tu c贸digo en los comentarios.

var Nombre = "Juan";
var Apellido = "Delgadillo";
var Nombre_de_usuario_en_platzi = "[email protected]";
var Edad = 23;
var Correo = "[email protected]";
var Mayor_de_edad = true;
var Dinero_ahorrado = 20000;
var Deudas = 15000;

4- Calcula e imprime las siguientes variables a partir de las variables del ejemplo anterior:

  • Nombre completo (nombre y apellido)
  • Dinero real (dinero ahorrado menos deudas)
//Saludar persona
var Nombre = "Juan";

function saludarPersona (){
    var Apellido = "Delgadillo";
    return Nombre + " " + Apellido
}

saludarPersona ();

//Dinero ahorrado total

var Dinero_ahorrado = 20000;
var Deudas = 15000;
var totalAhorrado = Dinero_ahorrado - Deudas;

console.log(`El total que tengo ahorrado fuera de deudas es: ${totalAhorrado}`);

Funciones


1- Responde las siguientes preguntas en la secci贸n de comentarios:

  • 驴Qu茅 es una funci贸n?

una funci贸n es un bloque de c贸digo que realiza una tarea espec铆fica y puede ser llamado desde otros lugares del programa para ejecutar esa tarea. Una funci贸n puede tomar ciertos valores de entrada, llamados argumentos o par谩metros, y puede devolver un resultado al final de su ejecuci贸n.

  • 驴Cu谩ndo me sirve usar una funci贸n en mi c贸digo?

las funciones son 煤tiles para modularizar y reutilizar c贸digo, simplificar la l贸gica compleja, mejorar la legibilidad del c贸digo y facilitar la depuraci贸n.

  • 驴Cu谩l es la diferencia entre par谩metros y argumentos de una funci贸n?

los par谩metros son valores que se definen en la definici贸n de la funci贸n y se espera que se reciban cuando se llama la funci贸n, mientras que los argumentos son los valores reales que se pasan a la funci贸n cuando se llama.

2- Convierte el siguiente c贸digo en una funci贸n, pero, cambiando cuando sea necesario las variables constantes por par谩metros y argumentos en una funci贸n:

const name = "Juan";
const lastname = "Delgadillo";
const completeName = name + lastname;
const nickname = "juanpa";


function presentacion(name, lastname, nickname){
    return console.log(`Hola, me llamo ${name} ${lastname}, pero mis amigos me dicen ${nickname}. Un gusto conocerlos.`);
}

presentacion("Juan", "Delgadillo", "juanpa");

Condicionales


1- Responde las siguientes preguntas en la secci贸n de comentarios:

*驴Qu茅 es un condicional?

Una condicional es una expresion que permite evaluar si una algo es verdadero o falso (true, false).

  • 驴Qu茅 tipos de condicionales existen en JavaScript y cu谩les son sus diferencias?
  • if鈥lse: el condicional IF se utiliza como un boocle de codigo para saber si una condicion es verdadera, el ELSE se utiliza para ejecutar un bloque de codigo por si la condicional de if no es verdadera, y el ELSE IF se utiliza para evaluar multiples condiciones por si la anterior no se cumple.

  • switch: Sirve para tomar desiciones basadas en el valor de una variable o expresion, la sintaxis se basa en case, donde pueden haber varios casos de desicion cada uno con un valor especifico que se compara con el valor de expresion, Si se encuentra un caso que coincide con el valor de 鈥渆xpresion鈥, se ejecuta el bloque de c贸digo correspondiente. Si no se encuentra ning煤n caso que coincida, se ejecuta el bloque de c贸digo dentro de la cl谩usula 鈥渄efault鈥. Es importante tener en cuenta que cada caso debe terminar con la palabra clave 鈥渂reak鈥 para evitar que se ejecuten accidentalmente otros casos. Tambi茅n se pueden usar m煤ltiples casos para ejecutar el mismo bloque de c贸digo para diferentes valores.

  • 驴Puedo combinar funciones y condicionales?

S铆, es posible combinar funciones y condicionales en JavaScript para crear algoritmos m谩s complejos y adaptativos. De hecho, esta es una pr谩ctica com煤n en la programaci贸n.

Por ejemplo, puedes utilizar una estructura condicional como 鈥渋f鈥lse鈥 dentro de una funci贸n para realizar diferentes acciones en funci贸n de las condiciones que se cumplan. Tambi茅n puedes llamar a una funci贸n dentro de una estructura condicional para ejecutar un bloque de c贸digo diferente dependiendo de los resultados de la funci贸n.

  • Replica el comportamiento del siguiente c贸digo que usa la sentencia switch utilizando if, else y else if:
const tipoDeSuscripcion = "Basic";

if (tipoDeSuscripcion == "Free"){
    console.log("Solo puedes tomar los cursos gratis");
}else 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("No puedes tomar ningun curso, ya que no tienes suscripcion");
}

Ciclos


1- Responde las siguientes preguntas en la secci贸n de comentarios:

*驴Qu茅 es un ciclo?

Un ciclo es algo que se genera repetidas veces hasta cumplir la condicion.

  • 驴Qu茅 tipos de ciclos existen en JavaScript?

Ciclo While, Do while y ciclo for

*驴Qu茅 es un ciclo infinito y por qu茅 es un problema?

Es un ciclo que se ejecuta repetidas veces sin parar ya que no hay una condicion que lo detenga, es perjudicial para tu pc ya que lo puede volver lento o incluso da帽arlo.

*驴Puedo mezclar ciclos y condicionales?

S铆, es posible mezclar ciclos y condicionales en JavaScript para crear algoritmos m谩s complejos y adaptativos.

Por ejemplo, puedes utilizar una estructura de repetici贸n como 鈥渨hile鈥 o 鈥渇or鈥 dentro de una estructura condicional para realizar diferentes acciones en funci贸n de las condiciones que se cumplan durante la ejecuci贸n del ciclo.

2- Replica el comportamiento de los siguientes ciclos for utilizando ciclos while:

let i = 0;
while (i < 5){
    i++;
    console.log(`El valor de i es: ${i}`);
}

let i = 10;
while (i >= 2){
    i--;
    console.log(`El valor de i es: ${i}`);
}

3- Escribe un c贸digo en JavaScript que le pregunte a los usuarios cu谩nto es 2 + 2. Si responden bien, mostramos un mensaje de felicitaciones, pero si responden mal, volvemos a empezar.

let respuestaCorrecta = false; // Indica si la respuesta es correcta
while (!respuestaCorrecta) { // Mientras la respuesta no sea correcta
  let respuesta = prompt("驴Cu谩nto es 2 + 2?"); // Preguntamos al usuario
  if (respuesta == 4) { // Si la respuesta es correcta
    alert("隆Felicitaciones, respondiste correctamente!"); // Mostramos un mensaje de felicitaciones
    respuestaCorrecta = true; // Indicamos que la respuesta es correcta
  } else { // Si la respuesta es incorrecta
    alert("Lo siento, esa no es la respuesta correcta. 隆Intenta de nuevo!"); // Mostramos un mensaje de error
  }
}

Listas


1- Responde las siguientes preguntas en la secci贸n de comentarios:

*驴Qu茅 es un array?

Un array es una variable que puede guardar multiples valores, se escribe dentro de [鈥, separados por comas.

*驴Qu茅 es un objeto?

Un objeto es una estructura de datos que permite almacenar valores mediante propiedad - valor a trav茅s de la sintaxis de llaves ({}) y separados por comas.

*驴Cu谩ndo es mejor usar objetos o arrays?

Los objetos se utilizan cuando el conjunto de los elementos es mas grande, mientras que los arrays se utilizan principalmente para almacenar y acceder a colecciones ordenadas de elementos del mismo tipo de datos.

*驴Puedo mezclar arrays con objetos o incluso objetos con arrays?

S铆, es posible mezclar arrays con objetos o incluso objetos con arrays en la programaci贸n, y en muchos casos es una pr谩ctica com煤n.

Por ejemplo, puedes tener un array que contenga varios objetos, donde cada objeto representa un usuario en una aplicaci贸n web. Cada objeto puede tener diferentes propiedades como el nombre, correo electr贸nico, direcci贸n, etc. De esta manera, el array proporciona una colecci贸n de usuarios ordenados y puedes acceder a cada objeto por su 铆ndice en el array.

2- Crea una funci贸n que pueda recibir cualquier array como par谩metro e imprima su primer elemento.

var fruta = ["Manzana", "Pera", "mandarina", "granadilla"];
    function comprarFruta(array){
        console.log(array[0])
    }
    comprarFruta(fruta);

3- Crea una funci贸n que pueda recibir cualquier array como par谩metro e imprima todos sus elementos uno por uno (no se vale imprimir el array completo).

var fruta = ["Manzana", "Pera", "mandarina", "granadilla"];
    function comprarFruta(array){
        for (var i=0; i < array.length; i++){
            console.log(`${i +1} ${array[i]}`);
        }
    }
    comprarFruta(fruta);

4- Crea una funci贸n que pueda recibir cualquier objeto como par谩metro e imprima todos sus elementos uno por uno (no se vale imprimir el objeto completo).

var miPc = {
    marca: "Lenovo",
    modelo: "Thinkpad",
    a帽o: 2023
};
function myComputer(objeto){
    for (var key in objeto){
        console.log(objeto[key]);
    }
}
myComputer(miPc);

Variables y operaciones

1锔.- Responde las siguientes preguntas en la secci贸n de comentarios:
驴Qu茅 es una variable y para qu茅 sirve?

Es una referencia a un espacion en memoria. Nos sirve para referi ese espacio de memoria y poder almacenar datos.

驴Cu谩l es la diferencia entre declarar e inicializar una variable?

La declaracion solo reserva un espacio en memoria, la asignacion guarda el dato en ese espacio de memoria.

驴Cu谩l es la diferencia entre sumar n煤meros y concatenar strings?

La suma refiere a la operaci贸n matematica entre numeros llamada addicion, la concatenacion es la union de dos cadenas de caracteres aun que sean numeros.

驴Cu谩l operador me permite sumar o concatenar?
El operador es el simbolo mas 鈥+鈥

2锔.- Determina el nombre y tipo de dato para almacenar en variables la siguiente informaci贸n:

Nombre 鈥 鈥渟tring鈥
Apellido 鈥 鈥渟tring鈥
Nombre de usuario en Platzi 鈥 鈥渟tring鈥
Edad 鈥 鈥渘umber鈥
Correo electr贸nico 鈥 鈥渟tring鈥
Mayor de edad 鈥 鈥渂oolean鈥
Dinero ahorrado 鈥 鈥渘umber鈥
Deudas 鈥 鈥渂oolean鈥

3锔 Traduce a c贸digo JavaScript las variables del ejemplo anterior y deja tu c贸digo en los comentarios.

var nombre = 鈥淢iguel Angel鈥;
var apellido = 鈥淏arron鈥;
var nombre_usuario_platzi = 鈥渆kim鈥;
var edad = 鈥18鈥;
var eMail = 鈥[email protected]鈥;
var mayorEdad = true;
var dineroAhorrado = 5000;
var deudas = 200;

4锔 Calcula e imprime las siguientes variables a partir de las variables del ejemplo anterior:

console.log( Nombre Completo ${nombre} ${apellido})
console.log( Dinero real ${dineroAhorrado - deudas})

Funciones

1锔 Responde las siguientes preguntas en la secci贸n de comentarios:
驴Qu茅 es una funci贸n?

Procedimiento o un conjunto de instrucciones que realiza una tarea o calcula un valor, pero para que un procedimiento califique como funci贸n, puede tomar alguna entrada(s) y /puede devolver una salida.

驴Cu谩ndo me sirve usar una funci贸n en mi c贸digo?

Cuando queremos realizar procesos repetitivos o tambien para ordenar y reutilizar codigo

驴Cu谩l es la diferencia entre par谩metros y argumentos de una funci贸n?

Los par谩metros: est谩n envueltas en par茅ntesis (), son variables propias de la funci贸n y deber谩n utilizarse en el contenido. Hacen referencia a los argumentos en la invocaci贸n.

2锔 Convierte el siguiente c贸digo en una funci贸n, pero, cambiando cuando sea necesario las variables constantes por par谩metros y argumentos en una funci贸n:

const name = 鈥淛uan David鈥;
const lastname = 鈥淐astro Gallego鈥;
const completeName = name + lastname;
const nickname = 鈥渏uandc鈥;
console.log("Mi nombre es " + completeName + ", pero prefiero que me digas " + nickname + 鈥.鈥);

function saludo( name, lastName, nickname){
var completeName = name + lastname;
console.log("Mi nombre es " + completeName + ", pero prefiero que me digas " + nickname + 鈥.鈥);
}
saludo(鈥淛uan David 鈥 , 鈥淐astro Gallego鈥, 鈥渏uandc鈥 );

Condicionales

1锔 Responde las siguientes preguntas en la secci贸n de comentarios:

驴Qu茅 es un condicional?

Los condicionales son estructuras de control que te permiten evaluar diferentes expresiones y realizar determinadas acciones en JavasScript.

驴Qu茅 tipos de condicionales existen en JavaScript y cu谩les son sus diferencias?

If, Else, else if, switch

驴Puedo combinar funciones y condicionales?

Si se puede

2锔 Replica el comportamiento del siguiente c贸digo que usa la sentencia switch utilizando if, else y else if:

const tipoDeSuscripcion = 鈥淏asic鈥;

switch (tipoDeSuscripcion) {
case 鈥淔ree鈥:
console.log(鈥淪olo puedes tomar los cursos gratis鈥);
break;
case 鈥淏asic鈥:
console.log(鈥淧uedes tomar casi todos los cursos de Platzi durante un mes鈥);
break;
case 鈥淓xpert鈥:
console.log(鈥淧uedes tomar casi todos los cursos de Platzi durante un a帽o鈥);
break;
case 鈥淓xpertPlus鈥:
console.log(鈥淭煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi durante un a帽o鈥);
break;

if(tipoDeSuscripcion == 鈥淔ree鈥){
console.log(鈥淪olo puedes tomar los cursos gratis鈥);
}else if( tipoDeSuscripcion == 鈥淏asic鈥) {
console.log(鈥淧uedes tomar casi todos los cursos de Platzi durante un mes鈥);
}else if( tipoDeSuscripcion == 鈥淓xpert鈥) {
console.log(鈥淧uedes tomar casi todos los cursos de Platzi durante un a帽o鈥);
}else if( tipoDeSuscripcion == 鈥淓xpertPlus鈥) {
console.log(鈥淭煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi durante un a帽o鈥);
}

}
3锔 Replica el comportamiento de tu condicional anterior con if, else y else if, pero ahora solo con if (sin else ni else if).

var nivelSel = 鈥淏asic鈥;
var opccion = [
{
nivel: 鈥淔ree鈥,
mensaje:鈥淪olo puedes tomar los cursos gratis鈥
},

{
nivel: 鈥淏asic鈥,
mensaje:鈥淧uedes tomar casi todos los cursos de Platzi durante un mes鈥
},

{
nivel: 鈥淓xpert鈥,
mensaje:鈥淧uedes tomar casi todos los cursos de Platzi durante un a帽o鈥
},
{
nivel: 鈥淓xpertPlus鈥,
mensaje:鈥淭煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi durante un a帽o鈥
}
];

var mensajeS = opccion.filter( function(seleccion){
return seleccion.nivel == nivelSel
});

console.log(mensajeS[0].mensaje);

馃挕 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. 馃槒

Ciclos

1锔 Responde las siguientes preguntas en la secci贸n de comentarios:

驴Qu茅 es un ciclo?

Un bucle (loop) o ciclo repetitivo es una estructura de control que te permite realizar una o varias instrucciones mientras una condici贸n sea verdadera.

驴Qu茅 tipos de ciclos existen en JavaScript?

For (para)
While (mientras)

驴Qu茅 es un ciclo infinito y por qu茅 es un problema?

Un ciclo que se repite de forma indefinida ya que su condici贸n para finalizar nunca se cumple

驴Puedo mezclar ciclos y condicionales?

Si, se puede

2锔 Replica el comportamiento de los siguientes ciclos for utilizando ciclos while:

for (let i = 0; i < 5; i++) {
console.log("El valor de i es: " + i);
}

var i =0;
while(i< 5 ){
console.log("El valor de i es: " + i);
i++;
}

for (let i = 10; i >= 2; i鈥) {
console.log("El valor de i es: " + i);
}

var i =10;
while( i >= 2 ){
console.log("El valor de i es: " + i);
i鈥;
}

3锔 Escribe un c贸digo en JavaScript que le pregunte a los usuarios cu谩nto es 2 + 2. Si responden bien, mostramos un mensaje de felicitaciones, pero si responden mal, volvemos a empezar.

var validar = true;
var respuesta = 鈥0鈥;
while( validar ){
respuesta = prompt ( "Hola cuanto es 2+2: ");
if( respuesta ==4){
validar = false;
console.log("Felicidades lo conseguiste ")
}
}
馃挕 Pista: puedes usar la funci贸n prompt de JavaScript.

Listas

1锔 Responde las siguientes preguntas en la secci贸n de comentarios:

驴Qu茅 es un array?

Un array es una estructura de datos que permite almacenar una serie de datos localizados por 铆ndices y separados por comas.
驴Qu茅 es un objeto?

Un objeto es una estructura de datos que permite almacenar valores mediante propiedad - valor a trav茅s de la sintaxis de llaves ({}) y separados por comas.

驴Cu谩ndo es mejor usar objetos o arrays?

Los arrays se usan para series que poseen valores simples, mientras que los objetos son utilizadas para las series en que hay distintos objetos y propiedades con diferentes valores

驴Puedo mezclar arrays con objetos o incluso objetos con arrays?

Si se puede

2锔 Crea una funci贸n que pueda recibir cualquier array como par谩metro e imprima su primer elemento.

var arrayPrueba = [鈥0鈥, 鈥1鈥, 鈥2鈥, 鈥3鈥, 鈥4鈥漖;
function primerElemento(array){
console.log( array[0]);
}
primerElemento(arrayPrueba);

3锔 Crea una funci贸n que pueda recibir cualquier array como par谩metro e imprima todos sus elementos uno por uno (no se vale imprimir el array completo).

var arrayPrueba = [鈥0鈥, 鈥1鈥, 鈥2鈥, 鈥3鈥, 鈥4鈥漖;
function elementos(array){
array.forEach( function(elemento){
console.log(elemento);
});
}
elementos (arrayPrueba);

4锔 Crea una funci贸n que pueda recibir cualquier objeto como par谩metro e imprima todos sus elementos uno por uno (no se vale imprimir el objeto completo).

var arrayPrueba = [鈥0鈥, 鈥1鈥, 鈥2鈥, 鈥3鈥, 鈥4鈥漖;
function elementos(array){
array.forEach( function(elemento){
console.log(elemento);
});
}
elementos (arrayPrueba);

Variables y Operaciones

  1. Responde las siguientes preguntas en la secci贸n de comentarios:
  • 驴Qu茅 es una variable y para qu茅 sirve?
    Es un espacio reservado de memoria donde se puede almacenar un dato el cual se puede identificar por un nombre

  • 驴Cu谩l es la diferencia entre declarar e inicializar una variable?
    Cuando declaramos una variable solo le estamos diciendo a la computadora que reserve un espacio de memoria y que lo relacione con un nombre espec铆fico, ese valor por ahora es 鈥渘ull鈥. Al inicializar una variable le estamos asignando un valor en espec铆fico, este valor puede ser un int, String, boolean, double entre otras.

  • 驴Cu谩l es la diferencia entre sumar n煤meros y concatenar strings?
    Un ejemplo para entender esta diferencia sucede cuando concatenamos " 鈥1鈥 + 鈥1鈥 " los cuales al tener comillas son considerados como datos tipo String por lo tanto no se suman y en su lugar se concatenar, dando como resultado 鈥11鈥. Ahora cuando colocamos 鈥1 + 1鈥 los dos n煤meros son datos tipo int por lo cual son sumados y dan 2 como resultado.

  • 驴Cu谩l operador me permite sumar o concatenar?
    Teniendo en cuenta el ejemplo anterior el s铆mbolo 鈥+鈥 nos sirve tanto para sumar como para concatenar

  1. Determina el nombre y tipo de dato para almacenar en variables la siguiente informaci贸n
  • Nombre: String
  • Apellido: String
  • Nombre de usuario en Platzi: String
  • Edad: number
  • Correo Electr贸nico: String
  • Mayor de edad: Boolean
  • Dinero ahorrado: number
  • Deudas: number
  1. Traduce a c贸digo JavaScript las variables del ejemplo anterior y deja tu c贸digo en los comentarios.
// Variables de varios tipos
let name = "Fernando";
let lastName = "Orozco";
let usernamePlatzi = "ferorozco";
let age = 23;
let email = "[email protected]";
let adult = true;
let savings = 23000;
let debt = 4000;
  1. Calcula e imprime las siguientes variables a partir de las variables del ejemplo anterior:
  • Nombre completo (nombre y apellido)
let name = "Fernando";
let lastName = "Orozco";
console.log(`Mi nombre completo es: ${name} ${lastName}, es un placer conocerlos :D);
  • Dinero real (dinero ahorrado menos deudas)
let savings = 23000;
let debts = 4000;
let netWorth;
netWorth = savings - debts;
consoles.log(`Your current Net Worth is: ${netWorth}`);

Funciones

  1. Responde las siguientes preguntas en la secci贸n de comentarios:
  • 驴Qu茅 es una funci贸n?
    Una funci贸n es un bloque de c贸digo o instrucciones las cuales se identifican con la palabra reservada 鈥渇unction鈥 y un nombre, estas instrucciones tienen como objetivos ser usadas varias veces lo cual nos ayudar谩 a no repetir c贸digo. Las funciones tambi茅n nos ayudan a modularizar nuestros proyectos, lo cual permite a que sea f谩cil su mantenimiento en el futuro.

  • 驴Cu谩ndo me sirve usar una funci贸n en mi c贸digo?
    Cuando tenemos planeado repetir un cierto n煤mero de l铆neas de c贸digo, en vez de escribirlas y repetirlas las definimos una sola vez y cuando las necesitamos simplemente invocamos a la funci贸n que contiene esas instrucciones.

  • 驴Cu谩l es la diferencia entre par谩metros y argumentos de una funci贸n?
    Estas dos definiciones suelen confundirse mucho debido a que parecen ser los mismo cuando hablamos de una funci贸n, la manera de saber cual es cual est谩 en entender que cuando DEFINIMOS una funci贸n las variables que van entre los par茅ntesis se llaman par谩metros, los cuales recibir谩n un tipo de dato y cuando invocamos la funci贸n y le queremos pasar unos valores, esos valores son los argumentos.

  1. Convierte el siguiente c贸digo en una funci贸n, pero, cambiando cuando sea necesario las variables constantes por par谩metros y argumentos en una funci贸n:
// Definici贸n de mi funci贸n
function greeting(name, lastName, nickname){
	const completeName = name + " " + lastName;
	console.log(`My name is ${completeName}, but I prefer being called ${nickname}.`);
}

// Implementaci贸n de mi funci贸n
greeting("Fernando", "Orozco", "Fer");

Condicionales

  1. Responde las siguientes preguntas en la secci贸n de comentarios:
  • 驴Qu茅 es un condicional?
    Es una verificaci贸n o chequeo que devuelve un valor verdadero o false (True o False), sus ejemplos m谩s conocidos son las estructura if, else, else if, switch.

  • 驴Qu茅 tipos de condicionales existen en JavaScript y cu谩les son sus diferencias?
    If, else, else if, switch.

  • 驴Puedo combinar funciones y condicionales?
    Por su puesto puedes implementar condicionales dentro de una funci贸n o tambi茅n puedes usar una condicional y dependiendo la respuesta puedes ejecutar una funci贸n X o una funci贸n Y, por ejemplo:

if(savings > 0 ){
	showMoneyAvailable();
}else if(savings < 0){
	console.log("You have debts to pay");	
	showExistingDebts(); 
} else {
	console.log("You have no money but also no debts");
}
  1. Replica el comportamiento del siguiente c贸digo que usa la sentencia switch utilizando if, else y else if:
const tipoDeSuscripcion = "Basic";
if(tipoDeSuscripcion === "Free"){
	console.log("Solo puedes tomar los cursos gratis");
}else if (tipoDeSuscripcion === "Basic"){
	console.log("Puedes tomar caso 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帽os");
}else{
	console.log("Usted no tiene ninguna suscripci贸n activa");
} 
  1. Replica el comportamiento de tu condicional anterior con if, else y else if, pero ahora solo con if (sin else ni else if).
// Soluci贸n utilizando objetos y Arrays
let userSuscription = "Basic";
// Array de tipos de suscripci贸n y mensaje de suscripciones
let typeSuscription = ["Free", "Basic", "Expert", "ExpertPlus"];
let messageSuscription = ["Solo puedes tomar los cursos gratis", 
"Puedes tomar casi todos los cursos de Platzi durante un mes", 
"Puedes tomar casi todos los cursos de Platzi durante un a帽o", 
"T煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi durante un a帽o"] 

// Uso un ciclo for para recorrer los Array
for (let i = 0; i < typeSuscription.length; i++){
	if(userSuscription === typeSuscription[i]){
		console.log(`Tu suscripci贸n actual es ${typeSuscription[i]} y ${messageSuscription[i]}`)
	}
}

Ciclos

  • 驴Qu茅 es un ciclo?
    Es una estructura de control en donde se establece un bucle en donde se repetir谩n un bloque de instrucciones un cierto n煤mero de veces, aunque hay que tener cuidado ya que pueden crearse ciclos infinitos.
  • 驴Qu茅 tipos de ciclos existen en JavaScript?
    for, for-each, while, do-while
  • 驴Qu茅 es un ciclo infinito y por qu茅 es un problema?
    Es un ciclo que no tiene fin y se repite infinitamente, suceden cuando no colocamos una instrucci贸n que modifica la condici贸n del ciclo, es problema porque llena de tareas la memoria de la computadora y en JavaScript en espec铆fico puede causar un Stack Overflow
  • 驴Puedo mezclar ciclos y condicionales?
    Por supuesto, en ciclo podemos implementar condicionales y viceversa.
  1. Replica el comportamiento de los siguientes ciclos for utilizando ciclos while:
// Primer ciclo
let i = 0;
while(i > 5){
	console.log("El valor de i es: " + i);
	i++;
}

// Segundo ciclo
let i = 10;
while(i >= 2){
	console.log("El valor de i es: " + i);
	i--;
}
  1. Escribe un c贸digo en JavaScript que le pregunte a los usuarios cu谩nto es 2 + 2. Si responden bien, mostramos un mensaje de felicitaciones, pero si responden mal, volvemos a empezar.
response = 0;
do{
	response = prompt("驴Cu谩nto es 2 + 2?");
	if (response == 4){
		console.log("Felicidades tu respuesta es correcta!");
	}else{
		console.log("Tu respuesta es incorrecta, sigue practicando 鉂!");
}while(response != 4);

LIsta

  1. Responde las siguientes preguntas en la secci贸n de comentarios:
  • 驴Qu茅 es un array?
    Es una colecci贸n de valores o elementos como objetos, est谩n ordenados y se utiliza un 铆ndice para encontrar un valor y se escriben entre corchetes []
  • 驴Qu茅 es un objeto?
    Es la instancia de una clase, o usando una analog铆a es una galleta que sali贸 de un molde de galletas, un objeto tiene atributos y comportamientos.
  • 驴Cu谩ndo es mejor usar objetos o arrays?
    Cuando vamos a trabajar con varios datos de diferentes tipos que est谩n relacionados a un dato principal como una persona o usuario
  • 驴Puedo mezclar arrays con objetos o incluso objetos con arrays?
    Por supuesto un objeto puede tener un array de varios tipos de datos y un array puede estar compuesto de objetos.
  1. Crea una funci贸n que pueda recibir cualquier array como par谩metro e imprima su primer elemento
let seasons = ["Spring","Summer","Fall","Winter"];

function printArray(seasonsArray){
	console.log(`La primera estaci贸n de tu lista es ${seasonsArray[0]}`);
}

printArray(seasons);
  1. Crea una funci贸n que pueda recibir cualquier array como par谩metro e imprima todos sus elementos uno por uno (no se vale imprimir el array completo).
let seasons = ["Spring","Summer","Fall","Winter"];

function printArray(seasonsArray){
	for(let i = 0; i < seasonsArray.length; i++){
		console.log(`${i + 1} ${seasonsArray[i]}`);
	}
}

printArray(seasons);
  1. Crea una funci贸n que pueda recibir cualquier objeto como par谩metro e imprima todos sus elementos uno por uno (no se vale imprimir el objeto completo).
let myPhone = {
	brand : "Samsung",
	model : "Galaxy  S23",
	color : "Silver green"
};

function printObject(myObject){
	for (let key in myObject){
		console.log(myObject[key]);
	}
}
printObject(myPhone);

Saludos al que se atrevi贸 a leer hasta el final 馃お