A continuación se muestra una de las declaraciones condicionales del código fuente de d3.min .
¿Para qué es esta comprobación?:
value >= valueAquí está el código fuente completo:
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; }Podría ser una forma peculiar de verificar contra NaN (EDITAR: e indefinido):
const foo = 0/0; // NaN let bar; console.log(foo >= foo); console.log(bar >= bar); Aunque por qué alguien lo escribiría así, en lugar de usar el método Es más corto que, por ejemplo, isNaN , no puedo decirlo.!isNaN(value) && value !== undefined , pero no estoy seguro de que la compensación en legibilidad valga la pena.
Aquí está la tabla de comparación >= creada con la edición de este JSFiddle .
Puede ver que el value >= value es true excepto cuando el value = undefined o el value = NaN :