ClojureScript 基本语法

 1 (ns example.hello) ; 命名空间
 2 
 3 (.log js/console "Hello from ClojureScript!") ; js为windows 
 4 (.log js/console "TestAuthor: snake")
 5 
 6 ; 变量
 7 (def foo "bar")
 8 (defn abc []
 9     (let [bar 1])
10     (.log js/console bar))
11 
12 (def ^:dynamic x 5) ;直接根目录绑定x
13 (binding [x 10]
14   (.log js/console x)) ; 执行时的函数区域内的x变量
15 (.log js/console x)
16 
17 ; 数组
18 (def aArray (array 1 2 3))
19 (.log js/console aArray)
20 ; 对象
21 (def o (js-obj "foo" 1 "bar" 2))
22 (.log js/console o)
23 
24 ; 列表 集合 向量 映射 都是是这样的形式 关键字替换或者字面量替换
25 (def l1 (list 4 5 6))
26 (def l2 '(7 9 8))
27 (.log js/console l1 l2)
28 
29 (def v [1 2 3 4 5 6])
30 (conj v 0)
31 (.log js/console v)
32 (.log js/console (nth v 0)) ; 提取序列第零个
33 
34 ; 可选参数
35 (defn foo [a b c] c)
36 (.log js/console (foo 1) (foo 1 2 3))
37 
38 ; 分发
39 (defn foo1
40     ([a] 1)
41     ([a b] 2)
42     ([a b c] 3))
43 (.log js/console (foo1 1) (foo1 "a" "b") (foo1 "a" 1 "b"))

直接上一点代码,个人感觉学会这些基本上可以开始写cljs了。
对于cljs的理解就是,用Clojure的语法来实现来应用到js里面。可以配合很多。比如说我经常使用的前端框架组合:SeaJS+Backbone+Underscore+jQuery+Knockout,还包括一点语法糖:CoffeeScirpt。这次包含cljs,想必肯定会令前端工程更加有力量。
cljs的特点应该是Clojure赋予它的语法,遍历啊,数据结构啊,当然了,思想上是更可靠的。

有一点需要具备的,我感觉,如果不是很js的话,感觉会被绕晕,而不知道自己在写什么东西。不知道cljs学的人会不会很多。毕竟很多人觉得脱裤子放屁。个人觉得真心可以使用。而且甚至可以脱离Clojure,想CoffeeScript那样来使用。因为使用了clojure就是在内部实现了一套SeaJS框架。种种好处是越写越感觉到。当然了。虽然是函数式风格,cljs还是对OO做了一点兼容,虽然是一点,但是比js内部支持的还要强大。

转载于:https://www.cnblogs.com/snakevash/archive/2013/04/07/3003920.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值