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

4
假设我有以下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]],那么它是一个HTML无序列表元素。

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

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

1个回答

6
在Clojure和ClojureScript中不存在单引号标识符。要创建字符串,必须使用双引号(与JavaScript不同,在JavaScript中,只要开头和结尾的引号匹配,就可以使用任意一种引号)。
使用'myUnorderedList'创建的是符号myUnorderedList',因为符号是用前导单引号创建的。 您可以在此处阅读有关符号的更多信息:

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接