Значение в переменной
Всем привет!
В видеокурсе Ильи, был примерчик примерно такого содержания var name = "Вася"; function whatIsName() { alert(name); var name = "Петя"; } whatIsName(); // здесь получаем undefined Здесь все понятно почему. Если var name = "Петя"; объявить до Алерта, тогда получим "Петя" А не понятно следующее: Убираем эту строку var name = "Петя"; из функции. Итого у нас есть: 1. Глобальная переменная name 2. Функция декларейшн 3. Результат в алерте "Вася" Вопросы: почему если объявить нейм=вася после функции, результат не undefined, а тоже Вася? переменная ведь проинициализировалась и находится с undefined, и значение попадает уже после функции как и было с Петей function whatIsName() { alert(name); // var name = "Петя"; } whatIsName(); // ВАСЯ var name = "Вася"; var name = "Вася"; function whatIsName() { alert(name); // var name = "Петя"; } whatIsName(); // ВАСЯ |
Цитата:
function whatIsName() { alert(name); } whatIsName(); var name = "Вася"; |
Rise, у меня вообще тут дает "js-frame-highlighter_289918" :cray:
|
Цитата:
<!DOCTYPE html> <html> <head> <!-- <script src="http://code.jquery.com/jquery-latest.js"></script> <link rel="stylesheet" type="text/css" href="tmp.css" /> --> <style type="text/css"> </style> <script type="text/javascript"> function whatIsName() { alert(name); } whatIsName(); var name = "Вася"; </script> </head> <body> </body> </html> |
Потому что свойство window.name
Для чистоты же эксперимента: (function(){ function whatIsName() { alert(name); } whatIsName(); var name = "Вася"; })(); Или же поменять имя переменной на другое: function whatIsName() { alert(_name); } whatIsName(); var _name = "Вася"; И да, тут на сайте при повторном просмотре окно остается прежним, так что результат будет уже другим. |
Сам натупился :)
все оказалось логичным |
Часовой пояс GMT +3, время: 05:47. |