Foros aprenderaprogramar.com

Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: JurreNawijn en 31 de Enero 2016, 23:53

Título: Javascript operadores lógicos y comparar variables que contienen NaN CU01117E
Publicado por: JurreNawijn en 31 de Enero 2016, 23:53
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>
Título: Re:Javascript operadores lógicos y comparar variables que contienen NaN CU01117E
Publicado por: Ogramar en 02 de Febrero 2016, 14:09
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
Título: Re:Javascript operadores lógicos y comparar variables que contienen NaN CU01117E
Publicado por: JurreNawijn en 02 de Febrero 2016, 20:19
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>
Título: Re:Javascript operadores lógicos y comparar variables que contienen NaN CU01117E
Publicado por: Ogramar en 04 de Febrero 2016, 09:51
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