![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
I mean, it's not DIFFICULT to use or anything, but it's so awkward. It's . . . inelegant. Things that should be analogous use different syntax, for no apparent reason. The equality operator is "===".
It's like it was designed by independent people at different times who weren't in consultation with each other, and then bodged together at the last minute. I swear, the thing looks like it was designed by, I dunno, MBAs or something. Or maybe planaria. Or maybe even flatworms with MBAs.
It's like it was designed by independent people at different times who weren't in consultation with each other, and then bodged together at the last minute. I swear, the thing looks like it was designed by, I dunno, MBAs or something. Or maybe planaria. Or maybe even flatworms with MBAs.
(no subject)
Date: 2012-02-08 01:33 am (UTC)(no subject)
Date: 2012-02-08 01:33 am (UTC)(no subject)
Date: 2012-02-08 03:55 pm (UTC)(no subject)
Date: 2012-02-09 12:01 am (UTC)(no subject)
Date: 2012-02-08 02:28 am (UTC)(no subject)
Date: 2012-02-08 09:15 am (UTC)A large part of Javascript's problems result from the fact that it was designed to do very small things and then evolved into larger things later. And more importantly it was pushed out the door of Mozilla way too soon. Most languages have a period of a few years where the rough edges get filled off, javascript didn't.
As for the equality operator, there are two == and === the problem is that == does some very strange type conversions and can lead to all sorts of strange results in some corner cases.
(no subject)
Date: 2012-02-08 09:17 am (UTC)(no subject)
Date: 2012-03-02 10:49 pm (UTC)And another recommendation here for Crockford's Javascript: The Good Parts. Crockford is really brilliant in general. He also has a website with several essays about JS worth reading.
(no subject)
Date: 2012-03-03 02:15 am (UTC)(no subject)
Date: 2012-03-04 12:49 am (UTC)(And there are actually two equality operators in JS, btw: you can use '==', but it does type coercion, as someone else mentioned. The reason to use '===' is that it doesn't coerce types, so it's a lot safer.)
You're also not WRONG about it being a language designed by committee, mind. There's some really STUPID shit in JS, precisely because of that. But it is also true that on its own merits, it has a lot of really marvelous stuff. I am in particular deeply in love with prototypal inheritance, because it makes SENSE to me in a way that "classical" inheritance never really has.