Un progetto open source JavaScript Io lavoro su include il codice:Javascript: perché confrontare con null?
if (color) {
tapeDiv.style.backgroundColor = color;
// set color here if defined by event. Else use css
}
Un collaboratore vuole cambiarlo in
if (color != null) { // this line changed
tapeDiv.style.backgroundColor = color;
// set color here if defined by event. Else use css
}
colore è un var stringa. È necessario utilizzare solo una stringa con più di 0 caratteri per impostare in modo esplicito il colore.
Dato che JS lancia "" e null come booleano falso, perché sarebbe necessario il confronto! = Null?
Mi manca qualcosa pensando che la prima forma sia altrettanto buona (e un po 'più corta) della seconda?
Vedo paragoni con null abbastanza spesso nella sorgente JS. Perché sono necessari quando tutti gli oggetti semplici di JS hanno dei risultati noti quando vengono lanciati come booleani?
Grazie,
Larry
ps. Suppongo che se 0 (un intero) fosse un caso valido, allora se (0) sarebbe falso [un problema] e se (0! = Null) sarebbe vero [consente il caso 0]. Qualche altra ragione?
pps. Dovrebbe aver detto che il tapeDiv è stato appena creato. Quindi non c'è motivo di reimpostare lo stile su "" dal momento che il div è nuovo di zecca.
Per me, preferirei che il codice fosse leggermente più breve e che i lettori capissero la casta e la logica booleana. Forse è solo il programmatore Ruby in me. Può essere tradizionale in js scrivere le cose in modo più dettagliato ... –
Non di solito. Ricorda che la fonte di JS è effettivamente scaricata, quindi la brevità è un vantaggio. E sono d'accordo Larry. È inutile evitare il riconoscimento del modo in cui la tipizzazione e il casting di JS funzionano. – user37078