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).
|
||
|
|