final move to png
This commit is contained in:
parent
0ed8583dc2
commit
90855e8899
43 changed files with 101 additions and 101 deletions
|
@ -13,7 +13,7 @@
|
|||
|
||||
Её можно легко представить как шкаф с подписанными ящиками. Все данные хранятся в ящичках. По имени можно легко найти ящик и взять то значение, которое в нём лежит.
|
||||
|
||||
<img src="object.svg">
|
||||
<img src="object.png">
|
||||
|
||||
В отличие от реальных шкафов, в ассоциативный массив можно в любой момент добавить новые именованные "ящики" или удалить существующие. Далее мы увидим примеры, как это делается.
|
||||
|
||||
|
@ -40,7 +40,7 @@
|
|||
var person = {}; // пока пустой
|
||||
```
|
||||
|
||||
<img src="object-person-empty.svg">
|
||||
<img src="object-person-empty.png">
|
||||
|
||||
|
||||
Основные операции с объектами -- это создание, получение и удаление свойств.
|
||||
|
@ -55,7 +55,7 @@ person.name = 'Вася';
|
|||
person.age = 25; // запишем ещё одно свойство: с именем 'age' и значением 25
|
||||
```
|
||||
|
||||
<img src="object-person-1.svg">
|
||||
<img src="object-person-1.png">
|
||||
|
||||
Значения хранятся "внутри" ящиков. Обратим внимание -- любые значения, любых типов: число, строка -- не важно.
|
||||
|
||||
|
@ -72,7 +72,7 @@ delete person.age;
|
|||
|
||||
Осталось только свойство `name`:
|
||||
|
||||
<img src="object-person-2.svg">
|
||||
<img src="object-person-2.png">
|
||||
|
||||
Следующая операция:
|
||||
<ol start="4">
|
||||
|
|
|
@ -15,7 +15,7 @@ var phrase = message;
|
|||
|
||||
В результате такого копирования получились две полностью независимые переменные, в каждой из которых хранится значение `"Привет"`.
|
||||
|
||||
<img src="variable-copy-value.svg">
|
||||
<img src="variable-copy-value.png">
|
||||
|
||||
## Копирование по ссылке
|
||||
|
||||
|
@ -31,7 +31,7 @@ var user = {
|
|||
};
|
||||
```
|
||||
|
||||
<img src="variable-contains-reference.svg">
|
||||
<img src="variable-contains-reference.png">
|
||||
|
||||
Внимание: объект -- вне переменной. В переменной -- лишь "адрес" (ссылка) для него.
|
||||
|
||||
|
@ -48,7 +48,7 @@ var admin = user; // скопировали ссылку
|
|||
|
||||
Получили две переменные, в которых находятся ссылки на один и тот же объект:
|
||||
|
||||
<img src="variable-copy-reference.svg">
|
||||
<img src="variable-copy-reference.png">
|
||||
|
||||
**Так как объект всего один, то изменения через любую переменную видны в других переменных:**
|
||||
|
||||
|
|
|
@ -84,13 +84,13 @@ alert( arr[2].name ); // Петя
|
|||
|
||||
Одно из применений массива -- это [очередь](http://ru.wikipedia.org/wiki/%D0%9E%D1%87%D0%B5%D1%80%D0%B5%D0%B4%D1%8C_%28%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%29). В классическом программировании так называют упорядоченную коллекцию элементов, такую что элементы добавляются в конец, а обрабатываются -- с начала.
|
||||
|
||||
<img src="queue.svg">
|
||||
<img src="queue.png">
|
||||
|
||||
В реальной жизни эта структура данных встречается очень часто. Например, очередь сообщений, которые надо показать на экране.
|
||||
|
||||
Очень близка к очереди еще одна структура данных: [стек](http://ru.wikipedia.org/wiki/%D0%A1%D1%82%D0%B5%D0%BA). Это такая коллекция элементов, в которой новые элементы добавляются в конец и берутся с конца.
|
||||
|
||||
<img src="stack.svg">
|
||||
<img src="stack.png">
|
||||
|
||||
Например, стеком является колода карт, в которую новые карты кладутся сверху, и берутся -- тоже сверху.
|
||||
|
||||
|
@ -225,7 +225,7 @@ alert( a ); // 0,,,,,5
|
|||
|
||||
Методы `push/pop` выполняются быстро, а `shift/unshift` -- медленно.
|
||||
|
||||
<img src="array-speed.svg">
|
||||
<img src="array-speed.png">
|
||||
|
||||
|
||||
Чтобы понять, почему работать с концом массива -- быстрее, чем с его началом, разберём подробнее происходящее при операции:
|
||||
|
@ -243,7 +243,7 @@ fruits.shift(); // убрать 1 элемент с начала
|
|||
<li>Обновить свойство `length`.</li>
|
||||
</ol>
|
||||
|
||||
<img src="array-shift.svg">
|
||||
<img src="array-shift.png">
|
||||
|
||||
**Чем больше элементов в массиве, тем дольше их перемещать, это много операций с памятью.**
|
||||
|
||||
|
@ -257,7 +257,7 @@ fruits.shift(); // убрать 1 элемент с начала
|
|||
fruits.pop(); // убрать 1 элемент с конца
|
||||
```
|
||||
|
||||
<img src="array-pop.svg">
|
||||
<img src="array-pop.png">
|
||||
|
||||
**Перемещать при `pop` не требуется, так как прочие элементы после этой операции остаются на тех же индексах.**
|
||||
|
||||
|
|
|
@ -23,7 +23,7 @@ var list = {
|
|||
```
|
||||
|
||||
Графическое представление этого списка:
|
||||
<img src="linked-list.svg">
|
||||
<img src="linked-list.png">
|
||||
|
||||
Альтернативный способ создания:
|
||||
|
||||
|
|
|
@ -147,7 +147,7 @@ alert( result ); // 15
|
|||
|
||||
Поток вычислений получается такой
|
||||
|
||||
<img src="reduce.svg">
|
||||
<img src="reduce.png">
|
||||
|
||||
В виде таблицы где каждая строка -- вызов функции на очередном элементе массива:
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue