Фронтендщик @frontendshik Channel on Telegram

Фронтендщик

@frontendshik


Все для frontend developer, шуточки, тесты, статьи

Администрация/Реклама @vtopua

Фронтендщик (Russian)

Фронтендщик - это Telegram канал, созданный специально для frontend developer'ов. Здесь вы найдете шутки, тесты, статьи и другие полезные материалы, которые помогут вам развиваться в этой области. Наша цель - создать сообщество, где каждый сможет обмениваться знаниями, идеями и опытом в области фронтенд разработки. Канал Фронтендщик подходит как для опытных специалистов, так и для новичков, которые только начинают свой путь в этой области. У нас вы найдете полезные советы, интересные статьи о последних технологиях, а также возможность пройти тесты, чтобы проверить свои знания. Хотите быть в курсе всех новостей и трендов в мире frontend разработки? Присоединяйтесь к каналу Фронтендщик и станьте частью нашего дружного сообщества! Администрация канала всегда готова ответить на ваши вопросы и помочь вам в развитии. Для связи с нами или размещения рекламы обращайтесь к администратору канала @vtopua. Не упустите возможность стать успешным frontend developer'ом вместе с каналом Фронтендщик! Подписывайтесь и начинайте свой путь к профессиональному успеху прямо сейчас.

Фронтендщик

23 Jan, 15:00


Пример

Давайте теперь вырежем символы с 2-ой позиции и до конца строки (для этого не зададим второй параметр метода):

let str = 'abcde';
let sub = str.substr(2);

console.log(sub);

Результат выполнения кода:

'cde'

📌 #instr || Фронтендщик

Фронтендщик

23 Jan, 07:00


Синтаксис

строка.substr(откуда
отрезать, [сколько символов
отрезать]); 

Пример

Пусть дана строка.

Давайте вырежем из нее первые 3 символа:
let str = 'abcde';
let sub = str.substr(0, 3);

console.log(sub);

Результат выполнения кода:

'abc'

📌 #instr || Фронтендщик

Фронтендщик

22 Jan, 15:00


Первый параметр может принимать отрицательные значения. В этом случае отсчет символа, с которого начинается обрезание, будет идти с конца строки. Последний символ имеет номер -1. Второй параметр не является обязательным, если он не указан, то вырезаны будут все символы до конца строки.

📌 #instr || Фронтендщик

Фронтендщик

22 Jan, 08:00


Метод substr

Метод substr возвращает подстроку из строки (исходная строка при этом не изменяется). Первый параметр задает номер позиции, с которого метод начнет вырезать символ (нумерация идет с нуля), а второй параметр - сколько символов отрезать.

📌 #instr || Фронтендщик

Фронтендщик

21 Jan, 15:00


Пример. Применение

Дано число. Давайте запишем каждую цифру этого числа в отдельный элемент массива. Тут есть подвох - split применяется только к строкам, а у нас число.

Преобразуем вначале число к строке с помощью String, а затем применим split:

let num = 12345;
let str = String(num);
let arr = str.split('');

console.log(arr);

Результат выполнения кода:

['1', '2', '3', '4', '5']

📌 #instr || Фронтендщик

Фронтендщик

21 Jan, 08:00


Пример. Применение

Дана строка с цифрами. Найдем сумму цифр из этой строки. Для этого разобьем строку в массив, а затем переберем этот массив и найдем его сумму. Нас ждет подвох: split возвращает строки, поэтому при суммировании преобразуем эти цифры-строки в настоящие числа с помощью Number:

let str = '12345';
let arr = str.split('');
let sum = 0;

for (let i = 0; i <
arr.length;
i++) { 
sum += Number(arr[i]);

}

console.log(sum);

Результат выполнения кода:
15

📌 #instr || Фронтендщик

Фронтендщик

20 Jan, 15:00


Пример . Применение

Упростим решение предыдущей задачи - сольем все команды в цепочку:

let str = '123456789';
let res = str.split('').reverse()
.join(''); 

console.log(res);

Результат выполнения кода:
'987654321'

📌 #instr || Фронтендщик

Фронтендщик

20 Jan, 07:00


Пример. Применение

Давайте перевернем символы строки в обратном порядке. Для этого разобьем строку в массив с помощью split по разделителю '' (это разместит каждый символ строки в отдельный элемент массива), перевернем этот массив с помощью reverse и затем сольем перевернутый массив обратно с помощью join:

let str = '123456789';
let arr1 = str.split('');
let arr2 = arr1.reverse();
let res = arr2.join('');

console.log(res);

Результат выполнения кода:

'987654321'

📌 #instr || Фронтендщик

Фронтендщик

19 Jan, 15:00


Пример

Давайте с помощью split разобьем строку с числами. Обратите внимание на то, что в результате получится массив строк, а не массив чисел:

let str = '12345';
let arr = str.split('');

console.log(arr);

Результат выполнения кода:

['1', '2', '3', '4', '5']

📌 #instr || Фронтендщик

Фронтендщик

19 Jan, 08:06


Давайте первые 3 символа строки запишем в отдельные элементы массива:

let str = 'abcde';
let arr = str.split('', 3);

console.log(arr);

Результат выполнения кода:
['a', 'b', 'c']

📌 #instr || Фронтендщик

Фронтендщик

18 Jan, 17:00


Пример

Давайте с помощью split разобьем строку с числами. Обратите внимание на то, что в результате получится массив строк, а не массив чисел:

let str = '12345';
let arr = str.split('');

console.log(arr);

Результат выполнения кода:

['1', '2', '3', '4', '5']

📌 #instr || Фронтендщик

Фронтендщик

18 Jan, 13:54


Пример

Давайте первые 3 символа строки запишем в отдельные элементы массива:

let str = 'abcde';
let arr = str.split('', 3);

console.log(arr);

Результат выполнения кода:

['a', 'b', 'c']

📌 #instr || Фронтендщик

Фронтендщик

17 Jan, 15:00


Пример

Давайте каждый символ строки запишем в отдельный элемент массива:

let str = 'abcde';
let arr = str.split('');

console.log(arr);

Результат выполнения кода:

['a', 'b', 'c', 'd', 'e']

📌 #instr || Фронтендщик

Фронтендщик

17 Jan, 07:00


Пример

Давайте опять разобьем строку по разделителю '-', однако вторым параметром укажем максимальное количество элементов в получившемся массиве, например, 2. В этом случае в массив запишется только 2 элемента:

let str = 'ab-cd-ef';
let arr = str.split('-', 2);

console.log(arr);

Результат выполнения кода:

