Qualcuno può spiegare perché questa linea è usata nella biblioteca di lodash.implementazione di lodash del valore restituito === 0? valore: 0
if (!value) {
return value === 0 ? value : 0;
}
e perché non basta restituire 0;
Qualcuno può spiegare perché questa linea è usata nella biblioteca di lodash.implementazione di lodash del valore restituito === 0? valore: 0
if (!value) {
return value === 0 ? value : 0;
}
e perché non basta restituire 0;
Esistono due diversi valori che sono considerati rigorosamente uguale a zero: +0
e -0
:
+0 === +0;
+0 === -0;
-0 === +0;
-0 === -0;
Tuttavia, questi valori non si comportano completamente identico:
1/+0 === +Infinity
1/-0 === -Infinity
e chiaramente +Infinity !== -Infinity
.
Quindi il codice fa questo:
value
è "falsy" (undefined
, null
, false
, +0
, -0
, NaN
, ""
)
value
è +0
o -0
, esso restituisce value
+0
Può indicare dove questa linea è, forse un link GitHub o qualcosa del genere? –
https://github.com/lodash/lodash/blob/master/lodash.js#L11862 – pokemon