Типы переменных JavaScript

mak_sim2001

Новичок
Типы переменных JavaScript

Немного не по теме наверно, есть такой скрипт
...
var k = document.numImg.number.value; // из <input type="hidden" name="numImg" value = "0">
if (img_i == 1) {
if ( k < 9) {
x = k - 2 + 3;
} else if (k == 9) {
x = 0;
}
}
else if (img_i == -1) {
if (k > 0) {
x = k - 1;
} else if (k == 0) {
x = 9;
}
}
...
Почему в строке x = k - 2 + 3, JavaScript "понимает" значение x как число, а если просто написать х = k + 1, или x = 1 + k, то х получается строкой - 11, 111, 1111... и т.д. ? Читал что тип JavaScript прямо задать нельзя, я как-бы выход нашел x = k - 2 + 3, но может кто что подскажет, а то выглядит не очень
 

hermit_refined

Отшельник
x = Number(k) +1
(здесь лучше var k = Number(document ...); )
При наличии вычитания происходит преобразование в число, т.к. для строк нет такой операции.
 

mak_sim2001

Новичок
Спасибо!!! Мне этот скрипт уже три дня покоя недавал глаза мазолит
"надо поразмышлять, а поразмышлять некогда" :)
 
Сверху