Autor Tema: JavaScript cómo se interpreta o qué es condicional con interrogante CU01152E  (Leído 2233 veces)

paramonso

  • Intermedio
  • ***
  • Mensajes: 241
  • El ignorante afirma, el sabio duda y reflexiona.
    • Ver Perfil
Hola. Dejo la entrega del ejercicio CU1152E Operadores ternarios js desde cero del curso gratuito de programación JavaScript de aprenderaprogramar.

EJERCICIO

Ejecuta este script y responde a las siguientes preguntas (algunas de ellas
corresponden a cuestiones que hemos visto a lo largo del curso):

a) ¿Qué significa el operador += que se emplea en el código?
   Se asigna a operador operador y lo que sigue detras del igual
   Es lo mismo que operador=operador + "Lo que sigue al signo +"

b) ¿Por qué usamos '['0']' para establecer nodoBody?
   Porque queremos que coja del arbol DOM el primer elemento body
   
c) ¿Qué ocurre si dejamos en blanco la respuesta cuando se pide un color? Razona por qué ocurre esto.
   Nos da un mensaje para decirnos que no hemos introducido un color.
   Ocurre que al evaluar la condición no se cumple porque colorUsuario esta vacio y devuelve falso.
   Al devolver falso se pasa a la siguiente condición.
   ? = si verdadero, : = en caso contrario;
   ? en este caso es falso y se pasa a : en caso contrario


d) ¿Qué ocurre si escribimos pink cuando nos pide el color? Razona por qué ocurre esto.
   El fondo se pone de color rosa y se imprime el texto.
   Ocurre por que nos pide un valor para colorUsuario y aunque en el mensaje de texto hayamos introducido tres colores, se presentará por pantalla el color introducido en la caja de texto (Siempre que ese color exista).
   Si le damos cualquier otro valor diferente a los colores que acepta HTML nos pondrá el fondo con el color por defecto.

   
e) Modifica el código para que usando el operador ternario, si el usuario no introduce como color red, yellow o blue aparezca el mensaje ‘No eligió color o el color es no válido’

Código: [Seleccionar]
<!DOCTYPE html>

<html>
<head>
  <title>Ejemplo aprenderaprogramar.com</title>
  <meta charset="utf-8">
<script type="text/javascript">
function ejemplo()
{
var htmlADevolver = '';
var colorUsuario = prompt('Elija color red, yellow o blue');
htmlADevolver += colorUsuario=='red' || colorUsuario=='yellow' || colorUsuario=='blue' ?
   '<h1 style="background-color:'+colorUsuario+';"> Usted eligió '+colorUsuario+'</h1>' : '<h1>No eligió color</h1>';
var nodoBody = document.getElementsByTagName('body')[0];
nodoBody.innerHTML = nodoBody.innerHTML + htmlADevolver;
}

</script>

</head>

<body><div id="cabecera"><h2>Cursos aprenderaprogramar.com</h2><h3>Ejemplos JavaScript</h3></div>

<div style="color:blue;" id ="pulsador" onclick="ejemplo()"> Probar </div>

</body>

</html>


f) Reescribe el código inicial de partida sustituyendo el condicional ternario por if tradicionales.

Código: [Seleccionar]
<!DOCT<<YPE html>

<html>
<head>
  <title>Ejemplo aprenderaprogramar.com</title>
  <meta charset="utf-8">
<script type="text/javascript">
function ejemplo()
{
var htmlADevolver = '';
var colorUsuario = prompt('Elija color red, yellow o blue');
if(colorUsuario=='red' || colorUsuario=='yellow' || colorUsuario=='blue')
{
htmlADevolver= '<h1 style="background-color:'+colorUsuario+';"> Usted eligió '+colorUsuario+'</h1>'
}
else { 
htmlADevolver= '<h1>No eligió color</h1>';
  }
var nodoBody = document.getElementsByTagName('body')[0];
nodoBody.innerHTML = nodoBody.innerHTML + htmlADevolver;
}

</script>

</head>>>

<body><div id="cabecera"><h2>Cursos aprenderaprogramar.com</h2><h3>Ejemplos JavaScript</h3></div>

<div style="color:blue;" id ="pulsador" onclick="ejemplo()"> Probar </div>

</body>

</html>
« Última modificación: 10 de Junio 2018, 22:07 por Ogramar »

Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2662
    • Ver Perfil
Buenas paramonso, una vez más remitirte a https://aprenderaprogramar.com/foros/index.php?topic=1460.0 donde se indica la forma de poner título a los temas

Ejercicio bien resuelto

En el apartado b) la respuesta sería que getElementsByTagName('body') devuelve un array con todos los nodos cuya etiqueta se llame body. Como solo hay una etiqueta, en un array el primer elementos es el 0 por eso se utiliza [ 0 ].

Salu2

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".