Серия из 20 статей о JavaScript официально завершена!

внешний интерфейс JavaScript
Серия из 20 статей о JavaScript официально завершена!

написать впереди

Серия тем JavaScript — это вторая серия, которую я написал, первая былаУглубленная серия JavaScript.

Всего существует 20 тем по JavaScript, в которых в основном изучается реализация некоторых функциональных точек в повседневной разработке, таких как защита от сотрясений, регулирование, дедупликация, оценка типов, копирование, максимальное значение, плоское, карри, рекурсия, беспорядок, сортировка. и т. д. Это реализация исследований (чао), исследований (кси), подчеркивания и jQuery.

В серии тем по JavaScript первая статья будет опубликована 2 июня, а последняя — 20 октября. Благодарим вас за избранное, лайки, поощрения и исправления.

После 20 статей мы следовали подчеркиванию, чтобы писать debounce, дроссель, уникальный, isElement, flatten, findIndex, findLastIndex, sortedIndex, indexOf, lastIndexOf, eq, partial, compose, запоминать в общей сложности 14 функциональных функций, за которыми следовал тип записи jQuery, isArray , isFunction, isPlainObject, isWindow, isArrayLike, extend, каждая из которых имеет в общей сложности 8 функциональных функций и реализовала в общей сложности 4 функциональные функции, включая мелкое копирование, глубокое копирование, карри и перемешивание, всего 26 функциональных функций. Кроме того, в последнем я также изучал сортировку исходного кода V8, и я искренне надеюсь, что читатели получат много полезного из этой серии.

Кстати, продвигайте репозиторий блога на Github:GitHub.com/ в настоящее время имеет бриз…, приветствую звезду, подбадриваю автора.

И эта статья, как сводная статья специальной серии, в дополнение к обобщению статей и работе в качестве статьи-каталога, я также надеюсь пообщаться с вами, почему я должен писать эту серию?

Почему я пишу серию статей?

Если углубленная серия предназначена для понимания самого языка JavaScript, то специальная серия предназначена для реализации некоторых функций в JavaScript. Надеюсь, она абстрагирована от практики и не имеет ничего общего с DOM и BOM. Она может быть полезна всем. Что приходит мне на ум, так это вопросы на предварительных интервью, которые я задавал в те годы...

Да, оглядываясь на всю серию, вы обнаружите, что антишейк, троттлинг, дедупликация, глубокое и поверхностное копирование, выравнивание массива, неупорядоченность, каррирование и т. д. — это не классика интервью? Я до сих пор помню, что для подготовки к интервью я зазубрил функцию дедупликации, но другие методы дедупликации никогда не изучал, и никогда раньше не задумывался о разнице между ними.Антишейк и троттлинг еще тупее. , в любом случае есть расширение jQuery для глубокого и мелкого копирования. Массив сглажен, и у меня есть рекурсивная идея. Я действительно не знаю, как это реализовать. У меня нет идеи. слышал.

Подумав над этим, я по незнанию записал много тем для изучения, а также возник метод исследования, то есть изучить реализацию подчеркивания и jQuery. Раньше они выглядели очень загадочно, и я знал, что это не так. трудно читать.но все же хочу узнать.

Тем не менее, процесс исследования действительно очень сложный, потому что необходимо понимать исходный код и принцип реализации.Однако реализация исходного кода часто включает в себя несколько мест.В результате, чтобы понять конкретную реализацию функция, необходимо Глядя на несколько функций в серии, в процессе понимания исходного кода также будет много сомнений. Я скажу себе, чтобы понять каждое сомнительное место. Это предложение легко сказать, но сложно сделать.Приведу пример.Ну а в массиве не по порядку есть метод:

arr.sort(function(){
    return Math.random() - 0.5;
});

