For the "What" part, I'd like to suggest this posts since immutable.js is almost same as persistent data structure in Clojure, which is well described: en.wikipedia.org/wiki/Persistent_data_structure hypirion.com/musings/understanding-persistent-vec…
Why should use? Well it's not necessary to use immutable.js . It's useful to build a uni-directional data-flow and make React components diffing faster. In JavaScript, a language designed with mutation at heart, using persistent data structure is not a perfect choice. If you are just learning, I would suggest ClojureScript. But if you are building large apps with React, immutable.js is a nice-to-have.