An array destructing specification choice

Allen Wirfs-Brock allen at wirfs-brock.com
Mon Nov 7 09:42:14 PST 2011


On Nov 7, 2011, at 9:32 AM, Axel Rauschmayer wrote:

> How about:
> 
> let {length} = "abc";

or
   let [first,second] = "abc";


> 
> I think the conversion keeps the illusion alive that every value in JS is an object.
> 
> On Nov 7, 2011, at 18:21 , Andreas Rossberg wrote:
> 
>> On 7 November 2011 17:34, Allen Wirfs-Brock <allen at wirfs-brock.com> wrote:
>>>>  It is just another way to
>>>> silently inject an `undefined' that is tedious to track down.  We
>>>> already have too many of those...
>>> 
>>> It is how the language currently behaves in all situations where an object is needed but a primitive values is provided.
>>>  We want consistency in language design, not a hodgepodge of special cases and different rules.
>> 
>> Hm, I don't quite buy that. There are plenty of places in ES today
>> where we don't convert but throw, e.g. "in", "instanceof", various
>> methods of Object, etc.  Destructuring arguably is closely related to
>> operators like "in".  Implicit conversion would violate the principle
>> of least surprise for either, IMHO.
>> 
>> I agree that consistency is a nice goal, but it seems like that train
>> is long gone for ES. Also, if consistency implies proliferating an
>> existing design mistake then I'm not sure it should have the highest
>> priority.
>> 
>> 
>>>> When would this ever be useful behaviour instead of just obfuscating bugs?
>>> 
>>> let {toFixed, toExponential} = 42;
>> 
>> OK, I guess "useful" is a flexible term. Would you recommend using
>> that style as a feature?
>> 
>> /Andreas
>> _______________________________________________
>> es-discuss mailing list
>> es-discuss at mozilla.org
>> https://mail.mozilla.org/listinfo/es-discuss
>> 
> 
> -- 
> Dr. Axel Rauschmayer
> axel at rauschma.de
> 
> home: rauschma.de
> twitter: twitter.com/rauschma
> blog: 2ality.com
> 
> 
> 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20111107/92dbbc1b/attachment-0001.html>


More information about the es-discuss mailing list