['ab', 'cd']

📌 #instr || Фронтендщик

Фронтендщик

16 Jan, 15:00


Пример

Давайте опять разобьем строку по разделителю '-', однако вторым параметром укажем максимальное количество элементов в получившемся массиве, например, 2. В этом случае в массив запишется только 2 элемента:

str = 'ab-cd-ef';
let arr = str.split('-', 2);

console.log(arr);

Результат выполнения кода:

['ab', 'cd']

📌 #instr || Фронтендщик

Фронтендщик

16 Jan, 07:00


Синтаксис

строка.split([разделитель],
[максимальное количество
элементов]); 
Пример

Пусть дана некоторая строка с дефисами.

Давайте разобьем эту строку в массив по разделителю '-':

let str = 'ab-cd-ef';
let arr = str.split('-');

console.log(arr);

Результат выполнения кода:

['ab', 'cd', 'ef']

📌 #instr || Фронтендщик

Фронтендщик

15 Jan, 15:00


Метод split

Метод split разбивает строки в массив по указанному в первом параметре разделителю. Если он не задан - вернется вся строка. Если он задан как пустые кавычки, то каждый символ строки попадет в отдельный элемент массива. Вторым необязательным параметром можно указать максимальное количество элементов в получившемся массиве.

📌 #instr || Фронтендщик

Фронтендщик

15 Jan, 07:00


Пример

Также используя метод slice можно преобразовать в верхний регистр отдельные буквы:

let str = 'abcde';
let res = str.slice(0,
1).toUpperCase()
+ str.slice(1); 

console.log(res);

Результат выполнения кода:
'Abcde'

📌 #instr || Фронтендщик

Фронтендщик

14 Jan, 15:00


Пример

Давайте преобразуем все буквы в большие:
let str = 'abcde';
console.log(str.toUpperCase());

Результат выполнения кода:
'ABCDE'

📌 #instr || Фронтендщик

Фронтендщик

14 Jan, 08:15


Метод toUpperCase

Метод toUpperCase производит преобразование строки в верхний регистр (из маленьких букв делает большие). При этом возвращается новая строка, а исходная строка не меняется.

Синтаксис
строка.toUpperCase();

📌 #instr || Фронтендщик

Фронтендщик

13 Jan, 15:00


Пример

Комбинируя метод toLowerCase и метод slice можно задать нижний регистр для отдельных частей строки:

let str = 'ABCDE';
let
= str.slice(0,
1) + str.slice(1).toLowerCase(); 

console.log(res);

Результат выполнения кода:

'Abcde'

📌 #instr || Фронтендщик

Фронтендщик

13 Jan, 08:04


Пример

Давайте преобразуем все большие буквы строки в маленькие:

let str = 'ABCDE';
console.log(str.toLowerCase());

Результат выполнения кода:
'abcde'

📌 #instr || Фронтендщик

Фронтендщик

12 Jan, 15:00


Метод toLowerCase

Метод toLowerCase преобразует символы строки в нижний регистр (из больших букв делает маленькие). При этом мы получаем новую строку, а исходная строка остается неизменной.

Синтаксис
строка.toLowerCase();

📌 #instr || Фронтендщик

Фронтендщик

12 Jan, 07:00


Пример

Также в длину строки входят и пробелы. Давайте найдем длину строки, в которой есть пробел:

let str = 'word1 word2';
console.log(str.length);

Результат выполнения кода:
11

📌 #instr || Фронтендщик

Фронтендщик

11 Jan, 15:00


Пример

Пусть в переменной str хранится строка. Давайте найдем ее длину:
let str = 'abcde';
console.log(str.length);

Результат выполнения кода:
5

📌 #instr || Фронтендщик

Фронтендщик

11 Jan, 07:00


Свойство length

Свойство length позволяет узнать длину строки. Под длиной понимается количество символов в ней.

Синтаксис
строка.length;

📌 #instr || Фронтендщик

Фронтендщик

10 Jan, 15:00


Пример

Давайте выведем квадратный корень из 2:

console.log(Math.SQRT2);

Результат выполнения кода:
1.4142135623730951

📌 #instr || Фронтендщик

Фронтендщик

10 Jan, 07:17


Свойство Math.SQRT2

Свойство Math.SQRT2 содержит квадратный корень из 2.

Синтаксис
Math.SQRT2;

📌 #instr || Фронтендщик

Фронтендщик

09 Jan, 15:00


Пример

Давайте выведем квадратный корень из 1/2:
console.log(Math.SQRT1_2);

Результат выполнения кода:
0.7071067811865476

📌 #instr || Фронтендщик

Фронтендщик

09 Jan, 07:58


Свойство Math.SQRT1_2

Свойство Math.SQRT1_2 содержит квадратный корень из 1/2.

Синтаксис
Math.SQRT1_2;

📌 #instr || Фронтендщик

Фронтендщик

07 Jan, 07:13


Свойство Math.LOG2E

Свойство Math.LOG2E возвращает значение логарифма от e (экспоненты) по основанию 2.

Синтаксис
Math.LOG2E;

📌 #instr || Фронтендщик

Фронтендщик

06 Jan, 15:00


Пример

Давайте выведем значение натурального логарифма числа 10:
console.log(Math.LN10);

Результат выполнения кода:
2.302585092994046

📌 #instr || Фронтендщик

Фронтендщик

06 Jan, 08:00


Свойство Math.LN10

Свойство Math.LN10 содержит в себе значение натурального логарифма числа 10.

Синтаксис
Math.LN10;

📌 #instr || Фронтендщик

Фронтендщик

05 Jan, 15:00


Пример

Давайте выведем значение натурального логарифма числа 2:
console.log(Math.LN2);

Результат выполнения кода:
0.6931471805599453

📌 #instr || Фронтендщик

Фронтендщик

05 Jan, 07:00


Свойство Math.LN2

Свойство Math.LN2 содержит в себе значение натурального логарифма числа 2.

Синтаксис
Math.LN2;

📌 #instr || Фронтендщик

Фронтендщик

04 Jan, 15:00


Пример

Выведем на экран значение данной константы:
console.log(Math.E);

Результат выполнения кода:

2.718281828459045

📌 #instr || Фронтендщик

Фронтендщик

04 Jan, 07:15


Свойство Math.E

Свойство Math.E содержит в себе экспоненту с точностью до определенного знака после запятой.

Синтаксис
Math.E;

📌 #instr || Фронтендщик

Фронтендщик

03 Jan, 15:00


Свойство Math.PI

Свойство Math.PI возвращает число Пис 15-ю знаками после запятой.

