Руководство по actionscript. часть 1, стр. 142
В табл. 8.6 перечислены значения по умолчанию для каждого конкретного типа данных в языке ActionScript, используемые при объявлении переменных.
Таблица 8.6. Значения переменных по умолчанию
Тип данных Значение по умолчанию
String null
Boolean false
int 0
uint 0
Number NaN
Все остальные типы null
Значения null и undefined
В одной из предыдущих глав рассказывалось, что каждый из типов данных — Null и void — включает по одному-единственному значению — null и undefined соответственно. Теперь, когда мы познакомились с типами данных и аннотациями типов, рассмотрим, чем же отличаются эти два значения.
Концептуально оба значения — null и undefined — обозначают отсутствие данных. Значение null обозначает отсутствие данных для переменных, параметров и возвращаемых значений, объявленных с использованием аннотаций типов, кроме типов Boolean, int, uint и Number. Например, следующий код создает типизированную переменную экземпляра pet типа VirtualPet. До тех пор пока переменной не будет явно присвоено значение в программе, ее значением будет являться null.
package { import flash. display. Sprite; import zoo.*;
public class VirtualZoo extends Sprite { private var pet:Virtual Pet;
public function VirtualZoo ( ) { trace(pet): // Выводит: null
}
}
}
Напротив, значение undefined обозначает отсутствие данных для переменных, параметров и возвращаемых значений, объявленных без использования аннотаций типов. Например, следующий код создает объект с двумя динамическими переменными экземпляра — city и country. Этот код использует значение undefined при присваивании переменной country исходного значения, чтобы показать, что она пока не имеет осмысленного значения.
var info = new Object( ): info. city = «Toronto»: info. country = undefined;
Кроме того, значение undefined обозначает полное отсутствие переменной или метода у объекта, чей класс объявлен с использованием атрибута dynamic. Например, в результате следующей попытки обратиться к несуществующей переменной объекта, на который ссылается переменная info, будет возвращено значение undefined: