New Assignment Operators (Not bit-wise OR)

even stensberg evenstensberg at gmail.com
Sun Apr 17 13:21:16 UTC 2016


I've seen a lot of code using an extra type to have as a fallback. This to
me seems like not a very good way of putting use of the logical OR. Here's
an example:

`var itemList = itemList || 'something went extremely wrong'`


This is a really hacky way of doing things. I don't think you should assign
your variable to a default by doing this.


Been back and forth by this "issue" with some of the ReactJS members at
GitHub, and while saying this is a "stylus" thing, I disagree. It is more
about not reiterating your code.

Options could be:

-tenaries - long & !clean codelines
-default params (ES) , though it won't be a general use case

There is already a lot of assignment, string and so on operators, but I
don't really seem any of them touch this, except maybe the bit-wise OR
assignment Operator. To read more about that, check these two links out:

https://msdn.microsoft.com/en-us/library/81bads72(v=vs.94).aspx
http://web.eecs.umich.edu/~bartlett/jsops.html
http://stackoverflow.com/a/14871137/5893008

And that is really not the use case here. We don't want a bit-wise, we want
a logical OR.

So here is what I come up with. It's not rocket science but ... nah, it's
pretty straight forward..

`var listItem || = 'I love open source!'`


For me, this is one thousand times more clean and it makes sense.
JavaScript teaches us and wants us to use `+ =`,` - =` and any other type
of "abbreviation" , so this makes perfectly sense for me. Either I'm crazy,
but it seems like this should have been implemented a long time ago.
( Perhaps I'm both).

Implementation will be another issue, but let us discuss that too( just
keep in mind this is conceptional)


Without further ado, I leave this up to you to discuss, and hopefully a
champion to fetch up to the committee.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20160417/d0a3281c/attachment.html>


More information about the es-discuss mailing list