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

Reply via email to