71 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			71 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| 
								 | 
							
								---
							 | 
						||
| 
								 | 
							
								title: Set Default Parameters for Your Functions
							 | 
						||
| 
								 | 
							
								---
							 | 
						||
| 
								 | 
							
								## Set Default Parameters for Your Functions
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								:triangular_flag_on_post: Remember to use Read-Search-Ask if you get stuck. Try to pair program  :busts_in_silhouette: and write your own code :pencil: 
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								### :checkered_flag: Problem Explanation:
							 | 
						||
| 
								 | 
							
								```javascript
							 | 
						||
| 
								 | 
							
								const increment = (function() {
							 | 
						||
| 
								 | 
							
								  "use strict";
							 | 
						||
| 
								 | 
							
								  return function increment(number, value) {
							 | 
						||
| 
								 | 
							
								    return number + value;
							 | 
						||
| 
								 | 
							
								  };
							 | 
						||
| 
								 | 
							
								})();
							 | 
						||
| 
								 | 
							
								console.log(increment(5, 2)); // returns 7
							 | 
						||
| 
								 | 
							
								console.log(increment(5)); // returns NaN
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								We'll be modifying the increment function so that the **number** parameter is incremented by 1 by default, by setting **value** to 1 if a value for **value** is not passed to the increment function.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								### :speech_balloon: Hint: 1
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Let's identify where the parameter **value** is in JS function
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								try to solve the problem now
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								### :speech_balloon: Hint: 2
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Set **value** equal to something so that it is that value by default
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								try to solve the problem now
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								### Spoiler Alert!
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Solution ahead!
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## :beginner: Basic Code Solution:
							 | 
						||
| 
								 | 
							
								```javascript
							 | 
						||
| 
								 | 
							
								const increment = (function() {
							 | 
						||
| 
								 | 
							
								  "use strict";
							 | 
						||
| 
								 | 
							
								  return function increment(number, value = 1) {
							 | 
						||
| 
								 | 
							
								    return number + value;
							 | 
						||
| 
								 | 
							
								  };
							 | 
						||
| 
								 | 
							
								})();
							 | 
						||
| 
								 | 
							
								console.log(increment(5, 2)); // returns 7
							 | 
						||
| 
								 | 
							
								console.log(increment(5)); // returns NaN
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								:rocket: [Run Code](https://repl.it/@RyanPisuena/PleasingFumblingThings)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## Code Explanation
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								* This section is pretty straightforward. Pass this section by setting the **value** parameter equal to 1. When the function comes across test cases where **value** has not been passed anything, then **value** will be assigned one by default. 
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Relevant Links: 
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								[Javascript default parameters](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Default_parameters)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# :clipboard: NOTES FOR CONTRIBUTIONS:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								* :warning: DO NOT add solutions that are similar to any existing solutions. If you think it is similar but better, then try to merge (or replace) the existing similar solution.
							 | 
						||
| 
								 | 
							
								* Add an explanation of your solution.
							 | 
						||
| 
								 | 
							
								* Categorize the solution in one of the following categories — Basic, Intermediate and Advanced.  :traffic_light:
							 | 
						||
| 
								 | 
							
								* Please add your username only if you have added any relevant main contents. (  :warning: DO NOT remove any existing usernames)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								See  :point_right: [Wiki Challenge Solution Template](https://forum.freecodecamp.org/t/freecodecamp-algorithm-challenge-template-guide/14272) for reference.
							 | 
						||
| 
								 | 
							
								<!-- The article goes here, in GitHub-flavored Markdown. Feel free to add YouTube videos, images, and CodePen/JSBin embeds  -->
							 |