Definir um valor de parâmetro padrão para uma função JavaScript
Eu gostaria que uma função JavaScript tivesse argumentos opcionais que eu definiria como padrão, que são usados se o valor for't definido (e ignorado se o valor for passado). Em Ruby você pode fazê-lo assim:
def read_file(file, delete_after = false)
# code
end
Isto funciona em JavaScript?
function read_file(file, delete_after = false) {
// Code
}
2271
3
A partir de ES6/ES2015, os parâmetros padrão estão na especificação do idioma.
apenas funciona.
Referência: Parâmetros Padrão - MDN
Você também pode simular parâmetros padrão nome via desestruturação:
**Pre ES2015***,
Há muitas maneiras, mas este é o meu método preferido - permite que você passe o que quiser, incluindo falso ou nulo. (
typeof null == "object"
)Isto atribui a
delete_after
o valor dedelete_after
se não for um valor falsey senão atribui a string"meu padrão aqui"
. Para mais detalhes, confira Doug Crockford's survey of the language e veja a seção sobre Operadores.Esta abordagem não funciona se você quiser passar em um valor falso, ou seja,
falso
,nulo
,finito
,0
ou""
. Se você precisar que valores falsey sejam passados em você precisaria usar o método em resposta de Tom Ritter.Quando se lida com uma série de parâmetros para uma função, muitas vezes é útil permitir que o consumidor passe os argumentos dos parâmetros em um objeto e depois merge esses valores com um objeto que contenha os valores padrão para a função
para usar
Eu acho algo simples como isto muito mais conciso e legível pessoalmente.