Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 5 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
build/
node_modules/
build/
*.log
.DS_Store
.vscode
Thumbs.db
.idea/
*.sublime*
.vscode/
1 change: 1 addition & 0 deletions .nvmrc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
24
21 changes: 21 additions & 0 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
MIT License

Copyright (c) 2015-2026 HTML Academy

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
20 changes: 0 additions & 20 deletions License.md

This file was deleted.

2 changes: 1 addition & 1 deletion Readme.md → README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@

## Лицензия

[MIT](./License.md).
[MIT](LICENSE).

## Правила линтеров

Expand Down
6 changes: 6 additions & 0 deletions css/style.css
Original file line number Diff line number Diff line change
Expand Up @@ -492,3 +492,9 @@ pre.language-correct .token.operator,
pre.language-incorrect .token.operator {
background: none;
}

blockquote {
background: #eeb;
margin-left: -10px;
padding: 10px 10px;
}
697 changes: 546 additions & 151 deletions html-css.html

Large diffs are not rendered by default.

16 changes: 1 addition & 15 deletions index.html
Original file line number Diff line number Diff line change
Expand Up @@ -62,22 +62,8 @@ <h2 class="visually-hidden">Разделы стиля кода</h2>
<a class="logo-full" href="https://htmlacademy.ru">
<img src="img/logo-html-academy.svg" width="161" height="47" alt="HTML Academy" title="HTML Academy">
</a>
<div class="social-icons">
<a class="icon icon-vk" href="https://vk.com/htmlacademy" target="_blank" rel="noopener">
Вконтакте
</a>
<a class="icon icon-fb" href="https://www.facebook.com/htmlacademy" target="_blank" rel="noopener">
Facebook
</a>
<a class="icon icon-tw" href="https://twitter.com/htmlacademy_ru" target="_blank" rel="noopener">
Twitter
</a>
<a class="icon icon-ig" href="https://instagram.com/htmlacademy" target="_blank" rel="noopener">
Instagram
</a>
</div>
<div class="github">
<a class="github-link" href="https://github.com/htmlacademy" target="_blank" rel="noopener">
<a class="github-link" href="https://github.com/htmlacademy" target="_blank">
GitHub
</a>
</div>
Expand Down
52 changes: 15 additions & 37 deletions javascript.html
Original file line number Diff line number Diff line change
Expand Up @@ -15,14 +15,6 @@
<link rel="stylesheet" href="css/prism.css">
<link rel="stylesheet" href="css/style.css">

<style type="text/css">
blockquote {
background: #eeb;
margin-left: -10px;
padding: 10px 10px;
}
</style>

<!-- Google Tag Manager -->
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src='https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);})(window,document,'script','dataLayer','GTM-MN2NPQ9');</script>
<!-- End Google Tag Manager -->
Expand Down Expand Up @@ -96,7 +88,7 @@ <h2 id="syntax">Синтаксис</h2>
<div class="chapter-part-col chapter-part-col--full-width">
<h3 id="indents-spaces-and-hyphens">Отступы, пробелы и переносы</h3>

<blockquote>Для правильного форматирования используйте файл <a href="https://github.com/htmlacademy/codeguide/blob/master/.editorconfig" target="_blank" rel="noopener">.editorconfig</a> в&nbsp;вашем редакторе.</blockquote>
<blockquote>Для правильного форматирования используйте файл <a href="https://github.com/htmlacademy/codeguide/blob/master/.editorconfig" target="_blank">.editorconfig</a> в&nbsp;вашем редакторе.</blockquote>

<p>Для отступов используются два пробела. Знак табуляции не используется</p>

Expand Down Expand Up @@ -247,7 +239,7 @@ <h2 id="naming">Именование</h2>

<p>Запрещено использовать имена переменных, которые используются во внешних областях видимости</p>

<p>Запрещено называть переменные и свойства <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Lexical_grammar#Keywords" target="_blank" rel="noopener">ключевыми словами JS</a></p>
<p>Запрещено называть переменные и свойства <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Lexical_grammar#Keywords" target="_blank">ключевыми словами JS</a></p>

<p>Запрещено использовать переменные, не объявленные ранее. При использовании переменной, объявленной в другом модуле в глобальной области видимости, нужно обращаться к ней как к свойству объекта <code>window</code></p>

Expand All @@ -270,7 +262,7 @@ <h2 id="preventing-errors">Предотвращение ошибок</h2>

<p>В коде нет пустых блоков кода</p>

<p>Код работает в строгом режиме: в начале всех файлов явно прописана директива <code>"use strict"</code> или используются модули ECMAScript, которые по умолчанию работают в строгом режиме</p>
<p>Код работает в строгом режиме. Модули ECMAScript (<code>type="module"</code>) работают в строгом режиме автоматически. В скриптах без <code>type="module"</code> в начале файла явно прописывается директива <code>"use strict"</code></p>
</div>
</article>

Expand All @@ -287,7 +279,7 @@ <h3 id="conditional-operators">Условные операторы</h3>