Синтаксис

Math.PI;

Пример

Давайте выведем значение числа Пи:
console.log(Math.PI);

Результат выполнения кода:
3.141592653589793

📌 #instr || Фронтендщик

Фронтендщик

03 Jan, 08:00


Пример

В данном примере была выведена экспоненциальная нотация числа 5, причем с 3 знаками после запятой:

let num = 5;
console.log(num.toExponential(3));

Результат выполнения кода:

5.000e+0

📌 #instr || Фронтендщик

Фронтендщик

02 Jan, 15:00


Результат выполнения кода:

5e+0

Пример

В данном примере была выведена экспоненциальная нотация числа 5, причем с 3 знаками после запятой:

let num = 5;
console.log(num.toExponential(3));

Результат выполнения кода:
5.000e+0

📌 #instr || Фронтендщик

Фронтендщик

02 Jan, 08:21


Синтаксис

число.toExponential([количество
цифр после
запятой]); 

Пример

В данном примере была выведена экспоненциальная нотация числа 5:

let num = 5;
console.log(num.toExponential()
); 

📌 #instr || Фронтендщик

Фронтендщик

01 Jan, 15:00


Метод toExponential

Метод toExponential переводит число в экспоненциальную нотацию. Необязательный параметр - число цифр после запятой, если его нет, то будет выведено столько цифр после запятой, сколько нужно для записи.

📌 #instr || Фронтендщик

Фронтендщик

01 Jan, 08:53


Пример

В данном примере примере будет выведено значение натурального логарифма от -10:
console.log(Math.log(-10));

Результат выполнения кода:

NaN

📌 #instr || Фронтендщик

Фронтендщик

31 Dec, 15:00


Пример

В данном примере примере будет выведено значение натурального логарифма от 35:
console.log(Math.log(35));

Результат выполнения кода:
3.5553480614894135

📌 #instr || Фронтендщик

Фронтендщик

31 Dec, 07:00


Метод Math.log

Метод Math.log возвращает значение натурального логарифма переданного числа.

Синтаксис
Math.log(число);

📌 #instr || Фронтендщик

Фронтендщик

30 Dec, 15:00


Пример

В данном примере число e возводится в степень 3:
console.log(Math.exp(3));
Результат выполнения кода:
20.085536923187668

📌 #instr || Фронтендщик

Фронтендщик

30 Dec, 08:22


Метод Math.exp

Метод Math.exp возвращает число e(экспоненту, ее значение около 2.7) в степени x.

Синтаксис

Math.exp(степень);

📌 #instr || Фронтендщик

Фронтендщик

29 Dec, 15:00


Пример

Давайте выведем арктангенс числа 2:
console.log(Math.atan(2));

Результат выполнения кода:
1.1071487177940904

📌 #instr || Фронтендщик

Фронтендщик

29 Dec, 07:05


Метод Math.atan

Метод Math.atan возвращает арктангенс числа. Параметр метода должен находиться в промежутке от -Пи/2 и Пи/2, иначе будет возращен NaN.

Синтаксис
Math.atan(число);

📌 #instr || Фронтендщик

Фронтендщик

28 Dec, 15:00


Пример

В следующем примере выведется NaN, так как параметр больше 1:

console.log(Math.acos(3));

Результат выполнения кода:
NaN

📌 #instr || Фронтендщик

Фронтендщик

28 Dec, 07:00


Пример

Давайте выведем арккосинус числа 1:
console.log(Math.acos(1));

Результат выполнения кода:
0

📌 #instr || Фронтендщик

Фронтендщик

27 Dec, 15:00


Пример

Давайте выведем арккосинус числа 0.34:

console.log(Math.acos(0.37));

Результат выполнения кода:

1.191787306098946

📌 #instr || Фронтендщик

Фронтендщик

27 Dec, 08:00


Метод Math.acos

Метод Math.acos возвращает арккосинус числа. Параметр метода должен находиться в промежутке от -1 до 1, иначе будет возращен NaN.

Синтаксис

Math.acos(число);

📌 #instr || Фронтендщик

Фронтендщик

26 Dec, 15:00


Пример

Давайте выведем арксинус числа 45. Так как параметр больше 1, то будет возращен NaN:

console.log(Math.asin(45));

Результат выполнения кода:

NaN

📌 #instr || Фронтендщик

Фронтендщик

26 Dec, 09:00


Пример

Давайте выведем арксинус числа -1:
console.log(Math.asin(-1));

Результат выполнения кода:

-1.5707963267948966

📌 #instr || Фронтендщик

Фронтендщик

25 Dec, 15:00


Пример

Давайте выведем арксинус числа 0.45.
console.log(Math.asin(0.45));

Результат выполнения кода:

0.4667653390472964

📌 #instr || Фронтендщик

Фронтендщик

25 Dec, 09:00


Метод Math.asin

Метод Math.asin возвращает арксинус числа. Параметр метода должен находиться в промежутке от -1 до 1, иначе будет возращен NaN.

Синтаксис
Math.asin(число);

📌 #instr || Фронтендщик

Фронтендщик

24 Dec, 15:00


Пример

Давайте выведем тангенс 89:
console.log(Math.tan(89));

Результат выполнения кода:

1.6858253705060158

📌 #instr || Фронтендщик

Фронтендщик

24 Dec, 07:12


Метод Math.tan

Метод Math.tan возвращает тангенс числа (это число должно быть углом в радианах).

Синтаксис

Math.tan(число);

📌 #instr || Фронтендщик

Фронтендщик

23 Dec, 15:00


Пример

Давайте выведем косинус числа 34:
console.log(Math.cos(34));

Результат выполнения кода:

-0.8485702747846052

📌 #instr || Фронтендщик

Фронтендщик

23 Dec, 08:00


Метод Math.cos

Метод Math.cos возвращает косинус числа (это число должно быть углом в радианах).

Синтаксис
Math.cos(число);

📌 #instr || Фронтендщик

Фронтендщик

22 Dec, 15:00


Пример

Давайте выведем синус числа 7:

console.log(Math.sin(7));

Результат выполнения кода:

0.6569865987187891

📌 #instr || Фронтендщик

Фронтендщик

22 Dec, 10:00


Метод Math.sin

Метод Math.sin возвращает синус числа (это число должно быть углом в радианах).

Синтаксис

Math.sin(число);

📌 #instr || Фронтендщик

Фронтендщик

21 Dec, 15:00


Пример

Давайте выведем модуль числа -3:

console.log(Math.abs(-3));

Результат выполнения кода:

3

📌 #instr || Фронтендщик

