Основное правило, мы не сравниваем непримитивные типы данных. Не сравнивайте массив, функцию или объект.
Непримитивные значения называются ссылочными типами, поскольку они сравниваются по значению, а не по значению. Два объекта строго равны, если они ссылаются на один и тот же базовый объект.
Непримитивные значения называются ссылочными типами, потому что они сравниваются по ссылке, а не по значению. Два объекта строго равны, если они ссылаются на один и тот же базовый объект.
const randNum = Math.random(); // создает случайное число от 0 до 0,999999
const randNum = Math.random(); // создаёт случайное число от 0 до 0,999999
console.log(randNum);
// Давайте создадим случайное число от 0 до 10
const num = Math.floor(Math.random() * 11); // создает случайное число от 0 до 10
const num = Math.floor(Math.random() * 11); // создаёт случайное число от 0 до 10
console.log(num);
// Абсолютное значение
@ -256,10 +256,10 @@ let randomNum = Math.random(); // генерирует от 0 до 0,999
let randomNum = Math.random(); // генерирует от 0 до 0,999
let numBtnZeroAndTen = randomNum * 11;
console.log(numBtnZeroAndTen); // это дает: мин 0 и макс 10.99
console.log(numBtnZeroAndTen); // это даёт: мин 0 и макс 10.99
let randomNumRoundToFloor = Math.floor(numBtnZeroAndTen);
console.log(randomNumRoundToFloor); // это дает от 0 до 10
console.log(randomNumRoundToFloor); // это даёт от 0 до 10
```
## Строки
@ -306,7 +306,7 @@ Asabeneh Yetayeh
#### Конкатенация с использованием оператора сложения
Конкатенация с использованием оператора сложения - старый способ. Этот способ объединения утомителен и подвержен ошибкам. Полезно знать, как объединить таким способом, но я настоятельно рекомендую использовать второй способ.
Конкатенация с использованием оператора сложения - старый способ. Этот способ объединения утомителен и подвержен ошибкам. Полезно знать, как объединить таким способом, но я настоятельно рекомендую использовать шаблонные строки ES6.
```js
// Объявление разных переменных разных типов данных
@ -350,7 +350,7 @@ console.log(paragraph);
#### Перенос последовательности в строке
В JavaScript и других языках программирования, после некоторых символов есть перенос - последовательности. Давайте посмотрим на наиболее распространенные escape-символы:
В JavaScript и других языках программирования, после некоторых символов есть перенос - последовательности. Давайте посмотрим на наиболее распространённые escape-символы:
- `\n` - Новая строка
- `\t` - Таб означает (8 пробелов)
@ -375,7 +375,7 @@ console.log("The saying 'Seeing is Believing' is't correct in 2020");
#### Шаблонные литералы (Шаблонные строки)
Чтобы создать строку шаблона, мы используем два обратных ключа. Мы можем вставить данные как выражение внутри строки шаблона. Чтобы ввести данные, мы заключаем выражение в фигурную скобку (`{}`), за которой следует знак `$`. Смотрите синтаксис ниже.
Чтобы создать строку шаблона, мы используем два обратных ключа. Мы можем вставить данные как выражение внутри строки шаблона. Чтобы ввести данные, мы заключаем выражение в фигурную скобку (`{}`), предшествует которой знак `$`. Смотрите синтаксис ниже.
```js
// Синтаксис
@ -440,7 +440,7 @@ console.log(`${a} is greater than ${b}: ${a > b}`);
console.log(firstName.length); // 8
```
2. _Доступ к символам в строке_: мы можем получить доступ к каждому символу в строке, используя его индекс. В программировании отсчет начинается с 0. Первый индекс строки равен нулю, а последний индекс равен одному минус длина строки.
2. _Доступ к символам в строке_: мы можем получить доступ к каждому символу в строке, используя его индекс. В программировании отсчёт начинается с 0. Первый индекс строки равен нулю, а последний индекс равен одному минус длина строки.
![Accessing sting by index](../images/string_indexes.png)
@ -541,7 +541,7 @@ console.log(`${a} is greater than ${b}: ${a > b}`);
Давайте извлечем числа из текста, используя регулярное выражение. Это не раздел регулярных выражений, не паникуйте, мы рассмотрим регулярные выражения в другом разделе.
Давайте извлечём числа из текста, используя регулярное выражение. Это не раздел регулярных выражений, не паникуйте, мы рассмотрим регулярные выражения в другом разделе.
```js
let txt =
"In 2019, I run 30 Days of Python. Now, in 2020 I super exited to start this challenge";
let regEx = /\d+/;
// d сперенос-символом означает, что d не является нормальным d, вместо этого действует цифра
// d сescape-символом означает, что d - не просто символ d, а обозначает цифру
// + означает одно или несколько цифр,
// если после этого есть g, значит глобальный, ищите везде.
@ -785,7 +785,7 @@ console.log(`${a} is greater than ${b}: ${a > b}`);
### Проверка типов данных
- Проверка типов данных: чтобы проверить тип данных определенного типа данных, мы используем `typeof` и также меняем один тип данных на другой.
- Проверка типов данных: чтобы проверить тип данных определённого типа данных, мы используем `typeof` и также меняем один тип данных на другой.
**Пример:**
@ -889,7 +889,7 @@ let numInt = parseInt(num);
console.log(numInt); // 9
```
🌕 Ты обалденный. Вы только что завершили 2-й день испытаний, и вы в двух шагах от своего пути к успеху. Теперь сделайте несколько упражнений для вашего мозга и ваших мышц.
🌕 Ты молодец. Ты только что завершил 2-й день испытаний, и ты в двух шагах от своего пути к успеху. Теперь сделай несколько упражнений для мозга и твоих мышц.
## 💻 День 2: Упражнения
@ -905,19 +905,19 @@ console.log(numInt); // 9
8. Проверьте, содержит ли строка слово **Script**, используя метод `includes()`
9. Разбейте **строку** на **массив**, используя метод `split()`
10. Разбить строку 30 Days Of JavaScript в пространстве с помощью метода `split()`
11. «Facebook, Google, Microsoft, Apple, IBM, Oracle, Amazon» **разбивают** строку на запятую и заменяют ее на массив.
11. «Facebook, Google, Microsoft, Apple, IBM, Oracle, Amazon» **разбейте** строку где разделитель - запятая и замените её на массив.
12. Измените 30 Days Of JavaScript на 30 Days Of Python, используя метод `replace()`.
13. Что такое символ в индексе 15 в строке «30 Days Of JavaScript», используйте метод `charAt()`.
14. Что такое код символа J в строке «30 Days Of JavaScript» с использованием `charCodeAt()`
13. Какой символ в индексе 15 в строке «30 Days Of JavaScript», используйте метод `charAt()`.
14. Какой код символа J в строке «30 Days Of JavaScript» с использованием `charCodeAt()`
15. Используйте `indexOf`, чтобы определить позицию первого вхождения за 30 Days Of JavaScript
16. Используйте `lastIndexOf`, чтобы определить позицию последнего вхождения в 30 Days Of JavaScript.
17. Используйте `indexOf`, чтобы найти позицию первого вхождения слова **потому что** в следующем предложении: **«Вы не можете закончить предложение, потому что, потому что, потому что это соединение»**
18. Используйте `lastIndexOf`, чтобы найти позицию последнего вхождения слова **потому что** в следующем предложении: **«Вы не можете закончить предложение, потому что, потому что потому что это соединение»**
19. Используйте `search`, чтобы найти позицию первого вхождения слова **потому что** в следующем предложении: **«Вы не можете закончить предложение, потому что, потому что потому что это соединение»**
20. Используйте `trim()`, чтобы удалить, если в начале и конце строки есть конечные пробелы. Например, «30 Days Of JavaScript».
21. Используйте метод `launchWith()` со строкой _30 Days Of JavaScript_, чтобы сделать результат верным
22. Используйте метод `setsWith()` со строкой _30 Days Of JavaScript_, чтобы сделать результат верным
23. Используйте метод `match()`, чтобы найти все за 30 Days Of JavaScript
20. Используйте `trim()`, чтобы удалить все пробелы в начале и конце строки. Например, «30 Days Of JavaScript».
21. Используйте метод `startsWith()` со строкой _30 Days Of JavaScript_, чтобы сделать результат верным
22. Используйте метод `endsWith()` со строкой _30 Days Of JavaScript_, чтобы сделать результат верным
23. Используйте метод `match()`, чтобы найти все "а" в "30 Days Of JavaScript"
24. Используйте `concat()` и объедините «30 Days» и «JavaScript» в одну строку «30 Days Of JavaScript»
25. Используйте метод `repeat()`, чтобы напечатать 30 Days Of JavaScript 2 раза
@ -937,10 +937,10 @@ console.log(numInt); // 9
3. Проверьте, точно ли `typeof` '10' равен 10. Если нет, сделайте его точно равным.
4. Убедитесь, что `parseFloat('9.8')` равен 10, если не равен точно 10.
5. Проверьте, найдено ли 'on' как в Python, так и в жаргоне
6. Я надеюсь, что этот курс не полон жаргона. Проверьте, находится ли _jargon_ в предложении.
5. Проверьте, найдено ли 'он' как в Питон, так и в жаргоне
6. Я надеюсь, что этот курс не полон жаргона. Проверьте, находится ли _жаргон_ в предложении.
7. Сгенерируйте случайное число от 0 до 100 включительно.
8. Генерация случайного числа от 50 до 100 включительно.
8. Сгенерируйте случайное число от 50 до 100 включительно.
9. Сгенерируйте случайное число от 0 до 255 включительно.
10. Получите доступ к символам строки «JavaScript», используя случайное число.
11. Используйте `console.log()` и управляющие символы для печати следующего шаблона.
@ -957,8 +957,8 @@ console.log(numInt); // 9
### Упражнения: уровень 3
1. «Любовь - лучшая вещь в этом мире. Некоторые нашли свою любовь, а некоторые все еще ищут свою любовь. Подсчитайте количество слов любви в этом предложении.
2. Используйте `match()`, чтобы сосчитать число все потому, что в следующем предложении: **«Вы не можете закончить предложение, потому что, потому что, потому что это соединение»**
1. «Любовь - лучшая вещь в этом мире. Некоторые нашли свою любовь, а некоторые все ещё ищут свою любовь. Подсчитайте количество слов "любовь" в этом предложении.
2. Используйте `match()`, чтобы сосчитать число все **"потому что"** в следующем предложении: **«Вы не можете закончить предложение, потому что, потому что, потому что это соединение»**
3. Очистите следующий текст и найдите наиболее часто встречающееся слова (подсказка, используйте замену и регулярный экспресс).