Отправляет email-рассылки с помощью сервиса Sendsay

Изучим JavaScript общими усилиями

  Все выпуски  

Изучим JavaScript общими усилиями


Изучим JavaScript общими усилиями

Рассылка продублирована на сайте www.infotok.net.ru
Адрес для связи griisaev@yandex.ru

ВЫПУСК 14

Всем здравия желаю!

В языке JS имеются операторы для выполнения циклов (итераций), т.е. повторения ряда операторов, до тех пор, пока не будет выполнено какое-то условие.
Сегодня мы рассмотрим оператор цикла for (для).
Синтаксис оператора for:

for ([начальное выражение] ; [условие] ; [выражение обновления]) {
код
}

Квадратными скобками выделены необязательные выражения. Если записать for (), то мы получим бесконечный цикл.
Все, что записано в круглых скобках, называется заголовком оператора, а в фигурных скобках его тело.  Выражения в круглых скобках разделяются точкой с запятой. Фигурные скобки можно опускать, если код состоит из одного выражения.
Пример.

<html>
<head>
<script language ="JavaScript">
<!--
function testloop() {
document.open();
for (i=5; i<=50; i+=5)  document.writeln('<hr width="'+i+'%">');
document.close();
}
//-->
</script>
</head>
<body>
<form>
<input type="button"
value="Нажать"
onClick="testloop()">
</form>
</body>
</html>

Данный пример взят с сайта: http://www.chamber.md/E-bisiness/fpwebteh/jsbig/tm011.htm. Здесь фигурные скобки можно не ставить. В данном примере после нажатия на кнопку в документе выводятся, постепенно удлиняющиеся, горизонтальные линии. Для вывода линий применен тэг HTML - (<hr >). Начальный размер, присваивается переменной i=5. Условие для построения ряда линий  i<=50. Каждая следующая линия будет увеличиваться на 5 – (i+=5), т.е. увеличение линий произойдет от 5 до 50. Всего итераций будет 10.
В цикле в строке document.writeln('<hr width="'+i+'%">') добавляется новое значение переменной i, длины линии. Когда значение переменной достигает 50, цикл завершается.
Счетчик циклов может быть не только возрастающим, но и убывающим.
Пример.

<html>
<head>
<head>
<title>Простая страница</title>
<script language="JavaScript">
<!--
for (x = 10; x >= 0; x = x - 2)
{
alert(x);
}
// -->
</script>
</head>
<body>
<p> Счетчик циклов может быть не только возрастающим, но и убывающим!</p>
</body>
</head>
</html>

Для прерывания цикла используется оператор break. Выполнение цикла прекращается в той точке, в которой размещен этот оператор, а управление передается следующему оператору, находящемуся непосредственно после цикла.
Пример.

<html>
<head>
<head>
<title>Пример</title>
<script language="JavaScript">
<!--
for (x = 10; x >= 0; x = x - 2)
{
alert(x);
if(x<=8){
alert("Используем оператор break");
break
}
}
// -->
</script>
</head>
<body>
<p> Счетчик циклов может быть не только возрастающим, но и убывающим!</p>
</body>
</head>
</html>

В операторе for также применяется оператор continue. Этот оператор прекращает выполнение кода цикла, проверяет условие перехода (выражение обновления) и возвращается к вычислению кода цикла.
Пример.

<html>
<head>
<head>
<title>Пример</title>
<script language="JavaScript">
<!--
for (x = 10; x >= 0; x = x - 2)
{
alert(x);
if(x<8){
alert("Используем оператор continue");
continue
}
}
// -->
</script>
</head>
<body>
<p> Счетчик циклов может быть не только возрастающим, но и убывающим!</p>
</body>
</head>

</html>

До следующего выпуска!

ВАШИ ВОПРОСЫ

Здесь будут размещаться Ваши вопросы. Поскольку я сам чайник в JavaScript, то будем сообща искать на них ответы. Обязательно познакомьтесь с правилами подачи вопросов и ответом.


ВОПРОС №1

Как сделать повторяемый цикл? Тоесть чтобы скрипт каждый раз
обновлялся. Например, я использую Часы, но приходится каждуй раз в
браузере жать обновить. Я знаю, что эта команда типа: refresh, но эта
команда не работает.

ОТВЕТ

<html>
<head>
<title>Время.</title>
</head>
<body onLoad="myclock()">
<script language="JavaScript">
<!--
function myclock()
{
ndata=new Date()
// Получение показаний часов, минут и секунд
hours= ndata.getHours();
mins= ndata.getMinutes();
secs= ndata.getSeconds();
// Дополнение показаний нулем слева
if (hours < 10) {hours = "0" + hours }
if (mins < 10) {mins = "0" + mins }
if (secs < 10) {secs = "0" + secs }
// Суммирование всех данных для вывода
datastr =hours+":" + mins+":" +secs
// Запись данных
document.clockexam.clock.value = " "+datastr;
// Вызов функции с интервалом 1000 ms
setTimeout("myclock()", 1000);
}
-->
</script>
<form name="clockexam"><input type="text" size="9" name="clock"></form>
</body>
</html>

источник скрипта http://scriptic.ru/clock/calendar-form.shtml

Прислал Alexey


ВОПРОС №2

В IE(6) ни один пример не работает: то ли игнорируется, то ли еще чего, но результат - пустой экран. Под Оперой и FireFox - все ОК. "Выполнять сценарии приложений Java" установлено на "разрешить". Возможно, необходимо как-то дополнительно настроить параметры IE?
Правила подачи вопросов и ответов.
Общие

Нековеркайте слова. Не применяйте нецензурные выражения. Не принимаются письма с вложенными файлами.
Такие письма будут просто удаляться.

Правила подачи вопросов

Правильно и понятно формулируйте ваши вопросы. Указывайте ваш рабочий адрес электронной почты. Старайтесь не забегать вперед рассылки. Указывайте тему письма как «Вопрос».

Правила для ответов

При ответе в теме письма указывайте Ответ - (номер вопроса). Если хотите ответить на несколько вопросов, то на каждый вопрос отвечайте отдельным письмом.

Адрес для связи griisaev@yandex.ru

Все права защищены © Исаев Григорий 2007г., griisaev@yandex.ru
При цитировании ссылка на источник обязательна.


В избранное