Читать «HTML5. Недостающее руководство» онлайн - страница 310

Мэтью Мак-Дональд

// Объект myObject не существует.

// Теперь, может быть, удачное время, чтобы создать его. }

Область видимости переменных Переменные можно создавать в двух основных местах — внутри функции и вне функции. Следующий фрагмент кода содержит оба эти типа переменных: <script>

var outsideVariable;

function doSomething() {

var insideVariable;

...

}

</script>

Созданная внутри функции переменная называется локальной переменной и суще-ствует только на протяжении времени исполнения этой функции. В приведенном примере переменная insideVariable является локальной. Как только метод doSomething() завершает исполнение, эта переменная удаляется из памяти. Это оз-

начает, что при следующем вызове метода doSomething() переменная insideVariable создается заново и получает новое значение. С другой стороны, значение переменной, созданной вне функции (такие перемен-ные называются глобальными ), сохраняется на протяжении всего времени, пока страница загружена в браузере. Вдобавок такие переменные могут использоваться всеми функциями. В приведенном примере переменная ousideVariable является глобальной.

Используйте локальные переменные за исключением случаев, когда переменную нужно сделать доступной для нескольких функций или же сохранить ее значение по-сле исполнения функции. Отслеживание глобальных переменных требует больше усилий и большое количество таких переменных загромождает код.

Типы данных переменных

Переменные JavaScript могут содержать разные типы данных, такие как текст, це-лые числа, числа с плавающей запятой и объекты. Но независимо от типа данных, которые вы намереваетесь хранить в переменной, все они создаются посредством одного и того же ключевого слова var . При этом тип данных для конкретной пере-

менной не указывается.

Это означает, что можно взять переменную myMessage , которая содержит текстовую строку, и присвоить ей числовое значение:

myMessage = 27.3;

Такой подход облегчает использование языка JavaScript, т. к. любая переменная может хранить данные любого типа. Но в то же самое время это способствует воз-никновению ошибок. Например, мы хотим взять текстовую строку из поля ввода и сохранить ее в переменной:

var = inputElement.value;

Но если не соблюдать должной осторожности, можно случайно сохранить в этой переменной не содержимое объекта, а сам объект: var = inputElement;

Так как JavaScript позволяет выполнять оба типа присваиваний и не может угады-вать мыслей программиста, он воспримет последнее присвоение как должное. Но дальше в коде эта оплошность, скорее всего, вызовет какую - либо неисправимую ошибку исполнения. Браузер просто прекратит выполнение оставшегося кода и не выдаст вам никаких сообщений об ошибке, объясняющих ее причину. Арифметические операции