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, время: 17:33. |