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