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
|
||||
var i = 3;
|
||||
*!*
|
||||
while (i) { // при i=0 значение в скобках будет false и цикл остановится
|
||||
while (i) { // при i, равном 0, значение в скобках будет false и цикл остановится
|
||||
*/!*
|
||||
alert( i );
|
||||
i--;
|
||||
|
@ -126,7 +126,7 @@ for (i = 0; i < 3; i++) {
|
|||
|
||||
```js
|
||||
//+ run no-beautify
|
||||
for (*!*var*/!* i=0; i<3; i++) {
|
||||
for (*!*var*/!* i = 0; i < 3; i++) {
|
||||
alert(i); // 0, 1, 2
|
||||
}
|
||||
```
|
||||
|
|
|
@ -67,13 +67,13 @@ alert( message ); // <-- будет ошибка, т.к. переменная в
|
|||
//+ no-beautify
|
||||
function count() {
|
||||
// переменные i,j не будут уничтожены по окончании цикла
|
||||
for (*!*var*/!* i=0; i<3; i++) {
|
||||
for (*!*var*/!* i = 0; i < 3; i++) {
|
||||
*!*var*/!* j = i * 2;
|
||||
}
|
||||
|
||||
*!*
|
||||
alert(i); // i=3, последнее значение i, при нём цикл перестал работать
|
||||
alert(j); // j=4, последнее значение j, которое вычислил цикл
|
||||
alert( i ); // i=3, последнее значение i, при нём цикл перестал работать
|
||||
alert( j ); // j=4, последнее значение j, которое вычислил цикл
|
||||
*/!*
|
||||
}
|
||||
```
|
||||
|
|
|
@ -207,12 +207,16 @@ for (var i = 0; i < 5; i++) {
|
|||
|
||||
Красная строка -- это сообщение об ошибке.
|
||||
|
||||
В чём дело? Если мы хотим понять, что случилось -- перейдём в отладчик.
|
||||
Если кликнуть на ссылке `pow.js` в консоли, справа в строке с ошибкой, то мы перейдём непосредственно к месту в скрипте, где возникла ошибка.
|
||||
|
||||
Однако почему она возникла?
|
||||
|
||||
Более подробно прояснить произошедшее нам поможет отладчик. Он может "заморозить" выполнение скрипта на момент ошибки и дать нам возможность посмотреть значения переменных и стека на тот момент.
|
||||
|
||||
Для этого:
|
||||
<ol>
|
||||
<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>
|
||||
</ol>
|
||||
|
||||
|
@ -222,7 +226,6 @@ for (var i = 0; i < 5; i++) {
|
|||
|
||||
Можно посмотреть значения переменных. Открыть консоль и попробовать запустить что-то в ней. Поставить брейкпойнты раньше по коду и посмотреть, что привело к такой печальной картине, и так далее.
|
||||
|
||||
В данном случае-то всё просто: опечатка в имени переменной `y` вместо `x`. Этот тип ошибки называется `ReferenceError`.
|
||||
|
||||
## Итого
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
[cut]
|
||||
## Синтаксис
|
||||
|
||||
Шпаргалка с правилами синтаксиса (детально они их варианты разобраны далее):
|
||||
Шпаргалка с правилами синтаксиса (детально их варианты разобраны далее):
|
||||
|
||||
<img src="code-style.svg">
|
||||
|
||||
|
@ -144,7 +144,7 @@ for (var i = 0; i < 10; i++) {
|
|||
Используйте:
|
||||
|
||||
```js
|
||||
for (var i=0; i<10; i++) {
|
||||
for (var i = 0; i < 10; i++) {
|
||||
if (i *!*не*/!* подходит) *!*continue*/!*;
|
||||
... // <- уровень вложенности 1
|
||||
}
|
||||
|
@ -226,7 +226,7 @@ function showPrimes(n) {
|
|||
```js
|
||||
function showPrimes(n) {
|
||||
|
||||
for (var i=2; i<n; i++) {
|
||||
for (var i = 2; i < n; i++) {
|
||||
*!*if (!isPrime(i)) continue;*/!*
|
||||
|
||||
alert(i); // простое
|
||||
|
@ -234,7 +234,7 @@ function showPrimes(n) {
|
|||
}
|
||||
|
||||
function isPrime(n) {
|
||||
for (var i=2; i<n; i++) {
|
||||
for (var i = 2; i < n; i++) {
|
||||
if ( n % i == 0) return false;
|
||||
}
|
||||
return true;
|
||||
|
|
|
@ -19,7 +19,7 @@ var people = [ vasya , masha , vovochka ];
|
|||
people.sort(compareAge);
|
||||
|
||||
// вывести
|
||||
for(var i=0; i<people.length; i++) {
|
||||
for(var i = 0; i < people.length; i++) {
|
||||
alert(people[i].name); // Вовочка Маша Вася
|
||||
}
|
||||
```
|
||||
|
|
|
@ -144,7 +144,7 @@ i = 5;
|
|||
|
||||
```js
|
||||
//+ 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
|
||||
//+ run untrusted refresh
|
||||
*!*var i;*/!*
|
||||
for (i=0; i<5; i++) { }
|
||||
for (i = 0; i < 5; i++) { }
|
||||
```
|
||||
|
||||
В обоих случаях переменная будет создана до выполнения цикла, на стадии инициализации, и ее значение будет сохранено после окончания цикла.
|
||||
|
|
|
@ -275,7 +275,7 @@ ul.appendChild(fragment); // вместо фрагмента вставятся
|
|||
<script>
|
||||
function bench(test, times) {
|
||||
var sum = 0;
|
||||
for(var i=0; i<times; i++) {
|
||||
for(var i = 0; i < times; i++) {
|
||||
if(test.setup) test.setup();
|
||||
var t = new Date();
|
||||
test.work();
|
||||
|
@ -301,10 +301,10 @@ var appendFirst = new function() {
|
|||
var tbody = document.createElement('TBODY');
|
||||
benchTable.appendChild(tbody);
|
||||
|
||||
for(var i=0; i<20; i++) {
|
||||
for(var i = 0; i < 20; i++) {
|
||||
var tr = document.createElement('TR');
|
||||
tbody.appendChild(tr);
|
||||
for(var j=0; j<20; j++) {
|
||||
for(var j = 0; j < 20; j++) {
|
||||
var td = document.createElement('td');
|
||||
td.appendChild(document.createTextNode(''+i.toString(20)+j.toString(20)));
|
||||
tr.appendChild(td);
|
||||
|
@ -329,10 +329,10 @@ var appendLast = new function() {
|
|||
this.work = function() {
|
||||
var tbody = document.createElement('TBODY');
|
||||
|
||||
for(var i=0; i<20; i++) {
|
||||
for(var i = 0; i < 20; i++) {
|
||||
var tr = document.createElement('TR');
|
||||
tbody.appendChild(tr);
|
||||
for(var j=0; j<20; j++) {
|
||||
for(var j = 0; j < 20; j++) {
|
||||
var td = document.createElement('td');
|
||||
tr.appendChild(td);
|
||||
td.appendChild(document.createTextNode(''+i.toString(20)+j.toString(20)));
|
||||
|
|
|
@ -243,11 +243,11 @@ select.selectedIndex = 0; // первая опция
|
|||
var form = document.forms[0];
|
||||
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];
|
||||
*!*
|
||||
if(option.selected) {
|
||||
alert(option.value);
|
||||
alert( option.value );
|
||||
}
|
||||
*/!*
|
||||
}
|
||||
|
|
|
@ -30,7 +30,7 @@
|
|||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<% for(var i=0; i<list.length; i++) { %>
|
||||
<% for(var i = 0; i < list.length; i++) { %>
|
||||
<tr>
|
||||
<td>
|
||||
<%=list[i].name%>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue