Preverjanje števk števila v JavaScript

Recimo, da imamo dano število:

javascriptlet num = 12345;

Poskus dostopa do prvega znaka števila bo povzročil nepričakovano vedenje:

javascriptlet num = 12345;

if (num[0] == 1) {
  console.log('+++');
} else {
  console.log('---'); // sprožilo se bo to
}

Kot že morate vedeti, je težava v tem, da lahko dostopate do znakov niza, ne pa tudi do števk števila:

javascriptlet num = 12345;
console.log(num[0]); // izpiše undefined

Za rešitev problema pretvorimo naše število v niz:

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

if (str[0] == 1) {
  console.log('+++'); // sprožilo se bo to
} else {
  console.log('---');
}

Ni nujno, da uvedemo novo spremenljivko, lahko uporabimo [0] neposredno na rezultatu funkcije String:

javascriptlet num = 12345;

if (String(num)[0] == 1) {
  console.log('pravilno'); // izpiše 'pravilno'
} else {
  console.log('nepravilno');
}

Recimo, da zdaj želimo preveriti, ali je prva števka enaka 1 ali 2. Napišimo ustrezno kodo:

javascriptlet num = 12345;

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

V tem primeru se izkaže, da se konstrukcija String(num)[0] ponovi dvakrat. To je, prvič, dolgo, in drugič, ne optimalno, saj števlo dvakrat pretvarjamo v niz - drugič se izkaže za odveč, viri programa pa se porabijo zanj.

Popravimo težavo:

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

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

Dano je celo število. Napišite pogoj, ki bo preveril, ali je zadnja števka tega števila enaka nič.

Задание 2

Naj bo v spremenljivki num shranjeno število. Določite, ali je število sodo ali ne. Število bo sodo, če je zadnji znak enak 0, 2, 4, 6 ali 8, in liho sicer.