Проверка цифр числа в 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, и нечетным в противном случае.

enru