小记-function的length

175 阅读1分钟

今天在微信群划水,偶然看到一个问题:

function x(a, b, c) {}
console.log(x.length) // 输出结果是多少?

我不知道。= =

不懂就查!

developer.mozilla.org/zh-CN/docs/…

简单的说,length 是函数对象的一个属性值,指该函数有多少个必须要传入的参数,即形参的个数, 形参的数量不包括剩余参数个数,仅包括第一个具有默认值之前的参数个数。

function x(a = 1, b, c) {
}
console.log(x.length) // 0

与之对比的是,  arguments.length 是函数被调用时实际传参的个数。

function x() {
  console.log(argments.length);
}
    console.log(x.length) // 0
    console.log(x('1').length) // 1