Однако реализация этого метода проблематична, он не делает истину не по порядку. Во многих статьях используются только демки для проверки наличия проблемы с этим методом, но никогда не говорится, что не так с этим методом.Однако я очень озадачен этим, потому что считаю этот метод очень хорошим, идея гениально, а я такое впервые увидел.. все равно немного удивительно... но почему тут проблема? Я был озадачен и искал много статей, но безрезультатно.В конце концов, чтобы решить эту путаницу, я посмотрел исходный код sort v8.Однако этот исходный код не очень легко читать, и информации очень мало.Чтобы понять сортировку вставками, быструю сортировку, а затем понять множество оптимизаций, сделанных v8, чтобы решить это сомнение, прочитав исходный код сортировки v8 и поняв принцип сортировки, возьмите массив [ 1, 2, 3] в качестве примера. Проанализируйте конкретный процесс сортировки этого метода не по порядку в v8 и, наконец, рассчитайте вероятности шести результатов после не по порядку [1, 2, 3], и вероятность того, что результат 3 все еще находится в исходном положении, составляет 50%!Поэтому его можно рассматривать как удовлетворительное решение этой путаницы.

Чтобы узнать об особенностях этой путаницы, ознакомьтесь с 19-й статьей серии.

Кроме того, все функции я буду реализовывать сам.Однако, даже если я понимаю принцип, реализация не может быть достигнута в одночасье.В конце концов, если вы это написали, как вы могли так идеально подумать с самого начала? Итак, я начал с простого способа написания и перешел к окончательной реализации подчеркивания и jquery, итеративной реализации одной функции и одной функции.Если вы читаете много статей из этой серии, я объясню вам, как это реализовать с нуля. , одна версия за другой Код фактически является записью итеративной реализации.

Эх, написать статью не просто~

полный каталог

  1. Тема JavaScript: изучите защиту от сотрясений с помощью подчеркивания
  2. Тема JavaScript: Следуйте подчеркиванию, чтобы научиться экономить деньги
  3. Дедупликация массива тем JavaScript
  4. Типовая оценка тем JavaScript (часть 1)
  5. Типовая оценка темы JavaScript (часть 2)
  6. Глубокая и поверхностная копия темы JavaScript
  7. Тема JavaScript: Реализация расширения jQuery с нуля
  8. Как найти максимальное и минимальное значение массива в JavaScript
  9. Выравнивание массива по теме JavaScript
  10. Подчеркивание темы изучения JavaScript находит указанный элемент в массиве
  11. Реализация общего метода обхода jQuery для каждой темы JavaScript
  12. Как определить, что два объекта равны в JavaScript
  13. Каррирование функций в темах JavaScript
  14. Частичная функция темы JavaScript
  15. Ленивые функции по темам JavaScript
  16. Функциональная композиция тем JavaScript
  17. Память функций на тему JavaScript
  18. Рекурсия на тему JavaScript
  19. Темы JavaScript не по порядку
  20. Интерпретация исходного кода сортировки v8 для тем JavaScript

извиняться

Некоторые читатели оставляли комментарии, или благодарности, или обсуждения, или исправления к моим статьям, но по разным причинам они не смогли ответить или ответить своевременно, за что я извиняюсь.

следующее уведомление

В описании моего репозитория блога на Github я сказал, что собираюсь написать четыре серии: серию статей по JavaScript, серию тем по JavaScript, серию ES6 и серию React. Конец специальной серии, это должно было быть написать серию ES6, но друг сказал мне, что я написал так много функций, но как организовать эти функции и сформировать свою собственную библиотеку функций инструмента?

Да, поскольку написано так много служебных функций, почему бы не пойти дальше и не организовать их каким-то образом?

Моей первой мыслью было научиться у подчеркивания: как подчеркивание организует код? Как реализован цепной вызов? Как добиться расширения? Есть на что посмотреть, поэтому я решил перед серией ES6 сделать еще один шаг и написать серию подчеркиваний, цель которой помочь каждому написать собственное «подчеркивание».

Спасибо за ваше чтение и поддержку, я Сае Ю, до свидания с серией подчеркивания! []~( ̄▽ ̄)~**