beautify 1st part of the tutorial
This commit is contained in:
parent
e3dd2cedc0
commit
6444024a9d
327 changed files with 2358 additions and 1986 deletions
|
@ -185,7 +185,7 @@ function pow(x, n) {
|
|||
```js
|
||||
//+ run
|
||||
// результат будет виден в консоли
|
||||
for(var i=0; i<5; i++) {
|
||||
for (var i = 0; i < 5; i++) {
|
||||
console.log("значение", i);
|
||||
}
|
||||
```
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
Вы могли заметить следующие недостатки, сверху-вниз:
|
||||
|
||||
```js
|
||||
//+ no-beautify
|
||||
function pow(x,n) // <- отсутствует пробел между аргументами
|
||||
{ // <- фигурная скобка на отдельной строке
|
||||
var result=1; // <- нет пробелов вокруг знака =
|
||||
|
@ -27,13 +28,13 @@ else // <- можно на одной строке } else {
|
|||
Исправленный вариант:
|
||||
|
||||
```js
|
||||
function pow(x, n) {
|
||||
function pow(x, n) {
|
||||
var result = 1;
|
||||
|
||||
for(var i = 0; i < n; i++) {
|
||||
result *=x;
|
||||
for (var i = 0; i < n; i++) {
|
||||
result *= x;
|
||||
}
|
||||
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
|
@ -41,7 +42,7 @@ var x = prompt("x?", "");
|
|||
var n = prompt("n?", "");
|
||||
|
||||
if (n < 0) {
|
||||
alert('Степень ' + n +
|
||||
alert('Степень ' + n +
|
||||
'не поддерживается, введите целую степень, большую 0');
|
||||
} else {
|
||||
alert( pow(x, n) );
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
Какие недостатки вы видите в стиле этого примера?
|
||||
|
||||
```js
|
||||
//+ no-beautify
|
||||
function pow(x,n)
|
||||
{
|
||||
var result=1;
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
<!--
|
||||
```js
|
||||
function pow(x, n) {
|
||||
var result = 1;
|
||||
var result = 1;
|
||||
|
||||
for (var i = 0; i < n; i++) {
|
||||
result *= x;
|
||||
|
@ -25,8 +25,8 @@ var x = prompt("x?", "");
|
|||
var n = prompt("n?", "");
|
||||
|
||||
if (n < 0) {
|
||||
alert('Степень ' + n +
|
||||
'не поддерживается, введите целую степень, большую 0');
|
||||
alert('Степень ' + n +
|
||||
'не поддерживается, введите целую степень, большую 0');
|
||||
} else {
|
||||
alert( pow(x, n) );
|
||||
}
|
||||
|
@ -41,6 +41,7 @@ if (n < 0) {
|
|||
|
||||
<!--
|
||||
```js
|
||||
//+ no-beautify
|
||||
if (n < 0) {alert('Степень ' + n + ' не поддерживается');}
|
||||
|
||||
|
||||
|
@ -79,6 +80,7 @@ if (n < 0) {
|
|||
|
||||
Например, выровнять аргументы относительно открывающей скобки:
|
||||
```js
|
||||
//+ no-beautify
|
||||
show("Строки" +
|
||||
" выровнены" +
|
||||
" строго" +
|
||||
|
@ -91,15 +93,14 @@ show("Строки" +
|
|||
|
||||
```js
|
||||
function pow(x, n) {
|
||||
var result = 1;
|
||||
var result = 1;
|
||||
// <--
|
||||
for (var i = 0; i < n; i++) {
|
||||
result *=x;
|
||||
result *= x;
|
||||
}
|
||||
// <--
|
||||
return result;
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
Вставляйте дополнительный перевод строки туда, где это сделает код более читаемым. Не должно быть более 9 строк кода подряд без вертикального отступа.
|
||||
|
@ -133,7 +134,7 @@ function pow(x, n) {
|
|||
Вместо:
|
||||
|
||||
```js
|
||||
for (var i=0; i<10; i++) {
|
||||
for (var i = 0; i < 10; i++) {
|
||||
if (i подходит) {
|
||||
... // <- уровень вложенности 2
|
||||
}
|
||||
|
@ -158,7 +159,7 @@ function isEven(n) { // проверка чётности
|
|||
if (n % 2 == 0) {
|
||||
return true;
|
||||
*!*
|
||||
} else {
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
*/!*
|
||||
|
@ -172,9 +173,9 @@ function isEven(n) { // проверка чётности
|
|||
if (n % 2 == 0) {
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
*!*
|
||||
return false;
|
||||
return false;
|
||||
*/!*
|
||||
}
|
||||
```
|
||||
|
@ -187,7 +188,7 @@ function isEven(n) { // проверка чётности
|
|||
|
||||
```js
|
||||
function isEven(n) { // проверка чётности
|
||||
return !(n % 2);
|
||||
return !(n % 2);
|
||||
}
|
||||
```
|
||||
|
||||
|
@ -209,14 +210,13 @@ function isEven(n) { // проверка чётности
|
|||
|
||||
```js
|
||||
function showPrimes(n) {
|
||||
nextPrime:
|
||||
for (var i=2; i<n; i++) {
|
||||
nextPrime: for (var i = 2; i < n; i++) {
|
||||
|
||||
for (var j=2; j<i; j++) {
|
||||
if ( i % j == 0) continue nextPrime;
|
||||
for (var j = 2; j < i; j++) {
|
||||
if (i % j == 0) continue nextPrime;
|
||||
}
|
||||
|
||||
alert(i); // простое
|
||||
|
||||
alert( i ); // простое
|
||||
}
|
||||
}
|
||||
```
|
||||
|
|
|
@ -62,7 +62,7 @@ div.append('<span/>');
|
|||
|
||||
```html
|
||||
<div>
|
||||
<img/>
|
||||
<img/>
|
||||
</div>
|
||||
```
|
||||
|
||||
|
@ -92,7 +92,7 @@ div.append('<span/>');
|
|||
|
||||
```js
|
||||
// код из jQuery
|
||||
i = i ? i < 0 ? Math.max( 0, len + i ) : i : 0;
|
||||
i = i ? i < 0 ? Math.max(0, len + i) : i : 0;
|
||||
```
|
||||
|
||||
Разработчик, встретивший эту строку и попытавшийся понять, чему же всё-таки равно `i`, скорее всего придёт к вам за разъяснениями. Смело скажите ему, что короче -- это всегда лучше. Посвятите и его в пути ниндзя. Не забудьте вручить [Дао дэ цзин](http://lib.ru/POECHIN/lao1.txt).
|
||||
|
|
|
@ -6,9 +6,9 @@ function pow(x, n) {
|
|||
if (n < 0) return NaN;
|
||||
if (Math.round(n) != n) return NaN;
|
||||
*/!*
|
||||
|
||||
|
||||
var result = 1;
|
||||
for(var i=0; i<n; i++) {
|
||||
for (var i = 0; i < n; i++) {
|
||||
result *= x;
|
||||
}
|
||||
return result;
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
```js
|
||||
it("любое число в степени 0 равно 1", function() {
|
||||
assert.equal( pow(123, 0), 1);
|
||||
assert.equal(pow(123, 0), 1);
|
||||
});
|
||||
```
|
||||
|
||||
|
@ -14,12 +14,12 @@ it("любое число в степени 0 равно 1", function() {
|
|||
describe("любое число, кроме нуля, в степени 0 равно 1", function() {
|
||||
|
||||
function makeTest(x) {
|
||||
it("при возведении " + x + " в степень 0 результат: 1", function() {
|
||||
assert.equal( pow(x, 0), 1);
|
||||
it("при возведении " + x + " в степень 0 результат: 1", function() {
|
||||
assert.equal(pow(x, 0), 1);
|
||||
});
|
||||
}
|
||||
|
||||
for(var x = -5; x <= 5; x+=2) {
|
||||
for (var x = -5; x <= 5; x += 2) {
|
||||
makeTest(x);
|
||||
}
|
||||
|
||||
|
@ -29,6 +29,7 @@ describe("любое число, кроме нуля, в степени 0 рав
|
|||
И не забудем добавить отдельный тест для нуля:
|
||||
|
||||
```js
|
||||
//+ no-beautify
|
||||
...
|
||||
it("ноль в нулевой степени даёт NaN", function() {
|
||||
assert( isNaN(pow(0,0), "0 в степени 0 не NaN");
|
||||
|
|
|
@ -11,15 +11,15 @@
|
|||
```js
|
||||
describe("Возводит x в степень n", function() {
|
||||
it("5 в степени 1 равно 5", function() {
|
||||
assert.equal( pow(5, 1), 5 );
|
||||
assert.equal(pow(5, 1), 5);
|
||||
});
|
||||
|
||||
it("5 в степени 2 равно 25", function() {
|
||||
assert.equal( pow(5, 2), 25 );
|
||||
assert.equal(pow(5, 2), 25);
|
||||
});
|
||||
|
||||
it("5 в степени 3 равно 125", function() {
|
||||
assert.equal( pow(5, 3), 25 );
|
||||
assert.equal(pow(5, 3), 25);
|
||||
});
|
||||
});
|
||||
```
|
||||
|
|
|
@ -9,13 +9,13 @@ it("Возводит x в степень n", function() {
|
|||
var x = 5;
|
||||
|
||||
var result = x;
|
||||
assert.equal( pow(x, 1), result );
|
||||
assert.equal(pow(x, 1), result);
|
||||
|
||||
var result *= x;
|
||||
assert.equal( pow(x, 2), result );
|
||||
assert.equal(pow(x, 2), result);
|
||||
|
||||
var result *= x;
|
||||
assert.equal( pow(x, 3), result );
|
||||
assert.equal(pow(x, 3), result);
|
||||
});
|
||||
```
|
||||
|
||||
|
|
|
@ -42,8 +42,8 @@ BDD -- это не просто тесты. Это гораздо больше.
|
|||
```js
|
||||
describe("pow", function() {
|
||||
|
||||
it("возводит в n-ю степень", function() {
|
||||
assert.equal( pow(2, 3), 8);
|
||||
it("возводит в n-ю степень", function() {
|
||||
assert.equal(pow(2, 3), 8);
|
||||
});
|
||||
|
||||
});
|
||||
|
@ -121,7 +121,7 @@ describe("pow", function() {
|
|||
|
||||
```js
|
||||
function pow() {
|
||||
return 8; // :) мы - мошенники!
|
||||
return 8; // :) мы - мошенники!
|
||||
}
|
||||
```
|
||||
|
||||
|
@ -149,10 +149,10 @@ function pow() {
|
|||
```js
|
||||
describe("pow", function() {
|
||||
|
||||
it("возводит в n-ю степень", function() {
|
||||
assert.equal( pow(2, 3), 8);
|
||||
it("возводит в n-ю степень", function() {
|
||||
assert.equal(pow(2, 3), 8);
|
||||
*!*
|
||||
assert.equal( pow(3, 4), 81);
|
||||
assert.equal(pow(3, 4), 81);
|
||||
*/!*
|
||||
});
|
||||
|
||||
|
@ -165,12 +165,12 @@ describe("pow", function() {
|
|||
```js
|
||||
describe("pow", function() {
|
||||
|
||||
it("при возведении 2 в 3ю степень результат 8", function() {
|
||||
assert.equal( pow(2, 3), 8);
|
||||
it("при возведении 2 в 3ю степень результат 8", function() {
|
||||
assert.equal(pow(2, 3), 8);
|
||||
});
|
||||
|
||||
it("при возведении 3 в 4ю степень равен 81", function() {
|
||||
assert.equal( pow(3, 4), 81);
|
||||
assert.equal(pow(3, 4), 81);
|
||||
});
|
||||
|
||||
});
|
||||
|
@ -204,10 +204,10 @@ describe("pow", function() {
|
|||
function pow(x, n) {
|
||||
var result = 1;
|
||||
|
||||
for(var i = 0; i < n; i++) {
|
||||
for (var i = 0; i < n; i++) {
|
||||
result *= x;
|
||||
}
|
||||
|
||||
|
||||
return result;
|
||||
}
|
||||
```
|
||||
|
@ -218,13 +218,13 @@ function pow(x, n) {
|
|||
describe("pow", function() {
|
||||
|
||||
function makeTest(x) {
|
||||
var expected = x*x*x;
|
||||
it("при возведении " + x + " в степень 3 результат: " + expected, function() {
|
||||
assert.equal( pow(x, 3), expected);
|
||||
var expected = x * x * x;
|
||||
it("при возведении " + x + " в степень 3 результат: " + expected, function() {
|
||||
assert.equal(pow(x, 3), expected);
|
||||
});
|
||||
}
|
||||
|
||||
for(var x = 1; x <= 5; x++) {
|
||||
for (var x = 1; x <= 5; x++) {
|
||||
makeTest(x);
|
||||
}
|
||||
|
||||
|
@ -249,20 +249,20 @@ describe("pow", function() {
|
|||
*/!*
|
||||
|
||||
function makeTest(x) {
|
||||
var expected = x*x*x;
|
||||
it("при возведении " + x + " в степень 3 результат: " + expected, function() {
|
||||
assert.equal( pow(x, 3), expected);
|
||||
var expected = x * x * x;
|
||||
it("при возведении " + x + " в степень 3 результат: " + expected, function() {
|
||||
assert.equal(pow(x, 3), expected);
|
||||
});
|
||||
}
|
||||
|
||||
for(var x = 1; x <= 5; x++) {
|
||||
for (var x = 1; x <= 5; x++) {
|
||||
makeTest(x);
|
||||
}
|
||||
|
||||
*!*
|
||||
});
|
||||
*/!*
|
||||
|
||||
|
||||
// ... дальнейшие тесты it и подблоки describe ...
|
||||
});
|
||||
```
|
||||
|
@ -279,6 +279,7 @@ describe("pow", function() {
|
|||
Например:
|
||||
|
||||
```js
|
||||
//+ no-beautify
|
||||
describe("Тест", function() {
|
||||
|
||||
before(function() { alert("Начало тестов"); });
|
||||
|
@ -328,13 +329,13 @@ describe("pow", function() {
|
|||
|
||||
it("при возведении в отрицательную степень результат NaN", function() {
|
||||
*!*
|
||||
assert( isNaN( pow(2, -1) ) );
|
||||
assert(isNaN(pow(2, -1)));
|
||||
*/!*
|
||||
});
|
||||
|
||||
it("при возведении в дробную степень результат NaN", function() {
|
||||
*!*
|
||||
assert( isNaN( pow(2, 1.5) ) );
|
||||
assert(isNaN(pow(2, 1.5)));
|
||||
*/!*
|
||||
});
|
||||
|
||||
|
@ -385,13 +386,13 @@ describe("pow", function() {
|
|||
|
||||
it("при возведении в отрицательную степень результат NaN", function() {
|
||||
*!*
|
||||
assert( isNaN( pow(2, -1) ), "pow(2, -1) не NaN" );
|
||||
assert(isNaN(pow(2, -1)), "pow(2, -1) не NaN");
|
||||
*/!*
|
||||
});
|
||||
|
||||
it("при возведении в дробную степень результат NaN", function() {
|
||||
*!*
|
||||
assert( isNaN( pow(2, 1.5) ), "pow(2, 1.5) не NaN" );
|
||||
assert(isNaN(pow(2, 1.5)), "pow(2, 1.5) не NaN");
|
||||
*/!*
|
||||
});
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue