You didn't get warnings when mixing undefined with Number or String?
Maybe you should...

-Alex

On 6/24/17, 1:11 PM, "Harbs" <harbs.li...@gmail.com> wrote:

>Here’s a possible counter-argument to what I just wrote:
>
>undefined can be a functional change to ActionScript code when adding to
>numbers and strings:
>
>var obj:Foo;
>trace(1 + undefined); NaN
>trace("hello " + undefined); //hello undefined
>trace(1 + obj); //1
>trace("hello " + obj); //hello null
>trace(1 + null); //1
>trace("hello " + null); //hello null
>
>
>However, I'm actually not sure that initializing Numbers is necessary.
>Leaving it as undefined is generally functionally equivalent to NaN:
>
>isNaN(undefined) //true
>isNaN(null) //false
>
>But initializing ints to null will generally get the same result as
>initializing them to 0…
>
>
>> On Jun 24, 2017, at 10:35 PM, Harbs <harbs.li...@gmail.com> wrote:
>> 
>> I have never seen real world ActionScript code which uses strict
>>equality for null.
>> 
>> The argument to use strict equality “because of modern js advice” is
>>not a reason to use it in ActionScript. The whole argument is to avoid
>>unexpected type conversions. If you are dealing with typed variables,
>>that is generally not an issue.
>> 
>> Justin raised a valid argument to initialize Booleans and Numbers. It
>>should not be taken any further than that.
>> 
>> Harbs
>> 
>>> On Jun 24, 2017, at 8:04 PM, Josh Tynjala <joshtynj...@gmail.com>
>>>wrote:
>>> 
>>> I'm +1 on changing to null by default on objects and strings. I know
>>>this
>>> will improve compatibility with real world ActionScript code that
>>>expects
>>> null. We can include these in the compiler option to default back to
>>> undefined, for anyone that prefers that behavior.
>>> 
>>> - Josh
>>> 
>>> On Jun 23, 2017 7:45 PM, "Justin Mclean" <jus...@classsoftware.com>
>>>wrote:
>>> 
>>>> Hi,
>>>> 
>>>>> Your link is actually arguing for use for non-strict equality…
>>>> 
>>>> I suggest you read the content at the link again [1] perhaps you
>>>>missed
>>>> the humour there.
>>>> 
>>>> So given you don’t want to use strict equality and inequality how do
>>>>you
>>>> want to handle this? Does everyone agree with that not using them
>>>>despite
>>>> just about all modern JS advice is to use them?
>>>> 
>>>> There is as alternative that will fix a lot of the performance issues
>>>>(but
>>>> not all) and that is to default Boolean, Numbers, Object and Strings
>>>>to a
>>>> sensible default rather than undefined. I’ve already done the work for
>>>> Boolean and Numbers as not initialising these can causes other bugs.
>>>>Are
>>>> you OK for Objects and Strings to default to null as well?
>>>> 
>>>> Re concerns re increased size it seem the closure compiler handles
>>>>this
>>>> well and there is little or no size difference in the optimised JS
>>>> produced. I’ve so far found it to be smaller by a fraction of a %.
>>>> 
>>>> I’ve also raised a JIRA re performance here. [2]
>>>> 
>>>> Thanks,
>>>> Justin
>>>> 
>>>> 1. 
>>>>https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fherrin
>>>>gtondarkholme.github.io%2F2016%2F11%2F05%2Fhow-to-&data=02%7C01%7C%7C78
>>>>012fa189ea484e9f9308d4bb3d48c4%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7
>>>>C0%7C636339319292058622&sdata=Rj1lR4JwWCFzBbvrD%2FSRxNBeUSNRmW%2Fv9ssKw
>>>>MvJb4w%3D&reserved=0
>>>> write-copy-paste-friendly-code/
>>>> 2. 
>>>>https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fissues
>>>>.apache.org%2Fjira%2Fbrowse%2FFLEX-35330&data=02%7C01%7C%7C78012fa189ea
>>>>484e9f9308d4bb3d48c4%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C63633
>>>>9319292058622&sdata=YOMgmXVxpAtMu0tJgKrJlW3rlxIP7xiHHbabYz7D3LU%3D&rese
>>>>rved=0
>> 
>

Reply via email to