Это 19-й день моего участия в Gengwen Challenge, Подробности о мероприятии см.:Обновить вызов
На бумаге в конце концов я чувствую себя мелким, и я абсолютно точно знаю, что это дело должно быть сделано. Даже если это незаметное маленькое знание, нам нужно усвоить его с серьезным отношением, иначе, может быть, мы наступим на яму и навредим друг другу!
прелюдия
Независимо от того, вода в статье или нет, вы должны сделать достаточно предварительных ласк, иначе вы не сможете писать, О (∩_∩) О, ха-ха~
После публикации статьи «Простая реализация кода Anti-Shake во Front-End JavaScript» друг сделал такой комментарий:
Когда я пишу код, у меня есть привычка присваивать null тем переменным, которые были уничтожены, например:
Я слышал, что разрушение более тщательное o( ̄▽ ̄)d.
Что касается вышеприведенного предложения друга, я не уверен, что оно правильное.Похоже, редко можно увидеть операцию присвоения значения null после cleatTimeout.
По вопросам, которые не могут быть определены, я твердо верю только в один принцип - практика - единственный критерий проверки истины, а раз есть путаница, то лучше ее проверить. Да, я такой прямолинейный, не удивляйтесь! ︿( ̄︶ ̄)︿
Авария
Я думал, что это была очень простая проверка, просто посыпать водой! Однако тот, кто думал, что случайность произошла, если вы не верите мне, см.:
Что?!Возвращаемое значение setTimeout является числом! ! Позвольте спросить вас: удивительно это или нет?
Ведь я уже несколько лет разрабатываю, а об этом не знаю, настолько оно слабое! Но, сказав это, кто обычно печатает его возвращаемое значение, когда они бездействуют?Мы используем его, чтобы увидеть, хороша ли его функция или нет.
Почему такой результат? Давайте посмотрим, что говорит MDN:
возвращаемое значение
timeoutID
- положительное целое число, представляющее номер таймера. Это значение можно передатьclearTimeout()
чтобы отменить таймер.
Похоже, что это проблема здравого смысла. Просто я обычно не обращаю внимания. Мне кажется, что мне обычно нужно укреплять запас базовых знаний!
Что касается того, почему значение таймера продолжает увеличиваться, MDN объясняет это так:
на одном и том же объекте (окне или работнике),
setTimeout()
илиsetInterval()
Один и тот же номер таймера не будет повторно использоваться в последующих вызовах. Но разные объекты используют разные пулы номеров.
Суть каждого запуска таймера в том, чтобы генерировать новый задержку, которая принадлежит разным объектам, поэтому номер изменился.
Я хотел еще раз взглянуть на setInterval, но, увидев это объяснение, отказался от идеи проверки, что должно быть еще одним «сюрпризом».
проверять
После предыдущей аварии дайте мне знать мое невежество. Но несчастные случаи также являются лучшими шпорами. Даже если мне стыдно, проверка, упомянутая в начале, все еще должна идти вниз.
Теперь мы знаем правду:Возвращаемое значение setTimeout — это число, представляющее уникальный идентификатор объекта задержки., то каким именно станет его значение после clearTimeout() ? Смотрите на большом экране:
Мы видим, что после вызова метода clearTimeout() для уничтожения задержки значение таймера не очищается.
Суммировать
После вышеуказанной проверки мы можем сделать следующие выводы:
- Возвращаемое значение метода задержки setTimeout() — это число, представляющее уникальный идентификатор таймера;
- Это число хранится в таймере в течение всего времени его жизни, и оно не изменится во время работы таймера;
- Таймеры setInterval и Delayer setTimeout совместно используют пул чисел, и все числа не будут повторяться;
- После вызова методов уничтожения таймера (clearTimeout и clearInterval) номер таймера не будет очищен.
Приведенная выше сводка применима ко всем таймерам (таймерам и задержке).
Ну, мне кажется, разумнее присвоить ноль по своему желанию, ведь он сыграл такую роль ( ̄︶ ̄)↗.
Это хорошая привычка присваивать null по желанию! ( ̄▽ ̄)~*
Это хорошая привычка присваивать null по желанию! ( ̄▽ ̄)~*
Это хорошая привычка присваивать null по желанию! ( ̄▽ ̄)~*
На самом деле, сегодняшняя проверка также подтверждает другую истину: то, что мы обычно больше всего игнорируем, часто является тем, с чем, как мы думаем, мы лучше всего знакомы, причиняя вред другой стороне, даже не подозревая об этом!
Пробуешь, пробуешь внимательно!
~
~
~ Эта статья окончена, спасибо за прочтение!
Получайте интересные знания, встречайте интересных друзей и формируйте интересные души!
Всем привет! Я автор книги «Программирование самадхи».Король-затворник, Моя официальная учетная запись "Программирование самадхи", пожалуйста, обратите внимание, я надеюсь, что вы можете дать мне больше советов!
Подчеркиваются как знания, так и навыки, культивируются внутренние и внешние навыки, должны быть усвоены как теория, так и практика, и обе руки должны быть твердыми!