Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 27.11.2013, 10:50
Новичок на форуме
Отправить личное сообщение для nvzc Посмотреть профиль Найти все сообщения от nvzc
 
Регистрация: 27.11.2013
Сообщений: 2

Значение в переменной
Всем привет!
В видеокурсе Ильи, был примерчик примерно такого содержания
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(); // ВАСЯ

Последний раз редактировалось nvzc, 27.11.2013 в 10:53.
Ответить с цитированием
  #2 (permalink)  
Старый 27.11.2013, 11:21
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,123

Сообщение от nvzc
почему если объявить нейм=вася после функции, результат не undefined, а тоже Вася?
Чеш ты врешь-то?

function whatIsName() {
   alert(name);
}    
whatIsName();
var name = "Вася";
Ответить с цитированием
  #3 (permalink)  
Старый 27.11.2013, 11:23
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

ksa, а второй раз запусти будет Вася
Ответить с цитированием
  #4 (permalink)  
Старый 27.11.2013, 11:30
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,123

Rise, у меня вообще тут дает "js-frame-highlighter_289918"
Ответить с цитированием
  #5 (permalink)  
Старый 27.11.2013, 11:31
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,123

Сообщение от Rise
второй раз запусти будет Вася
На странице стабильный undefined.

<!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>
Ответить с цитированием
  #6 (permalink)  
Старый 27.11.2013, 11:35
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Потому что свойство window.name

Для чистоты же эксперимента:

(function(){

function whatIsName() {
   alert(name);
}   
whatIsName();
var name = "Вася";

})();

Или же поменять имя переменной на другое:

function whatIsName() {
   alert(_name);
}   
whatIsName();
var _name = "Вася";


И да, тут на сайте при повторном просмотре окно остается прежним, так что результат будет уже другим.
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #7 (permalink)  
Старый 27.11.2013, 12:53
Новичок на форуме
Отправить личное сообщение для nvzc Посмотреть профиль Найти все сообщения от nvzc
 
Регистрация: 27.11.2013
Сообщений: 2

Сам натупился
все оказалось логичным
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выводить значение раньше переменных Гробовщик Общие вопросы Javascript 11 10.09.2013 08:42
Как значение переменной вставить в имя переменной? jsgogo Общие вопросы Javascript 3 02.06.2013 12:11
Передать значение этой переменной скрипту пхп не обновляя страницы jei Общие вопросы Javascript 10 01.03.2013 18:14
В contains() не подставляется значение переменной Heger jQuery 2 11.12.2011 20:26
Значение переменной salex009 jQuery 1 05.12.2011 16:55