15 удивительных трюков, которые вы можете сделать с помощью простого JavaScript
Давайте рассмотрим некоторые из удивительных трюков, которые вы могли бы сделать с помощью ванильного JavaScript.
Как вы думаете, насколько хорошо вы знаете JavaScript? Вы, вероятно, знаете, как писать функции, понимать простые алгоритмы и даже можете написать класс. Но знаете ли вы, что такое типизированный массив?
Вам не нужно знать все эти концепции прямо сейчас, но они вам понадобятся позже в вашей карьере. Вот почему мы рекомендуем добавить этот список в закладки, потому что, скорее всего, вы столкнетесь с одной из этих тем, и тогда вам понадобится учебник, чтобы полностью понять его.
Этот репозиторий был создан с целью помочь разработчикам восполнить свои знания в JavaScript. Это не требование, а руководство для будущих исследований. Он основан на статье, написанной Стивеном Кертисом.
Итак, без лишних слов, давайте начнем!

Стек вызовов — это механизм, позволяющий интерпретатору (например, интерпретатору JavaScript в веб —браузере) отслеживать свое место в скрипте, вызывающем несколько функций-какая функция в данный момент выполняется и какие функции вызываются из этой функции и т. Д.

Все типы, кроме объектов, определяют неизменяемые значения (то есть значения, которые не могут быть изменены). Например (и в отличие от C), строки неизменяемы. Мы называем значения этих типов "примитивными значениями".

Переменным, которым присвоено непримитивное значение, присваивается ссылка на это значение. Эта ссылка указывает на местоположение объекта в памяти. Переменные на самом деле не содержат значения.

Принуждение типа означает, что когда операнды оператора имеют разные типы, один из них будет преобразован в "эквивалентное" значение типа другого операнда.

JavaScript имеет два визуально похожих, но очень разных способа проверки равенства. Вы можете проверить равенство с помощью == или ===.

Важно сделать это различие, потому что выражения могут действовать как операторы, поэтому у нас также есть операторы выражений. Хотя, с другой стороны, операторы не могут действовать как выражения.

Важно сделать это различие, потому что выражения могут действовать как операторы, поэтому у нас также есть операторы выражений. Хотя, с другой стороны, операторы не могут действовать как выражения.

Один из часто используемых шаблонов кодирования с функциями получил причудливое имя: выражение функции с немедленным вызовом. Или более известный как IIFE и произносимый как “iffy”.

- Как JavaScript может быть асинхронным и однопоточным? Короткий ответ заключается в том, что язык JavaScript однопоточен, а асинхронное поведение не является частью самого языка JavaScript, скорее они построены поверх основного языка JavaScript в браузере (или среде программирования) и доступны через API браузера.

Мы можем решить выполнить функцию не прямо сейчас, а в определенное время позже. Это называется “планирование вызова”.

Написание кода для Интернета иногда кажется немного волшебным в том смысле, что разработчики пишут последовательность символов, и, как по волшебству, эти символы превращаются в конкретные изображения, слова и действия в браузере. Понимание технологии может помочь разработчикам лучше настроить свое ремесло программиста.

Итак, технически для компьютера все сводится к 1s и 0s. Он не работает с цифрами, символами или строками, он использует только двоичные цифры (биты). Короткая версия этого объяснения заключается в том, что все хранится в двоичной форме. Затем компьютер использует кодировки, такие как UTF-8, чтобы сопоставить сохраненные битовые комбинации с символами, цифрами или различными символами (версия ELI5).

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

JavaScript - это язык, основанный на прототипах, то есть свойства и методы объектов могут быть разделены через обобщенные объекты, которые могут быть клонированы и расширены. Это известно как прототипическое наследование и отличается от наследования классов.

|
call() |
apply() |
bind() |
|
|
Исполнение |
во время привязки |
во время привязки |
в то время, когда мы выполняем функцию возврата |
|
Параметр |
любое количество аргументов один за другим |
массив array [] |
массив и любое количество аргументов |
|
Функция возврата |
Да, он возвращает и вызывает ту же функцию в момент привязки |
Да, он возвращает и вызывает ту же функцию в момент привязки |
Да, он возвращает и вызывает ту же функцию в момент привязки. Которую мы можем использовать, когда захотим. Это как заряженный пистолет |
Эти функции очень важны для каждого разработчика JavaScript и используются почти в каждой библиотеке или фреймворке JavaScript.

Каждый объект JavaScript имеет прототип. Все объекты в JavaScript наследуют свои методы и свойства от своих прототипов.

JavaScript немного сбивает с толку разработчиков, имеющих опыт работы на языках, основанных на классах (таких как Java или C++), поскольку он динамичен и не обеспечивает реализацию класса как такового (ключевое слово class введено в ES2015, но является синтаксическим сахаром, JavaScript остается прототипом).

Метод Object.create является одним из методов создания нового объекта в JavaScript.

Даже если вы не знаете, что такое функциональное программирование, вы, вероятно, использовали map, filter и reduce только потому, что они невероятно полезны и делают ваш код менее вонючим, позволяя вам писать более чистую логику.

Многие из наших ошибок связаны с IO, мутацией данных, кодом, несущим побочный эффект. Они расползаются по всей нашей кодовой базе—от таких вещей, как принятие пользовательских вводов, получение неожиданного ответа через http-вызов или запись в файловую систему. К сожалению, это суровая реальность, с которой мы должны привыкнуть иметь дело. Или это?

Замыкание - это комбинация функции, связанной вместе (заключенной) со ссылками на ее окружающее состояние (лексическое окружение). Другими словами, закрытие дает вам доступ к области видимости внешней функции из внутренней функции. В JavaScript замыкания создаются каждый раз, когда создается функция, во время создания функции.

JavaScript может принимать функции более высокого порядка*. Эта способность обрабатывать функции более высокого порядка, среди других характеристик, делает JavaScript одним из языков программирования, хорошо подходящих для функционального программирования.
*Функцией высокого порядка называется такая функция, которая принимает функцию как аргумент или возвращает функцию в виде выходного значения.

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

Объект Generator возвращается функцией generator и соответствует как протоколу iterable, так и протоколу iterator.

Объект Promise представляет собой возможное завершение (или сбой) асинхронной операции и ее результирующее значение.

Существует специальный синтаксис для более удобной работы с promise, называемый “async/await”. Это удивительно легко понять и использовать.

Javascript развивается каждый день. С быстрым ростом фреймворков и платформ, таких как React, Angular, Vue, NodeJS, Electron, React Native, использование javascript для крупномасштабных приложений стало довольно распространенным явлением.

“Что такое Big O Notation?” это очень распространенный вопрос собеседования для разработчиков. Короче говоря, это математическое выражение того, сколько времени занимает запуск алгоритма в зависимости от того, сколько времени занимает ввод, обычно говоря о наихудшем сценарии.

В математике и информатике алгоритм представляет собой конечную последовательность четко определенных инструкций, обычно используемых для решения класса конкретных задач или для выполнения вычислений.

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

Каждый разработчик стремится писать ремонтопригодный, читаемый и повторно используемый код. Структурирование кода становится все более важным, поскольку приложения становятся больше. Шаблоны проектирования имеют решающее значение для решения этой проблемы - обеспечения организационной структуры для общих проблем в конкретных обстоятельствах.

Композиция функций - это механизм объединения нескольких простых функций для создания более сложной.

Написание чистого, понятного и поддерживаемого кода —это навык, который имеет решающее значение для каждого разработчика.
Источники для более подробной информации по темам:
1. codementor
2. freecodecamp
3. medium
4. digitalocean
5. sitepoint
6. thatjsdude
7. hackernoon
8. itnext
Другие статьи по теме:
Давайте рассмотрим некоторые из удивительных трюков, которые вы могли бы сделать с помощью ванильного JavaScript.
В этой статье мы рассмотрим операторы в JavaScript один за другим. Мы объясним их функции и продемонстрируем их использование, помогая вам понять их роль в построении более сложных выражений.
Файлы cookie — это небольшие фрагменты данных, хранящиеся в браузере клиента и часто используемые для управления сеансами, пользовательских предпочтений и отслеживания.
Сценарии JavaScript блокируют загрузку файлов, следующих за ними. Но имеется несколько приемов, предотвращающих это…
Мы проводим много времени в DevTools, и уверены, что вы тоже. Иногда даже переключаемся между ними, особенно когда отлаживаем кроссбраузерные проблемы. DevTools во многом похожи на сами браузеры — не все функции DevTools одного браузера будут такими же или поддерживаться в DevTools другого браузера.