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

рони 19.11.2017 22:56

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>

mikello 19.11.2017 22:58

Теперь выводит Undefined

mikello 19.11.2017 23:00

Когда у меня выводилась единица, мой код был таким:

Цитата:

<script>
window.onload=function(){
$(document).ready(function() {
alert(f);// undefined
});

var f = 1;
}
</script>
Почему единица выводилась?

рони 19.11.2017 23:02

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 19.11.2017 23:05

Цитата:

window.onload=function(){
$(document).ready(function() {
alert(f);
});
var f = 1;
}
После того как страница полностью загрузилась, происходит выполнение window.onload, а так как страница полностью загрузилась то почему функция ready не выполняется первой ?

mikello 19.11.2017 23:12

Все разобрался, а с этим не поможете ?

Цитата:

$(document).ready(function()
{
alert(f);
var f=0;
})
var f=1;
почему alert выводит undefined?

рони 19.11.2017 23:18

mikello,
на момент алерта переменная(var f=0;) создана, но значение ещё не присвоено.
переменная var f=1; не имеет значения

mikello 19.11.2017 23:20

Вроде понятно. Спасибо.

а как это будет выглядеть в интерпретаторе, он же последовательно все делает. Как он создает переменную , если она объявляется после alert?

рони 19.11.2017 23:22

Цитата:

Сообщение от mikello
почему функция ready не выполняется первой ?

потому что load срабатывает позднее ready, плюс ready внутри load, и в данном случае он раньше не может.

рони 19.11.2017 23:24

Цитата:

Сообщение от mikello
Как он создает переменную , если она объявляется после alert?

он сначала записывает по именам всех зверей в зоопарке скопе, потом их взвешивает инициализирует


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