Set
Объект Set – это особый вид коллекции: «множество» значений (без ключей), где каждое значение может появляться только один раз.
Основная «изюминка» – это то, что при повторных вызовах
Например, мы ожидаем посетителей, и нам необходимо составить их список. Но повторные визиты не должны приводить к дубликатам. Каждый посетитель должен появиться в списке только один раз.
Множество
Если вы внесете дважды одно и то же значение то получите ошибку
#set #типы_данных
Объект Set – это особый вид коллекции: «множество» значений (без ключей), где каждое значение может появляться только один раз.
Основная «изюминка» – это то, что при повторных вызовах
set.add()
с одним и тем же значением ничего не происходит, за счёт этого как раз и получается, что каждое значение появляется один раз.Например, мы ожидаем посетителей, и нам необходимо составить их список. Но повторные визиты не должны приводить к дубликатам. Каждый посетитель должен появиться в списке только один раз.
Множество
Set
– как раз то, что нужно для этогоIdentifier 'mary' has already been declared
Если вы внесете дважды одно и то же значение то получите ошибку
#set #типы_данных
👍6🔥2❤1
Map
Например Map может использовать объекты в качестве ключей.
Использование объектов в качестве ключей – одна из наиболее важных функций
#theory
Map
– это коллекция ключ/значение, как и Object
. Но основное отличие в том, что Map
позволяет использовать ключи любого типа.Например Map может использовать объекты в качестве ключей.
Использование объектов в качестве ключей – одна из наиболее важных функций
Map
. Это то что невозможно для Object
. Строка в качестве ключа в Object
– это нормально, но мы не можем использовать другой Object
в качестве ключа в Object
.#theory
👍12❤2
Остаточные параметры (...)
Остаточные параметры могут быть обозначены через три точки
Мы можем положить первые несколько параметров в переменные, а остальные – собрать в массив.
В приведенном коде первые два аргумента функции станут именем и фамилией (Илон Маск), а третий и последующие превратятся в массив
Остаточные параметры могут быть обозначены через три точки
...
. Буквально это значит: «собери оставшиеся параметры и положи их в массив».Мы можем положить первые несколько параметров в переменные, а остальные – собрать в массив.
В приведенном коде первые два аргумента функции станут именем и фамилией (Илон Маск), а третий и последующие превратятся в массив
titles
#функции🤔11👍6🔥4
Оператор расширения (...)
Допустим, что у нас есть встроенная функция
И допустим, у нас есть массив чисел
Просто так их не вставишь —
Конечно, мы можем вводить числа вручную :
И тут нам поможет оператор расширения (
Если остаточные параметры (...) делают из аргументов массив, то тут все в точности наоборот.
Когда
Таким образом мамкины программисты могут передать несколько итерируемых объектов и даже комбинировать оператор расширения с обычными значениями.
#функции #операторы
Допустим, что у нас есть встроенная функция
Math.max.
Она возвращает наибольшее число из списка.И допустим, у нас есть массив чисел
[3, 5, 1]
. Как вызвать для него Math.max
? Просто так их не вставишь —
Math.max
ожидает получить список чисел, а не один массив.Конечно, мы можем вводить числа вручную :
Math.max(arr[0], arr[1], arr[2])
. Но это непрофессиАНАЛьно, и аргументов может быть очень много.И тут нам поможет оператор расширения (
...
).Если остаточные параметры (...) делают из аргументов массив, то тут все в точности наоборот.
Когда
...arr
используется при вызове функции, он «расширяет» перебираемый объект arr
в список аргументов.Таким образом мамкины программисты могут передать несколько итерируемых объектов и даже комбинировать оператор расширения с обычными значениями.
#функции #операторы
👍9❤1🔥1
Метод arr.splice(str)
Что делать, если потребуется удалить элемент из массива? Да, можно попробовать сделать это с помощью
Но таким способом можно удалить только значение элемента (
Поэтому нужно использовать специальные методы, например
#методы #массивы
Что делать, если потребуется удалить элемент из массива? Да, можно попробовать сделать это с помощью
delete
. Но таким способом можно удалить только значение элемента (
arr.lengt
h не изменится), но не сам элемент.Поэтому нужно использовать специальные методы, например
arr.splice.
В коде выше с помощью метода, начиная с позиции 1
, убран 1
элемент. #методы #массивы
👍9🔥2
Array.from
Что делать, если у компуктерщика есть список элементов, и он хочет применить к ним методы массивов?
Есть универсальный метод
#массивы
Что делать, если у компуктерщика есть список элементов, и он хочет применить к ним методы массивов?
Есть универсальный метод
Array.from
, который принимает итерируемый объект или псевдомассив и делает из него «настоящий» Array
. После этого уже можно использовать методы массивов.#массивы
👍7🔥2
arr.аt
Допустим, нам нужен последний элемент массива.
В некоторых языках программирования для этого можно использовать отрицательные индексы, например: fruits[-1].
Но в "жиес" такая запись не работает. Результатом будет undefined, тк индекс в квадратных скобках понимается буквально.
Можно явно вычислить индекс последнего элемента, а затем получить к нему доступ вот так: fruits[fruits.length - 1].
Но это слишком громоздко, да и мама в детстве запретила мне так делать, и сказала, чтобы я использовал arr.аt.
#массивы
Допустим, нам нужен последний элемент массива.
В некоторых языках программирования для этого можно использовать отрицательные индексы, например: fruits[-1].
Но в "жиес" такая запись не работает. Результатом будет undefined, тк индекс в квадратных скобках понимается буквально.
Можно явно вычислить индекс последнего элемента, а затем получить к нему доступ вот так: fruits[fruits.length - 1].
Но это слишком громоздко, да и мама в детстве запретила мне так делать, и сказала, чтобы я использовал arr.аt.
#массивы
👍22🔥12
concat
Представьте, вам нужно создать массив скопировав данные из других массивов и добавить в него новые значения.
В этой ситуации #тыжпрограммист может использовать метод
Он принимает любое количество аргументов, которые могут быть как массивами, так и простыми значениями.
В результате мы получаем новый массив, включающий в себя элементы из
#массивы
Представьте, вам нужно создать массив скопировав данные из других массивов и добавить в него новые значения.
В этой ситуации #тыжпрограммист может использовать метод
arr.concat
arr.concat(arg1, arg2...)
Он принимает любое количество аргументов, которые могут быть как массивами, так и простыми значениями.
В результате мы получаем новый массив, включающий в себя элементы из
arr
, а также arg1
, arg2
и так далее…#массивы
🔥16👍4
Примеси
В JavaScript можно наследовать только от одного объекта. Объект имеет единственный
Иногда это может ограничивать нас. Например, у нас есть класс
Для таких случаев существуют «примеси».
Примесь – это класс, методы которого предназначены для использования в других классах, причём без наследования от примеси.
Другими словами, примесь определяет методы, которые реализуют определённое поведение. Мы не используем примесь саму по себе, а используем её, чтобы добавить функциональность другим классам.
Простейший способ реализовать примесь в JavaScript – это создать объект с полезными методами, которые затем могут быть легко добавлены в прототип любого класса.
В приведенном коде примесь
#классы
В JavaScript можно наследовать только от одного объекта. Объект имеет единственный
[[Prototype]]
. И класс может расширить только один другой класс.Иногда это может ограничивать нас. Например, у нас есть класс
StreetSweeper
и класс Bicycle
, а мы хотим создать их смесь: StreetSweepingBicycle
.Для таких случаев существуют «примеси».
Примесь – это класс, методы которого предназначены для использования в других классах, причём без наследования от примеси.
Другими словами, примесь определяет методы, которые реализуют определённое поведение. Мы не используем примесь саму по себе, а используем её, чтобы добавить функциональность другим классам.
Простейший способ реализовать примесь в JavaScript – это создать объект с полезными методами, которые затем могут быть легко добавлены в прототип любого класса.
В приведенном коде примесь
sayHiMixin
имеет методы, которые придают объектам класса User
возможность вести разговор.#классы
👍9🔥3❤1
Разделитель разрядов
Знаете что выведет код выше?
Думаете, что произойдет конкатенация и в консоль выведется «1_2322_000»? Или же выведет ошибку? На самом деле ответом будет являться число
Всё просто, символ "
#теория #js
Знаете что выведет код выше?
Думаете, что произойдет конкатенация и в консоль выведется «1_2322_000»? Или же выведет ошибку? На самом деле ответом будет являться число
2232
, но почему?Всё просто, символ "
_
" является разделителем для улучшения читабельности. Согласитесь, гораздо быстрее понять, что написано «один миллион», когда он выглядит так: 1_000_000
, а не так: 1000000
#теория #js
👍15🔥7🤯5
Переменные let и const
Ключевые слова let и const дают более предсказуемые переменные, чем те, что объявлены через var.
У них блочная область видимости: такие переменные существуют только в пределах участка кода, ограниченного фигурными скобками. Такой подход позволяет избежать конфликта переменных, делая код более предсказуемым.
let используется для переменных, которые нужно переназначить после создания. Переменные, объявленные с помощью const, невозможно переназначить или изменить.
#теория #js
Ключевые слова let и const дают более предсказуемые переменные, чем те, что объявлены через var.
У них блочная область видимости: такие переменные существуют только в пределах участка кода, ограниченного фигурными скобками. Такой подход позволяет избежать конфликта переменных, делая код более предсказуемым.
let используется для переменных, которые нужно переназначить после создания. Переменные, объявленные с помощью const, невозможно переназначить или изменить.
#теория #js
👍9🤯3
Отключение действия, выполняемого по щелчку правой кнопки мыши
Возможно, вам понадобится запретить пользователям вашего сайта вызывать контекстные меню элементов щелчком правой кнопки мыши. Хотя это нужно и нечасто, иногда это может оказаться очень кстати.
Этот простой приём из приведенного кода позволяет отключить на странице функционал правой кнопки мыши, чтобы мама не читала с браузера ваш код.
#теория #js #фишки
Возможно, вам понадобится запретить пользователям вашего сайта вызывать контекстные меню элементов щелчком правой кнопки мыши. Хотя это нужно и нечасто, иногда это может оказаться очень кстати.
Этот простой приём из приведенного кода позволяет отключить на странице функционал правой кнопки мыши, чтобы мама не читала с браузера ваш код.
#теория #js #фишки
🔥10❤2👍1
Для работы в международной команде базового английского может не хватить. Держите 5 советов, которые помогут подготовиться к общению с иностранными коллегами.
Если хотите подтянуть язык для работы в IT — попробуйте Яндекс Практикум. Они запустили курсы специально для разработчиков, аналитиков и продакт-менеджеров.
В основе обучения — занятия с личным преподавателем, дополнительно вас ждёт разговорная практика с иностранными IT-специалистами. Они помогут освоить язык на примере собеседований, стендапов, ревью и других рабочих встреч. Будет проще пройти реальное англоязычное собеседование, если вы уже тренировали его на занятиях.
Записывайтесь на бесплатную консультацию к куратору. Он определит ваш уровень языка и расскажет о курсе.
Если хотите подтянуть язык для работы в IT — попробуйте Яндекс Практикум. Они запустили курсы специально для разработчиков, аналитиков и продакт-менеджеров.
В основе обучения — занятия с личным преподавателем, дополнительно вас ждёт разговорная практика с иностранными IT-специалистами. Они помогут освоить язык на примере собеседований, стендапов, ревью и других рабочих встреч. Будет проще пройти реальное англоязычное собеседование, если вы уже тренировали его на занятиях.
Записывайтесь на бесплатную консультацию к куратору. Он определит ваш уровень языка и расскажет о курсе.
👍7🤔1