41 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			41 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
|   | --- | ||
|  | title: Function Length | ||
|  | --- | ||
|  | ## Function Length
 | ||
|  | 
 | ||
|  | The `length` property on the function object holds the number of arguments expected by the function when called. | ||
|  | 
 | ||
|  | ```javascript | ||
|  | 
 | ||
|  | function noArgs() { } | ||
|  | 
 | ||
|  | function oneArg(a) { } | ||
|  | 
 | ||
|  | console.log(noArgs.length); // 0 | ||
|  | 
 | ||
|  | console.log(oneArg.length); // 1 | ||
|  | ``` | ||
|  | 
 | ||
|  | ### ES2015 Syntax
 | ||
|  | 
 | ||
|  | ES2015, or ES6 as it is commonly called, introduced the rest operator and default function parameters. Both of these additions change the way the `length` property works. | ||
|  | 
 | ||
|  | If either the rest operator or default parameters are used in a function declaration the `length` property will only include the number of arguments before a rest operator or a default parameter. | ||
|  | 
 | ||
|  | ```javascript | ||
|  | function withRest(...args) { } | ||
|  | 
 | ||
|  | function withArgsAndRest(a, b, ...args) { } | ||
|  | 
 | ||
|  | function withDefaults(a, b = 'I am the default') { } | ||
|  | 
 | ||
|  | console.log(withRest.length); // 0 | ||
|  | 
 | ||
|  | console.log(withArgsAndRest.length); // 2 | ||
|  | 
 | ||
|  | console.log(withDefaults.length); // 1 | ||
|  | ``` | ||
|  | 
 | ||
|  | More Information on `Function.length` can be found on [Mozilla's MDN Docs](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/length). | ||
|  | 
 |