From 027932d16854f4f90e17afe3354d85d5df6a1db3 Mon Sep 17 00:00:00 2001 From: Nikolay Gagarinov Date: Tue, 29 Apr 2025 20:07:37 +0500 Subject: [PATCH] update from main course --- modules/10-basics/20-comments/ru/README.md | 2 -- modules/10-basics/40-instructions/ru/README.md | 2 -- modules/10-basics/45-testing/ru/README.md | 2 +- modules/10-basics/50-syntax-errors/ru/README.md | 4 ---- modules/20-arithmetics/20-basic/ru/README.md | 2 -- modules/20-arithmetics/25-operator/ru/README.md | 2 -- modules/20-arithmetics/30-composition/ru/README.md | 2 -- modules/20-arithmetics/40-priority/ru/README.md | 2 -- modules/20-arithmetics/60-infinity/ru/README.md | 2 -- modules/20-arithmetics/70-nan/ru/README.md | 2 -- modules/25-strings/15-escape-characters/ru/data.yml | 3 --- modules/25-strings/20-string-concatenation/ru/README.md | 2 -- modules/25-strings/30-encoding/ru/EXERCISE.md | 2 -- modules/30-variables/10-definition/ru/README.md | 2 -- modules/30-variables/11-change/ru/README.md | 2 -- modules/30-variables/15-variables-expressions/ru/README.md | 2 -- modules/30-variables/18-variable-concatenation/ru/README.md | 2 -- modules/30-variables/23-constants/ru/README.md | 2 -- modules/30-variables/25-interpolation/ru/README.md | 2 -- modules/30-variables/30-symbols/ru/README.md | 2 -- modules/33-data-types/10-primitive-data-types/ru/README.md | 2 -- modules/33-data-types/45-undefined/ru/README.md | 2 -- modules/33-data-types/50-data-types-weak-typing/ru/README.md | 2 -- modules/35-calling-functions/110-math/ru/README.md | 2 -- .../35-calling-functions/120-function-signature/ru/README.md | 2 -- modules/38-properties/100-properties-syntax/ru/README.md | 2 -- modules/38-properties/200-properties-methods/ru/README.md | 2 -- .../38-properties/300-properties-immutability/ru/README.md | 2 -- modules/38-properties/400-properties-expressions/ru/README.md | 2 -- .../100-define-functions-syntax/ru/README.md | 2 -- .../150-define-functions-return/ru/README.md | 2 -- .../320-define-functions-parameters/ru/README.md | 2 -- .../340-define-functions-default-parameters/ru/README.md | 2 -- .../450-define-functions-short-syntax/ru/README.md | 2 -- modules/45-logic/10-bool-type/ru/README.md | 2 -- modules/45-logic/15-predicates/ru/README.md | 2 -- modules/45-logic/20-logic-combine-expressions/ru/README.md | 2 -- modules/45-logic/25-logical-operators/ru/README.md | 2 -- modules/45-logic/28-logical-negation/ru/README.md | 2 -- modules/45-logic/70-logical-expressions/ru/README.md | 2 -- modules/48-conditionals/30-if/ru/README.md | 2 -- modules/48-conditionals/40-if-else/ru/README.md | 2 -- modules/48-conditionals/50-else-if/ru/README.md | 2 -- modules/48-conditionals/60-ternary-operator/ru/README.md | 2 -- modules/48-conditionals/65-switch/ru/README.md | 2 -- modules/50-loops/10-while/ru/README.md | 2 -- modules/50-loops/20-aggregation-numbers/ru/README.md | 2 -- modules/50-loops/23-aggregation-strings/ru/README.md | 2 -- modules/50-loops/25-iteration-over-string/ru/README.md | 2 -- modules/50-loops/26-conditions-inside-loops/ru/README.md | 2 -- modules/50-loops/28-build-strings/ru/README.md | 2 -- modules/50-loops/50-mutators/ru/README.md | 2 -- modules/50-loops/55-return-from-loops/ru/README.md | 2 -- modules/50-loops/70-for/ru/README.md | 2 -- 54 files changed, 1 insertion(+), 110 deletions(-) diff --git a/modules/10-basics/20-comments/ru/README.md b/modules/10-basics/20-comments/ru/README.md index fadb17a..1bef829 100644 --- a/modules/10-basics/20-comments/ru/README.md +++ b/modules/10-basics/20-comments/ru/README.md @@ -37,6 +37,4 @@ console.log('I am the King'); // For Lannisters! console.log('I am the King'); ``` -https://replit.com/@hexlet/helloworld - Такие комментарии, обычно, используют для документирования кода, например, функций. diff --git a/modules/10-basics/40-instructions/ru/README.md b/modules/10-basics/40-instructions/ru/README.md index 0c39d45..07d5034 100644 --- a/modules/10-basics/40-instructions/ru/README.md +++ b/modules/10-basics/40-instructions/ru/README.md @@ -7,8 +7,6 @@ console.log('Mother of Dragons.'); console.log('Dracarys!'); ``` -https://replit.com/@hexlet/js-basics-instructions - При запуске этого кода, на экран последовательно выводятся два предложения:
diff --git a/modules/10-basics/45-testing/ru/README.md b/modules/10-basics/45-testing/ru/README.md
index 6e86eb8..4d2fe3a 100644
--- a/modules/10-basics/45-testing/ru/README.md
+++ b/modules/10-basics/45-testing/ru/README.md
@@ -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). В любой ситуации, когда вы недопоняли, или хотите попробовать разные варианты использования, смело открывайте консоль и вводите туда код.
 
 ---
 
diff --git a/modules/10-basics/50-syntax-errors/ru/README.md b/modules/10-basics/50-syntax-errors/ru/README.md
index c6e7f16..89cf54d 100644
--- a/modules/10-basics/50-syntax-errors/ru/README.md
+++ b/modules/10-basics/50-syntax-errors/ru/README.md
@@ -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 — самые простые, потому что они связаны исключительно с грамматическими правилами написания кода, а не с самим смыслом кода. Их легко исправить: нужно лишь найти нарушение в записи.
 
 С другой стороны, интерпретатор не всегда может чётко указать на это нарушение. Поэтому бывает, что забытую скобку нужно поставить не туда, куда указывает сообщение об ошибке.
diff --git a/modules/20-arithmetics/20-basic/ru/README.md b/modules/20-arithmetics/20-basic/ru/README.md
index 04b2b3e..b02e672 100644
--- a/modules/20-arithmetics/20-basic/ru/README.md
+++ b/modules/20-arithmetics/20-basic/ru/README.md
@@ -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 (потому что 32 это 9).
diff --git a/modules/20-arithmetics/25-operator/ru/README.md b/modules/20-arithmetics/25-operator/ru/README.md
index 105580f..d566570 100644
--- a/modules/20-arithmetics/25-operator/ru/README.md
+++ b/modules/20-arithmetics/25-operator/ru/README.md
@@ -5,8 +5,6 @@
 console.log(8 + 2);
 ```
 
-https://replit.com/@hexlet/js-basics-arithmetics-operator
-
 В этом примере `+` — это **оператор**, а числа `8` и `2` — это **операнды**.
 
 В случае сложения у нас есть два операнда: один слева, другой справа от знака `+`. Операции, которые требуют наличия двух операндов, называются **бинарными**. Если пропустить хотя бы один операнд, например, `3 + ;`, то программа завершится с синтаксической ошибкой.
diff --git a/modules/20-arithmetics/30-composition/ru/README.md b/modules/20-arithmetics/30-composition/ru/README.md
index 3d6b317..567335a 100644
--- a/modules/20-arithmetics/30-composition/ru/README.md
+++ b/modules/20-arithmetics/30-composition/ru/README.md
@@ -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`.
diff --git a/modules/20-arithmetics/40-priority/ru/README.md b/modules/20-arithmetics/40-priority/ru/README.md
index 2eaa208..0129307 100644
--- a/modules/20-arithmetics/40-priority/ru/README.md
+++ b/modules/20-arithmetics/40-priority/ru/README.md
@@ -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
-
 Запомните: код пишется для людей, потому что код будут читать люди, а машины будут только исполнять его. Для машин код — или корректный, или не корректный, для них нет «более» понятного или «менее» понятного кода.
diff --git a/modules/20-arithmetics/60-infinity/ru/README.md b/modules/20-arithmetics/60-infinity/ru/README.md
index 077f64f..72beff1 100644
--- a/modules/20-arithmetics/60-infinity/ru/README.md
+++ b/modules/20-arithmetics/60-infinity/ru/README.md
@@ -5,8 +5,6 @@
 console.log(1 / 0); // ?
 ```
 
-https://replit.com/@hexlet/js-basics-arithmetics-inifinity
-
 Попробуйте выполнить этот код в браузере. На экран выведется `Infinity` (бесконечность)! Для тех, кто изучал высшую математику (привет, матан!), в этом нет ничего удивительного. Деление на ноль действительно создает бесконечность. Бесконечность в JavaScript — самое настоящее число, с которым возможно проводить различные операции. В повседневных задачах смысла от этого мало, так как большинство операций с бесконечностью завершаются созданием бесконечности, например, при прибавлении любого числа к бесконечности мы все равно получим бесконечность.
 
 ```javascript