Фронтендщик

21 Dec, 07:31


Метод Math.abs

Метод Math.abs возвращает модуль числа, то есть из отрицательного числа делает положительное.

Синтаксис

Math.abs(число);

📌 #instr || Фронтендщик

Фронтендщик

20 Dec, 15:00


Пример

Можно также заставить функцию работать с массивами с помощью метода apply:

let arr = [1, 5, 10, 34, 100];
let min = Math.min.apply(null,
arr); 

console.log(min);
Результат выполнения кода:

1

📌 #instr || Фронтендщик

Фронтендщик

20 Dec, 07:00


Пример

По умолчанию функция не работает с массивами. Однако ее можно заставить сделать это с помощью оператора spread.

Давайте с его помощью выведем минимальное значение массива:

let arr = [1, 5, 10, 34, 100];
let min = Math.min(...arr);

console.log(min);
Результат выполнения кода:

1

📌 #instr || Фронтендщик

Фронтендщик

23 Nov, 15:00


Для вывода элементов из такого массива уже необходимо написать три квадратные скобки:

console.log(arr[0][0][0]);
// выведет 'a' 
console.log(arr[2][1][0]);
// выведет 'k' 

📌 #instr || Фронтендщик

Фронтендщик

23 Nov, 07:00


Трехмерный массив в JavaScript

Вот пример трехмерного массива:

let arr = [
[
['a', 'b'],
['c', 'd'],
],
[
['e', 'f'],
['g', 'h'],
],
[
['i', 'j'],
['k', 'l'],
],
];

📌 #instr || Фронтендщик

Фронтендщик

22 Nov, 15:00


Чтобы вывести какой-либо элемент из двухмерного массива следует писать уже не одну пару квадратных скобок, а две:

let arr = [
['a', 'b', 'c'],
['d', 'e', 'f'],
['g', 'h', 'i'],
];

console.log(arr[0][1]);
// выведет 'b' 
console.log(arr[1][2]);
// выведет 'f' 

📌 #instr || Фронтендщик

Фронтендщик

22 Nov, 08:00


Приведенный выше массив является двухмерным, так как внутри одного массива расположены другие подмассивы и уже в этих подмассивах нет других массивов.

📌 #instr || Фронтендщик

Фронтендщик

21 Nov, 15:00


В зависимости от уровня вложенности массивы могут быть двухмерными - массив массивов, трехмерными - массив массивов массивов (ну и так далее - четырехмерными, пятимерными и тп).

📌 #instr || Фронтендщик

Фронтендщик

21 Nov, 07:00


Перепишем в более понятном виде:

let arr = [
['a', 'b', 'c'],
['d', 'e', 'f'],
['g', 'h', 'i'],
];

📌 #instr || Фронтендщик

Фронтендщик

20 Nov, 15:00


В следующем примере массив arr состоит из трех элементов, в свою очередь являющихся массивами:

let arr = [['a', 'b',
'c'], ['d', 'e', 'f'],
['g', 'h', 'i']]; 

📌 #instr || Фронтендщик

Фронтендщик

20 Nov, 08:00


Многомерные массивы в JavaScript

Элементы массива могут быть не только строками и числами, но и массивами. В этом случае у нас получится массив массивов или многомерный массив.

📌 #instr || Фронтендщик

Фронтендщик

19 Nov, 15:00


Поиск ошибок в коде с циклами JavaScript

В следующих задачах некоторый программист написал код и, возможно, допустил в нем ошибки. Вы должны проверить, делает ли код то, что описано. Если код работает некорректно, вы должны исправить ошибки.

📌 #instr || Фронтендщик

Фронтендщик

19 Nov, 08:00


После исправления мы уже видим, что в переменной sum что-то появилось, хотя и некорректное. Видно, однако, что там лежит то, что нам нужно, но оно сложилось в виде строк, а не чисел. Исправим проблему:

let arr = ['21', '32',
'34', '43', '45', '54',
'55']; 
let sum = 0;

for (let elem of arr) {
if (+elem[0] === +elem[1]
+ 1) { 
sum += +elem; // исправляем
}
}

console.log(sum); // все
работает 

📌 #instr || Фронтендщик

Фронтендщик

18 Nov, 15:00


В результате сразу становится видным, что второе слагаемое двухзначное. Легко понять, что это из-за того, что единица прибавляется как строка. Исправим проблему:

let arr = ['21', '32',
'34', '43', '45', '54',
'55']; 
let sum = 0;

for (let elem of arr) {
if (+elem[0] === +elem[1]
+ 1) { //
исправляем 
sum += elem;
}
}

console.log(sum); // '021324354'

📌 #instr || Фронтендщик

Фронтендщик

18 Nov, 08:00


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

let arr = ['21', '32',
'34', '43', '45', '54',
'55']; 
let sum = 0;

for (let elem of arr) {
console.log(elem[0],
elem[1] + 1); // '2'
и '11', '3' и '21' ... 

if (elem[0] === elem[1] + 1) {
sum += elem;
}
}

console.log(sum);

📌 #instr || Фронтендщик

Фронтендщик

17 Nov, 15:00


Код, однако, выдает 0. В этом случае первым делом нужно проверить, смотрим что в переменной попадает ли выполнения кода в иф. Выведим в нем что-нибудь в консоль:

let arr = ['21', '32',
'34', '43', '45', '54',
'55']; 
let sum = 0;

for (let elem of arr) {
if (elem[0] === elem[1] + 1) {
console.log('!');
// ничего
не выводит 
sum += elem;
}
}

console.log(sum);

📌 #instr || Фронтендщик

Фронтендщик

17 Nov, 07:00


Пусть вы решили задачу и получили следующий код:

let arr = ['21', '32',
'34', '43', '45', '54',
'55']; 
let sum = 0;

for (let elem of arr) {
if (elem[0] === elem[1] + 1) {
sum += elem;
}
}

console.log(sum); // выдает 0

📌 #instr || Фронтендщик

Фронтендщик

16 Nov, 15:00


Пусть для примера перед вами стояла задача перебрать массив с двухзначными числами и найти числа, у которых первая цифра на один больше второй. Пусть для простоты в массиве хранятся числа в виде строк.

📌 #instr || Фронтендщик

Фронтендщик

16 Nov, 08:00


Правильной методикой является вывод переменных в консоль и определения, то ли там лежит, что нужно, или нет. При этом начинать нужно от предполагаемого места проблемы и двигаться вверх по коду. Давайте посмотрим на практике.

📌 #instr || Фронтендщик

Фронтендщик

15 Nov, 15:00


