一般理解,-1、{ }对应的布尔值应该是false,但是在js中,对上述两个变量进行if运算,返回值均为true。
<script type="text/javascript">
//当然,如果是if(0)则输出false
if(-1){
console.log("-1 is true");
}else{
console.log("-1 is false");
}
if({}){
console.log("{} is true");
}else{
console.log("{} is false")
}
</script>
控制台输出如下:
-1 is true
{} is true
所以,以后进行条件判断的时候,如果返回值是数字的话,比较好的处理方式是直接进行数值比较;
如果返回值是对象的,判断是否是空对象,需要调用其他方式来判断是否为空对象,具体方式可参考我的另一篇博客:
http://blog.csdn.net/u014291497/article/details/52165098