diff --git a/modules/20-arithmetics/70-nan/ru/README.md b/modules/20-arithmetics/70-nan/ru/README.md
index 64c0cc7..eb4e128 100644
--- a/modules/20-arithmetics/70-nan/ru/README.md
+++ b/modules/20-arithmetics/70-nan/ru/README.md
@@ -10,6 +10,4 @@ Infinity / Infinity; // NaN
 NaN + 1; // NaN
 ```
 
-https://replit.com/@hexlet/js-basics-arithmetics-NaN
-
 `NaN` интересное значение, хотя оно обозначает "не число" — с точки зрения типов, оно является числом. Парадокс. `NaN` никогда не является желаемым значением и появляется только в результате ошибок. Если вы его встретили, то нужно отследить момент, в котором выполнилась операция, недопустимая для чисел, и поправить это место.
diff --git a/modules/25-strings/15-escape-characters/ru/data.yml b/modules/25-strings/15-escape-characters/ru/data.yml
index 6b1857f..4556cb7 100644
--- a/modules/25-strings/15-escape-characters/ru/data.yml
+++ b/modules/25-strings/15-escape-characters/ru/data.yml
@@ -6,9 +6,6 @@ definitions:
       специальная комбинация символов в тексте. Например, `\n` — это перевод
       строки.
 tips:
-  - >
-    Обязательно поэкспериментируйте с выводом разных строк на сайте
-    [https://replit.com/languages/nodejs](https://replit.com/languages/nodejs)
   - >
     [История перевода
     строки](https://ru.wikipedia.org/wiki/Перевод_строки#История)
diff --git a/modules/25-strings/20-string-concatenation/ru/README.md b/modules/25-strings/20-string-concatenation/ru/README.md
index cb0721b..86791ea 100644
--- a/modules/25-strings/20-string-concatenation/ru/README.md
+++ b/modules/25-strings/20-string-concatenation/ru/README.md
@@ -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
diff --git a/modules/25-strings/30-encoding/ru/EXERCISE.md b/modules/25-strings/30-encoding/ru/EXERCISE.md
index b6e7f9c..6b07242 100644
--- a/modules/25-strings/30-encoding/ru/EXERCISE.md
+++ b/modules/25-strings/30-encoding/ru/EXERCISE.md
@@ -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*).
 
 Используя пример выше и найденную таблицу, выведите на экран символы `~`, `^` и `%` (каждый на своей собственной строке).
diff --git a/modules/30-variables/10-definition/ru/README.md b/modules/30-variables/10-definition/ru/README.md
index 32fa509..e480231 100644
--- a/modules/30-variables/10-definition/ru/README.md
+++ b/modules/30-variables/10-definition/ru/README.md
@@ -44,6 +44,4 @@ console.log(greeting2);
 console.log(greeting2);
 ```
 
-https://replit.com/@hexlet/js-basics-variables-definition
-
 Для удобства анализа программы, переменные принято создавать как можно ближе к тому месту, где они используются.
diff --git a/modules/30-variables/11-change/ru/README.md b/modules/30-variables/11-change/ru/README.md
index cf430d2..38e227b 100644
--- a/modules/30-variables/11-change/ru/README.md
+++ b/modules/30-variables/11-change/ru/README.md
@@ -11,6 +11,4 @@ console.log(greeting);
 console.log(greeting);
 ```
 
-https://replit.com/@hexlet/js-basics-variables-change
-
 Имя осталось тем же, но внутри другие данные. Обратите внимание на ключевое различие между объявлением переменной и ее изменением. Ключевое слово `let` ставится только при создании переменной, но при изменении оно уже не используется.
diff --git a/modules/30-variables/15-variables-expressions/ru/README.md b/modules/30-variables/15-variables-expressions/ru/README.md
index 1fe1792..4a3dc14 100644
--- a/modules/30-variables/15-variables-expressions/ru/README.md
+++ b/modules/30-variables/15-variables-expressions/ru/README.md
@@ -32,8 +32,6 @@ let who = "dragon's" + 'mother';
 console.log(who);
 ```
 
