Operators ||= and &&=

Edward Lee edilee at mozilla.com
Wed May 6 13:24:37 PDT 2009


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.

Ed


More information about the es-discuss mailing list