<SCRIPT LANGUAGE="JavaScript">

var a = 0;

var b = -1;

var c = 1;

function assert (aVar) {

if (aVar==true)     alert(true);

else     alert(false);

}

assert(a) ;

assert(b) ;

assert(c) ;

</SCRIPT> 



<SCRIPT LANGUAGE="JavaScript">

 var a = 0;

var b = -1;

var c = 1;

function assert (aVar) {

if (aVar)     alert(true);

else     alert(false);

}

assert(a) ;

assert(b) ;

assert(c) ;

</SCRIPT> 


这里非0数值的布尔值的确都是true,也就是说所有的问题都集中在2==true中的==运算符上。基本可以确定,==一定不是把数字转换为布尔值再进行比较。

 


<SCRIPT LANGUAGE="JavaScript">

var a = "undefined";

var b = "false";

var c = "";

function assert (aVar) {

if (aVar)     alert(true);

else     alert(false);

}

assert(a);

assert(b);

assert(c);

</SCRIPT>