While some argue that there is more readable code with Bloomberg's OCaml.js, I like Scala.js because of Scala itself, which is
1) Very well designed 2) Lots of "functional" constructs in accompanying libraries 3) Good typechecking 4) Fun language to use.
and because Scala.js interop with JS is very seamless.
Do check out ScalablyTyped repo on Github, a Scala.js analogue of DefinitelyTyped.
Being typed- one of the best things I like about Scala is that I can do something like this (provided by a couple of frameworks- Laminar, Scalatags et al)
<pre> div( Seq( div( "div 1" ) ), div( "div 2" ), b( "bold stuff", i( "italic inside bold" ) ) ) </pre>
No more mismatching tags, wrongly spelled tags, unclosed tags. Typechecked HTML in some sense.
This would also be a good place to mention some alternatives where a mainstream language can also compile to JS so hopefully people can comment with their experience:
1) F#- Fable 2) OCaml- Bloomberg's BuckleScript 3) Go- Gopher 4) Haskell- GHCJS
Other non-mainstream but compile-to-JS languages
1) PureScript 2) ELM 3) Clojure script (child comment)
... and of course... TypeScript! :)
It should be noted that while Scala.js isn't as popular as some of it's alternatives in "popular" programmer culture, the author is very focussed on correctness and I don't know of anybody who has ever used Scala.js for a project but dropped it. (Happy to be corrected)