一般理解,-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
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
控制台输出如下:
-1 is true{} is true
- 1
- 2
所以,以后进行条件判断的时候,如果返回值是数字的话,比较好的处理方式是直接进行数值比较;
如果返回值是对象的,判断是否是空对象,需要调用其他方式来判断是否为空对象,具体方式可参考我的另一篇博客:
http://blog.csdn.net/u014291497/article/details/52165098
再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow