Wednesday, 13 July 2016

Is there a better way to do optional function parameters in JavaScript?




I've always handled optional parameters in JavaScript like this:



function myFunc(requiredArg, optionalArg){
optionalArg = optionalArg || 'defaultValue';


// Do stuff
}


Is there a better way to do it?



Are there any cases where using || like that is going to fail?


Answer



Your logic fails if optionalArg is passed, but evaluates as false - try this as an alternative




if (typeof optionalArg === 'undefined') { optionalArg = 'default'; }


Or an alternative idiom:



optionalArg = (typeof optionalArg === 'undefined') ? 'default' : optionalArg;


Use whichever idiom communicates the intent best to you!



No comments:

Post a Comment

c++ - Does curly brackets matter for empty constructor?

Those brackets declare an empty, inline constructor. In that case, with them, the constructor does exist, it merely does nothing more than t...