Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Порядок исполнения (https://javascript.ru/forum/misc/18153-poryadok-ispolneniya.html)

Sundro 19.06.2011 19:50

Порядок исполнения
 
Есть код

<html>
<head><title></title></head>
<body>

<form name="shipping">
<input type="text" name="zipcode" value="TextFild">
<input type="radio" name="zipcode">
<input type="radio" name="zipcode">
<input type="radio" name="zipcode">
<input type="radio" name="zipcode">
</form>

<script type="text/javascript">
var b = document.shipping.zipcode;
var c = window.document;
alert ("Var c = "+c);
for (var a in b ) {
document.write(a+ "<br>");
};
alert ("Var c1 = "+c);
</script>
</body>
</html>

Во время исполнения:
Первой обрабатывается строка alert("Var c="+c)
Второй alert("Var c1 =" +c)
Третим выполняется цикл.

Извечный вопрос почему ?
P.S Не уверен но думаю что из за document.write(), учусь по книжке там сказано что этот метод должен быть вызван во время синтаксического разбора html. Иначе затирает предыдущий выхлоп, поэтому возможно когда он находится в цикле обрабатывается последним.....но хочется слышать экспертов.

ksa 20.06.2011 09:15

Бивас, тест... :)

<html>
 <head><title></title></head>
 <body>

 <form name="shipping">
 <input type="text" name="zipcode" value="TextFild">
 <input type="radio" name="zipcode">
 <input type="radio" name="zipcode">
 <input type="radio" name="zipcode">
 <input type="radio" name="zipcode">
 </form>

 <script type="text/javascript">
 var b = document.shipping.zipcode;
 var c = window.document;
 alert ("1) Var c = "+c);
 for (var a in b ) {
    alert(a)
    document.write(a+ "<br>");
 };
 alert ("2) Var c1 = "+c);
 </script>
 </body>
 </html>


Цитата:

Сообщение от Sundro
Первой обрабатывается строка alert("Var c="+c)
Второй alert("Var c1 =" +c)
Третим выполняется цикл.

Враньё... :)
Цикл таки второй.

Sundro 21.06.2011 13:26

Спасибо за объяснение. Больше по выхлопу смотреть не буду


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