今天在微信群划水,偶然看到一个问题:
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