On May 6, 2009, at 11:07 AM, Peter Michaux wrote:
A lot of people don't understand JavaScript falsey value equality and
since || works in their server-side language they assume it works the
same way in JavaScript. It compiles and runs after all! ;-)
Compiling and running is often all that's ever needed -- so it ain't
"broke."
A small marketing campaign to encourage the ?: version above might
change what people use.
I doubt that. No budget, or even: no developer on scene still. For new
code, maybe, but you will hear from many devs who do not want to be
pedantic and use === and ?:. They will argue they know what they're
doing, the code works even for falsy values which are never passed and
covered by tests, and so on. Again, it ain't broke.
I think I was unclear. Optional parameters are definitely useful. It
is the following idiom's verbosity that is the nuisance (to be
possibly alleviated by a new operator.)
optionalParam = optionalParam || defaultValue;
Gotcha -- still it beats an if statement. The operator precedent from
Ruby (Ruby's ||= is a bit different as discussed in the past) looms
over this thread, though, so let's try to deal with it:
I don't think ||= and ??= are very difficult to define clearly.
Perhaps just a line each in terms of the expanded syntax. I don't
think they would add much bloat to engines. Perhaps just better to add
them both and move on to discussing classes, lambdas, or processes.
I think it's better to leave both out, or add only one, than to add
both. Otherwise too much is added, and we can't easily take anything
out.
In this I think TC39 is agreed, and I'm shoulder to shoulder with Doug
and Mark on this point. I may differ on wanting to add things they
don't see the need for, but I do not want to add "both" or
"everything" just to cater to divergent opinions about how to provide
something like default parameter values.
Current position: long default parameter values, short ||= and ??=.
Only if the actual parameter is absent.
Well that is more useful than the ||= or ??= idioms at the top of the
function body anyway. Someone passing the value "undefined" to a
function causes problems for the idioms.
Indeed!
/be
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss