2016-04-15 2 views
2

Предположим, у меня есть следующий элемент HTML документ и DOM загружен:В чем разница между идентификаторами одиночной кавычки и двойной кавычкой в ​​ClojureScript?

<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?

ответ

5

В Clojure и ClojureScript нет таких идентификаторов одиночной кавычки. Чтобы создать строку, вы ДОЛЖНЫ использовать двойные кавычки (в отличие от, например, в JavaScript, где вы можете использовать либо, если совпадают кавычки открытия и закрытия).

То, что вы создали с 'myUnorderedList', является символом myUnorderedList', так как символы создаются с помощью одной отдельной кавычки. Подробнее о символах можно здесь:

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