До 30 ноября

Скидки до 81 000 руб и вторая профессия в подарок!

Главная | Все статьи | Дневник студента

Cаммари: JS: Объекты

Время чтения статьи ~1 минута
Статья написана студентом Хекслета. Мнение автора может не совпадать с позицией редакции
Cаммари: JS: Объекты главное изображение
Chapter 4: Ссылки
  • В js объекты являются ссылками поэтому {} === {}; / false
Chapter 5: Объекты в действии
  • Упрощенный синтаксис создания объектов: const info = { filename, extension: ext } // const info = { extension: ext, filename: filename };
Chapter 6: Проверка существования свойства
  • obj.hasOwnProperty() - проверка на существование св-ва
Chapter 7: Обход свойств объекта
  • for (const prop in course ) не лучший способ т к выводит помимо всего еще и св-ва из прототипа
  • Object.keys() // [key1, key2]
  • Object.values() // [value1, value2]
  • Object.entries() // [[key1, value1], [key2, value2]]
Chapter 8: Вложенные объекты
  • для отображения объекта высокого уровня вложенности можно юзать console.log(JSON.stringify(obj))
  • _.has(obj, 'one.two.three')) с помощью лодаш можно чекнуть наличие объекта в глубине
  • Оператор опциональной последовательности: const obj = {}; obj?.one?.two?.three // undefined
  • Оператор нулевого слияния: const obj = {}; obj?.one?.two?.three ?? 'defaultValue' // 'defaultValue'
  • _.get(obj, ['one', 'two', 'three'], 'defaultValue'); // 'defaultValue' лодашовский гет позволяет удобно пользоваться опциональной последовательностью
Chapter 9: Слияние
  • Object.assign(user, data); // перенести все св-ва объекта data В объект user с перезаписью
  • _.pick() - выбор свойств объекта через лодаш
Chapter 10: Клонирование
  • const copyOfUser = Object.assign({}, user); - клонирование через asign
  • const copyOfUser = {...user};
  • copyOfUser = _.clone(user);
  • copyOfUser = _.cloneDeep(user); - глубокое клонирование - ресурсоемко
Chapter 13: Хеш-таблицы
    1. Создание ассоциативного массива приводит к инициализации индексированного массива внутри интерпретатора. const internal = []; // Во время присвоения значения data['key'] = 'value', интерпретатор выполняет несколько действий:
    1. Хеширует ключ. Результатом хеширования становится число. const hash = crc32.str('key');
    1. Число, полученное на предыдущем шаге, преобразуется в индекс массива. const index = Math.abs(hash) % 1000; // В значение внутреннего индексированного массива, по найденному индексу, записывается ещё один массив, // первым элементом которого становится ключ 'key', а вторым значение 'value'. internal[index] = ['key', 'value'];
Аватар пользователя Alexandr Firsov
Alexandr Firsov 11 января 2021
0
Рекомендуемые программы
профессия
Осваивайте разработку веб-страниц, оживляйте дизайн макетов, публикуйте сайты и приложения. Отслеживайте ошибки в интерфейсе и устраняйте их
10 месяцев
с нуля
Старт 28 ноября
профессия
Обучитесь разработке бэкенда сайтов и веб-приложений — серверной части, которая отвечает за логику и базы данных
10 месяцев
с нуля
Старт 28 ноября
профессия
Выполняйте ручное тестирование веб-приложений, находите ошибки в продукте. Узнайте все о тест-дизайне.
4 месяца
с нуля
Старт 28 ноября
профессия
Научитесь разработке веб-приложений, сайтов и программного обеспечения на языке Java, программируйте и используйте структуры данных
10 месяцев
с нуля
Старт 28 ноября
профессия
новый
Собирайте, анализируйте и интерпретируйте данные, улучшайте бизнес-процессы и продукт компании. Обучитесь работе с библиотеками Python
9 месяцев
с нуля
Старт 28 ноября
профессия
Занимайтесь созданием сайтов, веб-приложений, сервисов и их интеграцией с внутренними бизнес-системами на бекенд-языке PHP
10 месяцев
с нуля
Старт 28 ноября
профессия
Создание веб-приложений со скоростью света
5 месяцев
c опытом
Старт 28 ноября
профессия
Обучитесь разработке визуальной части сайта — фронтенда, а также реализации серверной — бэкенда. Освойте HTML, CSS, JavaScript
16 месяцев
с нуля
Старт 28 ноября
профессия
Разработка бэкенд-компонентов для веб-приложений
10 месяцев
с нуля
Старт 28 ноября
профессия
новый
Организовывайте процесс автоматизации тестирования на проекте, обучитесь языку программирования JavaScript, начните управлять процессом тестирования
8 месяцев
c опытом
Старт 28 ноября