The ClojureScript data structures
ClojureScript shares all of Clojure's basic scalar types, but due to the difference in runtime platform, it relies on different underlying mechanics for implementation. Let's begin by quickly reviewing the basic language types first.
Scalar types
As with Clojure, scalars in ClojureScript are directly linked to the host platform. In this case, this means that ClojureScript scalars are just basic JavaScript types.
Numbers
ClojureScript numbers are nothing but JavaScript numbers. Type at your REPL the following:
cljs.user> (type 3) ;; => #object[Number "function Number() { [native code] }"]
Unlike Clojure, this is true for all numeric types, whereas Java breaks numeric types into different types like Bigint, Integer, Float and Double, and all numeric types in ClojureScript are just JavaScript numbers:
cljs.user> (type 1.1) ;; => #object[Number "function Number() { [native code] }"] cljs.user> (type 5729348720938479023874928374982734982735982374928734928735982...