Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   объявление переменной (https://javascript.ru/forum/misc/71435-obyavlenie-peremennojj.html)

Dilettante_Pro 19.11.2017 18:09

mikello,
Для отслеживания корректной аоследовательности используйте не document.write и alert, а console.log.
Тем более что второй document.write затирает предыдущий

mikello 19.11.2017 18:13

Он не затирает предыдущий, в том то и дело. Он вообще не работает.

Dilettante_Pro 19.11.2017 18:17

mikello,
Замените на console.log и посмотрите

mikello 19.11.2017 18:18

Он никогда и не затирал. Вот пример, выводит ab.

Цитата:

document.write('a');
document.write('b');

Dilettante_Pro 19.11.2017 18:24

До ready пишет в document, после - записывает все заново, затирая то,что было раньше

mikello 19.11.2017 18:27

Цитата:

$(document).ready(function()
{
document.write(f);
var f=0;
})
var f=1;
document.write(f)
То есть сначала пишет 1, а потом перезаписывает на undefined? Не уверен, что это так. Тогда бы было не undefined, а 1.

mikello 19.11.2017 18:32

Ошибся. Все правильно. Но почему здесь при втором вызове alert(f) выводится undefined, ведь переменная var f=1; уже было определено.

Цитата:

$(document).ready(function()
{
alert(f);
var f=0;
})
var f=1;
alert(f);

Dilettante_Pro 19.11.2017 18:36

Сравните первый и второй примеры и посмотрите третий

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
<script>
$(document).ready(function () {
document.write('b');

});
document.write('a');
</script>


<script>
document.write('a');
document.write('b');
</script>

<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=0;
})
var f=1;
console.log(f)
</script>

mikello 19.11.2017 18:41

Теперь понял. А как сделать так , чтобы сначала выполнялся код в function(){}, а потом уже за ее пределами ?

Dilettante_Pro 19.11.2017 18:46

Так не получится.
Чтобы выполнялся позже, включите в конец ready function


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