Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
4cadc6e
Исправление мелких ошибок.
Romchik Jun 29, 2015
c3d8d1d
Исправлено построение предложения.
Romchik Jun 29, 2015
5b46958
Исправление мелких ошибок.
Romchik Jun 29, 2015
1c1c49b
Исправление мелких ошибок.
Romchik Jun 29, 2015
6cc463c
Исправление мелких ошибок.
Romchik Jun 29, 2015
fac944a
Исправление мелких ошибок.
Romchik Jun 29, 2015
3ab7836
Исправление мелких ошибок.
Romchik Jun 29, 2015
143c621
Исправление мелких ошибок.
Romchik Jun 29, 2015
c64f6fd
Исправление мелких ошибок.
Romchik Jun 29, 2015
3067230
Исправление мелких ошибок.
Romchik Jun 29, 2015
29695b7
Исправление мелких ошибок.
Romchik Jun 29, 2015
760c06b
Исправление мелких ошибок.
Romchik Jun 29, 2015
436c412
Исправление мелких ошибок.
Romchik Jun 30, 2015
8becd6d
Исправление мелких ошибок.
Romchik Jun 30, 2015
e1ba88c
Исправление мелких ошибок.
Romchik Jun 30, 2015
7bb7376
Исправление мелких ошибок.
Romchik Jun 30, 2015
296232e
Исправление мелких ошибок.
Romchik Jun 30, 2015
7444d2e
Исправление мелких ошибок.
Romchik Jun 30, 2015
aea3e1a
Исправление мелких ошибок.
Romchik Jun 30, 2015
29789da
Исправление мелких ошибок.
Romchik Jun 30, 2015
f08b0de
Исправление мелких ошибок.
Romchik Jun 30, 2015
9f507a9
Исправление мелких ошибок.
Romchik Jun 30, 2015
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions 1-js/1-getting-started/4-devtools/article.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@
<ul>
<li>При клике на `bug.html` вы перейдёте во вкладку с кодом к месту ошибки, там будет и краткое описание ошибки.
В данном случае ошибка вызвана строкой `lalala`, которая интерпретатору непонятна. </li>
<li>В этом же окошке же вы можете набирать команды на JavaScript, например наберите `alert("Hello")` -- команду вывода сообщения и запустите её нажатием [key Enter]. Мы познакомимся с этой и другими командами далее.</li>
<li>В этом же окошке же вы можете набирать команды на JavaScript. Например, наберите `alert("Hello")` -- команду вывода сообщения и запустите её нажатием [key Enter]. Мы познакомимся с этой и другими командами далее.</li>
<li>Для перевода курсора на следующую строку (если команда состоит из нескольких строк) -- используется сочетание [key Shift+Enter].</li>
</ul>

Expand All @@ -49,9 +49,9 @@

<img src="firebug-gray.png">

Если иконки не видно -- возможно, у вас выключена панель расширений. Нажмите [key Ctrl+\] для ее показа.
Если иконки не видно -- возможно, у вас выключена панель расширений. Нажмите [key Ctrl+\] для её отображения.

Ну а если ее нет и там, то нажмите [key F12] -- это горячая клавиша для запуска Firebug, расширение появится, если установлено.
Ну а если её нет и там, то нажмите [key F12] -- это горячая клавиша для запуска Firebug, расширение появится, если установлено.
</li>
<li>Далее, для того чтобы консоль заработала, её надо включить.

Expand All @@ -72,9 +72,9 @@
</li>
</ol>

Как и в Chrome, можно набирать и запускать команды, область для команд на рисунке находится справа, запуск команд осуществляется нажатием [key Ctrl+Enter] (для Mac -- [key Cmd]).
Как и в Chrome, можно набирать и запускать команды. Область для команд на рисунке находится справа, запуск команд осуществляется нажатием [key Ctrl+Enter] (для Mac -- [key Cmd]).

Можно перенести её вниз. нажав на кнопочку <img src="firefox_console_down.png"> -- на рисунке она не видна, но есть справа-снизу панели разработки.
Можно перенести её вниз, нажав на кнопочку <img src="firefox_console_down.png"> (на рисунке её не видно, но она присутствует в правом нижнем углу панели разработки).

