Prueba de JavaScript

2/24

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 la siguiente clase 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 una 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 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. Mira todo lo que lograste con esta prueba. 🏆

¡Te espero en la siguiente clase para comenzar!

Aportes 1395

Preguntas 35

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

Mis respuestas de la prueba:)
Variables y operaciones

  1. Responde las siguientes preguntas:
    • Un espacio reservado de memoria donde se almacena informacion
    • Una variable se declara para reservar su espacio de memorio, se inicializa para guardar info en ese espacio.
    • Sumar numeros como operacion matematica, concatenar es cuando se juntan dos textos para formar uno mismo
    • El signo de +
let nombre = 'Juanito';
let apellido = 'Alcachofa';
let nombreUsuario = 'JAlcachofa';
let edad = 21;
let email = '[email protected]';
let mayorEdad = true;
let dineroAhorrado = 10000;
let deudas = null;
let fullName = `${nombre} ${apellido}`;
let dineroReal = dineroAhorrado - deudas;

Funciones

  1. Responde las siguientes preguntas
    • Un bloque de código que hace una serie de procedimientos
    • Cuando se repite varias lineas de codigo en el proyecto
    • Parametro es una variable que está en la definición de una función, argumento son los datos que se le pasan a los parametros de una función
const miFuncion = (name, lastName, nickname) => {
	let fullName = `${name} ${lastName}`;
	return `Mi nombre es: ${fullName}, pero prefiero que me digas ${nickname}`;
}
console.log(miFuncion('Juan David', 'Castro Gallego', 'juandc'));

Condicionales

  1. Responde las siguientes preguntas

    • Un grupo de instrucciones que se ejecuta segun el resultado de una evaluación
    • If, else if, switch y ternario
    • Si se puede 😃
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 === 'Expert+') {
	console.log("Tú y alguien más pueden tomar TODOS los cursos de Platzi durante un año");
}

// Codigo solo con 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 === 'Expert+') {
        console.log(
          'Tú y alguien más pueden tomar TODOS los cursos de Platzi durante un año'
        );
      }
    }
  }
}

Ciclos

  1. Responde las siguientes preguntas

    • Un bloque de codigo que se repite n veces
    • for, for of, for in, while, do-while
    • Es un ciclo que nunca se va a detener, puede causar que nuestro ordenador se apague por exceso consumo de memoria en el navegador
    • Si se puede
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--;
}

// punto 3
let respuesta = 0;
do {
  respuesta = prompt('¿Cual es el resultado de 2 + 2?')
  respuesta *= 1;
} while (!(respuesta === 4))

Listas

  1. Responde las siguientes preguntas

    • Son un conjunto de valores del mismo tipo almacenados en una sola variable
    • Un objeto es una colección de propiedades
    • Su uso depende de la necesidad del problema
    • Si se pueden mezclar
const unaFuncion = (array) => {
  console.log(array[0]);
};

// punto 3
let frutas = ['Pera', 'Manzana', 'Sandia'];
const unaFuncion = (array) => {
  array.forEach((elem) => {
    console.log(elem);
  });
};

unaFuncion(frutas);

// Punto 4
let persona = {
  nombre: 'Oscar',
  apellido: 'Aguilar',
  edad: 21
}
const unaFuncion = (objeto) => {
  Object.values(objeto).forEach((elem) => {
    console.log(elem);
  });
};

unaFuncion(persona);

Si me equivoque en alguna por favor corrijanme 😃

Estuvo interesante la prueba jeje aquí dejo el bonus:

const tipoDeSuscripcion = "Free";

const Suscripciones= ["Free","Basic","Expert","Expert+"];
const Respuestas=["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"];

index=Suscripciones.indexOf(tipoDeSuscripcion);
if (index==-1){
    console.error("No exisite este plan u.u");
}
else{
    console.log(Respuestas[index]);
}
  • ¿Puedo combinar funciones y condicionales?

Reto Cumplido
Fueron unas cuantas horas pero lo valió, me sirvió mucho para repasar.

Resultados:

  /* Variables y operaciones */
// 1.-
	// a) Una variable es figuradamente una caja donde 	puedes guardar distintas cosas, como por ejemplo :
    let number = 23;
    const nombre = 'Jesús';
    let mayorDeEdad = true;

	// b) La diferencia es que al declarar una variable no estamos asignándole algún valor y al inicializarla si, por ejemplo:
    // Declarar
    let variable;
    // Inicializar
    variable = true;
	// c) La diferencia  que al sumar strings no se suman los números solo se añaden ejemplo:

    function sumar(a, b) {
      return a + b
    }

    console.log(sumar(4, 2)); // Resultado 6
    console.log(sumar('4', '2')); // Resultado '42'


	// d) El operador de más o suma  (+), ejemplo:
    function sumar(a, b) {
      return a + b
    }

    console.log(sumar(4, 2)); // Resultado 6
    console.log(sumar('Jesús ', 'Sotelo')); // Resultado 'Jesús Sotelo'

// 2.-
  const nombre = 'string';
  const apellido = 'string';
  let usuarioPlatzi = 'string';
  let edad = number;
  const email = 'string';
  let mayorDeEdad = boolean;
  let dineroAhorrado = number;
  let deudas = number;

// 3.- Podríamos generar un Objeto
  const objeto = {
    nombre: 'Jesús',
    apellido: 'Sotelo',
    usuarioPlatzi: '@JesúsSotelo98',
    edad: 23,
    email: '[email protected]',
    mayorDeEdad: true,
    dineroAhorrado: 2000,
    deudas: 500
  }

// 4.-
  const nombreCompleto = objeto.nombre + ' ' + objeto.apellido;
  console.log(nombreCompleto); // Resultado Jesús Sotelo
  const dineroReal = objeto.dineroAhorrado - objeto.deudas;
  console.log(dineroReal); // Resultado 1500


/* Funciones */

// 1.-
  // a) Un bloque de código o de sentencias que se pueden utilizar para generar acciones con los valores que ya se han guardado en variables. En resumen te permiten ahorrar código que se repite mucho
  sumar('Esta función ', 'la declare hasta arriba'); // Resultado 'Esta función la declare hasta arriba'

  // b) Hay que utilizarlas cuando varias sentencias o algoritmos son iguales y solo cambian algunos parámetros, esto nos ayuda ahorrarnos mucho código.
  sumar('Sigo utilizando ', 'la función de suma');

  // c) Los parámetros se definen en la función pueden ser la cantidad de parámetros que recibirá y los argumentos es la información que se la pasara a la función.

  function parametros(p) { // La (p) representa los parámetros
    return p + ' solucionado'
  }

  console.log(parametros('argumento')); // Al declarar la función se le agregan los argumentos R: 'argumento solucionado'

// 2.-
  function precentacion(n, l, nk) {
    return 'Mi nombre es ' + n + ' ' + l + ', pero prefiero que me digas ' + nk
  }
  console.log(precentacion('Juan David', 'Castro Gallegos', 'JuanDC')); // Resultado: 'Mi nombre es Juan David Castro Gallegos, pero prefiero que me digas JuanDC'
  console.log(precentacion('Jesús', 'Sotelo', 'Chuy')); // Resultado: 'Mi nombre es Jesús Sotelo, pero prefiero que me digas Chuy'

/* Condicionales */

// 1.-
  // a) Una condicional indican si se cumple o no una condición.
  function comprobarEdad(edad) {
    if (edad > 18) {
      return console.log('Eres Mayor de edad');
    } else if (edad === 18) {
      return console.log('Apenas y ya eres mayor, ya puedes pasar al teibol');
    } else {
      return console.log('No eres mayor de edad');
    }
  }
  comprobarEdad(17); // Resultado: No eres mayor de edad
  comprobarEdad(18); // Resultado: Apenas y ya eres mayor, ya puedes pasar al teibol
  comprobarEdad(23); // Resultado: Eres Mayor de edad

  // b) if elseif else, switch, Operador Ternario, Todos hacen lo mismo al comprobar si es true o false pero es diferente la sintaxis y la aplicación

  // c) Sí y es lo mas común

// 2.-
  function tipoDeSuscripcion(s) {
    if (s == 'Free') {
      return console.log("Solo puedes tomar los cursos gratis");
    } else if(s == 'Basic') {
      return console.log("Puedes tomar casi todos los cursos de Platzi durante un mes");
    }
    else if(s == 'Expert') {
      return console.log("Puedes tomar casi todos los cursos de Platzi durante un año");
    }
    else if(s == 'Expert +') {
      return console.log("Tú y alguien más pueden tomar TODOS los cursos de Platzi durante un año");
    } else {
      return console.log('Que esperas para adquirir tu suscripción');
    }
  }

  tipoDeSuscripcion('Expert +'); // Resultado: Tú y alguien más pueden tomar TODOS los cursos de Platzi durante un año
  tipoDeSuscripcion('no tengo'); // Resultado: Que esperas para adquirir tu suscripción

// 3.- Jejeje todavía no soy tan pro.

/* Ciclos */

// 1.-
  // a) Es una forma rápida y sencilla de hacer algo repetidamente
  // b) Los ciclos que hay son los ciclos for, for in, for of, while, do while
  // c) Es cuando no pones un limite al ciclo como un tope o un break y puede llegar a crashear el navegador o incluso el dispositivo en el que se esta ejecutando el ciclo.
  // d) Sí, es funcional en ciertos casos

// 2.-

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

  function juego() {
    let resultado;
    do {
      resultado = parseInt(prompt('¿Cuál es el resultado de "2 + 2". R: '));
    } while ( resultado !== 4 );
    if (resultado === 4);
    return console.log('¡Eres un GENIO!');
  }
  juego();

/* Listas */

// 1.-
  // a) Un array es un tipo de datos objetos, puedes guardar distintos valores como si fuera una lista y se encuentran seguidos en memoria.
    let lista = ['hola', 'como', 'estas']
  // b) Un objeto te permite guardar datos con claves y valores ejemplo:
  const objetoCarro = {
    marca: 'Bugatti',
    modelo: 'Chiron',
    precio: '1 USD'
  }
  // d) Depende mucho, pero algo que ahorita se me viene a la cabeza, es mejor utilizar un objeto cuando tienes que guardar datos que son repetitivos como un usuario que siempre va a tener las mismas claves y solo cambian los valores.
  // c) Creo que sí.

// 2.-
  function array(a) {
    return console.log(a[0]);
  }

  array(lista);
// 3.-
  for (const value of lista) {
    console.log(value);
  }
// 4.-
  for (const property in objetoCarro) {
    if (Object.hasOwnProperty.call(objetoCarro, property)) {
      const element = objetoCarro[property];
      console.log(element);
    }
  }

Estas son mis respuestas 😌la prueba estuvo divertida

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 el cual nos permite almacenar datos

¿Cuál es la diferencia entre declarar e inicializar una variable?
Declarar prepara el espacio en la memoria que sera utilizada, mientras que inicializar la variable ya le da un valor a dicho espacio

¿Cuál es la diferencia entre sumar números y concatenar strings?
Sumar números es autoincrementar un valor tipo numerico, mientras que concatenar strings es tener dos valores tipo string y unirlos para formar un solo valor

¿Cuál operador me permite sumar o concatenar?
el operador “+” el resto depende del tipo de dato que se este utilizando

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 nickName (tipo string)

Edad
var edad (tipo int)

Correo electrónico
var email (tipo string)

Mayor de edad
var mEdad (tipo boolean)

Dinero ahorrado
var ahorros (tipo float o double)

Deudas
var deudas (tipo float o double)

3️⃣ Traduce a código JavaScript las variables del ejemplo anterior y deja tu código en los comentarios.

var nombre = 'Juan Fra'
var apellido = 'Ruano'
var nickName = 'Pinguino'
var edad = 23
var email = 'juan.francisco.45@hotmail.com'
var mEdad = true
var ahorros = 900.00
var deudas = 70.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 o `${nombre} ${apellido}`

Dinero real (dinero ahorrado menos deudas)

var dReal = ahorros - deudas

FUNCIONES

1️⃣ Responde las siguientes preguntas en la sección de comentarios:

¿Qué es una función?
Un bloque de codigo que cumple con una tarea especifica

¿Cuándo me sirve usar una función en mi código?
Cuando encontramos una tarea que se repite varias veces en el codigo, podemos hacerla funcion y simplemente la invocamos cuando se necesite

¿Cuál es la diferencia entre parámetros y argumentos de una función?
Los parametros son variables dentro de la funcion misma mientras que los argumentos son variables que nosotros enviamos a la funcion al momento de invocarla

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 quienSoy = (nombres, apellidos, nickname) => {
    var nombreCompleto = `${nombres} ${apellidos}`
    console.log(`Mi nombre es ${nombreCompleto}, pero prefiero que me digas ${nickname}.`)
}

quienSoy("Juan Fra","Ruano","Pinguino")

CONDICIONALES

1️⃣ Responde las siguientes preguntas en la sección de comentarios:

¿Qué es una condicional?
Un bloque de codigo que se ejecuta en caso de que se cumpla una condicion o pregunta lógica

¿Qué tipos de condicionales existen en JavaScript y cuáles son sus diferencias?
if, else if, switch, ternario

¿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 tipoSuscripcion = (suscripcion) =>{
    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 if(suscripcion === 'Expert+'){
        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");
    }
}

tipoSuscripcion('Basic')

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 = (suscripcion) =>{
    var respuesta = suscripcion === 'Basic' ? "Puedes tomar casi todos los cursos de Platzi durante un mes": 
                        suscripcion === 'Expert' ? "Puedes tomar casi todos los cursos de Platzi durante un año":
                            suscripcion === 'Expert+' ? "Tú y alguien más pueden tomar TODOS los cursos de Platzi durante un año" : "Solo puedes tomar los cursos gratis"
    console.log(respuesta)
}

tipoSuscripcion('Basic')

Bonus: si ya eres una experta o experto en el lenguaje, te desafío a comentar cómo replicar este comportamiento con arrays y un solo condicional. 😏


const tiposSuscripciones = ['Free','Basic','Expert','Expert+']
const descSuscripciones = ['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','No existe dicha suscripcion']

const tipoSuscripcion = (suscripcion) =>{
    posicion = tiposSuscripciones.indexOf(suscripcion)==-1 ? 4 : tiposSuscripciones.indexOf(suscripcion)
    var respuesta =  descSuscripciones[posicion]
    console.log(respuesta)
}
tipoSuscripcion('Basic')

CICLOS

1️⃣ Responde las siguientes preguntas en la sección de comentarios:

¿Qué es un ciclo?
Es un bloque de codigo que se repite n cantidad de veces hasta que se cumpla una condicion

¿Qué tipos de ciclos existen en JavaScript?
while, do while, for

¿Qué es un ciclo infinito y por qué es un problema?
Cuando un ciclo no cumple su condicion, consume mucho la memoria del computador o buscador y puede generar colapsos en el sistema o volverlo lento

¿Puedo mezclar ciclos y condicionales?
Si, incluso los ciclos utilizan condicionales para funcionar de forma adecuada

2️⃣ Replica el comportamiento de los siguientes ciclos for utilizando ciclos while:

var i = 0
while(i < 5){
    console.log("El valor de i es: " + i);
    i++;
}
i+=5 
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 solucion = 0
do{
    solucion = Number(prompt('Cuanto es 2+2?'))
}while(solucion!==4)

LISTAS

1️⃣ Responde las siguientes preguntas en la sección de comentarios:

¿Qué es un array?
Es una cadena de datos agrupados en una variable

¿Qué es un objeto?
Es un grupo de propiedades

¿Cuándo es mejor usar objetos o arrays?
Depende de lo que se requiera

¿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 tiposSuscripciones = ['Free','Basic','Expert','Expert+']

const primerElemento = (array) => console.log(`El primer elemento del array es ${array[0]}`)

primerElemento(tiposSuscripciones)

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 tiposSuscripciones = ['Free','Basic','Expert','Expert+']

const elementos = (array) => array.forEach((elemento,index) => console.log(`El elemento ${index} del array es ${elemento}`))

primerElemento(tiposSuscripciones)

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:'Juan',
    apellido:'Ruano',
    edad:23,
    trabajando:false
}

const datosEstudiante = (objeto) => {
    for(var prop in objeto){
        console.log(`La propiedad ${prop} tiene como valor ${objeto[prop]}`)
    }
}

datosEstudiante(estudiante)

¿Qué es una variable y para qué sirve?

Es un espacion en memoria, asociado a una dirección única en la memora, y la cual sirve para poder guardar un valor.
.
.
¿Cuál es la diferencia entre declarar e inicializar una variable?

Cuando se declara una variable, simplemente es avisar al computador de su existencia.
.
Inicializar una variable, implica asignarle un valor específico
.
.
¿Cuál es la diferencia entre sumar números y concatenar strings?
Los tipos de variable son distintos. Sumar, implica sumar 2 elementos de un conjunto y obtener otro elemento que sigue perteneciendo a ese mismo conjunto (en el caso de los reales).
.
Concatenar 2 Strings, significa fusionar ambas cadenas, en una nueva, compuesta por las mismas.
.
.
¿Cuál operador me permite sumar o concatenar?
+
.
.
Determina el nombre y tipo de dato para almacenar en variables la siguiente información:

  • Nombre ( let name:String)
  • Apellido (let lastName: String)
  • Nombre de usuario en Platzi (let userNameAtPlatzi: String)
  • Edad (let userAge: Int)
  • Correo electrónico (let userEmail: String)
  • Mayor de edad ( let userIsOlder: Boolean)
  • Dinero ahorrado (let userMoneySaved: Number)
  • Deudas (let userDebt: Number)
    .
    .
    Traduce a código JavaScript las variables del ejemplo anterior y deja tu código en los comentarios.
    .
    .
let nameString = 'Eduardo'
let lastName   = 'Apén'
let userNameAtPlatzi =  'eduardoapenb'
let userAge = 23
let userEmail = '[email protected]'
let userIsOlder = true
let userMoneySaved = 100
let userDebt = 10

.
.

let completeName =  userName + " " + userLastName
console.log(completeName)

let capital = userMoneySaved - userDebt
console.log(capital)

.

.

.

Funciones
Responde las siguientes preguntas en la sección de comentarios:
.
.
¿Qué es una función?
Es una pieza de codigo que puede funcionar independientemente del resto del código, que puede ser invocada en ciertas circunstancias, y que puede o no, retornar un valor.
.
.
¿Cuándo me sirve usar una función en mi código?
Para evitar repetir código, para segmentar e independizarlo. Esto hace que el código sea más ordenado y facilita la búsqueda de errores.
.
.
.

¿Cuál es la diferencia entre parámetros y argumentos de una función?

No estoy del todo seguro, por favor, por favor digan si me equivoco.

Parametro: El tipo de variable que se le puede enviar a una función.
.
.
Argumento: El valor de la variable que se envia a un 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 + ".");

.
Mi solución (espero que sea correcta, XD):
.

function greetingUser(name, lastname, nickname){
    let completeName = name + ' ' + lastname
    console.log(`Mi nombre es ${completeName}, pero prefiero que me digas "${nickname}". `)
}

greetingUser("Juan David", "Castro Gallego", "juandc" )
greetingUser("Josué Eduardo", "Apén Bal", "Tito" )

.

.

.

Condicionales
¿Qué es una condicional?
Es un grupo de instrucciones que se ejecutan en dependiendo del valor booleano (falso o verdadero) de una determinada expresión. Dicha expresión suele ser una comparación o una afirmación.

¿Qué tipos de condicionales existen en JavaScript y cuáles son sus diferencias?

  • If

  • Switch

¿Puedo combinar funciones y condicionales?
Why not?
.
.
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 "Free":
       console.log("Tú y alguien más pueden tomar TODOS los cursos de Platzi durante un año");
       break;
}

.
Mi solución:
.

function tipoDeSuscripcion(tipoDeSuscripcion){
    if(tipoDeSuscripcion == 'free' || tipoDeSuscripcion == 'Free'){
        console.log("Solo puedes tomar los cursos gratis") 
    }
    else if  (tipoDeSuscripcion == 'basic' || tipoDeSuscripcion == 'Basic'){
        console.log("Puedes tomar casi todos los cursos de Platzi durante un mes");
    }
    else if  (tipoDeSuscripcion == 'expert' || tipoDeSuscripcion == 'Expert'){
        console.log("Puedes tomar casi todos los cursos de Platzi durante un año")
    }
    else if (tipoDeSuscripcion == 'expert +'|| tipoDeSuscripcion == 'Expert +'){
        console.log("Tú y alguien más pueden tomar TODOS los cursos de Platzi durante un año")
    }
    
}

Sin IF ELSE:

function tipoDeSuscripcionSinIfElse(tipoDeSuscripcion){
    if(tipoDeSuscripcion == 'free' || tipoDeSuscripcion == 'Free'){
        console.log("Solo puedes tomar los cursos gratis") 
    }
    if  (tipoDeSuscripcion == 'basic' || tipoDeSuscripcion == 'Basic'){
        console.log("Puedes tomar casi todos los cursos de Platzi durante un mes");
    }
    if  (tipoDeSuscripcion == 'expert' || tipoDeSuscripcion == 'Expert'){
        console.log("Puedes tomar casi todos los cursos de Platzi durante un año")
    }
    if (tipoDeSuscripcion == 'expert +'|| tipoDeSuscripcion == 'Expert +'){
        console.log("Tú y alguien más pueden tomar TODOS los cursos de Platzi durante un año")
    }
    
}

.

.

.

Ciclos
.
¿Qué es un ciclo?
Es un código que permite repetir determinadas estructuras un número “n” de veces, o en función de una condición.
.
.

¿Qué tipos de ciclos existen en JavaScript?
For
Foreach
While
Do… While
.
.
¿Qué es un ciclo infinito y por qué es un problema?
Es un ciclo de codigo que puede saturar la memoria e incluso tambien puede sobrecalentar el procesador y dañar el procesador irremediablemente.
.
.

¿Puedo mezclar ciclos y condicionales?
Why not? x2
.
.
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:

var i = 0

while (i < 5){
    console.log(`EL valor de i es-: ${i}`)
    i++
}


var j = 10

