两年多前知道 cljs 的存在时十分兴奋,但因为工作中根本用不上,国内也没有专门的职位于是搁置了对其的探索。而近一两年来又刮起了函数式编程的风潮,恰逢有幸主理新项目的前端架构,于是引入 Ramda.js 来疗藉心中压抑已久的渴望,谁知一发不可收拾,于是抛弃所有利益的考虑,遵循内心,好好追逐 cljs 一番: D cljs 就是 ClojureScript 的缩写,就是让 Clojure 代码 transpile 为 JavaScript 代码然后运行在浏览器或其他 JSVM 上的技术。由于宿主环境的不同,因此只能与宿主环境无关的 Clojure 代码可以在 JVM 和 JSVM 间共享,并且 cljs 也未能完全实现 clj 中的所有语言特性,更何况由于 JSVM 是单线程因此根本就不需要 clj 中 STM 等特性呢…… transpile 为 JS 的函数式编程那么多 (如 Elm,PureScript),为什么偏要 cljs 呢?语法特别吧,有 geek 的感觉吧,随心就好:) 本文将快速介绍 cljs 的语言基础,大家可以直接通过 clojurescript.net 的 Web REPL 来练练手!