从一道js笔试题到==运算符的简析

来自于:http://bbs.blueidea.com/thread-2983198-1-1.html

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


原文地址:https://www.cnblogs.com/jikey/p/1729535.html