Показать сообщение отдельно

  #1  
Старый 12.03.2010, 21:47
astrologer
Постоянный
Регистрация: 30.08.2007
Сообщений: 773
С нами: 9840758

Репутация: 808


По умолчанию

Цитата:
Сообщение от оlbaneс  
да через алерт работает, но у меня другой случай - ввод данных в форму и вывод через document
вот сам скрипт без хтмл
Код:
	function two()
	{
	 var a=0;
	 	 x = document.forms[0].elements['x'].value;
		  x+=1;
		for (var i=0; i<x; i++){ a+=i;}
     document.getElementById('qqq').innerHTML = 'Результат ='+a   ;
	}
а что оно выводит я писал выше. какая-то безумная магия.
x - это строка. Соответственно при (x += 1) происходит не сложение, а конкатенация и получается "11" вместо 2 и т. п. При сравнении (i < x) оба аргумента преобразуется к числовому типу (этого не происходит только если с обеих сторон - строки). Далее всё достаточно очевидно.

Кстати, это называется арифметическая прогрессия и её сумма считается без циклов.
 
Ответить с цитированием