๐ค Have you ever thought about how console.log
works and how it can handle many arguments at once?
If youโve worked with JavaScript, then you must have used the console.log method.
It's a function that can accept any number of arguments and print them in the console.
console.log(n1, n2, n3, n4.....n)
๐ฎ But have you wondered how it handles these variable number of arguments?
Well, such functions are also known as variadic functions and you can create them in JavaScript using the rest operator(...).
Let's consider an example of a function written to calculate the sum of n numbers.
First, you create a function using the rest operator to collect all arguments into an array.
This allows an unlimited number of arguments to the function.
(To be honest, there's always some limit, try finding out and comment below as a sign you read the article!)
let sum = (...args) => {
console.log(args)
}
sum(1, 2, 3, 4, 5, 6);
sum(0);
sum(10, 20, 30);
When the function is called, observe this keyword args
captures the arguments as an array.
Once you have this array of values you can continue writing the code to print the sum.
let calculateSum = (...numbers) => {
console.log(numbers.reduce((total, num) => total + num))
}
calculateSum(1, 2, 3, 4, 5, 6);
calculateSum(0);
calculateSum(10, 20, 30);
Comment below the theories you thought were behind this functionality! (Believe it or not! I thought it was some kind of miracle ๐)
I hope you liked the article! โค๏ธ
Connect with me: linktree
Happy Coding! ๐
Thanks for 14415! ๐ค
Top comments (11)
Not to mention that
arguments
is a reserved word to get all the arguments passed to a function as an iterable object (including arguments already named) without having to use the spread operator in the function's parameters list:Result:
(Notice how
arguments
contains extra arguments than explicitly specified with the nameda
,b
andc
parameters.)This is amazing! Thanks for the info, James. ๐
Great article! Browsers and even the simplest things in JS really are amazing. (For that matter, that we can turn sand into silicon and silicon into computers).
Keep up the good writing!
Thank you so much for your kind words!
I liked that reference to sand, silicon and computers, it greatly covers the fascinating hardware part.
No problem! You deserved some kindness for such awesome content!
Keep up the good work, and happy coding!
Didn't knew that :D
Thanks for the quick explanation.
It's my pleasure!
Thanks for reading the article.
(i'd be grateful if you shared this with your friends)
Arrays in JS have a maximum number of 2ยณยฒ-2 elements regardless if they are constructed via rest operator or otherwise.
Thanks for sharing knowledge, buddy!
Thanks for sharing your expertise on this matter. Your depth of knowledge shines through in every paragraph.
Thanks, Alex!
Well, every master was once a beginner!