# Проверка цифр числа в JavaScript

Пусть у нас дано число:

`let num = 12345;`

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

`let num = 12345; if (num[0] == 1) { console.log('+++'); } else { console.log('---'); // сработает это }`

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

`let num = 12345; console.log(num[0]); // выведет undefined`

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

`let num = 12345; let str = String(num); if (str[0] == 1) { console.log('+++'); // сработает это } else { console.log('---'); }`

Не обязательно вводить новую переменную, можно применить `[0]` непосредственно к результату функции `String`:

`let num = 12345; if (String(num)[0] == 1) { console.log('верно'); // выведет 'верно' } else { console.log('неверно'); }`

Пусть теперь мы хотим проверить первую цифру на то, что она равна `1`, либо `2`. Напишем соответствующий код:

`let num = 12345; if (String(num)[0] == 1 || String(num)[0] == 2) { console.log('+++'); } else { console.log('---'); }`

В данном случае получается, что конструкция `String(num)[0]` повторится два раза. Это, во-первых, длинно, а во-вторых, не оптимально, так как мы два раза преобразуем число в строку - второй раз получается лишний, а ресурсы программы на это тратятся.

Исправим проблему:

`let num = 12345; let first = String(num)[0]; if (first == 1 || first == 2) { console.log('+++'); } else { console.log('---'); }`

Дано целое число. Напишите условие, которое проверит, равна ли последняя цифра этого числа нулю.

Пусть в переменной `num` хранится число. Определите, четное число или нет. Число будет четным, если последний символ равен `0`, `2`, `4`, `6` или `8`, и нечетным в противном случае.

←→
↑
en ru