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.
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.
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...