Skip to content

Commit 0e5596a

Browse files
author
Sasha Sushko
committed
1 parent f26ebbf commit 0e5596a

File tree

1 file changed

+40
-28
lines changed

1 file changed

+40
-28
lines changed

javascript.html

Lines changed: 40 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -53,12 +53,12 @@ <h3>Отступы, пробелы и переносы</h3>
5353
<p>Запрещено одновременное использование табов и пробелов для отступов</p>
5454

5555
<p>Для отступов ключевых слов, операторов и т. д. используется не более одного пробела</p>
56-
<pre class="language-js language-incorrect"><code>var name = 1;
57-
var longerName = 2;
56+
<pre class="language-js language-incorrect"><code>const name = 1;
57+
const longerName = 2;
5858
</code></pre>
5959

60-
<pre class="language-js language-correct"><code>var name = 1;
61-
var longerName = 2;
60+
<pre class="language-js language-correct"><code>const name = 1;
61+
const longerName = 2;
6262
</code></pre>
6363

6464
<p>Открывающие скобки блоков кода находятся на одной строке с оператором, который их использует:
@@ -81,21 +81,21 @@ <h3>Отступы, пробелы и переносы</h3>
8181
<p>После запятой всегда должен ставиться пробел, если запятая не в конце строки</p>
8282

8383
<p>Обязательно переносить запятую на новую строку при объявлении массивов и объектов. Обязательно использовать запятую в конце списков, объектов или перечислений параметров функции</p>
84-
<pre class="language-js language-incorrect"><code>var foo = {
84+
<pre class="language-js language-incorrect"><code>const foo = {
8585
a: 1,
8686
b: 2
8787
};
8888

89-
var bar = [
89+
const bar = [
9090
1,
9191
2
9292
];</code></pre>
93-
<pre class="language-js language-correct"><code>var foo = {
93+
<pre class="language-js language-correct"><code>const foo = {
9494
a: 1,
9595
b: 2,
9696
};
9797

98-
var bar = [
98+
const bar = [
9999
1,
100100
2,
101101
];</code></pre>
@@ -105,10 +105,10 @@ <h3>Отступы, пробелы и переносы</h3>
105105
<p>Строка не должна заканчиваться пробелами</p>
106106

107107
<p>В однострочных объектах и при деструктуризации фигурные скобки не отделяются пробелами от содержимого</p>
108-
<pre class="language-js language-incorrect"><code>var foo = { a: 1 };
108+
<pre class="language-js language-incorrect"><code>const foo = { a: 1 };
109109
</code></pre>
110110

111-
<pre class="language-js language-correct"><code>var foo = {a: 1};
111+
<pre class="language-js language-correct"><code>const foo = {a: 1};
112112
</code></pre>
113113

114114
<pre class="language-js language-incorrect"><code>const { a, b } = someObject;
@@ -151,10 +151,10 @@ <h3>Строки</h3>
151151
<p>В строках, объявленных с помощью одинарных и двойных кавычек запрещено использовать переносы</p>
152152

153153
<p>В строках запрещено указывать код спецсимволов в восьмеричной системе счисления
154-
<pre class="language-js language-incorrect"><code>var foo = "Copyright \251";
154+
<pre class="language-js language-incorrect"><code>const foo = "Copyright \251";
155155
</code></pre>
156156

157-
<pre class="language-js language-correct"><code>var foo = "Copyright \u00A9";
157+
<pre class="language-js language-correct"><code>const foo = "Copyright \u00A9";
158158
</code></pre>
159159
</p>
160160

@@ -262,9 +262,9 @@ <h3>Условные операторы</h3>
262262
<article class="chapter-part">
263263
<div class="chapter-part-col chapter-part-col--full-width">
264264
<h3>Функции</h3>
265-
<p>Если в функции используется ветвление, в котором есть возврат значения (<code>return</code>), <code>return</code> должен быть добавлен и в остальных ветках.</p>
265+
<p>Если в функции используется ветвление, в котором есть возврат значения, то <code>return</code> должен быть добавлен и в остальных ветках.</p>
266266

267-
<pre class="language-js language-incorrect"><code>var doThings = function() {
267+
<pre class="language-js language-incorrect"><code>const doThings = function() {
268268
if (cond) {
269269
return 1;
270270
} else {
@@ -273,17 +273,29 @@ <h3>Функции</h3>
273273
};
274274
</code></pre>
275275

276-
<pre class="language-js language-correct"><code>var doThings = function() {
276+
<pre class="language-js language-correct"><code>const doThings = function() {
277277
if (cond) {
278278
return 1;
279279
} else {
280-
return 2;
280+
return doSomethingElse();
281281
}
282282
};
283283
</code></pre>
284284

285285
<p>Это правило предотвращает создание функций, при использовании которых непонятно, вернут ли они какое-то значение. В первом примере, функция <code>do</code> может вернуть значение <code>1</code>, а может <code>undefined</code></p>
286286

287+
<p>Единственное исключение — использование <code>return</code> без значения для прекращения работы функции:</p>
288+
289+
<pre class="language-js language-correct"><code>const doThings = function() {
290+
if (cond) {
291+
doSomething()
292+
return;
293+
}
294+
295+
doSomethingElse();
296+
};
297+
</code></pre>
298+
287299
<p>В <code>return</code> не используется оператор присваивания</p>
288300

289301
<p>В стрелочных функциях всегда используются скобки для параметров, даже если параметр один</p>
@@ -302,16 +314,16 @@ <h3>Операторы</h3>
302314
<article class="chapter-part">
303315
<div class="chapter-part-col chapter-part-col--full-width">
304316
<h3>Объявление переменных и функций</h3>
305-
<p>При объявлении переменных предпочтение отдается ключевым словам <code>let</code> и <code>const</code>. Переменные объявляются через <code>var</code> только при наличии проблем с поддержкой ES6</p>
317+
<p>При объявлении переменных предпочтение отдается ключевым словам <code>let</code> и <code>const</code>. Переменные объявляются через <code>var</code> только при наличии проблем с поддержкой ECMAScript 2015</p>
306318

307319
<p>Запрещено переопределять с помощью ключевого слова ранее созданные переменные</p>
308320

309321
<p>Запрещено использовать множественное объявление через одно ключевое слово. Для каждой переменной используется отдельный <code>var</code>, <code>let</code> или <code>const</code>.
310-
<pre class="language-js language-incorrect"><code>var a = 1, b = 2;
322+
<pre class="language-js language-incorrect"><code>const a = 1, b = 2;
311323
</code></pre>
312324

313-
<pre class="language-js language-correct"><code>var a = 1;
314-
var b = 2;
325+
<pre class="language-js language-correct"><code>const a = 1;
326+
const b = 2;
315327
</code></pre>
316328
</p>
317329

@@ -325,7 +337,7 @@ <h4>Объявление функций</h4>
325337

326338
<p>Вместо коллекции <code>arguments</code>, используется rest-оператор, если это позволяет версия языка</p>
327339

328-
<p>Вместо вызова функции через <code>apply</code> используется spread-оператор, если это позволяет версия языка
340+
<p>Для превращения массива с данными в аргументы вместо вызова функции через <code>apply</code> используется spread-оператор, если это позволяет версия языка
329341

330342
<pre class="language-js language-incorrect"><code>Math.max.apply(null, [1, 100, 15, 1000]);
331343
</code></pre>
@@ -400,10 +412,10 @@ <h4>Константы в условиях</h4>
400412
<pre class="language-js language-correct"><code>if (a > 1) {}
401413
</code></pre>
402414

403-
<pre class="language-js language-incorrect"><code>var ternaryValue = true ? 'a' : 'b';
415+
<pre class="language-js language-incorrect"><code>const ternaryValue = true ? 'a' : 'b';
404416
</code></pre>
405417

406-
<pre class="language-js language-correct"><code>var ternaryValue = isA() ? 'a' : 'b';
418+
<pre class="language-js language-correct"><code>const ternaryValue = isA() ? 'a' : 'b';
407419
</code></pre>
408420
</p>
409421
</div>
@@ -477,16 +489,16 @@ <h2>Прочее</h2>
477489
<p>В объектах напрямую не переопределяется свойство <code>__iterator__</code></p>
478490

479491
<p>В объектах напрямую не переопределяется свойство <code>__proto__</code>. Разрешено переопределять <code>__proto__</code> через <code>Object.create</code> или запись в прототип, объектов, созданных другими конструкторами, но напрямую редактировать <code>__proto__</code> нельзя
480-
<pre class="language-js language-incorrect"><code>var obj = {
492+
<pre class="language-js language-incorrect"><code>const obj = {
481493
__proto__: Parent
482494
};
483495
</code></pre>
484496

485-
<pre class="language-js language-correct"><code>var Obj = function() {};
497+
<pre class="language-js language-correct"><code>const Obj = function() {};
486498
Obj.prototype = new Parent();
487-
var obj = new obj;
499+
const obj = new obj;
488500

489-
var obj = Object.create(Parent.prototype);
501+
const obj = Object.create(Parent.prototype);
490502
</code></pre>
491503
</p>
492504

@@ -507,7 +519,7 @@ <h2>Прочее</h2>
507519
<pre class="language-js language-correct"><code>val = getVal();
508520
switch(val) {}
509521

510-
for (var i = 0, l = 100; i < l; i++);
522+
for (let i = 0, l = 100; i < l; i++);
511523
</code></pre>
512524
</p>
513525
</div>

0 commit comments

Comments
 (0)