今天在做一个小项目的过程中遇到关于-0
判断问题。
背景:我只需要得到0
的项,却出现了-0
;
在解决问题的过程中,一开始我以为-0
是小于0
的,然而并不是这样。
于是做了一下验证。
console.log(0==-0); //true
console.log(0===-0);//true
console.log(0>-0);//false
console.log(0<-0);//false
Emmmm。这怎么办?
发现在Boolean的判定中,0
和-0
看起来是“完全一样”的。是不是不能区分了呢?
经过查阅,发现是可以的。方法也很简单:
console.log(1/0); // Infinity
console.log(1/-0); //-Infinity
而Infinity是大于0的,而-Infinity是小于0的。所以,可以间接的判断是0,还是-0。