Все статьи | Блог студента

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

Эта статья написана нашим студентом. Мнение пользователей иногда может не совпадать с точкой зрения Хекслета
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
Рекомендуемые программы

С нуля до разработчика. Возвращаем деньги, если не удалось найти работу.

Иконка программы Фронтенд-разработчик
Профессия
Разработка фронтенд-компонентов веб-приложений
1 декабря 8 месяцев
Иконка программы Python-разработчик
Профессия
Разработка веб-приложений на Django
1 декабря 8 месяцев
Иконка программы PHP-разработчик
Профессия
Разработка веб-приложений на Laravel
1 декабря 8 месяцев
Иконка программы Node.js-разработчик
Профессия
Разработка бэкенд-компонентов веб-приложений
1 декабря 8 месяцев
Иконка программы Верстальщик
Профессия
Вёрстка с использованием последних стандартов CSS
в любое время 5 месяцев
Иконка программы Java-разработчик
Профессия
Разработка приложений на языке Java
1 декабря 10 месяцев
Иконка программы Разработчик на Ruby on Rails
Профессия
Новый
Создает веб-приложения со скоростью света
1 декабря 5 месяцев