北京麦维PHP开发网--始于2005年

联系我们 关于我们 成功案例 服务项目

资讯分类
一道有意思的javascript题 2010-05-06
<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>
结果应该是:false,false,true
为什么呢?因为在运算符“==” 布尔值会先转化成数字来做比较  true的转化成数字 也就为:1 这样就不难得出结果了
再看看这个例子 就更清晰了
<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>
结果为:false,true,true 
再看这个
<SCRIPT LANGUAGE="JavaScript">
var a = "undefined";
var b = "false";
var c = "";
function assert (aVar) {
if (aVar==true)     alert(true);
else     alert(false);
}
assert(a);
assert(b);
assert(c);
</SCRIPT>
按照刚才的 true会转成成1  则 这三个 都为:false,false,false
<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>
这个结果为:true,true,false
<SCRIPT LANGUAGE="JavaScript">
var a = "1";
var b = "001";
var c = "";
function assert (aVar) {
if (aVar==true)     alert(true);
else     alert(false);
}
assert(a);
assert(b);
assert(c);
</SCRIPT>
结果为:true,true,false  字符串转化成数字的时候 ‘001’ 转化为 1

 

下一篇:Centos5.5正式版发布 上一篇:全世界最短的ie判断语句

点击回到顶部