JavaScriptには0
と-0
があります。これはIEEE 754に沿ったものです。
console.log(-0); // -0;
マイナス0の性質
-0 === 0
の結果はtrue
-0 < 0
と-0 > 0
の結果はfalse
-0 + 0
の結果は0
、マイナスが取り除かれますMath.abs(-0)
の結果も0
Math.ceil(-0)
とMath.round(-0)
とMath.floor(-0)
の結果も0
Math.cos(-0)
の結果は1
、Math.cos(0)
と同じですMath.sign(-0)
の結果は-0
、元の木阿弥ですObject.is(-0, 0)
の結果はfalse
、これでマイナスの有無を区別できますが、IE非対応です1 / -0
の結果は-Infinity
、1 / 0
であればInfinity
なので区別できます(-0).toString()
と(-0).toPrecision(1)
と(-0).toFixed(0)
の結果は"0"
String(-0)
と-0+''
とテンプレート文字列の${-0}
の結果は"0"
どうするとマイナス0になるか
以下の式の結果は全て-0
になります。
+(-0)
+'-0'
Number('-0')
-1 / Infinity
-0.0
-0 - 0
0 * -1
-0 % 1
Math.sign(-0)
Math.trunc(-0)
Math.trunc(-0.99)
Math.ceil(-0)
Math.ceil(-0.99)
参考リンク