Skip to content

update from main course #12

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Apr 29, 2025
Merged
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
2 changes: 0 additions & 2 deletions modules/10-basics/20-comments/ru/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,4 @@ console.log('I am the King'); // For Lannisters!
console.log('I am the King');
```

https://replit.com/@hexlet/helloworld

Такие комментарии, обычно, используют для документирования кода, например, функций.
2 changes: 0 additions & 2 deletions modules/10-basics/40-instructions/ru/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,6 @@ console.log('Mother of Dragons.');
console.log('Dracarys!');
```

https://replit.com/@hexlet/js-basics-instructions

При запуске этого кода, на экран последовательно выводятся два предложения:

<pre class='hexlet-basics-output'>
Expand Down
2 changes: 1 addition & 1 deletion modules/10-basics/45-testing/ru/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@

Expected – ожидаемое значение, а Received, то которое выдал ваш код.

Кроме наших тестов, будет крайне полезно экспериментировать с кодом в консоли [браузера](https://developer.mozilla.org/en-US/docs/Tools/Browser_Console). В любой ситуации, когда вы недопоняли, или хотите попробовать разные варианты использования, смело открывайте консоль и вводите туда код. Идеально, если вы выполните самостоятельно весь код, который присутствует в уроках. Кроме консоли, полезно использовать сервис [repl.it](https://repl.it/languages/javascript).
Кроме наших тестов, будет крайне полезно экспериментировать с кодом в консоли [браузера](https://developer.mozilla.org/en-US/docs/Tools/Browser_Console). В любой ситуации, когда вы недопоняли, или хотите попробовать разные варианты использования, смело открывайте консоль и вводите туда код.

---

Expand Down
4 changes: 0 additions & 4 deletions modules/10-basics/50-syntax-errors/ru/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,6 @@ console.log('Hodor'

Если запустить код выше, то мы увидим следующее сообщение: `SyntaxError: missing ) after argument list`, а также указание на строку и файл, где возникла эта ошибка. Подобные синтаксические ошибки в JavaScript относятся к разряду SyntaxError.

*По техническим причинам, такой код, запущенный на https://code-basics.com не укажет на строку и файл. Проверить этот вывод можно на https://repl.it*

https://replit.com/@hexlet/js-basics-syntax-errors

С одной стороны, ошибки SyntaxError — самые простые, потому что они связаны исключительно с грамматическими правилами написания кода, а не с самим смыслом кода. Их легко исправить: нужно лишь найти нарушение в записи.

С другой стороны, интерпретатор не всегда может чётко указать на это нарушение. Поэтому бывает, что забытую скобку нужно поставить не туда, куда указывает сообщение об ошибке.
2 changes: 0 additions & 2 deletions modules/20-arithmetics/20-basic/ru/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,8 +37,6 @@ console.log(8 / 2); // => 4
console.log(3 ** 2); // => 9
```

https://replit.com/@hexlet/js-basics-arithmetics-basics

Иногда для удобства мы будем показывать в комментариях результат запуска строчек кода, вот так: `=> РЕЗУЛЬТАТ`. Например, `// => 4`.

Первая инструкция выведет на экран `4` (потому что 8 / 2 это 4), а вторая инструкция выведет на экран 9 (потому что 3<sup>2</sup> это 9).
2 changes: 0 additions & 2 deletions modules/20-arithmetics/25-operator/ru/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,6 @@
console.log(8 + 2);
```

https://replit.com/@hexlet/js-basics-arithmetics-operator

В этом примере `+` — это **оператор**, а числа `8` и `2` — это **операнды**.

В случае сложения у нас есть два операнда: один слева, другой справа от знака `+`. Операции, которые требуют наличия двух операндов, называются **бинарными**. Если пропустить хотя бы один операнд, например, `3 + ;`, то программа завершится с синтаксической ошибкой.
Expand Down
2 changes: 0 additions & 2 deletions modules/20-arithmetics/30-composition/ru/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,6 @@ console.log(3 * 5 - 2); // => 13
console.log(2 * 4 * 5 * 10);
```

https://replit.com/@hexlet/js-basics-arithmetics-composition

Как видно, операции можно соединять друг с другом, получая возможность вычислять все более сложные составные выражения. Чтобы представить себе то, как происходят вычисления внутри интерпретатора, давайте разберем пример: `2 * 4 * 5 * 10`.

1. Сначала вычисляется `2 * 4` и получается выражение `8 * 5 * 10`.
Expand Down
2 changes: 0 additions & 2 deletions modules/20-arithmetics/40-priority/ru/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,4 @@ console.log(8 / 2 + 5 - -3 / 2); // => 10.5
console.log(((8 / 2) + 5) - (-3 / 2)); // => 10.5
```

https://replit.com/@hexlet/js-basics-arithmetics#index.js

Запомните: код пишется для людей, потому что код будут читать люди, а машины будут только исполнять его. Для машин код — или корректный, или не корректный, для них нет «более» понятного или «менее» понятного кода.
2 changes: 0 additions & 2 deletions modules/20-arithmetics/60-infinity/ru/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,6 @@
console.log(1 / 0); // ?
```

https://replit.com/@hexlet/js-basics-arithmetics-inifinity

Попробуйте выполнить этот код в браузере. На экран выведется `Infinity` (бесконечность)! Для тех, кто изучал высшую математику (привет, матан!), в этом нет ничего удивительного. Деление на ноль действительно создает бесконечность. Бесконечность в JavaScript — самое настоящее число, с которым возможно проводить различные операции. В повседневных задачах смысла от этого мало, так как большинство операций с бесконечностью завершаются созданием бесконечности, например, при прибавлении любого числа к бесконечности мы все равно получим бесконечность.

```javascript
Expand Down
2 changes: 0 additions & 2 deletions modules/20-arithmetics/70-nan/ru/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,4 @@ Infinity / Infinity; // NaN
NaN + 1; // NaN
```

https://replit.com/@hexlet/js-basics-arithmetics-NaN

`NaN` интересное значение, хотя оно обозначает "не число" — с точки зрения типов, оно является числом. Парадокс. `NaN` никогда не является желаемым значением и появляется только в результате ошибок. Если вы его встретили, то нужно отследить момент, в котором выполнилась операция, недопустимая для чисел, и поправить это место.
3 changes: 0 additions & 3 deletions modules/25-strings/15-escape-characters/ru/data.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,6 @@ definitions:
специальная комбинация символов в тексте. Например, `\n` — это перевод
строки.
tips:
- >
Обязательно поэкспериментируйте с выводом разных строк на сайте
[https://replit.com/languages/nodejs](https://replit.com/languages/nodejs)
- >
[История перевода
строки](https://ru.wikipedia.org/wiki/Перевод_строки#История)
2 changes: 0 additions & 2 deletions modules/25-strings/20-string-concatenation/ru/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,5 +44,3 @@ console.log("King's " + ' Landing'); // => King's Landing

console.log("King's " + ' Landing'); // => King's Landing
```

https://replit.com/@hexlet/js-basics-strings
2 changes: 0 additions & 2 deletions modules/25-strings/30-encoding/ru/EXERCISE.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,6 @@ console.log(String.fromCharCode(63));

На экран выведется символ с номером 63 — вопросительный знак `?`. Таким способом можно выводить любой символ.

https://replit.com/@hexlet/js-basics-strings-encoding

Найдите в интернете таблицу кодов ASCII. Можно использовать запросы типа "ascii codes table" или «коды ascii». Обычно в таких таблицах коды указаны сразу в нескольких системах счисления: десятичной, двоичной, восьмеричной и шестнадцатеричной. Нас интересует десятичный код (*dec* или *decimal*).

Используя пример выше и найденную таблицу, выведите на экран символы `~`, `^` и `%` (каждый на своей собственной строке).
Expand Down
2 changes: 0 additions & 2 deletions modules/30-variables/10-definition/ru/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,4 @@ console.log(greeting2);
console.log(greeting2);
```

https://replit.com/@hexlet/js-basics-variables-definition

Для удобства анализа программы, переменные принято создавать как можно ближе к тому месту, где они используются.
2 changes: 0 additions & 2 deletions modules/30-variables/11-change/ru/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,4 @@ console.log(greeting);
console.log(greeting);
```

https://replit.com/@hexlet/js-basics-variables-change

Имя осталось тем же, но внутри другие данные. Обратите внимание на ключевое различие между объявлением переменной и ее изменением. Ключевое слово `let` ставится только при создании переменной, но при изменении оно уже не используется.
2 changes: 0 additions & 2 deletions modules/30-variables/15-variables-expressions/ru/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,6 @@ let who = "dragon's" + 'mother';
console.log(who);
```

Запустите его на [repl.it](https://repl.it/languages/javascript) и поэкспериментируйте.

<details>
<summary>Ответ</summary>

Expand Down
2 changes: 0 additions & 2 deletions modules/30-variables/18-variable-concatenation/ru/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,5 +24,3 @@ let last = 'road';
let what = first + last;
console.log(what); // => Kingsroad
```

https://replit.com/@hexlet/variables-expression
2 changes: 0 additions & 2 deletions modules/30-variables/23-constants/ru/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,6 @@ const rubles = dollars * rublesInDollar; // 75000
console.log(rubles);
```

https://replit.com/@hexlet/js-basics-variables

Единственное изменение заключается в том, что ключевое слово `let` заменилось на `const`, но это только синтаксис. Теперь, если попытаться изменить любую константу, то мы получим сообщение об ошибке. В остальном они используются точно так же, как и переменные.

```javascript
Expand Down
2 changes: 0 additions & 2 deletions modules/30-variables/25-interpolation/ru/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,6 @@ console.log(`${greeting}, ${firstName}!`);
// => Hello, Joffrey!
```

https://replit.com/@hexlet/js-basics-interpolation

Мы просто создали одну строку и «вставили» в неё в нужные места константы с помощью знака доллара и фигурных скобок `${ }`. Получился как будто бланк, куда внесены нужные значения. И нам не нужно больше заботиться об отдельных строках для знаков препинания и пробелов — все эти символы просто записаны в этой строке-шаблоне.

В одной строке можно делать сколько угодно подобных блоков.
Expand Down
2 changes: 0 additions & 2 deletions modules/30-variables/30-symbols/ru/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,5 +46,3 @@ const firstName = 'Tirion';

console.log(firstName[10]); // => undefined
```

https://replit.com/@hexlet/js-basics-symbols
2 changes: 0 additions & 2 deletions modules/33-data-types/10-primitive-data-types/ru/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,6 @@ typeof 3; // number
typeof 'Game'; // string
```

https://replit.com/@hexlet/js-basics-data-types-primitive-data-types

Типы данных Number, BigInt и String — это *примитивные* типы. Но есть и другие. В JavaScript встроен составной тип Object (а на его базе массивы, даты и другие). С его помощью можно объединять данные разных типов в одно значение, например, мы можем создать пользователя добавив к нему имя и возраст.

```javascript
Expand Down
2 changes: 0 additions & 2 deletions modules/33-data-types/45-undefined/ru/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,6 @@ const name = 'Arya';
console.log(name[8]);
```

https://replit.com/@hexlet/js-basics-data-types-undefined

Смысл (семантика) значения `undefined` именно в том, что значения нет. Однако, ничто не мешает написать такой код:

```javascript
Expand Down
2 changes: 0 additions & 2 deletions modules/33-data-types/50-data-types-weak-typing/ru/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,6 @@ const result = 'one' * 'two';
console.log(result); // => NaN
```

https://replit.com/@hexlet/js-basics-immutability-of-primitive-types

В языках со **строгой типизацией** сложить число со строкой не получится.

JavaScript был создан для интернета, а в интернете вся информация — это строки. Даже когда вы вводите на сайте номер телефона или год рождения, на сервер эта информация поступает не как числа, а как строки. Поэтому авторы языка решили, что автоматически преобразовывать типы — правильно и удобно.
Expand Down
2 changes: 0 additions & 2 deletions modules/35-calling-functions/110-math/ru/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,6 @@
Math.pow(2, 3); // 8
```

https://replit.com/@hexlet/js-basics-calling-functions-math

Что такое `Math`? Технически — это объект, доступный из любого места программы, но перед тем, как говорить об объектах, нужно проделать очень большой путь. Сейчас достаточно запомнить, что функции для математических операций вызываются через `Math.`. Наличие этой приставки никак не влияет на понятие функции, которое мы рассмотрели ранее и будем рассматривать позже.

Полный список функций Math доступен в [документации](https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/Math). О том, как её правильно читать, мы поговорим далее.
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,6 @@ const result = Math.pow(2, 'boom');
console.log(result); // => NaN
```

https://replit.com/@hexlet/js-basics-calling-functions-function-signature

Другая функция может иметь другое число параметров и другие типы параметров. Например, может существовать функция, которая принимает три параметра: число, строку и ещё одно число.

Откуда мы знаем, сколько каких параметров нужно функции `Math.pow()` и какого типа будет «возврат»? Мы заглянули в **сигнатуру** этой функции. Сигнатура определяет входные параметры и их типы, а также выходной параметр и его тип. Про функцию `Math.pow()` можно почитать в [документации](https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/Math/pow). В разделе «Синтаксис» есть такой текст:
Expand Down
2 changes: 0 additions & 2 deletions modules/38-properties/100-properties-syntax/ru/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,6 @@ const len = name.length;
console.log(len); // => 4
```

https://replit.com/@hexlet/js-basics-properties-properties-syntax

Свойства связаны с данными, у которых они берутся. Для примитивных типов все свойства описаны в документации, как например, у [строк](https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/String). При этом у чисел вообще нет свойств.

JavaScript позволяет обращаться к свойствам, которые не существуют (например, при опечатках). В таком случае их значением является `undefined`:
Expand Down
2 changes: 0 additions & 2 deletions modules/38-properties/200-properties-methods/ru/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,6 @@ const upperName = name.toUpperCase();
console.log(upperName); // => ROBB
```

https://replit.com/@hexlet/js-basics-properties-methods

Встроенные методы всегда оперируют теми данными, с которыми они связаны. Метод `.toUpperCase()` возвращает ту же строку, но преобразуя все символы в верхний регистр. Методов у данных обычно значительно больше, чем свойств, например, для строк их [несколько десятков](https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/String). В документации, на первый взгляд, они описаны немного странно: *String.prototype.toLowerCase()*. Это описание раскрывает некоторые внутренние детали реализации, которые сейчас не важны, да и мы не изучили всей необходимой базы для разговора о прототипах.

Методы есть и у [чисел](https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/Number):
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,6 @@ name.length = 100;
console.log(name.length); // => 6
```

https://replit.com/@hexlet/js-properties-immutability

Вместо изменения значения можно *заменить* значение. Для этого понадобятся переменные:

```javascript
Expand Down
2 changes: 0 additions & 2 deletions modules/38-properties/400-properties-expressions/ru/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,5 +18,3 @@ console.log(name2.length); // => 5
console.log(name2.toLowerCase()); // => shaya
console.log(Math.min(name1.length, name2.length)); // => 4
```

https://replit.com/@hexlet/js-basics-properties-method
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,6 @@ const showGreeting = () => {
showGreeting(); // => Hello, Hexlet!
```

https://replit.com/@hexlet/js-basics-functions-define

В отличие от обычных данных, функции выполняют действия, поэтому их имена практически всегда должны быть глаголами: «построить что-то», «нарисовать что-то», «открыть что-то».

Всё, что описывается внутри фигурных скобок `{}`, называется телом функции. Внутри тела можно описывать любой код. Считайте, что это маленькая самостоятельная программа, набор произвольных инструкций. Тело выполняется ровно в тот момент, когда запускается функция. Причём каждый вызов функции запускает тело независимо от других вызовов. Кстати, тело может быть пустым:
Expand Down
Loading