JS中的数据类型是一种弱类型,所以在使用的时候如果没有注意到肯能会出现一些细节的问题。
案例分析:
if(car && type){
console.log("hello world");
}
我在开发的时候需要判断一个值是否为0,比如if(car && type),其中Car为对象,而type为number类型,只有有两个值1或者0,此时当type为0是怎么判断都无法进入需要执行的条件。
捯饬了好久才发现是因为有一些特殊的值在if判断中他有着特殊的含义。
- ull和undefined都为false
- 0 为false
- “”为false
- 同时在true和false在和负数比较的时候,会相应的把true转换为1,false转化为0
- == 是比较的内容,而===还要比较数据的类型,比如0==false会是true,而0===false则会使false,因为一个是number类型,一个是boolean类型