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>