Impostare un valore di parametro predefinito per una funzione JavaScript
Vorrei che una funzione JavaScript avesse degli argomenti opzionali su cui impostare un default, che vengono usati se il valore non è definito (e ignorati se il valore viene passato). In Ruby si può fare così:
def read_file(file, delete_after = false)
# code
end
Questo funziona in JavaScript?
function read_file(file, delete_after = false) {
// Code
}
2271
3
Da ES6/ES2015, i parametri predefiniti sono nella specifica del linguaggio.
funziona e basta.
Riferimento: Parametri predefiniti - MDN
I parametri predefiniti delle funzioni permettono ai parametri formali di essere inizializzati con valori predefiniti se viene passato nessun valore o undefined.
Potete anche simulare parametri predefiniti nominati tramite destrutturazione:
Pre ES2015,
Ci sono molti modi, ma questo è il mio metodo preferito - ti permette di passare qualsiasi cosa tu voglia, incluso false o null. (
typeof null == "object"
)Questo assegna a
delete_after
il valore didelete_after
se non è un valore falso altrimenti assegna la stringa"my default here"
. Per maggiori dettagli, date un'occhiata a Doug Crockford'indagine sul linguaggio e controllate la sezione sugli operatori.Questo approccio non funziona se vuoi passare un valore falso, cioè
false
,null
,undefined
,0
o""
. Se si richiede di passare valori falsi, è necessario utilizzare il metodo in Tom Ritter'risposta.Quando si ha a che fare con un certo numero di parametri di una funzione, è spesso utile permettere al consumatore di passare gli argomenti dei parametri in un oggetto e poi fondere questi valori con un oggetto che contiene i valori predefiniti per la funzione
da usare
Personalmente trovo che qualcosa di semplice come questo sia molto più conciso e leggibile.