Monday, June 3, 2024
 Popular · Latest · Hot · Upcoming
146
rated 0 times [  148] [ 2]  / answers: 1 / hits: 101370  / 12 Years ago, tue, june 19, 2012, 12:00:00

I am new to the world of Javascript and am tinkering with writing very basic functions and stumbled upon the example below by accident and am unsure why it works when I am not passing a parameter when the function demands it.



Sample function



function myfunction(x) {
alert(This is a sample alert);
}


Now if I call the function myfunction(); I am presented with the alert. Why is that that I am able to call the function without any errors or warnings when I have not passed a parameter?



EDIT



I did not expect so many great answers and I am by no means in a position yet able to say which answer is the best so am I able to request people to suggest the best answer and I'll award the acceptance to that person.


More From » overloading

 Answers
31

Nothing will happen- meaning you won't get an error or a warning as passing the parameters in javascript is optional.

All the parameters that weren't supplied will have the undefined value.



function foo(x, y, z){
//...
}

foo(1);


Inside the foo function now:



function foo(x, y, z){
x === 1
y === undefined
z === undefined
}


You can even pass more arguments, like:



foo(1,2,3,4,5,7); // Valid!


You can know the amounts of parameters supplied by arguments.length from inside the function.





function foo(x, y, z) {
console.log('x value: ' + x);
console.log('y value: ' + y);
console.log('z value: ' + z);
console.log('Arguments length: ' + arguments.length);
}
console.log('Zero parameters');
foo();
console.log('Four parameters');
foo(1, 2, 3, 4);





Example of useful function that handle any amount of parameters:





function max() {
var maxValue = arguments[0];
for (var i = 1; i < arguments.length; i++) {
if (maxValue < arguments[i]) {
maxValue = arguments[i];
}
}
return maxValue;
}

alert(max(1, 5, 7, 2, 88, 32, 44));




[#84799] Monday, June 18, 2012, 12 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
darleneh

Total Points: 231
Total Questions: 110
Total Answers: 94

Location: Spain
Member since Thu, Dec 23, 2021
3 Years ago
;