The bottom line with all of these languages (Dart, CoffeeScript, TypeScript, etc.) is Javascript. If you don't understand JS (what it does right, what it does dangerously wrong), then you don't understand the need for any of these other language offshoots that are being suggested and you probably shouldn't be adding another layer of abstraction.
As a general rule, layers of abstraction just make the really dangerous mistakes more obfuscated and less apparent because the programmer who's been living in that walled garden is unaware of the dangers that lurk at lower levels. There are a lot of people who think that memory leaks aren't possible in Java (but... garbage collection?!?), which is downright hilarious.
The initial question was from someone working their way through a CodeAcademy tutorial. So, OP... Please. Ignore the distractions above. Finish the tutorial. Ruminate. Then read Javascript: The Good Parts by Douglas Crockford. Ruminate a whole lot more. Try a few projects. If you're really finding curly braces and variable hoisting to be too much to handle, then you can think carefully about adding some sugar to your Javascript, but that's probably a dangerous indication that you're uncomfortable with other aspects like prototypes and functions as first class citizens.
At the end of the day, though, everything listed above is still Javascript, and if the inherent issues in JS are too much to overcome, you might need to approach things from another paradigm.