JavaScript заметки
8.56K subscribers
2.75K photos
4 videos
1.27K links
Регулярные заметки по практическому JavaScript. Обучащию посты позволят прокачать навыки во Frontend-разработке.

Можно почитать пока компилируется проект :)

Сотрудничество: @noname_media

Канал на бирже: telega.in/channels/notesjs/card?r=Wj7h1mbl
Download Telegram
Тип данных Symbol

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

«Символ» представляет собой уникальный идентификатор.
Создаются новые символы с помощью функции Symbol():
При создании символу можно дать описание (также называемое имя), в основном использующееся для отладки кода.

Символы гарантированно уникальны. Даже если мы создадим множество символов с одинаковым описанием, это всё равно будут разные символы. 
Описание – это просто метка, которая ни на что не влияет.

Символы особенные они не преобразуются автоматически в строку.
Cтроки и символы – принципиально разные типы данных и не должны неконтролируемо преобразовываться друг в друга.

#Symbol #типы_данных
👍2
Symbol.iterator

Symbol.iterator - специальный встроенный Symbol , который позволяет сделать объект итерируемым.

Например, у нас есть объект range, который представляет собой диапазон чисел. Чтобы сделать range итерируемым (и позволить for..of работать с ним), нам нужно добавить в объект метод с именем Symbol.iterator.

- Когда цикл for..of запускается, он вызывает этот метод один раз (или выдаёт ошибку, если метод не найден). Этот метод должен вернуть итератор – объект с методом next.
- Дальше for..of работает только с этим возвращённым объектом.
- Когда for..of хочет получить следующее значение, он вызывает метод next() этого объекта.
- Результат вызова next() должен иметь вид {done: Boolean, value: any}, где done=true означает, что итерация закончена, в противном случае value содержит очередное значение.

#перебираемые_объекты #symbol_iterator
👍5