Passa um parametro opcional para função

Como posso definir o o segundo paramentro “&& bonus2” como opcional ?

lembrando que o operador tbm é variavel,

Quero que o if rode das maneiras: (bonus1 && bonus2 == true) ou (bonus1 == true)

function offersFixed(bonus1, bonus2, textValue ){ if (bonus1 && bonus2 == true ){

var valide = document.getElementById("valideorNot");
valide.setAttribute("class", "invalidPass")
valide.textContent = "Oferta Inválida";

var textId = document.getElementById("validateResult");
var createText = document.createElement("h3");
createText.textContent = textValue;
textId.appendChild(createText);

}
}

Atualmente (EcmaScript 6 se não me engano) o js aceita dessa forma:

function offersFixed(bonus1, textValue, bonus2=true)...

Perceba que coloquei seu parametro opcional em ultimo lugar, atente-se a isso

Ja nas versões anteiores do JS, costumamos fazer assim:

function offersFixed(bonus1, textValue, textValue, bonus2) {
     bonus2 = (bonus2 !== undefined) ? bonus2 : true;
     ....
}

Se você chamar a função e não passar o ultimo parâmetro, bonus2 vale uma palavra reservada undefined, pesquise mais a respeito…

1 curtida