Skip to content

Commit 90855e8

Browse files
committed
final move to png
1 parent 0ed8583 commit 90855e8

File tree

43 files changed

+101
-101
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

43 files changed

+101
-101
lines changed

1-js/1-getting-started/1-intro/article.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ JavaScript -- быстрый и мощный язык, но браузер на
6464

6565
**Большинство возможностей JavaScript в браузере ограничено текущим окном и страницей.**
6666

67-
<img src="limitations.svg" width="530" height="400">
67+
<img src="limitations.png" width="530" height="400">
6868

6969
<ul>
7070
<li>JavaScript не может читать/записывать произвольные файлы на жесткий диск, копировать их или вызывать программы. Он не имеет прямого доступа к операционной системе.

1-js/2-first-steps/5-variables/article.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ var user = 'John', age = 25, message = 'Hello';
5252

5353
Например, переменная `message` -- это коробка, в которой хранится значение `"Hello!"`:
5454

55-
<img src="variable.svg">
55+
<img src="variable.png">
5656

5757
В коробку можно положить любое значение, а позже - поменять его. Значение в переменной можно изменять сколько угодно раз:
5858

@@ -69,7 +69,7 @@ alert( message );
6969

7070
При изменении значения старое содержимое переменной удаляется.
7171

72-
<img src="variable-change.svg">
72+
<img src="variable-change.png">
7373

7474
Можно объявить две переменные и копировать данные из одной в другую:
7575

1-js/3-writing-js/2-coding-style/article.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
Шпаргалка с правилами синтаксиса (детально их варианты разобраны далее):
99

10-
<img src="code-style.svg">
10+
<img src="code-style.png">
1111

1212
<!--
1313
```js
@@ -57,7 +57,7 @@ if (n < 0) {
5757
```
5858
-->
5959

60-
<img src="figure-bracket-style.svg">
60+
<img src="figure-bracket-style.png">
6161

6262
Если у вас уже есть опыт в разработке, и вы привыкли делать скобку на отдельной строке -- это тоже вариант. В конце концов, решать вам. Но в большинстве JavaScript-фреймворков стиль именно такой.
6363

1-js/4-data-structures/4-object/article.md

+4-4
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313

1414
Её можно легко представить как шкаф с подписанными ящиками. Все данные хранятся в ящичках. По имени можно легко найти ящик и взять то значение, которое в нём лежит.
1515

16-
<img src="object.svg">
16+
<img src="object.png">
1717

1818
В отличие от реальных шкафов, в ассоциативный массив можно в любой момент добавить новые именованные "ящики" или удалить существующие. Далее мы увидим примеры, как это делается.
1919

@@ -40,7 +40,7 @@
4040
var person = {}; // пока пустой
4141
```
4242

43-
<img src="object-person-empty.svg">
43+
<img src="object-person-empty.png">
4444

4545

4646
Основные операции с объектами -- это создание, получение и удаление свойств.
@@ -55,7 +55,7 @@ person.name = 'Вася';
5555
person.age = 25; // запишем ещё одно свойство: с именем 'age' и значением 25
5656
```
5757

58-
<img src="object-person-1.svg">
58+
<img src="object-person-1.png">
5959

6060
Значения хранятся "внутри" ящиков. Обратим внимание -- любые значения, любых типов: число, строка -- не важно.
6161

@@ -72,7 +72,7 @@ delete person.age;
7272

7373
Осталось только свойство `name`:
7474

75-
<img src="object-person-2.svg">
75+
<img src="object-person-2.png">
7676

7777
Следующая операция:
7878
<ol start="4">

1-js/4-data-structures/6-object-reference/article.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ var phrase = message;
1515

1616
В результате такого копирования получились две полностью независимые переменные, в каждой из которых хранится значение `"Привет"`.
1717

18-
<img src="variable-copy-value.svg">
18+
<img src="variable-copy-value.png">
1919

2020
## Копирование по ссылке
2121

@@ -31,7 +31,7 @@ var user = {
3131
};
3232
```
3333

34-
<img src="variable-contains-reference.svg">
34+
<img src="variable-contains-reference.png">
3535

3636
Внимание: объект -- вне переменной. В переменной -- лишь "адрес" (ссылка) для него.
3737

@@ -48,7 +48,7 @@ var admin = user; // скопировали ссылку
4848

4949
Получили две переменные, в которых находятся ссылки на один и тот же объект:
5050

51-
<img src="variable-copy-reference.svg">
51+
<img src="variable-copy-reference.png">
5252

5353
**Так как объект всего один, то изменения через любую переменную видны в других переменных:**
5454

1-js/4-data-structures/7-array/article.md

+5-5
Original file line numberDiff line numberDiff line change
@@ -84,13 +84,13 @@ alert( arr[2].name ); // Петя
8484

8585
Одно из применений массива -- это [очередь](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). В классическом программировании так называют упорядоченную коллекцию элементов, такую что элементы добавляются в конец, а обрабатываются -- с начала.
8686

87-
<img src="queue.svg">
87+
<img src="queue.png">
8888

8989
В реальной жизни эта структура данных встречается очень часто. Например, очередь сообщений, которые надо показать на экране.
9090

9191
Очень близка к очереди еще одна структура данных: [стек](http://ru.wikipedia.org/wiki/%D0%A1%D1%82%D0%B5%D0%BA). Это такая коллекция элементов, в которой новые элементы добавляются в конец и берутся с конца.
9292

93-
<img src="stack.svg">
93+
<img src="stack.png">
9494

9595
Например, стеком является колода карт, в которую новые карты кладутся сверху, и берутся -- тоже сверху.
9696

@@ -225,7 +225,7 @@ alert( a ); // 0,,,,,5
225225

226226
Методы `push/pop` выполняются быстро, а `shift/unshift` -- медленно.
227227

228-
<img src="array-speed.svg">
228+
<img src="array-speed.png">
229229

230230

231231
Чтобы понять, почему работать с концом массива -- быстрее, чем с его началом, разберём подробнее происходящее при операции:
@@ -243,7 +243,7 @@ fruits.shift(); // убрать 1 элемент с начала
243243
<li>Обновить свойство `length`.</li>
244244
</ol>
245245

246-
<img src="array-shift.svg">
246+
<img src="array-shift.png">
247247

248248
**Чем больше элементов в массиве, тем дольше их перемещать, это много операций с памятью.**
249249

@@ -257,7 +257,7 @@ fruits.shift(); // убрать 1 элемент с начала
257257
fruits.pop(); // убрать 1 элемент с конца
258258
```
259259

260-
<img src="array-pop.svg">
260+
<img src="array-pop.png">
261261

262262
**Перемещать при `pop` не требуется, так как прочие элементы после этой операции остаются на тех же индексах.**
263263

