beautify 1st part of the tutorial

This commit is contained in:
Ilya Kantor 2015-03-10 12:36:58 +03:00
parent e3dd2cedc0
commit 6444024a9d
327 changed files with 2358 additions and 1986 deletions

View file

@ -30,9 +30,9 @@ var fruits = ["Яблоко", "Апельсин", "Слива"];
//+ run
var fruits = ["Яблоко", "Апельсин", "Слива"];
alert(fruits[0]); // Яблоко
alert(fruits[1]); // Апельсин
alert(fruits[2]); // Слива
alert( fruits[0] ); // Яблоко
alert( fruits[1] ); // Апельсин
alert( fruits[2] ); // Слива
```
Элемент можно всегда заменить:
@ -51,9 +51,9 @@ fruits[3] = 'Лимон'; // теперь ["Яблоко", "Апельсин", "
```js
//+ run
var fruits = ["Яблоко", "Апельсин", "Груша"];
var fruits = ["Яблоко", "Апельсин", "Груша"];
alert(fruits.length); // 3
alert( fruits.length ); // 3
```
**Через `alert` можно вывести и массив целиком.**
@ -62,9 +62,9 @@ alert(fruits.length); // 3
```js
//+ run
var fruits = ["Яблоко", "Апельсин", "Груша"];
var fruits = ["Яблоко", "Апельсин", "Груша"];
alert(fruits); // Яблоко,Апельсин,Груша
alert( fruits ); // Яблоко,Апельсин,Груша
```
**В массиве может храниться любое число элементов любого типа.**
@ -72,7 +72,7 @@ alert(fruits); // Яблоко,Апельсин,Груша
В том числе, строки, числа, объекты, вот например:
```js
//+ run
//+ run no-beautify
// микс значений
var arr = [ 1, 'Имя', { name: 'Петя' }, true ];
@ -108,7 +108,7 @@ var fruits = ["Яблоко", "Апельсин", "Груша"];
alert( fruits.pop() ); // удалили "Груша"
alert(fruits); // Яблоко, Апельсин
alert( fruits ); // Яблоко, Апельсин
```
</dd>
@ -121,7 +121,7 @@ var fruits = ["Яблоко", "Апельсин"];
fruits.push("Груша");
alert(fruits); // Яблоко, Апельсин, Груша
alert( fruits ); // Яблоко, Апельсин, Груша
```
Является полным аналогом `fruits[fruits.length] = ...`.
@ -139,7 +139,7 @@ var fruits = ["Яблоко", "Апельсин", "Груша"];
alert( fruits.shift() ); // удалили Яблоко
alert(fruits); // Апельсин, Груша
alert( fruits ); // Апельсин, Груша
```
</dd>
@ -151,7 +151,7 @@ var fruits = ["Апельсин", "Груша"];
fruits.unshift('Яблоко');
alert(fruits); // Яблоко, Апельсин, Груша
alert( fruits ); // Яблоко, Апельсин, Груша
```
</dd>
@ -167,7 +167,7 @@ fruits.push("Апельсин", "Персик");
fruits.unshift("Ананас", "Лимон");
// результат: ["Ананас", "Лимон", "Яблоко", "Апельсин", "Персик"]
alert(fruits);
alert( fruits );
```
## Внутреннее устройство массива
@ -184,10 +184,10 @@ function eat(arr) {
var arr = ["нам", "не", "страшен", "серый", "волк"]
alert(arr.length); // 5
alert( arr.length ); // 5
eat(arr);
eat(arr);
alert(arr.length); // 3, в функцию массив не скопирован, а передана ссылка
alert( arr.length ); // 3, в функцию массив не скопирован, а передана ссылка
```
**Ещё одно следствие -- можно присваивать в массив любые свойства.**
@ -215,7 +215,7 @@ var a = [];
a[0] = 0;
a[5] = 5;
alert(a); // 0,,,,,5
alert( a ); // 0,,,,,5
```
Эти запятые появляются потому, что алгоритм вывода массива идёт от `0` до `arr.length` и выводит всё через запятую. Отсутствие значений даёт несколько запятых подряд.
@ -254,7 +254,7 @@ fruits.shift(); // убрать 1 элемент с начала
Действия при операции:
```js
fruits.pop(); // убрать 1 элемент с конца
fruits.pop(); // убрать 1 элемент с конца
```
<img src="array-pop.svg">
@ -273,7 +273,7 @@ fruits.pop(); // убрать 1 элемент с конца
var arr = ["Яблоко", "Апельсин", "Груша"];
*!*
for (var i=0; i<arr.length; i++) {
for (var i = 0; i < arr.length; i++) {
alert( arr[i] );
}
*/!*
@ -339,13 +339,13 @@ alert(arr.length); // *!*1001*/!*
```js
//+ run
var arr = [1, 2, 3, 4, 5];
var arr = [1, 2, 3, 4, 5];
arr.length = 2; // укоротить до 2 элементов
alert(arr); // [1, 2]
alert( arr ); // [1, 2]
arr.length = 5; // вернуть length обратно, как было
alert(arr[3]); // undefined: значения не вернулись
alert( arr[3] ); // undefined: значения не вернулись
```
Самый простой способ очистить массив -- это `arr.length=0`.
@ -367,12 +367,12 @@ var arr = *!*new Array*/!*("Яблоко", "Груша", "и т.п.");
```js
//+ run
var arr = new Array(2, 3);
alert(arr[0]); // 2, создан массив [2, 3], всё ок
var arr = new Array(2, 3);
alert( arr[0] ); // 2, создан массив [2, 3], всё ок
*!*
arr = new Array(2); // создаст массив [2] ?
alert(arr[0]); // undefined! у нас массив без элементов, длины 2
alert( arr[0] ); // undefined! у нас массив без элементов, длины 2
*/!*
```
@ -394,7 +394,7 @@ var matrix = [
[7, 8, 9]
];
alert(matrix[1][1]); // центральный элемент
alert( matrix[1][1] ); // центральный элемент
```
## Внутреннее представление массивов
@ -428,10 +428,10 @@ alert(matrix[1][1]); // центральный элемент
```js
// предпочтительное
var arr = [ элемент1, элемент2... ];
var arr = [элемент1, элемент2...];
// new Array
var arr = new Array( элемент1, элемент2...);
var arr = new Array(элемент1, элемент2...);
```
При этом `new Array(число)` создаёт массив заданной длины, *без элементов*. Чтобы избежать ошибок, предпочтителен первый синтаксис.