minor renovations, beautify round 2 (final)

This commit is contained in:
Ilya Kantor 2015-03-12 10:42:43 +03:00
parent 8410ce6421
commit 14d324c9e4
9 changed files with 26 additions and 23 deletions

View file

@ -47,7 +47,7 @@ while (true) {
//+ run //+ run
var i = 3; var i = 3;
*!* *!*
while (i) { // при i=0 значение в скобках будет false и цикл остановится while (i) { // при i, равном 0, значение в скобках будет false и цикл остановится
*/!* */!*
alert( i ); alert( i );
i--; i--;
@ -126,7 +126,7 @@ for (i = 0; i < 3; i++) {
```js ```js
//+ run no-beautify //+ run no-beautify
for (*!*var*/!* i=0; i<3; i++) { for (*!*var*/!* i = 0; i < 3; i++) {
alert(i); // 0, 1, 2 alert(i); // 0, 1, 2
} }
``` ```

View file

@ -67,13 +67,13 @@ alert( message ); // <-- будет ошибка, т.к. переменная в
//+ no-beautify //+ no-beautify
function count() { function count() {
// переменные i,j не будут уничтожены по окончании цикла // переменные i,j не будут уничтожены по окончании цикла
for (*!*var*/!* i=0; i<3; i++) { for (*!*var*/!* i = 0; i < 3; i++) {
*!*var*/!* j = i * 2; *!*var*/!* j = i * 2;
} }
*!* *!*
alert(i); // i=3, последнее значение i, при нём цикл перестал работать alert( i ); // i=3, последнее значение i, при нём цикл перестал работать
alert(j); // j=4, последнее значение j, которое вычислил цикл alert( j ); // j=4, последнее значение j, которое вычислил цикл
*/!* */!*
} }
``` ```

View file

@ -207,12 +207,16 @@ for (var i = 0; i < 5; i++) {
Красная строка -- это сообщение об ошибке. Красная строка -- это сообщение об ошибке.
В чём дело? Если мы хотим понять, что случилось -- перейдём в отладчик. Если кликнуть на ссылке `pow.js` в консоли, справа в строке с ошибкой, то мы перейдём непосредственно к месту в скрипте, где возникла ошибка.
Однако почему она возникла?
Более подробно прояснить произошедшее нам поможет отладчик. Он может "заморозить" выполнение скрипта на момент ошибки и дать нам возможность посмотреть значения переменных и стека на тот момент.
Для этого: Для этого:
<ol> <ol>
<li>Перейдите на вкладку Sources.</li> <li>Перейдите на вкладку Sources.</li>
<li>Включите останов при ошибке, используя кнопку <img style="vertical-align:middle" src="manage6.png">.</li> <li>Включите останов при ошибке, кликнув на кнопку <img style="vertical-align:middle" src="manage6.png"></li>
<li>Перезагрузите страницу.</li> <li>Перезагрузите страницу.</li>
</ol> </ol>
@ -222,7 +226,6 @@ for (var i = 0; i < 5; i++) {
Можно посмотреть значения переменных. Открыть консоль и попробовать запустить что-то в ней. Поставить брейкпойнты раньше по коду и посмотреть, что привело к такой печальной картине, и так далее. Можно посмотреть значения переменных. Открыть консоль и попробовать запустить что-то в ней. Поставить брейкпойнты раньше по коду и посмотреть, что привело к такой печальной картине, и так далее.
В данном случае-то всё просто: опечатка в имени переменной `y` вместо `x`. Этот тип ошибки называется `ReferenceError`.
## Итого ## Итого

View file

@ -5,7 +5,7 @@
[cut] [cut]
## Синтаксис ## Синтаксис
Шпаргалка с правилами синтаксиса (детально они их варианты разобраны далее): Шпаргалка с правилами синтаксиса (детально их варианты разобраны далее):
<img src="code-style.svg"> <img src="code-style.svg">
@ -144,7 +144,7 @@ for (var i = 0; i < 10; i++) {
Используйте: Используйте:
```js ```js
for (var i=0; i<10; i++) { for (var i = 0; i < 10; i++) {
if (i *!*не*/!* подходит) *!*continue*/!*; if (i *!*не*/!* подходит) *!*continue*/!*;
... // <- уровень вложенности 1 ... // <- уровень вложенности 1
} }
@ -226,7 +226,7 @@ function showPrimes(n) {
```js ```js
function showPrimes(n) { function showPrimes(n) {
for (var i=2; i<n; i++) { for (var i = 2; i < n; i++) {
*!*if (!isPrime(i)) continue;*/!* *!*if (!isPrime(i)) continue;*/!*
alert(i); // простое alert(i); // простое
@ -234,7 +234,7 @@ function showPrimes(n) {
} }
function isPrime(n) { function isPrime(n) {
for (var i=2; i<n; i++) { for (var i = 2; i < n; i++) {
if ( n % i == 0) return false; if ( n % i == 0) return false;
} }
return true; return true;

View file

@ -19,7 +19,7 @@ var people = [ vasya , masha , vovochka ];
people.sort(compareAge); people.sort(compareAge);
// вывести // вывести
for(var i=0; i<people.length; i++) { for(var i = 0; i < people.length; i++) {
alert(people[i].name); // Вовочка Маша Вася alert(people[i].name); // Вовочка Маша Вася
} }
``` ```

View file

@ -144,7 +144,7 @@ i = 5;
```js ```js
//+ run untrusted refresh //+ run untrusted refresh
for (*!*var*/!* i=0; i<5; i++) { } for (*!*var*/!* i = 0; i < 5; i++) { }
``` ```
Идентичный по функциональности код: Идентичный по функциональности код:
@ -152,7 +152,7 @@ for (*!*var*/!* i=0; i<5; i++) { }
```js ```js
//+ run untrusted refresh //+ run untrusted refresh
*!*var i;*/!* *!*var i;*/!*
for (i=0; i<5; i++) { } for (i = 0; i < 5; i++) { }
``` ```
В обоих случаях переменная будет создана до выполнения цикла, на стадии инициализации, и ее значение будет сохранено после окончания цикла. В обоих случаях переменная будет создана до выполнения цикла, на стадии инициализации, и ее значение будет сохранено после окончания цикла.

View file

@ -275,7 +275,7 @@ ul.appendChild(fragment); // вместо фрагмента вставятся
<script> <script>
function bench(test, times) { function bench(test, times) {
var sum = 0; var sum = 0;
for(var i=0; i<times; i++) { for(var i = 0; i < times; i++) {
if(test.setup) test.setup(); if(test.setup) test.setup();
var t = new Date(); var t = new Date();
test.work(); test.work();
@ -301,10 +301,10 @@ var appendFirst = new function() {
var tbody = document.createElement('TBODY'); var tbody = document.createElement('TBODY');
benchTable.appendChild(tbody); benchTable.appendChild(tbody);
for(var i=0; i<20; i++) { for(var i = 0; i < 20; i++) {
var tr = document.createElement('TR'); var tr = document.createElement('TR');
tbody.appendChild(tr); tbody.appendChild(tr);
for(var j=0; j<20; j++) { for(var j = 0; j < 20; j++) {
var td = document.createElement('td'); var td = document.createElement('td');
td.appendChild(document.createTextNode(''+i.toString(20)+j.toString(20))); td.appendChild(document.createTextNode(''+i.toString(20)+j.toString(20)));
tr.appendChild(td); tr.appendChild(td);
@ -329,10 +329,10 @@ var appendLast = new function() {
this.work = function() { this.work = function() {
var tbody = document.createElement('TBODY'); var tbody = document.createElement('TBODY');
for(var i=0; i<20; i++) { for(var i = 0; i < 20; i++) {
var tr = document.createElement('TR'); var tr = document.createElement('TR');
tbody.appendChild(tr); tbody.appendChild(tr);
for(var j=0; j<20; j++) { for(var j = 0; j < 20; j++) {
var td = document.createElement('td'); var td = document.createElement('td');
tr.appendChild(td); tr.appendChild(td);
td.appendChild(document.createTextNode(''+i.toString(20)+j.toString(20))); td.appendChild(document.createTextNode(''+i.toString(20)+j.toString(20)));

View file

@ -243,11 +243,11 @@ select.selectedIndex = 0; // первая опция
var form = document.forms[0]; var form = document.forms[0];
var select = form.elements.genre; var select = form.elements.genre;
for (var i=0; i<select.options.length; i++) { for (var i = 0; i < select.options.length; i++) {
var option = select.options[i]; var option = select.options[i];
*!* *!*
if(option.selected) { if(option.selected) {
alert(option.value); alert( option.value );
} }
*/!* */!*
} }

View file

@ -30,7 +30,7 @@
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<% for(var i=0; i<list.length; i++) { %> <% for(var i = 0; i < list.length; i++) { %>
<tr> <tr>
<td> <td>
<%=list[i].name%> <%=list[i].name%>