ready function и так выполняется в последнюю очередь.
|
Цитата:
я представляю себе работу интерпретатора на данном ниже примере так: 1) f=1; 2) вывести 1; 3) переменная f на момент выполнения ready - undefined 4)f=0 Цитата:
|
mikello,
Неправильно. Уберите var f=0; в ready или поставьте в начало - и undefined исчезнет. Дело в том, что в ready вы заново переопределяете переменную, но после использования. <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script> <script>$(document).ready(function() { console.log(f) }) var f=1; console.log(f) </script> <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script> <script>$(document).ready(function() { var f=0; console.log(f) }) var f=1; console.log(f) </script> <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script> <script>$(document).ready(function() { f=0; console.log(f) }) var f=1; console.log(f) </script> |
Да, но переопределяю я ее уже после вызова document.write(f); , вот здесь непонятно почему с переменной что-то происходит и каким образом.
Интерпретатор ведь считывает все команды последовательно, так почему f=1 не имеет значения на момент document.write(f) в ready? Почему к началу действия ready переменная имеет undefined? Она же была определена как 1. Вот что непонятно( |
Переменные имеют область видимости.
Сначала оба объявляется как глобальная переменная, внутри ready function переопределяется - глобальная в результате не видна. но значение локальная получает позже использования. |
А почему тогда в данном примере область видимости не имеет значения и переменная внутри ready равна 1?
Цитата:
|
mikello,
Здесь f глобальная - объявлена вне function и не переопределяется внутри, поэтому видна ВЕЗДЕ. |
Цитата:
Цитата:
Если конкретнее - что происходит с глобальной переменной f в самом начале ready (до вызова alert())? Цитата:
|
Почитайте про глобальные обьекты в учебнике на этом форуме
|
Как я понимаю то, что происходит с переменной f на всем участке кода:
1) f=1 2) f-undefined 3)f=0 Я не совсем понимаю при чем здесь область видимости переменной, если var f=0 идет после alert. Интерпретатор обрабатывает команды последовательно. Вот вы говорите: Цитата:
Цитата:
|
Часовой пояс GMT +3, время: 13:21. |