while(j >= 2){
    console.log(`EL valor de i 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.
.
.
Mi solución:

var endOfProgram = false

while(!endOfProgram){

var respuesta = Number(prompt("¿Cuánto es 2 + 2? "))
    if (respuesta == 4){
    console.log("¡Correcto!")
    endOfProgram = true
    }
    else{
        console.log('Volvemos a empezar...')
    }
}

.

.

.

Listas
.

¿Qué es un array?
Es un conjunto de datos, homogéneos o no homogéneos que se almacenan en memoria.
.
.

¿Qué es un objeto?
Un objeto es una colección de propiedades, y una propiedad es una asociación entre un nombre (o clave) y un valor.
.
.

¿Cuándo es mejor usar objetos o arrays?
Cuando se necesite replicar un conjunto de datos con distintas propiedades, y funcionalidades facilemente identificables es mejor usar objetos.

Los array sirven para almacenar una cantidad finita de datos y no se pueden crear funcionalidades propias.

¿Puedo mezclar arrays con objetos o incluso objetos con arrays?
Why not? x3
.
.
Crea una función que pueda recibir cualquier array como parámetro e imprima su primer elemento.

const array1 = ['a', 'b', 'c'];
function imprimirPrimerElemento(array){
        console.log(array[0])
}
imprimirPrimerElemento(array1)

.

.
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 array1 = ['a', 'b', 'c'];
function imprimirArray(array){
    array.forEach(element => console.log(element))
}
imprimirArray(array1)

.
.
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 usuario = {
    nombre: 'Eduardo',
    apellido: 'Apén',
    edad: 23, 

}

function imprimirObjeto(objeto){
    Object.values(objeto).forEach(elemento => console.log(elemento))
}

imprimirObjeto(usuario)

Fue dificil y pero se pudo.
Quedo atento al Feedback, gracias. 😄

Punto 3 Reto: si encuentra la clave imprime el valor de la clave, si no, imprime no tienes ningún tipo de suscripción.

const tipoDeSuscripcion = [
    {"Basic": "Puedes tomar casi todos los cursos de Platzi durante un mes",
    "Free": "Solo puedes tomar los cursos gratis",
    "Expert":"Puedes tomar casi todos los cursos de Platzi durante un año",
    "Expert+":"Tú y alguien más pueden tomar TODOS los cursos de Platzi durante un año"}
 ];

const suscription = "Basic";

if (tipoDeSuscripcion[0][suscription] ){
    console.log(tipoDeSuscripcion[0][suscription]);
}else{
    console.log("No tienes ningun tipo de suscripción")
}

Tomó un poco de tiempo pero aquí está. Mi test de Javascript 😄

Variables y operaciones

I.

  • Una variable es una espacio en memoria y sirve para guardar información en un lugar para luego poder usarlo a lo largo de tu aplicación.

  • Al declarar una variable lo traes a la vida, al inicializar una variable le das información dada explicitamente por ti.

  • La diferencia es que se van los números como números (¡arítmetica hijo!), y los strings se van unir para formar un nuevo string.

  1. El operador +.

II. y III.

  • var nombre = “Mauricio” (String);
  • var apellido = “Carrasco” (String);
  • var usuarioPlatzi= “maurice_cl42” (String);
  • var edad = 19 (Numero);
  • var email = “[email protected]” (String);
  • var mayorDeEdad = true (Booleano);
  • var dineroAhorrado = 350 (Numero);
  • var deuda = 0 (Numero);

IV.

  • console.log(nombre + " " + apellido);
  • console.log(dineroAhorrado);

Funciones

I.

  • Es código encapsulado en un bloque de código.

  • Una función me sirve para no repetir código.

  • La diferencia entre los parámetros y y los argumentos es que los parámetros es la creación de una lista de variables al definir una función.En cambio, los argumentos de una función es la información puesta por el usuario o el mismo programador en la lista de variables. Los argumentos serán variables según las necesidades del programa y usuario. Los parámetros siempre serán los mismos. Los parámetros son como el tronco de un árbol y los argumentos son los frutos que puedes crear a partir del tronco de este árbol.

II.

function datosDeIdentidad(nombre, apellido, nombreCompleto, apodo) {
 let name = nombre;
 let lastname = apellido;
 let completeName = name + lastname;
 let nickname = apodo;

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

Condicionales

I.

  • Es un proceso lógico en el cuál se toma decision(es) en base a esta lógica. Se podría decir que es una elección de lógica.

  • if, if else, else: Es una elección de un camino. Se cumple algo para que se elija este camino.
    switch: Se usa para elegir un camino de lógica entre muchas igualdades.

  • Se diferencian en que if, if else, else se acostumbran a usar para todo tipo de compararaciones y switch solo para igualdades (cabe decir que no fue creado solo para que ese use de esta forma).

  • Claro que se pueden combinar las funciones y condicionales.

II.

const tipoDeSuscripcion = "basic";

if (tipoDeSuscripcion === "basic") {
  console.log("Puedes tomar casi todos los cursos de Platzi durante un mes");
} else if (tipoDeSuscripcion === "expert") {
  console.log("Puedes tomar 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 if (tipoDeSuscripcion === "free") {
  console.log("Solo puedes tomar los cursos gratis");
} else {
  console.log("¿Qué esperas para usar Platzi? Será una buena decisión seguro.");
}

III.

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

Bonus:

// Use un condicional y un ciclo 😋

const tipoDeSuscripcion = "basic";
const planes = ["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 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 (i in planes) {
  if (tipoDeSuscripcion === planes[i]) {
    console.log(mensajes[i]);
  }
}

Ciclos

I.

  • Es una repetición de lógica hasta que deje de cumplirse esta lógica.

  • En Javascript existen:
    for: Es un ciclo definido explicitamente por el programador (y sus variaciones: el for of, for each y for in). Tiene inicio y un final establecido.
    while: Es un ciclo infinito el cuál seguirá mientras se cumpla la lógica puesta en el while. Una de las formas para romper el loop infinito es un if + la palabra reservada break.

  • Un loop infinito es un loop que correrá por siempre, ya que lógica siempre se cumplirá, y es problema porque la capacidad de procesamiento y almacenamiento de tu computadora no es infinita.

  • Puedes mezclar ciclos y condicionales todo lo que quieras.

II.

// Ejercicio 1
let i = 0;

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

// Ejercicio 2
let i = 10;

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

III.

function questionTwoPlusTwo() {
  let question = "Querido humano ¿Cuánto es 2 + 2?";
  while (true) {
    let answer = parseInt(prompt(question));
    if (answer === 4) {
      alert("Querido humano ¡Felicitaciones, ha acertado!");
      break;
    } else {
      alert("Querido humano, tendrá que intentarlo de nuevo");
    }
  }
}
questionTwoPlusTwo();

Listas

I.

  • Es una cápsula que encapsula distintos espacios en memoria.

  • ¿Qué es un objeto?
    Un objeto en programación es similar a un objeto en la vida real, Una cosa con características y posibles acciones que puede realizar. En programación las características son los estados del objeto y las acciones que puede realizar son el comportamiento.

  • Los arrays es mejor usarlos cuando queremos tener datos que tienen una categoría en común (o que le damos una categoria en común) y que pueden o no tener un orden. Los objetos es mejor usarlos cuando queremos crear algo que tenga vida misma por así decirlo. Ya no se trata de solo categorizar, también podemos darle características y acciones que definan a este objeto.

  • Claro que si, puedes mezclarlos tanto como quieras.

II.

function printFirstElementOfArray(array) {
  console.log("El primer elemento del array es " + array[0]);
}

III.

function printEachElementOfArray(array) {
  for (i in array) {
    console.log(`El elemento con índice ${i} del array es ` + array[i]);
  }
}

IV.

function printEachElementOfObject(object) {
  for (i in object) {
    console.log(`Un elemento del objeto es ${i} con valor  ${object[i]}`);
  }
}

Variables y operaciones

  • ¿Qué es una variable y para qué sirve?

    Es como una cajita donde puedes guardar datos
    para despues hacer algo con ellos.

  • ¿Cuál es la diferencia entre declarar e inicializar una variable?

    Declarar es cuando la nombras, mas no le asignas un valor.
    En Javascript seria asi:

    let variable;
    

    Mientras que inicializar es cuando ya le das un valor.

    const MY_NUMBER = 5;
    
  • ¿Cuál es la diferencia entre sumar números y concatenar strings?

    Cuando sumas números obtienes un valor de tipo number, mientras
    que cuando concatenas strings obtienes un valor del mismo tipo (strings).

  • ¿Cuál operador me permite sumar o concatenar?

    El signo +.

Mi código:

const NAME = 'Eliaz';
const LASTNAME = 'Bobadilla';
const USERNAME = 'UltiRequiem';
const AGE = 14;
const EMAIL = '[email protected]';
const ADULT = false;
const SAVED_MONEY = 2;
const DEBS = 0;

console.log(`Hi! My name is ${NAME} ${LASTNAME}`);
console.log(`My total saved money is ${SAVED_MONEY - DEBS} soles.`);

Funciones

  • ¿Qué es una función?

    Es un trozo de código que sigue una serie de pasos. Puede recibir
    parametros y esta hecho para poder ser reutilizado.

  • ¿Cuándo me sirve usar una función en mi código?

    Combiene utilizar funciones si es que te das cuenta de que ciertas
    lineas de código se repiten en muchas partes.

  • ¿Cuál es la diferencia entre parámetros y argumentos de una función?

    Los parametros son una propiedad intrínseca de un procedimiento,
    dado que está incluido en su definición. En tanto, los argumentos
    son más bien los valores actuales asignados a los parámetros variables
    cuando la función es llamada.

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

introduceMySelf('Eliaz', 'Bobadilla', 'Zero');

Condicionales

  • ¿Qué es una condicional?

    Es una condición que debe ser cumplida para ejecutar un trozo de
    código.

  • ¿Qué tipos de condicionales existen en JavaScript y cuáles son sus diferencias?

    Existe la familia de If(if,else if y else), los switchs y ternarios.
    El if se usa cuando son pocas cosas las que quieres comprobar mientras
    que el switch cuando ya son mas casos. Los Ternarios (mis favoritos) son
    como el if pero con una sintaxis mas reducida.

  • ¿Puedo combinar funciones y condicionales?

    Claro!

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 === 'Expert+') {
  console.log(
    'Tú y alguien más pueden tomar TODOS los cursos de Platzi durante un año.'
  );
}
const printStatus = (suscripcionType) => {
  if (suscripcionType !== 'Free') {
    console.log('Puedes tomar muchos cursos.');
    return;
  }
  console.log('Estás limitado en los cursos.');
};

const suscripcion = 'Expert+';
printStatus(suscripcion);

Ciclos

  • ¿Qué es un ciclo?

    Es un trozo de código que se repite.

  • ¿Qué tipos de ciclos existen en JavaScript?

    Existen: for,for of,for in, while,do while, etc.

  • ¿Qué es un ciclo infinito y por qué es un problema?

    Es un ciclo que nunca se detiene, y es problematico porque
    no lo podemos controlar.

  • ¿Puedo mezclar ciclos y condicionales?

    Si se puede, y es bastante normal hacerlo.

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

do {
  input = prompt('¿Cual es el resultado de 2 + 2?');
} while (!(input === 4));

Listas

  • ¿Qué es un array?

    Es como una caja grande donde puedes meter otras cajas.

  • ¿Qué es un objeto?

    Es como una caja con propiedades.

  • ¿Cuándo es mejor usar objetos o arrays?

    Depende de el problema y el estilo de código que
    estes siguiendo. Aunque tambien puede depender de
    lo que te de la libreria que estes usando. Mientras
    mas uniforme tu código mejor.

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

    Si, es normal.

const persona = {
  nombre: 'Roberto',
  apellido: 'Garcia',
  edad: 14,
};

const frutas = ['Pera', 'Manzana', 'Sandia'];

const oneFunc = (array) => {
  array.forEach((elem) => {
    console.log(elem);
  });
};

const anotherFunc = (objeto) => {
  Object.values(objeto).forEach((elem) => {
    console.log(elem);
  });
};

const oneFunc = (array) => {
  console.log(array[0]);
};

Espero que se haya entendido lo que trate de explicar, y si me equivoque en algo seria genial que me corrijan
en los comentarios para seguir aprendiendo 😃
Les dejo el enlace a mi repositorio de GitHub de este curso donde tengo mas notas y todo mi código: UltiRequiem/practical-js-platzi.

Hola estas son mis respuestas:

  • ¿Qué es una variable y para qué sirve?
    

Es un espacio en memoria que se reserva para almacenar información.

  • ¿Cuál es la diferencia entre declarar e inicializar una variable?

Declarar es crear o darle vida a una variable, reservar un espacio en memoria para ella.

Inicializar es asignar el contenido que almacenará la variable, puede ser un número, una letra, un booleano, etc.

  • ¿Cuál es la diferencia entre sumar números y concatenar strings?

Sumar número es la operación aritmética tradicional donde a una cantidad se le adiciona otra.

Concatenar strings es unir a través del operador más dos o más caracteres.

  • ¿Cuál operador me permite sumar o concatenar?
    

El operador + (más).

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

    Nombre => firstName - String
    Apellido => secondName - String
    Nombre de usuario en Platzi => nickName - String
    Edad => age -Number
    Correo electrónico => email - String
    Mayor de edad => higherAge - Number
    Dinero ahorrado => savedMoney - Number
    Deudas => debts - Number

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

let firstName, lastName, nickName, email;
let age, higherAge, savedMoney, 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 firstName = "Vanesa";

let lastName = "Percy";

let savedMoney = 5000;

let debts = 2500;

let realMoney = savedMoney - debts;

console.log(`${firstName} ${lastName} has saved money ${savedMoney} minus debts ${debts} is equal to ${realMoney}`);


FUNCIONES

  • ¿Qué es una función?

Son tareas que se van a llevar a cabo con los datos.

  • ¿Cuándo me sirve usar una función en mi código?

Cuando necesito reutilizar esa tarea en otras partes del código, es una tarea repetitiva.

  • ¿Cuál es la diferencia entre parámetros y argumentos de una función?

Cuando se declara o crea una función se habla de que se le definen uno o varios parámetros, se dice que va a recibir parámetros.

Cuando se llama a la función previamente creada, se dice que le vamos a pasar los argumentos que la función necesita para funcionar.

  • 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 + “.”);

let userData = (firstName, lastName, nickName) => {

let completeName = firstName + lastName;


return  `My name is  ${completeName}, but I prefer  that you call me ${nickName}`;
};

console.log(userData("Vanesa", "Percy", "percydev"));

CONDICIONALES

  • ¿Qué es una condicional?
    

Es una estructura de control que permite dividir en una o varias opciones el camino que debe seguir el código dependiendo de si se cumple o no cierta condición.

  • ¿Qué tipos de condicionales existen en JavaScript y cuáles son sus diferencias?

Condicionales

if: Donde si la condición es verdadera esta es usada para la ejecución para bloque de código.

else: Donde si la misma condición es falsa, esto especifica la ejecución para un bloque de código.

else if: Esto especifica una nueva prueba si la primera condición es falsa.

Operador ternario: Prueba una condición y devuelve un valor/expresión, si es true, y otro si es false

( condición ) ? ejecuta este código : ejecuta este código en su lugar

let greeting = ( isBirthday ) ? ‘Happy birthday Mrs. Smith — we hope you have a great day!’ : ‘Good morning Mrs. Smith.’;

  • ¿Puedo combinar funciones y condicionales?
    

Claro se pueden combinar ambas cosas dentro del código.

  • Replica el comportamiento del siguiente código que usa la sentencia switch utilizando if, else y else if:

let 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 “Expert+”:
console.log(
“Tú y alguien más pueden tomar TODOS los cursos de Platzi durante un año”
);
break;
}

let suscriptionType = "Basic";
 
if (suscriptionType === "Free") {
 console.log("Alone can you take free courses");
} else if (suscriptionType === "Basic") {
 console.log("You can take almost all Platzi courses  during a month");
} else if (suscriptionType === "Expert") {
 console.log("You can take almost all Platzi courses  during a year");
} else {
 console.log("You and someone can take all Platzi courses during a year");
}

  • Replica el comportamiento de tu condicional anterior con if, else y else if, pero ahora solo con if (sin else ni else if).
let suscriptionType = "Basic";
if (suscriptionType === "Free") {
 console.log("Alone can you take free courses");
}
if (suscriptionType === "Basic") {
 console.log("You can take almost all Platzi courses during a month");
}
if (suscriptionType === "Expert") {
 console.log("You can take almost all Platzi courses during a year");
}
if (suscriptionType === "Expert+") {
 console.log("You and someone can take all Platzi courses during a year");
}

  • Bonus: si ya eres una experta o experto en el lenguaje, te desafío a comentar cómo replicar este comportamiento con arrays y un solo condicional.

Lo intenté solucionar pero no pude encontrar la solución, seguiré intentando.

//Function with for loop
function search(arr, obj) {
 let result;
 for (let i = 0; i < arr.length; i++) {
   if (arr[i] === obj)
   return obj;
 }
}
 
console.log(
 search(
   ["Banana", "Pineapple", "Apple", "Orange", "Grape", "Coconut"],
   "Orange"
 )
);

CICLOS

  • ¿Qué es un ciclo?
    

Es una estructura que permite controlar el número de veces que se va realizar o ejecutar una porción del código. Debe tener una condición o elemento que permite detener la ejecución del mismo.

  •  ¿Qué tipos de ciclos existen en JavaScript?
    

Ciclo while, do while, for, for of, for in.

  • ¿Qué es un ciclo infinito y por qué es un problema?

Es un ciclo que no tiene fin, que se van a repetir indefinidamente, porque no tiene una condición o elemento que lo haga detenerse.

  • ¿Puedo mezclar ciclos y condicionales?

Ambas instrucciones se pueden mezclar sin problemas.

  • 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(`The value of i is:${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(`The value of i is: ${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 answer;
do {
 answer = Number(prompt("How many is 2 + 2?"));
} while (answer !== 4);
if (answer === 4) {
 console.log("Congrats, your answer is correct!!");
}

function gameAnswer() {
 let answer;
 do {
   answer = Number(prompt("How many is 2 + 2?"));
 } while (answer !== 4);
 if (answer === 4) {
   console.log("Congrats, your answer is correct!!");
 }
}
 
gameAnswer();

LISTAS

  • ¿Qué es un array?

Es una colección de elementos o valores del mismo tipo.

Definición Mozilla: una manera ordenada de almacenar una lista de elementos de datos bajo un solo nombre de variable.

  • ¿Qué es un objeto?
    

Definición Mozilla: Un objeto es una colección de propiedades, y una propiedad es una asociación entre un nombre (o clave) y un valor.

  • ¿Cuándo es mejor usar objetos o arrays?

Los objetos son recomendados cuando queremos agrupar valores, incluyendo otros objetos, permitiéndonos construir estructuras más complejas. Además son colecciones arbitrarias de propiedades, y podemos añadir o remover estas propiedades a placer, son mutables.

Los arrays son recomendados cuando queremos trabajar con tipos de datos simples como Strings, números, booleanos; y almacenar sus secuencias de valores.

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

Sí, es totalmente posible mezclar ambas estructuras en nuestro código.

  • Crea una función que pueda recibir cualquier array como parámetro e imprima su primer elemento.
function printElement(array) {
 for (let i = 0; i < array.length; i++) {
   console.log(array[0]);
 }
}
 
printElement([29, 11, 7, 15]);
let fruits = ["Apple", "Coconut", "Orange", "Pineapple", "Grape"];
 
fruits.forEach(function(element,index,array) {
 if(index === 0) console.log(element);
})

  • 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).

fruits.forEach(function(element,index,array) {
 console.log(element, index);
})

  • 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 myObject = {
 firstName: "Larry",
 lastName: "King",
 age: 59,
 address: "CA 56 8",
 country: "United States",
};
 
const printObject = (object) => {
 for (const key in myObject) {
   console.log(`${key}: ${object[key]}`);
 }
};
 
printObject(myObject);

Para el Bonus puedes hacerlo con objetos literales para que sea más práctico.

const tipoDeSuscripcion = "Basic"

const tiposDeSuscripciones = {
	"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(tiposDeSuscripciones[tipoDeSuscripcion])

Aquí te comparto un artículo donde menciono varios tips de javascript y entre ellos comento sobre los objetos literales.

https://dev.to/corteshvictor/tips-o-trucos-javascript-16o8
https://medium.com/condorlabs-engineering/tips-en-javascript-b56677f6fe36

Variables y operaciones

1️⃣ Responde las siguientes preguntas en la sección de comentarios:

<h5>- ¿Qué es una variable y para qué sirve?</h5>

Una variable es un espacio de memoria reservado para guardar datos o estructura de datos , esto datos por lo general están asociados a un tipo de dato, este tipo de datos pueden ser: numéricos, booleanos, cadenas de texto. En el caso de la estructura de datos están: array, matriz, objetos, entre otros. Estos tipos de datos en javascript no se deben indicar para crear una variable, ya que javascript es un lenguaje débilmente tipado.
Las variables sirven para guardar datos y también para realizar operaciones sobre esos datos y así convertirlo en información útil para el usuario.

<h5>- ¿Cuál es la diferencia entre declarar e inicializar una variable?</h5>

La diferencia es que cuando se declara una variable solo se reserva un espacio en memoria ram y al no indicar su valor inicial javascript asigna undefined. Cuando inicializamos una variable le indicamos el valor inicial que tendrá esa variable. Las variables se pueden declarar con let, const, var.

Ejemplo

// Declaración sin inicializar

// variable
let  nombre;
// array
let elementos = [];
// objeto
let persona = {};


// Declaración e inicialización:

//variable
let  nombre = 'Angel';
// array
let elementos = ['Computadora', 'Celular'];
// objeto
let persona = {
	nombre: 'Sikney',
	edad: 9,
};
	
<h5>- ¿Cuál es la diferencia entre sumar números y concatenar strings?</h5>

A pesar de que se usa el mismo operador la diferencia es:
concatenar consiste en tomar n cantidad de string separados y juntarlos como uno solo
mientras que sumar consiste en el proceso de adicionarle a una cantidad otra cantidad más.

//Concatenación de string
let string_a = 'hola';
let string_b = 'mundo🎉';
let result_concat = string_a  + ' ' + string_b;

// resultado: hola mundo🎉
console.log(`${result_concat}`); 


//Concatenación de string
let value_a = 5;
let value_b = 10;
let result_sum = value_a + value_b;
console.log(`El resultado de la suma es : ${result_sum}`);

<h5>- ¿Cuál operador me permite sumar o concatenar?</h5>

El operador de suma: +

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 de variable tipo de dato
let fristName = 'Feber' cadena (string)
let lastName = 'Parra' cadena (string)
let user = '@feber' cadena (string)
let age = 25 numérico entero (number)
let mail = '[email protected]' cadena (string)
let adult = true booleano (boolean)
let saved_money= 200.3 numérico punto flotante (number)
let deudas = 180.3 numérico punto flotante (number)

3️⃣ Traduce a código JavaScript las variables del ejemplo anterior y deja tu código en los comentarios.

let firstName = 'Feber'; //  cadena (string)
let lastName = 'Parra'; //  cadena (string)
let user = '@feber'; //  cadena (string)
let age = 25; //  numérico entero (number)
let mail = '[email protected]'; //  cadena (string)
let adult = true; //  booleano (boolean)
let saved_money = 200.3; //  numérico punto flotante (number)
let debt = 180.3; //  numérico punto flotante (number)

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

<h5>- Nombre completo (nombre y apellido)</h5>
let fristName = 'Feber';
let lastName = 'Parra';
let fullName = fristName  + ' ' + lastName;
console.log(`Nombre Completo es: ${fullName}`);
<h5>- Dinero real (dinero ahorrado menos deudas)</h5>
let saved_money= 200.3;
let debt = 180.3;
let balance = saved_money - debt;
console.log(`El saldo total  es: ${balance}`);

Funciones

1️⃣ Responde las siguientes preguntas en la sección de comentarios:

  • ¿Qué es una función?
    Las funciones son como un conjunto de sentencias para realizar ciertas tareas o acciones y en ellas se puede hacer el uso de las variables
<h5>- Tipos de Funciones</h5> <h6>Funciones Declarativas</h6>

Las funciones declarativas son aquellas que expresamente se declara con la palabra reservada funtion seguida el del nombre y sus parámetros.

Sintaxis funciones declarativas

	function [name]([param1, param2, ..., paramN]) {
	   statements
	}

Ejemplo de una función declarativa


	// Declaración de una Funcion Declarativa
	function saludar() {
	    console.log('Saludando desde una función declarativa');
	}
	//llamada de la función declarativa
	saludar(); 

<h6>Funciones de Expresión</h6>

Una función de expresión también es un tipo de función anónima, y estás se llaman así porque las funciones al ser declaradas no tienen ningún valor, este tipo de funciones por lo general cuando se declaran así son para ser ejecutadas de inmediato claro depende de la situación.

Sintaxis funciones declarativas

la variable puede ser declara con let o var

	var [variable] = function [name]([param1, param2, ..., paramN]) {
	   statements
	}

Ejemplo 1 - Función Expresión

    var a = 2;
    var b = 3;
    
	// Declaración de una Funcion de expresión
	var resultado_suma = function (para_a, para_b){
		var resultado = 0;
		resultado = para_a + para_b;
		return resultado;
	};
	//llamada de una función de expresión
	resultado_suma(a,b);

Ejemplo 1 - Función Expresión


    var math = {
  'factorial': function factorial(n) {
    if (n <= 1)
      return 1;
    return n * factorial(n - 1);
  }
};
<h5>- ¿Cuándo me sirve usar una función en mi código?</h5>

Las funciones son útiles cuando tenemos procesos que son muy recurrentes, es decir: cuando tenemos tareas que se repiten una otra vez lo ideal es crear un algoritmo de dicha tarea y trasladarlo a una función.

<h5>- ¿Cuál es la diferencia entre parámetros y argumentos de una función?</h5> <h6>Parámetros</h6>

Los parámetros son la lista de variables que ponemos cuando se define una función, por ejemplo, en la siguiente función tenemos dos parámetros “a” y “b”

Ejemplo

function sum(a, b) {
	return a + b;
}
<h6>Argumentos</h6>

Los argumentos son los valores que se pasan a la función cuando esta es invocada, de esta manera, en el siguiente ejemplo tendríamos que “7”, “4” son los argumentos de nuestra invocación a la función:

Ejemplo

const result = sum(7, 4);

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 = firstName + ' ' + lastName;
const nickname = "juandc";

console.log(
	"Mi nombre es " + completeName + ", 
	pero prefiero que me digas " + nickname + "."
);
function printPersonalData(
	p_firstName = 'Juan David',
	p_lastName = 'Castro Gallego',
	p_nickname = 'juandc'
) {
	let completeName = p_firstName + ' ' + p_lastName;
	console.log(
		'Mi nombre es ' +
			completeName +
			',pero prefiero que me digas ' +
			p_nickname +
			'.'
	);
}

printPersonalData();

Condicionales

1️⃣ Responde las siguientes preguntas en la sección de comentarios:

<h5>- ¿Qué es una condicional?</h5>

Un condicional es: una estructura de programación que permite validar el cumplimiento de ciertas condiciones y el objetivo de estas estructuras es controlar el flujo lógico del programa con la finalidad de saber que acciones ejecutar según ciertas condiciones.

<h5>- ¿Qué tipos de condicionales existen en JavaScript y cuáles son sus diferencias?</h5>

Existe Condicionales: If, Else, else if , operador ternario, y switch

<h6>If: If, Else, else if</h6>

Ejecuta una sentencia que evalúa una condición específica, Sí evaluada como verdadera. Si la condición es evaluada como falsa, otra sentencia puede ser ejecutada.

  • condición
    Una expresión que puede ser evaluada como verdadera o falsa.

  • sentencia 1
    Sentencia que se ejecutará si condición es evaluada como verdadera. Puede ser cualquier sentencia, incluyendo otras sentencias if anidadas. Para ejecutar múltiples sentencias, use una sentencia block ({ … }) para agruparlas.

  • sentencia 2
    Sentencia que se ejecutará si condición se evalúa como falsa, y exista una cláusula else. Puede ser cualquier sentencia, incluyendo sentencias block y otras sentencias if anidadas.

sintaxis del if


    if (condición1) {
		sentencia1;
	} else if (condición2) {
	    sentencia2;
	} else if (condición3) {
	    sentencia3;
	} else {
	    sentencia4;
	}
	

La sentencia if se puede combinar con los operadores lógicos: &&(and) || (or)


if (condición1 && condición2) {
    sentencia1;
    sentencia2;
} else if (condición3 && condición4) {
    sentencia3;
    sentencia4;
}

<h6>Operador condicional (ternario)</h6>

El operador condicional es el único operador de JavaScript que toma tres operandos. El operador puede tener uno de los dos valores basados en una condición. La sintaxis es:

	var age = 20;
	var status = age >= 18 ? 'adult' : 'minor'  ;

Si la condición (age >= 18) evaluada arroja true, el operador asigna la primera parte de la expresión (‘adult’) . De lo contrario, se asigna la segunda expresión (‘minor’) . Puede utilizar el operador condicional en cualquier lugar donde utilice un operador estándar.

Referencia:

<h6>Switch</h6>

La declaración switch evalúa una expresión, comparando el valor de esa expresión con una instancia case, y ejecuta las declaraciones asociadas a ese case, así como las declaraciones en los casos que siguen.

  • expresión
    Es una expresión que es comparada con el valor de cada instancia case.
  • case valorN
    Una instancia, case valorN es usada para ser comparada con la expresión. Si la expresión coincide con el valorN, las declaraciones dentro de la instancia case se ejecutan hasta que se encuentre el final de la declaración switch o hasta encontrar una interrupción break.
  • default
    Una instancia default, cuando es declarada, es ejecutada si el valor de la expresión no coincide con cualquiera de las otras instancias case valorN.
	//          ==Sintaxis==
	var expression = 'valor2';
	switch (expression) {
	    case 'valor1':
			 //Logica para cuando, conincida con el valor
	        break;
	    case 'valor2':
	         //Logica para cuando, conincida con el valor
	        break;
	    case 'valorN':
	         //Logica para cuando, conincida con el valor
	        break;
	    default:
	        //Logica para cuando, conincida con el valor
	        break;
}
<h6>¿Qué pasa si olvido un break?</h6>

Si olvidas un break, el script se ejecutará desde donde se cumple la condición y ejecutará el siguiente case independientemente si esta condición se cumple o no. En ocasiones es útil omitir el break, un ejemplo dónde es útil no colocar el break: Cuando se necesita que un conjunto de valores estén representados por una sola condición


    //          ==Operación única con múltiples casos==
	var Animal = 'Jirafa';
	switch (Animal) {
	    case 'Vaca':
	    case 'Jirafa':
	    case 'Perro':
	    case 'Cerdo':
	        console.log('Este animal subirá al Arca de Noé.');
	        break;
	    case 'Dinosaurio':
	    default:
	        console.log('Este animal no lo hará.');
	}

Referencia:

<h5>- ¿Puedo combinar funciones y condicionales?</h5>

si se pueden combinar condicionales y funciones

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 "Expert+":
       console.log("Tú y alguien más pueden tomar TODOS los cursos de Platzi durante un año");
       break;
}

Resultado


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 === 'expert+') {
	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 === 'expert+') {
	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:

<h5>- ¿Qué es un ciclo?</h5>

Un ciclo, loop o bucle son un conjunto sentencia estructuradas que permite la ejecución de código de forma repetitiva.

<h5>- ¿Qué tipos de ciclos existen en JavaScript?</h5>

Existe los siguiente ciclos For, For…of, while, do …while

<h5>For</h5>

Un for es una estructura compuesta de tres sentencias que son: una variable con valor inicial, seguida de una condición de parada y por último el decremento o incremento del valor inicial.

	// 			== for ==
let estudiantes = ['María', 'Ángel', 'Jesús', 'José', 'Antonio'];

function saludar_a_Estudiante(para_nombre) {
    console.log(`Hola, ${para_nombre}`);
}

for (let i = 0; i < estudiantes.length; i++) {
    saludar_a_Estudiante(estudiantes[i]);
}
	
<h5>For of</h5>

La sentencia for…of ejecuta un bloque de código para cada elemento de un objeto iterable, como lo son: String, Array, objetos similares a array


//          == for..of ==
let profesores = ['Ana', 'Angela', 'Nicol', 'Armando', 'Natilia'];

function saludar_a_Profesor(para_nombre) {
	console.log(`Hola, ${para_nombre}`);
}

for (let profesor of profesores) {
	saludar_a_Profesor(profesor);
}

<h5>While</h5>

un while es una sentencia que crea un bucle que se ejecuta mientras sea cierta condición y se evalúe como verdadera. Dicha condición es evaluada antes de ejecutar la sentencia


var estudiantes = ['María', 'Ángel', 'Jesús', 'José', 'Antonio'];

function saludarEstudiante(para_nombre) {
	console.log(`Hola, ${para_nombre}`);
}

while (estudiantes.length > 0) {
	var nombre = estudiantes.shift();
	saludarEstudiante(nombre);
}

<h5>do…while</h5>

Un do…while es una sentencia que crea un bucle que se ejecuta mientras sea cierta condición y se evalúe como verdadera. Dicha condición es evaluada después de la ejecución del código.

var estudiantes = ['María', 'Ángel', 'Jesús', 'José', 'Antonio'];

function saludarEstudiante(para_nombre) {
	console.log(`Hola, ${para_nombre}`);
}

do {
	var nombre = estudiantes.shift();
	saludarEstudiante(nombre);
} while (estudiantes.length > 0);

  • ¿Qué es un ciclo infinito y por qué es un problema?
    Un ciclo, loop o infinito es
  • ¿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);
}

// 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.


let value_a = 2;
let value_b = 2;
let result = value_a + value_b;

let response = parseInt(
	prompt(` Cuanto es: ${value_a} + ${value_b} `)
);

while (response !== result) {
	if (response !== result) {
		console.log(`🥺Volvamos a empezar 🥺`);
		response = parseInt(
			prompt(` Cuanto es: ${value_a} + ${value_b} `)
		);
	}
	if (response === result) {
		console.log(`🎉🎉Respuesta correcta 🎉🎉`);
	}
}

Listas

1️⃣ Responde las siguientes preguntas en la sección de comentarios:

<h5>- ¿Qué es un array?</h5>

Los array son objetos en forma de lista cuyo prototipo tiene métodos para realizar operaciones sobre los datos que están dentro de ellos. Algo importante sobre los array es que estos pueden tener valores variados, a diferencia de otros lenguajes los array deben ser del mismo tipo de datos

Referencia:

array

<h5>- ¿Qué es un objeto?</h5>

Los objetos representa uno de los tipos de datos de Javascript. Es usado para guardar una colección de datos definidos y entidades más complejas. Los objetos se definen y están delimitados mediante llaves '{ }'. Un atributo se compone de una clave (key) y un valor(value), que se separan entre sí por dos puntos 'key': 'value'. Los valores pueden ser de tipo string, número, booleano, etc. Cada atributo está separado del siguiente por una coma.

Declaración

var name_object = {
    //atributo: valor
    key: 'value',
    key_2: 'value 2',
};
<h5>- ¿Cómo acceder a un atributo de un objeto?</h5>

Un objeto puede tener todos los atributos que sean necesarios, para acceder a ellos se debe escribir el nombre de un objeto separado por un punto del nombre de un atributo, nos permite acceder al valor de dicho atributo para ese objeto.

Ejemplo:

nombre_del_eObjeto.Propiedad

<h5>- Desglosar objetos y pasarlos por parámetros</h5>

Un objeto también se puede pasar como atributo en una función. Las últimas versiones de JavaScript nos permiten desglosar el objeto para acceder únicamente al atributo que nos interesa. Esto se consigue encerrando el nombre del atributo entre llaves { }.

Ejemplo:

function showNameUpperCase({ name, lastName }) {
	console.log('El nombre en mayúsculas: ' + name.toUpperCase());
	console.log('El apellido en mayúsculas: ' + lastName.toUpperCase());
	console.log();
}
<h5>- Errores comunes al pasar objetos por parámetros</h5>
  • invocar el método vacío dará error, si este recibe un parámetro de un objeto de-estructurado

Ejemplo:

showNameUpperCase()
  • Dará error sí se pasa un atributo que no existe. También dará error si la función pide por parámetro dos atributos y sólo se le pasa uno

Ejemplo:

showNameUpperCase({ Apellido: 'Arnaldo' })

Ejemplos de declaración de objetos


//Declaración de objetos
var samuel = {
    name: 'Samuel',
    lastName: 'Parra',
    age: 4,
};
var antonio = {
    name: 'Antonio',
    lastName: 'Torres',
    age: 25,
};

// Distintas formas de pasar un objeto 
// por parámetro a una función.

//El objeto completo
function showDataObject(param_persona) {
    console.log('Nombre:   ' + param_persona.name);
    console.log('Apellido: ' + param_persona.lastName);
    console.log('Edad:     ' + param_persona.age);
    console.log();
}

//Pasando la Key especifica que necesitamos del objeto
function showNameUpperCase({ name, lastName }) {
    console.log('El nombre en mayúsculas: ' + name.toUpperCase());
    console.log('El apellido en mayúsculas: ' + lastName.toUpperCase());
    console.log();
}

console.log('Datos personales');
console.log('--------------------');
showDataObject(samuel);
showDataObject(antonio);
console.log('--------------------');

console.log('Transformar nombre en mayúsculas');
console.log('--------------------');
showNameUpperCase(antonio);
showNameUpperCase(samuel);

//Podemos definir un nuevo objeto en el parámetro

showNameUpperCase({ name: 'Feber', lastName: 'Parra' });
console.log('--------------------');

objetos

<h5>- ¿Cuándo es mejor usar objetos o arrays?</h5>

El uso de objetos es mejor cuando se intenta describir en programación algo con propiedades y esas propiedades tiene valores y es mejor usar un array cuando se intenta agrupar datos en una lista

<h5>- ¿Puedo mezclar arrays con objetos o incluso objetos con arrays?</h5>

si se puede mezclar arrays con objetos u objetos con arrays

2️⃣ Crea una función que pueda recibir cualquier array como parámetro e imprima su primer elemento.


let array = ['Hola Mundo (=^.^=)', 'viva js!!!'];
function showData(param_array) {
	console.log(para_array[1]);
}

showData(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).


let array = ['Hola Mundo (=^.^=)', 'viva js!!!'];
function showData(param_array) {
	for (value of param_array) {
		console.log(value);
	}
}

showData(array);

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 antonio = {
    name: 'Samuel',
    lastName: 'Parra',
    age: 4,
};

// Distintas formas de pasar un objeto 
// por parámetro a una función.

//El objeto completo
function showDataObject(param_persona) {
    console.log('Nombre:   ' + param_persona.name);
    console.log('Apellido: ' + param_persona.lastName);
    console.log('Edad:     ' + param_persona.age);
    console.log();
}

Asi quedaria

 let name = "Nombre"
 let lastName = "Apellido"
 let nickname = "Platzito" 
 let age = 30
 let mail = "[email protected]"
 const ADULT = 18
 let saving = 500 
 let debt = 300 

Vaya que si me hace falta mucho por aprender
//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 elemento que se emplea para hacer referencia a otro valor y nos sirve para almacenar valores que queramos utilizar posteriormente.
¿Cuál es la diferencia entre declarar e inicializar una variable?
Al declarar solo se reserva el espacio en memoria de alguna variable a utilizar y al inicializar se le otorga el valor y tipo a la variable declarada.
¿Cuál es la diferencia entre sumar números y concatenar strings?
la diferencia es el tipo de dato con el cual se exprese el número ya que un operador como el signo + puede darnos diferentes resultados según el tipo de dato expresado.
¿Cuál operador me permite sumar o concatenar?
el signo de +

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 / number
Correo electrónico: mail / string
Mayor de edad: adult / boolean
Dinero ahorrado: saveMoney / number
Deudas: debt / number;

3.- Traduce a código JavaScript las variables del ejemplo anterior y deja tu código en los comentarios.
const name= “Ricardo”;
const lastName= “Martin”;
const nickName=“RickTron”;
const age=33;
const mail="[email protected]";
const adult=true;
const saveMoney=10558.55;
const debt= 0;

4.-Calcula e imprime las siguientes variables a partir de las variables del ejemplo anterior:
const completeName= name +" "+ lastName;
const realMoney= saveMoney - debt;

//Funciones
1.-Responde las siguientes preguntas en la sección de comentarios:
¿Qué es una función?
Un conjunto de sentencias que
podemos utilizar para generar ciertas acciones.
¿Cuándo me sirve usar una función en mi código?
Nos sirve para desarrollar procedimientos o tareas especificas que nos permitan ahorrar líneas de código al solo llamar la función y no declarar todo el procedimiento o tarea cada vez que se requiera.
¿Cuál es la diferencia entre parámetros y argumentos de una función?
el parámetro es la variable que se le proporciona a la función mientras que el argumento es el valor real que tendrá la variable que se utiliza en 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:


function presentacion(name,lastname,nickname)
{
const completeName = name +" "+ lastname;
return "Mi nombre es " + completeName + ", pero prefiero que me digas " + nickname + ".";
}
presentacion("Juan David","Castro Gallego","juandc");

//Condicionales
1.- Responde las siguientes preguntas en la sección de comentarios:

¿Qué es una condicional?
es una instrucción o grupo de instrucciones que se pueden ejecutar o no en función del valor de una condición.
¿Qué tipos de condicionales existen en JavaScript y cuáles son sus diferencias?
if, else, else if, switch.
if y else nos sirven para poner la condición referente a que si el evento sucede entonces se aplique la acción y con else le decimos que en caso de que el if no se genere entonces aplique la acción en el else mientras que else if nos sirve para anidar mas condiciones las cuales se activan se se genera la anterior.
en cuanto a switch también cuenta con una condición la cual tiene que comparar y en base a esa comparación la instrucción a ejecutar pasa a ser según el caso que cumpla esa condición
¿Puedo combinar funciones y condicionales?
si, se puede usar condicionales dentro de las funciones

2.-Replica el comportamiento del siguiente código que usa la sentencia switch utilizando if, else y else if: (En este ejercicio la ultima opción debe de ser Expert+)


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=="Expert+")
{
console.log("Tú y alguien más pueden tomar TODOS los cursos de Platzi durante un año");
}else
{
console.log("Suscríbete 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).


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=="Expert+")
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?
Una condición que se cumple una varias veces
¿Qué tipos de ciclos existen en JavaScript?
for, do while y while
¿Qué es un ciclo infinito y por qué es un problema?
es cuando un ciclo tiene infinitas iteraciones y es un problema ya que impide que nuestro código continúe ejecutándose y consumiría demasiados recursos.
¿Puedo mezclar ciclos y condicionales?
si

2.-Replica el comportamiento de los siguientes ciclos for utilizando ciclos while:

2.1.-

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

2.2.-

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 adivinaLaSuma(){
const aNumber = Number(window.prompt("cuánto es 2 + 2", ""));
if(aNumber==4)
alert("(^0^)/ ¡Felicidades la respuesta es Correcta! (^0^)/");
else
alert("La respuesta es Incorrecta (T_T)");
}

//Listas
1.-Responde las siguientes preguntas en la sección de comentarios:

¿Qué es un array?
Los arrays son objetos similares a una lista cuyo propósito es contener un conjunto de elementos los cuales se pueden obtener a partir de una búsqueda.
¿Qué es un objeto?
es un tipo de dato el cual es usado para guardar una colección de datos definidos y entidades más complejas
¿Cuándo es mejor usar objetos o arrays?
cuando se trata de hacer una estructura parecida a JSON es mejor realizar un objeto mientras que el arreglo es mejor para elementos que indiquen posiciones o características especificas como lo puede ser un arreglo de colores, nombres, etc.
¿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.

2.1.-

const imprimeArray= (array) => {  
    for (let i = 0; i < array.length; i++) { 
    console.log(array[0]);
    }
};
const result = window.prompt("Ingresa los argumentos de un array, recuerda ingresar argumento seguido por una coma y posteriormente el argumento siguiente");
let arreglo= result.split(',');

imprimeArray(arreglo);

2.2.-


const imprimeArray = (array) => {
  array.forEach((elem) => {
    console.log(elem);
  });
};
const result = window.prompt("Ingresa los argumentos de un array, recuerda ingresar argumento seguido por una coma y posteriormente el argumento siguiente");
let arreglo = result.split(',');

imprimeArray(arreglo);

2.4.-

let mascota= {
        nombre: 'Loky',
        raza: 'Husky',
        edad: 2
      }
      const imprimeObjeto = (objeto) => {
        Object.values(objeto).forEach((elem) => {
          console.log(elem);
        });
      };
      
      imprimeObjeto(mascota);

Hola a todos, aquí mis respuestas, si notan algo no duden en corregir o ampliar mis comentarios, gracias.
Variables y operaciones

1️⃣ Responde las siguientes preguntas en la sección de comentarios:

  • ¿Qué es una variable y para qué sirve?
    Permite almacenar información en un espacio de memoria reservado.

  • ¿Cuál es la diferencia entre declarar e inicializar una variable?
    Al declarar simplemente se define el nombre y tipo de variable para utilizarse posteriormente, al inicializarla se le da un valor, se puede hacer ambas cosas a la vez.

  • ¿Cuál es la diferencia entre sumar números y concatenar strings?
    Al sumar números se realiza una operación matemática, al concatenar strings solo se forma un nuevo storing con los elementos originales.

  • ¿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
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.

const name
const lastName
let userName 
let age
let email
let isAdult
let savings
let debts

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

const fullName = name + "  " + lastName
let money = savings - debts
console.log(fullName)
console.log(money)

Funciones
1️⃣ Responde las siguientes preguntas en la sección de comentarios:

  • ¿Qué es una función?
    Es un objeto que contiene un conjunto de declaraciones/operaciones que puede recibir opcionalmente parámetros y regresar un resultado.

  • ¿Cuándo me sirve usar una función en mi código?
    Para reutilizar segmentos de código o hacer operaciones que se utilizen más de una vez, también para realizar operaciones que requieran datos de entrada y de salida.

  • ¿Cuál es la diferencia entre parámetros y argumentos de una función?
    Los parámetros son las variables que definimos dentro de la función, los argumentos son los valores de esos parámetros que enviamos 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:

function saludo(name, lastname, nickname){
	console.log(
		`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 una condicional?
    Es un segmento de código que se ejecuta si se cumple alguna condición definida.

  • ¿Qué tipos de condicionales existen en JavaScript y cuáles son sus diferencias?
    if -> Define un segmento de código a ejecutar basado en una condición
    if else -> Agrega una condición adicional a ejecutar si no se cumple la primera.
    else -> Define otro segmento de código a ejecutar si la condición no se cumple
    switch -> Permite definir varios escenarios de condición a ejecutar en un solo segmento de código (función similar a múltiples if else)

  • ¿Puedo combinar funciones y condicionales?
    Sí, una función puede vivir dentro de una condicional y viceversa.

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).

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 segmento de código que se ejecuta hasta que se cumple o deja de cumplir una condición.

  • ¿Qué tipos de ciclos existen en JavaScript?
    while, do… while, for y la recursión

  • ¿Qué es un ciclo infinito y por qué es un problema?
    Es un segmento de código que se ejecuta sin límite de condición a cumplir, es un problema porque se ejecuta infinitamente consumiendo los recursos del navegador y sistema y generalmente genera un cierra de la aplicación o que esta no responda.

  • ¿Puedo mezclar ciclos y condicionales?
    Sí.

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.

do{
    var resultado = prompt("Cuál es el valor de 2 + 2")
} while(resultado != 4){
    alert("Felicidades, es correcto")
}

Listas
1️⃣ Responde las siguientes preguntas en la sección de comentarios:

  • ¿Qué es un array?
    Es un grupo de valores ordenados almacenados en una sola variable.

  • ¿Qué es un objeto?
    Los objetos representan una cosa o elemento de la vida real que tiene propiedades y que en algunos casos cumple con algunas funciones.

  • ¿Cuándo es mejor usar objetos o arrays?
    Un array es mejor usarlo cuando se tienen varios datos no necesariamente relacionados o dependientes entre sí que se quieran guardar en una sola variable, un objeto es más útil cuando los datos son relacionados a dependen de un mismo ente, por ejemplo para crear una persona o un producto.

  • ¿Puedo mezclar arrays con objetos o incluso objetos con arrays?
    Sí, una persona puede tener entre sus propiedades a un array, o un array puede estar formado por objetos.

2️⃣ Crea una función que pueda recibir cualquier array como parámetro e imprima su primer elemento.

function firstElementofArray(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 allElementsInArray(array){
    for(let 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 allElementsInObject(object){
    for(let key in object){
        console.log(object[key])
    }
}
var nombre = "Juan";
var apellido = "Sanabria";
var Edad = 19;
var email = "jpsjsr8gmail.com";
var mayorEdad = true;
var dineroA = 1000;
var deudas = 500;

console.log("Nombre completo: " + nombre + " " + apellido);
console.log("Dinero real : $" + (dineroA - deudas));

Solucion reto condicionales :

let tipoDeSucripcion = prompt("Tipo de suscripcion : ")

const contenido = ["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+", "Tú y alguien más pueden tomar TODOS los cursos de Platzi durante un año"];
let p = contenido.indexOf(tipoDeSucripcion)
if (p>=0) {
    console.log(contenido[p+1])
}else
{
    console.log("No se reconoce el tipo de suscripcion " + p)
} 

BONUS:

suscriptions = [
    {tipo:"Basic",mensaje:"Puedes tomar todos los cursos por un mes"},
    {tipo:"Expert",mensaje:"Puedes tomar todos los cursos por un año"},
    {tipo:"Expert+",mensaje:"Puedes tomar todos los cursos por un año e invitar a un compa"},
    {tipo:"Free",mensaje:"Puedes tomar todos solo los cursos gratis"}
]

var resultado = suscriptions.find(function(element){
    return element.tipo === tipoDeSuscripcion
})

console.log(resultado.mensaje)
  1. Responde las siguientes preguntas
  • Es un espacio en memoria que sirve para almacenar datos.
  • Al declarar le decimos al SO que debe reservar un espacio en memoria, mientras que al inicializar estamos almacenando un valor en una variable.
  • Sumar numeros es una operación matemática, mientras que concatenar strings no es más que unir dos o más cadenas de texto para forma una frase.
  • Se utiliza el operador de +
  1. Determina el nombre y tipo de dato para almacenar en variables la siguiente información:
  • firstName = string
  • lastName = string
  • platziUsername =string
  • age = number
  • email = string
  • isAdult = boolean
  • savedMoney = number
  • debts = number
let name = 'Montgomery'
let lastname = 'Burns'
let platziUsername = '@mrBurns'
let age = 104
let email = '[email protected]'
let isAdult = true
let savedMoney = 16800000000
let debts = 50000
let realMoney = savedMoney - debts

console.log('Nombre completo : ' + firstName + ' ' + lastName);
console.log('Dinero real : ' + realMoney);

Funciones

  1. Responde las siguientes preguntas en la sección de comentarios:
  • Instrucciones encapsuladas o agrupadas en un bloque de código que permiten por medio de una o varias entradas obtener una salida.
  • Cuando tenemos instrucciones que se repiten a menudo a lo largo de nuestro código.
  • Un parámetro es el valor que una función espera, mientras que un argumento es el valor que se le pasa a una función al llamarla.
  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 saludar(name, lastname, nickname) {
  const completeName = name + ' ' + lastname;
  console.log("Mi nombre es " + completeName + ", pero prefiero que me digas " + nickname + ".");
}

saludar('Montgomery', 'Burns', '@mrBurns')

Condicionales

  1. Responde las siguientes preguntas en la sección de comentarios:
  • Instrucciones que evaluan si se cumple cierta condición para así ejecutar alguna acción.
  • Tenemos if, if else, switch y operadores ternarios.
  • El if evalua si se cumple una condición. Si el resultado es verdadero ejecuta un código, de lo contrario ejecuta otro.
  • El switch recibe como parámetro el valor a evaluar, y realiza una comparación con los distintos casos que tiene definidos para llevar a cabo la acción que corresponde.
  • Los ternerios funcionan de forma similar al if solo que su sintaxis es diferente.
  • Si.
  1. Replica el comportamiento del siguiente código que usa la sentencia switch utilizando if, else y else if:
function planPlatzi(plan = "Basic") {
  tipoDeSuscripcion = plan.toUpperCase()
  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");
  }
}

planPlatzi('EXPERT')
  1. BONUS
let planes = [
  {name: 'FREE', desc: 'Solo puedes tomar los cursos gratis'},
  {name: 'BASIC', desc: 'Puedes tomar casi todos los cursos de Platzi durante un mes'},
  {name: 'EXPERT', desc: 'Puedes tomar casi todos los cursos de Platzi durante un año'}
]

const planPlatzi = (plan) => {
  var tipoDeSuscripcion = planes.find((element) => element.name === plan.toUpperCase())
  
  if (tipoDeSuscripcion) {
    console.log(tipoDeSuscripcion.desc)
  }
}

planPlatzi('basic')

Ciclos

  1. Responde las siguientes preguntas en la sección de comentarios:
  • Estructura de código que repite instrucciones hasta cumplir con una condición.
  • Estan el for, while, do while, foreach, for in.
  • Es un ciclo se se repite indefinidamente. Es un problema debido a que puede causar un mal funcionamiento en el rendimiento de un sitio web.
  • Si.
  1. 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++
}

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--
}
  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.
function dosMasDos() {
  const num = 2
  const SOLUTION = 4
  let result = 0
  
  do {
    result = prompt('¿Sabes cuanto es ' + num + ' + ' + num + '?')
    if (result != SOLUTION) {
      alert('Ooops, Inténtalo otra vez! 😜')
    } else {
      alert('Excelente, tu respuesta es la correcta! 🎉')
    }
  } while (result != SOLUTION)
}

dosMasDos()

Listas

  1. Responde las siguientes preguntas en la sección de comentarios:
  • Estructura de datos que permite almecenar valores en una lista de elementos, a los cuales podemos acceder por medio de un índice asignado a la posición que este ocupa en dicha lista.
  • Conjunto de datos relacionados entre sí por una clave y su valor.
  • Varía dependiendo de las necesidades de la tarea a realizar.
  • Si, a esto le conozco como un arreglo de objetos.
  1. Crea una función que pueda recibir cualquier array como parámetro e imprima su primer elemento.
function firstElement(elements) {
  console.log(elements[0]);
}

firstElement(['Banana', 'Mango', 'Fresa'])
  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 allElement(fruits) {
  fruits.forEach(element => {
    console.log(element);
  });
}

allElement(['Banana', 'Mango', 'Fresa'])
  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 character = {
  name: 'Rick Sánchez',
  age: 70,
  species: 'Human',
  origin: 'Earth (C-137)'
}

function showCharacter(character) {
  for (const i in character) {
    if (Object.hasOwnProperty.call(character, i)) {
      const element = character[i];
      console.log(i + ': ' + element);
    }
  }
}

showCharacter(character)

Dos de los retos:

const myname = "José carlos";
const lastname = "Díaz";
const nickname = "Joseca";

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

sayMyName(myname, lastname, nickname);
const tipoDeSuscripcion = "Basic";
const msg = [
  "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",
  "Free",
  "Tú y alguien más pueden tomar TODOS los cursos de Platzi durante un año",
];
const res = (msg,suscrip) => { return msg.indexOf(suscrip) > 0
    ? msg[msg.indexOf(suscrip) + 1]
    : "No tienes platzi :("};


console.log(res(msg,tipoDeSuscripcion))

*Una variable es un espacio en memoria que sirve para guardar un dato o conjunto de datos que van a ser usados mas adelante.
*Declarar una variable es cuando se nombra la variable así no se guarde un dato, inicializarla es cuando se guarda la información.
*sumar números se hace cuando la variable es de tipo entero o decimal, concatenar es cuando el numero esta como string y no se puede sumar sino que se adiciona como cadena de texto.
*El operador es "+"
2.
*Nombre: string
*Apellido: string
*Nombre de usuario en Platzi: string
*Edad: int
*Correo electrónico: string
*Mayor de edad: bolean
*Dinero ahorrado: int
*Deudas: int

Variables y operaciones

  • Variable: Es un espacio en la memoria que te permite almacenar información de algún tipo de dato.
  • Declarar: Cuando se declara una variable se reserva un espacio en la memoria, para el caso de JS lo haces utilizando las palabras reservadas var, let y const. Una analogía sería que para guardar algo en tu casa tu reservas una cajita. Aún no sabes que vas a guardar y pero ya tienes el espacio donde guardar reservado.
  • Inicializar: Siguiendo el ejemplo anterior, es meter lo que vas a guardar en esa cajita. Por ende es decirle a JS guardame esta info que tiene este tipo de dato. Se puede inicializar después de declarar, declarar e inicalizar en la misma linea o gracias al hoisting en JS se puede inicializar una variable y luego declararla.
  • Sumar (aritmética): Sumar como operación aritmética.
  • “Sumar” (concatenación): Con el mismo operador “+” puedes concatenar dos strings. Entendámoslo como la unión.
  1. Variables y tipos de datos.
let nombre = 'Pepe'; // String
let apellido = 'Grillo'; // String
let nombre_usuario = 'pepe_grillo'; // String
let edad = 150; // Number
let email = '[email protected]';
let mayor_edad = true // Boolean
let  ahorros = 1000 // Number
let deudas = 500 // Number
  1. Concatenación y operación matemática
let full_name = nombre + " " + apellido; // Pepe Grillo
let dinero_real = ahorros - duedas; // 500

Funciones

  1. Función: Es un bloque de código que al ejecutarse resuelve una tarea específica. Generalmente se usan cuando
    la tarea que va a resolver esta función se considera que va a ser repetitiva a lo largo del programa o código que se está escribiendo.
  • Parametros y argumentos: Los parámetros son aquellas varibles que usamos cuando estamos definiendo una función.
    Los argumentos son los valores que damos a esas varibles cuando hacemos el llamado de la función
function suma(a, b) {
	return a + b;
}

const result = suma(10, 8); // 18
function fullName (name, lastname, completeName, nickname) {
    return(`Mi nombre es ${name} ${lastname}, pero prefiero que me digas ${nickname}.`);
}

Condicionales

  • Condicional: Es una instrucción que se puede ejecutar o no dependiendo de una validación cuya resolución es un valor booleano.
  • En JS existen: if, else, else if, switch.
  • Si se pueden combinar.
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 == "Free") {
    console.log("Tú y alguien más pueden tomar TODOS los cursos de Platzi durante un año");
} else {
    console.log("No tienes suscripción o esa suscripción no existe")
}

Solo 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") {
    console.log("Tú y alguien más pueden tomar TODOS los cursos de Platzi durante un año");
}

Mis respuestas a la prueba de JS

/**
 * Prueba de JavaScript
 * 
 *
 * Variables y operaciones
 * 
 * 1️⃣ Responde las siguientes preguntas:
 * 
 * 
 * ◽ ¿Qué es una variable y para qué sirve?
 *      
 * ✅ Una variables es un espacio reservado memoria al cual
 * le designamos un nombre simbolico y nos sirve para almacenar
 * datos
 * 
 * ◽ ¿Cuál es la diferencia entre declarar e inicializar una variable?
 * 
 * ✅ La diferencia es que declarar es solo reservar su espacio en memoria e inicializar
 * significa asignarlas algún valor, ya sea de tipo númerico, lógico o de otro tipo. 
 * 
 * ◽ ¿Cuál es la diferencia entre sumar números y concatenar strings?
 * 
 * ✅ Concatenar es unir cadenas de string, y sumar es realizar la operacion
 * matematica
 * 
 * ◽ ¿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
 *  nombreUsuarioEnPlatzi = String
 *  edad = Number
 *  correoElectronico = String
 *  mayorDeEdad = Boolean
 *  dineroAhorrado = Number
 *  deuda = Number
 * 
 * 
 * 3️⃣ Traduce a código JavaScript las variables del ejemplo 
 * anterior y deja tu código en los comentarios.
 */
 let nombre = 'Alejandro'
 let apellido = 'Repizo'
 let nombreUsuarioEnPlatzi = 'Aleajandro Repizo'
 let edad = '19'
 let correoElectronico = '[email protected]'
 let mayorDeEdad = true
 let dineroAhorrado = 2000000
 let deuda = 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)
 * 
 */

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

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


