Показать сообщение отдельно
  #8 (permalink)  
Старый 08.01.2012, 13:19
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

Mike_Kharkov, специально для вас сидел набирал:
<html>
    <head>
        <meta charset="utf-8">
		<script type="text/javascript">
			var x = prompt('Сколько вам лет?', 0); // Запрос пользователю.
			// Если ввод отменен, то prompt возвращает null. Иначе то, что ввел пользователь в строковом представлении (строку).
			// Т.е., если пользователь ввел, к примеру,	"1", то эта единица будет строкой (не числом).
			
			// isNaN - глобальный метод. Пытается преобразовать переданный параметр в число.
			// Если параметр не может быть преобразован, возвращает true, иначе возвращает false.
			
			// ! - Логическое НЕ (!).
			// Оператор инвертирует значение своего (одиночного) операнда.

			// Логика.
			// isNaN пытается преобразовать то, что мы получили от пользователя в число.
			// Если ему это удается, он возвращает False, но поскольку инструкция if() выполняется только в том случае,
			// когда выражение истинно (или может быть преобразовано к истине),
			// обращаем False в True с помощью логического оператора НЕ (!).
			
			if(!isNaN(x)) {
				
				// new Date() - Создание объекта, в котором хранятся текущие дата и время.
				// С помощью метода getFullYear() объекта Date, получаем полное представление текущего года.
				var z = new Date().getFullYear();
				
				// Важно: в данный момент в переменной x содержится строка, а не число.
				// Но поскольку javascript автоматически преобразовывает к нужному типу данныx в зависимости от контекста,
				// то на первой итерации (проходе) цикла, оно будет преобразовано в число, и дальнейшие операции
				// уже будут выполняться с ним, как с числом.
				
				/* Цитата из Фленегана: 
					если значение одного типа используется в контексте, требующем значение некоего другого типа,
					интерпретатор JavaScript автоматически пытается преобразовать это значение.
				*/
				
				// Инструкция for/Цикл for. Ее шаблон выглядит примерно так:
				//	for (инициализация; проверка; шаг) {
				//	 ... тело цикла ...
				//	}
				
				// В строке ниже инициализация пропущена, поскольку значение нужной нам переменной (x) было присвоено раньше.
				for(; x > 0; x--, z--) {
					document.write(z + " - " + x + "<br>");
				}
				
				// Заметка. Если тело цикла состоит из одной строки, то можно обойтись без фигурных скобок, т.е. записать, например, так:
				// for(; x > 0; x--, z--) document.write(z + " - " + x + "<br>");
			}
		</script>
    </head>
    <body>
    </body>
</html>

// без комментариев скрипт выглядит так:
var x = prompt('Сколько вам лет?', 0);
if(!isNaN(x)) {
	var z = new Date().getFullYear();
	for(; x > 0; x--, z--) {
		document.write(z + " - " + x + "<br>");
	}
}

p.s.: если где ошибся, надеюсь, меня поправят.
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук

Последний раз редактировалось nerv_, 08.01.2012 в 13:33.
Ответить с цитированием