Ok, if you say so.  What is the result of your investigation?

 

It gets kind of complicated because AS does implicit toString() sometimes
which can hide what is really happening.

Do:

trace(xmlList == null);

and

trace(xmlList == "null");

return the same result?

 

Tracy Spratt,

Lariat Services, development services available

  _____  

From: [email protected] [mailto:[email protected]] On
Behalf Of Dave Glasser
Sent: Thursday, August 13, 2009 5:22 PM
To: [email protected]
Subject: RE: [flexcoders] Re: *** So you think you know ActionScript? (Read
original post first) ***

 

  


Actually, no. It would interpret it as null if it were enclosed in curly
braces like this:

var xml:XML = <outer><inner>{null}</inner></outer>;

And even then, null might be converted to its String value, "null", as the
content of the element. I'd have to try it to know for sure.

In the example I gave, the content of the element is a String consisting of
the letters "n", "u", "l" and "l", in that order.

In any case, the xmlList variable would reference a non-null XMLList object.
That's easily proven by dereferencing it:

trace("The length is " + xmlList.length());

That would output "The length is 1".

--- On Thu, 8/13/09, Tracy Spratt <[email protected]> wrote:


From: Tracy Spratt <[email protected]>
Subject: RE: [flexcoders] Re: *** So you think you know ActionScript? (Read
original post first) ***
To: [email protected]
Date: Thursday, August 13, 2009, 3:49 PM

  

Ah, I see something I missed at first.  This example is using "literal" xml,
so the null IS getting interpreted by AS as null and not as a string.  I bet
it would be different if you did:

var xml:XML = XML("<outer><inner> null</inner> </outer>");

 

Even so I am still surprised because the null should be the text node and
the expression should return an XMLList with zero length.  Very interesting.

 

Tracy Spratt,

Lariat Services, development services available

  _____  

From: flexcod...@yahoogro ups.com [mailto:flexcoders@ yahoogroups. com] On
Behalf Of jaywood58
Sent: Thursday, August 13, 2009 12:48 PM
To: flexcod...@yahoogro ups.com
Subject: [flexcoders] Re: *** So you think you know ActionScript? (Read
original post first) ***

 

  

--- In flexcod...@yahoogro ups.com, "Tracy Spratt" < tracy @...> wrote:
>
> _____ 
> 
> From: flexcod...@yahoogro ups.com [mailto:flexcod...@yahoogro ups.com] On
> Behalf Of Paul Andrews
> Sent: Wednesday, August 12, 2009 9:33 PM
> To: flexcod...@yahoogro ups.com
> Subject: Re: [flexcoders] *** So you think you know ActionScript? (Read
> original post first) ***
> 
> 
> 
> 
> 
> Dave Glasser wrote:
> > Consider this code snippet:
> >
> > var xml:XML = <outer><inner> null</inner> </outer>;
> > var xmlList:XMLList = xml.inner;
> > trace(xmlList == null);
> >
> > What does the trace statement output, true or false, and why?
> >
> > Please provide an answer without running the code (of course) and,
better
> yet, without consulting any documentation, or any of the other answers
that
> may have been posted already (if you read the list in chronological
order.)
> Pretend it's a job interview question and you have to give it your best
shot
> off the top of your head.
> >
> > And also, if you don't mind, don't top-post your answer, so that if
> someone does read your answer before the original post, they might get a
> chance to answer without having seen yours first.
> > 
> 
> xmlList is set to point at somthing which isn't a list, so I think the 
> trace statement will not be reached. That's my 02:31AM thought..
> 
> 
> 
> All e4x expressions return an XMLList. It can be empty but is never a
null.
> Besides, the characters. "null" in a text node are just a string. "null"
in
> an AS comparison is a special value. The trace will display false.
> Trace("xmllist. text() =="null" ); //would return true.
> 
> 
> 
> Tracy Spratt,
> 
> Lariat Services, development services available
>

Like Tracy , I thought it would return false, for the same reason -- that
<inner>null< /inner> would be interpreted as a string. Was surprised when I
ran the code and saw true. What's going on? It seems like the AS decoder
recognizes "null" as a special case. 



Reply via email to