/**
 * Funciones
 * 
 * 1️⃣ Responde las siguientes preguntas:
 * 
 *  ◽ ¿Qué es una función?
 *      
 * ✅ Una función es una sección de código que nos permire calcular un
 * valor de manera independiete al resto del programa, además la
 * podemos reutilizar durante todo el ciclo de vida del código.
 * 
 * ◽ ¿Cuándo me sirve usar una funcón en mi código?
 *      
 * ✅ Nos sirve cuando vayamos a utilizar una misma operación muchas veces
 * en nuestro código.
 * 
 * ◽ ¿Cuál es la diferencia entre parámetros y argumentos de una función?
 * 
 * ✅ Un argumento representa el valor que se pasa a un parámetro 
 * de procedimiento cuando se llama al procedimiento. 
 * 
 * 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 data = (name, lastname, nickname) => {
    return  console.log(`Mi nombre es ${name} ${lastname} pero prefiero que me digas ${nickname}.`);
 }

 data('alejandro', 'repizo', 'AlejandroRepizo')


/**
 * Condicionales
 * 
 * 1️⃣ Responde las siguientes preguntas:
 *  
 * ◽ ¿Qué es una condicional?
 * 
 * ✅ Una condicional son un conjunto de instruccion que se ejecutan o no 
 * dependiendo de la expresion a evaluar
 * 
 * ◽ ¿Qué tipos de condicionales exiten en JavaScript y cuáles son sus diferencias?
 * 
 * ✅ Existen el if, else, else if sus diferencias son su sintaxis y su 
 * aplicación
 * 
 * ◽ ¿Puedo combinar funciones y condicionales?
 * 
 * ✅ Si se pueden 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 "Free":
        console.log("Tú y alguien más pueden tomar TODOS los cursos de Platzi durante un año");
        break;
 }


 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+') {

    console.log("Tú y alguien más pueden tomar TODOS los cursos de Platzi durante un año");

 }else {
    console.log('No tienes suscripcion 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 tipoDeSuscripcionPlatzi = "Expert+";

 if (tipoDeSuscripcionPlatzi === 'free') 

    console.log("Solo puedes tomar los cursos gratis");

 if (tipoDeSuscripcionPlatzi === 'Basic') 

    console.log("Puedes tomar casi todos los cursos de Platzi durante un mes");

 if (tipoDeSuscripcionPlatzi === 'Expert') 

    console.log("Puedes tomar casi todos los cursos de Platzi durante un año");

if (tipoDeSuscripcionPlatzi === 'Expert+') 

    console.log("Tú y alguien más pueden tomar TODOS los cursos de Platzi durante un año");

/**
 * Bonus: si ya eres una experta o experto en el lenguaje, te desafío a comentar cómo replicar este comportamiento con arrays y 
 * un solo condicional. 😏
 */

 const tipoDeSuscripcionPlatzi = "Experts+";

const tiposDeSuscripcion = {
    '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+': 'Tú y alguien más pueden tomar TODOS los cursos de Platzi durante un año'
}

console.log(tiposDeSuscripcion[tipoDeSuscripcionPlatzi] || tipoDeSuscripcionPlatzi)

/**
 * Ciclos
 * 
 * 1️⃣ Responde las siguientes preguntas:
 * 
 * ◽ ¿Qué es un ciclo?
 * 
 * ✅ Un ciclo es una estructura que nos permire ejecutar
 * un codigo hasta que se cumpla una expresion
 * 
 * ◽ ¿Qué tipos de ciclos existen en JavaScript?
 * 
 * ✅ Existe el While, do while, for, for each, for in, for of
 * 
 * ◽ ¿Qué es un ciclo infinito y por qué es un problema?
 * 
 * ✅ Es cuando se ejecuta el código y nunca se llega a cumplir 
 * la condición, porque llena el event loop
 * 
 * ◽ ¿Puedo mezclar ciclos y condicionales?
 * 
 * ✅ Si se pueden mezclar 
 * 
 * 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++);
 }

 let i = 10

 while (i >= 2) {
    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 questionToUser = () => {
    let input
    do {
    
        input = parseInt(prompt('¿Cual es el resultado de 2 + 2 ?'))

        if (input === 4) 
            alert('Felicidades')

    } while (input != 4);
}

questionToUser()

/**
 * Listas
 * 
 * 1️⃣ Responde las siguientes preguntas:
 * 
 * ◽ ¿Qué es un array?
 * 
 * ✅ Un array es una colección infinita de datos
 * 
 * ◽ ¿Qué es un objeto?
 * 
 * ✅ objeto es un tipo de dato que surge a partir de la clase
 * 
 * ◽ ¿Cuándo es mejor usar objetos o arrays?
 * 
 * ✅
 * 
 * ◽ ¿Puedo mezclar arrays con objetos o incluso objetos con arrays?
 * 
 * ✅ Dependiendo del contexto con el que se vaya a utilizar 
 * si se necesita datos y llaves es mejor un objeto pero si no mejor usar arrays
 * 
 * 2️⃣ Crea una función que pueda recibir cualquier array como parámetro }
 * e imprima su primer elemento.
 */

const imprimeElPrimerElemento = (array) => {
    return 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).
 */

const imprimeLosElementos = (array) => {
    array.forEach( (element) => {
        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).
 */

const imprimeLosElementosDelObjeto = (object) => {
    for (const key in object) {
        console.log(object[key])
    }
}


Esta es mi solución al reto de ¿Cuánto es 2 + 2? Si alguien ve algún error o alguna posible mejora en mi código, le agradecería que me lo dijera.

let usuario = Number(prompt('¿Cuánto es 2 + 2?'));

function resultadoRespuesta(usuario) {
  
  for(let i = 0; i < 100; i++) {
    if(usuario == 4) {
      alert('Felicitaciones la respuesta es correcta!');
      break;
    } else {
      usuario = Number(prompt('¿Cuánto es 2 + 2?'));
    }
  }
}

resultadoRespuesta(usuario);

1 .- Preguntas
a) Es un espacio en la memoria del ordenador y sirve para guardar valores.
b) En el primer caso solo se le asigna un nombre a la variable y el segundo se le asigna un valor.
c) En el primer caso el aperador aritmético suma realiza una operación matemática y el segundo tiene une o concatena dos strings o un string con una variable.
d) El operador aritmético suma +.

2.- Podríamos guardar esta información como un objeto de Java Script o en un array. Nombre, apellido, usuario, email: string; edad, dinero ahorrado y deudas: number; mayor de edad; boolean.

var cliente = [
	{nombre: 'Leobardo',
	apellido : 'Licona',
	usuario: 'leoncreactivo',
	edad: 30,
	email: '[email protected]',
	mayorEdad: true, 
	ahorro: 0,
	deudas: 0
}]
 function nombreCliente () {
 var nombre = cliente.nombre
 var apellido = cliente.apellido  
 var c = nombre + ' ' + apellido;
 return c 
}
console.log(c);

+++++ Funciones ++++++

1.-
a) La función es un bloque de código que procesa instrucciones y devuelve un resultado, y puede ser llamada en cualquier parte del código.
b) Cuando tengo una operación que se va a repetir de manera recurrente nuestro código,
c) Los parámetros se refieren a nombres que aparecen en la definición de una función que y los argumentos se refieren a a los valores que recibe una función.

2.-

const name = "Juan David";
const lastname = "Castro Gallego";
const nameLast = name + lastname;
const nick = "juandc";
function dimeAsi(completeName, nickName){ console.log("Mi nombre es " + completeName + ", pero prefiero que me digas " + nickName + ".");}
var result = dimeAsi (nameLast, nick);

Condicionales

1.- Es una estructura de control que permite condicionar de manera lógica una respuesta/output.
2- If, junto con else y else if. Son uno mismo.
3.- Si, claro.

4.-

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

5.- var 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.-
a)Es una estructura de codigo para realizar tareas repetitiva e iterar en los arrays.
b)for, while, do while
c) Cuando no se define el termino de un blucle, ya que se repite infinitamente consumiendo recursos del ordenador.
d) Si, claro.
2.-

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

3.-

while (r != 4) {
    var r = parseInt(prompt('Cuanto es 2 + 2?' ));
}
***************************************************************************
Listas 

1.- 
	a) Es una matriz de valores depositados en una variable 
	b) Es una colección de propiedades, funciona como un array.
	c) Cuando requerimos un tipo  de objeto con las mismas caracteristicas, por ejemplo coches, casas, usuarios.
	d) Si, claro. 
2.- 

var dino = [‘Rex’, ‘Carnotaurus’, ‘Cuello largo’, ‘Indominuos Rex’]

function dinoSelect (){
return dino[1]
}

3.- 

var dino = [‘Rex’, ‘Carnotaurus’, ‘Cuello largo’, ‘Indominuos Rex’]
function dinoSelect (x){
x.forEach(element => {
console.log(element);
});
}
dinoSelect(dino);

4.- 

var dino = [{nombre: ‘Rex’, tamaño: ‘17m’}, {nombre:‘Carnotaurus’, tamaño: ‘22m’}, {nombre:‘Cuello largo’, tamaño: ‘30m’}, {nombre: ‘Indominuos Rex’, tamaño: ‘16m’}]

function dinoSelect (x){
x.forEach(element => {
console.log(‘El dinosaurio de ficción llamado ’ + element.nombre +’ tiene un tamaño imaginario de ’ + element.tamaño);
});
}
dinoSelect(dino);










//VAriables y operaciones
// 2)

// // (Nombre)
let nombre = ‘’;
// // Apellido
let apellido = ‘’;
// // Nombre de usuario en Platzi
let userPlatzi = Number;
// // Edad
let edad = Number;
// // Correo electrónico
let email = ‘’;
// // Mayor de edad
let mayor = Boolean;
// // Dinero ahorrado
let ahorro = 0;
// // Deudas
let deuda = 0;

//4)
function nombreCompleto() {
return nombre + ’ ’ + apellido;
}
function dineroReal() {
return dinero - deuda;
}

//function
//2)
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 presentacion(name, lastname, nickname) {
var completeName = name + ’ ’ + lastname;

return "Mi nombre es " + completeName + ", pero prefiero que me digas " + nickname + "."

}

//Condicionales
//2)
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;
// }
function suscripcion(tipoDeSuscripcion) {

//3)
let suscrip = {
    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 (suscrip[tipoDeSuscripcion]) {
    return suscrip[tipoDeSuscripcion]
}
return 'No tiene suscripcion'

// //2)----------------------------------
if (tipoDeSuscripcion === "Free") {
    return "Solo puedes tomar los cursos gratis";
}
else if (tipoDeSuscripcion === 'Basic') {
    return "Puedes tomar casi todos los cursos de Platzi durante un mes";
}
else if (tipoDeSuscripcion === 'Expert') {
    return "Puedes tomar casi todos los cursos de Platzi durante un año";
}
else if (tipoDeSuscripcion === 'ExpertPlus') {
    return "Tú y alguien más pueden tomar TODOS los cursos de Platzi durante un año";
}
else return 'No tiene suscripcion';

//Bonus:
let suscrip = {
    Free: 0,
    Basic: 1,
    Expert: 2,
    ExpertPlus: 3
}
let descrip = ["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"]

if (suscrip[tipoDeSuscripcion]) {
    return descrip[suscrip[tipoDeSuscripcion]];
}
return 'No tiene suscripcion';

}

////Ciclos
//2)

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)

function resolverSuma() {
let result;

while (result != 4) {
    //preg 
    result = window.prompt('¿cuanto es 2 + 2 ?');
    //verifico respuesta del usuario
    if (result == 4) {
        return alert('Felicitaciones');
    }
}

}

/// Listas:
//2)
function primerElemento(array) {
return array[0];
}
//3)
function todosSusElementos(array) {
for (let i = 0; i < array.length; i++) {
console.log(array[i]);
}
}
//4
function objCompleto(objeto) {
for (const key in objeto) {
console.log(key)
console.log(objeto[key]);
}
}

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 designamos para guardar información.

*¿Cuál es la diferencia entre declarar e inicializar una variable?
-Cuando declaramos una variable le estamos dando un nombre y le reservamos espacio en memoria.
-Y cuando la inicializamos es cuando guardamos un valor en ella.

*¿Cuál es la diferencia entre sumar números y concatenar strings?
-Sumar números es una operación matemática.
-Concatenar strings es acoplar 2 o mas valores y convertirlos en uno.

*¿Cuál operador me permite sumar o concatenar?
-Se usa el signo + para ambas opciones.

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 = "Martín";
let Apellido = "Hernandez";
let nombreUsuarioPlatzi = "martincba";
let edad = 36;
let email = "[email protected]";
let mayorDeEdad = true;
let dineroAhorrado = 25000;
let Deudas = null;

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;

Funciones
1️⃣ Responde las siguientes preguntas en la sección de comentarios:

*¿Qué es una función?
-Una serie de procedimientos usadas para resolver un problema.

*¿Cuándo me sirve usar una función en mi código?
-Cuando necesitamos resolver varias veces un mismo problema y asi no repetir tanto codigo.

*¿Cuál es la diferencia entre parámetros y argumentos de una función?
-Los parametros son la lista de variables que ponemos cuando se define una funcion.
-Los argumentos son los vaores que se pasan a la funcion cuando esta es invocada.

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 myFunction(nombreCompleto, nickName) {
  return (
    "Mi nombre completo es " +
    nombreCompleto +
    " pero prefiero que me digas " +
    nickName +
    "!"
  );
}
console.log(myFunction("Martín Alejandro Hernandez", "Tincho"));

condicionales
1️⃣ Responde las siguientes preguntas en la sección de comentarios:

*¿Qué es una condicional?
-Una instrucción que se ejecuta o no, depende del resultado de una evaluacion.

*¿Qué tipos de condicionales existen en JavaScript y cuáles son sus diferencias?
-if: si sucede tal cosa.
-else: if o esta otra cosa.
-else: o no sucede.
-switch: podemos listar una serie de bloques de enunciados que se ejecuten dependiendo del valor de una variable.

*¿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:

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 === "Expert+") {
  console.log(
    "Tú y alguien más pueden tomar TODOS los cursos de Platzi durante un año"
  );
}

solo con if

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 === "Expert+") {
  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 bloque de codigo que se repite n veces.

*¿Qué tipos de ciclos existen en JavaScript?
-While
-Do While
-For
-For in
-For of

*¿Qué es un ciclo infinito y por qué es un problema?
-es un ciclo que no tiene una condicion de corte, por lo tanto se va a repetir por siempre.
-al no cortar nunca puede consumir demasiados recursos y generar problemas en nuestra pc.

*¿Puedo mezclar ciclos y condicionales?
-si, claro!

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.

Pista: puedes usar la función prompt de JavaScript.

do {
    num = prompt("Cuanto es 2 + 2 = ");
    if (num==4) {
        alert("Felicitaciones, la suma es correcta!!");
        respuesta = true;
    }else {
        alert("Lo siento, intentalo otra vez...");
    }
} while (respuesta==false);

Listas
1️⃣ Responde las siguientes preguntas en la sección de comentarios:

*¿Qué es un array?
-es una lista de valores del mismo tipo almacenados en una misma variable.(en JavaScript no necesariamente tienen que ser del mismo tipo)

*¿Qué es un objeto?
-es una coleccion de datos relacionados, llamados propiedades.

*¿Cuándo es mejor usar objetos o arrays?
-usamos objetos cuando necesitamos guardar datos con propiedades, de lo contrario solo usamos arrays.

*¿Puedo mezclar arrays con objetos o incluso objetos con arrays?
-si, claro!
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).

let persona = {
    nombre:"Martín",
    apellido:"Hernandez",
    edad:36
}
function imprimirPersona(persona) {
    console.log("Nmombre = " + persona.nombre);
    console.log("Apellido = " + persona.apellido);
    console.log("Edad = " + persona.edad);
}
imprimirPersona(persona);

Paso a dejar mi versión del Reto Bonus

let tipoDeSuscripcion = prompt('Digite el indicador del plan que posee (Free = 1, Basic = 2, Expert = 3 o Expert Plus = 4):');

const SuscripcionesConMensajes = [
    {id: 1, tipo: 'Free', mensaje: 'Solo puedes tomar los cursos gratis'},
    {id: 2, tipo: 'Basic', mensaje: 'Puedes tomar casi todos los cursos de Platzoi durante un mes'},
    {id: 3, tipo: 'Expert', mensaje: 'Puedes tomar casi todos los cursos de Platzi durante un año'},
    {id: 4, tipo: 'Expert Plus', mensaje: 'Tú y alguien más pueden tomar TODOS los cursos de Platzi durante un año'}
];

var suscripcionEscogida = SuscripcionesConMensajes.find(function(suscripcion){
    return suscripcion.id == tipoDeSuscripcion; 
});

console.log(`Usted posee el plan ${suscripcionEscogida.tipo} y ${suscripcionEscogida.mensaje}`);

🦄 Mis humildes respuestas

FUNCIONES

const PlatziName = function (name,lastName,nickname) {
  const completeName = name + lastName;
  console.log(`Mi nombre es ${completeName}, pero prefiero que me digas ${nickname}.`)};
PlatziName("Cristian"," Acalo","Josac");

CONDICIONALES

  • Con if, else if y else
const op1 = "Free",op2 = "Basic", op3 = "Expert",op4 = "Expert Plus";
const beneficiosDeSuscripcion = function (tipoDeSuscripcion){
  if(tipoDeSuscripcion === op1){
    console.log ("Solo puedes tomar cursos gratis");
  }else if(tipoDeSuscripcion === op2){
    console.log ("Puedes tomar casi todos los cursos de Platzi durante un mes");
  }else if(tipoDeSuscripcion === op3){
    console.log("Puedes tomar casi todos los cursos de Platzi durante un año");
  }else if(tipoDeSuscripcion === op4){
    console.log("Tú y alguien más pueden tomar TODOS los cursos de Platzi durante un año")
  }else{
    console.log("No encontramos tu tipo de suscripcion")
  }
};
beneficiosDeSuscripcion(op4);

  • Solo con if
const beneficiosDeSuscripcion2 = function(tipoDeSuscripcion){
  if(tipoDeSuscripcion === op1){
    console.log("Solo puedes tomar cursos gratis");
  };
  if(tipoDeSuscripcion === op2){
    console.log("Puedes tomar casi todos los cursos de Platzi durante un mes");
  };
  if(tipoDeSuscripcion === op3){
    console.log("Puedes tomar casi todos los cursos de Platzi durante un año");
  };
  if(tipoDeSuscripcion === op4){
    console.log("Tú y alguien más pueden tomar TODOS los cursos de Platzi durante un año")
  };
  if(tipoDeSuscripcion === null){
    console.log("No encontramos tu tipo de suscripcion")
  };
};
beneficiosDeSuscripcion2(op1);

CICLOS

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

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

  • Pregunta 3: método 1
const operation = function(){
  let pregunta = prompt("¿Cuanto es 2 + 2?");
  if(pregunta == "4"){
    alert("Felicidades ^^. Has acertado");
      }else{
        operation();
    }
};
operation();

  • Pregunta 3: método 2