<p>В условиях не используется небезопасное отрицание, например использование <code>!</code> в <code>in</code> или <code>instanceof</code> без скобок</p>

<p>Запрещено сравнение с <code>NaN</code>. Для проверки, является ли результат операции числовым, нужно использовать <code><a href="https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Number/isNaN" target="_blank" rel="noopener">Number.isNaN</a></code></p>
<p>Запрещено сравнение с <code>NaN</code>. Для проверки, является ли результат операции числовым, нужно использовать <code><a href="https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Number/isNaN" target="_blank">Number.isNaN</a></code></p>

<p>Запрещено использовать <code>case</code> без <code>break</code> или <code>return</code> в блоках <code>switch</code></p>

Expand Down Expand Up @@ -347,11 +339,11 @@ <h3 id="errors-operators">Операторы</h3>
<article class="chapter-part">
<div class="chapter-part-col chapter-part-col--full-width">
<h3 id="declaring-variables-and-functions">Объявление переменных и функций</h3>
<p>При объявлении переменных предпочтение отдается ключевым словам <code>let</code> и <code>const</code>. Переменные объявляются через <code>var</code> только при наличии проблем с поддержкой ECMAScript 2015</p>
<p>Переменные объявляются через <code>const</code>. Если переменной нужно переприсвоение, используется <code>let</code>. Ключевое слово <code>var</code> не используется</p>

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

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

<pre class="language-js language-correct"><code>const a = 1;
Expand Down Expand Up @@ -412,7 +404,7 @@ <h4>Контекст</h4>
<p>В функциях, которые не являются методами никакого объекта или класса, не используется <code>this</code></p>

<h4>Переменные</h4>
<p>Переменные, объявленные через <code>var</code> не удаляются оператором <code>delete</code></p>
<p>Переменные не удаляются оператором <code>delete</code></p>
</div>
</article>

Expand Down Expand Up @@ -494,7 +486,7 @@ <h2 id="other">Прочее</h2>

<article class="chapter-part">
<div class="chapter-part-col chapter-part-col--full-width">
<p>При итерировании по объектам через <code>for..in</code> при работе со свойствами используется конструкция <code>hasOwnProperty</code></p>
<p>При итерировании по объектам через <code>for..in</code> при работе со свойствами используется <code>Object.hasOwn()</code></p>

<p>В объектах напрямую не переопределяется свойство <code>__iterator__</code></p>

Expand All @@ -503,17 +495,17 @@ <h2 id="other">Прочее</h2>
__proto__: Parent
};</code></pre>

<pre class="language-js language-correct"><code>const Obj = function() {};
Obj.prototype = new Parent();
const obj = new obj;

const obj = Object.create(Parent.prototype);</code></pre>
<pre class="language-js language-correct"><code>class Child extends Parent {
constructor() {
super();
}
}</code></pre>

<p>В коде не используются лейблы. Лейблы используются с конструкциями <code>break</code> и <code>continue</code> для направленного выхода из цикла и могут привести к слишком сложному для понимания коду</p>

<p>Блоки, использующиеся в коде, должны описывать тело функции, условия, оператора <code>switch</code> и прочие конструкции, относящиеся к группировке множественных операций. Блоки не должны использоваться сами по себе, любой блок должен быть частью другого выражения</p>

<p>В коде не используется оператор «запятая» для описания последовательностей действий. Для создания переменных используются отдельные ключевые слова <code>let</code>, <code>const</code>, <code>var</code>, операторы группировки, условные операторы и прочие конструкции. Исключение составляет начальное условие оператора <code>for</code></p>
<p>В коде не используется оператор «запятая» для описания последовательностей действий. Для создания переменных используются отдельные ключевые слова <code>let</code>, <code>const</code>, операторы группировки, условные операторы и прочие конструкции. Исключение составляет начальное условие оператора <code>for</code></p>
<pre class="language-js language-incorrect"><code>const result = (1, 2); // 2</code></pre>

<pre class="language-js language-correct"><code>const result = 2;</code></pre>
Expand Down Expand Up @@ -554,22 +546,8 @@ <h3 id="regular-expressions">Регулярные выражения</h3>
<a class="logo-full" href="https://htmlacademy.ru">
<img src="img/logo-html-academy.svg" width="161" height="47" alt="HTML Academy" title="HTML Academy">
</a>
<div class="social-icons">
<a class="icon icon-vk" href="https://vk.com/htmlacademy" target="_blank" rel="noopener">
Вконтакте
</a>
<a class="icon icon-fb" href="https://www.facebook.com/htmlacademy" target="_blank" rel="noopener">
Facebook
</a>
<a class="icon icon-tw" href="https://twitter.com/htmlacademy_ru" target="_blank" rel="noopener">
Twitter
</a>
<a class="icon icon-ig" href="https://instagram.com/htmlacademy" target="_blank" rel="noopener">
Instagram
</a>
</div>
<div class="github">
<a class="github-link" href="https://github.com/htmlacademy" target="_blank" rel="noopener">
<a class="github-link" href="https://github.com/htmlacademy" target="_blank">
GitHub
</a>
</div>
Expand Down
Loading