Показать сообщение отдельно
  #1 (permalink)  
Старый 25.04.2012, 03:06
Интересующийся
Отправить личное сообщение для LeD4eG Посмотреть профиль Найти все сообщения от LeD4eG
 
Регистрация: 16.04.2012
Сообщений: 14

Почему переменная не может быть глобальной?
Доброго ночи!

При разборе, казалось бы легкого скрипта, обнаружил для себя не совсем понятный момент.

var planetList = new Array();
  planetList[0] = 'Меркурий';
  planetList[1] = 'Венера';
  planetList[2] = 'Земля';
  planetList[3] = 'Марс';

var wayToSun = new Array();
  wayToSun[0] = '52 млн.км';
  wayToSun[1] = '108 млн.км';
  wayToSun[2] = '149 млн.км';
  wayToSun[3] = '228 млн.км';

var planetDiameter = new Array();
  planetDiameter[0] = '4 880 км';
  planetDiameter[1] = '12 100 км';
  planetDiameter[2] = '12 750 км';
  planetDiameter[3] = '6 800 км';

function doCount(){
   var userText = document.getElementById('planetName').value;
   for( var i = 0; i < planetList.length; i++) {
     if(planetList[i] == userText){
        break;
     }
   }
document.write('<p class="hightlight">'+planetList[i]+'</p>');
document.write('<p class="hightlight">Расстояние до солнца: '+wayToSun[i]+'</p>');
document.write('<p class="hightlight">Диаметр планеты: '+planetDiameter[i]+'</p>');
}



<label for="planetName">Введите название планеты:</label>
<input type="text" id="planetName" name="planetName" />
<input type="button" id="counter" value="Рассчитать" onclick="doCount()"/>


Как я и говорил всё до банальности просто, мат.часть так скажем. Но вот ситуацию почему скрипт перестаёт "работать", когда переменная userText объявляется вне тела функции (если я всё правильно понимаю, в таком случае она является глобальной), я никак не могу осилить.
Ответить с цитированием