【问题标题】:JavaScript: greater or equal than positive zero?JavaScript:大于或等于正零?
【发布时间】:2014-12-28 18:51:44
【问题描述】:

简单问题:我如何测试一个值是否大于或等于正零 (+0)?或者我如何测试它是否大于负零 (-0)?

val >= 0val >= +0val > -0 不要这样做。

(我需要它来处理moments.js diff() 输出。)

谢谢!

【问题讨论】:

  • 没有正负零,只有零!
  • @adeneo:这并不意味着no 符号为零。有:-1/Infinity
  • 来自You Don't Know JavaScript的这部分可能会有所帮助
  • @JLRishe 这似乎是 Moment 所做的事情,但据我所知,它没有记录在案。如果您有两个不相等的 Moment 对象,并且您根据它们 相等的粒度进行比较,则会得到+0/-0 行为。我不会在我自己的代码中依赖它。

标签: javascript comparison zero negative-number


【解决方案1】:

如何测试一个数字是否大于或等于正零 (+0)?

检查其倒数是否为正:

1 / value > 0

+0 的倒数是正数Infinity-0 的倒数是负的Infinity

更新:diff 可以返回 +0-0 的事实似乎没有记录,所以我会犹豫是否依赖这种行为。考虑改用isAfterisBefore

var d = '2014-12-28';
console.log(moment(d).isAfter(moment()));          // Is the date tomorrow or later?
console.log(!moment(d).isBefore(moment(), 'day')); // Is the date today or later?

【讨论】:

    猜你喜欢
    • 2017-07-20
    • 2016-07-02
    • 2011-07-16
    • 2018-05-24
    • 2011-01-25
    • 2011-12-19
    • 2016-04-06
    • 2013-09-02
    • 2012-12-29
    相关资源
    最近更新 更多