Вопрос, на который не могут ответить 95% людей: какова длина функции?

интервью внешний интерфейс JavaScript
Вопрос, на который не могут ответить 95% людей: какова длина функции?

предисловие

Всем привет, я Линь Сансин, я вам сегодня расскажуfunctionизlength, как рассчитывается. Я надеюсь, что каждый сможет извлечь из этого уроки и укрепить фундамент.

Почему

Почему я думаю об этой точке знания? Потому что прошлой ночью в группе одноклассник обсуждал вопрос из интервью.

123['toString'].length + 123 = ?

Честно говоря, я не сразу ответил на этот вопрос. На самом деле я знаю, что интервьюер хочет проверитьNumberна прототипеtoStringметод, но я застрялКакова длина функции toStringпо этой проблеме. Отсюда и сегодняшняя статья

Сколько это стоит?

количество формальных параметров

Давайте посмотрим на следующий пример

function fn1 () {}

function fn2 (name) {}

function fn3 (name, age) {}

console.log(fn1.length) // 0
console.log(fn2.length) // 1
console.log(fn3.length) // 2

Как можно видеть,functionсколько там параметров,lengthэто сколько. Но так ли это на самом деле? продолжай смотреть вниз

параметры по умолчанию

Если есть параметры по умолчанию, функцияlengthСколько это будет?

function fn1 (name) {}

function fn2 (name = '林三心') {}

function fn3 (name, age = 22) {}

function fn4 (name, age = 22, gender) {}

function fn5(name = '林三心', age, gender) { }

console.log(fn1.length) // 1
console.log(fn2.length) // 0
console.log(fn3.length) // 1
console.log(fn4.length) // 1
console.log(fn5.length) // 0

объяснил,functionизlength,это第一个具有默认值之前的参数个数

остальные параметры

В формальных параметрах функции имеется также剩余参数эта вещь, если она剩余参数, как он будет рассчитываться?

function fn1(name, ...args) {}

console.log(fn1.length) // 1

Видно, что остальные параметры не входят вlengthв расчете

Суммировать

Объявить перед подведением итогов123['toString'].length + 123 = ?ответ124

Резюме:length— это значение атрибута функционального объекта, которое относится к тому, сколько параметров функция должна передать, то есть количество формальных параметров. В число формальных параметров не входит остаток参数个数, включая только第一个具有默认值количество предыдущих параметров

Эпилог

Если вы считаете, что эта статья вам немного поможет, поставьте лайк и поддержите Линь Сансиня, ха-ха.

Если вы хотите изучать интерфейс или рыбачить вместе, вы можете добавить меня, присоединиться к моей группе по изучению рыбы, нажмите здесь. ---> коснуться точки кипения рыбы

Если у вас есть другие цели, не добавляйте меня, я не хочу с вами дружить, я просто хочу освоить фронтенд, я не хочу заниматься некоторыми вещами! ! !