предисловие
Всем привет, я Линь Сансин, я вам сегодня расскажу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— это значение атрибута функционального объекта, которое относится к тому, сколько параметров функция должна передать, то есть количество формальных параметров. В число формальных параметров не входит остаток参数个数, включая только第一个具有默认值количество предыдущих параметров
Эпилог
Если вы считаете, что эта статья вам немного поможет, поставьте лайк и поддержите Линь Сансиня, ха-ха.
Если вы хотите изучать интерфейс или рыбачить вместе, вы можете добавить меня, присоединиться к моей группе по изучению рыбы, нажмите здесь. ---> коснуться точки кипения рыбы
Если у вас есть другие цели, не добавляйте меня, я не хочу с вами дружить, я просто хочу освоить фронтенд, я не хочу заниматься некоторыми вещами! ! !