其實(shí)現(xiàn)在有個更簡單的辦法: Object.is(num, -0);
js如何區(qū)分+0與-0常見的場景 javascript中的 0 值判斷有許多坑,比如當(dāng)你判斷一個對象中某個key是否有值,你可能會這樣寫: 但如果這個key所對應(yīng)的值是 0,那么你就被坑了,因?yàn)樵?..
其實(shí)現(xiàn)在有個更簡單的辦法: Object.is(num, -0);
js如何區(qū)分+0與-0常見的場景 javascript中的 0 值判斷有許多坑,比如當(dāng)你判斷一個對象中某個key是否有值,你可能會這樣寫: 但如果這個key所對應(yīng)的值是 0,那么你就被坑了,因?yàn)樵?..
其實(shí)還有一個辦法
```js
function isNegativeZero(num) {
if(num !== 0) return false;
const dataView = new DataView(new ArrayBuffer(8));
dataView.setFloat64(0, num);
return dataView.getUint8(0) === 128;
}
```
js如何區(qū)分+0與-0常見的場景 javascript中的 0 值判斷有許多坑,比如當(dāng)你判斷一個對象中某個key是否有值,你可能會這樣寫: 但如果這個key所對應(yīng)的值是 0,那么你就被坑了,因?yàn)樵?..
用defineProperty判斷-0太tricky了,不建議這么做,還是用Infinity判斷比較好。
js如何區(qū)分+0與-0常見的場景 javascript中的 0 值判斷有許多坑,比如當(dāng)你判斷一個對象中某個key是否有值,你可能會這樣寫: 但如果這個key所對應(yīng)的值是 0,那么你就被坑了,因?yàn)樵?..