1-js/4-data-structures/8-array-methods/9-output-single-linked-list/task.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ var list = {
2323
```
2424

2525
Графическое представление этого списка:
26-
<img src="linked-list.svg">
26+
<img src="linked-list.png">
2727

2828
Альтернативный способ создания:
2929

1-js/4-data-structures/9-array-iteration/article.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,7 @@ alert( result ); // 15
147147

148148
Поток вычислений получается такой
149149

150-
<img src="reduce.svg">
150+
<img src="reduce.png">
151151

152152
В виде таблицы где каждая строка -- вызов функции на очередном элементе массива:
153153

1-js/5-functions-closures/6-memory-management/article.md

+4-4
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ var family = marry({
100100

101101
Получившийся объект `family` можно изобразить так:
102102

103-
<img src="family.svg">
103+
<img src="family.png">
104104

105105
Здесь стрелочками показаны ссылки, а вот свойство `name` ссылкой не является, там хранится примитив, поэтому оно внутри самого объекта.
106106

@@ -115,13 +115,13 @@ delete family.mother.husband;
115115

116116
А если две, то получается, что от бывшего `family.father` ссылки выходят, но в него -- ни одна не идёт:
117117

118-
<img src="family-no-father.svg">
118+
<img src="family-no-father.png">
119119

120120
**Совершенно неважно, что из объекта выходят какие-то ссылки, они не влияют на достижимость этого объекта.**
121121

122122
Бывший `family.father` стал недостижимым и будет удалён вместе со своми данными, которые также более недоступны из программы.
123123

124-
<img src="family-no-father-2.svg">
124+
<img src="family-no-father-2.png">
125125

126126
А теперь -- рассмотрим более сложный случай. Что будет, если удалить главную ссылку `family`?
127127

@@ -133,7 +133,7 @@ window.family = null;
133133

134134
Результат:
135135

136-
<img src="family-no-family.svg">
136+
<img src="family-no-family.png">
137137

138138
Как видим, объекты в конструкции всё ещё связаны между собой. Однако, поиск от корня их не находит, они не достижимы, и значит сборщик мусора удалит их из памяти.
139139

1-js/7-js-misc/3-setTimeout-setInterval/article.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -184,7 +184,7 @@ setTimeout(function run() {
184184

185185
При `setInterval` внутренний таймер будет срабатывать чётко каждые `100` мс и вызывать `func(i)`:
186186

187-
<img src="setinterval-interval.svg">
187+
<img src="setinterval-interval.png">
188188

189189
Вы обратили внимание?...
190190

@@ -202,7 +202,7 @@ setTimeout(function run() {
202202

203203
А так будет выглядить картинка с рекурсивным `setTimeout`:
204204

205-
<img src="settimeout-interval.svg">
205+
<img src="settimeout-interval.png">
206206

207207
**При рекурсивном `setTimeout` задержка всегда фиксирована и равна 100мс.**
208208

1-js/9-prototypes/1-prototype/article.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ alert( rabbit.eats ); // true
3838

3939
Иллюстрация происходящего при чтении `rabbit.eats` (поиск идет снизу вверх):
4040

41-
<img src="proto-animal-rabbit.svg">
41+
<img src="proto-animal-rabbit.png">
4242

4343
**Объект, на который указывает ссылка `__proto__`, называется *"прототипом"*. В данном случае получилось, что `animal` является прототипом для `rabbit`.**
4444

1-js/9-prototypes/3-native-prototypes/article.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ alert( {}.__proto__.toString ); // function toString
3333
<li>В дальнейшем при обращении к `obj.toString()` -- функция будет взята из `Object.prototype`.</li>
3434
</ol>
3535

36-
<img src="native-prototypes-object.svg">
36+
<img src="native-prototypes-object.png">
3737

3838
Это можно легко проверить:
3939

@@ -55,7 +55,7 @@ alert( obj.__proto__.__proto__ ); // null, нет
5555

5656
Точно такой же подход используется в массивах `Array`, функциях `Function` и других объектах. Встроенные методы для них находятся в `Array.prototype`, `Function.prototype` и т.п.
5757

58-
<img src="native-prototypes-classes.svg">
58+
<img src="native-prototypes-classes.png">
5959

6060
Например, когда мы создаём массив, `[1, 2, 3]`, то это альтернативный вариант синтаксиса `new Array`, так что у массивов есть стандартный прототип `Array.prototype`.
6161

@@ -81,7 +81,7 @@ alert( arr ); // 1,2,3 <-- результат Array.prototype.toString
8181

8282
Как мы видели раньше, у `Object.prototype` есть свой `toString`, но так как в `Array.prototype` он ищется первым, то берётся именно вариант для массивов:
8383

84-
<img src="native-prototypes-array-tostring.svg">
84+
<img src="native-prototypes-array-tostring.png">
8585

8686

8787
[smart header="Вызов методов через `apply` из прототипа"]

1-js/9-prototypes/5-class-inheritance/article.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212

1313
Взглянем на него ещё раз на примере `Array`, который наследует от `Object`:
1414

15-
<img src="class-inheritance-array-object.svg">
15+
<img src="class-inheritance-array-object.png">
1616

1717
<ul>
1818
<li>Методы массивов `Array` хранятся в `Array.prototype`.</li>
@@ -109,7 +109,7 @@ Rabbit.prototype.jump = function() { ... };
109109

110110
Теперь выглядеть иерархия будет так:
111111

112-
<img src="class-inheritance-rabbit-animal.svg">
112+
<img src="class-inheritance-rabbit-animal.png">
113113

114114
В `prototype` по умолчанию всегда находится свойство `constructor`, указывающее на функцию-конструктор. В частности, `Rabbit.prototype.constructor == Rabbit`. Если мы рассчитываем использовать это свойство, то при замене `prototype` через `Object.create` нужно его явно сохранить:
115115

@@ -225,7 +225,7 @@ Rabbit.prototype.run = function(speed) {
225225

226226
Вызов `rabbit.run()` теперь будет брать `run` из своего прототипа:
227227

228-
<img src="class-inheritance-rabbit-run-animal.svg">
228+
<img src="class-inheritance-rabbit-run-animal.png">
229229

230230

231231
### Вызов метода родителя внутри своего

10-regular-expressions-javascript/3-regexp-character-classes/article.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ alert( "Я люблю HTML5!".match(/\s\w\w\w\w\d/) ); // 'HTML5'
7272

7373
Совпадение (каждому классу в регэкспе соответствует один символ результата):
7474

75-
<img src="love-html5-classes.svg">
75+
<img src="love-html5-classes.png">
7676

7777
## Граница слова \b
7878

@@ -103,7 +103,7 @@ alert( "Hello, Javascript!".match(/\bJava\b/) ); // null
103103

104104
Например, в строке <code class="subject">Hello, Java!</code> под `\b` подходят следующие позиции:
105105

106-
<img src="hello-java-boundaries.svg">
106+
<img src="hello-java-boundaries.png">
107107

108108
Как правило, `\b` используется, чтобы искать отдельно стоящее слово. Не на русском конечно, хотя подобную проверку, как мы увидим далее, можно легко сделать для любого языка. А вот на английском, как в примере выше или для чисел, которые являются частным случаем `\w` -- легко.
109109

0 commit comments

Comments
 (0)