JavaScript 面试题 #46:JS 函数的长度
JavaScript 函数的字段值是什么length?控制台会输出什么内容?
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
许多 JavaScript 实体都有这个length字段。
例如,它保存 JavaScript 数组中的元素总数。
const arr = ['a', 'b', 'c'];
console.log(arr.length); // 3
对于字符串而言,它指的是字符数。字面意义上,就是字符串的长度。
const welcomeMessage = 'Hello!';
const goodbyeMessage = 'Goodbye!';
const emptyString = '';
console.log(welcomeMessage.length); // 6
console.log(goodbyeMessage.length); // 8
console.log(emptyString.length); // 0
普通对象默认情况下没有该length字段。
const user = { name: 'Jack', age: '32'};
console.log(user.length); // undefined
但函数确实包含这个信息!它存储的不是难以定义的“函数长度”,而是函数参数的数量。
const sum = (a, b) => a + b;
const log = (s) => console.log(s);
const noop = () => {};
console.log(sum.length); // 2
console.log(log.length); // 1
console.log(noop.length); // 0
答案:该length字段保存所有 JavaScript 函数的参数数量。因此,输出结果为:
1
0
因为该函数sayHello有一个参数,而该函数confirmSubscription没有参数。
