`value >= value` 在 JavaScript 中做什么?

What does `value >= value` do in JavaScript?

下面是 d3.min.
源代码中的条件语句之一 这是为了什么检查?:

value >= value

这里是完整的源代码:

export default function min(values, valueof) {
  let min;
  if (valueof === undefined) {
    for (const value of values) {
      if (value != null
          && (min > value || (min === undefined && value >= value))) {
        min = value;
      }
    }
  } else {
    let index = -1;
    for (let value of values) {
      if ((value = valueof(value, ++index, values)) != null
          && (min > value || (min === undefined && value >= value))) {
        min = value;
      }
    }
  }
  return min;
}

可能是一种针对 NaN(编辑:和未定义)进行检查的特殊形式:

const foo = 0/0; // NaN
let bar;
console.log(foo >= foo);
console.log(bar >= bar);

虽然为什么有人会那样写,而不是使用 isNaN 方法,我不知道。 它比 !isNaN(value) && value !== undefined 短,但我不确定在易读性方面的权衡是否值得。

这是通过编辑 this JSFiddle 创建的 >= 比较 table。
您可以看到 value >= valuetrue 除非 value = undefinedvalue = NaN: