Оператор typeof позволяет узнать базовый тип любого объекта/переменной. Это не информация о классе, а просто тип переменной связанной с объектом. Для детальной информации о классе следует использовать instanceof, getQualifiedClassName, describeType.
В ActionScript 1 и 2, typeof возвращал такие значения:
- boolean
- function
- movieclip
- null
- number
- object
- string
- undefined
ВActionScript 3 typeof возвращает:
- boolean
- function
- number
- object
- string
- xml
- undefined
Убрали MovieClip и null, теперь это тоже самое, что object. Добавили xml. Новые типы переменных int и uint распознаются как number. И простейшие типы переменных boolean, number, string, созданные через конструктор распознаются правильно, а не как object, как было в AS1/AS2.
Код:
// AS1 & AS2
trace(typeof new XML()); // object
trace(typeof my_mc); // movieclip
trace(typeof null); // null
trace(typeof true); // boolean
trace(typeof 1); // number
trace(typeof ""); // string
trace(typeof new Boolean()); // object
trace(typeof new Number()); // object
trace(typeof new String()); // object
Код:
// AS3
trace(typeof new XML()); // xml
trace(typeof my_mc); // object
trace(typeof null); // object
trace(typeof true); // boolean
trace(typeof 1); // number
trace(typeof ""); // string
trace(typeof new Boolean()); // boolean
trace(typeof new Number()); // number
trace(typeof new String()); // string
trace(typeof int(1)); // number
trace(typeof uint(1)); // number