Об основных возможностях можно прочитать на сайте <a href="http://firebug.ru">firebug.ru</a>.

Expand Down
2 changes: 1 addition & 1 deletion 1-js/2-first-steps/1-hello-world/1-hello-alert/task.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,6 @@

Сделайте страницу, которая выводит "Я - JavaScript!".

Создайте ее на диске, откройте в браузере, убедитесь, что все работает.
Создайте её на диске, откройте в браузере, убедитесь, что всё работает.

[demo src="solution"]
2 changes: 1 addition & 1 deletion 1-js/2-first-steps/1-hello-world/article.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
## Тег SCRIPT

[smart header="А побыстрее?"]
В том (и только в том!) случае, если читатель нетерпелив и уже разрабатывал на JavaScript или имеет достаточно опыта в другом программировании, он может не читать каждую статью этого раздела, а прыгнуть сразу на главу [](/javascript-specials). Там будет кратко самое основное.
В том (и только в том!) случае, если читатель нетерпелив и уже разрабатывал на JavaScript или имеет достаточно опыта в другом языке программировании, он может не читать каждую статью этого раздела, а перепрыгнуть сразу к главе [](/javascript-specials). Там будет кратко самое основное.

Если же у вас есть достаточно времени и желание начать с азов, то читайте дальше :)
[/smart]
Expand Down
14 changes: 7 additions & 7 deletions 1-js/2-first-steps/11-uibasic/article.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,14 +11,14 @@
alert(сообщение)
```

`alert` выводит на экран окно с сообщением и приостанавливает выполнение скрипта, пока пользователь не нажмет "ОК".
`alert` выводит на экран окно с сообщением и приостанавливает выполнение скрипта, пока пользователь не нажмёт "ОК".

```js
//+ run
alert( "Привет" );
```

Окно сообщения, которое выводится, является *модальным окном*. Слово "модальное" означает, что посетитель не может взаимодействовать со страницей, нажимать другие кнопки и т.п., пока не разберется с окном. В данном случае - пока не нажмет на "OK".
Окно сообщения, которое выводится, является *модальным окном*. Слово "модальное" означает, что посетитель не может взаимодействовать со страницей, нажимать другие кнопки и т.п., пока не разберётся с окном. В данном случае - пока не нажмёт на "OK".

## prompt

Expand All @@ -33,7 +33,7 @@ result = prompt(title, default);

Пользователь должен либо что-то ввести и нажать OK, либо отменить ввод кликом на CANCEL или нажатием [key Esc] на клавиатуре.

**Вызов `prompt` возвращает то, что ввел посетитель -- строку или специальное значение `null`, если ввод отменен.**
**Вызов `prompt` возвращает то, что ввёл посетитель -- строку или специальное значение `null`, если ввод отменён.**

[warn header="Safari 5.1+ не возвращает `null`"]
Единственный браузер, который не возвращает `null` при отмене ввода -- это Safari. При отсутствии ввода он возвращает пустую строку. Предположительно, это ошибка в браузере.
Expand All @@ -53,7 +53,7 @@ alert('Вам ' + years + ' лет!')
[warn header="Всегда указывайте `default`"]
Второй параметр может отсутствовать. Однако при этом IE вставит в диалог значение по умолчанию `"undefined"`.

Запустите этот код <u>в IE</u>, чтобы понять о чем речь:
Запустите этот код <u>в IE</u>, чтобы понять о чём речь:

```js
//+ run
Expand Down Expand Up @@ -106,6 +106,6 @@ alert( isAdmin );

<ul>
<li>`alert` выводит сообщение.</li>
<li>`prompt` выводит сообщение и ждет, пока пользователь введет текст, а затем возвращает введенное значение или `null`, если ввод отменен (CANCEL/[key Esc]).</li>
<li>`confirm` выводит сообщение и ждет, пока пользователь нажмет "OK" или "CANCEL" и возвращает `true/false`.</li>
</ul>
<li>`prompt` выводит сообщение и ждёт, пока пользователь введёт текст, а затем возвращает введённое значение или `null`, если ввод отменён (CANCEL/[key Esc]).</li>
<li>`confirm` выводит сообщение и ждёт, пока пользователь нажмёт "OK" или "CANCEL" и возвращает `true/false`.</li>
</ul>
2 changes: 1 addition & 1 deletion 1-js/2-first-steps/13-logical-ops/article.md
Original file line number Diff line number Diff line change
Expand Up @@ -272,7 +272,7 @@ alert( !true ); // false
alert( !0 ); // true
```

**В частности, двойное НЕ используются для преобразования значений к логическому типу:**
**В частности, двойное НЕ используют для преобразования значений к логическому типу:**

```js
//+ run
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@

[importance 5]

Напишите цикл, который предлагает `prompt` ввести число, большее `100`. Если посетитель ввел другое число -- попросить ввести еще раз, и так далее.
Напишите цикл, который предлагает `prompt` ввести число, большее `100`. Если посетитель ввёл другое число -- попросить ввести ещё раз, и так далее.

Цикл должен спрашивать число пока либо посетитель не введет число, большее `100`, либо не нажмет кнопку Cancel (ESC).
Цикл должен спрашивать число пока либо посетитель не введёт число, большее `100`, либо не нажмёт кнопку Cancel (ESC).

Предполагается, что посетитель вводит только числа, предусматривать обработку нечисловых строк в этой задаче необязательно.
Предполагается, что посетитель вводит только числа. Предусматривать обработку нечисловых строк в этой задаче необязательно.

