var el1,el2 = [1,2] why not?

Oliver Hunt oliver at apple.com
Wed Jul 4 15:44:10 PDT 2012


On Jul 4, 2012, at 10:31 AM, Hemanth H.M wrote:

> var a,b = 1; sets b to 1 and a is undefined, this is more C like semantics. 
> 
> Where as a,b = b,a is more pythonis; Well then a,b=[1,2] should make sense ? 

No, because all of these things have defined semantics.  Let's say you replace

var a,b=[1,2]
with
a,b=[1,2]

That is still valid today.  It evaluates as resolving "a" (which may or may not have side effects), and then assigning [1,2] to b.

There is definitely code that does this in the variable declaration syntax, and knowing the web, probably code that does it in the non-var case.  You can't use type checks either, because var a,b=c should not have different behaviour depending on the value of c.

It has to be a distinct syntax, which is what we have been developing -- see http://wiki.ecmascript.org/doku.php?id=harmony:destructuring -- but that takes time.  We have to resolve all of the potential issues in the syntax and semantics, then engines have to implement it.

--Oliver

> 
> /me also agrees to var[a,b] = foo; 
> 
> On Wed, Jul 4, 2012 at 10:47 PM, Oliver Hunt <oliver at apple.com> wrote:
> This doesn't do what you want as assignments in initialisers are optional.  This has the semantic effect of meaning that there is no difference between
> 
> var a, b = foo;
> 
> and
> 
> var a;
> var b = foo;
> 
> We're working on introducing destructuring assignment so you'll be able to do 
> 
> var [a, b] = foo;
> 
> which is what you want, but we're not quite there yet.
> 
> --Oliver
> 
> 
> On Jul 4, 2012, at 10:08 AM, Hemanth H.M wrote:
> 
>> Hello Hackers,
>> 
>> This might be silly, but let the code speak : 
>> 
>> var param1,param2 = window.location.search.replace('?','').split('&')
>> undefined
>> param1
>> undefined
>> param2
>> ["foo=bar", "hello=world"]
>> a=1
>> 1
>> b=2
>> 2
>> a,b=b,a
>> 1
>> a
>> 1
>> b
>> 2
>> 
>> Why not param1 be equal to "foo=bar" and param2 be equal to "hello=world"? 
>> 
>> 
>> -- 
>> 'I am what I am because of who we all are'
>> h3manth.com
>> -- Hemanth HM 
>> _______________________________________________
>> es-discuss mailing list
>> es-discuss at mozilla.org
>> https://mail.mozilla.org/listinfo/es-discuss
> 
> 
> 
> 
> -- 
> 'I am what I am because of who we all are'
> h3manth.com
> -- Hemanth HM 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20120704/fcd2fd50/attachment.html>


More information about the es-discuss mailing list