let respuesta;
const operacion = function(){
do {
  respuesta = prompt('¿Cual es el resultado de 2 + 2?')
} while (!(respuesta == 4));
if (respuesta == 4){
alert("Felicidades!")
    }else{
        operacion()
    }
};
operacion();

ARRAYS Y OBJETOS

let array = ["Maria", "Sergio", "Rosa", "Daniel"];
const firstElementPrinter = function(){
    console.log(array[0]);
}
firstElementPrinter();

let marcas = ["Audi", "Subaru", "Lexus", "Porsche", "BMW", "Mazda", "Buick", "Toyota", "Kia", "Honda"];

const functionPrinter = function(){
    for(let i = 0 ; i < marcas.length ; i++){
        console.log(marcas[i]);
    };
};
functionPrinter();

Nota: Para este último tuve que buscar ayuda :c

let yoxd = {
  nombre: "Criss",
  apellido: "Acalo",
  nickname: "Josac",
  edad: 18
};
const objectPrinter = (objeto) => {
  Object.values(objeto).forEach((elemento) => {
    console.log(elemento);
  });
};

objectPrinter(yoxd);

EL OUTPUT QUEDARÍA ALGO MÁS O MENOS ASÍ

Nota: lo hice en Replit

Confieso que pase derecho la primera vez y no hice la prueba porque no entendía muy bien, y la verdad se dificulta un poco seguirle el hilo a este curso practico, por eso es fundamental tomar los cursos nombrados, pero FUNDAMENTAL el de pensamiento logico, git y git-hub, y fundamentos de ingeniería de software, de esa manera si eres nuevo (como yo) en este mundo de javascript, no se te va a dificultar.

VARIABLE

una variable es un dato que se caracteriza por tener un valor, y el cual tiene como proposito usarse como valor para realizar alguna operacion, ya que es un concepto mutable e inestable, que se adapta a los diferentes tipos de valores que se le pongan

DECLARAR E INICIALIZAR

Declarar - es traer el nombre por defecto de la variable, pero no su valor

Inicializar - es asignar un valor a la declaracion

definir - es llamar a la delcaracion conjunto a su inicializacion para que retorne lo que se opero.

SUMAR Y CONCATENAR

Concatenar - a diferencia de la suma, lo que se conecta son strings los cuales forman una nuevo texto

Sumar - es literalmente operar los valores numericos y que estos den un resultado.

Operador qu permite concatenar y sumar (+)

NOMBRES Y TIPOS DE DATOS

let nombre = string
let apellido = string
let Nombre de usuario en Platzi = string
let edad = number
let correo electronico = string
let mayor de edad = number
let dinero ahorrado = string
let deudas = number
---------------   
let nombre = "Snehider";
let apellido = "gutierrez";
let username = "Snehider Gutierrez";
let edad = 23;
let email = "[email protected]";
let mayorEdad = "SI";
let dinerAhorrado = 10.000; :D
let deudas = 300.000;  .-.

console.log(nombre + apellido);
console.log(dinerAhorrado - deudas);

FUNCIONES

una funcion es un bloque de codigo que realiza una actividad especifica, la cual recibe parametros cuyos  valores vienen predeterminados, y los argumentos es los valores que el usuario reemplaza de los parametros.
            
            parametros
function suma(a,b){
    console.log(a + b);
}
    argumentos
suma(12, 65);
77.

caracteristicas - es importante usar las funciones para realizar una actividad  especifica, y que a su vez resuelva un problema.

const nombre = "Fabian";
const apellido = "Gutierrez";
const nombreCompleto = nombre + apellido;
const alias = "programador";

function datos(nombreCompleto, alias){
    console.log("mi nombre es " + nombreCompleto + ", pero prefiero que me digas " + alias + ".");
}

CONDICIONAL

    Una condicional es un conjunto de instrucciones, que recibe el codigo y que al ejecutarce evalua las instrucciones y da una solucion (o no la dara por defecto) de acuerdo a estas.

const suscripcion1 = “basic”;
const suscripcion2 = “expert”;
const suscripcion3 = “expert +”;

function suscripcion(tuSucripcion){
if(tuSucripcion === suscripcion1){
console.log(“puedes tomar por un mes los cursos de Platzi”);
}else if(tuSucripcion === suscripcion2){
console.log(“puedes tomar casi todos los cursos de platzi durante un año”);
}else if(tuSucripcion === suscripcion3){
console.log(“puedes tomar junto con alguien mas todos los cursos de platzi durante un año”);
}else{
console.log(“puedes tomar solo los cursos gratuitos”);
}
};

CICLOS

es una accion que se repite con una determinada logica

Tipos de ciclos: for - while -do while

ciclo infinito: como su nombre lo dice, es un ciclo el cual se repetira sin ninguna salida, y tiene un gran problema y es, que al no detenerce y no dar una salida a lo que se quiere no podra seguir ejecutandoce otros codigos, y asi dañar el flujo de trabajo.

es posible combinar los ciclos con los condicionales.

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

    el ciclo for se usa cuando se sabe el numero de iteraciones que tendra el ciclo

    while -> let x = 1;
        while(x < 4){
            console.log(x);
            x++;
        }
        console.log("fin de while");
    el ciclos while es lo contrario a for, es decir, cuando no sabemos la cantidad de iteracion que tendra el ciclo, es mejor usar while

    do while -> const x = 4;

        do{
            console.log(`iteracion${x}`);
            x++;
        }while(x = 5)

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

    let x = 10;

    while(x > 0){
        console.log(x);
        x--;
    }
    console.log("fin del while");

PROMPT

var suma = prompt("cuanto es el valor de esta suma 2 + 2");
if (Number(suma) == suma){
    if(suma == 4){
        alert("Excelente!");
    }else{
        alert(" Ups!vuelve a intentarlo");
    }
}

LISTAS

que es un array?
    - un array en Js un conjunto de datos enlistados, numericos o tipo cadenas de texto, estos a su vez pueden ser modificados

que es un objeto?
    - en Js un objeto es una coleccion de propiedas, y la propiedad esta constituida con un nombre (de la propiedad) y el valor que lleva

el principal uso de los arrays son poder usar una sola variable para guardar varios elementos que podrian ser usados como otras variables, ya que un array funciona como un compartimento donde se almacenan elementos numericos o cadenas de texto. Por otra parte los objetos sirven principalmente para definir las propiedades de una variable.

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

SI

ejercicio 1
const frutas =[“manzana”, “uvas”, “peras”];

const listaFrutas = frutas.find(elemento => {
return elemento === “manzana”;

});

console.log(listaFrutas);

ejercicio 2

const frutas =[“manzana”, “uvas”, “peras”];

frutas.forEach (function(index){
console.log(index);
});

const carro = {
nombre: “audi”,
modelo: “Q5”,
año: “2020”,
}

for (const property in carro){
console.log(carro[property]);
}

Mis respuestas de la prueba de JS
Variables y Operaciones

  1. Responder preguntas:
    • La variable es un espacio reservado en la memoria donde se puede almacenar información.

    • Declarar solo reserva el espacio en la memoria e inicializar guarda un valor dentro de este espacio.

    • Sumar números hace una operación matemática entre dos o más números. Concatenar strings hace que se junten dos o más textos, también se puede concatenar un string con un número pero el número se convertiría en un string también.

2
3. Variables:

var nombre = "Enrique"; //string
var apellido = "Hernandez"; //string
var usuarioPlatzi = "enriquehernandez"; //string
var edad = 22; //number
var email = "[email protected]"; // string
var adult = true; //boolean
var savedMoney = 5000; //number
var deudas = null; //object
var fullName = nombre + " " + apellido;
var totalMoney = savedMoney - deudas;

Funciones

  1. Responder preguntas:

    • Una función es un bloque de código que podemos utilizar para generar ciertas acciones o tareas.

    • Cuando queremos realizar ciertos pasos, cálculos o tareas, creamos una función para poder reutilizar este código en diferentes partes de nuestro código.

    • Los parámetros son las variables que están en la definición de nuestra función y los argumentos son el valor o los datos que le damos a esos parámetros de la función.

  2. Convertir código en función:

function peopleData (NAME, LASTNAME, NICKNAME) {
	this.name = NAME;
	this.lastName = LASTNAME;
	this.completeName = name + " " + lastName;
	this.nickname = NICKNAME;
	console.log("Mi nombre es " + completeName + ", pero prefiero que me digas " + nickname + ".");
}

Condicionales

  1. Responder preguntas:

    • Las condicionales son reglas que vamos a aplicar para validar si algo es verdadero o falso y podemos generar ciertas acciones con eso.

    • if, else, else if, ternario y switch.

    • Si.

  2. Cambiar de switch a if, else y else if:

const = tipoDeSuscripción = "Basic";

if (tipoDeSuscripción === "Free") {
	console.log("Solo puedes tomar los cursos gratis");
} else if (tipoDeSuscripción === "Basic") {
	console.log("Puedes tomar casi todos los cursos de Platzi durante un mes");
} else if (tipoDeSuscripción === "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");
}

Ciclos

  1. Responder preguntas:

    • Es una manera de hacer que una tarea pueda repetirse de forma automática hasta que una función deje de cumplirse.

    • For, for/of, for/in, while, do/while.

    • Es un ciclo que no tiene una condición que lo detenga en algún punto, puede consumir mucha memoria y hacer que el ordenador se apague.

    • Si.

  2. Replicar comportamiento del ciclo for utilizando ciclos while:

var 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--;
}
var pregunta = prompt("¿Cuánto es 2 + 2?");
if (pregunta === "4") {
	console.log("¡Correcto!");
} else {
	console.log("¡Incorrecto!");
}

Listas

  1. Responder preguntas:

    • Es una estructura de datos que puede guardar ciertos valores. Como una caja.

    • Es una colección de propiedades. Es un contenedor de datos que puede llevar varias propiedades dentro de este.

    • Es mejor utilizar un objeto cuando tienes que guardar datos que son repetitivos y podríamos usar una función constructora para hacerlo más automático.

    • Si se pueden mezclar.

function primerElemento (array) {
	console.log(array[0]);
}
var articulos = ["Playera", "Pantalones", "Tennis"];
function todosElementos (array) {
	array.forEach(function (articulo) {
		console.log(articulo);
	});
}
var info = {
    name: "Fernando",
    lastName: "Navarro",
    username: "fernavarosas"
};

function imprimirTodos (object) {
	Object.values(object).forEach(function (elemento) {
		console.log(elemento);
	});
}

Les dejo mis respuestas.

Saludos! 😃

1 - Variables y operaciones:

1.1

  1. Una variable es un espacio en memoria que almacena algún valor o incluso una referencia a otro
    espacio en memoria. Se utiliza para referenciar espacios en memoria y acceder a la información
    que almacenan.
  2. Durante la declaración de una variable se define el nombre y el tipo de datos que almacenara dicha variable. Al inicializar la variable definimos el valor que esta contendrá.
  3. Durante la suma de números se realiza una operación matemática que da como resultado un valor numérico. En cambio durante la concatenación de dos strings se unen dos cadenas de caracteres para formar una.
  4. En la muchos lenguajes de programación (como JS) se puede utilizar el operador mas (+) para realizar tanto la suma de dos números como la concatenación de cadenas de caracteres.

1.3

let firstname = "Nombre";
let lastname = "Apellido";
let nickname = "Nombre de usuario en Platzi";
let age = "Edad";
let email = "Correo electrónico";
let isAdult = "Mayor de Edad";
let savedMoney = 5000;
let debts = 500;

1.4

let nombreCompleto = nombre + " " + apellido;
let dineroReal = dineroAhorrado - deudas;

2 - Funciones

2.1

  1. Una funcion es una tarea o rutina de programacion que se define una ves y puede ser ejecutada tantas veces como se desee mientras se ejecuta un programa.
  2. Cuando se desee encapsular una funcionalidad que se repite varias veces durante nuestro codigo.
  3. Los parametros de una funcion son las variables que se declaran junto a la funcion y que viviran dentro de esta. Los argumentos son los valores que se le pasan a la funcion al ejecutarla.

2.2

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

present("Juan David", "Castro Gallego", "juandc");

3 - Condicionales

3.1

  1. Es una expresion o estructura de codigo hecha para tomar deciciones.
  2. En javascript existen los siguientes condicionales.
    • if: Evalua una condicion, si esta se cumple ejecuta el bloque de codigo que contiene.
    • else if: Se utiliza seguido de un if para, si se cumple su condicion, ejecutar el bloque de codigo que contiene.
    • else: Se utiliza seguido de un if o un else if, y si ninguna de las condiciones anteriores de cumplio se ejecutara el bloque de codigo que este contenga.
    • switch: Se utiliza para ejecutar algun bloque de codigo si el valor que se le paso como argumento coincide con alguno de los valores que se le asocio.

3.2

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.3

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

3.3.2

const subscriptionType = "Basic";

const platziSubscriptions = [
	{
		type: "Free",
		description: "Solo puedes tomar los cursos gratis"
	},
	{
		type: "Basic",
		description: "Puedes tomar casi todos los cursos de Platzi durante un mes"
	},
	{
		type: "Expert",
		description: "Puedes tomar casi todos los cursos de Platzi durante un año"
	},
	{
		type: "ExpertPlus",
		description: "Tú y alguien más pueden tomar TODOS los cursos de Platzi durante un año"
	}
];

platziSubscriptions.filter(ps => ps.type === subscriptionType).forEach(ps => console.log(ps.description))

4 - Ciclos

4.1

  1. Un ciclo es una estructura de datos que repite un bloque de codigo hasta que su condicion deje de cumplirse.
  2. En javascript existen tres tipos de ciclos primitivos: for, while y do while.
  3. Un ciclo infinito sucede cuando la condicion de la que depende la ejecucion del ciclo nunca se vuelve falsa y por lo tanto nunca termina. El problema de esto es que ese ciclo se ejecutara tantas veces como pueda hasta que agote la memoria disponible.
  4. Si.

4.2

let i = 0;

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

i = 10;

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

4.3

let isValidResponse = false;

while (!isValidResponse) {
	const response = prompt("¿Cuanto es 2 + 2?");
	isValidResponse = response === "2";

	if (isValidResponse) {
		alert("Bien hecho!!!");
		break;
	} else {
		alert("Incorrecto! Vuele a intentarlo.");
	}
}

5 - Listas

5.1

  1. Es una estructura de datos capaz de almacenar una coleccion de valores.
  2. Un objeto en javascript es una estructura de datos que relaciona una clave y un valor.
  3. Cuando se desee acceder varias veces a una misma propiedad o valor es preferible utilizar un objeto, y cuando necesitemos almacenar y mostrar varios valores (ej: una lista de paises) es mejor utilizar arrays.
  4. Si, su pueden crear arrays que contengan objetos y objetos que contengan arrays.

5.2

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

5.3

function printAll(arr) { 
	arr.forEach(val => console.log(val)) 
}

5.4

function printAttributes(obj) { 
	Object.entries(obj).forEach(([key, val]) => console.log(`${key}: ${val}`));
}
  • Una variable es una reserva de espacio en memoria que sirve para almacenar información.
  • Declarar: Reservar ese espacio en memoria. Inicializar: Usarlo.
  • Para sumar números nuestra variable tiene que ser un número (int) y lo que hará es una operación lógica matemática Ejem: 1 + 1 = 2. Para concatenar únicamente uniré 2 números como si fueran letras. Ejem: 1 + 1 = 11
var hombreRudo = {
    nombre: "Ngolo",
    apellido: "Kanté",
    username: "@maestroKimpbembe",
    edad: 33,
    email: "[email protected]",
    mayorDeEdad: true,
    dineroAhorrado: 0.05,
    deudas: "no pregunte joven que me pongo a llorar"
}
  1. Ok.

Funciones:

const laFuncion = (name, lastName, nickname) => {
    var completeName = `${name} ${lastName}`;
    return `Nombre: ${name}
    Apellido: ${lastName}
    Me dicen: ${nickname}
    Nombre completo: ${completeName}`
} 

console.log(laFuncion('Giuseppe', 'Ramírez', 'Giu'));

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
       console.log("Tú y alguien más pueden tomar TODOS los cursos de Platzi durante un año");

Variables y operaciones

  • ¿Qué es una variable y para qué sirve?

    Una variable es un espacio en memoria en donde se pueden almacenar datos.

  • ¿Cuál es la diferencia entre declarar e inicializar una variable?

    Cuando se declara una variable simplemente se utiliza la siguiente sentencia:

    var nombre;
    

    Por otra parte, cuando se inicializa una variable se le asigna un valor a este con la siguiente sentencia:

    nombre = "Brandon";
    

    También podemos declarar e inicializar una variable de la siguiente manera:

    var nombre = "Brandon";
    
  • ¿Cuál es la diferencia entre sumar números y concatenar strings?

    La suma de números es tal y como la conocemos (una adición del tipo: 2+2=4), esto es diferente a concatenar dos cadenas de string, en donde se básicamente dos cadenas de string se fucionan o se juntan formando un nuevo string:

    var nombre = "Brandon";
    var apellido = "Huaman";
    
    console.log(nombre+" "+apellido); // Muestra en consola => "Brandon Huaman"
    
  • ¿Cuál operador me permite sumar o concatenar?

    Este (+)

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 usuario / tipo string
  • Edad: var edad / tipo number
  • Correo electrónico: var correo / tipo string
  • Mayor de edad: var mayorEdad / tipo boolean
  • Dinero ahorrado: var ahorro / tipo number
  • Deudas: var deudas / tipo number

3️⃣ Traduce a código JavaScript las variables del ejemplo anterior y deja tu código en los comentarios.

var nombre;
var apellido;
var usuario;
var edad;
var ahorro;
var deudas;

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

  • Nombre completo (nombre y apellido)

    var nombre_completo = 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 código el cual ejecuta una actividad en específico.

  • ¿Cuándo me sirve usar una función en mi código?

    Se usa una función cuando se va emplear un algoritmo repetidas veces en varias partes del código.

  • ¿Cuál es la diferencia entre parámetros y argumentos de una función?

    Los parámetros son las variables que se definen en una función, en el siguiente ejemplo los parámetros vendrían a ser las variables num1 y num2.

    function suma(num1, num2){
        return num1 + num2;
    }
    

    Si hablamos de argumentos entonces nos referimos a los datos que le pasamos a los parámetros de una función al momento de ser invocada. En el ejemplo que se muestra a continuación los argumentos vendrían a ser los números 5 y 7.

    suma(5, 7);
    

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:

person("Brandon", "Huaman", "jimmy");

function person(name, lastname, nickname){
    var 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 una condicional?

    Es un bloque de código que se ejecuta si la condición establecida es verdadera.

  • ¿Qué tipos de condicionales existen en JavaScript y cuáles son sus diferencias?

    En javascript tenemos los condicionales if-else, switch y ternario.

  • ¿Puedo combinar funciones y condicionales?

    Sep.

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).

Bonus: si ya eres una experta o experto en el lenguaje, te desafío a comentar cómo replicar este comportamiento con arrays 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");
}
var tiposDeSuscripcion = [
    {plan: "Free", mensaje: "Solo puedes tomar los cursos gratis"},
    {plan: "Basic", mensaje: "Puedes tomar casi todos los cursos de Platzi durante un mes"},
    {plan: "Expert", mensaje: "Puedes tomar casi todos los cursos de Platzi durante un año"},
    {plan: "ExpertPlus", mensaje: "Tú y alguien más pueden tomar TODOS los cursos de Platzi durante un año"}
]
  
var tipoSuscripcion = "Basic";

tiposDeSuscripcion.forEach((tiposuscrip)=>{
   if(tiposuscrip.plan==tipoSuscripcion){
       console.log(tiposuscrip.mensaje);
       return 0;
   }
});

Ciclos

1️⃣ Responde las siguientes preguntas en la sección de comentarios:

  • ¿Qué es un ciclo?

    Es un bloque de código que se repite cada vez que se cumpla una condición.

  • ¿Qué tipos de ciclos existen en JavaScript?

    En JavaScript tenemos el ciclo while y for.

  • ¿Qué es un ciclo infinito y por qué es un problema?

    Un ciclo infinito es aquel que se repite sin parar, puesto que la condición establecida siempre se cumple. Esto sobrecarga el procesador y la memoria de la computadora.

  • ¿Puedo mezclar ciclos y condicionales?

    Si se puede, dependiendo de lo que se quiere programar.

2️⃣ Replica el comportamiento de los siguientes ciclos for utilizando ciclos while:

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.

Pista: puedes usar la función prompt de JavaScript.

var answer=0;
while(answer != 4){
    answer = parseInt(prompt("¿Cuanto es 2+2?"));
    if (answer == 4){
    	alert("Congratulations!");
	}
    else{
        alert("Bad");
    }
}

Listas

1️⃣ Responde las siguientes preguntas en la sección de comentarios:

  • ¿Qué es un array?

    Un array en un conjunto de datos.

  • ¿Qué es un objeto?

    Es una colección de propiedades organizadas por una clave y un valor asignado.

  • ¿Cuándo es mejor usar objetos o arrays?

    Depende de lo que se quiere lograr con el código.

  • ¿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.

function print(miarray){
    console.log(miarray[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 print(miarray){
    miarray.forEach((array)=>{
        console.log(array);
    });
}

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).

// Object.values() - Devuelve un array con todos los valores de un objeto
// Object.keys() - Devuelve un array con todas las llaves o claves de un objeto

function print(miobjeto){
    Object.values(miobjeto).forEach((element)=>{
        console.log(element);
    });
}

Aquí esta mi prueba de JavaScript, si estoy mal en alguna pregunta por favor corríjanme 😅

.
Variables y operaciones

1️⃣ Responde las siguientes preguntas en la sección de comentarios:
.

  • ¿Qué es una variable y para qué sirve?
    R =
    Una variable es una representación de lugar que asigna la computadora en la memoria para guardar un valor.
  • ¿Cuál es la diferencia entre declarar e inicializar una variable?
    R
    = Al declarar una variable solo reservamos ese espacio en memoria, al inicializar una variable le estamos asignando ya un valor.
  • ¿Cuál es la diferencia entre sumar números y concatenar strings?
    R
    = Ambos se hacen con el operador + la diferencia es que para sumar números utilizamos tipos de datos number y para concatenar strings ocupamos tipos de datos strings.
  • ¿Cuál operador me permite sumar o concatenar?
    R
    = 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
  • usuarioPlatzi, tipo de dato String
  • edad, tipo de dato number
  • correo, tipo de dato String
  • mayorDeEdad, tipo de dato Boolean
  • dineroAhorrado, tipo de dato number
  • deudas, tipo de dato Boolean

.
3️⃣ Traduce a código JavaScript las variables del ejemplo anterior y deja tu código en los comentarios.
.

let nombre = 'Josue';
let apellido = 'Ramirez';
let usuarioPlatzi = 'Josueram_';
let edad = 19;
let correo = '[email protected]';
let mayorDeEdad = true;
let dineroAhorrado = 20;
let deudas = false;

.
4️⃣ Calcula e imprime las siguientes variables a partir de las variables del ejemplo anterior:
.

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

Funciones

1️⃣ Responde las siguientes preguntas en la sección de comentarios:
.

  • ¿Qué es una función?
    R
    = Es un conjunto de instrucciones que realiza una tarea, esta recibe parámetros y devuelve una salida.
  • ¿Cuándo me sirve usar una función en mi código?
    R
    = Cuando la tarea a realizar es muy genérica y necesitas optimizar el código
  • ¿Cuál es la diferencia entre parámetros y argumentos de una función?
    R
    = Un parámetro es el nombre de un argumento que se pasará a la función. Los argumentos son los valores que se pasaran 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";
let completeName = `${name} ${lastname}`;
let nickname = "juandc";

function presentacion(completeName, nickname) {
    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 una condicional?
    R
    = Es un conjunto de instrucciones que se ejecutaran si una condición cumple con lo requerido.
  • ¿Qué tipos de condicionales existen en JavaScript y cuáles son sus diferencias?
    R
    = If, Else If y Switch
  • ¿Puedo combinar funciones y condicionales?
    R
    = Sí

.
2️⃣ Replica el comportamiento del siguiente código que usa la sentencia switch utilizando if, else y else if:

header alone would have blocked embedding, it has been ignored.
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");
} 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");
        }
    }
}

Ciclos

1️⃣ Responde las siguientes preguntas en la sección de comentarios:
.

  • ¿Qué es un ciclo?
    R
    = Es un conjunto de instrucciones que se repite hasta que una condición se cumple.
  • ¿Qué tipos de ciclos existen en JavaScript?
    R
    = For, While, Do while
  • ¿Qué es un ciclo infinito y por qué es un problema?
    R
    = Es un ciclo que no tiene fin y es un problema ya que consume recursos del navegador.
  • ¿Puedo mezclar ciclos y condicionales?
    R
    = Sí.

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

let resultado = prompt("¿Cuánto es 2 + 2?");
if(resultado == 4) {
    alert("Felicitaciones");
} else {
    alert("Wups, algo no anda bien");
}

Listas

1️⃣ Responde las siguientes preguntas en la sección de comentarios:
.

  • ¿Qué es un array?
    R
    = Es un tipo de estructuras de datos.
  • ¿Qué es un objeto?
    R
    = Es la representación abstracta de un objeto de la vida real.
  • ¿Cuándo es mejor usar objetos o arrays?
    R
    = Eso depende de la necesidad del problema a resolver.
  • ¿Puedo mezclar arrays con objetos o incluso objetos con arrays?
    R
    = Sí

.
2️⃣ Crea una función que pueda recibir cualquier array como parámetro e imprima su primer elemento.
.

let frutas = ['Mango', 'Sandia' ,'Manzana'];

function primerElemento (frutas) {
    console.log(frutas[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 frutas = ['Mango', 'Sandia' ,'Manzana'];

function infoDeElementos (frutas) {
    for(let i = 0; i < frutas.length; i++) {
        console.log(frutas[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 usuario = {
    nombre: 'Josue',
    pais: 'México',
    edad: 19
}

function infoUsuario (usuario) {
    console.log(usuario.nombre);
    console.log(usuario.pais);
    console.log(usuario.edad);
}

FUNCIONES

1).
Es un conjunto de instrucciones o procedimientos que se deben seguir para llevar acabo una tarea determinada y darle solucion.

Cuando necesitamos realizar alguna operacion que involucre la ejecucion de varias variables

el parametro es lo que recibe la funcion para poder realizarse son aquellas variables que necesita la funcion.
los argumentos son aquellos valores que se le pasan a los parametros

2).

function example(name, lastname, nickname) {

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

Variables y operaciones
1).
Qué es una variable y para qué sirve?
una variable es un espacio en memoria, sirve para guardar datos de diversos tipos como numericos, string, array …

¿Cuál es la diferencia entre declarar e inicializar una variable?
Declararla solo indica que existe y se reserva ese espacio en memoria mas no tiene un valor como tal, y al inicializarla ya le damos valor a ese variable

¿Cuál es la diferencia entre sumar números y concatenar strings?
Al realizar una suma de numeros estas realizando una funcion matematica. concatenar ya seria unir dos variables o mas solo unirlas agruparlas segun sea el caso.

¿Cuál operador me permite sumar o concatenar?
++operador de suma ++
var a = 5;
var b = 6;
resultado = var a + var b;
resultado = 11

concatenar
var a = “HOLA”;
var b = “Como estas”;
resultado = a + b;
resultado = HOLA como estas

2).
Nombre : Cindy
Apellido: Caceres
Nombre de usuario en Platzi: ciindy yurley
Edad : 30 años
Correo electrónico: [email protected]
Mayor de edad: si
Dinero ahorrado: 200.000
Deudas: 0

3).
let name = “Cindy”;
let surname = “Caceres”;
let userNamePlatzi = “cindy yurley”;
let age= 30;
let email = “[email protected]”;
let isAdult = true;
let savedMoney= 200000;
let debts= 0;

4).
let fullName = name + surname;
let realMoney = savedMoney - debts;

Tengo algo de problemas en funciones debo mejorar eso en este curso y arrays y objetos 😃
Variables y operaciones
1️⃣ Responde las siguientes preguntas en la sección de comentarios:
• ¿Qué es una variable y para qué sirve? Es la representación de algún lugar en memoria que se reserva para guardar un valor.
• ¿Cuál es la diferencia entre declarar e inicializar una variable? Declara una variable es asignarle un nombre al espacio de memoria que se va a utilizar, inicializar una variable es extraer el nombre de ese espacio y darle un valor.
• ¿Cuál es la diferencia entre sumar números y concatenar strings? Sumar números es realizar la operación de adición, concatenar es unir dos variables para mostrar un solo resultado.
• ¿Cuál operador me permite sumar o concatenar? El operador 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 -> number
• 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=”Lupita”;
var apellido=”Martinez”;
var nombreusuario=”lupiusuario”;
var edad=30;
var correo=”[email protected]”;
var mayoredad;
if(edad>18){
mayoredad=”Es mayor de edad”;
} else {
Mayoredad=”No es mayor de edad”;
}
Var ahorro=1000;
Var deuda=500;
4️⃣ Calcula e imprime las siguientes variables a partir de las variables del ejemplo anterior:
• Nombre completo (nombre y apellido)
var nombre=”Luis”;
var apellido=”Marti”;
console.log(nombre+” ”+apellido);
• Dinero real (dinero ahorrado menos deudas)
var ahorro=1000;
var deuda=400;
var dineroreal=ahorro + deuda;
Funciones
1️⃣ Responde las siguientes preguntas en la sección de comentarios:
• ¿Qué es una función? Una función es un conjunto de sentencias que es utilizan para generar ciertas acciones con valores antes guardados en las variables.
• ¿Cuándo me sirve usar una función en mi código? Cuando se van a realizar diferente tipo de cálculos u operaciones.
• ¿Cuál es la diferencia entre parámetros y argumentos de una función? Los parámetros son valores que se pasan a las funciones en los paréntesis para operarlos y los argumentos son valores que se asignan a los parámetros cuando se llama 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 + “.”);

function completeName(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:
• ¿Qué es una condicional? Son reglas que aplicamos para poder validar si algo es verdadero o falso.
• ¿Qué tipos de condicionales existen en JavaScript y cuáles son sus diferencias?
If, todo lo que va en esta condicional debe ser verdadero si no lo es se desecha.
Else, es como un default donde le decimos que hará si es falso
Else if,
Switch hace lo mismo que el if solo que funciona por medio de casos, valida cada caso.
• ¿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( “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( “Puedes tomar casi todos los cursos de Platzi durante un mes”);
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==”Basic”){
console.log( “Puedes tomar casi todos los cursos de Platzi durante un mes”);
}
Bonus: si ya eres una experta o experto en el lenguaje, te desafío a comentar cómo replicar este comportamiento con arrays y un solo condicional. 😏
Ciclos
1️⃣ Responde las siguientes preguntas en la sección de comentarios:
• ¿Qué es un ciclo? Es hacer que una tarea se repita sin ser de forma manual, mientras sea verdad.
• ¿Qué tipos de ciclos existen en JavaScript? For, while
• ¿Qué es un ciclo infinito y por qué es un problema? Un ciclo infinito es aquel que se repite indefinidamente, es problema ya que puede quedarse así horas sin llegar a ningún fin.
• ¿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);
}

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

i=10;
While (let 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.
Pista: puedes usar la función prompt de JavaScript.
const aNumber = Number(window.prompt("¿Cuánto es 2+2?", “”));
while (aNumber == 4){
console.log (“Felicidades”)
}
let aNumber = prompt(“¿Cuánto es 2+2?”)
while (aNumber == 4){
console.log (“Felicidades”)
}

Variables y operaciones

  • Una variable es una espacio de memoria en cual e puede almacenar cualquier tipo de información, ya sean números, letras, palabras o de cuakquier otro tipo
  • Cuando declaramos una variable estamos haciendo una asignación, es decir dandole algún valor ya en memoria, cuando inicializamos lo que hacemos es sencillamente reservar unicamente un espacio en memoria sin información.
  • Cuando se suman número lo que se haces es literalmente sumarlos, es decir si sumamos 2 + 2 obtendremos 4, en cambio concatenar es unir dos valores, dando el mismo ejemplo si contatenamos “2” + “2” obtendremos como resutado “22”, como se observa une los dos valores y no los suma.
  • El operador que funciona para esta labor el +.

2.3. JS es un lenguaje debilmente tipado, lo que significa que no es necesario indicar el tipo de dato que se usara, él reconoce directamente a que estamos haciendo referencia al momento de incializar o asignar valores a las variables

  • let nombre -> string
  • let apellido -> string
  • let edad -> number
  • let correroElectronico -> string
  • let mayorEdad -> boolean
  • let dineroAhorrado -> number
  • let deudas -> number
let nombre = 'Carlos';
let apellido = 'Bustos';
console.log('Mi nombre es 'nombre + ' ' + 'apellido');
let dineroAhorrado = 5000000;
let deudas = 1500000;
console.log('Tu dinero real  hasta el momento es de $' + (dineroAhorrado - deudad));

Funciones
1.

  • Una función es el metodo encargado de realizar una tarea en especifico, por ejemplo digamos que queremos calcular el valor de una compra, la función se encargara de realizar esa tarea la cantidad de veces que sea llamada.
  • Una función es necesaria utilizarla al momento de realizar una tarea que puede repetirse una x cantidad de ves, con esto evitamos estar reescribiendo código de forma inncesaria
  • Los argumentos corresponden a los valores que se envian a través del llamado de una función, los parametros son las “vaiables” que almacenaran esos valores en la función, los que reciben los valores.

/*inicio del programa */

const name = 'Jun David' 
const lastname = 'Castro Gallego'
const nickname = 'juandc'

function writeName(name, lastname, nickname){
let completeName = name + lastname
console.log("Mi nombre es " +  completeName + ", pero prefieron que me digas " + nickname + ".")
}


writeName(name, lasname, nickname);

Condicionales
1.

  • Un condicional es una bifurcación entre un grupo de instrucciones que pueden o n ejecutarse dependiendo del resultado de la condición, por ejemplo:
    condición: ¿me baño?
    Si se cumple la condición -> Instrucción 1: Voy a trabajar
    Si no se cumple la condición -> Instrucción 2: No voy a trabajar
  • Son tres tipos diferentes
  1. El condicional if … else que puede ser anidado y va evaluando condición por condición.
  2. El condicional con switch case el cual sencillamente realizar una instrucción cuando un valor o una opción se cumpla sin necesidad de evaluar condicion por condición como con el if …else
  3. El operador ternario, el cual funciona tal cual como la función if de excel, se evalua una condicion si se cumple hace algo sino hace otra cosa, es más sencilla de realizar y ocupa menos codigo a comparación del if … else.
  • si, se puede hacer, yo puedo tener una función que me calcule la entrada a un cine dependiendo la edad de la personas, si es discapacitado, si va solo o acompañado, y todo eso lo puedo combinar en funciones y condiciones.
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");
}

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.

  • Un ciclo es un bucle que se va a ejecutar cierto número de veces, esto depede de como se lo condicione.
  • Existe el ciclo for, foreach, while y do While.
  • Un ciclo infinito corresponde a una serie de instrucciones las cuales nunca van a terminar de ejecutarse, esto en un problema porque nunca se ejecutara el resto de código que exista y llegara un punto en el que la memoria se agote y este deje de funcionar.
  • Si se pueden mezlar como se deseo ciclos y condiciones, digamos que estamos evaluando si los estudiantes de un aula pasaron o no la materia de programación, dentro de un ciclo podría incluir una condicón que me indique si cumple con los criterios minimos para aprobar o no, la materia.
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--;
}
function solitarRespuesta(){
    let resultado = 0; 
    while(resultado != 4){
        resultado = prompt('¿Cuanto es 2 + 2');
    }
    alert('Felitaciones has respondido bien');
    
}

