Autor Tema: Javascript operadores lógicos y comparar variables que contienen NaN CU01117E  (Leído 2958 veces)

JurreNawijn

  • Sin experiencia
  • *
  • Mensajes: 32
    • Ver Perfil
Dejo la respuesta al ejercicio CU01117E.

Primer código:

Código: [Seleccionar]
<DOCTYPE html>
<html>
<head>
<title>Curso JavaScript aprenderaprogramar.com</title> <meta charset="utf-8">
<script type="text/javascript">
function mostrarMensaje1() {
    var A = 5, B = 3, C = -12;
   
    alert("Valor de A > B: " + (A>3));
    alert("Valor de A>C: " + (A>C));
    alert("Valor de A < C: " + (A<C));
    alert("Valor de B < C: " + (B<C));
    alert("Valor de B!=C: " + (B!=C));
    alert("Valor de A == 3: " + (A==3));
    alert("Valor de A*B == 15: " + (A*B==15));
    alert("Valor de A*B==-30: "+(A*B==-30));
    alert("Valor de C / B < A: " + (C/B<A));
    alert("Valor de C/B == -10: " + (C/B==-10));
    alert("Valor de C/B==-4: "+(C/B==-4));
    alert("Valor de A + B + C == 5: "+(A+B+C==5));
    alert("Valor de (A+B == 8) && (A-B == 2): " + (A+B==8&&A-B==2));
    alert("Valor de (A+B==8) || (A-B==6): " + (A+B==8 || A-B==6));
    alert("Valor de A>3&&B>3&&C<3: " +(A>3&&B>3&&C<3));
    alert("Valor de A > 3 && B >= 3 && C < -3: " + (A>3&&B>=3&&C<-3));
}
</script>
</head>
<body>
<div>
<p>Aquí un párrafo de texto situado antes de la imagen, dentro de un div contenedor</p>
<img onclick="mostrarMensaje1()" src="http://i.imgur.com/afC0L.jpg" alt="Notepad++" title="Notepad++, un útil editor de texto">
<p onclick ="alert("Alerta JavaScript")" style="background-color:yellow;">Aquí otro párrafo de texto. JavaScript es un lenguaje utilizado para dotar de efectos dinámicos a las páginas web.
</p>
</div>
</body>
</html>

Segundo código:

Código: [Seleccionar]
<html>
<head>
<title>Curso JavaScript aprenderaprogramar.com</title> <meta charset="utf-8">
<script type="text/javascript">
function mostrarMensaje1() {
    var a = "pepe", b = "elefante";
    alert("Forzamos a que de un valor NaN: " + (a*b));
    alert("Comparación a == b: " + (a==b));
    alert("Comparación a === b: " + (a===b));
    alert("Comparación a !== a: " + (a!==a));
}
</script>
</head>
<body>
<div>
<p>Aquí un párrafo de texto situado antes de la imagen, dentro de un div contenedor</p>
<img onclick="mostrarMensaje1()" src="http://i.imgur.com/afC0L.jpg" alt="Notepad++" title="Notepad++, un útil editor de texto">
<p onclick ="alert('Alerta JavaScript')" style="background-color:yellow;">Aquí otro párrafo de texto. JavaScript es un lenguaje utilizado para dotar de efectos dinámicos a las páginas web.
</p>
</div>
</body>
</html>
« Última modificación: 02 de Febrero 2016, 14:09 por Ogramar »
¿Por qué programo? Me gusta programar porqué me hace sentir que tengo el control de la situación. Así me siento cuando programo. JurreNawijn

Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2660
    • Ver Perfil
Buenas

El primer ejercicio lo veo bien, supongo que primero has sacado por tu cuenta los resultados y que después has comprobado que te  coincidan con el código. No entiendo muy bien por qué en unos casos usas números como A > 3 en lugar de A > B mientras que en otros usas letras.

El segundo ejercicio no está bien resuelto. El ejercicio pedía que las variables ambas contengan valor NaN. Para eso tendrás que hacer una asignación a las variables.

Tal y como lo tienes las variables no contienen NaN, por ejemplo si al final de la función pones

   alert("a vale "+ a );
   alert("b vale "+b)

comprobarás que a contiene pepe y b contiene elefante, cuando según el ejercicio ambas deberían contener NaN.

El objetivo del ejercicio es ver qué ocurre cuando se intentan comparar dos variables que contienen NaN.

Salu2

JurreNawijn

  • Sin experiencia
  • *
  • Mensajes: 32
    • Ver Perfil
Ya arregle el código.

¿Y alguien me podría explicar por qué en la comparación a!==a sale como valor true en vez de false?

Código: [Seleccionar]
<DOCTYPE html>
<html>
<head>
<title>Curso JavaScript aprenderaprogramar.com</title> <meta charset="utf-8">
<script type="text/javascript">
function mostrarMensaje1() {
    var a = 3/'palabra', b = 2/'palabra';
   
    alert("Comparación a == b: " + (a==b));
    alert("Comparación a === b: " + (a===b));
    alert("Comparación a !== a: " + (a!==a));
    alert("Valor de A: " + a);
    alert("Valor de B: " + b);
}
</script>
</head>
<body>
<div>
<p>Aquí un párrafo de texto situado antes de la imagen, dentro de un div contenedor</p>
<img onclick="mostrarMensaje1()" src="http://i.imgur.com/afC0L.jpg" alt="Notepad++" title="Notepad++, un útil editor de texto">
<p onclick ="alert('Alerta JavaScript')" style="background-color:yellow;">Aquí otro párrafo de texto. JavaScript es un lenguaje utilizado para dotar de efectos dinámicos a las páginas web.
</p>
</div>
</body>
</html>
¿Por qué programo? Me gusta programar porqué me hace sentir que tengo el control de la situación. Así me siento cuando programo. JurreNawijn

Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2660
    • Ver Perfil
Buenas ahora el ejercicio sí está bien resuelto

¿Por qué la comparación con NaN no sale como esperamos?

Supuestamente si a=3 y b=3 al pedir hacer a==b obtendríamos true, al hacer a===b obtendríamos true y al hacer a!==b obtendríamos false.

Al hacerlo con a=NaN y b=NaN a==b devuelve false, a===b devuelve false y a!==b devuelve true

El ejercicio lo que pide precisamente es investigar por qué se produce esto.

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