>const [variable = defaultValue] = [maybeUndefinedValue] This would fail throw for variables you don't know exist i.e in the following example polyfill will throw if Symbol doesn't exist.
const [Symbol = SymbolPolyfill] = [Symbol] This is specifically why convention is to use: typeof maybeUndefinedValue === 'undefined' >const fn = ({ key = defaultValue }) => { console.log(key); } The second example doesn't assign the key prop to the passed object. On Sat, Jan 12, 2019 at 5:54 PM Rob Ede <robjt...@icloud.com> wrote: > pretty succinct with existing de-structuring syntax: > > ``` > const [variable = defaultValue] = [maybeUndefinedValue] > > const fn = ({ key = defaultValue }) => { console.log(key); } > ``` > > On 11 Jan 2019, at 12:00, es-discuss-requ...@mozilla.org wrote: > > Send es-discuss mailing list submissions to > es-discuss@mozilla.org > > To subscribe or unsubscribe via the World Wide Web, visit > https://mail.mozilla.org/listinfo/es-discuss > or, via email, send a message with subject or body 'help' to > es-discuss-requ...@mozilla.org > > You can reach the person managing the list at > es-discuss-ow...@mozilla.org > > When replying, please edit your Subject line so it is more specific > than "Re: Contents of es-discuss digest..." > Today's Topics: > > 1. Syntax operator for "default assignment if value doesn't > exits" (Sultan) > > *From: *Sultan <thysul...@gmail.com> > *Subject: **Syntax operator for "default assignment if value doesn't > exits"* > *Date: *11 January 2019 at 10:52:12 GMT > *To: *es-discuss <es-discuss@mozilla.org> > > > An operator syntax for the the "typeof" pattern used to detect if a > environment/object has a value: > > if (typeof variable === 'undefined') {...} > if (typeof object.key === 'undefined') {...} > > This could manifest in destructuring as the following > > var fn = ({ key ||= 1 }) => { > } > > And with variables as: > > var global ||= {} > > Equivalent code: > > (arg) => { > if (typeof arg.key === 'undefined') { > arg.key = 1 > } > } > > if (typeof global === 'undefined') { > var global = {} > } > > > > > _______________________________________________ > es-discuss mailing list > es-discuss@mozilla.org > https://mail.mozilla.org/listinfo/es-discuss > > >
_______________________________________________ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss