其實(shí)現(xiàn)在有個(gè)更簡(jiǎn)單的辦法: Object.is(num, -0);
js如何區(qū)分+0與-0常見(jiàn)的場(chǎng)景 javascript中的 0 值判斷有許多坑,比如當(dāng)你判斷一個(gè)對(duì)象中某個(gè)key是否有值,你可能會(huì)這樣寫(xiě): 但如果這個(gè)key所對(duì)應(yīng)的值是 0,那么你就被坑了,因?yàn)樵?..
其實(shí)現(xiàn)在有個(gè)更簡(jiǎn)單的辦法: Object.is(num, -0);
js如何區(qū)分+0與-0常見(jiàn)的場(chǎng)景 javascript中的 0 值判斷有許多坑,比如當(dāng)你判斷一個(gè)對(duì)象中某個(gè)key是否有值,你可能會(huì)這樣寫(xiě): 但如果這個(gè)key所對(duì)應(yīng)的值是 0,那么你就被坑了,因?yàn)樵?..
其實(shí)還有一個(gè)辦法
```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常見(jiàn)的場(chǎng)景 javascript中的 0 值判斷有許多坑,比如當(dāng)你判斷一個(gè)對(duì)象中某個(gè)key是否有值,你可能會(huì)這樣寫(xiě): 但如果這個(gè)key所對(duì)應(yīng)的值是 0,那么你就被坑了,因?yàn)樵?..
用defineProperty判斷-0太tricky了,不建議這么做,還是用Infinity判斷比較好。
js如何區(qū)分+0與-0常見(jiàn)的場(chǎng)景 javascript中的 0 值判斷有許多坑,比如當(dāng)你判斷一個(gè)對(duì)象中某個(gè)key是否有值,你可能會(huì)這樣寫(xiě): 但如果這個(gè)key所對(duì)應(yīng)的值是 0,那么你就被坑了,因?yàn)樵?..