-Запустите его на [repl.it](https://repl.it/languages/javascript) и поэкспериментируйте.
-
 
Ответ diff --git a/modules/30-variables/18-variable-concatenation/ru/README.md b/modules/30-variables/18-variable-concatenation/ru/README.md index b850866..1195a2d 100644 --- a/modules/30-variables/18-variable-concatenation/ru/README.md +++ b/modules/30-variables/18-variable-concatenation/ru/README.md @@ -24,5 +24,3 @@ let last = 'road'; let what = first + last; console.log(what); // => Kingsroad ``` - -https://replit.com/@hexlet/variables-expression diff --git a/modules/30-variables/23-constants/ru/README.md b/modules/30-variables/23-constants/ru/README.md index 442d833..dd31da3 100644 --- a/modules/30-variables/23-constants/ru/README.md +++ b/modules/30-variables/23-constants/ru/README.md @@ -24,8 +24,6 @@ const rubles = dollars * rublesInDollar; // 75000 console.log(rubles); ``` -https://replit.com/@hexlet/js-basics-variables - Единственное изменение заключается в том, что ключевое слово `let` заменилось на `const`, но это только синтаксис. Теперь, если попытаться изменить любую константу, то мы получим сообщение об ошибке. В остальном они используются точно так же, как и переменные. ```javascript diff --git a/modules/30-variables/25-interpolation/ru/README.md b/modules/30-variables/25-interpolation/ru/README.md index 5f31fd9..ca62935 100644 --- a/modules/30-variables/25-interpolation/ru/README.md +++ b/modules/30-variables/25-interpolation/ru/README.md @@ -23,8 +23,6 @@ console.log(`${greeting}, ${firstName}!`); // => Hello, Joffrey! ``` -https://replit.com/@hexlet/js-basics-interpolation - Мы просто создали одну строку и «вставили» в неё в нужные места константы с помощью знака доллара и фигурных скобок `${ }`. Получился как будто бланк, куда внесены нужные значения. И нам не нужно больше заботиться об отдельных строках для знаков препинания и пробелов — все эти символы просто записаны в этой строке-шаблоне. В одной строке можно делать сколько угодно подобных блоков. diff --git a/modules/30-variables/30-symbols/ru/README.md b/modules/30-variables/30-symbols/ru/README.md index 6bc82cc..d12bc68 100644 --- a/modules/30-variables/30-symbols/ru/README.md +++ b/modules/30-variables/30-symbols/ru/README.md @@ -46,5 +46,3 @@ const firstName = 'Tirion'; console.log(firstName[10]); // => undefined ``` - -https://replit.com/@hexlet/js-basics-symbols diff --git a/modules/33-data-types/10-primitive-data-types/ru/README.md b/modules/33-data-types/10-primitive-data-types/ru/README.md index 3098b11..b5fbe98 100644 --- a/modules/33-data-types/10-primitive-data-types/ru/README.md +++ b/modules/33-data-types/10-primitive-data-types/ru/README.md @@ -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 diff --git a/modules/33-data-types/45-undefined/ru/README.md b/modules/33-data-types/45-undefined/ru/README.md index 4bbee23..8bf5ffb 100644 --- a/modules/33-data-types/45-undefined/ru/README.md +++ b/modules/33-data-types/45-undefined/ru/README.md @@ -13,8 +13,6 @@ const name = 'Arya'; console.log(name[8]); ``` -https://replit.com/@hexlet/js-basics-data-types-undefined - Смысл (семантика) значения `undefined` именно в том, что значения нет. Однако, ничто не мешает написать такой код: ```javascript diff --git a/modules/33-data-types/50-data-types-weak-typing/ru/README.md b/modules/33-data-types/50-data-types-weak-typing/ru/README.md index 4fab117..04f618e 100644 --- a/modules/33-data-types/50-data-types-weak-typing/ru/README.md +++ b/modules/33-data-types/50-data-types-weak-typing/ru/README.md @@ -16,8 +16,6 @@ const result = 'one' * 'two'; console.log(result); // => NaN ``` -https://replit.com/@hexlet/js-basics-immutability-of-primitive-types - В языках со **строгой типизацией** сложить число со строкой не получится. JavaScript был создан для интернета, а в интернете вся информация — это строки. Даже когда вы вводите на сайте номер телефона или год рождения, на сервер эта информация поступает не как числа, а как строки. Поэтому авторы языка решили, что автоматически преобразовывать типы — правильно и удобно. diff --git a/modules/35-calling-functions/110-math/ru/README.md b/modules/35-calling-functions/110-math/ru/README.md index b118c7a..07ba109 100644 --- a/modules/35-calling-functions/110-math/ru/README.md +++ b/modules/35-calling-functions/110-math/ru/README.md @@ -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). О том, как её правильно читать, мы поговорим далее. diff --git a/modules/35-calling-functions/120-function-signature/ru/README.md b/modules/35-calling-functions/120-function-signature/ru/README.md index b7cd1d2..5c1ca3b 100644 --- a/modules/35-calling-functions/120-function-signature/ru/README.md +++ b/modules/35-calling-functions/120-function-signature/ru/README.md @@ -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). В разделе «Синтаксис» есть такой текст: diff --git a/modules/38-properties/100-properties-syntax/ru/README.md b/modules/38-properties/100-properties-syntax/ru/README.md index 49cd3ab..a8bf6e8 100644 --- a/modules/38-properties/100-properties-syntax/ru/README.md +++ b/modules/38-properties/100-properties-syntax/ru/README.md @@ -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`: diff --git a/modules/38-properties/200-properties-methods/ru/README.md b/modules/38-properties/200-properties-methods/ru/README.md index be3f414..66c8148 100644 --- a/modules/38-properties/200-properties-methods/ru/README.md +++ b/modules/38-properties/200-properties-methods/ru/README.md @@ -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): diff --git a/modules/38-properties/300-properties-immutability/ru/README.md b/modules/38-properties/300-properties-immutability/ru/README.md index a73d9e5..3427a78 100644 --- a/modules/38-properties/300-properties-immutability/ru/README.md +++ b/modules/38-properties/300-properties-immutability/ru/README.md @@ -16,8 +16,6 @@ name.length = 100; console.log(name.length); // => 6 ``` -https://replit.com/@hexlet/js-properties-immutability - Вместо изменения значения можно *заменить* значение. Для этого понадобятся переменные: ```javascript diff --git a/modules/38-properties/400-properties-expressions/ru/README.md b/modules/38-properties/400-properties-expressions/ru/README.md index 95a1b91..efe722c 100644 --- a/modules/38-properties/400-properties-expressions/ru/README.md +++ b/modules/38-properties/400-properties-expressions/ru/README.md @@ -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 diff --git a/modules/40-define-functions/100-define-functions-syntax/ru/README.md b/modules/40-define-functions/100-define-functions-syntax/ru/README.md index bc9d792..4dd4dae 100644 --- a/modules/40-define-functions/100-define-functions-syntax/ru/README.md +++ b/modules/40-define-functions/100-define-functions-syntax/ru/README.md @@ -34,8 +34,6 @@ const showGreeting = () => { showGreeting(); // => Hello, Hexlet! ``` -https://replit.com/@hexlet/js-basics-functions-define - В отличие от обычных данных, функции выполняют действия, поэтому их имена практически всегда должны быть глаголами: «построить что-то», «нарисовать что-то», «открыть что-то». Всё, что описывается внутри фигурных скобок `{}`, называется телом функции. Внутри тела можно описывать любой код. Считайте, что это маленькая самостоятельная программа, набор произвольных инструкций. Тело выполняется ровно в тот момент, когда запускается функция. Причём каждый вызов функции запускает тело независимо от других вызовов. Кстати, тело может быть пустым: diff --git a/modules/40-define-functions/150-define-functions-return/ru/README.md b/modules/40-define-functions/150-define-functions-return/ru/README.md index 7c7cf14..7e2f6aa 100644 --- a/modules/40-define-functions/150-define-functions-return/ru/README.md +++ b/modules/40-define-functions/150-define-functions-return/ru/README.md @@ -112,5 +112,3 @@ console.log(run()); На экран будет выведено `5`.
- -https://replit.com/@hexlet/js-basics-functions-return diff --git a/modules/40-define-functions/320-define-functions-parameters/ru/README.md b/modules/40-define-functions/320-define-functions-parameters/ru/README.md index f1e2853..6dbcafd 100644 --- a/modules/40-define-functions/320-define-functions-parameters/ru/README.md +++ b/modules/40-define-functions/320-define-functions-parameters/ru/README.md @@ -74,8 +74,6 @@ average(1, 5); // 3 average(1, 2); // 1.5 ``` -https://replit.com/@hexlet/js-basics-define-functions-parameters - То же самое относится и к методам. Они могут требовать на вход любое количество параметров, которое им нужно для работы: ```javascript diff --git a/modules/40-define-functions/340-define-functions-default-parameters/ru/README.md b/modules/40-define-functions/340-define-functions-default-parameters/ru/README.md index b81d72f..b66fabd 100644 --- a/modules/40-define-functions/340-define-functions-default-parameters/ru/README.md +++ b/modules/40-define-functions/340-define-functions-default-parameters/ru/README.md @@ -13,8 +13,6 @@ pow(3); // 9 pow(3, 3); // 27 ``` -https://replit.com/@hexlet/js-basics-define-functions-default-parameters - Значение по умолчанию выглядит как обычное присваивание в определении. Оно срабатывает только в том случае, если аргумент не передан. К этому нужно привыкнуть. Значение по умолчанию может быть даже в том случае, когда параметр один: ```javascript diff --git a/modules/40-define-functions/450-define-functions-short-syntax/ru/README.md b/modules/40-define-functions/450-define-functions-short-syntax/ru/README.md index 5f7ef79..62480f3 100644 --- a/modules/40-define-functions/450-define-functions-short-syntax/ru/README.md +++ b/modules/40-define-functions/450-define-functions-short-syntax/ru/README.md @@ -33,6 +33,4 @@ const sum = (a, b) => { const sum = (a, b) => a + b; ``` -https://replit.com/@hexlet/js-basics-define-functions-short-syntax - Обратите внимание на отсутствие фигурных скобок. Разработчики, которые не привыкли использовать такой синтаксис, иногда пишут подобный код `const sum = (a, b) => { a + b };`, а потом долго не могут понять, почему он не работает. Ответ очень простой: если стоят фигурные скобки, то это не сокращенная форма, а значит, чтобы функция вернула значение, придётся поставить `return`. diff --git a/modules/45-logic/10-bool-type/ru/README.md b/modules/45-logic/10-bool-type/ru/README.md index 6d639bc..c3237f6 100644 --- a/modules/45-logic/10-bool-type/ru/README.md +++ b/modules/45-logic/10-bool-type/ru/README.md @@ -46,8 +46,6 @@ console.log(isInfant(3));
false
-https://replit.com/@hexlet/js-basics-logic-bool-type - А теперь проверим ребенка, которому полгода: ```javascript diff --git a/modules/45-logic/15-predicates/ru/README.md b/modules/45-logic/15-predicates/ru/README.md index 2de8be5..8f9f642 100644 --- a/modules/45-logic/15-predicates/ru/README.md +++ b/modules/45-logic/15-predicates/ru/README.md @@ -7,8 +7,6 @@ console.log(isInfant(3)); ```
false
-https://replit.com/@hexlet/js-basics-logic-bool-type - Подобные функции называют предикатами. Функции-предикаты (или функции-вопросы) отвечают на какой-то вопрос и всегда (без исключений!) возвращают либо `true`, либо `false`. Предикаты во всех языках принято именовать особым образом для простоты анализа. В JavaScript предикаты, как правило, начинаются с префикса `is`, `has` или `can`, но не ограничены этими словами. Примеры: diff --git a/modules/45-logic/20-logic-combine-expressions/ru/README.md b/modules/45-logic/20-logic-combine-expressions/ru/README.md index 54c8646..17eba8e 100644 --- a/modules/45-logic/20-logic-combine-expressions/ru/README.md +++ b/modules/45-logic/20-logic-combine-expressions/ru/README.md @@ -63,5 +63,3 @@ const isFirstLetterInUpperCase = (string) => { isFirstLetterInUpperCase('marmont'); // false isFirstLetterInUpperCase('Robb'); // true ``` - -https://replit.com/@hexlet/js-basics-logica-operations diff --git a/modules/45-logic/25-logical-operators/ru/README.md b/modules/45-logic/25-logical-operators/ru/README.md index 7c9735b..80adc4b 100644 --- a/modules/45-logic/25-logical-operators/ru/README.md +++ b/modules/45-logic/25-logical-operators/ru/README.md @@ -56,8 +56,6 @@ isGoodApartment(120, 'Main Street'); // true isGoodApartment(80, 'Main Street'); // true ``` -https://replit.com/@hexlet/js-basics-logical-operators - Область математики, в которой изучаются логические операторы, называется булевой алгеброй. Ниже показаны «таблицы истинности» — по ним можно определить, каким будет результат применения оператора: ## И `&&` diff --git a/modules/45-logic/28-logical-negation/ru/README.md b/modules/45-logic/28-logical-negation/ru/README.md index 69dc65f..5b9dc26 100644 --- a/modules/45-logic/28-logical-negation/ru/README.md +++ b/modules/45-logic/28-logical-negation/ru/README.md @@ -10,8 +10,6 @@ isEven(10); // true !isEven(10); // false ``` -https://replit.com/@hexlet/js-basics-logical-negation - То есть мы просто добавили `!` слева от вызова функции и получили обратное действие. Отрицание — мощный инструмент, который позволяет лаконично выражать задуманные правила в коде без необходимости писать новые функции. diff --git a/modules/45-logic/70-logical-expressions/ru/README.md b/modules/45-logic/70-logical-expressions/ru/README.md index d0f927a..045de94 100644 --- a/modules/45-logic/70-logical-expressions/ru/README.md +++ b/modules/45-logic/70-logical-expressions/ru/README.md @@ -40,8 +40,6 @@ const value = name || ''; undefined || ''; // '' ``` -https://replit.com/@hexlet/js-basics-logical-expressions - Если `name` примет одно из falsy-значений, константе `value` будет присвоена пустая строка. В этом случае в последующем коде мы сможем работать с `value` как со строкой. Но здесь есть потенциальный баг. Если `name` содержит falsy-значение, а присваивание константе value значений типа `0`, `undefined`, `NaN` или `null` допустимо, то код выше начнет работать неверно: diff --git a/modules/48-conditionals/30-if/ru/README.md b/modules/48-conditionals/30-if/ru/README.md index f2b6ea9..1da986e 100644 --- a/modules/48-conditionals/30-if/ru/README.md +++ b/modules/48-conditionals/30-if/ru/README.md @@ -17,8 +17,6 @@ getTypeOfSentence('Hodor'); // general getTypeOfSentence('Hodor?'); // question ``` -https://replit.com/@hexlet/js-basics-if - `if` - конструкция языка, управляющая порядком выполнения инструкций. В скобках ей передается выражение-предикат, а затем описывается блок кода в фигурных скобках. Этот блок кода будет выполнен, только если предикат — истина. Если предикат — ложь, то блок кода в фигурных скобках пропускается, и функция продолжает свое выполнение дальше. В нашем случае следующая строчка кода — `return 'general';` — заставит функцию вернуть строку и завершиться. diff --git a/modules/48-conditionals/40-if-else/ru/README.md b/modules/48-conditionals/40-if-else/ru/README.md index effa5f8..974d272 100644 --- a/modules/48-conditionals/40-if-else/ru/README.md +++ b/modules/48-conditionals/40-if-else/ru/README.md @@ -30,8 +30,6 @@ const getTypeOfSentence = (sentence) => { }; ``` -https://replit.com/@hexlet/js-basics-if-else - Мы добавили ключевое слово `else` и новый блок с фигурными скобками. Этот блок выполнится, только если условие в `if` — ложь. Существует два способа оформления конструкции *if-else*. С помощью отрицания можно изменить порядок блоков: diff --git a/modules/48-conditionals/50-else-if/ru/README.md b/modules/48-conditionals/50-else-if/ru/README.md index 093ce65..5b07c51 100644 --- a/modules/48-conditionals/50-else-if/ru/README.md +++ b/modules/48-conditionals/50-else-if/ru/README.md @@ -24,8 +24,6 @@ getTypeOfSentence('No'); // Sentence is normal getTypeOfSentence('No!'); // Sentence is exclamation ``` -https://replit.com/@hexlet/js-basics-conditionals - Мы добавили ещё одну проверку ("exclamation" переводится «восклицание»). Технически функция работает, но с точки зрения семантики есть проблемы. - Проверка на наличие вопросительного знака происходит в любом случае, даже если уже был обнаружен восклицательный знак. diff --git a/modules/48-conditionals/60-ternary-operator/ru/README.md b/modules/48-conditionals/60-ternary-operator/ru/README.md index b9e518a..e7b17cb 100644 --- a/modules/48-conditionals/60-ternary-operator/ru/README.md +++ b/modules/48-conditionals/60-ternary-operator/ru/README.md @@ -65,8 +65,6 @@ getTypeOfSentence('Hodor'); // normal getTypeOfSentence('Hodor?'); // question ``` -https://replit.com/@hexlet/js-basics-ternary-operator - --- Если вы помните, в чём сила выражений, то вероятно уже догадались, что тернарный оператор можно вкладывать в тернарный оператор. **Не делайте этого :)** Такой код тяжело и читать, и отлаживать, это очень плохая практика. diff --git a/modules/48-conditionals/65-switch/ru/README.md b/modules/48-conditionals/65-switch/ru/README.md index ea3390c..e06f5e4 100644 --- a/modules/48-conditionals/65-switch/ru/README.md +++ b/modules/48-conditionals/65-switch/ru/README.md @@ -93,6 +93,4 @@ switch (count) { }; ``` -https://replit.com/@hexlet/js-basics-switch - Switch хоть и встречается в коде, но технически всегда можно обойтись без него. Ключевая польза при его использовании в том, что он лучше выражает намерение программиста, когда нужно проверять конкретные значения переменной. Хотя кода и стало физически чуть больше, читать его легче, в отличие от блоков *else if*. diff --git a/modules/50-loops/10-while/ru/README.md b/modules/50-loops/10-while/ru/README.md index 3b3467a..cfea108 100644 --- a/modules/50-loops/10-while/ru/README.md +++ b/modules/50-loops/10-while/ru/README.md @@ -40,8 +40,6 @@ printNumbers(3); finished!
-https://replit.com/@hexlet/js-basics-while - В коде функции использован цикл `while`. Он состоит из трёх элементов: * Ключевое слово `while`. Несмотря на схожесть с вызовом функций, это не вызов функции. diff --git a/modules/50-loops/20-aggregation-numbers/ru/README.md b/modules/50-loops/20-aggregation-numbers/ru/README.md index d8f41ac..40cb1ac 100644 --- a/modules/50-loops/20-aggregation-numbers/ru/README.md +++ b/modules/50-loops/20-aggregation-numbers/ru/README.md @@ -41,8 +41,6 @@ const sumNumbersFromRange = (start, finish) => { }; ``` -https://replit.com/@hexlet/js-basics-aggregation-numbers - Общая структура цикла здесь стандартна. Есть счетчик, который инициализируется начальным значением диапазона, есть сам цикл с условием остановки при достижении конца диапазона, и, наконец, изменение счетчика в конце тела цикла. Количество итераций в таком цикле равно `finish - start + 1`. То есть для диапазона от 5 до 7 – это 7 - 5 + 1, то есть 3 итерации. Главные отличия от обычной обработки связаны с логикой вычислений результата. В задачах на агрегацию всегда есть какая-то переменная, которая хранит внутри себя результат работы цикла. В коде выше это `sum`. На каждой итерации цикла происходит её изменение, прибавление следующего числа в диапазоне: `sum = sum + i`. Весь процесс выглядит так: diff --git a/modules/50-loops/23-aggregation-strings/ru/README.md b/modules/50-loops/23-aggregation-strings/ru/README.md index eae01db..052f8b6 100644 --- a/modules/50-loops/23-aggregation-strings/ru/README.md +++ b/modules/50-loops/23-aggregation-strings/ru/README.md @@ -25,8 +25,6 @@ const repeat = (text, times) => { }; ``` -https://replit.com/@hexlet/js-basics-aggreagation - Распишем выполнение этого кода по шагам: ```javascript diff --git a/modules/50-loops/25-iteration-over-string/ru/README.md b/modules/50-loops/25-iteration-over-string/ru/README.md index 08e11ca..6218bf1 100644 --- a/modules/50-loops/25-iteration-over-string/ru/README.md +++ b/modules/50-loops/25-iteration-over-string/ru/README.md @@ -21,6 +21,4 @@ printNameBySymbol(name); // => a ``` -https://replit.com/@hexlet/js-basic-iteration-over-string - Самое главное в этом коде, поставить правильное условие в `while`. Это можно сделать сразу двумя способами: `i < name.length` или `i <= name.length - 1`. Оба способа приводят к одному результату. diff --git a/modules/50-loops/26-conditions-inside-loops/ru/README.md b/modules/50-loops/26-conditions-inside-loops/ru/README.md index b7d3d3a..985c375 100644 --- a/modules/50-loops/26-conditions-inside-loops/ru/README.md +++ b/modules/50-loops/26-conditions-inside-loops/ru/README.md @@ -31,8 +31,6 @@ const countChars = (str, char) => { }; ``` -https://replit.com/@hexlet/js-basics-condition-inside-loops - Эта задача является агрегирующей. Несмотря на то, что она считает не все символы, для подсчета самой суммы все равно приходится анализировать каждый символ. Ключевое отличие этого цикла от рассмотренных в наличии условия внутри тела. Переменная `count` увеличивается только в том случае, когда текущий рассматриваемый символ совпадает с ожидаемым. diff --git a/modules/50-loops/28-build-strings/ru/README.md b/modules/50-loops/28-build-strings/ru/README.md index fcaa9f4..7334553 100644 --- a/modules/50-loops/28-build-strings/ru/README.md +++ b/modules/50-loops/28-build-strings/ru/README.md @@ -31,6 +31,4 @@ reverse(name); // 'narB' reverse(''); // '' ``` -https://replit.com/@hexlet/js-basics-iteration-over-strings - Единственный возможно сложный момент в этом коде – прочувствовать, как собирается сама строка. Так как каждый следующий символ прикрепляется к результирующей строке слева, то, в конечном итоге, строка оказывается перевернута. diff --git a/modules/50-loops/50-mutators/ru/README.md b/modules/50-loops/50-mutators/ru/README.md index 52400f6..2b75739 100644 --- a/modules/50-loops/50-mutators/ru/README.md +++ b/modules/50-loops/50-mutators/ru/README.md @@ -41,8 +41,6 @@ console.log(x++); // => 6 console.log(x); // => 7 ``` -https://replit.com/@hexlet/js-basic-mutators - Что происходит? 1. Вывели на экран `++x`. Это префиксный инкремент, поэтому сначала значение переменной увеличилось на 1, потом результат вернулся и вывелся на экран. diff --git a/modules/50-loops/55-return-from-loops/ru/README.md b/modules/50-loops/55-return-from-loops/ru/README.md index 18a3c52..1e72c81 100644 --- a/modules/50-loops/55-return-from-loops/ru/README.md +++ b/modules/50-loops/55-return-from-loops/ru/README.md @@ -33,8 +33,6 @@ isPrime(3); // true isPrime(4); // false ``` -https://replit.com/@hexlet/js-basics-conditions-inside-loops - Алгоритм построен таким образом, что если во время последовательного деления на числа до `x / 2` находится хоть одно, которое делит без остатка, то переданный аргумент — не простое число, а значит дальнейшие вычисления не имеют смысла. В этом месте стоит возврат `false`. И только если цикл отработал целиком, можно сделать вывод, что число — простое, так как не было найдено ни одного числа, которое делит число без остатка. diff --git a/modules/50-loops/70-for/ru/README.md b/modules/50-loops/70-for/ru/README.md index a45715a..6f0e61b 100644 --- a/modules/50-loops/70-for/ru/README.md +++ b/modules/50-loops/70-for/ru/README.md @@ -14,8 +14,6 @@ const reverseString = (str) => { }; ``` -https://replit.com/@hexlet/js-basics-for - Можно читать так: *цикл с индексом `i` повторяется пока `i < str.length` и после каждого шага увеличивает `i` на 1*. В определении цикла `for` в круглых скобках есть три выражения, разделённые точкой с запятой: