mikello,
<!DOCTYPE html> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <style type="text/css"> </style> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> <script> $(document).ready(function() { alert(f);// 1 }); var f = 1; </script> </head> <body> </body> </html> |
Теперь выводит Undefined
|
Когда у меня выводилась единица, мой код был таким:
Цитата:
|
mikello,
чтоб не было проблем обьявите переменную до использования <!DOCTYPE html> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <style type="text/css"> </style> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> <script> window.onload=function(){ var f = 1; $(document).ready(function() { alert(f);//1 }); } </script> </head> <body> </body> </html> |
Цитата:
|
Все разобрался, а с этим не поможете ?
Цитата:
|
mikello,
на момент алерта переменная(var f=0;) создана, но значение ещё не присвоено. переменная var f=1; не имеет значения |
Вроде понятно. Спасибо.
а как это будет выглядеть в интерпретаторе, он же последовательно все делает. Как он создает переменную , если она объявляется после alert? |
Цитата:
|
Цитата:
|
я имел в виду другое, а именно первой выполняется ready() или присваивается переменная f=1?
|
mikello,
не могу правильно ответить, нужна помощь из зала :) |
:thanks:
|
вроде ready() выполняется первым, я код написал и проверил это. вроде так
|
mikello,
ready будет сформирована в том порядке и с теми данными которые были на момент её инициализации, когда исполнится не знаю, сразу если html уже готово или будет ещё ждать готовности. |
window.load гарантирует то, что функция ready() уже не будет ждать готовности, а выполнится сразу. Не так разве?
|
mikello,
да, но такая конструкция немного бессмысленна, достаточно load |
ошибся, имею в виду window.onload=function(){} ...
|
mikello,
или так /* html + img */ $(window).on("load", function() { }); или так короткая форма $(document).ready /* ready html */ $(function() { }); но не так window.onload=function(){ $(document).ready(function() { alert(f);// undefined }); var f = 1; } и не так $(window).on("load", function() { $(function() { }); }); |
Цитата:
Почему он вам не нравится? |
Цитата:
всё что мог, написано выше далее я пас :) |
Так я не понял, мой пример правильный или нет? )
|
mikello,
вам решать что вам нужно undefined или 1 |
я его привел для того, чтобы показать, что именно в нем ready выполняется быстрее чем var f; . больше не для чего )
|
mikello,
Небольшая цитата, на всякий случай Цитата:
|
еще такой вопрос, вроде бы 2 эквивалентных кода:
Цитата:
Цитата:
|
mikello,
читать про document.write и не использовать в ready, если нет желания убить страницу |
|
Цитата:
|
Цитата:
|
Хорошо, но я так и не понял, почему document.write(f) внутри ready перезаписал предыдущий document.write()
|
Цитата:
Цитата:
|
То есть первый document.write() выполнялся на этапе загрузки страницы, а второй document.write() выполнялся уже после загрузки страницы, поэтому кроме того что он вывел ничего не стало. ?
|
mikello,
да |
все понял, спасибо :)
|
Цитата:
|
Цитата:
|
Появляется.
<script> var f=1; document.write(f); </script> |
У меня не появляется
|
mikello,
Цитата:
Где ваш вариант? |
Часовой пояс GMT +3, время: 04:50. |