Многие начинающие пользуются неправильной методикой поиска. Они берут и смотрят на код, в надежде, что заметят ошибку. И так пару часов. Это так не работает.

📌 #instr || Фронтендщик

Фронтендщик

15 Nov, 08:00


Советы по отладке кода на примере циклов в JavaScript

Сейчас я научу вас методике поиска ошибок в коде. Представим себе, что вы по какому-то недоразумению не следовали советам из предыдущего урока и получили не работающий код. Давайте посмотрим, как найти ошибки и заставить его работать.

📌 #instr || Фронтендщик

Фронтендщик

14 Nov, 15:00


Теперь следующим шагом мы можем найти сумму искомых элементов:

let sum = 0;

for (let elem of arr) {
if (elem % 3 === 0) {
sum += elem;
}
}

console.log(sum);

📌 #instr || Фронтендщик

Фронтендщик

14 Nov, 07:00


Давайте теперь отделим те элементы, которые делятся на 3.

Выведем их в консоль и убедимся, что мы получаем правильные элементы:

for (let elem of arr) {
if (elem % 3 === 0) {
console.log(elem);
// выведет
3, 6, 9 
}
}

📌 #instr || Фронтендщик

Фронтендщик

13 Nov, 15:00


Сделаем это и убедимся, что все работает:

for (let elem of arr) {
console.log(elem);
}

📌 #instr || Фронтендщик

Фронтендщик

13 Nov, 10:02


Пусть перед вами стоит задача взять из этого массива те элементы, которые делятся на 3 и найти их сумму.

Первым маленьким шагом я бы предложил просто перебрать элементы массива циклом и вывести их в консоль.

📌 #instr || Фронтендщик

Фронтендщик

12 Nov, 15:00


Давайте попробуем на практике. Пусть для примера у вас дан массив с числами:

let arr = [1, 2, 3,
4, 5, 6, 7,
8, 9]; 

📌 #instr || Фронтендщик

Фронтендщик

12 Nov, 07:00


Правильным подходом является разбиение задачи на маленькие элементарные шаги, которые вы будете реализовывать и сразу проверять их правильность. В этом случае, даже если вы где-то ошибетесь, вы сразу заметите проблему и исправите ее.

📌 #instr || Фронтендщик

Фронтендщик

11 Nov, 15:00


Пусть перед вами стоит задача достаточной сложности, для реализации которой нужно написать некоторое количество строк кода.
Неправильным подходом будет пытаться написать весь код решения целиком, а потом начать его проверять. В этом случае высока вероятность, что у вас ничего не заработает, а ошибку придется искать в большом количестве кода.

📌 #instr || Фронтендщик

Фронтендщик

11 Nov, 07:00


Советы по написанию кода циклов в JavaScript

По мере изучения языка сложность ваших программ растет. Пришло время поговорить о том, как правильно писать код так, чтобы он делал то, что вы задумывали. Я дам вам хорошую методику.

📌 #instr || Фронтендщик

Фронтендщик

10 Nov, 15:00


Теперь после цикла мы можем сделать иф, который посмотрит на переменную flag и выведет на экран '+++' или '---':

let arr = [1, 2, 3, 4, 5];
let flag = false;

for (let elem of arr) {
if (elem == 3) {
flag = true;
break;
}
}

if (flag === true) {
console.log('+++');
} else {
console.log('---');
}

📌 #instr || Фронтендщик

Фронтендщик

10 Nov, 07:00


Ответ на вопрос, если в массиве 3 или нет, мы можем дать только после цикла. И этот ответ у нас уже есть: после цикла переменная flag могла остаться falseили могла сменить свое значение на true, если цикл обнаружил в массиве 3:

let arr = [1, 2, 3, 4, 5];
let flag = false;

for (let elem of arr) {
if (elem == 3) {
flag = true;
break;
}
}

// тут переменная flag
равна или
true, или false 

📌 #instr || Фронтендщик

Фронтендщик

09 Nov, 15:00


Затем запустим цикл с ифом так, как мы делали это раньше. Если цикл обнаружит, что в массиве есть элемент 3 - то поставим переменную flag в значение true и выйдем из цикла с помощью break:

let arr = [1, 2, 3, 4, 5];
let flag = false; // считаем,
что элемента
3 нет в массиве 

for (let elem of arr) {
if (elem == 3) {
flag = true; // элемент
есть - переопределим
переменную flag 
break; // выйдем из цикла
}
}

📌 #instr || Фронтендщик

Фронтендщик

09 Nov, 07:00


Изначально поставим переменную flag в значение false - то есть будем считать, что элемента 3 в массиве нет:

let arr = [1, 2, 3, 4, 5];
let flag = false; // считаем,
что элемента 3 нету в
массиве 

📌 #instr || Фронтендщик

Фронтендщик

08 Nov, 15:00


Как уже упоминалось выше, флаг - это такая переменная, которая может принимать два значения: true или false.
Итак, давайте сделаем переменную flagс таким значением: если она равна true, то в массиве есть элемент 3, а еслиfalse, то такого элемента нет.

📌 #instr || Фронтендщик

Фронтендщик

08 Nov, 07:00


Итак, идея добавить else - плохая идея, не рабочая. Для решения задач подобного типа (такие задачи встречаются достаточно часто) и используют так называемые флаги.

📌 #instr || Фронтендщик

Фронтендщик

07 Nov, 15:00


Давайте теперь попробуем сделать так, чтобы, если в массиве вообще нет элементов со значением 3, выводилось '---'.

Распространенным заблуждением будет добавить else к нашему ифу - в этом случае '---' будет выводиться на все элементы, не являющиеся 3:

let arr = [1, 2, 3, 4, 5];

for (let elem of arr) {
if (elem == 3) {
console.log('+++');
// выведет
на элементе 3 
} else {
console.log('---');
// выведет на элементах
1, 2, 4, 5 
}
}

📌 #instr || Фронтендщик

Фронтендщик

07 Nov, 07:00


Поправим проблему: завершим цикл с помощью break, если элемент уже найден:

let arr = [1, 2, 3, 4, 3, 5];

for (let elem of arr) {
if (elem == 3) {
console.log('+++');
break; // завершим цикл
}
}

📌 #instr || Фронтендщик

Фронтендщик

06 Nov, 15:00


Но наше решение не очень хорошо: ведь если в массиве будет не одно значение 3, а несколько, то '+++' выведется несколько раз. Давайте исправим наш массив (сделаем два элемента со значением 3) и убедимся в этом:
let arr = [1, 2, 3, 4, 3, 5];

