JavaScript

Como colocar argumentos default em uma função em JavaScript

31 de julho de 2020

Como colocar argumentos default em uma função em JavaScript

Neste artigo você vai aprender como colocar argumentos default em uma função em JavaScript, ou seja, inserir o valor para um argumento de uma função

funções com argumento default em javascript capa

Fala programador(a), beleza? Bora aprender mais sobre as funções em JavaScript e os argumentos.

Atualmente em JavaScript não é possível inserir valor default em argumentos nas funções, não na declaração dela

Mas há alternativas para inserir e verificar os argumentos de uma outra forma

Toda função em JavaScript recebe uma variável especial chamada arguments e podemos consultar os argumentos por ela

Veja uma hipótese:

function teste(x) {

    if(arguments[0] === undefined) {
  	x = 10;
  }
  
  console.log(x);

}

teste();
teste(5);

Aqui teremos as saídas 10 e 5, respectivamente, isso por que checamos o arguments e modificamos o seu valor caso viesse como undefined

Então conseguimos desta maneira alterar o argumento das funções e adicionar um valor default

Com o ES6

Na versão de JavaScript ES6 já é possível adicionar o argumento com valor default na própria definição da função

Veja um exemplo:

function teste(x = 10) {
  
  console.log(x);

}

teste();
teste(5);

Desta maneira temos a mesma saída que o exemplo anterior, porém com muito menos código

Cuidado ao utilizar os recursos do ES6 pois não são padronizados em todos os navegadores, podendo resultar em erros no seu software

Conclusão

Neste artigo vimos como adicionar argumentos default em uma função em JavaScript

Para a versão atual do JavaScript é necessário acessar a variável especial arguments e verificar se o argumento veio com a chamada da função

Já no ES6 o recurso é nativo e pode ser escrito já na definição de uma função

Confira também nosso catálogo de cursos gratuitos, com aulas semanais no YouTube

Subscribe
Notify of
guest
0 Comentários
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x