# Checking the digits of a number in JavaScript

Let's have a number:

`let num = 12345;`

Attempting to access the first character of a number will result in unexpected behavior:

`let num = 12345; if (num[0] == 1) { console.log('+++'); } else { console.log('---'); // it will work }`

As you should already know, the problem is that you can access the characters of a string, but not the digits of a number:

`let num = 12345; console.log(num[0]); // shows undefined`

To solve the problem, let's convert our number to a string:

`let num = 12345; let str = String(num); if (str[0] == 1) { console.log('+++'); // it will work } else { console.log('---'); }`

It is not necessary to introduce a new variable, you can apply `[0]` directly to the result of the `String` function:

`let num = 12345; if (String(num)[0] == 1) { console.log('right'); // shows 'right' } else { console.log('wrong'); }`

Let now we want to check the first digit for the fact that it is equal to `1` or `2`. Let's write the corresponding code:

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

In this case, it turns out that the construct `String(num)[0]` will be repeated twice. This, firstly, is too long, and secondly, it is not optimal, since we will convert the number into a string twice - the second time it turns out to be redundant, but the program resources are spent on it.

Let's fix the problem:

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

Given an integer. Write a condition that will check if the last digit of this number is equal to zero.

Let the variable `num` store a number. Determine if the number is even or not. The number will be even if the last character is `0`, `2`, `4`, `6`, or `8`, and odd otherwise.

←→
↑
en ru