4 ms·
It's the inconsistency. 1 + "2" (12) does a string concatenation. 1 - "2" (-1) does math. That said, whilst JS is loosely typed and won't fall over when you d
by michaelmartin 12y ago
It's the inconsistency.
1 + "2" (12) does a string concatenation.
1 - "2" (-1) does math.
That said, whilst JS is loosely typed and won't fall over when you do this, I'd just see it as bad form to find code mixing types to this extent. Just because the language will let you do it, doesn't mean you should actually do it!
- timepiece 12y agoI always hear this complaint from classical inheritance people, are you a C/Java supremacist?
- Retra 12y agoHave you heard of this language called "Mathematics?"
- TazeTSchnitzel 12y agoTo be fair, the + issue is a mistake many other languages have made too. Incredibly, PHP, poster child of bad languages, gets this right and splits + and . (though this may just be because it copied Perl).
- Nitramp 12y agoIt's fine to have a (string) + (string) operator, it's just generally a less than brilliant idea to have a (string) + (arbitrary) operator that does an implicit string conversion. But all of that's fine compared to PHP's implicit number conversion that ignores trailing characters, presumably so that you can add "3 onions" to "1 kg of bacon" or some such...
- TazeTSchnitzel 12y ago(string) + (string) isn't fine either, if only for performance reasons and because an operator should just do one thing.