solitarRespuesta();

Listas
1.

  • Un array es un tipo de lista que contiene dentro varios valores de igual o distinto tipo.
  • Un objeto es un “elemento” que contiene diferentes propiedades.
  • Bueno depende de lo que se quiera hacer, un array contiene en si una serie de elemtos con los que puedo hacer operaciones un objeto puede contener en si una gran cantidad de propiedades (funciones, arrays, etc), así que si unicamente se quiere guardar x cantidad de datos se puede usar un array, si se quiere acceder a elementos funciones y diferentes propiedades se usa un objeto.
  • si, se puede hacer, como lo mencionaba anteriormente, es posible hacerlo.
const recibeArray = (array) => {
  console.log(array[0]);
};
let frutas = ['Pera', 'Manzana', 'Sandia'];
const imprimeFrutas = (array) => {
  array.forEach((elem) => {
    console.log(elem);
  });
};

imprimeFrutas(frutas);
let persona = {
  nombre: 'Oscar',
  apellido: 'Aguilar',
  edad: 21
}
const imprimeDatosPersona = (objeto) => {
  Object.values(objeto).forEach((elem) => {
    console.log(elem);
  });
};

imprimeDatosPersona(persona);

Me costo jaja pero me ayudo a repasar todo

// 
// * ----------------------- Variables y operaciones
// 
/* 
! I. Parte 1
1. Es una referencia a un espacio de memoria, sirve para almacenar tipos de datos
2. Cuando se declara una variable se reserva el espacio de memoria 
    Cuando se inicializa, es cuando se le da el valor a la variable 
3. La suma es una operación lógica 
    Concatenar, une dos cadenas, no existe una interacción 
4. +
! II. Parte 2
Nombre -> String 
Apellido -> String
Usuario en Platzi -> String
Edad -> number
Corroe electrónico -> String
Mayor de edad -> Boolean
Dinero ahorrado -> number 
Deudas -> number 
*/
//! III. Parte 3
let persona = {
    nombre: "Uriel",
    apellido: "Sanjuán",
    user: "Rancorsz",
    edad: 33,
    email: '[email protected]',
    mayorEdad: true,
    dineroAhorrado: 1000,
    deudas: 100
}
//! IV Parte 4
console.log(`Nombre: ${persona.nombre}`);
console.log(`Dinero real: $${persona.dineroAhorrado - persona.deudas}`);

// 
// * ----------------------- Funciones
// 

// ! I. Parte 1
/*
    1. Las funciones son secciones de codigo que encapsulan operaciones, y puedan ser llamadas en otras partes del programa, entre sus ventajas pueden optimizar las líneas del cópdigo con tareas repetitivas
    2. Cuando las lineas se repiten constantemente, se puede generar una función para optimizar el código
    3. El parámetro define la caja, el argumento el contenido, es decir el parámetro define que una función esperará un valor, mientras que el argumento es la representación del parámetro
*/
// ! Parte 2
// Cambiar a 
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 + ".");
// Función

function saludo(nombre, apellido, alias) {
    return console.log(`Mi nombre es: ${nombre} ${apellido} pero prefiero que me digas ${alias}.`);
}
// Ejemplo
saludo(name, lastname, nickname);


// 
// * ----------------------- Condicionales
// 

// ! Parte 1
//  1. Son estructuras de control, que permiten validar expresiones en el código, se utilizan con los operadores lógicos AND (&&) OR (||) NOT (!)
//  2. IF, ELSEIF, SWITCH, operador ternario
//     if permite validar si una función es cumplida y en base a la respuesta tomar un camino u otro(else)
//     else if Si se requieren mas validaciones se pueden anidar (unir) diferentes validaciones en el código
//     switch, si los escenarios no requieren estrictamente validación, se utiliza este condicional, permite declarar escenarios que sean necesarios
//     Operador Ternario, es equivalente a un else if, sin embargo se limita a validar la condición y tener los dos posibles resultados

//! Parte 2
// Original
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 elseif
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("Suscripción no reconocida");
}
// 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");

// Desafio
const tipoDeSuscripcion = "Free";
let subscripcion = ['Free','Basic','Expert','ExpertPlus']
let contenido = ['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 resultado = subscripcion.indexOf(tipoDeSuscripcion) 
//! resultado ? console.log(contenido[subscripcion.indexOf(tipoDeSuscripcion)]) : console.log("Sin resultado"); Intento con ternario

if (resultado != -1) {
    console.log(contenido[subscripcion.indexOf(tipoDeSuscripcion)])
} else {
    console.log("Sin resultado");
}


// 
// * ----------------------- Ciclos
// 


// ! Parte 1
// 1. Un ciclo es una estructura de control, que valida una condición y esta condición continua hasta que se cumpla terminando con el ciclo
// 2. for, foreach, while, dowhile
// 3. Es un bucle donde la condición siempre se va a cumplir, por lo tanto el programa se quedará "bloqueado" sin que pueda continuar
// 4. Si se pueden mezclar, por eso son conocidos como estrutcuras de control

// ! Parte 2
// Original
for (let i = 0; i < 5; i++) {
    console.log("El valor de i es: " + i);
}
// while
let i =0
while(i < 5) {
    console.log(`El valor de i es: ${i}`);
    i++;
}

// Original 2
for (let i = 10; i >= 2; i--) {
    console.log("El valor de i es: " + i);
}
// while
let i=10;
while (i>=2) {
    console.log(`El valor de i es: ${i}`);
    i--;
}
// ! Parte 3
// Ejercicio
let pregunta=0;

do {
    pregunta = Number(window.prompt('Cuanto es 2 + 2:', 0));
    if (pregunta === 4) {
        console.log('Correcto, felicidades');
    }
}while(pregunta != 4)

// 
// * ----------------------- Listas
// 
// ! Parte 1 
/*
1. Un arreglo es un conjunto de datos
2. Un objeto es un conjunto de datos con propiedades y valores 
3. Arreglos para un conjunto de datos quie no requieran una descripción, los objetos tienen una propiedad y el valor de la propiedad, como la llave o identificador y el valor
4. Si para hacer una lista de objetos o dentro de un objeto una lista se pueden combinar
*/

// ! Parte 2
// Función recibir arreglos
let arreglos = [2,3,1,2,3];

let miImprime = (arreglos) => console.log(arreglos[1]);

function fun(arr) {
    console.log(arr[0]);
}
// ! Parte 3
// Funcion que valla elemento por elemento

function fun(miArreglo) {
    miArreglo.forEach( i => console.log(i));
}
// ! Parte 4

let articulos = [
    {nombre: "Bici", costo: 3000},
    {nombre: "Tv", costo: 2500},
    {nombre: "Libro", costo: 320},
    {nombre: "Celular", costo: 10000},
    {nombre: "Laptop", costo: 20000},
    {nombre: "Teclado", costo: 200},
    {nombre: "Audifonos", costo: 1700}
];

function objetos(miObjeto) {
    miObjeto.forEach( i => console.log(i));
}

Respuestas a los cuestionarios.

¿Qué es una variable y para qué sirve?
R. Una variable es un espacio en memoria que nos sirve para guardar datos.

¿Cuál es la diferencia entre declarar e inicializar una variable?
R. Declarar es reservar un espacio en memoria. Inicializar es guardar datos en ese espacio.

¿Cuál es la diferencia entre sumar números y concatenar strings?
R. Sumar números es una operación matemática y concatener strings es unir los dos strings.

¿Cuál operador me permite sumar o concatenar?
R. El operador es: +

¿Qué es una función?
R. Una función es un bloque de código reutilizable que realiza instrucciones, puede recibir parametros y regresar un resultado

¿Cuándo me sirve usar una función en mi código?
R. Cuando son instrucciones que se repiten.

¿Cuál es la diferencia entre parámetros y argumentos de una función?
R. Son lo mismo

¿Qué es una condicional?
R. Un condicional es una instrucción que se ejecuta o no dependiendo de una condición.

¿Qué tipos de condicionales existen en JavaScript y cuáles son sus diferencias?
if nos permite evaluar una condicion.
switch nos permite evaluar multiples casos de una condicion

¿Puedo combinar funciones y condicionales?
R. si

¿Qué es un ciclo?
R. Un ciclo es una secuencia de instrucciones de código que se ejecuta repetidas veces hasta que cumple una condicion.

¿Qué tipos de ciclos existen en JavaScript?
R. for, for in, for of, while

¿Qué es un ciclo infinito y por qué es un problema?
R. Es un ciclo que nunca termina y es un problema por que puede consumir todos los recursos de nuestra computadora.

¿Puedo mezclar ciclos y condicionales?
R. Si

¿Qué es un array?
R. Un array es un objeto que permite almacenar un conjunto de datos.

¿Qué es un objeto?
R. Un objeto es una colección de propiedades y metodos.

¿Cuándo es mejor usar objetos o arrays?
R. - Usar objetos cuando necesitamos tipos de datos con varias propiedades y metodos.

  • Usar array cuando necesitamos una colección de datos u objetos.

¿Puedo mezclar arrays con objetos o incluso objetos con arrays?
R. Si

1️⃣ Responde las siguientes preguntas en la sección de comentarios:

  • ¿Qué es una variable y para qué sirve?
    • Una variable es un dato que va a reservar una parte de la memoría, para almacenar información como números, texto y otras cosas.
  • ¿Cuál es la diferencia entre declarar e inicializar una variable?
    • Declarar una variable es asignarle un espacio de memoria a la variable para poder alojar los datos. Ej: let nombre
    • Inicializar una variable es asignarle un valor a la misma Ej: var nombre = 'Santiago'
  • ¿Cuál es la diferencia entre sumar números y concatenar strings?
    • El tipo de dato que se estan operando, si un número se va a sumar con otro Javascript reconoce el tipo de dato que está operando Ej: 1 + 2 = 3 y '1' + '2' = '12' ó 'Hola ' + 'mundo' = 'Hola mundo' Cuándo un dato tiene comillas '' Javascript lo reconoce como un string , o sea, los elementos los va a interpretar como letras y no va a hacer operaciones aritméticas.
  • ¿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
    • const nombre = 'Santiago' //tipo de dato string
  • Apellido
    • const apellido= 'Bastidas' //tipo de dato string
  • Nombre de usuario en Platzi
    • let userName= 'santiagobr' //tipo de dato string
  • Edad
    • letedad= 19 //tipo de dato number
  • Correo electrónico
  • Mayor de edad
    • letmayorDeEdad=true //tipo de dato boolean
  • Dinero ahorrado
    • let dineroAhorrado = 100000 //tipo de dato number
  • Deudas
    • let Deudas = 0//tipo de dato number

3️⃣ Traduce a código JavaScript las variables del ejemplo anterior y deja tu código en los comentarios.

const Person = {
	nombre: 'Santiago',
	apellido: 'Bastidas',
	userName: 'santiagobr',
	edad: 19
	email: '[email protected]'
	mayorDeEdad: true
	dineroAhorrado: 100000
	deudas: 0
}

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

  • Nombre completo (nombre y apellido)

    const Person = {
    	Name: 'Santiago',
    	LastName: 'Bastidas',
    	userName: 'santiagobr',
    	age: 19,
    	email: '[email protected]',
    	adult: true,
    	saveMoney: 100000,
    	debts: 100
    }
    
    const printName = (person) => {
    	({ Name, LastName } = person)
    	console.log(`Hola! mi nombre es ${Name} ${LastName}`)
    }
    
  • Dinero real (dinero ahorrado menos deudas)

    const realMoney = (person) => {
    	({saveMoney, debts} = person)
    	let money = saveMoney - debts
    	console.log(`Tu dinero real es: ${money}`)
    }
    

Funciones

1️⃣ Responde las siguientes preguntas en la sección de comentarios:

  • ¿Qué es una función?
    • Es un bloque de código que guarda varias líneas de código que van a repetirse a lo largo del código, sin tener que escribir varias veces lo mismo.
  • ¿Cuándo me sirve usar una función en mi código?
    • Cuándo tienes código que va a repetirse varias veces a lo largo del archivo o proyecto.
  • ¿Cuál es la diferencia entre parámetros y argumentos de una función?
    • Los parámetros son las variables que van a ser declaradas en la función y los argumentos son el valor que se pone al llamar una función Ej:

      function Saludar(mensaje) {
      	console.log(mensaje)
      }
      
      Saludar('Hola, cómo vas?')
      
      //Salida: Hola, cómo vas?
      

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

//Función

var personalPresentation = (name, lastName, nickname) => {
	const completeName = `${name} ${lastName}`
	
	message = `Mi nombre es ${completeName}, pero prefiero que me digas ${nickname}`
    return console.log(message)
}

personalPresentation('Santiago', 'Bastidas', 'santiagobr')
//Salida: Mi nombre es Santiago Bastidas, pero prefiero que me digas santiagobr

Condicionales

1️⃣ Responde las siguientes preguntas en la sección de comentarios:

  • ¿Qué es una condicional?

    • Es una parte de código que se ejecuta si se cumple una condición especificada, Ej: Si tienes más de 18 años, eres mayor de edad. Esto en código se diría de la siguiente forma:

      if (yourAge > 18) {
      	message = 'Eres mayor de edad'
      }
      
  • ¿Qué tipos de condicionales existen en JavaScript y cuáles son sus diferencias?

    • La primera es la condición if , esta ejecuta el bloque de código si se cumple la sentencia declarada.

    • La segunda es la condición switch , esta ejecuta el bloque del código si el valor de una variable base tiene determinado valor, Ej:

      
      switch (age)
      	case 17:
      		message = 'Aún eres menor de edad, en un año ya seras mayor de edad'
      		break
      	case 18:
      		message = 'Recién eres mayor de edad'
      		break
      	case 19:
      		message = 'Tienes 1 año de ser mayor de edad'
      		break
      
  • ¿Puedo combinar funciones y condicionales?

    • Si, dentro de una función pueden haber distintas condiciones y dentro de una condición puede llamarse a funciones.

2️⃣ Replica el comportamiento del siguiente código que usa la sentencia switch utilizando ifelse 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, else and else if
let tipoDeSuscripcion 
if (tipoDeSuscripcion === 'Basic') {
	console.log("Puedes tomar casi todos los cursos de Platzi durante un mes")
} else if (tipoDeSuscripcion === 'Expert') {
	console.log("Puedes tomar casi todos los cursos de Platzi durante un año")
} else if (tipoDeSuscripcion === 'ExpertPlus') {
	console.log("Tú y alguien más pueden tomar TODOS los cursos de Platzi durante un año")
} else {
	console.log("Solo puedes tomar los cursos gratis");
}

3️⃣ Replica el comportamiento de tu condicional anterior con ifelse 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 y un solo condicional. 😏

let tieneSuscripcion = true

if (tieneSuscripcion) {
	let tipoDeSuscripcion = 'Expert'
	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")
	}
}
console.log('Suscribete a Platzi!')

Ciclos

1️⃣ Responde las siguientes preguntas en la sección de comentarios:

  • ¿Qué es un ciclo?
    • Un ciclo es un bloque de código que va a ser ejecutado de forma repetida hasta que lo dicte la sentencia declarada.
  • ¿Qué tipos de ciclos existen en JavaScript?
    • For: se repite la cantidad de veces que el desarrollador ordene.
    • Foreach: es capaz de recorrer una estructura de datos como un Array, y pasa por cada uno de los elementos del mismo
    • While: se repite ‘mientras’ se cumpla una condición.
    • DoWhile: Se ejecuta una vez y luego mira si la condición se cumple o no.
  • ¿Qué es un ciclo infinito y por qué es un problema?
    • Son ciclos que no están controlados por una sentencia o una condición correcta y puede ocacionar una falla en la ejecución.
  • ¿Puedo mezclar ciclos y condicionales?
    • Si se puede, sirve para establecer un control en los ciclos.

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++
}
for (let i = 10; i >= 2; i--) {
    console.log("El valor de i es: " + i);
}

let i = 0
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 userAnswer = prompt('Cuánto es 2 + 2')

function sum (num1, num2) {
	return num1 + num2
}

if (userAnswer == sum(2,2)) {
	console.log('Correcto!')
} else {
	console.log('Incorrecto!')
}

Listas

1️⃣ Responde las siguientes preguntas en la sección de comentarios:

  • ¿Qué es un array?
    • Es una estructura de datos que permite almacenar distintos datos de forma organizada.
  • ¿Qué es un objeto?
    • Es un tipo de dato que puede almacenar distintos valores también llamados atibutos para poder organizarlos de forma adecuada y poder manipularlos a lo largo del código, con prototipos también pueden contener funciones especificas
  • ¿Cuándo es mejor usar objetos o arrays?
    • Arrays: Cuando requiera una lista de un tipo de dato especifico prefiero utlizar los arreglos.
    • Objetos: Cuando necesite utilizar la metodología POO y poder agregar atributos y métodos en una variable.
  • ¿Puedo mezclar arrays con objetos o incluso objetos con arrays?
    • Si se puede, en un arreglo se puede contener objetos y viceversa.

2️⃣ Crea una función que pueda recibir cualquier array como parámetro e imprima su primer elemento.

const testArray = [1, 2, 3, 4, 5]

const printArrays = (array) => {
	console.log(array[0], 'Este es el primer elemento del array')
}

printArrays(testArray)
// Salida: 1 Este es el primer elemento del 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).

const printArrays2 = ['Santi', 'Vale', 'Val', 'Nico', 'Sebas', 'Nikis', 'Pipe', 'Wendy']

const printArrayItems = array => {
	array.forEach(element => {
		console.log(element)
	});
}

printArrayItems(printArrays2)

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 testObject = {
	Name: 'Santiago',
	LastName: 'Bastidas',
	Age: 19,
}

const printItemsObjects = object => {
	console.log(`(1) ${object.Name} \n(2) ${object.LastName} \n(3) ${object.Age}`)
}

printItemsObjects(testObject)
var tipoDeSuscripcion = "ExpertPlus";

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

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

saludar("Andres", "Perez", "@anperz");

VARIABLES Y OPERACIONES
1.-
¿Qué es una variable y para qué sirve?
Una variable es un espacio que reservamos en memoria, sirve para declarar o inicializar un valor.

¿Cuál es la diferencia entre declarar e inicializar una variable?
Cuando declaramos una variable no le asignamos su valor, en cambio al inicializarla si lo hacemos.

¿Cuál es la diferencia entre sumar números y concatenar strings?
Cuando sumamos números realizamos una operación, al concatenar strings juntamos estos dos.

¿Cuál operador me permite sumar o concatenar?
El operador: “+”.
2.-
Nombre: string.
Apellido: string.
Nombre de usuario en Platzi: string.
Edad: number.
Correo electrónico: string.
Mayor de edad: string.
Dinero ahorrado: number.
Deudas: number.
3.-

4.-
Nombre completo:

Dinero real:

FUNCIONES
1.-
¿Qué es una función?
Un conjunto de instrucciones que realiza una tarea.

¿Cuándo me sirve usar una función en mi código?
Cuando necesitemos realizar una tarea con procedimiento.

¿Cuál es la diferencia entre parámetros y argumentos de una función?
Un parámetro tiene un nombre y un argumento tiene un valor.

2.-

CONDICIONALES
1.-
¿Qué es una condicional?
Es una instrucción que se realiza se según sea verdadero o falso.

¿Qué tipos de condicionales existen en JavaScript y cuáles son sus diferencias?
Existe: if, else, else if, switch. En el caso de if else se usa para un caso verdadero y uno falso, para else if se pueden añadir más casos como en el switch pero sin tener que escribir else if a cada rato.

2.-

3.-

CICLOS
1.-
¿Qué es un ciclo?
Un procedimiento que se repite varias veces.

¿Qué tipos de ciclos existen en JavaScript?
For, for of, while.

¿Qué es un ciclo infinito y por qué es un problema?
Es cuando se repite interminables veces, sucede cuando no definimos el límite. Es un problema porque puede causar problemas en nuestra computadora.

¿Puedo mezclar ciclos y condicionales?
Sí creo.

2.-

3.-

LISTAS
1.-
¿Qué es un array?
Es un tipo de dato estructurado que permite almacenar datos.
¿Qué es un objeto?
Es una colección de propiedades.
¿Cuándo es mejor usar objetos o arrays?
Es mejor usar objetos cuando tenemos propiedades y vayamos a usarlas varias veces.
¿Puedo mezclar arrays con objetos o incluso objetos con arrays?
Sí.
2.- 3.- 4.- Me faltó tiempo :,v

Variables y Operaciones

  • Es una representacion de un segmento de memoria RAM que sirve para guadar datos*
  • Declarar variable es asignarle un nombre a un segmento de memoria RAM pero sin un valor. Inicializar variable es asignarle un valor a la variable previamente declarada.
  • Sumar numeros es una operación matemática que tiene un resultado y concatenar strings es unir 2 o más strins para que formen un texto de más de 2 palabras.
  • El operador para sumar o concatenar es +

Tipos de datos

  • String
  • String
  • String
  • Number
  • String
  • Boolean
  • Number
  • Number

Traduciendo a código

var nombre = "String";
var apellido = "String";
var usuarioPlatzi = "String";
var edad = 0000;
var correo = "String";
var mayorEdad = true/false;
var ahorros = 0000;
var deudas = 0000;

var persona = {
    nombre: "String",
    apellido: "String",
    usuarioPlatzi: "String",
    edad: 0000,
    correo: "String",
    mayorEdad: true/false,
    ahorros: 0000,
    deudas: 0000,
}

function persona() {
    this.nombre = "String";
    this.apellido = "String";
    this.usuarioPlatzi = "String";
    this.edad = 0000;
    this.correo = "String";
    this.mayorEdad = true/false;
    this.ahorros = 0000;
    this.deudas = 0000;
}

Calculando e imprimiendo ejemplo anterior

var nombre = "Carlos";
var apellido = "Peña";
var ahorros = 15000;
var deudas = 7500;

console.log(nombre + apellido, ahorros - deudas);

Funciones

  • Un segmento de codigo reutilizable que ejecuta una tarea especifica a partir de parámetros.
  • Una funcion sirve cuando se va a repetir multiples veces una misma tarea.
  • El parámetro es el nombre de la variable de la cual se va a tomar un valor o un dato que aun no se tiene para que la funcion haga su tarea, un argumento es el valor o dato crudo, sin nombre y que nunca va a cambiar.

Conversión de código

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

var resultado = miNombre("nombres", "apellidos", "Oneon Wezzex");

Condicionales

  • Es un proceso de validación que indica si se cumple o no y permite o no la ejecución de un código.
  • Existe el if y else, if indica que si se cumple la condicion, se ejecuta el código que tiene dentro, si no se cumple la condición, se ejecuta el código dentro de else (las condiciones son dadas por los operadores lógicos y de comparación).
  • Las funciones puede contener condicionales dentro.

Replica del código con if, else e if else

var 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("Qué tipo de suscripción tienes");
}

Solo con if

var tipoDeSuscripcion = "Basic";

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

Bonus

var susUsuario = "Basic";

var tipoDeSuscripcion = [
    {suscripcion: "Free", mensaje: "Solo puedes tomar los cursos gratis de Platzi"},
    {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"} 
];

var resultado = tipoDeSuscripcion.find(function(busqueda){
    return busqueda.suscripcion === susUsuario;
});

console.log(resultado.mensaje);

Ciclos

  • Un ciclo es una tarea que se ejecuta multiples veces, en secuencia hasta que se cumpla una condicion que la detenga.
  • Existe el ciclo for que ejecuta una condicion hasta que esta se termina, igual que el ciclo while ejecuta el codigo mientras sea true y se detiene cuando llega a false.
  • Un ciclo infinito es cuando la condicion no tiene un momento en que pueda dejar de cumplirse y es un problema porque satura la memoria de nuestra computadora, haciendo que deje de funcionar hasta reiniciarla.
  • Sí puede haber condicionales dentro de un ciclo for o while.

Cuanto es 2 + 2

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

if (pregunta != 4) {
    console.log("Error, piensa bien tu respuesta");
} else {
    console.log("¡Felicidades!");
}

No supe cómo hacer que se repitiera la pregunta 😥

Listas

  • Un array es una variable que contiene multiples valores o datos en forma de lista.
  • Un objeto es una variable que contiene una lista de valores o datos identificados por un nombre.
  • Es preferible usar un array cuando se tiene una lista de datos o valores muy concretos del mismo tipo (strings o numeros) y los objetos es una lista de propiedades con nombres que pueden representar con código, un objeto fisico.
  • Se puede crear array que contenga objetos y los objetos pueden tener array dentro de sus propiedades.

Funcion imprimir primer valor de array

var numeritos = [9999, 8888, 7777, 6666];

function primerValor(parametroNumero) {
    console.log(parametroNumero[0]);
}

primerValor(numeritos);

Funcion todos los valores del array uno por uno

var numeritos = [9999, 8888, 7777, 6666, 5555, 4444, 3333, 2222, 1111, 0000];

function todosLosValores(numeros) {
    for (var valores of numeros) {
        console.log(valores);
    }
}

todosLosValores(numeritos);

Función que imprime cada una de las propiedades de un objeto

var persona = {
    nombre: "Carlos",
    apellido: "Ramirez",
    altura: 172,
    peso: 75,
    edad: 28,
    estadoCivil: "Soltero",
    pais: "Mexico"
};

function imprimirObjeto(propiedades) {
    for (var i = 0; i <= 6; i++) { 
        var idObjeto = Object.values(propiedades);
        console.log(idObjeto[i]);
    }
}

imprimirObjeto(persona);

Espero estar bien, me tomó días completar la prueba pero aquí dejo mis resultados, no tenía experiencia previa con JS a parte de curso básico y programación básica.

const tipoDeSuscripcion = "Expert Plus";
let plans = ["Free", "Basic", "Expert", "Expert Plus"]
let details = ["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 plan
for (let i = 0; i <= 3; i++) {
    if (plans[i] == tipoDeSuscripcion) {
        plan = details[i]
    }
}
console.log(plan);

Muy buenos los ejercicios, me di cuenta que he aprendido bastante.
Variables y Operaciones
• ¿Qué es una variable y para qué sirve?
Una variable es donde se guarda (y se recupera) datos que se utilizan en un programa.
Cuando escribimos código, las variables se utilizan para:
• Guardar datos y estados.
• Asignar valores de una variable a otra.
• Representar valores dentro de una expresión matemática.
• Mostrar valores por pantalla.
Todas las variables deben ser de un tipo de datos, ya sea un dato de tipo primitivo, como un número o texto, o un dato abstracto, como un objeto que se ha creado.
** • ¿Cuál es la diferencia entre declarar e inicializar una variable?**
Se declara con las palabras reservadas var, let, cons, dependiendo del contexto y se inicializa cuando se le agrega un valor.
** • ¿Cuál es la diferencia entre sumar números y concatenar strings?**
Los números al sumarlos no van dentro de comillas, y al concatenar string el string va dentro de comillas y el signo de suma va fuera de cada palabra con comillas.
** • ¿Cuál operador me permite sumar o concatenar?**
El signo más +
Exercises

const name = 'Adriana'; //string
const lastName = 'Sánchez'; //string
let userName = 'Raynelll'; //string
let age = 45; //number
let email = '[email protected]';
let esMayorDeEdad = 18; //boolean
let saveMoney = 1000; //number
let debt = 5000; //number

let fullName = `${name} ${lastName}`;
console.log('My name is ' + fullName);

let moneyInBank = 25000;
let total = `${moneyInBank}-${debt}`;

console.log('I have save $25000 but I debt $5000 then I will stay in the bank $' + (moneyInBank - debt))

const name2 = "Juan David";
const lastName2 = 'Castro Gallego';
const completeName = name2 + lastName2;
const nickName = 'juandc';

Funciones
• ¿Qué es una función?
Conjunto de sentencias que podemos utilizar para generar ciertas acciones con los valores ya guardadas en las variables. Procedimientos, tareas, para hacer ciertos pasos o cálculos utilizando sus valores, para poder generar o validar otra cosa.
** • ¿Cuándo me sirve usar una función en mi código?**
En cualquier lenguaje de programación, el código necesita realizar decisiones y llevar a cabo diferentes acciones acordes dependiendo de distintas entradas. Los seres humanos (y otros animales) toman decisiones todo el tiempo que afectan sus vidas, desde la más insignificante ("¿Debería comer una galleta o dos?") hasta la más grande (¿Debería quedarme en mi país y trabajar en la granja de mi padre, o debería mudarme a Estados Unidos y estudiar astrofísica?).
** • ¿Cuál es la diferencia entre parámetros y argumentos de una función?**
Un argumento representa el valor que se pasa a un parámetro de procedimiento cuando se llama al procedimiento. A diferencia de la definición de parámetros, los argumentos no tienen nombres. … Cada argumento es una expresión, que puede contener cero o más variables, constantes y literales.
Excersise

function mySelf (completeName) {
    return 'Mi nombre es ' + completeName + ', pero prefiero que me digas ' + nickName + '.'
}
console.log(mySelf(name2 + ' ' + lastName2 ));

Condicionales
** • ¿Qué es una condicional?**
Nos ayudan a construir el flujo de nuestras tareas. Nos permite darles un sentido lógico, condicionarlos y recorrerlos.
** • ¿Qué tipos de condicionales existen en JavaScript y cuáles son sus diferencias?**
** If/Else - Switch - While - Do While – For**
If/Else: Nos permite tranajar bajo una condición es decir, si algo sucede ejecutamos un bloque de código, si no se ejecutará otro bloque de c;odigo, lo que quiere decir, una condición o un requerimiento que le hayamos puesto a nuestra aplicación, vamos a permitir que haya paso a una nueva funcionalidad que se ejecute algo, pero en caso que ese requerimiento no se haya podido cumplir, entonces va a funcionar otra parte de nuesto código y se va a plaicar otra tarea que le hayamos definido.
Switch: Nos permite evaluar un valor y pasarlos por diferentes casos de comparación hasta que uno de esos casos coincida y se ejecute un bloque de código sobre el cuál nuestro algoritmo debe pasar para que sea efectivo y realice la actividad que estamos esperando que haga.
Ciclo For, Do While, While: Es una estructura de control que ejecuta un bloque de instrucciones de manera repetida. Esto quiere decir que podemos tener una condición, un requerimiento de nuestro algorittmo que necesite ejecutarse varias veces o validar que algo suceda para que termine su ejecución y poder continuar con el hilo de trabajo normal de la aplicación.
• ¿Puedo combinar funciones y condicionales?
Sí se puede, lo hacen a menudo.
Exercises

function tipoDeSuscripcion(formFill){
    let result;
    if(formFill === 'Free'){
        result = 'Solo puedes tomar los cursos gratis';
    }else if (formFill === 'Basic'){
        result = 'Puedes tomar casi todos los cursos de Platzi durante un mes';
    }else if (formFill === 'Expert'){
        result = 'Puedes tomar TODOS los cursos de Platzi durante un año';
    }else if (formFill === 'ExpertPlus'){
        result = 'Tú y alguien más pueden tomar TODOS los cursos de Platzi durante un año';
    }else {
        alert('Debes tomar alguna de las Suscripciones de Platzi para poder ingresar');
    };
}      
tipoDeSuscripcion();

function tipoDeSuscripcion2(formFill){
    if (formFill === 'Free') console.log('Solo puedes tomar los cursos gratis')
    if (formFill === 'Basic') console.log('Puedes tomar casi todos los cursos de Platzi durante un mes') 
    if (formFill === 'Expert') console.log('Puedes tomar TODOS los cursos de Platzi durante un año') 
    if (formFill === 'ExpertPlus') console.log('Tú y alguien más pueden tomar TODOS los cursos de Platzi durante un año') 
    if (formFill === '') console.log('Debes tomar alguna de las Suscripciones de Platzi para poder ingresar')    
}

tipoDeSuscripcion2('Free');
tipoDeSuscripcion2('Basic');
tipoDeSuscripcion2('Expert');
tipoDeSuscripcion2('ExpertPlus');
tipoDeSuscripcion2('');

let tipoDeSuscripcion3 = ['Free','Basic','Expert','ExpertPlus'];
let accountant;

for( accountant=0; accountant < 4; accountant++){
    console.log('Tu suscripción es [' + tipoDeSuscripcion3[accountant] + '] ');
} if (tipoDeSuscripcion3 === 'Free' || tipoDeSuscripcion3 === 'Basic' || tipoDeSuscripcion3 === 'Expert' || tipoDeSuscripcion3 === 'ExpertPlus'){
    document.write('Bienvenido a Platzi');
}else {
    document.write('Debes tomar un tipo de Suscripción');
}

Ciclos
• ¿Qué es un ciclo?
Un bucle o ciclo, en programación, es una secuencia de instrucciones de código que se ejecuta repetidas veces, hasta que la condición asignada a dicho bucle deja de cumplirse.
• ¿Qué tipos de ciclos existen en JavaScript?
Los tres bucles más utilizados en programación son el bucle while, el bucle for y el bucle do-while.
• ¿Qué es un ciclo infinito y por qué es un problema?
Bucle infinito en programación es un error que consiste en realizar un ciclo que se repite de forma indefinida ya que su condición para finalizar nunca se cumple.
Por definición un bucle debe contener condiciones que establezcan cuándo empieza y cuándo acaba, de manera que, mientras las condiciones se cumplan, ejecute una secuencia de código de manera repetitiva. En el caso de ciclo infinito, como la condición de finalización no se alcanza, el bucle sigue ejecutando el segmento de código indefinidamente.
• ¿Puedo mezclar ciclos y condicionales?
Si se puede
Exercise

/*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--
 }

 let number = prompt('¿Cuánto es 2 + 2?');
 if ( number === '4'){
     alert('Felicidades adivinaste el acertijo');
 }else{
     alert('Intenta de nuevo, respuesta incorrecta');
 }

Listas
• ¿Qué es un array?
Es una estructura o lista de datos, tipo objeto, ya que es un valor que guardará más valores adentro, pueden ser numeros, string, objetos, pueden ser más arrays dentro de otros arrays.
Sintáxis de un array:
let fruits = [];
• ¿Qué es un objeto?
Los objetos son listas de parejas nombre / valor. El nombre y el valor están separados por dos puntos : y las parejas están separadas por comas. Los objetos se escriben entre llaves { } y los nombres de las parejas se escriben siempre entre comillas dobles.
• ¿Cuándo es mejor usar objetos o arrays?
Los arrays son la única forma que tenemos para enumerar cosas - independientemente de la aplicación con la que estés trabajando, siempre tendrás cosas que enumerar. Por ejemplo: lista de estudiantes, lista de artistas, lista de transacciones … ¡cualquier cosa!
Este tipo de datos hace muchas más cosas que los otros. Las listas son la única forma de almacenar más de un tipo de datos en la misma variable.
Cada array tiene los mismos conceptos básicos:
The items: Son los valores reales dentro de cada posición del array.
The length: es el tamaño o longitud del array (cuántos elementos tiene el array).
Index: es la posición del elemento.
• ¿Puedo mezclar arrays con objetos o incluso objetos con arrays?
Si de hecho la mayoría de las veces los arrays llevan dentro muchos objetos.
Exercise

const arr = ['Gratis', 'Basic', 'Expert', 'ExpertPlus'];
 arr.forEach((first) => console.log(arr[2])); //Devuelve 'Expert'
 arr.forEach((first, i) => console.log(first, i)); //Devuelve 'Gratis' 0, 'Basic' 1, 'Expert' 2, 'ExpertPlus' 3

const Inscription = {
    plan: 'Free', 
    plan1: 'Basic', 
    plan2: 'Expert', 
    plan3: 'ExpertPlus'
   
}
function yourPlan(){
    console.log('Tu plan es ' + this.plan)
    console.log('Tu plan es ' + this.plan1)
    console.log('Tu plan es ' + this.plan2)
    console.log('Tu plan es ' + this.plan3)
}

Inscription.yourPlan = yourPlan;
Inscription.yourPlan()

Primera sección de preguntas

  • Una variable es un elemento de programación que nos permite guardar valores cómo si fueran cajitas dentro de nuestra PC la cual le pedimos guardar nuestro valores
  • Cuando declaramos let nombre_variable donde solo creamos una caja pero no hay nada dentro y inicializar let nombre_varaible = valor es cuando ya guardamos algo dentro de esta caja
  • Sumar es 1 + 3 = 4 pero concatenar string seria 1 + 3 = 13 ya que no ejecuta operación si no junta caracteres
  • Operador para sumar/concatenar = +

Segunda sección preguntas

let name = "Santiago"; // string
let last_name = "Gomez"; // string
let user_name = "Santiago12"; // string
let age = 12; // number
let email_adress = "[email protected]"; // string
let older = true; // boolean
let saved_money = promt(parseInt(How much money do you have in the bank)); // number 
let debts = promt(parseInt(How much money do you owe ? )); // number

Ejersicio 4

let full_name = `${name} ${last_name}`
let total_money = saved_money - debts;

Funciones

  • Función es un bloque de código el cual tiene series de instrucciones de algo que podemos ejecutar que va a poder ser usado en varias partes de nuestro código de forma repetitiva
  • Una función sirve para poder usar alguna función como puede ser una función de multiplicar en varios lugares sin tener que crear un bloque de código cada ves que necesito multiplicar
  • Un parámetro es la cajita que espera un valor dentro de nuestra función, mientras que el argumento es ese valor que metimos o tenemos dentro de nuestra cajita
function print_data_names(
  name = "Juan David",
  lastname = "Castro Gallego",
  nickname = "juandc"
) {
  let fullname = `${name} ${lastname}`;
  return `Mi nombre es ${fullname}, pero prefiero que me digan ${nickname}.`;
}

console.log(print_data_names());

Condicionales

  • Forma en la cual condicionamos una acción algo así cómo si esto es verdad ejecuta esto si no as otra cosa
  • Esta if (si esto pasa as esto), else (si no as esto otro), else if (si no y esto es verda prueba), switch (dame casos para evaluar si son verdad y si lo son los hare)
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 {
	consloe.log("No tienes un plan")
}
// solo con uso de if
const tipoDeSuscripcion = "Basic";
tipoDeSuscripcion == "Free" ? console.log("Solo puedes tomar los cursos gratis") :
tipoDeSuscripcion == "Basic" ? console.log("Puedes tomar casi todos los cursos de Platzi durante un mes") :
tipoDeSuscripcion == "Expert" ? console.log("Puedes tomar casi todos los cursos de Platzi durante un año") :
tipoDeSuscripcion == "ExpertPlus" ? console.log("Tú y alguien más pueden tomar TODOS los cursos de Platzi durante un año") :
console.log("No tines nuguna suscripción");

Ciclos

  • Esta Estructuras de control una manera de poder repetir tareas si tener que hacerlo de manera manual así si nosotros tenemos una tarea que se repite siempre y cuando esté pasando algo pues ejecutara esta tarea en ciclos asta que ya deje de ser verdad. Así se ejecutara las veces necesarias asta que algo suceda
  • for , while y do while
  • Es un ciclo el cual no tiene un limite y se ejecuta infinitamente esto hace que nuestra PC pueda colpasar
  • 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–
    }
    // Ejercicio pregunta
    function ejersicio () {
    let pregunta = parseInt(prompt(”¿Cuanro es 2 mas 2?”));
    if (pregunta == 4) {
    console.log(“Correcto esta es la respueta correcta”);
    } else {
    ejersicio()
    }
    }
    ejersicio();

Array

  • Estas son Estructuras de datos (Programación) las cuales son muy similares a las Variables (Progra), ya que es un valor que contiene varios valores (lo especifico para entender que son valores lo que tiene no nombres o esas cosas nuevas) internos algo asi como Conjuntos de elementos en fila
  • Forma en que traemos un obeto con cualidaddes, funciones, y todo de la vida a real a la Programación para tener funciónes, cualidad, caracteristicas
  • Objeto: tener datos que tengan mas cualidad o funciones aunque depende la necesidad y en otros casos arrays
  • Si
let array = ["Dato1","Dato2","Dato3"]
function ejersicio(array) {
    console.log(array[0]);
}
ejersicio(array)
// 2
let arrays = ["Dato1","Dato2","Dato3"];
function ejersicio(array) {
    for (let i=0; i < array.length; i++) {
        console.log(array[i]);
    }
}
ejersicio(arrays)
let objeto = {
    nombre: "Santiago",
    apellido: "Gomez",
    edad: 17
};
function ejersicio(imprime) {
    Object.values(imprime).forEach((element) => {
        console.log(element);
    });
};
ejersicio(objeto)

Termine, me gusto mucho, fuen un buen repaso…!!

//  1. Es un Espacio reservado en memoria;
//     Declarar es reservar el espacion en memoria;
//     Inicializar es asignarle un valor;
//     El operador es " + " 

// 2 / 3
var names = 'Gabriel'; //String
var lastNames = 'Rotger'; //String
var nameUserPlatzi = 'Gabriel'; //String
var year = 34; //Number
var email = '[email protected]'; //String
var mayorEdad = true; //Boolean
var dineroAhorrado = 5000; //Number
var deudas = 2000; //Number

// 4.
const personalData = (newName, newLastName, newMoney, newBebts) => {
    console.log(`Mi nombre es: ${newName} ${newLastName}`)
    let balance = (newMoney - newBebts)
    console.log(`Mi saldo es: ${balance}`)
}

personalData(names, lastName, dineroAhorrado, deudas);

//FUNCTIONS
//1.
    // A.  Es un procedimiento, un conjunto de instrucciones, 
    //     pero para ser definido como funcion debe tener una entrada de datos y una salida
    // B.  Cuando es necesario repetir una acción.
    // C. Un parámetro es una variable y los argumento son datos.
//1-2.
const NAME = 'Gabriel Augusto';
const LAST_NAME = 'Rotger';
const COMPLETE_NAME = `${NAME} ${LAST_NAME}`;
const NICK_NAME = 'Gaby';

const completeName = () => {
    console.log(`Mi nombre es ${COMPLETE_NAME}, pero prefiero que me digas ${NICK_NAME}`)
}

completeName(COMPLETE_NAME, NICK_NAME)

//CONDITIONALS
    // A. Es una condicion para discernir entre una opción u otra.
    // B. If-Else If, For, Switch, Ternario
    // C. Si es posible combinar condicionales y funciones

const tipoDeSuscripcion = "Free";

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 para mas info")
}

const tipoDeSuscripcion = "ExpertPlus";

function sinElseIf (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==='ExpertPlus'){
        console.log("Tú y alguien más pueden tomar TODOS los cursos de Platzi durante un año");
    }
}

sinElseIf(tipoDeSuscripcion)


//Bonus: si ya eres una experta o experto en el lenguaje, te desafío a comentar cómo replicar este comportamiento con arrays y un solo condicional.

var dataIn = parseInt(prompt(`Ingresa el numero de suscripcion deseada 
    1 - (Free)
    2 - (Basic) 
    3 - (Expert) 
    4 - (ExpertPlus)`
))

var data = [
    { 
        id: 1,
        name: 'Free', 
        description: 'Solo puedes tomar los cursos gratis'
    },
    { 
        id: 2,
        name: 'Basic', 
        description: 'Puedes tomar casi todos los cursos de Platzi durante un mes' 
    },
    { 
        id: 3,
        name: 'Expert', 
        description: 'Puedes tomar casi todos los cursos de Platzi durante un año' 
    },
    { 
        id: 4,
        name: 'ExpertPlus', 
        description: 'Tú y alguien más pueden tomar TODOS los cursos de Platzi durante un año'
    }
]

let arrayBonus = data.map((newData) => {
    if(newData.id === dataIn) {
        console.log(`Suscripción: ${newData.name} / ${newData.description}`)
    }
})

//Ciclos

//1

//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.
// Los Siclos que existen son 3. While, Do-while, For
// Un ciclo infinito es un ciclo que no tiene fin. Es un problema porque relentiza la aplicacion, en la Web por ejemplo satura al navegador bloqueandolo.
//¿Puedo mezclar ciclos y condicionales?. Si es posible hacerlo en ciertos casos.

//2

// 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

const dosMasDos = () =>{
    
    do{
        var dataIn = parseInt(prompt('Cuanto es 2 + 2'))
    } while(dataIn !== 4){
        if(dataIn === 4) {
            console.log(`Felicidades 2 + 2 es: ${dataIn}`)
        }
    }
}

dosMasDos()

//Listas

//¿Qué es un array?
//Los arrays son objetos similares a una lista cuyo prototipo proporciona métodos para efectuar operaciones de recorrido y de mutación. Tanto la longitud como el tipo de los elementos de un array son variables
//¿Qué es un objeto?
//Un objeto es una colección de propiedades, y una propiedad es una asociación entre un nombre (o clave) y un valor
//¿Cuándo es mejor usar objetos o arrays?
// - - - - - -
//¿Puedo mezclar arrays con objetos o incluso objetos con arrays?
//Si es posible mezclarlos


// Crea una función que pueda recibir cualquier array como parámetro e imprima su primer elemento.
var data = ['Gabriel', 34, 'Dev Junior', true]

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

firstElement(data)

//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 data = ['Gabriel', 34, 'Dev Junior', true]

function allElemnts (firstE) {
    for(var i = 0; i < firstE.length; i++)
    console.log(firstE[i])
}
allElemnts(data)

//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 data = {
    name:'Gabriel',
    age: 34,
    country: 'Argentina',
    mail: '[email protected]',
    studiant: true,
    proffesion: 'Dev Junior',
}

function allElementsObjetc (allElements) {
    for(const props in allElements)
    console.log(`${props} = ${allElements[props]}`)
}

allElementsObjetc(data)
  1. Responde las siguientes preguntas en la sección de comentarios

    1. Que es una varibale y para que sirve?. Una variable es un espacio en memoria para guardar datos.
    2. Declarar es cuando se genera un espacio en memoria y se inicializa para guardar informacion en la misma
    3. Una suma de un numero y concatenar un string, tienen algo en comun y es el operador + pero hacen dos cosas distintas pero casi identicas. Una suma es lo que hemos estado aprendiendo desde primaria y concatenar strings es unir “Hola” + " Mundo", en “Hola mundo”
  2. Determina el nombre y tipo de dato para almacenar en variables la siguiente información:

    1. String
    2. String
    3. String
    4. Number
    5. String
    6. Number
    7. Number
    8. Number
  3. Traduce a código JavaScript las variables del ejemplo anterior y deja tu código en los comentarios.

    var nombre = "Cristian";
    var Apellido = "Cavanzo";
    var userIdPlatzi = "Clair";
    var edad = 17;
    var email = "[email protected]";
    var mayoriaDeEdad = false;
    var dineroAhorrado = 0;
    var deudas = 0;
    

Funciones

  1. Responde las siguientes preguntas en la sección de comentarios
    1. Que es una funcion. Una funcion es una serie de pasos
    2. Cuando queremos repetir una accion en codigo
    3. Los parametros es una variable que esta en la definicion en la funcion y los argumentos son los datos que se le pasan a los parametros
function estudiante(name, lastname, nickname) {
  this.name = name;
  this.lastname = lastname;
  const completeName = name + lastname;
  this.nickname = nickname;
  console.log(
    `Mi nombre es ${completeName}, pero prefiero que me digas ${nickname}`
  );
}

var Juan = new estudiante("Juan David", " Castro", "Juandc");

Condicionales

  1. Responde las siguientes preguntas en la sección de comentarios:
    1. Una condicion es validar si algo es verdad se cumple x sentencia y si no hace y cosa
    2. If (if,else,else if) switch, terneario
    3. Si 😄
  2. Replica el comportamiento del siguiente código que usa la sentencia switch utilizando if, else y else if:
const tipoDeSuscripcion = "Basic";
if (tipoDeSuscripcion === "Basic") {
  console.log("Puedes tomar casi todos los cursos de Platzi durante un mes");
} else if (tipoDeSuscripcion === "Expert") {
  console.log("Puedes tomar casi todos los cursos de Platzi durante un año");
} else if (tipoDeSuscripcion === "ExpertPlus") {
  console.log(
    "Tú y alguien más pueden tomar TODOS los cursos de Platzi durante un año"
  );
} else {
  console.log("Solo puedes tomar los cursos gratis");
}
var tipoDeSuscripcion = ["Basic", "Free", "Expert", "ExpertPlus"];
var suscripionActiva = tipoDeSuscripcion[1];
const Respuesta = [
  "Puedes tomar casi todos los cursos de Platzi durante un mes",
  "Solo puedes tomar los cursos gratis",
  "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",
];
var hola = tipoDeSuscripcion.indexOf(suscripionActiva);
var idk =
  suscripionActiva === tipoDeSuscripcion[3]
    ? console.log(Respuesta[3])
    : console.log(Respuesta[hola]);

me gusto mucho el reto

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.

  • ¿Cuál es la diferencia entre declarar e inicializar una variable?

    Cuando declaramos la variable, solo reservamos su espacio pero no le damos ningun valor

    Cuando la inicializamos le asignamos un valor.

  • ¿Cuál es la diferencia entre sumar números y concatenar strings?

    Cuando se suman numeros, se suman sus valores y cuando se concatena, simplemente se unifican.

  • ¿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 - 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.

let nombre = "Elisa"
let apellido = "Rogriguez"
let nomebreUsuarioPlatzi = "elirodriguez"
let edad = 18
let correoElectronico = "[email protected]"
let mayorEdad = true
let dineroAhorrado = 1000000 
let deudas = 20000

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;

1️⃣ Responde las siguientes preguntas en la sección de comentarios:

  • ¿Qué es una función?

    Un bloque de codigo.

  • ¿Cuándo me sirve usar una función en mi código?

    Cuando necesite utilizar el mismo codigo varias veces.

  • ¿Cuál es la diferencia entre parámetros y argumentos de una función?

    Sinceramente, no se.

    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 myFunction(name,lastname,nikname){
    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:

    • ¿Qué es una condicional?

      Es un bloque de codigo que se ejecutara si es verdadero o falso.

    • ¿Qué tipos de condicionales existen en JavaScript y cuáles son sus diferencias?

      if, else if y else.

    • ¿Puedo combinar funciones y condicionales? Yes.

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

    Bonus: si ya eres una experta o experto en el lenguaje, te desafío a comentar cómo replicar este comportamiento con arrays y un solo condicional. 😏

    //nisiquiera use la condicional xD
    
    const suscripciones = ["Free", "Basic", "Expert", "ExpertPlus"];
    
    const beneficios = ["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 tipoDeSuscripcion = "Basic";
    let index = suscripciones.indexOf(tipoDeSuscripcion)
    console.log(beneficios[index])
    

    Ciclos

    1️⃣ Responde las siguientes preguntas en la sección de comentarios:

    • ¿Qué es un ciclo?

      Sinceramente, no se definirlo.

    • ¿Qué tipos de ciclos existen en JavaScript?

      for, for in, for of, while y do while.

    • ¿Qué es un ciclo infinito y por qué es un problema?

      Es un ciclo cuya condicion para que se realize siempre sera verdadera y nunca se rompe.

    • ¿Puedo mezclar ciclos y condicionales? Si mi rey

      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}`
      
      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.

      while (true) {
      	let input = prompt("Cuanto es 2 + 2?")
      
      	if (input == 4) {
      	        alert("Felicidades")
      	        break;
      	} else {alert("no bro")}
      
      }
      

      Listas

      2️⃣ Crea una función que pueda recibir cualquier array como parámetro e imprima su primer elemento.

      let myArray = [1, 4, 2]
      
      function primerElemento(array) {
      	alert(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 myArray = [1, 4, 2]
      function imprimirArray(array) {
      	for (let i of array) {
      	        console.log(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 myObject = {primer: 1, segundo: 2, tercero: 3}
      
      function imprimirObjecto(objeto) {
      	for (let i in objeto) {
      
      	        console.log(`${i}: ${objeto[i]}`)
      	}
      }
      
      imprimirObjecto(myObject)
      

Hice mi prueba en un archivo de HTML, pueden varla haciendo click en el corazón verde 💚

De igual manera, si te sirve de algo mi código te dejo el repositorio aquí 📜.

¿Qué es una variable y para qué sirve?

-Es un espacio de memoria sirve para almacenar información.

¿Cuál es la diferencia entre declarar e inicializar una variable?

  • Cunado declaras un variable indicas a la memoria que se va a guardar un dato allí, cuando la inicializas envias a la memoria el valor de la variable (el dato).

¿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?

Nombre = String
Apellido = String
Nombre de usuario en Platzi = String
Edad = Number
Correo electrónico = String
Mayor de edad = Booleano
Dinero ahorrado = Number
Deudas = Array (Lista de deudas)

Lo explicaré como lo entiendo…
¿Qué es una variable y para qué sirve?
Yo le llamo “cajita” para guardar algo y esa cajita se guarda en memoria en una posición que no sabemos.

¿Cuál es la diferencia entre declarar e inicializar una variable?
Si no mal me confundo… Declarar es decir su tipo (por ejemplo string), en el caso de JS, ponerle nombre, pues, por ejemplo, así sería:

let i;

E inicializar la variable es cuando le damos que guarde algo, ejemplo:

let i = 1;

¿Cuál es la diferencia entre sumar números y concatenar strings?
Que la suma, los números (vaya redundancia) se suman y en la concatenación solo se juntan, es decir, si yo quiero sumar 1 + 2 me va a dar como resultado 3, pero si lo concateno, me va a dar como resultado 12 (está juntando el 1 con el 2)

¿Cuál operador me permite sumar o concatenar?
Para sumar podemos hacerlo con el signo “+”, ya depende si queremos que sea de cierto tipo, y para concatenar podemos usar el método “concat” o simplemente si tenemos string, con el mismo signo de suma podemos hacerlo.

• Apellido string
  • Nombre de usuario en Platzi string
  • Edad number
  • Correo electrónico string 
  • Mayor de edad true/false
  • Dinero ahorrado  number
  • Deudas true/false
const apellido = ‘Ponce’;
const nombreUsuario = ‘maideduwu’;
const edad = 18;
const correo = “andybiersackteamo@gmail.com”;
const mayorEdad = true;
const dineroAhorrado = 1000;
const deudas = 400;

function imprimir(){
    const inverso = deudas - dineroAhorrado;
    const derecho = dineroAhorrado - deudas;
    const calc = dineroAhorrado < deudas ? inverso : derecho;
    console.log(`Mi nombre es ${nombre} ${apellido} y tengo ahorrado ${calc}`)
}

imprimir()

¿Qué es una función?
Es un bloque de código que realiza cierta operación dependiendo de lo que le indiques hacer.
¿Cuándo me sirve usar una función en mi código?
1. Para no repetir mucho código
2. Cuando la misma acción se ejecutará múltiples veces
¿Cuál es la diferencia entre parámetros y argumentos de una función?
Los parámetros son como sus propiedades y los argumentos son los valores que queremos que tomen esos parámetros.

¿Qué es una condicional?
Es una palabra reservada donde nos ayuda a validar si se cumple algo.
¿Qué tipos de condicionales existen en JavaScript y cuáles son sus diferencias?
If, else if, else, switch/case
¿Puedo combinar funciones y condicionales?
Sí, como bien dijimos, estas sirven para validar y pueden estar dentro de funciones que es lo usual.

function imprimirSeud(name, lastname, nickname) {
    const completeName = name + ' ' + lastname
    console.log(`Mi nombre es ${completeName}, pero prefiero que me digas ${nickname}`)
}

imprimirSeud("Maided", "Ponce", "Maidedp")

function suscripcion (sus) {
    if(sus == "Free") {
        console.log("Solo puedes tomar los cursos gratis");
    } else if (sus == "Basic") {
        console.log("Puedes tomar casi todos los cursos de Platzi durante un mes");
    } else if(sus == "Expert") {
        console.log("Puedes tomar casi todos los cursos de Platzi durante un año");
    } else if(sus == "ExpertPlus") {
        console.log("Tú y alguien más pueden tomar TODOS los cursos de Platzi durante un año");
    }
}

suscripcion("Expert")

function suscripcion (sus) {
    if(sus == "Free") {
        console.log("Solo puedes tomar los cursos gratis");
    } if (sus == "Basic") {
        console.log("Puedes tomar casi todos los cursos de Platzi durante un mes");
    } if(sus == "Expert") {
        console.log("Puedes tomar casi todos los cursos de Platzi durante un año");
    } if(sus == "ExpertPlus") {
        console.log("Tú y alguien más pueden tomar TODOS los cursos de Platzi durante un año");
    }
}

suscripcion("ExpertPlus")

const tipoDeSuscripcion = [
    {
        Tipo: "Free",
        Desc: "Solo puedes tomar los cursos gratis",
    },
    {
        Tipo: "Basic",
        Desc: "Puedes tomar casi todos los cursos de Platzi durante un mes"
    },
    {
        Tipo: "Expert",
        Desc: "Puedes tomar casi todos los cursos de Platzi durante un año"
    },
    {
        Tipo: "ExpertPlus",
        Desc: "Tú y alguien más pueden tomar TODOS los cursos de Platzi durante un año"
    }
]

function suscripcion(sus) {
     const search = tipoDeSuscripcion.find((suscription) => suscription.Tipo === sus)
     if(!search) {
          console.log('No venimos manejandole esa gueritx :((')
     }
     console.log(search.Desc)
}

suscripcion("Expert")

¿Qué es un ciclo?
Una condición que se tiene que cumplir hasta cierto punto
• **¿Qué tipos de ciclos existen en JavaScript? **
For, for each, while
¿Qué es un ciclo infinito y por qué es un problema?
Es un ciclo que se ejecuta sin tener un final porque no le indiqué dónde parar y ese es el problema, que no resuelve lo que quiero porque no se detiene.
¿Puedo mezclar ciclos y condicionales?
Chi u.u

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

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

function dow(){
    do {
     pregunta = parseInt(prompt('cuánto es 2 + 2?'));  
     
    } while (pregunta !== 4);
    if(pregunta == 4){
        alert('Excelente!')
    }
}

dow()

¿Qué es un array?
Es una cajita más grande que guarda varios valores de los cuales pueden ser de diferente tipo.
¿Qué es un objeto?
Es similar a la cajita, solo que este tiene una llave y un valor
¿Cuándo es mejor usar objetos o arrays?
Cuando tenemos propiedades que requieran de otro valor, por ejemplo, si quisieramos guardar datos de un usuario, queremos guardar email, name y pass, tendríamos que describir quienes son esas propiedades llenando en conjunto con los datos de los usuarios.
¿Puedo mezclar arrays con objetos o incluso objetos con arrays?
Chi x2

const articulos = ['planta', 'escritorio', 'cafetera']

function mapeando(a) {
    const primer = a[0]
    console.log(primer)
}

mapeando(articulos)

const bandas = ['Black Veil Brides', 'Palaye Royale', 'The Neighbourhood', 'Sleeping With Sirens', 'Motionless In White']
function unoXuno(b) {
    for(let i = 0; i < b.length; i++) {
        console.log(`Gracias por existir ♥ ${bandas[i]}`)
    }
}
unoXuno(bandas)

const why = {
    banda: 'Black Veil Brides',
    vocalista: 'Andy Biersack',
    razon: 'Es mi favorita porque sus canciones son con las que más me identifico a pesar de no ser mi sonido favorito'
}

function reason(w){
    console.log(`Amo a:`)
    for(let l in w){
        console.log(`${w[l]}`)
    }
}

reason(why)

VARIABLES Y OPERACIONES

RESPONDE

¿Que es una variable y para que sirve?
Es un espacio en memoria que nos permite almacenar diferentes datos.

¿Cuál es la diferencia entre declarar e inicializar una variable?

  • Al declarar una variable, le ponemos un nombre, para así poder llamarla cuando queramos.
  • Al inicializar una variable, le damos un valor o valores esa variable.

¿Cuál es la diferencia entre sumar números y concatenar strings?

  • Sumar números es aplicar la operación matemática de sumar como todos lo conocemos,
  • Al concatenar strings lo que hacemos es unir valores uno al lado del otro.

¿Cuál operador me permite sumar o concatenar?

  • Para ambos casos se utilisa el signo de +.

NOMBRE Y TIPOS DE DATOS:

let myname = 'Lester'; // String
let lastname = 'Inga'; // String
let username = 'lesterim'; // String
let age = 16; // Number
let email = '[email protected]'; // String
let adult = false; // Boolean
let saving = 600; // Number
let debt = 100; // Number

CALCULA E IMPRIME:

console.log( myname + ' ' + lastname );
console.log( saving - debt );

1 Responde las siguientes preguntas en la sección de comentarios:

¿Qué es una variable y para qué sirve? R/ Es un espacio reservado en memoria donde podemos guardar un valor de cualquier tipo, consultarlo y modificarlo a necesidad
¿Cuál es la diferencia entre declarar e inicializar una variable? R/Declararla es crearla con const, let o var y darle un nombre pero no asignarle ningun valor. Inicializarla es asignarle un valor.
¿Cuál es la diferencia entre sumar números y concatenar strings? R/Al sumar se hace la operación matemática para generar un resultado (4+4=8). Cuando concatenamos string, simplemente ponemos un valor adelante del otro (“4”+“4”=“44”)
¿Cuál operador me permite sumar o concatenar? el símbolo más "+"
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 = platziUserName/string
Edad = age/number
Correo electrónico = email/string
Mayor de edad = isAnAdult/boolean
Dinero ahorrado = savedMoney/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 = “Johann”;

let lastname = “Perez”;
let platziUserName = “johannp”;
let age = 29;
let email = “[email protected]”;
let isAnAdult = true;
let savedMoney = 10000;
let debt = 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)

console.log(Nombre completo: ${name} ${lastname});
console.log(Dinero real: ${savedMoney-debt});

Funciones

1️ Responde las siguientes preguntas en la sección de comentarios:

¿Qué es una función? R/Es un segmento de código reutilizable que al ejecutarse realiza una acción. Puede recibir o no parametros y retornar o no valores
¿Cuándo me sirve usar una función en mi código? R/Cuando es un código que voy a necesitar ejecutar más de una vez en diferentes partes de mi programa.
¿Cuál es la diferencia entre parámetros y argumentos de una función? R/Los parámetro son los que se le definen a una función que podría recibir o no. Los argumentos son los valores reales que le estoy pasando cuando la ejecuto.

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

R/

const presentacion = (name, lastname, nickname)=>
console.log(Mi nombre es ${name} ${lastname}, pero prefiero que me digas ${nickname}.)

presentacion(“Juan David”,“Castro Gallego”,“juandc”);

Condicionales

1️ Responde las siguientes preguntas en la sección de comentarios:

¿Qué es una condicional?R/Es un control de flujo que nos permite ejecutar código siempre y cuando se cumpla una condición predeterminada
¿Qué tipos de condicionales existen en JavaScript y cuáles son sus diferencias?R/“If” cuando es sólo una condición, “else if” cuando son varias, “else” cuando no se cumple la condición, “switch” dependiendo del caso se ejecuta un código u otro.
¿Puedo combinar funciones y condicionales? R/Sí
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;
}
R/

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

const infoSuscripcion = {
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(infoSuscripcion[tipoDeSuscripcion])

Bonus: si ya eres una experta o experto en el lenguaje, te desafío a comentar cómo replicar este comportamiento con arrays y un solo condicional. 😏

Ciclos
1️ Responde las siguientes preguntas en la sección de comentarios:

¿Qué es un ciclo? R/Es un código que se repite las veces que nosotros lo programemos o hasta que se cumpla una condición
¿Qué tipos de ciclos existen en JavaScript?R/ For, while, do while, foreach, forin
¿Qué es un ciclo infinito y por qué es un problema? Es cuando nuestro ciclo no tiene una condición que le permita finalizarse, entonces se va a quedar ejecutando hasta que el dispositivo se quede sin recursos.
¿Puedo mezclar ciclos y condicionales? R/Sí
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 j = 0;
while (j < 5) {
console.log("El valor de j es: " + j);
j++;
}

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

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 pregunta = (callback) => {
let respuesta = parseInt(prompt(“Cuanto es 2+2?”));
callback(respuesta);
};

const validacion = (respuesta) => {
if (respuesta === 4) {
alert(“Felicitaciones”);
} else {
pregunta(validacion);
}
};

pregunta(validacion);

Listas
1️ Responde las siguientes preguntas en la sección de comentarios:

¿Qué es un array? R/Es un tipo de dato compuesto en el cual se pueden poner todos los valores que queramos, separados con coma, y a cada uno se le asignará un índice empezando por 0 al primer elemento.
¿Qué es un objeto? R/Es un tipo de dato compuesto el cual en su interior tiene valores que se componen de una llave y un valor, no se busca en ellos por índice sino por el nombre de la llave.
¿Cuándo es mejor usar objetos o arrays? R/ Usamos objetos cuando cada dato está asociado a un nombre, clave o key
¿Puedo mezclar arrays con objetos o incluso objetos con arrays? R/Sí

2️ Crea una función que pueda recibir cualquier array como parámetro e imprima su primer elemento.

const miArray = [“a”, “b”, “c”];
const imprimirPrimero = (array) => {
console.log(array[0]);
};
imprimirPrimero(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).

const miArray = [“a”, “b”, “c”];

const imprimirTodos = (array) => {
for (let i = 0; i < array.length; i++) {
console.log(array[i]);
}
};

imprimirTodos(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).

const yo = {
nombre: “Johann”,
apellido: “Pérez”,
edad: 29,
Pais: “Colombia”,
};

const imprimirObjeto = (object) => {
let keys = Object.keys(object);
let values = Object.values(object);
for (let i = 0; i < keys.length; i++) {
console.log(${keys[i]}: ${values[i]});
}
};

imprimirObjeto(yo);

Respuestas 😄
Variables y operaciones:

  1. Responde las siguientes preguntas en la sección de comentarios:
  • Una variable es un espacio en memoria el cual puede cambiar su valor en un futuro y su alcance es global.

  • declarar una variable es el estado en el que se reserva un espacio para después dar un valor; Inicializar una variable es cuando ya se va a usar una variable en algún punto del código.

  • Sumar números se refiere al proceso matemático como tal de sumar dos o mas valores numéricos, y concatenar strings hace referencia a cuando se quieren unir dos o mas textos tipo string.

  • El operador +.

  1. Determina el nombre y tipo de dato para almacenar en variables la siguiente información:
let nombre = string
let apellido = string
let nombreDeUsuarioEnPlatzi = string
let edad = number
let correroElectronico = string
let mayorDeEdad = boolean
let dineroAhorrado = null
let deudas = null
  1. Traduce a código JavaScript las variables del ejemplo anterior y deja tu código en los comentarios.
var Information = 
{
    nombre: "Carlos Daniel",
    apellido: "Corrales",
    nombreDeUsuarioEnPlatzi: "Carlos Daniel",
    Edad: 18,
    correoElectronico: "[email protected]",
    mayorDeEdad: true,
    dineroAhorrado: null,
    Deudas: null
}
  1. Calcula e imprime las siguientes variables a partir de las variables del ejemplo anterior:
let nombreCompleto = Information.nombre + " " + Information.apellido;
let dineroReal = Information.dineroAhorrado - Information.Deudas;

Funciones

  1. Responde las siguientes preguntas en la sección de comentarios:
  • Una función es un conjunto de sentencias que se pueden utilizar para generar acciones con los valores que ya se guardaron en las variables.

  • Una función se usa mas que todo cuando alguna parte del código se repite mucho, entonces, se usan las funciones para ahorrar y hacer mas fácil el código.

  • El parámetro de una función hace referencia a una ayuda que nos da esta para generar cálculos o resultados en un la función, y por otro lado, los argumentos son los datos que se le pasan a los parámetros de 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 exercise(name,lastName,nickName)
{
    return "Mi nombre es " + name + " " + lastName + ", pero prefiero que me digas " + nickName + ".";
}
console.log(exercise("carlos","corrales","Danny"));

Condicionales

  1. Responde las siguientes preguntas en la sección de comentarios:
  • Un condicional es una instrucción que el código nos va a ejecutar o no dependiendo del valor de una condición que se va a efectuar si algo es verdadero, sino, es esto, sino, es tal otra cosa, y así sucesivamente.

  • Existen 2 tipos de condicionales en JavaScript:

    • El primero es el if, else y else if, este se emplea que por medio del if se puede indicar que una condición que en caso de cumplirse permite la ejecución del enunciado, por medio del else se puede establecer una alternativa a esa primera condición mencionada anteriormente, el else if sirve cuando se trata de analizar el valor exacto de una variable.
    • El segundo es el switch que por medio de este condicional se puede listar una serie de enunciados que se van a ejecutar dependiendo del valor de la variable.
  • Si se puede

  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") 
{
    return console.log("Solo puedes tomar los cursos gratis");       
}
else if(tipoDeSuscripcion == "Basic")
{
    return console.log("Puedes tomar casi todos los cursos de Platzi durante un mes");
}
else if(tipoDeSuscripcion == "Expert")
{
    return console.log("Puedes tomar casi todos los cursos de Platzi durante un año");
}
else if(tipoDeSuscripcion == "ExpertPlus")
{
    return console.log("Tú y alguien más pueden tomar TODOS los cursos de Platzi durante un año");
}
else
{
    return console.log("vuelve a introducir el tipo de suscripcion para un mejor resultado de la busqueda");
}
  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")
{
    return console.log("Solo puedes tomar los cursos gratis");
}
else;
if(tipoDeSuscripcion == "Basic")
{
    return console.log("Puedes tomar casi todos los cursos de Platzi durante un mes");
}
else;
if(tipoDeSuscripcion == "Expert")
{
    return console.log("Puedes tomar casi todos los cursos de Platzi durante un año");
}
else;
if(tipoDeSuscripcion == "ExpertPlus")
{
    return console.log("Tú y alguien más pueden tomar TODOS los cursos de Platzi durante un año");
}
else;

Ciclos

  1. Responde las siguientes preguntas en la sección de comentarios:
  • Un ciclo es una manera rapida y sencilla de poder hacer que una tarea pueda repetirse sin necesidad de realizarlo de nuevo.

  • While y for (este ultimo con algunas variaciones como for of, for in) :con el for podemos definir un fin de intentos y con el while mientras se cumpla algo, que lo siga haciendo.

  • Un ciclo infinito es un error que consiste en realizar un ciclo que se repite de forma indefinida ya que la condicion para finalizar nunca se va a cumplir, es un problema ya que por un lado la condicion nunca se va a cumplir y por otro lado pondra nuestro pc mas lento por gastar tanta memoria 😦

  • si se puede mezclar

  1. Replica el comportamiento de los siguientes ciclos for utilizando ciclos while:
var numero = 0;

while (numero < 5) 
{
    console.log("El valor de numero es: " + numero);
    numero ++;
}
var numero = 10;

while (numero >= 2) 
{
    console.log("El valor de numero es: " + numero);
    numero --;
}
  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.
function exercise() 
{
    let usuario;
    do
    {
        usuario = prompt("Cual es el resultado de 2 + 2? /n: ");
    }while(usuario !== 4);
    
    if (usario === 4) 
    {
        return console.log("¡FELICIDADES!");    
    }
}
exercise();

Listas

  1. Responde las siguientes preguntas en la sección de comentarios:
  • Un array es un tipo de estructura de datos, tipo objeto. Puede guardar datos distintos dentro, guarda los datos en forma de lista.

  • Un objeto es una colección de propiedades, y una propiedad es un valor. ejemplo:

var miAuto=
{
	marca: "toyota",
	modelo:"corolla",
	año: 2020
}
  • Depende de el problema y el estilo de código con el que se quiera trabajar de una forma mas eficiente, en mi opinion un array es mas facil de manejar para poder guardar mejor las propiedades sobre algo o alguien.

  • creo(creoooooo…) que si xd

  1. Crea una función que pueda recibir cualquier array como parámetro e imprima su primer elemento.
var lista = ['carlos', 'daniel', 'corrales']

function primerElemento(x) 
{
    return console.log(x[0]);    
}

primerElemento(lista);
  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).
var lista = ['carlos', 'daniel', 'corrales']

function restoElementos(x) 
{
    for(var i = 0; i < lista.length; i++)
    {
        console.log(x[i]);
    }
}

restoElementos(lista);
  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 miPersona = 
{
    nombre: 'Carlos',
    apellido: 'Corrales',
    años: 18,
    pais: 'Colombia'
}

function object(x)
{
    console.log("Nombre: " + miPersona.nombre);
    console.log("Apellido: " + miPersona.apellido);
    console.log("Años: " + miPersona.años);
    console.log("Pais: " + miPersona.pais);
}

object(miPersona);

El bonus tal vez pueda ser abordado de la siguiente forma

const tipoDeSuscripcion = "Basic";
var suscripciones = ["Free","Basic","Expert","ExpertPlus"];
var mensaje = [
	"Solo puedes tomar los cursos gratis",
	"Solo puedes tomar los cursos gratis",
	"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"
];
					
	
if (!(suscripciones.indexOf(tipoDeSuscripcion) == -1)){
	let posicion = suscripciones.indexOf(tipoDeSuscripcion);
	console.log(mensaje[posicion])
}

1)Variable:
Es un espacio en memoria al cual le asignaremos un valor para su uso.
Diferencia entre declarar e inicializar: Al declarar una variables estamos creando un espacio vacío en memoria, al momento de inicializarla se le asignará el valor.
Diferencia entre sumar y concatenar: Al sumar números estamos realizando una operación matemática entre dos elementos de tipo number. Al concatenar strings estamos uniendo dos elementos de tipo texto en un único conjunto.
Operador para sumar y conctenar: En JS el operador que se utiliza es el +.

var nombre tipo string
var apellido tipo string
var usuario tipo string
var edad tipo number
var email tipo string
var mayorEdad tipo boolean
var dineroAhorrado tipo number
var deudas tipo number

var nombre = "Carlos";
var apellido = "Massarino";
var nombUsuario = "CMassarino";
var edad = 26;
var email = "[email protected]";
var mayorEdad = true;
var dineroAhorrado = 15000;
var deudas = 0;
var nombreCompleto = nombre + " " + apellido;
var DineroReal = dineroAhorrado - deudas;

Funciones
1)
Función: Una función es una serie de instrucciones con el fin de realizar una tarea. Pueden recibir parámetros (que son datos) los cuales utilizaremos para dicho tarea.
Cuándo usarla: Cuando necesitemos realizar una serie de instrucciones esperando un valor como retorno.
Diferencia entre parámetros y argumentos: Los parámetros son las variables que utilizamos al definir la función, mientras que los argumentos son los datos que le pasamos al llamar la función.

function nombre(name, lastname, nickname) {
    console.log(`Mi nombre es ${name} ${lastname} pero prefiero ${nickname}`);
}
nombre("Juan Davidad", "Castro Gallego", "juandc");

Condicionales:
Qué es: Permite evaluar condiciones y bifurcará en diferentes caminos dependiendo de si se cumple o no la condición.
Tipos de condicionales: Existe If y Switch. Switch valida casos verdaderos y lo compara contra una serie de valores. If valida condiciones verdaderas o falsas, si no se cumple la primera pasa a la siguiente. Sí se pueden combinar con funciones.

const tipoSuscripcion = "Basic";

if (tipoSuscripcion === "Free") {
    console.log("Solo puedes tomar los cursos gratis");
}else if (tipoSuscripcion === "Basic") {
    console.log("Puedes tomar casi todos los cursos de Platzi durante un mes");
}else if (tipoSuscripcion === "Expert") {
    console.log("Puedes tomar casi todos los cursos de Platzi durante un año");
}else if (tipoSuscripcion === "ExpertPlus"){
    console.log("Tú y alguien más pueden tomar TODOS los cursos de Platzi durante un año");
}else {
    console.log("Seleccione un tipo de suscripción válido(Free, Basic, Expert o ExperPlus)");
}

La función fue para que lo ingrese el usuario.

var suscripcion = ["Free","Basic","Expert","ExpertPlus"];
var respuesta = ["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"];

function encontrar(dato){
    var posicion = suscripcion.indexOf(dato);
    if (posicion != -1) {
        console.log(respuesta[posicion]);
    }
}

Ciclos:
Es un bloque de código el cual se repite hasta que una condición es alcanzada.
Tipos que existen: For, for of, while.
Ciclo infinito: es un ciclo que se repite infefinidamente ya que la condición para salir nunca se cumple.
Sí se pueden mezclar ciclos con condicionales.

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--;
} 
var resultado = prompt("¿Cuánto es 2+2?");
if (resultado == 4) {
    console.log("Lo lograste!!");
}else {
    while (resultado != 4) {
        var nuevo = prompt("Fallaste, ¿Cuánto es 2+2?");
        if (nuevo == 4) {
            console.log("Lo lograste!!");
            resultado = nuevo;
        }
    }
}

Listas:
Qué es Array: Es un objeto tipo lista, estructura los datos de tal manera que puedan agregarse y quitarse elementos independientemente de su tipo.
Qué es Objeto: Es un contenedor de propiedades, donde cada propiedad tiene un nombre y valor.
Ambos pueden mezclarse.

Crea una función que pueda recibir cualquier array como parámetro e imprima su primer elemento.

var lista = ["Uno","Dos","Tres"];
function mostrarPrimerElemento(lista) {
    return lista[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).

var lista = ["Uno","Dos","Tres"];
function mostrarTodos(lista) {
    for (var i = 0; i < lista.length; i++){
        console.log(lista[i]);
    }
}

La de objetos de pude je.

// Variables y operaciones

// 1️⃣ Responde las siguientes preguntas en la sección de comentarios:

// ¿Qué es una variable y para qué sirve?
es la representacion de algun lugar en memoria que reservamos para poder guardar un valor.

// ¿Cuál es la diferencia entre declarar e inicializar una variable?
La diferencia es que en la varibale declarda ya se encuentra guardo un valor en memoria y en inicializada es que se va a ejecutar la variable

// ¿Cuál es la diferencia entre sumar números y concatenar strings?
La diferencia esta en que los numeros se suman y los stings se concatenan

// ¿Cuál operador me permite sumar o concatenar?
el signo de suma +

2️⃣ Determina el nombre y tipo de dato para almacenar en variables la siguiente información:

let Nombre 'String'
let Apellido 'String'
let Nombre de usuario en Platzi 'String'
let Edad 'Number'
let Correo electrónico 'String'
let Mayor de edad 'boolean'
let Dinero ahorrado 'Number'
let Deudas 'Number'

3️⃣ Traduce a código JavaScript las variables del ejemplo anterior y deja tu código en los comentarios.

let Nombre ='Juan’
let Apellido ='Gomez’
let Nombre_de_usuario_en_Platzi ='Juan’
let Edad = '28’
let Correo_electrónico = '[email protected]
let Mayor_de_edad = 'true’
let Dinero_ahorrado = '2’
let Deudas = ‘Number’

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

Nombre completo (nombre y apellido)

let fullName = ${nombre} ${apellido};
console.log(fullName)

Dinero real (dinero ahorrado menos deudas)

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

1️⃣ Responde las siguientes preguntas en la sección de comentarios:

¿Qué es una función?

Las funciones son fracciones de código reutilizable.

¿Cuándo me sirve usar una función en mi código?

cuando esta se va a reutilizar

¿Cuál es la diferencia entre parámetros y argumentos de una función?

lo parametros,es lo que se va a ejecutar y los argumentos es como se va a ejecutar

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 ejemplo = (name, lastName, nickname) => {
let fullName = ${name} ${lastName};
return Mi nombre es: ${fullName}, pero prefiero que me digas ${nickname};
}
console.log(miFuncion(‘Juan David’, ‘Castro Gallego’, ‘juandc’));

Condicionales

1️⃣ Responde las siguientes preguntas en la sección de comentarios:

¿Qué es una condicional?

es como se debe ejecuat un proceso es decir que tiene que cumplir con unos requesitos para que se pudeda ejecutar

¿Qué tipos de condicionales existen en JavaScript y cuáles son sus diferencias?

if elseif else, switch, Operador Ternario

¿Puedo combinar funciones y condicionales?

si se pueden convinar.

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).

function tipoDeSuscripcion(s) {
if (s == ‘Free’) {
return console.log(“Solo puedes tomar los cursos gratis”);
} else if(s == ‘Basic’) {
return console.log(“Puedes tomar casi todos los cursos de Platzi durante un mes”);
}
else if(s == ‘Expert’) {
return console.log(“Puedes tomar casi todos los cursos de Platzi durante un año”);
}
else if(s == ‘Expert +’) {
return console.log(“Tú y alguien más pueden tomar TODOS los cursos de Platzi durante un año”);
} else {
return console.log(‘Que esperas para adquirir tu suscripción’);
}
}

// tipoDeSuscripcion(‘Expert +’); // Resultado: Tú y alguien más pueden tomar TODOS los cursos de Platzi durante un año
tipoDeSuscripcion(‘no tengo’); // Resultado: Que esperas para adquirir tu suscripción

Bonus: si ya eres una experta o experto en el lenguaje, te desafío a comentar cómo replicar este comportamiento con arrays y un solo condicional. 😏

Ciclos

1️⃣ Responde las siguientes preguntas en la sección de comentarios:

¿Qué es un ciclo?

Un ciclo es la ejecucion de una accion por x cantidad de veces

¿Qué tipos de ciclos existen en JavaScript?

ciclos for, for in, for of, while, do while

¿Qué es un ciclo infinito y por qué es un problema?

Como su palabra lo dice es infinito y es un problema porque hace que nuestro ordenador se “trabe” y las siguientes acciones que se tienen que ejecutar, nunc se ejecutan por el error que hay.

¿Puedo mezclar ciclos y condicionales?

Si se pueden mezclar

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

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

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 juego() {
let resultado;
do {
resultado = parseInt(prompt(’¿Cuál es el resultado de “2 + 2”. R: ‘));
} while ( resultado !== 4 );
if (resultado === 4);
return console.log(’¡felicitaciones’);
}
juego();

Listas

1️⃣ Responde las siguientes preguntas en la sección de comentarios:

¿Qué es un array?

Los arrays son estructuras que nos permiten organizar elementos dentro de una colección. Estos elementos pueden ser números, strings, booleanos, objetos, etc.

¿Qué es un objeto?

Un atributo se compone de una clave (key) y un valor (value), que se separan entre sí por dos puntos “”:"". Los valores pueden ser de tipo string, número, booleano, etc. Cada atributo está separado del siguiente por una coma.

¿Cuándo es mejor usar objetos o arrays?

Esto depende.
¿Puedo mezclar arrays con objetos o incluso objetos con arrays?
Si se pueden mezclar
2️⃣ Crea una función que pueda recibir cualquier array como parámetro e imprima su primer elemento.
const tiposSuscripciones = [‘Free’,‘Basic’,‘Expert’,‘Expert+’]

const primerElemento = (array) => console.log(El primer elemento del array es ${array[0]})

primerElemento(tiposSuscripciones)

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 tiposSuscripciones = [‘Free’,‘Basic’,‘Expert’,‘Expert+’]

const elementos = (array) => array.forEach((elemento,index) => console.log(El elemento ${index} del array es ${elemento}))

primerElemento(tiposSuscripciones)

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).

for (const property in objetoCarro) {
if (Object.hasOwnProperty.call(objetoCarro, property)) {
const element = objetoCarro[property];
console.log(element);
}
}

//BONUS:
const platziCurses = (curse) => {
const subscriptionType = curse;

const subscriptions= [“Free”,“Basic”,“Expert”,“ExpertPlus”];
const answer=[“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”];

index=subscriptions.indexOf(subscriptionType);
if (index==-1){
console.error(“Solo puedes tomar los cursos gratis”);
}
else{
console.log(answer[index]);
}
}
platziCurses(‘ExpertPlus’);

Prueba 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 es un espacio en memoria donde podemos guardar distintos tipos de dato como números, textos o valores binarios, entre otros. Accedemos a éstos a través de un nombre, y son una característica principal de casi cualquier lenguaje moderno de programación.
¿Cuál es la diferencia entre declarar e inicializar una variable?
Cuando declaro una variable le asigno un nombre pero todavía no ocupa espacio en memoria ni tiene algún valor asignado. Es cuando la inicializamos que ocurre este proceso.
¿Cuál es la diferencia entre sumar números y concatenar strings?
Cuando se suman números se realiza una operación aritmética de adición entre dos números, pero concadenar strings no es lo mismo que sumar dos números. Concadenar variables implica con una cierta sintaxis juxtaponer dos o más variables.
¿Cuál operador me permite sumar o concatenar?
Para sumar dos valores es preciso utilizar el famoso símbolo de adición “+”. Para concadenar variables también se puede usar este símbolo, tal que así:

var nombreCompleto = "Aidan" + " Cloquell"

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: número entero
Correo electrónico: String
Mayor de edad: valor binario (booleano)
Dinero ahorrado: número fraccionario (punto flotante)
Deudas: (Numero de deudas: numero entero)(cantidad a pagar aún: número fraccionario)
3️⃣ Traduce a código JavaScript las variables del ejemplo anterior y deja tu código en los comentarios.

var nombre = "Aidan"
var apellido = "Cloquell"
var username = "aidanLorenzo"
var edad = 15
var correo = "[email protected]"
var mayorDeEdad = false
var dineroAhorrado = 111
var deudas = -12

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 = dineroAhorrado + deudas

Funciones
1️⃣ Responde las siguientes preguntas en la sección de comentarios:

¿Qué es una función?
Es un bloque de código el cual puede recibir argumentos por parámetro y tiene un nombre por lo general para hacer referencia a ésa. Un ejemplo es una función que realiza una suma entre dos números.
¿Cuándo me sirve usar una función en mi código?
Es increíblemente útil cuando hay una parte de tu código que debe ser usada en varias ocasiones, evitando así repetir código innecesariamente.
¿Cuál es la diferencia entre parámetros y argumentos de una función?
Un parámetro es una propiedad o parte de los problemas en sí. El argumento es más bien los valores asignados para esos parámetros en cada caso específico e instancia.
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 name(name, surname, nickname) {
    const completeName = `${name} ${surname}`
    console.log(`My name is ${completeName}, but I rather that you call me ${nickname}`)
}

Condicionales
1️⃣ Responde las siguientes preguntas en la sección de comentarios:

¿Qué es una condicional?
Es una estructura de flujo con la que se puede ramificar un programa. Éstas evaluan una sentencia lógica, y el resultado de eso puede ser un valor falso o verdadero indicado con el valor booleano que es un tipo de dato como mencionado previamente. Dada una condición, se podrá ejecutar cierto código o no.

	if (condition) {
		executeCode()
	} else if (newCondition) {
		executeNewCode()
	} else {
		alert()
	}

¿Qué tipos de condicionales existen en JavaScript y cuáles son sus diferencias?
Además de la estructura básica presentada anteriormente, en JavaScript tenemos otra que permite analizar varios casos particulares. Pasamos entre paréntesis al lado de la palabra reservada switch la variable a evaluar o utilizar.
¿Puedo combinar funciones y condicionales?
Es desde luego posible de combinarlas. Puedes escribir una función que contenga una estructura condicional para evaluar lo que necesites, pudiendo pasar como argumento valores a los parámetros que añadas a tu funció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;

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).

if (tipoDeSuscripcion === "Free") {
       console.log("Solo puedes tomar los cursos gratis")
} 
if (tipoDeSuscripcion === "Basic") {
       console.log("Puedes tomar casi todos los cursos de Platzi durante un mes")
} 
if (tipoDeSuscripcion === "Expert") {
       console.log("Puedes tomar casi todos los cursos de Platzi durante un año")
} 
if (tipoDeSuscripcion === "ExpertPlus") {
       console.log("Tú y alguien más pueden tomar TODOS los cursos de Platzi durante un año")
}

Bonus: si ya eres una experta o experto en el lenguaje, te desafío a comentar cómo replicar este comportamiento con arrays y un solo condicional. 😏

No conseguí concebir esto. Espero aprender de los comentarios de algún experto.

Ciclos
1️⃣ Responde las siguientes preguntas en la sección de comentarios:

¿Qué es un ciclo?
Es una serie de pasos que se realizan sistemáticamente hasta que una cierta condición se evalue en el valor que esperamos.
¿Qué tipos de ciclos existen en JavaScript?
Existe el ciclo for que ejecuta el código que escribas en su interior tantas veces como le indiques. Su estructura es:
for (var i = 0 “inicio en cero”; i === 10 “marco las veces que necesito que se ejecute el código, número entero siempre”; i++ “esto equivale a i = i + 1, que va incrementando el valor del iterador i hasta llegar al valor de la condición indicada previamente”)
Otro ciclo es el while, que ejecuta un bloque de código hasta que una condición se de. Tal que así:

while (condition === false) {
		executeCode()
	}

¿Qué es un ciclo infinito y por qué es un problema?
Es un ciclo cuyo bloque de código nunca hace que se llegue al valor especificado en la condición, por lo que continua ejecutando el código indefinidamente. Esto se conoce como los bucles infinitos. Y naturalmente rompe el código.
¿Puedo mezclar ciclos y condicionales?
Sí se puede, y en algunos proyectos de prueba lo he hecho casi sistemáticamente.
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(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(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.

Pista: puedes usar la función prompt de JavaScript.

function canYouAdd(numa, numb) {
    let inputValue = prompt(`${numa} + ${numb} = ?`)
    let expectedValue = numa + numb
    if (inputValue === expectedValue){
        alert("Great, you can add.")
    } else {
        alert("You better start learning some basic arithmetic.")
    }
}

canYouAdd(2, 2)

Listas
1️⃣ Responde las siguientes preguntas en la sección de comentarios:

¿Qué es un array?
Es una estructura en JavaScript que nos permite guardar una sarta de datos en una variable con un nombre determinado. Se puede acceder a cada uno de sus elementos con su índice, que indica su lugar en la lista con los números desde el 0.
¿Qué es un objeto?
Es una estructura en JavaScript similar a un array en cierta manera, pues se puede pensar al objeto como un array cuyos elementos tienen un nombre que corresponde a las propiedades del objeto.
¿Cuándo es mejor usar objetos o arrays?
Probablemente fuese mucho mejor utilizar arrays en vez de objetos cuando se manejan varios datos, o cuando todos los datos miden una cosa determinada y pierde en parte el sentido asignarle un nombre a cada valor de la estructura de datos.
¿Puedo mezclar arrays con objetos o incluso objetos con arrays?
Sí: puedes perfectamente crear un array cuyos elementos son objetos y objetos con ciertas propiedades que contengan arrays.
2️⃣ Crea una función que pueda recibir cualquier array como parámetro e imprima su primer elemento.

function printFirstElement(array) {
    return array[0] 
    //(o 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 printElements(array) {
        for (let 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 printObjectElements(obj) {
    let text = ""
    for (var i in obj) {
        text += `${obj[i]} ` 
    }
    return text
}

1️⃣ . Variables y operaciones.
¿Qué es una variable y para qué sirve?
es un espacio reservado en la memoria RAM y sirve para recurír a valores guardados o guardar valores dentro del programa (según lo que sé O_O).
¿Cuál es la diferencia entre declarar e inicializar una variable?
declarar es para crear la variable e inicializar es darle valor a la variable.
¿Cuál es la diferencia entre sumar números y concatenar strings?
que los strings van encerrados entre comillas dobles o simples y los números solo son números como: “4”+“4”=“44” y 4+4=8
¿Cuál operador me permite sumar o concatenar?
+

<hr>

name=“string”;
firstLastName=“string”;
userName=“string”;
age=21; //number
eMail=“string”;
adult=true; //boolean
saveMoney=1000; //number
debts=false; //boolean

<hr>

console.log(name+firstLasName);
debtsMoney=0; //number
console.log(saveMone-debtsMoney);

const tipoDeSuscripcion = "Basic"

if (tipoDeSuscripcion === "Basic"){
	console.log("Puedes tomar casi todos los cursos de Platzi durante un mes");
} else if (tipoDeSuscripcion === "Expert"){
	console.log("Puedes tomar casi todos los cursos de Platzi durante un año")
} else if (tipoDeSuscripcion === "ExpertPlus"){
	console.log("Tú y alguien más pueden tomar TODOS los cursos de Platzi durante un año")
} else{
	console.log("Solo puedes tomar los cursos gratis");
}

----------Variables y operaciones----------
1.-
Es un espacio en memoria que puede tomar diferentes valores
Al declarar una variable solo se esta reservando el espacio en memoria, mientras que al inicializar una variable se le esta asignando un valor ya sea numerico, cadena, arrayt etc.
Concatenar string lo que hace es unir los caracteres que se encuentran en las variables.
El operador de suma (+) permita tanto realizar una suma como concatenar strings, sin embargo se puede usar la nueva sintaxis de ECMASCRIP (nombre completo ${nombre} ${apellido}) lo que hace es concatenar las cadenas que se tengan adentro de los parentesis con las variables que estan entre llaves

2.-
Nombre -> String
Apellido -> String
Nombre de usuario en Platzi -> String
Edad -> Intger
Correo electrónico -> String
Mayor de edad -> Integer
Dinero ahorrado ->Number (tambien se puede Float o Double pero depende del lenguaje en este caso para javascript seria Number)
Deudas -> Number (tambien se puede Float o Double pero depende del lenguaje en este caso para javascript seria Number)

3.-
fullName = nombre + apellido
tambien se puede fulname = ${nombre} ${apellido}
realMoney = savedMoney - debts

----------Funciones----------
1.-
Una funcion es una seccion de codigo que es modular y puedo llamar a ejecutar en cualquier parte del codigo
Cuando se esta repitiendo mucho una seccion de codigo como una suma
Parametro es el valor que se espera a recibir en la funcion o metodo, el argumento es el valor que se le asigna al parametro que se espera a ser pasado

2.-
const fullName = (name, lastName, nickname) => {
console.log(Mi nombre es ${name} ${lastName} per prefiero que me digas ${nickname})
}

Condicionales
1.-
Es una pieza de codigo que determina que parte del codigo debe ejecutarse
(=, ==, =) , (!=, !=), (<=, >=), (>, <)
Si

2.-
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 mySubscription = “Expert”;

const subscriptionType = [
{ subscription: “Free”, message: “Solo puedes tomar los cursos gratis” },
{
subscription: “Basic”,
message: “Puedes tomar casi todos los cursos de Platzi durante un mes”,
},
{
subscription: “Expert”,
message: “Puedes tomar casi todos los cursos de Platzi durante un año”,
},
{
subscription: “ExpertPlus”,
message:
“Tú y alguien más pueden tomar TODOS los cursos de Platzi durante un año”,
},
];

const printSubscription = subscriptionType.map(
(item) => item.subscription === mySubscription && console.log(item.message)
);

----------Ciclos----------

1.-
Es un bloque de codigo que se ejecuta determinadas veces
for, do while, while, for in, for of,
Es cuando no se establece un limite en el ciclo, esto es un problema ya que puede generar problemas al llenar lamemoria ram o el callback de java script y puede causar congelamientos en el programa
Si

2.-
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 = prompt(“Cuanto es 2 + 2”);

while (result !== “4”) {
result = prompt(“Cuanto es 2 + 2”);
}

----------Listas----------
1.-
Una serie de elementos almacenados en memoria
Una variable que tiene atributos y puede tener metodos
Si ejemplo:
const myArray = [
{
subscription: “Free”,
message: “Solo puedes tomar los cursos gratis” },
{
subscription: “Basic”,
message: “Puedes tomar casi todos los cursos de Platzi durante un mes”,
},
{
subscription: “Expert”,
message: “Puedes tomar casi todos los cursos de Platzi durante un año”,
},
];

2.-
const array = [0,1,2,3,4]

const firstElement = (array) => {
console.log(array[0])
}

firstElement(array)

3.-
const array = [0, 1, 2, 3, 4];

const allElements = (array) => {
for (let item of array) {
console.log(${item})
}
}

allElements(array)

4.-
const objectArray = [
{ text: “uno”, num: 1 },
{ text: “dos”, num: 2 },
{ text: “tres”, num: 3 },
{ text: “cuatro”, num: 4 },
];

const allObject = (objectArray) => {
for (const item in objectArray) {
console.log(objectArray[item]);
}
};

allObject(objectArray);

// Prueba JavaScript

//1- Preguntas

Una variable es un espacio en memoria, tiene al función de asignarle un valor a dicho espacio.

Cuando declaramos una variable estámos indicando que proximamente esa variable va a tener un valor y cuando la inicializamos se lo asignamos.a

En la suma de números se hace la operación matemática, en cambio en la concatenación en solo la unión de strings.

El operador de suma es +.

// Variables

let nombre=“Fabiola”;
let apellido=“Odio”;
let usuarioPlatzi=“fabiolaodio”;
let edad=21;
let correo= “[email protected]”;
let mayorEdad= true;
let dineroAhorrado=20 000;
let deuda= 5000;

// Variables

var nombreCompleto= nombre + " " + apellido;
var dineroReal= dineroAhorrado-deuda;

// Funciones

Una funcion en un conjunto de instrucciones y datos, que tiene una tarea a cumplir.

// Cambio a función

function saludo(name, lastname, nickname){
let nombreCompleto= name + " " + lastname;
console.log("Mi nombre es " + nombreCompleto + ", pero prefiero que me digas " + nickname + “.”);

}

saludo(“Fabiola”, “Odio”, “Lola”);

//Condicionales

Un condicional es conjunto de instrucciones que se pueden cumplir o no, dependiento del parametro que se vaya a evaluar.

Los tipos de condicionesl son: if, else, else if y switch.

Si se pueden combinar condicionales y funciones.

//Condicional cambio

const tipoDeSuscripcion= “Expert”;

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

//Condicional if
const tipoDeSuscripcion= “Expert+”;

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+”) {
console.log(“Tú y alguien más pueden tomar TODOS los cursos de Platzi durante un año”);
}

//Ciclos

Un ciclo es cuando se ejecuta una accion mientras una cóndicion se cumpla o en cierta cantidad de repeticiones.a

Los ciclos que hay son, for, while, do while.

Un ciclo infinito es cuando la condición nunca se cumple y el código no va a tener nunca un fin y el problema es que el programa va a quedar pegado.

Si se pueden mezclar ciclos y condicionales.

//Ejercicio de ciclos

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

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

//Ejercicio de preguntar al usuario

function respuesta(resultado){
var resultado = window.prompt("¿Cuánto es 2+2?");

    if (resultado!=4) {
        respuesta(resultado);
        
    }else{
        console.log("Felicidades")
    }

}
respuesta();

// Listas

Un array es un conjunto de datos almacenados en una variable, y deben de ser del mismo tipo de dato.

// Listas ejercicio 1

rgb=[];

function primerColor(rgb){

console.log("El primer color primario es: " + rgb[0]);

}

primerColor([“red”,“green”,“blue”]);

// Listas ejercicio 2

rgb=[];

function primerColor(rgb){

for (let i = 0; i < rgb.length; i++) {
    console.log(rgb[i]);
    
}

}

primerColor([“red”,“green”,“blue”]);

Replica el comportamiento del siguiente código que usa la sentencia switch utilizando if, else y else if:

var tipoDeSuscripcion=“Expert”;

if(tipoDeSuscripcion===“Free”){
console.log(“Solo puede tomar los cursos gratis”);
}else if(tipoDeSuscripcion===“Basic”){
console.log(“puedes tomar casi todos los cursos de Platzi un mes”);
}else if(tipoDeSuscripcion===“Expert”){
console.log(“puedes tomar casi todos los cursos de Platzi un año”);
}else {
console.log(“No puedes tomar ningun curso”);
}

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=“Expert”;

if(tipoDeSuscripcion===“Free”){
console.log(“Solo puede tomar los cursos gratis”);
}if(tipoDeSuscripcion===“Basic”){
console.log(“puedes tomar casi todos los cursos de Platzi un mes”);
}if(tipoDeSuscripcion===“Expert”){
console.log(“puedes tomar casi todos los cursos de Platzi un año”);
}

//Variables y operaciones

//¿Qué es una variable y para qué sirve? Una variables es como una cajita que guarda un valor y nos sirve para llamarlo cuando lo necesitemos para que cumpla algun proposito
//¿Cuál es la diferencia entre declarar e inicializar una variable? Declara: reservar espacio en memoria, darle un valor a ese espacio
//¿Cuál es la diferencia entre sumar números y concatenar strings? sumar números literalmente y los string los va a unir  
//¿Cuál operador me permite sumar o concatenar? +

//2️⃣ Determina el nombre y tipo de dato para almacenar en variables la siguiente información:

var nombre  = "Juan"; //string
var apellido = "DC";  //string
var nombreDeUsuarioEnPlatzi = "JDC";  //string
var edad = 22; // numero
var correoElectrónico = "[email protected]"; //string
var mayorEdad = true; //booleano
var dineroAhorrado = 11000; //numero
var deudas = 1200; //

//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;
console.log(nombreCompleto);

var efectivo = dineroAhorrado - deudas;
console.log(efectivo);

// Funciones
//¿Qué es una función? conjunto de sentencias para generar acciones con los valores guardados en las variables | procedimiento de tareas | pasos para regresar, validar o generar algo
//¿Cuándo me sirve usar una función en mi código? cuando vamos a escribir el mismo código varias veces 
//¿Cuál es la diferencia entre parámetros y argumentos de una función? parametro es la variable en la declaración de función y el argumento es el valor real de la variable que se pasa en la función 
//ejemplo 

function example(parametro1, parametro2){
    return (parametro1 + parametro2);
}
example("argumento1", "argumento2");

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

exam("Misael", "MGC");

//Condicionales
//¿Qué es una condicional? instruccion o grupo de instrucciones para analizar si algo es verdadero o falso y en base en eso entregar un resultado 
//¿Qué tipos de condicionales existen en JavaScript y cuáles son sus diferencias?If, else, else if, switch y de operador ternario
//¿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;
}


var free = 1;
var basic = 2;
var expert = 3;
var expertPlus = 4;
var usuarioo = prompt("Elige la opción 1 es free, 2 es basic, 3 es expert, 4 es E+");
function user(usuarioo){
    if(usuarioo == 1){
        console.log("Solo puedes tomar los cursos gratis");
    }
    else if(usuarioo == 2){
        console.log("Puedes tomar casi todos los cursos de Platzi durante un mes");
    }
    else if(usuarioo == 3){
        console.log("Puedes tomar casi todos los cursos de Platzi durante un año");
    }
    else if(usuarioo == 4){
        console.log("Tú y alguien más pueden tomar TODOS los cursos de Platzi durante un año");
    }
    else{
        console.log("Publicidad hasta despertar el interes del futuro estudiante a visitar la plataforma, incluye los videos de Freddy en youtube explicandote porque debes estudiar en Platzi")
    }
}

user(usuarioo);



var free = 1;
var basic = 2;
var expert = 3;
var expertPlus = 4;
var usuarioo = prompt("Elige la opción 1 es free, 2 es basic, 3 es expert, 4 es E+");
function user(usuarioo){
    if(usuarioo == 1){
        console.log("Solo puedes tomar los cursos gratis");
    }
    if(usuarioo == 2){
        console.log("Puedes tomar casi todos los cursos de Platzi durante un mes");
    }
    if(usuarioo == 3){
        console.log("Puedes tomar casi todos los cursos de Platzi durante un año");
    }
    if(usuarioo == 4){
        console.log("Tú y alguien más pueden tomar TODOS los cursos de Platzi durante un año");
    }
}

user(usuarioo);

///---------Ciclos--------------------------
// ¿Qué es un ciclo?¿Qué tipos de ciclos existen en JavaScript? Manera de que una tarea pueda repetirse sin hacerla de manera manual
// ¿Qué es un ciclo infinito y por qué es un problema? es una ejecución de tareas que no termina y  la compu se atasque repitiendo esa tarea, exceso de memoria
// ¿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);
}


var i = 0;
var x = 0;

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

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

var i = 10;
// var x = 0;
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.

function answer() {
    var resultado;
    do {
      resultado = parseInt(prompt("¿Cuál es el resultado de 2 + 2"));
    } while ( resultado !== 4 ); //mientras resultado !== 4 repite el bloque de código
    if (resultado === 4);
    return console.log("Felicidades bro");
  }
  answer();



  //Listas
  //1️⃣ Responde las siguientes preguntas en la sección de comentarios:

//¿Qué es un array? es una estructura de datos, valor que guarda más valores dentro, numeros, strings, objetos
//¿Qué es un objeto?  contenedor de datos 
//¿Cuándo es mejor usar objetos o arrays? Depende del caso de uso, pero los arrays son buenos para guardar datos o valores y el objeto para guardar propiedades con valores 
//identifica ese detalle en el caso de uso
//¿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.

var array = ["Elemento1", "Elemento2", "Elemento3", "Elemento4"];

function nombre_funcion(array){
    console.log(array[0]);
}
nombre_funcion(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).

var array = ["Elemento1", "Elemento2", "Elemento3", "Elemento4"];

function nombre_funcion(array){
    console.log(elemento);
}

for (var elemento of array){
    nombre_funcion(array[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 objeto = {
    propiedad1: "valor1",
    propiedas2: "valor2",
    propiedad3: "valor3",
    propiedad4: "valor4",
    numero: 5
};

var nombre_funcion1 = (parametro_objeto) =>{
    Object.values(parametro_objeto).forEach((valor) => {
        console.log(valor);
    });
};

nombre_funcion1(objeto);

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:
const name=“Juan David”;
const lastname=“Castro Gallego”;
const completeName= ${name} ${lastname};
const nickname=“Juanc”;

function respuesta(name, niname)
{

console.log("Mi nombre es: " + name + ", Pero prefiero que me digan " + niname + “.”);
}
respuesta(completeName, nickname);

¿Qué es una condicional?
R/ es una sentencia que ejecuta un proceso cuando algo se cumple.
¿Qué tipos de condicionales existen en JavaScript y cuáles son sus diferencias?
R/ if, if, switch
if: nos sirve para que ejecute una parte del codigo si se cumple la condicion
if else: nos sirve para ejecutar mas de una condicion
switch: se parece al if else pero este se lee mas facil.

¿Puedo combinar funciones y condicionales?
R/si se puede combinar funciones dentro de condicionales y viceversa.

  1. Preguntas:
    • Una variable es un espacio en memoria al cual le puedes asignar un valor/dato y que puede cambiar(variar) si así lo deseas.
    • Declarar es establecer una palabra como variable, inicializarla es darle un valor inicial a ese espacio en memoria.
    • Sumar te regresa un nuevo valor, concatenar es unir los valores(strings) ya predefinidos.

2 y 3. Nombre y tipo de dato:

let name = "Cristian" (string)
let lastName = "Flores" (string)
let userName = "Elchicogamer117" (string)
let age = 24 (int)
let email = "[email protected]" (string)
let isAdult = true (boulean)
let saveMoney = 5 (int)
let debts = 0 (int)
  1. Calcular variables:
const fullName = `${name +  lastName}`
const liquidMoney = saveMoney - debts

Funciones

  • Una función es un fragmento de código que realiza una acción especifica.
  • Cuando la necesitas en múltiples ocasiones.
  • (Hasta aquí llegue sin buscar en Google) El parámetro es el nombre y el argumento el valor que recibe ese parámetro.
function introduction (name , lastname, nickName) {
	const fullName = name + " " + lastname
	return console.log("My name is " + completeName + ", but I prefer that you tell me " + nickname + ".");
}

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

Condicionales

  1. Preguntas:
    • Es un comando que limita la ejecución de una sentencia a los requisitos que el usuario establezca.
      -if y switch, son similares, depende de la situacion cual conviene utilizar.
    • Si es posible.
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");
} 

Ciclos

  • Repetición de código hasta que se cumpla la condición
  • For y while
  • No tiene condicion , satura la memoria.
  • Si
while (let i = 0; i < 5){
	console.log("El valor de i es: " + i);
	i++;
}
while (let i = 10; i >= 2){
	console.log("El valor de i es: " + i);
	i--;
}
while (let resp = true; resp == true ){
	let response = prompt("How much is 2+2? ");
	if( response == 4){
	console.log("Congratulations")
	resp = false
	} else if {
	resp = true
	}
}

Listas

  • Conjunto de datos almacenamos en una misma variable
  • Es un contenedor de propiedades
  • Depende de la necesidad del usuario
  • Si
function firstValue (array) {
	return console.log(`Fist value of $(array) is $(array[0]) `)
}
function arraySbyS (array){
	for(let value of array){
	console.log(value)
	}
}
  1. una variable es un espacio en memoria y sirve para asignarle un valor a un elemento.
    declarar es darle un espacio en la memoria mientras que asignarle es darle un valor de algun tipo.
    sumar numeros se realiza entre dos variables tipo numericas y concatenacion es una suma de dos variables supuestamente tipo string
    el operador que me permite sumar o concatenar es el operador +

nombre/string, apellido/string, nombredeusuariodeplatzi/string
edad/int, correo/string, mayordeedad/bollean dineroahorrado/float deudas/float

Nombre = "Cristian";
Apellido = "Kairiyama";
platziuser = "kairi";
edad = 24;
correo = "nanan";
mayoredad = true;
dineroahorrado = 14.32;
deudas = -1231.123;

nombrecompleto = Nombre + Apellido;
Dineroreal= dineroahorrado - deudas ;

una funcion es un bloque del codigo que te permite realizar una funcion especifica.
te sirve utilizar una funcion en tu codigo cuando creas que lo volveras a ocupar o solo cuando lo creas para quew realice una funcion especifica.
los parametros son los que llamamos cuando creamos la funcion y argumentos cuando la ocupamos

function presentacion(name, lastname, nickname){

const completeName= name+lastname;

console.log(“mi nombre es” + completeName + "pero prefiero que me digas " + nickname + “.”);
}

un condicional es un fragmento del codigo para evaluar una expresion y dependiendo de su valor de verdad tomara una decision
existen el if y else utilizado para evaluar una condicion y tomar dos decisiones; existe el switch que dependiendo en este caso del valor dado realiza una determinada accion. puede convinarse varias posibles del switch si no se le mete un breack.
si podes.

const tiposuscripcion = “basic”;

if(tiposuscripcion == “free”){
console.log(“solo puedes tomar cursos gratis”)
} else if (tiposuscripcion == “basic”){
console.log(“puedes tomar casi todos los cursos durante un mes”);
} else if (tiposuscripcion == “expert”){
console.log(“puedes tomar casi todos los cursos durante un ano”);
} else if (tiposuscripcion == “expertplus”){
console.log(“puedes tomar casi todos los cursos durante un ano con alguien”);
}

un ciclo es un bloque de codigo que se ejecuta una o mas veces antes de cumplir una condicion
los tipos que existen son for while, for each
un ciclo infinito es aquel que su condicion nunca se cumple es un problema porque no se llega a lo que uno quiere,

un array es una coleccion de elementos que se encuentran en memoria
un objeto es un tipo de dato que se le asignan distintos atributos
array es para almacenar objetipso tipo lista y objetos se utilizan para describir un objeto.
si se puede meter un array de objetos o en un objeto un array de elemntos.

Gracias JuanDC por la motivación para no parar de aprender… Les comparto que me costó no poco (jjjj) hacer las prácticas del código, pero finalmente aquí los dejo:

  1. Respuestas…
  • Una variable se usa para acceder a un espacio reservado en memoria.
  • Al declarar una variable se reserva el espacio, al inicializarla, le damos un valor.
  • La diferencia radica en el tipo de dato. En los numeros, hay una operación aritmética, mientras que en los strings hay una unión.
  • Se usa el signo +.

2 y 3. Tipos de datos en variables…
var names = ‘Nombre’;
var lastname = ‘Apellido’;
var user= ‘usuario’;
var age= 20;
var email= ‘correo electrónico’;
var adult= true;
var saving= null;
var debts= null;

function nombreCompleto(names, lastname){
var fullname = names + lastname;
console.log('El nombre completo es ’ + fullname);
}

function calcular(saving, debts){
var result = saving - debts;
console.log('Su dinero real es ’ + result);
}

var names = prompt(‘Indica tu nombre’);
var lastname = prompt(‘Indica tu apellido’);
var saving = prompt('Cuanto es tu dinero ahorrado? ');
var debts = prompt(‘Cuanto es tu deuda?’);

nombreCompleto(names, lastname);
calcular(saving, debts);

FUNCIONES…

  1. Son bloques de código para hacer una tarea específica. 2. Cuando necesitamos reutilizar esa tarea.

  2. Los parámetros están en la declaración de la función y los argumentos al invocarla.

var namee = “Juan David”;
var lastname = “Castro Gallego”;
var nickname = “juandc”;

function nombrar(namee, lastname, nickname){
var completeName = namee +lastname;
console.log("Mi nombre es " + completeName + ", pero prefiero que me digas " + nickname + “.”);
}
nombrar(namee, lastname, nickname);

CONDICIONALES…

  1. Respuestas…
  • Es un bloque de código que permite evaluar una condición como True or False y realizar ciertas acciones.
  • Tipos… If - else, if - else if, switch - case - break.
  • Si se pueden combinar.

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


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”);
}
if (tipoDeSuscripcion === ‘’){
console.log(“No tienes ningún Plan, accede a uno aquí…”);
}

CICLOS…

  • Son bloques de código que se repiten hasta ciertas condiciones.
  • for (), for… of, while, do while.
  • Un ciclo infinito no tiene bien definido su término, esto ocasiona colapso de la memoria del equipo.
  • Si se puede combinar.

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

var respuesta=0;
do {
respuesta = prompt('Cuánto es 2 * 2 ? : ');
respuesta === 4 ? ‘Acertaste, felicitaciones…’ : ‘sigue intentando’;
} while (respuesta !=4);

LISTAS…

  • Un array es un tipo de variable que almacena varios datos en un mismo espacio de memoria.
  • Un objeto es un tipo de dato más complejo que almacena atributos y valores correspondiente a una misma variable.
  • Dependiendo de la naturaleza y finalidad de los datos.
  • Sí se pueden combinar.

materiales = [‘tela’, ‘aguja’, ‘papel’, ‘hilo’];
function imprimir(materiales){
var primero= materiales[0];
console.log('El primer elemento es: ’ + primero);
}
imprimir(materiales);

materiales = [‘tela’, ‘aguja’, ‘papel’, ‘hilo’];
materiales.forEach(element => {
console.log (element);
});








El reto de las suscripciones con arrays y un condicional.

const chossenSubscription = "Free";

const subscriptionMessage = [
    {   subscription: "Free",
        subscriprionMessage: "Solo puedes tomar los cursos gratis."},
    {   subscription: "Basic",
        subscriprionMessage: "Puedes tomar casi todos los cursos de Platzi durante un mes."},
    {   subscription: "Expert",
        subscriprionMessage: "Puedes tomar casi todos los cursos de Platzi durante un año."},
    {   subscription: "Expert+",
        subscriprionMessage: "Tú y alguien más pueden tomar TODOS los cursos de Platzi durante un año."},
]

if (subscriptionMessage.some((sub) => sub.subscription  === chossenSubscription)){
    let index = subscriptionMessage.map((sub) => {return sub.subscription}).indexOf(chossenSubscription);
    let message = subscriptionMessage[index].subscriprionMessage;
    console.log(message);
}
else{
    console.log("Opción incorrecta.");
}
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");
}
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");
}

function imprimir (name, lastname, nickname){
var name = prompt(“Nombre”);
var lastname = prompt(“Apellido”);
var nickname = prompt(“nickname”);
console.log("Mi nombre es " + name + " " + lastname + " , pero prefiero que me digas " + nickname + “.”);
};

const program = "Basic"

respuestas = [
    {programa: "Free" , respuesta: "Solo puedes tomar los cursos gratis"},
    {programa: "Basic" , respuesta: "Puedes tomar casi todos los cursos de Platzi durante un mes"},
    {programa: "Expert" , respuesta: "Puedes tomar casi todos los cursos de Platzi durante un año"},
    {programa: "ExpertPlus" , respuesta: "Tú y alguien más pueden tomar TODOS los cursos de Platzi durante un año"}
]

respuestas.forEach(element => {
    if(element.programa == program){
        console.log(element.respuesta)    
    }
});
var planes = ["Free", "Basic", "Expert", "ExpertPlus"];

for(var i = 0; i < planes.length; i++) {
    if(planes[i] === "Basic") 
    console.log("Puedes tomar casi todos los cursos de Platzi durante un mes");
}
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--;
}
var pregunta = prompt("Escriba el resultado de la siguiente suma: 2 + 2");

if(pregunta.value == 4) {
    console.log("Felicitaciones, sabes sumar");
}
else {
    while(pregunta != 4) {
        console.log("Vuelve a intentarlo");
        pregunta = prompt("Escriba el resultado de la siguiente suma: 2 + 2");
    }
    console.log("Felicitaciones, sabes sumar");
}
var array = ["primero", "segundo", "tercero", "cuarto", "quinto"];

function primerElemento(parametro) {
    console.log(parametro[0]);
}

primerElemento(array);
var array = ["primero", "segundo", "tercero", "cuarto", "quinto"];

function todosElementos(parametro) {
    for(var i = 0; i < array.length; i++) {
        console.log(parametro[i]);
    }
}

todosElementos(array);
var persona = {
    estatura: 1.80,
    edad: 35,
    nacionalidad: "peruano"
}

function mostrarElementosObjeto(parametro) {
    console.log(persona.estatura + ", " + persona.edad + ", " + persona.nacionalidad);
}

mostrarElementosObjeto(persona);

Variables y Operaciones

  1. Respuestas
  • Una variable es una representación de un espacio en memoria el cual almacena información.
  • Declarar una variable significa que reservamos un espacio en memoria para su posterior uso. Inicializar una variable es asignarle un valor, es decir , almacenar un dato.
  • Sumar números consiste en la operación aritmética de toda la vida, mientras que concatenar consiste en juntar dos strings para formar uno solo que contenga ambos valores.
  1. Determina el nombre y tipo de dato para almacenar en variables la siguiente informacion:
- let nombre = "nombre" //string 
- let apellido = "apellido" //string 
- let nombreUsuarioPlatzi = "usuario" //string 
- let edad = 22 //int
- let correo = "[email protected]" //string
- let mayorEdad = true //bool
- let dineroAhorrado = 12534 // int
- led deuda = 0 //int
let nombreCompleto = nombre + apellido;
let dineroReal = dineroAhorrado - deuda;

FUNCIONES
1.

  • Una función es una sección de código independiente del resto, el cual contiene una serie de operaciones que el programador define que realizará. La función será llamada sólo cuando se necesite.
  • Sirve cuando tenemos operaciones o procesos repetitivos, con el uso de funciones no será necesario escribir líneas de código innecesarias.
  • Un parámetro es un valor el cual nosotros pasamos a la función, mientras que un argumento es un valor que representa un dato dentro de nuestra función el cual será necesario( o no ) para su ejecución.

Esta clase me sirvió mucho para repasar y terminar de definir bien algunos temas pendientes que tenía. Se te agradece, vale mucho realizar todos los ejercicios. Tal como menciona al principio, no importa de donde sacas la información para responder, y entendí que es porque indirectamente estarás repasando los temas aprendidos. ¡Gracias!

Variables y Operaciones
¿Qué es una variable y para qué sirve?
Una variable es el espacio en memoria donde se guarda cierta informacion, para almacenar informacion que posteriormente usaremos.
¿Cuál es la diferencia entre declarar e inicializar una variable?
Al declarar solo asigno el espacio en memoria, una vez inicializada puedo elegir el tipo de variable y su contenido.
¿Cuál es la diferencia entre sumar números y concatenar strings?
Al sumar numero se usa un operador en su representación matematica y al concatenar string se usa el mismo operador pero este representa adición de caracteres.
¿Cuál operador me permite sumar o concatenar?
El operador “+”.

//String
var nombre = "Paul";
//String
var apellido = "Bravo";
//String
var user = "paulbm9";
//Number
var edad = 25;
//String
var email = "[email protected]";
//Boolean
var mayorDeEdad = true;
//Number
var ahorros = 201.5;
//Number
var deudas = 199.5;


console.log(`Nombre Completo: ${nombre} ${apellido}`);
console.log(`Dinero Real: ${ahorros-deudas} nuevos soles`);

Funciones
¿Qué es una función?
Es una forma en la cual se ejecutan tareas o funcionalidades que defino dentro de la función.
¿Cuándo me sirve usar una función en mi código?
Sirve para evitar escribir código y reutilizarlo de mejor forma, a la vez que provee funcionalidad a l software.
¿Cuál es la diferencia entre parámetros y argumentos de una función?
Parámetros son los nombres con los cuales definimos lo que se pasara en la función para ser utilizada en ella, mientras que un argumento es el dato que se paso y es utilizado en la función.

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

Condicionales
¿Qué es una condicional?
Es una pregunta que valida la direccion del codigo que se ejecutara, pudiendo ser esta simple hasta anidada.
¿Qué tipos de condicionales existen en JavaScript y cuáles son sus diferencias?
Existen el if, if else, if else if, switch y el operador ternario que no se si cuente como condicional pero es lo mismo que un if simple.
Las principales diferencias es la complejidad con la cual quieras tomar las decisiones que ejecuten ciertas partes del codigo, en caso de rangos numericos por ejemplo usario un if else if en vez de un switch.
¿Puedo combinar funciones y condicionales?
Si, puedes poner funciones dentro de tus condicionales o crear funciones que dentro tengan condicionales.

var tipoDeSuscripcion = "Expert";
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 con if

var tipoDeSuscripcion = "Expert";
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");
}

Intento de Bonus

var tiposDeSuscripcion = ["Free","Basic","Expert","ExpertPlus"];
switch (tiposDeSuscripcion[2]) {
   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;
}

Ciclos
¿Qué es un ciclo?
Es repetir ciertas tareas por un determinado o indeterminado numero de veces que piensas que ocurriran.
¿Qué tipos de ciclos existen en JavaScript?
For, for of, while, do while, lei del for in pero nunca lo he usado.
¿Qué es un ciclo infinito y por qué es un problema?
Es cuando el bucle tiene como condicion algo que nunca sera false lo que ocasiona que el bucle siga y siga y siga y siga…
Esto es un problema debido a que consume los recursos del hardware.
¿Puedo mezclar ciclos y condicionales?
Si!

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--;
}
var preg=0
while(preg!=4){
preg=prompt("Cuanto es 2 + 2");
if(preg==4){
    alert("Felicitaciones");
}
}

¿Qué es un array?
Es una estructura de datos que puede contener cualquier tipo de dato primitivo o no primitivo.
¿Qué es un objeto?
Buena pregunta, diría que una representación de algo de la realidad en una estructura que pueda ser utilizada luego para operaciones o funcionalidades del software.
¿Cuándo es mejor usar objetos o arrays?
Si tienes entidades que ocupen varios tipos de datos es mejor usar un objeto, mientras que arrays podrían ser para valores de un mismo tipo o también un conglomerado de objetos.
¿Puedo mezclar arrays con objetos o incluso objetos con arrays?
Si!, la de objetos con arrays todavía no lo he visto.

var array = ["Gato","Perro","Dragon"];
function primerElemento(array){
    console.log(array[0]);
}
primerElemento(array); 

function todosLosElementos(array){
    for(var a of array){
        console.log(a);
    }
}
todosLosElementos(array);


var persona= {nombre: "Paul", edad: 25, colorFavorito: "Rojo"}
var animal= {nombre: "Conejo", color: "Rojo"}

function todosLasPropiedades(persona){
    for (var propiedad in persona) {
        console.log(`${propiedad}: ${persona[propiedad]}`);
      }
}
todosLasPropiedades(persona);

PD: nunca habia usado for in hasta ahora, gracias Juan.

var nombre = `Gonzalo`
var apellido = `Vasquez`
var fullN = `${nombre} ${apellido}`
var deudas = [

    {asignacion: "colegio", valor: 200},
    {asignacion: "departamento", valor: 1600},
    {asignacion: "mantencion", valor: 400}
    
];
var pagos = deudas.map(function(pago){

   return pago.valor; 
});
var dineroAhorrado = 3600;
var dineroDebido = 0;

for (i=0; i<3; i++){

dineroDebido += pagos[i];
    
};
dineroReal = dineroAhorrado - dineroDebido;
console.log(dineroReal);
console.log(fullN);

FUNCIONES:

  1. Es una tarea que realizarán los valores que introduscamos como parámetros dentro de los paréntesis.
  2. Cuando quiero realizar una tarea con ciertos valores, antes estos valores deben estar guardados en una variable.
  3. Argumentos de una función son los valores que le asignaremos a los parámetros.

funciones 2

var name;
var lastName;
var nickName;

function presentacion (name, lastName, nickName) {
    
    var completeName = `${name} ${lastName}`;
    console.log(`Mi nombre es ${completeName}, pero prefiero que me digas ${nickName}`)

}

presentacion ("Gonzalo", "Vasquez", "gonva");

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 = prompt("¿Cuánto es 2+2?");

if (respuesta == 4)
{
  console.log("Felicitaciones");
}
else {
  var intento2 = confirm("¿Has respondido mal, deseas volver a intentarlo?");
  if (intento2)
  {
    location.reload()
  }
}

3️⃣ DESAFIO BONUS:
Bonus: si ya eres una experta o experto en el lenguaje, te desafío a comentar cómo replicar este comportamiento con arrays y un solo condicional. 😏

Lo hice de una forma más práctica utilizando prompt.

const tipoDeSuscripcion = prompt("¿Qué tipo de suscripción tienes?")

const opciones = {
	"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(opciones[tipoDeSuscripcion])

Ejercicio #3 de Ciclos

let answer;

while (answer !== 4) {
  answer = Number(prompt("Cuánto es 2 + 2 ?"));
  if (answer == 4) {
    alert("Felicidades, respodiste correctamente");
  } else {
    alert("Intenta de nuevo");
  }
}

mis respuesta a la prueba

https://github.com/EmmanuelSanchgDev/cursoJS/blob/main/platzi/re/respuestas.md

¿Qué es una variable y para qué sirve?

  • una variable es un espacio en memoria, y sirve para identificar en que lugar de la memoria se guardan nuestros datos

¿Cuál es la diferencia entre declarar e inicializar una variable?

  • al declararla reservamos un espacio en la memoria, es como avisarle al computador que allí se va guardar “algo”, y inicializarla es asignarle un valor a ese espacio que previamente se había guardado

¿Cuál es la diferencia entre sumar números y concatenar strings?

  • ambos acciones se realizan con el operador +, pero al usarse en tipos numéricos esto lo que hace es añadir el valor de uno al otro dando como resultado un valor mas alto. y al utilizarse con datos del tipo String lo que hace es unir estos valores por lo que un “pedro” + “pica piedra”, nos da como resultado de los 2 valores un solo valor como “pedro pica piedra”

¿Cuál operador me permite sumar o concatenar?

  • el operador de suma +

var _name = “Emmanuel”; typeof String
var last_name = “sanchez”; typeof String
var user = “emmanuelsang”; typeof String
var _age = 25; typeof Number
var _email = “[email protected]”; typeof String
var Adulto = true || false; typeof boolean
var money = 1; typeof Number
var Deudas = 500; typeof Number

var _name = "Emmanuel";
console.log(typeof _name); //string

var last_name = "sanchez";
console.log(typeof last_name);// string

var user = "emmanuelsang";
console.log(typeof user)// string

var _age = 25;
console.log(typeof _age)// number

var _email = "[email protected]";
console.log(typeof _email);// string

var Adulto = _age > 18 || false;
console.log(typeof Adulto);// boolean

var money = 1;
console.log(typeof money)// number

var Deudas = 500; 
console.log(typeof Deudas)// number

var _name = "Emmanuel";
var last_name = "sanchez";
var name_completo = _name + " " + last_name;
console.log(name_completo);// Emmanuel sanchez
var money = 1;
var Deudas = 500; 
var total_money = money - Deudas;
console.log(`total en la cuenta: $${total_money}`);// total en la cuenta: $-499 

Funciones

¿Qué es una función?

  • es una sentencia de código que ejecuta un conjunto o solo una tera que se utilizara en mas de una ocasión en nuestro programa, evitando así tener un código repetido y llamándola cuando se necesite ejecutar.

¿Cuándo me sirve usar una función en mi código?

  • cuando tenemos un código que se repite en mas de una ocasión

¿Cuál es la diferencia entre parámetros y argumentos de una función?

  • un parámetro es una variable local, y es el dato que se espera recibir en sus paréntesis y en el orden especificado al llamar a la función y un argumento es el valor que va a copiar el parámetro
var _name = "Juan David";
var lastname = "Castro Gallego";
var completeName = _name + lastname;
var nickname = "juandc";

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

presentacion(completeName,nickname);

Condicionales

¿Qué es una condicional?

  • es una estructura de control Logica, que como su nombre indica condiciona la ejecución de un bloque de código

¿Qué tipos de condicionales existen en JavaScript y cuáles son sus diferencias?

  • if : si pasa esto haz esto

  • else if : o si pasa esto tro, haz esto otro

  • else : si pasa cualquier otra cosa entonces haz esto

if (user >= 18) {
    console.log("Eres adulto");
} else if (user <= 5) {
    console.log("Eres un baby");
} else {
    console.log("aun no Eres mayor de edad");
}

¿Puedo combinar funciones y condicionales?

  • sip (aquí no pidió ejemplo xd)
var 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("Puedes crearte una cuenta para comenzar a disfrutar de los cursos gratis que tiene platzi para ti");
}
var 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");
}

Acepto el Reto

var planes = [
    { plan : "Free", beneficio: "Solo puedes tomar los cursos gratis" },
    { plan : "Basic", beneficio : "Puedes tomar casi todos los cursos de Platzi durante un mes" },
    { plan : "Expert", beneficio : "Puedes tomar casi todos los cursos de Platzi durante un año" },
    { plan : "ExpertPlus", beneficio : "Tú y alguien más pueden tomar TODOS los cursos de Platzi durante un año" }
];
var tipoDeSuscripcion = "Basic";

var existencia = planes.some(function(existe){
    return existe.plan == tipoDeSuscripcion;
});
var credenciales = planes.find(function (subscripcion) {
    return subscripcion.plan === tipoDeSuscripcion;
});

if(existencia === true){
    console.log(credenciales.beneficio);
}

Confieso que si tuve que echar un ojo a los métodos de array, sabia lo que quería pero no recordaba cual de ellos lo hacia. Fue interesante la verdad

ciclos

¿Qué es un ciclo?

  • es un bloque de codigo que se ejecutara en una y otra vez hasta que una condicional se vuelva falsa, deteniendo asi el bucle

¿Qué tipos de condicionales existen en JavaScript y cuáles son sus diferencias?

  • for en su sintaxis se declara la variable a condicionar, la condición de ejecución y un incremento o decremento para la variable a condicionar. para evitar un ciclo infinito.
for (let i = 0; i<10; i++) {
    console.log("hola mundo");
}
  • while: a diferencia del for puede ser condicionado con variables globales. permitiendo al usuario elegir las veces que se debe ejecutar el código
var cantidad = String(prompt("cuantas veces quieres que te salude?"));
cantidad = 10; // paraque ejecute
let i = 0;
while(i <= cantidad){
    console.log("hola mundo");
    i++
}
  • do while : esta condicional funcioa igual que el while pero esta minimo se ejecuta una ves el codigo.

  • for of: este es un ciclo que que se usa para recorrer arrays declarando una variable en Singular que tomara el valor de cada uno de los items del array y se ejecutara hasta que todo el array allá sido recorrido

var list = ["pedro", "juan", "Maria", "emmanuel", "sofia", "Mario"]
for (let user of list) {
    console.log(`Hola ${user}`);
}

¿Qué es un ciclo infinito y por qué es un problema?

  • es cuando un ciclo no cuenta con una condicion que en algun momento se vuelva falsa, y el problema es que esto ara que el programa tomo demacioados recursos del equipo podiendo romper el codigo

¿Puedo mezclar ciclos y condicionales?

  • sip (aquí tampoco pidió ejemplo xd)
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

var respuesta;

function pregunta() {
    respuesta = parseInt(prompt("cuanto es 2 + 2?"));
    if (respuesta === 4) {
        alert("Felicidades, Eres un Crack!");
    } else {
        alert("error, vuelve a intentarlo");
        pregunta();
    }
}

pregunta();

¿Qué es un array?

  • un array es un dato de tipo object, que se asemeja a una lista,ya que puede contener mas de un valor y los valores pueden ser de diferente tipo.

¿Qué es un objeto?

  • es la representacion de llevar un objeto del mundo real a la programacion, y este cuenta con propiedades y valores parra ellas

¿Cuándo es mejor usar objetos o arrays?

  • depende de las necesidades, cada uno tiene sus veneficios

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

  • sip (y de nuevo aqui tampoco pidió ejemplo xd)

2️⃣ Crea una función que pueda recibir cualquier array como parámetro e imprima su primer elemento.

var list = ["pedro", "juan", "luis"];

function primero(a) {
    console.log(a[0]);
}

primero(list);

Crea una función que pueda recibir cualquier array como parámetro e imprima todos sus elementos uno por uno

var list = ["pedro", "juan", "felipa", "benito", "emmanuel", "jesus"];

function saludar(a){

    for(let estudiante of a) {
        console.log(`Bienvenido ${estudiante}`);
    }
}

saludar(list);

Crea una función que pueda recibir cualquier objeto como parámetro e imprima todos sus elementos uno por uno

este lo debo

ya que estoy casi seguro de que no eh visto for in. per en cuanto lo vea volvere aca.