В чем преимущество нетипизированного переменная над объектом? В чем разница между null и undefined?

Согласно этому: http://help.adobe.com/en_US/ActionScript/3.0_ProgrammingAS3/WS5b3ccc516d4fbf351e63e3d118a9b90204-7f9f.html Цитата:

Нетипизированная переменная - это не то же самое, что переменная типа Object. Ключевое отличие состоит в том, что нетипизированные переменные могут содержать специальное значение undefined, тогда как переменная типа Object не может содержать это значение.

Однако wh Common crawl ru Я тестирую это как:


            var objTest:Object = 123;           
            var untypedTest:* = 123;

            objTest = undefined;
            untypedTest = undefined;            
            //This is understandable but why was the assignment even allowed?
            trace(objTest); // prints null
            trace(untypedTest); // prints undefined

            objTest=null;
            untypedTest = null;         
            //This is also understandable ... both can store null 
            trace(objTest); // prints null 
            trace(untypedTest); // prints null 

            //If they are null whey are they being equal to undefined? 
            if(objTest==undefined)
                trace("obj is undefined");
            if(untypedTest==undefined)
                trace("untyped is undefined");
            //Because null is same as undefined!
            if(null==undefined)
                trace("null is same as undefined?");


Два вопроса:

  • Почему для obj разрешено присвоение undefined? (не большая проблема, так как он по-прежнему печатается как null)
  • Если мы сравниваем null с undefined, результат будет истинным (даже если null хранится в объекте). В чем смысл различать null и undefined, если они равны?

7
задан Constantiner 8 August 2011 в 10:02
поделиться