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'
,因为符号是用前导单引号创建的。
您可以在此处阅读有关符号的更多信息:
假设我有以下 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'
,因为符号是用前导单引号创建的。
您可以在此处阅读有关符号的更多信息: