LanX!: JS Typprobleme

Beitrag lesen

meine JS Kenntnisse sind ein bisschen eingerostet, aber folgendes Typingproblem stell mich vor ein Rätsel

<html>  
 <body>  
  <script>  
    //    for (  A in [false,true] ) {  
    for (  A in [0,1] ) {  
	for ( B in [0,1]) {  
	    document.writeln("isNaN(A) "+isNaN(A));  
	    document.writeln("isNaN(B) "+isNaN(B));  
  
	    /*  
	    A=Number(A);  
	    B=Number(B);  
	    */  
  
	    document.writeln("<br>"+A+"&&"+B+" -> "+ (A && B )+"<br>");  
  
	}  
    }  
document.writeln("<hr> ");  
  
for (  A=0;A<=1;A++ ) {  
    for (  B=0;B<=1;B++ ) {  
	    document.writeln("<br>"+A+"&&"+B+" -> "+ (A && B )+"<br>");  
  
	}  
    }  
  
  </script>  
 </body>  
</html>  

ergibt sowohl in FF als auch in Opera

isNaN(A) false isNaN(B) false
0&&0 -> 0
isNaN(A) false isNaN(B) false
0&&1 -> 1                                <--- HÄ ???
isNaN(A) false isNaN(B) false
1&&0 -> 0
isNaN(A) false isNaN(B) false
1&&1 -> 1

-----------------

0&&0 -> 0

0&&1 -> 0

1&&0 -> 0

1&&1 -> 1

man beachte dass der auskommentierte Code zum expliziten nummifizieren das Problem behebt....ob A und B aus [true,false} oder [0,1] ändert nix.

OK ich hatte die Vermutung das A und B irgendwie Objektreferenzen sind, die komisch numifiziert werden... aber wieso liefert isNaN dann immer false???

Bitte öffnet mir die Augen ...

Gruß
 Rolf