Skip to content

Commit 9146d06

Browse files
author
Maksim Litvinov
committed
new structure
1 parent bc82ee7 commit 9146d06

File tree

216 files changed

+4405
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

216 files changed

+4405
-0
lines changed
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
Наберите в редакторе код из задания символ в символ и нажмите «Проверить».
2+
3+
```javascript
4+
console.log('Hello, World!');
5+
```
6+
7+
Внимание: если вы напишете `heLLo, woRld!` вместо `Hello, World!`, то это будет считаться другим текстом, потому что заглавные и строчные буквы — это разные символы. Размер буквы называют *регистром*, и говорят: *регистр — важен!* Это касается почти всего в коде, поэтому привыкайте всегда обращать внимание на регистр.
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
Изучение нового языка программирования традиционно начинается с 'Hello, World!'. Это простая программа, которая выводит приветствие на экран и заодно знакомит с новым языком — его синтаксисом и структурой программы. Этой традиции уже больше сорока лет, поэтому и мы не будем ее нарушать — в первом же уроке напишем программу `Hello, World!`.
2+
3+
Эта программа будет выводить на экран текст:
4+
5+
<pre class='hexlet-basics-output'>
6+
Hello, World!
7+
</pre>
8+
9+
Чтобы вывести что-то на экран, нужно дать компьютеру специальную команду. В языке JavaScript такая команда — `console.log()`.
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
name: Привет, Мир!
2+
tips:
3+
- >
4+
[Немного о 'Hello,
5+
World!'](https://ru.hexlet.io/blog/posts/moy-chelovek-menya-ponimaet-istoriya-frazy-hello-world-i-ee-analogov)
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Создайте однострочный комментарий с текстом: `You know nothing, Jon Snow!`.
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
2+
Кроме кода, в файлах с исходным кодом могут находиться комментарии. Это текст, который не является частью программы и нужен программистам для пометок. С их помощью добавляют пояснения, как работает код, какие здесь ошибки нужно поправить или не забыть что-то добавить позже.
3+
4+
```javascript
5+
// Удалить строку ниже после реализации задачи по регистрации
6+
console.log(10);
7+
```
8+
9+
Комментарии в JavaScript бывают двух видов:
10+
11+
## Однострочные комментарии
12+
13+
*Однострочные комментарии* начинаются с `//`. После этих двух символов может следовать любой текст, вся строчка не будет анализироваться и исполняться.
14+
15+
Комментарий может занимать всю строчку. Если одной строчки мало, то создаются несколько комментариев:
16+
17+
```javascript
18+
// For Winterfell!
19+
// For Lanisters!
20+
```
21+
22+
Комментарий может находиться на строчке после какого-нибудь кода:
23+
24+
```javascript
25+
console.log('I am the King'); // For Lannisters!
26+
```
27+
28+
## Многострочные комментарии
29+
30+
*Многострочные комментарии* начинаются с `/*` и заканчиваются на `*/`.
31+
32+
```javascript
33+
/*
34+
The night is dark and
35+
full of terrors.
36+
*/
37+
console.log('I am the King');
38+
```
39+
40+
https://replit.com/@hexlet/helloworld
41+
42+
Такие комментарии, обычно, используют для документирования кода, например, функций.
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
name: Комментарии
2+
tips:
3+
- |
4+
[Подробнее о комментариях](https://www.w3schools.com/js/js_comments.asp)
5+
definitions:
6+
- name: Комментарий
7+
description: >
8+
текст в коде программы, который не влияет на функциональность и
9+
добавляется программистами для себя и своих коллег.
10+
11+
12+
`// однострочный комментарий`
13+
14+
15+
```
16+
17+
/*
18+
многострочный комментарий
19+
многострочный комментарий
20+
*/
21+
22+
```
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
Выведите на экран друг за другом три имени: *Robert*, *Stannis*, *Renly*. В результате на экране должно отобразиться:
2+
3+
<pre class='hexlet-basics-output'>
4+
Robert
5+
Stannis
6+
Renly
7+
</pre>
8+
9+
Для каждого имени используйте свой собственный вызов `console.log()`.
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
Инструкция — это команда для компьютера выполнить что-то. Код на JavaScript — это набор инструкций, которые, как правило, отделяются друг от друга символом `;`.
2+
3+
Вот пример кода с двумя инструкциями.
4+
5+
```javascript
6+
console.log('Mother of Dragons.');
7+
console.log('Dracarys!');
8+
```
9+
10+
https://replit.com/@hexlet/js-basics-instructions
11+
12+
При запуске этого кода, на экран последовательно выводятся два предложения:
13+
14+
<pre class='hexlet-basics-output'>
15+
Mother of Dragons.
16+
Dracarys!
17+
</pre>
18+
19+
Теоретически, инструкции можно написать друг за другом без переноса на новую строчку:
20+
21+
```javascript
22+
console.log('Mother of Dragons.'); console.log('Drakarys!');
23+
```
24+
25+
Результат на экране будет таким же, но такой код неудобен для чтения, поэтому инструкции располагают друг под другом.
26+
27+
Почему это важно знать? Инструкция — это единица исполнения. Интерпретатор, программа которая запускает код на JavaScript, выполняет инструкции строго по очереди. И мы, как разработчики, должны понимать этот порядок и уметь мысленно разделять программу на независимые части, удобные для анализа.
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
name: Инструкции (Statements)
2+
tips:
3+
- |
4+
[Немного об интерпретаторах](https://ru.wikipedia.org/wiki/Интерпретатор)
5+
- >
6+
[Инструкции и объявления по
7+
категориям](https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Statements)
8+
definitions:
9+
- name: Интерпретатор
10+
description: |
11+
программа, выполняющая код на JavaScript.
12+
- name: Инструкция (statement)
13+
description: >
14+
команда для компьютера, написанная на языке программирования. Код на
15+
JavaScript — это набор инструкций, разделенных (чаще всего) символом `;`.
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
Просто тренировка. Выведите на экран число 9780262531962.
2+
3+
<pre class='hexlet-basics-output'>
4+
9780262531962
5+
</pre>
6+
7+
Поэкспериментируйте с выводом. Передайте туда другое число или строку. Посмотрите на ответ системы, попробуйте его перевести и понять.
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
2+
Сайт автоматически проверяет ваши решения. Как это работает?
3+
4+
В самом простом случае, система просто запускает ваш код и смотрит на то, что вывелось на экран. А потом сверяет с тем, что мы «ожидали» по заданию.
5+
6+
В следующих, более сложных уроках, вы будете писать функции — некие мини-программы, принимающие информацию из внешнего мира и производящие какие-то операции. Проверка ваших решений в таких случаях выглядит немного сложнее: система запускает ваше решение и передаёт какую-то информацию. Система также знает — «ожидает» — какой именно ответ должна дать правильная функция при таких входных данных.
7+
8+
Например, если ваша задача — написать функцию сложения двух чисел, то проверочная система будет передавать ей разные комбинации чисел и сверять ответ вашей функции с реальными суммами. Если во всех случаях ответы совпадут, то решение считается верным.
9+
10+
Такой подход называется тестированием, и он используется в реальной повседневной разработке. Обычно программист сначала пишет тест — проверочную программу, а потом уже ту программу, которую хотел написать. В процессе он постоянно запускает тесты и смотрит, приблизился ли он к решению.
11+
12+
Именно поэтому наш сайт говорит «Тесты пройдены», когда вы правильно решили задачу.
13+
14+
Вот простой пример: в одном из будущих уроков вам нужно будет написать функцию, которая производит вычисления и выдаёт ответ. Предположим, вы допустили небольшую ошибку, и функция выдала неправильное число. Система ответит примерно так:
15+
16+
<pre class='hexlet-basics-output'>
17+
● test
18+
19+
expect(received).toBe(expected) // Object.is equality
20+
21+
Expected value to be:
22+
"Hello, World!"
23+
Received:
24+
"ello, World!"
25+
</pre>
26+
27+
Expected – ожидаемое значение, а Received, то которое выдал ваш код.
28+
29+
Кроме наших тестов, будет крайне полезно экспериментировать с кодом в консоли [браузера](https://developer.mozilla.org/en-US/docs/Tools/Browser_Console). В любой ситуации, когда вы недопоняли, или хотите попробовать разные варианты использования, смело открывайте консоль и вводите туда код. Идеально, если вы выполните самостоятельно весь код, который присутствует в уроках. Кроме консоли, полезно использовать сервис [repl.it](https://repl.it/languages/javascript).
30+
31+
---
32+
33+
Иногда в процессе решения будет казаться, что вы сделали все правильно, но система "капризничает" и не принимает решение. Подобное поведение практически исключено. Нерабочие тесты просто не могут попасть на сайт, они автоматически запускаются после каждого изменения. В подавляющем большинстве таких случаев, (а все наши проекты в сумме провели миллионы проверок за много лет), ошибка содержится в коде решения. Она может быть очень незаметной, вместо английской буквы случайно ввели русскую, вместо верхнего регистра использовали нижний или забыли вывести запятую. Другие случаи сложнее. Возможно ваше решение работает для одного набора входных данных, но не работает для другого. Поэтому всегда внимательно читайте условие задачи и вывод тестов. Там почти наверняка есть указание на ошибку.
34+
35+
Однако, если вы уверены в ошибке или нашли какую-то неточность, то вы всегда можете указать на нее. В конце каждой теории есть ссылка на содержимое урока на гитхабе (этот проект полностью открытый!). Перейдя туда, вы можете написать issue, посмотреть содержимое тестов (там видно, как вызывается ваш код) и даже отправить pullrequest. Если для вас это пока темный лес, то подключитесь в наше сообщество [Telegram] (https://t.me/hexletcommunity), там в канале *Обратная связь* мы всегда поможем.
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
name: Как мы проверяем ваши решения
2+
definitions:
3+
- name: Тесты
4+
description: >
5+
специальный код, проверяющий программы на корректность, сверяя правильный
6+
результат с реальным.
7+
tips:
8+
- |
9+
[TDD](https://ru.wikipedia.org/wiki/Разработка_через_тестирование)
10+
- |
11+
[Сообщество Хекслета в Telegram](https://t.me/hexletcommunity)
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
2+
Это задание не связано с уроком напрямую. Но будет полезным потренироваться с выводом на экран.
3+
4+
Выведите на экран *What Is Dead May Never Die*
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
2+
Если программа на JavaScript написана синтаксически некорректно, то интерпретатор выводит на экран соответствующее сообщение, а также указание на файл и строчку в нём, где, по его мнению, произошла ошибка. *Синтаксическая ошибка* возникает в том случае, когда код был записан с нарушением грамматических правил. В человеческих языках грамматика важна, но текст с ошибками чаще всего можно понять и прочитать. В программировании всё строго. Любое мельчайшее нарушение, и программа даже не запустится. Примером может быть забытая `;`, неправильно расставленные скобки и другие детали.
3+
4+
Вот пример кода с синтаксической ошибкой:
5+
6+
```javascript
7+
console.log('Hodor'
8+
```
9+
10+
Если запустить код выше, то мы увидим следующее сообщение: `SyntaxError: missing ) after argument list`, а также указание на строку и файл, где возникла эта ошибка. Подобные синтаксические ошибки в JavaScript относятся к разряду SyntaxError.
11+
12+
*По техническим причинам, такой код, запущенный на https://code-basics.com не укажет на строку и файл. Проверить этот вывод можно на https://repl.it*
13+
14+
https://replit.com/@hexlet/js-basics-syntax-errors
15+
16+
С одной стороны, ошибки SyntaxError — самые простые, потому что они связаны исключительно с грамматическими правилами написания кода, а не с самим смыслом кода. Их легко исправить: нужно лишь найти нарушение в записи.
17+
18+
С другой стороны, интерпретатор не всегда может чётко указать на это нарушение. Поэтому бывает, что забытую скобку нужно поставить не туда, куда указывает сообщение об ошибке.
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
name: Синтаксические ошибки
2+
tips:
3+
- |
4+
[Ошибки в JavaScript](https://habr.com/ru/post/249525/)
5+
definitions:
6+
- name: Синтаксическая ошибка
7+
description: нарушение грамматических правил языка программирования.
8+
- name: SyntaxError (ошибка парсинга)
9+
description: >-
10+
тип ошибок в JavaScript, возникающих при наличии синтаксических ошибок в
11+
коде.
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
2+
Выведите на экран результат деления числа `81` на `9`.

0 commit comments

Comments
 (0)