Robię w js taką funkcję, która sprawdza, czy podana liczba jest dodatnia, ujemna, czy równa zero.
const response = document.querySelector('#response');
function chceckNumber(x)
{
if (typeof x !== "Number")
{
response.textContent = 'Podana wartość jest nieprawidłowa. Wpisz dowolną liczbę';
}
if (x == "")
{
response.textContent = 'Nie podano liczby';
}
else if (x > 0)
{
response.textContent = 'Podana liczba jest dodatnia';
}
else if (x < 0)
{
response.textContent = 'Podana liczba jest ujemna';
}
else if (x == 0)
{
response.textContent = 'Podana liczba jest równa zero';
}
}
window.addEventListener('keydown', (event) => {
if (event.key === "Enter")
{
const inputValue = document.querySelector('#number').value;
chceckNumber(inputValue);
}
})
Podany wyżej kod działa prawidłowo, ale gdy zmienię warunek
if (x == "")
{
response.textContent = 'Nie podano liczby';
}
na
else if (x == "")
{
response.textContent = 'Nie podano liczby';
}
co w efekcie daje taki kod
const response = document.querySelector('#response');
function chceckNumber(x)
{
if (typeof x !== "Number")
{
response.textContent = 'Podana wartość jest nieprawidłowa. Wpisz dowolną liczbę';
}
else if (x == "")
{
response.textContent = 'Nie podano liczby';
}
else if (x > 0)
{
response.textContent = 'Podana liczba jest dodatnia';
}
else if (x < 0)
{
response.textContent = 'Podana liczba jest ujemna';
}
else if (x == 0)
{
response.textContent = 'Podana liczba jest równa zero';
}
}
window.addEventListener('keydown', (event) => {
if (event.key === "Enter")
{
const inputValue = document.querySelector('#number').value;
chceckNumber(inputValue);
}
})
sprawia, że bez względu na wartość w polu tekstowym wyświetla się odpowiedź, że podana wartość jest nieprawidłowa.
Czy ktoś wie dlaczego tak się dzieje? Jestem bardzo ciekwawy, czemu to tak działa