4 ms·
OP, this is the best answer to your question. Lots of other answers on this thread are either ignoring the part where you said you wanted to really master the l
by enumjorge 7y ago
OP, this is the best answer to your question. Lots of other answers on this thread are either ignoring the part where you said you wanted to really master the language and recommending introductory JS materials, or, bizarrely, telling you to learn something else instead.
I don’t think you can master a language in one go. It’s not how most people’s brains work. I think you do it in stages. Get yourself a good introductory JS resource. The eloquent javascript book others posted looks good although I haven’t read it myself. Then read You Don’t Know JS. And then study the spec. Almost by definition the spec is the only thing that can give you a perfect and complete understanding the language. But don’t start there as a complete beginner is not its intended audience.
Be sure to apply what you learn from each book by working on projects. Don’t just read the books. The material won’t stick that way.
- RodgerTheGreat 7y agoReading the spec will convey many useful details. If you truly want to master them, though, implement the spec and pass the conformance suite. If Fabrice Bellard can do it, in C, with no dependencies, you can do it in whatever language you're already comfortable with, using the standard library. It's simply a matter of sustained effort and focus over time.
- tlarkworthy 7y agoYes I discovered so much unexpected combinations of features after implementing a Java parser. Totally pointless for actually writing Java though, so I question the motivation here. Just coz something is permitted in the language doesn't mean you should. I bet the corners of JavaScript are deep. Mastering them is a party trick, rather than something practical.
- mras0 7y agoThis is a good idea, but I'd be selective about it. There's a lot of tedious and uninteresting (IMO) stuff in there, like https://tc39.es/ecma262/#sec-array.prototype.splice https://tc39.es/ecma262/#sec-array.prototype.splice or how unicode is handled in the source text. But looking into the details of how object prototypes and properties really work is essential for getting a good grasp of the language.