[demo /]
12 changes: 6 additions & 6 deletions 1-js/2-first-steps/15-while-for/article.md
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,7 @@ for (i = 0; i < 3; i++) {
<li>Идти на шаг 2.</li>
</ol>

Иными, словами, поток выполнения: `начало` -> (если `условие` -> `тело` -> `шаг`) -> (если `условие` -> `тело` -> `шаг`) -> ... и так далее, пока верно `условие`.
Иными словами, поток выполнения: `начало` -> (если `условие` -> `тело` -> `шаг`) -> (если `условие` -> `тело` -> `шаг`) -> ... и так далее, пока верно `условие`.

[smart]
В цикле также можно определить переменную:
Expand Down Expand Up @@ -161,7 +161,7 @@ for (; i < 3;) {
}
```

А можно и вообще убрать все, получив бесконечный цикл:
А можно и вообще убрать всё, получив бесконечный цикл:

```js
for (;;) {
Expand Down Expand Up @@ -213,7 +213,7 @@ alert( 'Сумма: ' + sum );

Её используют, если понятно, что на текущем повторе цикла делать больше нечего.

Например, цикл ниже использует `continue`, чтобы не выводить четные значения:
Например, цикл ниже использует `continue`, чтобы не выводить чётные значения:

```js
//+ run no-beautify
Expand All @@ -225,7 +225,7 @@ for (var i = 0; i < 10; i++) {
}
```

Для четных `i` срабатывает `continue`, выполнение тела прекращается и управление передается на следующий проход `for`.
Для чётных `i` срабатывает `continue`, выполнение тела прекращается и управление передаётся на следующий проход `for`.

[smart header="Директива `continue` позволяет обойтись без скобок"]

Expand Down Expand Up @@ -313,7 +313,7 @@ alert('Готово!');
outer: for (var i = 0; i < 3; i++) { ... }
```

Можно также выносить ее на отдельную строку:
Можно также выносить её на отдельную строку:

```js
//+ no-beautify
Expand Down Expand Up @@ -342,7 +342,7 @@ JavaScript поддерживает три вида циклов:

Обе этих директивы поддерживают "метки", которые ставятся перед циклом. Метки -- единственный способ для `break/continue` повлиять на выполнение внешнего цикла.

Заметим, что метки не позволяют прыгнуть на произвольное место кода, в JavaScript нет такой возможности.
Заметим, что метки не позволяют прыгнуть в произвольное место кода, в JavaScript нет такой возможности.



Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
[importance 4]

Следующая функция возвращает `true`, если параметр `age` больше `18`.
В ином случае она задает вопрос посредством вызова `confirm` и возвращает его результат.
В ином случае она задаёт вопрос посредством вызова `confirm` и возвращает его результат.

```js
function checkAge(age) {
Expand Down Expand Up @@ -32,4 +32,4 @@ function checkAge(age) {
}
```

Есть ли хоть одно отличие в поведении этого варианта?
Есть ли хоть одно отличие в поведении этого варианта?
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
[importance 4]

Следующая функция возвращает `true`, если параметр `age` больше `18`.
В ином случае она задает вопрос `confirm` и возвращает его результат.
В ином случае она задаёт вопрос `confirm` и возвращает его результат.

```js
function checkAge(age) {
Expand Down
4 changes: 2 additions & 2 deletions 1-js/2-first-steps/17-function-basics/article.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

Зачастую нам надо повторять одно и то же действие во многих частях программы.

Например, красиво вывести сообщение необходимо при приветствии посетителя, при выходе посетителя с сайта, еще где-нибудь.
Например, красиво вывести сообщение необходимо при приветствии посетителя, при выходе посетителя с сайта, ещё где-нибудь.

Чтобы не повторять один и тот же код во многих местах, придуманы функции. Функции являются основными "строительными блоками" программы.
[cut]
Expand Down Expand Up @@ -285,7 +285,7 @@ alert(test); // 20

**Для возврата значения используется директива `return`.**

Она может находиться в любом месте функции. Как только до нее доходит управление -- функция завершается и значение передается обратно.
Она может находиться в любом месте функции. Как только до неё доходит управление -- функция завершается и значение передается обратно.

Вызовов `return` может быть и несколько, например:

Expand Down
2 changes: 1 addition & 1 deletion 1-js/2-first-steps/19-recursion/2-factorial/solution.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,4 +22,4 @@ function factorial(n) {
alert( factorial(5) ); // 120
```

В этом случае вызов `factorial(1)` сведется к `1*factorial(0)`, будет дополнительный шаг рекурсии.
В этом случае вызов `factorial(1)` сведётся к `1*factorial(0)`, будет дополнительный шаг рекурсии.
2 changes: 1 addition & 1 deletion 1-js/2-first-steps/19-recursion/2-factorial/task.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,4 +26,4 @@ n! = n * (n - 1) * (n - 2) * ...*1
alert( factorial(5) ); // 120
```

Подсказка: обратите внимание, что `n!` можно записать как `n * (n-1)!`, например `3! = 3*2! = 3*2*1! = 6`
Подсказка: обратите внимание, что `n!` можно записать как `n * (n-1)!`. Например: `3! = 3*2! = 3*2*1! = 6`
10 changes: 5 additions & 5 deletions 1-js/2-first-steps/19-recursion/3-fibonacci-numbers/solution.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ alert( fib(7) ); // 13

При больших значениях `n` оно будет работать очень медленно. Например, `fib(77)` уже будет вычисляться очень долго.

Это потому, что функция порождает обширное дерево вложенных вызовов. При этом ряд значений вычисляются много раз. Например, посмотрим на отрывок вычислений:
Это потому, что функция порождает обширное дерево вложенных вызовов. При этом ряд значений вычисляется много раз. Например, посмотрим на отрывок вычислений:

```js
//+ no-beautify
Expand Down Expand Up @@ -53,20 +53,20 @@ a b c
a = b, b = c;
c = a + b;

/* стало так (еще число):
/* стало так (ещё число):
a b c
1, 1, 2, 3
*/
```

Следующий шаг даст нам еще одно число последовательности:
Следующий шаг даст нам ещё одно число последовательности:

```js
//+ no-beautify
a = b, b = c;
c = a + b;

/* стало так (еще число):
/* стало так (ещё число):
a b c
1, 1, 2, 3, 5
*/
Expand Down Expand Up @@ -96,4 +96,4 @@ alert( fib(7) ); // 13
alert( fib(77) ); // 5527939700884757
```

Цикл здесь начинается с `i=3`, так как первое и второе числа Фибоначчи заранее записаны в переменные `a=1`, `b=1`.
Цикл здесь начинается с `i=3`, так как первое и второе числа Фибоначчи заранее записаны в переменные `a=1`, `b=1`.
Loading