* Immutable data (you can get some of this in JS with Nolen's Mori http://swannodette.github.io/mori/)
* Better functional programming than Underscore (map :mykey some-objects)
* Great syntax: homoiconicity, thrush operator, first class set, regex, map, vector syntax
* Macros!
* Use of cool frameworks: Om, core.async
* Same language as back-end if using Clojure
It was quite frankly intimidating to get started with it all as an ex-Java/Obj-c/Python/JS dev but I could never go back.
I wish OReileys would issue an expanded version of their Intro ClojureScript book!
Get comfortable using Lein and editing your project.clj, then check out this plugin:
https://github.com/emezeske/lein-cljsbuild
It's a big investment but learning Lisp will repay you. There's tons of classic CS literature that you'll now be able to unlock and immutability really is the future, so it's good to start getting acquainted with it.
It would be great to get the AMAZING clojure-community ideas into the JS world.
I'd argue once you go beyond "small" things though switching to ClojureScript is preferable to duplicating large parts of its functionality in separate JS libs.
It has some of the core features
- immutable data - immutable vdom - global state atom, no hidden local state. - no manual DOM manipulation code (read or write). - a single top down flow of data from input to output - Events and Signals from FRP that can be manipulated using pure higher order functions.
etc.
As a bonus it's very modular, so if it doesn't fit your needs at least some subset of it will.