написать впереди
Серия тем 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, итеративной реализации одной функции и одной функции.Если вы читаете много статей из этой серии, я объясню вам, как это реализовать с нуля. , одна версия за другой Код фактически является записью итеративной реализации.
Эх, написать статью не просто~
полный каталог
- Тема JavaScript: изучите защиту от сотрясений с помощью подчеркивания
- Тема JavaScript: Следуйте подчеркиванию, чтобы научиться экономить деньги
- Дедупликация массива тем JavaScript
- Типовая оценка тем JavaScript (часть 1)
- Типовая оценка темы JavaScript (часть 2)
- Глубокая и поверхностная копия темы JavaScript
- Тема JavaScript: Реализация расширения jQuery с нуля
- Как найти максимальное и минимальное значение массива в JavaScript
- Выравнивание массива по теме JavaScript
- Подчеркивание темы изучения JavaScript находит указанный элемент в массиве
- Реализация общего метода обхода jQuery для каждой темы JavaScript
- Как определить, что два объекта равны в JavaScript
- Каррирование функций в темах JavaScript
- Частичная функция темы JavaScript
- Ленивые функции по темам JavaScript
- Функциональная композиция тем JavaScript
- Память функций на тему JavaScript
- Рекурсия на тему JavaScript
- Темы JavaScript не по порядку
- Интерпретация исходного кода сортировки v8 для тем JavaScript
извиняться
Некоторые читатели оставляли комментарии, или благодарности, или обсуждения, или исправления к моим статьям, но по разным причинам они не смогли ответить или ответить своевременно, за что я извиняюсь.
следующее уведомление
В описании моего репозитория блога на Github я сказал, что собираюсь написать четыре серии: серию статей по JavaScript, серию тем по JavaScript, серию ES6 и серию React. Конец специальной серии, это должно было быть написать серию ES6, но друг сказал мне, что я написал так много функций, но как организовать эти функции и сформировать свою собственную библиотеку функций инструмента?
Да, поскольку написано так много служебных функций, почему бы не пойти дальше и не организовать их каким-то образом?
Моей первой мыслью было научиться у подчеркивания: как подчеркивание организует код? Как реализован цепной вызов? Как добиться расширения? Есть на что посмотреть, поэтому я решил перед серией ES6 сделать еще один шаг и написать серию подчеркиваний, цель которой помочь каждому написать собственное «подчеркивание».
Спасибо за ваше чтение и поддержку, я Сае Ю, до свидания с серией подчеркивания! []~( ̄▽ ̄)~**