Operators ||= and &&=
Peter Michaux
petermichaux at gmail.com
Wed May 6 13:34:32 PDT 2009
On Wed, May 6, 2009 at 1:24 PM, Edward Lee <edilee at mozilla.com> wrote:
> On Tue, May 5, 2009 at 1:37 PM, Peter Michaux <petermichaux at gmail.com> wrote:
>> I think optional parameters are the nuisance use case that is fueling
>> any discussion about a ||= or ??= operator.
> There are other uses that are similar, but wouldn't be covered by
> default args. Here's one simple example:
>
> let (hash = {}) function get(key) hash[key] ??= 123
>
> Similarly, if APIs use a single object to take optional args instead
> of using function args:
>
> // args is a hash with optional keys "str" and "val"
> function foo(args) {
> args.str ??= "bar";
> args.val ??= 10;
> typeof_check(args, { str: "string", val: "number" })
> }
>
> So even if there's a better solution for default args than ||= or ??=,
> there's still use for the operators.
I was trying to mention these cases but the examples make it more
clear. I think that there are still use cases for ||= and ??= but the
default args is the most common use case. If the main use case is
taken care of with default args then is it necessary to add ||= and
??= for less common use cases?
Peter
More information about the es-discuss
mailing list