Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Js путет число и строку (https://javascript.ru/forum/dom-window/18927-js-putet-chislo-i-stroku.html)

Joshka 20.07.2011 16:44

Js путет число и строку
 
Здравствуйте, помогите плз, я написал таймер:
<body onload="ttime()">
<div id="mm">0</div>
<script type="text/javascript">
function ttime(){
var mm = document.getElementById("mm").innerHTML;
mm++;
document.getElementById("mm").innerHTML = mm;
setTimeout(ttime, 1000);
}
</script>

Проблема со строкой mm++; если я пишу mm = mm + 10; js почему то считает что это строка и приставляет число а не прибавляет его, как показать программе что это число?
(Извиняюсь за кривое название клавиатура залипает)

kobezzza 20.07.2011 16:46

Цитата:

mm = mm + 10;
mm = +mm + 10;

Joshka 20.07.2011 16:48

А если пишу так mm += 15; то как?

kobezzza 20.07.2011 16:49

Цитата:

Сообщение от Joshka (Сообщение 114432)
А если пишу так mm += 15; то как?

Объяви заранее, что mm - это число, т.е. напиши mm = +mm;
Оператор + в данном контексте является укороченной записью метода valueOf() - который возвращает элементарное числовое значение.

Joshka 20.07.2011 16:51

Все понял, спасибо большое, а то уже не первый раз ошибки связанные с этим))))

kobezzza 20.07.2011 16:52

Нез) Кстати можно сразу так написать в вашем случае:
var mm = +document.getElementById("mm").innerHTML;

Joshka 20.07.2011 16:54

Я как раз именно так и сделал))))

kobezzza 20.07.2011 16:56

Кстати, забыл сказать, ещё для перевода есть функции parseInt, parseFloat и Number (делает тож самое, что и +)

trikadin 20.07.2011 16:59

Цитата:

Сообщение от kobezzza
делает тож самое, что и +

Не был бы так категоричен)

alert(+"2.2h"); // NaN
alert(parseFloat("2.2h")); // 2.2

kobezzza 20.07.2011 17:09

Цитата:

(делает тож самое, что и +)
Я это к Number сказал)


Часовой пояс GMT +3, время: 22:13.