for (let elem of arr) {
if (elem == 3) {
console.log('+++');
// выведет
несколько раз 
}
}

📌 #instr || Фронтендщик

Фронтендщик

06 Nov, 07:00


Для начала давайте попробуем вывести '+++'. Для этого переберем все элементы нашего массива и ифом будем спрашивать - равен ли текущий элемент значению 3. Если равен - выведем '+++':
let arr = [1, 2, 3, 4, 5];

for (let elem of arr) {
if (elem == 3) {
console.log('+++');
}
}

📌 #instr || Фронтендщик

Фронтендщик

05 Nov, 15:00


Давайте решим следующую задачу: дан массив с числами, нужно проверить, есть ли в нем элемент со значением 3или нет. Если есть - выведем '+++', если нет - выведем '---'.

📌 #instr || Фронтендщик

Фронтендщик

05 Nov, 07:23


Работа с флагами в JavaScript

Сейчас мы с вами научимся работать с флагами. Флаг - это специальная переменная, которая может принимать только два значения: true и false. С помощью флагов можно решать задачи, проверяющие отсутствие чего-либо: к примеру, можно проверить, что в массиве нет элемента с определенным значением. Давайте приступим.

📌 #instr || Фронтендщик

Фронтендщик

04 Nov, 15:00


Давайте переберем его циклом for-in и увеличим каждый из его элементов в 2раза:

for (let key in obj) {
obj[key] = obj[key] * 2;
}

📌 #instr || Фронтендщик

Фронтендщик

04 Nov, 07:00


Изменение объектов через цикл в JavaScript

Объекты также можно менять в цикле. Пусть, к примеру, у нас есть вот такой объект:

let obj = {a: 1, b: 2, c: 3};

📌 #instr || Фронтендщик

Фронтендщик

03 Nov, 15:00


Не обязательно вводить переменные для ключа и значения, можно просто поступить вот так:

let obj = {};

for (let i = 0; i <= 4; i++) {
obj[keys[i]] = values[i];
}

console.log(obj);

📌 #instr || Фронтендщик

Фронтендщик

03 Nov, 07:17


Давайте с их помощью сделаем объект, взяв ключи для этого объекта из первого массива, а значения - из второго. Для этого запустим цикл и в цикле будем формировать наш объект:
let obj = {};

for (let i = 0; i <= 4; i++) {
let key = keys[i];
let value = values[i];

obj[key] = value;
}

console.log(obj);

📌 #instr || Фронтендщик

Фронтендщик

02 Nov, 15:00


Заполнение объектов через цикл в JavaScript

Объекты также можно заполнять данными в циклах. Давайте посмотрим на примере.

Пусть у нас есть два массива:

let keys = ['a', 'b',
'c', 'd', 'e']; 
let values = [1, 2, 3, 4, 5];

📌 #instr || Фронтендщик

Фронтендщик

02 Nov, 07:00


А теперь увеличим каждый элемент массива на 5:

let arr = [1, 2, 3, 4, 5];

for (let i = 0; i <
arr.length;
i++) { 
arr[i] += 5;
}

console.log(arr); // выведет
[6, 7, 8,
9, 10] 

📌 #instr || Фронтендщик

Фронтендщик

01 Nov, 15:00


А теперь увеличим каждый элемент массива на единицу:

let arr = [1, 2, 3, 4, 5];

for (let i = 0; i <
arr.length;
i++) { 
arr[i]++;
}

console.log(arr); // выведет
[2, 3, 4, 5, 6] 

📌 #instr || Фронтендщик

Фронтендщик

01 Nov, 07:00


Изменение массива в цикле JavaScript

Элементы массивов можно изменять в циклах. Для этого нужно перебирать массивы обычным циклом for. Давайте для примера умножим элементы массива на 2:
let arr = [1, 2, 3, 4, 5];

for (let i = 0; i <
arr.length;
i++) { 
arr[i] = arr[i] * 2;
}

console.log(arr); // выведет
[2, 4, 6,
8, 10] 

📌 #instr || Фронтендщик

Фронтендщик

31 Oct, 15:00


Заполнение массива в JavaScript

В цикле можно заполнять массивы данными. Для этого следует использовать метод push:
let arr = [];

for (let i = 1; i <= 5; i++) {
arr.push(i);
}

console.log(arr); // выведет
[1, 2, 3, 4, 5] 

📌 #instr || Фронтендщик

Фронтендщик

31 Oct, 07:00


Переменные, объявленные во внутреннем цикле, недоступны снаружи:

for (let i = 0; i <= 9; i++) {
for (let j = 0; j <= 9; j++) {
let num = 3;
}

console.log(num); // выдаст
ошибку 
}

console.log(num); // выдаст
ошибку 

📌 #instr || Фронтендщик

Фронтендщик

30 Oct, 15:00


А вот снаружи внешнего цикла переменная num недоступна:

for (let i = 0; i <= 9; i++) {
let num = 3;

for (let j = 0; j <= 9; j++) {

}
}

console.log(num); // выдаст
ошибку 

📌 #instr || Фронтендщик

Фронтендщик

30 Oct, 09:13


Вложенные циклы и область видимости в JavaScript

Если у нас есть цикл в цикле, то переменные, объявленные во внешнем цикле, будут доступны во внутреннем. В следующем примере переменная numдоступна во внутреннем цикле:
for (let i = 0; i <= 9; i++) {
let num = 3;

for (let j = 0; j <= 9; j++) {
console.log(num);
// выведет 3 
}
}

📌 #instr || Фронтендщик

Фронтендщик

29 Oct, 15:00


При необходимости можно объявить переменную снаружи цикла - тогда она будет доступна как внутри цикла, так и снаружи:

let num; // объявим
переменную
снаружи цикла 

for (let i = 1; i <= 9; i++) {
num = 3; // установим
ей значение 
}

console.log(num); // выведет 3

📌 #instr || Фронтендщик

Фронтендщик

29 Oct, 07:00


Если же попытаться вывести эту переменную снаружи цикла, то мы получим ошибку:

for (let i = 1; i <= 9; i++) {
let num = 3;
}

console.log(num); // выдаст
ошибку 

📌 #instr || Фронтендщик

Фронтендщик

28 Oct, 15:00


Область видимости в циклах JavaScript

Давайте посмотрим, какой областью видимости обладают переменные при работе с циклами. Объявим какую-нибудь переменную внутри цикла:

for (let i = 1; i <= 9; i++) {
let num = 3;
console.log(num); // выведет 3
}

📌 #instr || Фронтендщик

Фронтендщик

28 Oct, 07:00


Тут одним циклом не обойтись - нужно запустить два вложенных друг в друга цикла: первый цикл будет перебирать числа, а второй цикл будет повторять эти числа три раза. Давайте реализуем:

for (let i = 1; i <= 9; i++) {
for (let j = 1; j <= 3; j++) {
document.write(i);
}
}

📌 #instr || Фронтендщик

Фронтендщик

27 Oct, 15:00


Вложенные циклы в JavaScript

Циклы, работу с которыми вы уже знаете, можно вкладывать друг в друга. К примеру, давайте решим следующую задачу: выведем на экран строку:

111222333444555666777888999

📌 #instr || Фронтендщик

Фронтендщик

27 Oct, 07:09


Поправим проблему, добавив к нашему if еще условие else, которое будет срабатывать для элементов, не делящихся на 2 и 3, и вызовем там инструкцию continue, которая сразу же будет перебрасывать нас на новую итерацию цикла:

let arr = [1, 2, 3,
4, 5, 6, 7,
8, 9]; 

for (let elem of arr) {
let result;

if (elem % 2 == 0) {
result = elem * elem;
} else if (elem % 3 == 0) {
result = elem * elem * elem;
} else {
continue; // перейдем
на новую итерацию
цикла 
}

console.log(result);
// выполнится, если делится
на 2 или 3 
}

📌 #instr || Фронтендщик

Фронтендщик

26 Oct, 15:00


Теперь наш скрипт, однако, работает немного не так: получится, что и для обычных элементов, не обработанных через наш if будет выполнятся вывод переменной result в консоль, что по условию нашей задачи нам не нужно.

📌 #instr || Фронтендщик

Фронтендщик

26 Oct, 07:37


Как вы видите, строчка console.log(result) повторяется два раза.

Давайте вынесем ее за if, вот так:
let arr = [1, 2, 3,
4, 5, 6, 7,
8, 9]; 

for (let elem of arr) {
let result;

if (elem % 2 === 0) {
result = elem * elem;
} else if (elem % 3 === 0) {
result = elem * elem * elem;
}

console.log(result);
// вынесли вывод за
условие 
}

📌 #instr || Фронтендщик

Фронтендщик

25 Oct, 15:00


Вот решение описанной задачи:

let arr = [1, 2, 3,
4, 5, 6, 7,
8, 9]; 

for (let elem of arr) {
let result;

if (elem % 2 === 0) {
result = elem * elem;
console.log(result);

} else if (elem % 3 === 0) {
result = elem * elem * elem;
console.log(result);

}
}

📌 #instr || Фронтендщик

Фронтендщик

25 Oct, 07:00


Пусть у нас дан массив с числами. Давайте переберем его циклом и числа, которые делятся на 2, возведем в квадрат и выведем в консоль, а числа, которые делятся на 3, возведем в куб и выведем в консоль.

📌 #instr || Фронтендщик

Фронтендщик

24 Oct, 15:00


Инструкция continue в JavaScript

Существует также инструкция continue, запускающая новую итерацию цикла. Данная инструкция иногда может быть полезна для упрощения кода, хотя практически всегда задачу можно решить и без нее. Давайте посмотрим на практическом примере.

📌 #instr || Фронтендщик

Фронтендщик

24 Oct, 07:00


Итак, давай завершим цикл, как только нам встретится число 3:

let arr = [1, 2, 3, 4, 5];

for (let elem of arr) {
if (elem == 3) {
console.log('есть');
break; // выйдем из цикла
}
}

📌 #instr || Фронтендщик

Фронтендщик

23 Oct, 15:00


Оптимальнее было бы сразу после нахождения числа завершить работу нашего цикла. Это можно сделать с помощью специально инструкции break, позволяющей досрочно завершить работу цикла.

📌 #instr || Фронтендщик

Фронтендщик

23 Oct, 07:00


Задача решена, однако, есть проблема: после того, как число 3 уже найдено, массив все равно продолжает бессмысленно перебираться дальше, тратя ценные ресурсы процессора и замедляя работу нашего скрипта.

📌 #instr || Фронтендщик

Фронтендщик

22 Oct, 15:00


Решим нашу задачу:

let arr = [1, 2, 3, 4, 5];

for (let elem of arr) {
if (elem === 3) {
console.log('есть');
}
}

📌 #instr || Фронтендщик

Фронтендщик

22 Oct, 07:00


Пусть перед нами стоит задача определить, есть ли в массиве число 3.

Если есть - выведем в консоль слово 'есть' (а если нет - ничего не будем делать).

📌 #instr || Фронтендщик

Фронтендщик

21 Oct, 15:00


Инструкция break в JavaScript

Инструкция break позволяет досрочно завершать цикл.

Давайте посмотрим, когда такое может пригодиться. Пусть у нас есть цикл, выводящий в консоль элементы массива:

let arr = [1, 2, 3, 4, 5];

for (let elem of arr) {
console.log(elem);
}

📌 #instr || Фронтендщик

Фронтендщик

21 Oct, 07:00


Сначала необходимо преобразовать число в строку и уже тогда получать определенный символ полученной строки, вот так:

for (let i = 1; i <= 100; i++) {
let str = String(i);
// преобразуем
число в строку 

if (str[0] === '1'
|| str[0]
=== '2') { 
console.log(i);
}
}

📌 #instr || Фронтендщик

Фронтендщик

20 Oct, 15:00


Напоминаю, что нельзя просто так обращаться к символам числа, то есть вот так не будет работать:

for (let i = 1; i <= 100; i++) {
if (i[0] == 1 || i[0]
== 2) { // так не будет
работать 
console.log(i);
}
}

📌 #instr || Фронтендщик

Фронтендщик

20 Oct, 07:00


Цифры числа при переборе циклом JavaScript

Пусть при переборе чисел мы хотим получать от этих чисел какую-нибудь цифру. К примеру, мы хотим сделать так, чтобы число выводилось в консоль, если его первая цифра равна 1 или 2.

📌 #instr || Фронтендщик

Фронтендщик

19 Oct, 15:00


А теперь сделаем строку '12345'. Для этого будем прибавлять к нашей переменной счетчик цикла:

let str = '';

for (let i = 1; i <= 5; i++) {
str += i;
}

console.log(str); // выведет
'12345' 

📌 #instr || Фронтендщик

Фронтендщик

19 Oct, 07:00


Формирование строк через циклы в JavaScript

С помощью циклов можно формировать строки. Давайте для примера сделаем строку, заполненную десятью буквами 'x':

let str = '';

