js function.length 函数的长度

length 属性

JavaScript length 属性可设置或返回数组中元素的数目, 就算是新手程序员也知道这事

一般只是用于获取数组, 字符串长度

"字符串".length
["数", "组"].length

或清空数组

var a = ["数", "组"]
a.length = 0
a // []

此外没什么地方能用到 length 属性


function.length

作为一个老码农, 我一直是这么认为的
可今天发现, length 属性还有一个很少用的功能
返回函数的长度

什么是"函数的长度"?
其实就是函数形参的个数

形参的个数指该函数有多少个必须要传入的参数
…args 不算;
a = 1 不算;
a = 1 打后的不算;
此外的, 函数中声明的参数个数就是 length 返回的值了

function fun1(a) {
    
     }
function fun2(a, b) {
    
     }
function fun3(a, b, c) {
    
     }
function fun4(a, b, c, d) {
    
     }
function fun5(...args) {
    
     }
function fun6(a = 1, b, c, d) {
    
     }

console.log(fun1.length) // 1
console.log(fun2.length) // 2
console.log(fun3.length) // 3
console.log(fun4.length) // 4
console.log(fun5.length) // 0
console.log(fun6.length) // 0

这个知识点其实并不复杂, 但是今天才知道 length 还有这样的功能, 实在是啪啪打脸

如果读者早就知道这么个用法的话, 请勿留言打脸, 脸疼


拓展

Function 构造器的属性
Function 构造器本身也是个Function。他的 length 属性值为 1 。该属性 Writable: false, Enumerable: false, Configurable: true.

Function.prototype 对象的属性
Function.prototype 对象的 length 属性值为 0 。

参考材料:Function.length - JavaScript | MDN

//end

猜你喜欢

转载自blog.csdn.net/u013970232/article/details/115012186