Коллекция Map
Также как и объект, словарь позволяет:
— получать значение по ключу, а также проверять наличие ключа
— добавлять/удалять пары ключ/значение
— перезаписывать значение по ключу (ключи уникальны).
— итерироваться по ключам
Преимущества над объектами:
— Ключи словаря могут быть любого типа (а не только строки).
— Словарь хранит свой размер (не надо вычислять).
— Натуральный порядок обхода элементов ( в порядке добавления) с помощью
— Словарь не подмешивает ключи из прототипа (в отличие от объекта).
#словари #map
Map
- реализация простого ассоциативного массива (словаря). Он содержит данные в виде набора пар ключ/значение (ключи уникальны) и предоставляет методы для доступа и манипулирования этими данными. Также как и объект, словарь позволяет:
— получать значение по ключу, а также проверять наличие ключа
— добавлять/удалять пары ключ/значение
— перезаписывать значение по ключу (ключи уникальны).
— итерироваться по ключам
Преимущества над объектами:
— Ключи словаря могут быть любого типа (а не только строки).
— Словарь хранит свой размер (не надо вычислять).
— Натуральный порядок обхода элементов ( в порядке добавления) с помощью
for...of
.— Словарь не подмешивает ключи из прототипа (в отличие от объекта).
#словари #map
👍13
Методы пользующиеся регулярными выражениями
Регулярные выражения используются в методах
exec() - метод
test() - метод
match() - метод
search() - метод
replace() - метод
split() - метод
#регулярки #методы
Регулярные выражения используются в методах
test
и exec
объекта RegExp
и с методами match
, replace
, search
, и split
объекта String
.exec() - метод
RegExp,
который выполняет поиск совпадения в строке. Он возвращает массив данных.test() - метод
RegExp
, который тестирует совпадение в строке. Возвращает либо истину либо ложь.match() - метод
String
, который выполняет поиск совпадения в строке. Он возвращает массив данных либо null если совпадения отсутствуют.search() - метод
String,
который тестирует на совпадение в строке. Он возвращает индекс совпадения, или -1 если совпадений не будет найдено.replace() - метод
String
, который выполняет поиск совпадения в строке, и заменяет совпавшую подстроку другой подстрокой переданной как аргумент в этот метод.split() - метод
String,
который использует регулярное выражение или фиксированную строку чтобы разбить строку на массив подстрок.#регулярки #методы
👍5
Промисы
В сущности, промис - это возвращаемый объект, в который вы записываете два колбэка вместо того, чтобы передать их функции.
Например, вместо старомодной функции, которая принимает два колбэка и вызывает один из них в зависимости от успешного или неудачного завершения операции (см. рисунок выше).
#promise
Promise
- это объект, представляющий результат успешного или неудачного завершения асинхронной операции. Так как большинство людей пользуются уже созданными промисами, это руководство начнём с объяснения использования вернувшихся промисов до объяснения принципов создания. В сущности, промис - это возвращаемый объект, в который вы записываете два колбэка вместо того, чтобы передать их функции.
Например, вместо старомодной функции, которая принимает два колбэка и вызывает один из них в зависимости от успешного или неудачного завершения операции (см. рисунок выше).
#promise
👍2
BigInt
В некотором смысле он похож на
#BigInt #типы_данных
BigInt
- это встроенный объект, который предоставляет способ представлять целые числа больше 2^53 - 1
, наибольшего числа, которое JavaScript может надёжно представить с Number
примитивом. Это максимальное значение можно получить, обратившись к Number.MAX_SAFE_INTEGER
.В некотором смысле он похож на
Number
, но отличается в некоторых ключевых моментах — его нельзя использовать с методами во встроенном объекте Math
и нельзя смешивать в операциях с любыми экземплярами Number
.#BigInt #типы_данных
👍1
Let
Для создания переменной в JavaScript используется ключевое слово
Переменная – это «именованное хранилище» для данных. Можно использовать переменные для хранения товаров, посетителей и других данных.
#let #переменные
Для создания переменной в JavaScript используется ключевое слово
let
.Переменная – это «именованное хранилище» для данных. Можно использовать переменные для хранения товаров, посетителей и других данных.
#let #переменные
👍3
Инкремент/декремент
Одной из наиболее частых числовых операций является увеличение или уменьшение на единицу.
Для этого существуют даже специальные операторы:
Инкремент
Декремент
Инкремент/декремент можно применить только к переменной. Попытка использовать его на значении, типа 5++, приведёт к ошибке.
#операторы #инкремент #декремент
Одной из наиболее частых числовых операций является увеличение или уменьшение на единицу.
Для этого существуют даже специальные операторы:
Инкремент
++
увеличивает переменную на 1.Декремент
--
уменьшает переменную на 1.Инкремент/декремент можно применить только к переменной. Попытка использовать его на значении, типа 5++, приведёт к ошибке.
#операторы #инкремент #декремент
👍3
Константы
Чтобы объявить константную, то есть, неизменяемую переменную, используйте
Переменные, объявленные с помощью
Если программист уверен, что переменная никогда
не будет меняться, он может гарантировать это
и наглядно донести до каждого, объявив её через
#const #переменные
Чтобы объявить константную, то есть, неизменяемую переменную, используйте
const
вместо let
Переменные, объявленные с помощью
const
, называются «константами». Их нельзя изменить. Попытка сделать это приведёт к ошибке.Если программист уверен, что переменная никогда
не будет меняться, он может гарантировать это
и наглядно донести до каждого, объявив её через
const
.#const #переменные
👍3
F.prototype
Как мы помним, новые объекты могут быть созданы с помощью функции-конструктора
Если в
JavaScript использовал прототипное наследование с момента своего появления. Это одна из основных особенностей языка.
Но раньше, в старые времена, прямого доступа к прототипу объекта не было. Надёжно работало только свойство
Обратите внимание, что
Пример на картинке выше ☝️
#прототипы #f_prototype
Как мы помним, новые объекты могут быть созданы с помощью функции-конструктора
new F()
.Если в
F.prototype
содержится объект, оператор new
устанавливает его в качестве [[Prototype]]
для нового объекта.JavaScript использовал прототипное наследование с момента своего появления. Это одна из основных особенностей языка.
Но раньше, в старые времена, прямого доступа к прототипу объекта не было. Надёжно работало только свойство
"prototype"
функции-конструктора, описанное в этой главе. Поэтому оно используется во многих скриптах.Обратите внимание, что
F.prototype
означает обычное свойство с именем "prototype"
для F
. Это ещё не «прототип объекта», а обычное свойство F
с таким именем.Пример на картинке выше ☝️
#прототипы #f_prototype
👍1
Обработка ошибок, "try..catch"
Конструкция
Работает она так:
- Сначала выполняется код внутри блока
- Если в нём нет ошибок, то блок
- Если же в нём возникает ошибка, то выполнение
Пример кода на картинке выше ☝️
#обработка_ошибок #try_catch
Конструкция
try..catch
состоит из двух основных блоков: try
, и затем catch
.Работает она так:
- Сначала выполняется код внутри блока
try {...}
.- Если в нём нет ошибок, то блок
catch(err)
игнорируется: выполнение доходит до конца try
и потом далее, полностью пропуская catch
.- Если же в нём возникает ошибка, то выполнение
try
прерывается, и поток управления переходит в начало catch(err)
. Переменная err
(можно использовать любое имя) содержит объект ошибки с подробной информацией о произошедшем.Пример кода на картинке выше ☝️
#обработка_ошибок #try_catch
👍1
typeof
Часто бывает необходимо определить тип данных с которым ты работаешь и для этого есть оператор
Он возвращает строку, указывающую тип операнда.
Всего существует 8 возвращаемых значений:
-
-
-
-
-
-
-
-
#типы_данных #typeof
Часто бывает необходимо определить тип данных с которым ты работаешь и для этого есть оператор
typeof
.Он возвращает строку, указывающую тип операнда.
Всего существует 8 возвращаемых значений:
-
"undefined"
- тип undefined
-
"bigint"
- тип bigint
-
"boolean"
- тип boolean
-
"number"
- тип number
-
"string"
- тип string
-
"symbol"
- тип symbol
-
"function"
- тип функция-
"object"
- любой другой тип#типы_данных #typeof
👍2