for (let i = 0; i < 10; i++) {
str += 'x';
}

console.log(str); // выведет
'xxxxxxxxxx' 

📌 #instr || Фронтендщик

Фронтендщик

18 Oct, 15:00


Накопление элементов массивов в циклах JavaScript

Давайте с помощью цикла найдем сумму элементов массива.

let arr = [1, 2, 3, 4, 5];
let res = 0;

for (let elem of arr) {
res += elem;
}

console.log(res); // искомая
сумма 

📌 #instr || Фронтендщик

Фронтендщик

18 Oct, 07:00


Можно упростить решение через оператор +=:

let res = 0;

for (let i = 1; i <= 100; i++) {
res += i;
}

console.log(res);

📌 #instr || Фронтендщик

Фронтендщик

17 Oct, 15:00


Накопление чисел в циклах JavaScript

Давайте с помощью цикла найдем сумму целых чисел от 1 до 100. Для решения такой задачи в цикле перебираются числа и их сумма последовательно записывается в какую-то переменную:

let res = 0;

for (let i = 1; i <= 100; i++) {
res = res + i;
}

console.log(res); // искомая
сумма 

📌 #instr || Фронтендщик

Фронтендщик

17 Oct, 07:00


А теперь наложим условие и будем выводить только элементы, которые являются четными числами:

for (let elem of arr) {
if (elem % 2 === 0) {
console.log(elem);
}
}

📌 #instr || Фронтендщик

Фронтендщик

16 Oct, 15:00


Выведем в консоль все элементы этого массива:

for (let elem of arr) {
console.log(elem);
}

📌 #instr || Фронтендщик

Фронтендщик

16 Oct, 07:00


Условия в циклах в JavaScript

В циклах можно применять условия. Посмотрим на примере. Пусть у нас есть следующий массив:

let arr = [1, 2, 3, 4, 5];

📌 #instr || Фронтендщик

Фронтендщик

15 Oct, 15:00


Можно вывести элементы в обратном порядке:

for (let i = arr.length
- 1; i >=
0; i--) { 
console.log(arr[i]);
}

📌 #instr || Фронтендщик

Фронтендщик

15 Oct, 07:00


Перебор массива циклом for дает больший контроль за происходящим. К примеру, можно вывести элементы не с нулевого, а с первого:

for (let i = 1; i <
arr.length;
i++) { 
console.log(arr[i]);
}

📌 #instr || Фронтендщик

Фронтендщик

14 Oct, 15:00


Можно не отнимать от длины массива единицу, а использовать строгое сравнение:

for (let i = 0; i <
arr.length;
i++) { 
console.log(arr[i]);
}

📌 #instr || Фронтендщик

Фронтендщик

14 Oct, 08:00


Выведем элементы этого массива в цикле:

for (let i = 0; i <=
arr.length
- 1; i++) { 
console.log(arr[i]);
}

📌 #instr || Фронтендщик

Фронтендщик

13 Oct, 15:00


Цикл for для массивов в JavaScript

Массивы также можно перебирать циклом for. Давайте посмотрим, как это делается. Пусть у нас дан вот такой массив:

let arr = [1, 2, 3, 4, 5];

📌 #instr || Фронтендщик

Фронтендщик

13 Oct, 07:00


Можно выполнить обратный отсчет:

for (let i = 10; i > 0; i--) {
console.log(i); // выведет
10, 9, 8... 
}

📌 #instr || Фронтендщик

Фронтендщик

12 Oct, 15:00


А теперь будем увеличивать счетчик не на 1, а на 2:

for (let i = 1; i <=
9; i += 2) { 
console.log(i); // выведет
1, 3, 5... 
}

📌 #instr || Фронтендщик

Фронтендщик

12 Oct, 07:22


Давайте с помощью цикла for выведем последовательно числа от 1 до 9:

for (let i = 1; i <= 9; i++) {
console.log(i); // выведет
1, 2... 9 
}

📌 #instr || Фронтендщик

Фронтендщик

11 Oct, 15:00


Условие окончания цикла - это условие, при котором цикл будет крутится, пока оно истинное, например: i <= 10.

Команды после прохода цикла - это команды, которые будут выполнятся каждый раз при окончании прохода цикла. Обычно там увеличивают счетчики, например: i++.

📌 #instr || Фронтендщик

Фронтендщик

11 Oct, 07:00


Начальные команды - это то, что выполнится перед стартом цикла. Они выполнятся только один раз. Обычно там размещают начальные значения счетчиков, например: i = 0.

📌 #instr || Фронтендщик

Фронтендщик

10 Oct, 19:00


Цикл for JavaScript

Цикл for позволяет повторить некоторый код заданное количество раз. Вот его синтаксис:

for ( начальные команды;
условие окончания; команды после
прохода ) { 
тело цикла
}

📌 #instr || Фронтендщик

Фронтендщик

10 Oct, 14:00


Айтишка - для интровертов?

Плюс – комфортно долго сидеть за компом.

Минус – личная жизнь.

Стресс от знакомства, постоянные френдзоны, слитые деньги на кафешки…

🤢 Много работая – сложно натренировать социальные навыки.

А тренировать надо, если не хочется всю жизнь провести в одиночеством.

Как же знакомиться без страха, перестать попадать во френдзоны и наконец ходить на свидания результативно?

👉 Тут простое и бесплатное обучение от Сергея Калиниченко (@serpantine)

“Как соблазнить любую девушку без пикапа”.

Сергей дипломированный мужской психолог и тренер. За 11 лет в пикапе он понял, что всякие фишки, техники, лайфхаки - не работают.

Он нашел, что весь секрет легкого знакомства – совершенно в другом.

👉 И создал специальный бесплатный мини-курс по легкому соблазнению специально для тех, кто уже устал стоять на одном месте в сфере личной жизни.

Забирайте свой курс по ссылке

Реклама. ИП Калиниченко Сергей Константинович. ИНН 773382779875, erid: 2VtzqvLLLbL

Фронтендщик

10 Oct, 08:00


А теперь будем делить заданное число на 2 столько раз, пока результат не станет меньше 10:

let num = 500;

while (num > 10) {
num = num / 2;
}

console.log(num); // результат

📌 #instr || Фронтендщик

Фронтендщик

09 Oct, 15:00


Цикл закончится, когда выражение перестанет быть истинным. Если оно было ложным изначально - то он не выполнится ни разу.
Давайте для примера последовательно выведем с помощью цикла while числа от одного до пяти:
let i = 1;

while (i <= 5) {
console.log(i);
i++;
}

📌 #instr || Фронтендщик