string – 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

转载注明原文:string – ClojureScript中单引号标识符和双引号之间有什么区别? - 代码日志