minor renovations, beautify round 2 (final)
This commit is contained in:
parent
8410ce6421
commit
14d324c9e4
9 changed files with 26 additions and 23 deletions
|
@ -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
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
|
@ -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, которое вычислил цикл
|
||||||
*/!*
|
*/!*
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
|
@ -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`.
|
|
||||||
|
|
||||||
## Итого
|
## Итого
|
||||||
|
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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); // Вовочка Маша Вася
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
|
@ -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++) { }
|
||||||
```
|
```
|
||||||
|
|
||||||
В обоих случаях переменная будет создана до выполнения цикла, на стадии инициализации, и ее значение будет сохранено после окончания цикла.
|
В обоих случаях переменная будет создана до выполнения цикла, на стадии инициализации, и ее значение будет сохранено после окончания цикла.
|
||||||
|
|
|
@ -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)));
|
||||||
|
|
|
@ -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 );
|
||||||
}
|
}
|
||||||
*/!*
|
*/!*
|
||||||
}
|
}
|
||||||
|
|
|
@ -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%>
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue