HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-02-26
1 <h2>Содержание</h2>
1 <h2>Содержание</h2>
2 <ul><li><a>Chapter 4: Ссылки</a></li>
2 <ul><li><a>Chapter 4: Ссылки</a></li>
3 <li><a>Chapter 5: Объекты в действии</a></li>
3 <li><a>Chapter 5: Объекты в действии</a></li>
4 <li><a>Chapter 6: Проверка существования свойства</a></li>
4 <li><a>Chapter 6: Проверка существования свойства</a></li>
5 <li><a>Chapter 7: Обход свойств объекта</a></li>
5 <li><a>Chapter 7: Обход свойств объекта</a></li>
6 <li><a>Chapter 8: Вложенные объекты</a></li>
6 <li><a>Chapter 8: Вложенные объекты</a></li>
7 <li><a>Chapter 9: Слияние</a></li>
7 <li><a>Chapter 9: Слияние</a></li>
8 <li><a>Chapter 10: Клонирование</a></li>
8 <li><a>Chapter 10: Клонирование</a></li>
9 <li><a>Chapter 13: Хеш-таблицы</a></li>
9 <li><a>Chapter 13: Хеш-таблицы</a></li>
10 </ul><h2>Chapter 4: Ссылки</h2>
10 </ul><h2>Chapter 4: Ссылки</h2>
11 <ul><li>В js объекты являются ссылками поэтому {} === {}; / false</li>
11 <ul><li>В js объекты являются ссылками поэтому {} === {}; / false</li>
12 </ul><h2>Chapter 5: Объекты в действии</h2>
12 </ul><h2>Chapter 5: Объекты в действии</h2>
13 <ul><li>Упрощенный синтаксис создания объектов: const info = { filename, extension: ext } // const info = { extension: ext, filename: filename };</li>
13 <ul><li>Упрощенный синтаксис создания объектов: const info = { filename, extension: ext } // const info = { extension: ext, filename: filename };</li>
14 </ul><h2>Chapter 6: Проверка существования свойства</h2>
14 </ul><h2>Chapter 6: Проверка существования свойства</h2>
15 <ul><li>obj.hasOwnProperty() - проверка на существование св-ва</li>
15 <ul><li>obj.hasOwnProperty() - проверка на существование св-ва</li>
16 </ul><h2>Chapter 7: Обход свойств объекта</h2>
16 </ul><h2>Chapter 7: Обход свойств объекта</h2>
17 <ul><li>for (const prop in course ) не лучший способ т к выводит помимо всего еще и св-ва из прототипа</li>
17 <ul><li>for (const prop in course ) не лучший способ т к выводит помимо всего еще и св-ва из прототипа</li>
18 <li>Object.keys() // [key1, key2]</li>
18 <li>Object.keys() // [key1, key2]</li>
19 <li>Object.values() // [value1, value2]</li>
19 <li>Object.values() // [value1, value2]</li>
20 <li>Object.entries() // [[key1, value1], [key2, value2]]</li>
20 <li>Object.entries() // [[key1, value1], [key2, value2]]</li>
21 </ul><h2>Chapter 8: Вложенные объекты</h2>
21 </ul><h2>Chapter 8: Вложенные объекты</h2>
22 <ul><li>для отображения объекта высокого уровня вложенности можно юзать console.log(JSON.stringify(obj))</li>
22 <ul><li>для отображения объекта высокого уровня вложенности можно юзать console.log(JSON.stringify(obj))</li>
23 <li>_.has(obj, 'one.two.three')) с помощью лодаш можно чекнуть наличие объекта в глубине</li>
23 <li>_.has(obj, 'one.two.three')) с помощью лодаш можно чекнуть наличие объекта в глубине</li>
24 <li>Оператор опциональной последовательности: const obj = {}; obj?.one?.two?.three // undefined</li>
24 <li>Оператор опциональной последовательности: const obj = {}; obj?.one?.two?.three // undefined</li>
25 <li>Оператор нулевого слияния: const obj = {}; obj?.one?.two?.three ?? 'defaultValue' // 'defaultValue'</li>
25 <li>Оператор нулевого слияния: const obj = {}; obj?.one?.two?.three ?? 'defaultValue' // 'defaultValue'</li>
26 <li>_.get(obj, ['one', 'two', 'three'], 'defaultValue'); // 'defaultValue' лодашовский гет позволяет удобно пользоваться опциональной последовательностью</li>
26 <li>_.get(obj, ['one', 'two', 'three'], 'defaultValue'); // 'defaultValue' лодашовский гет позволяет удобно пользоваться опциональной последовательностью</li>
27 </ul><h2>Chapter 9: Слияние</h2>
27 </ul><h2>Chapter 9: Слияние</h2>
28 <ul><li>Object.assign(user, data); // перенести все св-ва объекта data В объект user с перезаписью</li>
28 <ul><li>Object.assign(user, data); // перенести все св-ва объекта data В объект user с перезаписью</li>
29 <li>_.pick() - выбор свойств объекта через лодаш</li>
29 <li>_.pick() - выбор свойств объекта через лодаш</li>
30 </ul><h2>Chapter 10: Клонирование</h2>
30 </ul><h2>Chapter 10: Клонирование</h2>
31 <ul><li>const copyOfUser = Object.assign({}, user); - клонирование через asign</li>
31 <ul><li>const copyOfUser = Object.assign({}, user); - клонирование через asign</li>
32 <li>const copyOfUser = {...user};</li>
32 <li>const copyOfUser = {...user};</li>
33 <li>copyOfUser = _.clone(user);</li>
33 <li>copyOfUser = _.clone(user);</li>
34 <li>copyOfUser = _.cloneDeep(user); - глубокое клонирование - ресурсоемко</li>
34 <li>copyOfUser = _.cloneDeep(user); - глубокое клонирование - ресурсоемко</li>
35 </ul><h2>Chapter 13: Хеш-таблицы</h2>
35 </ul><h2>Chapter 13: Хеш-таблицы</h2>
36 <ul><li><ol><li>Создание ассоциативного массива приводит к инициализации индексированного массива внутри интерпретатора. const internal = []; // Во время присвоения значения data['key'] = 'value', интерпретатор выполняет несколько действий:</li>
36 <ul><li><ol><li>Создание ассоциативного массива приводит к инициализации индексированного массива внутри интерпретатора. const internal = []; // Во время присвоения значения data['key'] = 'value', интерпретатор выполняет несколько действий:</li>
37 </ol></li>
37 </ol></li>
38 <li><ol><li>Хеширует ключ. Результатом хеширования становится число. const hash = crc32.str('key');</li>
38 <li><ol><li>Хеширует ключ. Результатом хеширования становится число. const hash = crc32.str('key');</li>
39 </ol></li>
39 </ol></li>
40 <li><ol><li>Число, полученное на предыдущем шаге, преобразуется в индекс массива. const index = Math.abs(hash) % 1000; // В значение внутреннего индексированного массива, по найденному индексу, записывается ещё один массив, // первым элементом которого становится ключ 'key', а вторым значение 'value'. internal[index] = ['key', 'value'];</li>
40 <li><ol><li>Число, полученное на предыдущем шаге, преобразуется в индекс массива. const index = Math.abs(hash) % 1000; // В значение внутреннего индексированного массива, по найденному индексу, записывается ещё один массив, // первым элементом которого становится ключ 'key', а вторым значение 'value'. internal[index] = ['key', 'value'];</li>
41 </ol></li>
41 </ol></li>
42 </ul>
42 </ul>