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

haw*_*eye 3 string dom element clojure clojurescript

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

<ul id='myUnorderedList' />
Run Code Online (Sandbox Code Playgroud)

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

(def my-element (.getElementById js/document 'myUnorderedList'))
Run Code Online (Sandbox Code Playgroud)

价值my-elementnil.

但这有效:

(def my-element (.getElementById js/document "myUnorderedList"))
Run Code Online (Sandbox Code Playgroud)

my-element具有值#object[HTMLUListElement [object HTMLUListElement]].

(def my-element (.getElementById js/document "myUnorderedList"))
Run Code Online (Sandbox Code Playgroud)

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

Mic*_*oli 5

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

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

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