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

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
Рекомендуемые программы
профессия
от 25 000 ₸ в месяц
Разработка фронтенд-компонентов для веб-приложений
10 месяцев
с нуля
Старт 28 ноября
профессия
от 25 000 ₸ в месяц
Разработка веб-приложений на Django
10 месяцев
с нуля
Старт 28 ноября
профессия
от 14 960 ₸ в месяц
Ручное тестирование веб-приложений
4 месяца
с нуля
Старт 28 ноября
профессия
от 25 000 ₸ в месяц
Разработка приложений на языке Java
10 месяцев
с нуля
Старт 28 ноября
профессия
от 24 542 ₸ в месяц
новый
Сбор, анализ и интерпретация данных
9 месяцев
с нуля
Старт 28 ноября
профессия
от 25 000 ₸ в месяц
Разработка веб-приложений на Laravel
10 месяцев
с нуля
Старт 28 ноября
профессия
от 28 908 ₸ в месяц
Создание веб-приложений со скоростью света
5 месяцев
c опытом
Старт 28 ноября
профессия
от 39 525 ₸ в месяц
Разработка фронтенд- и бэкенд-компонентов для веб-приложений
16 месяцев
с нуля
Старт 28 ноября
профессия
от 25 000 ₸ в месяц
Разработка бэкенд-компонентов для веб-приложений
10 месяцев
с нуля
Старт 28 ноября
профессия
новый
Автоматизированное тестирование веб-приложений на JavaScript
8 месяцев
c опытом
Старт 28 ноября