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

What is the difference between single quote identifiers and double-quote in 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 中的单引号标识符和双引号标识符有什么区别?

Clojure 和 ClojureScript 中没有单引号标识符这样的东西。要创建一个字符串,您必须使用双引号(与 JavaScript 中的示例不同,只要开始和结束引号匹配,您可以使用其中任何一种)。

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

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