Destructuring assignment

David-Sarah Hopwood david.hopwood at
Thu Aug 21 20:23:37 PDT 2008

Brendan Eich wrote:
> On Aug 21, 2008, at 6:47 PM, Mark S. Miller wrote:
>> On Thu, Aug 21, 2008 at 6:34 PM, Brendan Eich <brendan at>  
>> wrote:
>>> js> [d,e,f] = foo()
>>> 1,2,3
>> Is this a simultaneous assignment of d,e,f, or does it declare  
>> variables d,e,f?
> The first.
>> If the first, can you do a swap as
>>     [d, e] = [e, d]
> Sure can (variable values as in previous mail): [...]

So the rule is that the RHS is evaluated, and then the assignments are
done left-to-right, correct? And each array element (or property value
in the case of an object literal) on the left is syntactically a

(Sounds fine, I just want to confirm my understanding.)

David-Sarah Hopwood

More information about the Es-discuss mailing list