Введение
Этот проект был создан, чтобы помочь разработчикам понять концепции JavaScript. Это не обязательно, но может быть использовано в качестве руководства при дальнейшем обучении (JavaScript).
Эта статья создана со ссылкой на @leonardomso, а англоязычная версия проекта находится по адресуздесь. Поскольку исходные ресурсы приходится переворачивать, я создал китайскую версию с некоторыми статьями и видео об этих концепциях в Китае. Если вы считаете, что есть лучшая статья или видео, вы можете внести свой вклад.Если вы считаете, что это неправильно, пожалуйста, свяжитесь со мной, чтобы удалить его.
возобновить
Если вы считаете, что есть лучшая статья или видео, вы можете внести свой вклад.Если вы считаете, что это неправильно, пожалуйста, свяжитесь со мной, чтобы удалить его.
- Оптимизация сортировки статей, предыдущая статья представляет собой введение в концепцию, а последняя статья представляет собой углубленную интерпретацию.
- Объедините исходные «функции высшего порядка» и «карту, уменьшение, фильтрацию» в «карту, уменьшение, фильтрацию и другие функции высшего порядка».
- Добавлено понятие «обещание» (заменяет удаленную «функцию более высокого порядка»)
содержание
- стек вызовов
- примитивный тип
- Типы значений и ссылочные типы
- Неявная, явная, номинальная и утиная типизация
- == и ===, typeof и instanceof
- это, звоните, применяйте и связывайте
- функциональная область, блочная область и лексическая область
- Закрытие
- Функции более высокого порядка, такие как отображение, сокращение, фильтрация и т. д.
- Выражения и операторы
- переменное продвижение
- Promise
- непосредственная функция, модульность, пространство имен
- рекурсия
- алгоритм
- структура данных
- Очереди сообщений и циклы событий
- setTimeout, setInterval и requestAnimationFrame
- Наследование, полиморфизм и повторное использование кода
- Побитовые операторы, массивоподобные объекты и типизированные массивы
- Дерево DOM и процесс рендеринга
- новые и конструкторы, instanceof и экземпляры
- Наследование прототипов и цепочка прототипов
- Object.create и Object.assign
- Фабричные функции и классы
- Шаблоны проектирования
- Memoization
- Чистые функции, побочные эффекты функций и изменения состояния
- Высокая производительность и временная сложность
- JavaScript-движок
- двоичная, десятичная, шестнадцатеричная, экспоненциальная запись
- Частичные функции, каррирование, компоновка и конвейер
- чистый код
1. Стек вызовов
статья
- 📖Стек вызовов — MDN
- 📖Как работает JavaScript: обзор движка, среды выполнения, стека вызовов
- 📖[Перевод] Понимание контекста выполнения и стека выполнения в JavaScript — Nuggets
- 📖На этот раз досконально изучите механизм выполнения JavaScript — Nuggets
- 📖Расшифровка движка JavaScript, выполнения и вызовов стека — Китай с открытым исходным кодом
- 📖Задачи, микрозадачи, очереди и расписания — Джейк Арчибальд
видео
- 📺Что такое цикл событий? —— Видео Tencent (английские субтитры)
- 📺Понимание стека вызовов JavaScript, очереди событий, таблицы событий и цикла событий - Bilibili
- 📺Подъем переменных, память стека и замыкания в JS
- 📺Модель цикла событий — PHP
2. Примитивные типы
статья
- 📖Необработанные данные — MDN
- 📖Типы примитивов ECMAScript - W3school
- 📖Как числа кодируются в JavaScript - Dr. Axe
- 📖Что должен знать каждый разработчик JavaScript о плавающей запятой — Ян Хайцзин
- 📖Стандартное справочное руководство по JavaScript (Значения базового синтаксиса) - Руан Ифэн
- 📖Тайная жизнь примитивов JavaScript — Ангус Кролл
видео
- 📺Шесть типов данных в javascript - MOOC
- 📺видеоруководство по javascript (типы данных) - веб-сайт PHP на китайском языке
3. Типы значений и ссылочные типы
статья
- 📖Справочные типы ECMAScript - W3school
- 📖Разница между типами значений и ссылочными типами в js Develop Paper
- 📖Передача по значению и по ссылке в JavaScript - FunDebug
- 📖Примитивные типы и ссылочные типы в JavaScript — Бран ван дер Меер
- 📖JavaScript: передача по значению или по ссылке — CSDN
- 📖ссылка на значение js и копия значения —— SegmentFault
- 📖js — Ссылка и копирование (передача по значению и по ссылке) — CSDN
4. Неявная, явная, номинальная и утиная типизация
статья
- 📖Преобразование типов ECMAScript - W3school
- 📖Причуда JavaScript 1: неявное преобразование типов
- 📖Подробное объяснение правил операторов JavaScript и неявного преобразования типов — Nuggets
- 📖Поговорим о неявном преобразовании типов в JS — SegmentFault
- 📖Интересное неявное преобразование типов в JavaScript - Blog Park
- 📖Явное преобразование типов JavaScript и неявное преобразование типов — CSDN
- 📖JavaScript (средний том) Принуждение, которого вы не знаете - Краткая книга
- 📖Вы знаете JavaScript? #8 Кастинг - Цитилия
- 📖Динамически типизированные языки и утиная типизация — Zeng Exploration
- 📖Номинальная и структурная типизация — поток
- 📖Что такое приведение типов в Javascript?
- 📖Вы не знаете JS: типы и грамматика - github
видео
- 📺Неявное преобразование JavaScript — MOOC
- 📺Улучшение основы Javascript — преобразование типов — темная лошадка программиста
5. == vs ===, typeof vs instanceof
статья
- 📖Равенство в JavaScript - MDN
- 📖Разница между == и === в js — Самородки
- 📖== против === в Javascript — CSDN
- 📖Глубокое понимание typeof и instanceof javascript — CSDN
- 📖Использование JavaScript typeof — justjavac
- 📖Изображение для понимания взаимосвязи между функцией и объектом и краткое описание оператора instanceof — самородки
- 📖Говоря о принципе реализации instanceof и typeof - Nuggets
- 📖Использование typeof и instanceof в js —— Blog Park
6. это, позвонить, применить и связать
статья
- 📖Использование этого в Javascript - Руан Ифэн
- 📖Достаточно выучить эту статью по JS, ее вообще не нужно запоминать - Short Book
- 📖[Перевод] Что это такое — понимание этого, вызов, применение и связывание в JavaScript — Nuggets
- 📖это, применять, звонить, связывать - Nuggets
- 📖Используйте call, apply и bind, чтобы решить раздражающие this в js, this и передачу параметров в привязке событий —— Blog Park
- 📖Нативная реализация вызова, применения и привязки — github
- 📖Подробное объяснение этого, применения, вызова и связывания в JS (классические вопросы для собеседования) - Требуется программист
видео
- 📺Объяснение этого ключевого слова в JavaScript - iQIYI
- 📺Подробные вопросы интервью JS о закрытии области действия и этом — видео Baidu
- 📺js объектно-ориентированный массив закрытия 12. this в функции — видео LeTV
- 📺1.3.10-это указывает и это приложение - LeTV Video
- 📺Everest Training Курс по разработке JavaScript: об этом ключевом слове, область закрытия — NetEase Cloud Classroom
7. Функциональная область, блочная область и лексическая область
статья
- 📖Переменная область видимости и назначение деструктуризации — Ляо Сюэфэн
- 📖Изучаем замыкание Javascript - Жуань Ифэн
- 📖Лексическая область видимости, замыкания и выход из замыканий в JavaScript —— SegmentFault
- 📖Углубленная лексическая и динамическая области JavaScript — Nuggets
- 📖Углубленное понимание предварительных знаний о закрытии → объем и лексический охват - Самородки
- 📖Что такое лексическая область видимости? - stackoverflow
- 📖Вы не знаете JS: Scope & Closures - Кайл Симпсон
8. Закрытие
статья
- 📖Закрытия - MDN
- 📖Закрытие ECMAScript - w3school
- 📖Изучаем замыкание Javascript - Жуань Ифэн
- 📖Закрытие - Ляо Сюэфэн
- 📖Понимание замыканий JavaScript сразу — краткая книга
- 📖Закрытие JavaScript — SegmentFault
- 📖Расширенное использование замыканий в анонимных самовыполняющихся функциях js — Nuggets
- 📖Эффективное использование замыканий JavaScript — Nuggets
видео
- 📺Замыкания в JavaScript и вопросы на собеседовании по закрытию - iQIYI
- 📺js объектно-ориентированный массив закрытия 11. Закрытие — LeTV
- 📺Bai Hexiang_Function (закрытие) —— LeTV
9. Функции более высокого порядка, такие как отображение, уменьшение, фильтрация и т. д.
статья
- 📖Функции высшего порядка - Ляо Сюэфэн
- 📖Подробное описание нового метода Array в ES5 — Zhang Xinxu
- 📖Картинка для понимания итерационных методов работы с массивами в JavaScript: forEach, map, filter, reduce, every, some — самородки
- 📖Преобразование (Часть 1) - "Облегченное функциональное программирование на JavaScript" —— SegmentFault
10. Выражения и операторы
статья
- 📖выражения и операторы js - Blog Park
- 📖Разница между выражениями и операторами JS —— SegmentFault
- 📖Выражения и операторы в JavaScript — CSDN
- 📖Перечитывание выражения против оператора в Javascript Акселем —— SegmentFault
- 📖Выражения против утверждений в JavaScript - доктор Аксель
11. Переменный подъем
статья
- 📖Подъем переменных JavaScript — учебник для начинающих
- 📖Область видимости и продвижение переменных ES6: подробное объяснение жизненного цикла переменных — Nuggets
- 📖[Перевод] JavaScript Scoping and Hoisting —— SegmentFault
- 📖JavaScript Scoping and Hoisting — Бен Черри
12. Promise
статья
- 📖Использование промисов - MDN
- 📖Обещания - MDN
- 📖Promie — Ляо Сюэфэн
- 📖Обещание JavaScript: уход и возвращение - Ситу Чжэнмэй
- 📖(Исходный текст выше) Обещания JavaScript: Введение — Основы Web
- 📖Прочтите «Async/Await для JavaScript за 10 минут» за 1 минуту — justjavac
- 📖Мини-книга «JavaScript Promise» (китайская версия)
- 📖JavaScript Advanced Road — Знайте и используйте Promise, рефакторинг вашего кода Js — Blog Park
видео
13. Немедленное выполнение функций, модульность, пространства имен
статья
- 📖Модульное программирование на Javascript (1): написание модулей - Руан Ифэн
- 📖Модульное программирование на JavaScript. Подробное объяснение немедленного выполнения функциональных выражений. Краткая книга.
- 📖Анонимные функции и самовыполнение в Javascript — Nuggets
- 📖Модуляризация внешнего интерфейса — выбор технологии — SegmentFault
- 📖Говоря о модульной спецификации внешнего интерфейса Js — SegmentFault
14. Рекурсия
статья
- 📖Пытаюсь объяснить рекурсию js —— SegmentFault
- 📖Рекурсия в JavaScript — самородки
- 📖Рекурсия (Часть 1) — «Облегченное функциональное программирование на JavaScript» — Nuggets
- 📖Рекурсия (Часть 2) — «Облегченное функциональное программирование на JavaScript» — Nuggets
- 📖Хвостовые вызовы и хвостовая рекурсия — самородки
- 📖Несколько классических рекурсивных задач реализованы с помощью js — CSDN
- 📖Несколько примеров рекурсивных функций — CSDN
15. Алгоритмы
статья
- 📖Краткое изложение 10 лучших классических алгоритмов сортировки (описание на JavaScript) — Наггетс
- 📖Изучение структур данных и алгоритмов в JavaScript — Nuggets
- 📖Все алгоритмы сортировки, которые можно использовать в JS — самородки
- 📖Алгоритм сортировки JS Home — краткая книга
- 📖JS-реализация общих интерфейсных алгоритмов —— SegmentFault
- 📖Распространенные вопросы по алгоритмам на предварительных собеседованиях — блог Пу Сяохуа
видео
16. Структуры данных
статья
- 📖Поговорим о структуре данных js — короткая книга
- 📖Алгоритмы и структуры данных в JavaScript — небольшая книга
- 📖Что обязательно нужно посмотреть для изучения JS-глубокого анализа структуры данных JavaScript - Блог Daozhijian
- 📖Проблема дедупликации базового массива структур данных в js - Nuggets
видео
17. Очереди сообщений и циклы событий
статья
- 📖Модели параллелизма и цикл обработки событий — MDN
- 📖Подробное объяснение механизма работы JavaScript: снова поговорим о цикле событий
- 📖Глубокое понимание цикла событий JavaScript - Blog Park
- 📖Объясните простым языком механизм цикла обработки событий Javascript Develop Paper
- 📖Макро-задачи и микро-задачи механизма циклов событий JS (цикл событий) —— SegmentFault
- 📖JavaScript: глубокое понимание синхронизации, асинхронности и цикла событий —— SegmentFault
18. setTimeout, setInterval и requestAnimationFrame
статья
- 📖Метод Window setTimeout() — учебник для начинающих
- 📖Метод Window setInterval() — учебник для начинающих
- 📖О setTimeout — Самородки
- 📖Javascript, которого вы не знали: интересный setTimeout — Наггетс
- 📖Оказывается, вы установили Timeout вот так Nuggets 11 окт.
- 📖В чем существенная разница между setTimeout() и setInterval()? - Ошибка сегмента
- book: window.requestAnimationFrame — MDN
- 📖Что вы знаете о requestAnimationFrame? —— Блог Парк
- 📖Анимация CSS3 настолько сильна, что requestAnimationFrame все еще используется для шерсти? —— Чжан Синьсюй
- 📖Анализ «Таймера JavaScript» setInterval, setTimeout и requestAnimationFrame —— SegmentFault
- 📖Перевод: проверка временного интервала между setInterval и requestAnimationFrame —— SegmentFault
- 📖Вопросы для интервью с Али: requestAnimationFrame реализует таймер, аналогичный setInterval — — SegmentFault
видео
19. Наследование, полиморфизм и повторное использование кода
статья
- 📖JS объектно-ориентированное программирование: инкапсуляция, наследование, полиморфизм
- 📖Наследование и полиморфизм в Javascript — короткая книга
- 📖js: объектно-ориентированное программирование, знакомство с инкапсуляцией, наследованием и полиморфизмом — Nuggets
- 📖«Множественное наследование» в JavaScript — самородки
- 📖Режим повторного использования кода — github
- 📖Глубокое понимание JavaScript: режим повторного использования кода (рекомендуется) - Дядя Том
- 📖Глубокое понимание JavaScript: режим повторного использования кода (предотвращение) — Дядя Том
20. Побитовые операторы, массивоподобные объекты и типизированные массивы
статья
- 📖Побитовые операторы — MDN
- 📖Массивоподобные объекты — MDN
- 📖Типизированные массивы — MDN
- 📖Анализ JavaScript ArrayBuffer —— Blog Park
21. DOM-дерево и процесс рендеринга
статья
- 📖Как создать DOM-дерево — MDN
- 📖Узлы HTML DOM - W3school
- 📖Обзор DOM - Руан Ифэн
- 📖DOM «прорыва JavaScript» (часть 1) — самородки
- 📖DOM «прорыва JavaScript» (часть 2) — самородки
- 📖Освоение манипуляций с DOM — самородки
- 📖Манипулирование DOM - Ляо Сюэфэн
- 📖Оказывается, CSS и JS блокируют синтаксический анализ и рендеринг DOM подобным образом — Nuggets
видео
- 📺Подробное объяснение основ исследования DOM - MOOC
- 📺Изучение событий DOM - Сеть MOOC
- 📺Основы jQuery (2) DOM Articles - MOOC
- 📺JS управляет свойствами и методами объекта DOM - iQIYI
22. new и конструктор, instanceof и instance
статья
- 📖Конструкторы и новая команда - Жуан Ифэн
- 📖Объектно-ориентированное программирование на Javascript (2): наследование конструкторов — Руан Ифэн
- 📖Подробная схема полной цепочки прототипов (конструктор, прототип, созданный объект) — CSDN
- 📖Примеры конструкторов и новых операторов в JavaScript
- 📖Связь между конструктором, экземпляром, прототипом, цепочкой прототипов — CSDN
- 📖Глубокое понимание JS-instanceof и цепочки прототипов — CSDN
- 📖Advanced Front-end Basics (9): подробное описание объектно-ориентированного программирования, конструктора, прототипа и цепочки прототипов — краткая книга
- 📖Разница между js, создающим объект с помощью new и вызывающим это напрямую — короткая книга
- 📖Не все в JavaScript является объектом - justjavac
- 📖Подробное изучение оператора instanceof в JavaScript - IBM
видео
23. Наследование прототипов и цепочка прототипов
статья
- 📖Наследование и цепочка прототипов - MDN
- 📖Конструкторы, прототипы и цепочки прототипов — github
- 📖Прототип и цепочка прототипов — github (звезда 1269)
- 📖Уточнение объектной ориентации в JavaScript (1) Наследование прототипов — SegmentFault
- 📖JavaScript: Наследование и цепочка прототипов (перевод) - justjavac
- 📖Три изображения для понимания объекта-прототипа и цепочки прототипов в JavaScript Develop Paper
- 📖Изображение позволяет понять цепочку наследования и прототипов JavaScript — CSDN
- 📖JS Advanced — цепочка прототипов
- 📖Наследование прототипа - Ляо Сюэфэн
- 📖Цепочка прототипов JS и наследование: больше не спрашивайте — Nuggets
- 📖Серия интервью «Завоевание JavaScript: разница между наследованием классов и наследованием прототипов»
видео
- 📺JS Advanced-07-Prototype Chain Inheritance — LeTV
- 📺Введение в объекты-прототипы JS и цепочки прототипов — видео Tencent
24. Object.create и Object.assign
статья
- 📖Object.create — MDN
- 📖Object.assign — MDN
- 📖Object.create vs Object.assign —— Примечания к МООК
- 📖Object.assign(), Object.create(), Object.defineProperty() в JS — CSDN
- 📖object.create() и object.assign() в es6 - Блог Hyacinth
- 📖Object-Assign-Deep — github
25. Фабричные функции и классы
статья
- 📖Класс - МДН
- 📖Классы и экземпляры — Ляо Сюэфэн
- 📖Три способа определения классов в Javascript — Руан Ифэн
- 📖Фабричные функции ES6 — самородки
- 📖Singleton, Factory, шаблоны конструктора для создания объектов в JavaScript — самородки
26. Шаблоны проектирования
статья
- 📖Шаблоны проектирования - Жуан Ифэн
- 📖Шаблоны проектирования JavaScript — самородки
- 📖Научитесь использовать шаблоны проектирования JavaScript - Geek Academy
- 📖[Тема интервью] Шаблоны проектирования JS —— SegmentFault
- 📖Шаблоны JavaScript перевод на китайский язык — github
видео
27. Memoization
статья
- 📖Мемоизация JavaScript - Ситу Чжэнмэй
- 📖Мемоизация повышает эффективность рекурсии —— Blog Park
- 📖Как повысить эффективность рекурсии в JavaScript — 51CTO
- 📖Мемоизация передовых методов JavaScript —— SegmentFaut
28. Чистые функции, побочные эффекты функций и изменения состояния
статья
- 📖Чистая функция — Маленькая книга React.js
- 📖Функциональное программирование на JavaScript: чистые функции
- 📖Анализ побочных эффектов js-функций
- 📖Как справиться с грязными побочными эффектами с помощью чистого функционального JavaScript
- 📖Нативный JavaScript реализует систему управления состоянием —— Blog Park
29. Операции, требующие высокой производительности, и временная сложность
статья
- 📖Что означает временная сложность O(log n)? —— Самородки
- 📖Временная сложность и пространственная сложность алгоритма - Самородки
- 📖Алгоритм (1) Временная сложность — самородки
- 📖Алгоритмы поиска Big O в JavaScript — Брэдли Брейтуэйт
- 📖Анализ временной сложности в JavaScript — Дженнифер Блэнд
30. Движок JavaScript
статья
- 📖JavaScript-движок — Энциклопедия Baidu
- 📖V8 (движок JavaScript) — Энциклопедия Baidu
- 📖Графически понять цикл событий движка JavaScript — самородки3
- 📖Движок JavaScript V8: высокая производительность ES2015+ — justjavac
- 📖10 минут, чтобы понять механизм выполнения JS-движка —— SegmentFaut
- 📖JavaScript-движок V8 - Blog Park
31. Двоичная, шестнадцатеричная, десятичная, научная запись
статья
- 📖Два, восемь, десять, шестнадцатеричное преобразование (графика) —— Blog Park
- 📖JavaScript читает и записывает двоичные данные — самородки
видео
32. Частичные функции, каррирование, компоновка и конвейер
статья.
- 📖Частичная функция функционального программирования Javascript — CSDN
- 📖Частичные функции тем JavaScript — SegmentFault
- 📖В чем разница между каррированием и частичными функциями? - Ошибка сегмента
- 📖Частичная функция Javascript и каррирование — CSDN
- 📖Каррирование — Руководство по функциональному программированию на JS
- 📖Композиция кода (compose) — руководство по функциональному программированию JS
- 📖О реализации compose в функциональном программировании javascript —— SegmentFault
- 📖Пять идей для реализации compose — SegmentFault
- 📖Реализация функции компоновки функций и конвейера в функциональном программировании JavaScript —— SegmentFault
- 📖Облегченное функциональное программирование на JavaScript. Глава 4. Создание функций.
33. Способ очистки кода
статья
- 📖[Перевод] Как очистить код JavaScript - Border Town
- 📖Стиль программирования Javascript - Руан Ифэн
- 📖Рефакторинг — способ очистить код — Nuggets
- 📖Советы по ES6, которые сделают ваш код короче, чище и читабельнее — Nuggets
- 📖 Веб-интерфейс: 11 принципов поддержания чистоты кода —— Bole Online