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

Нека имаме дадено число:

javascriptlet num = 12345;

Опит за достъп до първия символ на числото ще доведе до неочаквано поведение:

javascriptlet num = 12345;

if (num[0] == 1) {
  console.log('+++');
} else {
  console.log('---'); // ще се изпълни това
}

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

javascriptlet num = 12345;
console.log(num[0]); // ще изведе undefined

За решаване на проблема преобразуваме нашето число в низ:

javascriptlet num = 12345;
let str = String(num);

if (str[0] == 1) {
  console.log('+++'); // ще се изпълни това
} else {
  console.log('---');
}

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

javascriptlet num = 12345;

if (String(num)[0] == 1) {
  console.log('вярно'); // ще изведе 'вярно'
} else {
  console.log('невярно');
}

Нека сега искаме да проверим първата цифра дали е равна на 1, или на 2. Напишете съответния код:

javascriptlet num = 12345;

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

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

Нека поправим проблема:

javascriptlet num = 12345;
let first = String(num)[0];

if (first == 1 || first == 2) {
  console.log('+++');
} else {
  console.log('---');
}
Задание 1

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

Задание 2

Нека в променливата num се съхранява число. Определете дали числото е четно или не. Числото ще бъде четно, ако последният символ е равен на 0, 2, 4, 6 или 8, и нечетно в противен случай.