ClojureScript中单引号标识符和双引号之间有什么区别?

时间:2016-04-15 08:05:29

标签: string dom clojure element clojurescript

假设我有以下HTML文档元素并且加载了DOM:

<ul id='myUnorderedList' />

当我在Clojure中运行以下代码时

(def my-element (.getElementById js/document 'myUnorderedList'))

my-element的值为nil

但这有效:

(def my-element (.getElementById js/document "myUnorderedList"))

my-element的值为#object[HTMLUListElement [object HTMLUListElement]]

(def my-element (.getElementById js/document "myUnorderedList"))

我的问题是: ClojureScript中单引号标识符和双引号之间有什么区别?

1 个答案:

答案 0 :(得分:5)

在Clojure和ClojureScript中没有单引号标识符。要创建一个字符串,你必须使用双引号(不像在JavaScript中,你可以使用任何一个,只要开始和结束报价匹配)。

您使用'myUnorderedList'创建的内容是符号myUnorderedList',因为符号是使用前导单引号创建的。 您可以在此处阅读有关符号的更多信息:

http://clojure.org/reference/data_structures#Symbols