Que tal Eleonora, te ayudaré en resolver tus dudas:
Todos los ejemplos se ejecutaron correctamente en la consola, a pesar de que posteriormente me percaté que al lado del nombre de la variable no había puesto let. ¿Alguien sabe por qué se ejecutó y no me salió error?
R= Esto pasa porque nuestra variable se convierte en una variable global (El motor de JavaScript automáticamente la crea como una propiedad global del objeto window (en navegadores) o del objeto global correspondiente). Además de que no usamos el modo estricto de JavaScript, este modo revisa que la sintaxis del lenguaje se cumpla estrictamente, valga la redundancia.
Recuerda siempre definir tus variables con alguna de las formas, ya sea Let, Const o Var, ya que son buenas prácticas.
He visto en las respuestas del profesor, que en el primer ejercicio en la condicional utilizó === en vez de ==. Yo usé == y me ejecutó correctamente el código, quisiera saber la diferencia entre ambos tipos de operadores lógicos.
R= == es el operador de igualdad débil: compara valores después de intentar convertirlos al mismo tipo (coerción de tipo).
=== es el operador de igualdad estricta: compara valores sin realizar coerción de tipo.
console.log(5 == '5'); // true -> Porque convierte '5' (string) a 5 (number)
console.log(5 === '5'); // false -> Porque los tipos son diferentes (number vs string)
En pocas palabras, un solo = , es para asignar un valor, dos ==, sirven para comparar solo el valor de dos variables, tres ===, sirven para comparar tanto el valor de dos variables y el tipo de las mismas.
Como duda adicional, ¿hay alguna forma en que una comparación pueda ignorar las tildes y las mayúsculas? para que (sabado == Sábado) devuelva True.
R= Esto ya es más avanzado, ya que para resolver tu problema tendríamos que hacer uso de algunas funciones o librerías para convertir las letras mayúsculas de una cadena a minúsculas o viceversa, además, de ignorar las tildes, pero eso lo verás después.
Saludos.