Что такое знак доллара в Javascript, если не jQuery



Я сделал некоторые javascript / jQuery программирования несколько лет назад, и я только начал снова. Тогда знак доллара использовался для всех функций jQuery, и если библиотека jQuery не была импортирована, знак доллара не был определен.



сегодня я запустил Firefox, в совершенно пустом html-файле без библиотек javascript, и все же знак доллара указывает на что-то. Если я открою консоль Firefox и наберу '$' Я "function()".



1) это правильно, что знак доллара не был назначен, несколько лет назад, или я ошиблась?



2) Что такое знак, если не jQuery?

867   6  

6 ответов:

1) верно ли, что знак доллара не был назначен, несколько лет назад, или я ошиблась?

это правильно и по-прежнему верно.

2) Что такое знак доллара, если не jQuery?

Firefox и Chrome реализовать $,$$ и несколько других в качестве вспомогательных команд. Оба установят $$ to document.querySelectorAll() и set $ до document.querySelector если window.$ не было определенный.

Итак, то, что вы видите, на самом деле не стандартный JavaScript, а помощник в консоли разработчика Вашего браузера. Это также не jQuery (если вы не находитесь на странице, используя jQuery). Однако, это поведение близко к одному из jQuery, в связи с этим querySelector (для одиночных игр) и querySelectorAll (для нескольких матчей) дает вам почти такую же силу, как селектор jQuery.

это ничего не значит для переводчика как подчеркивание

из спецификации ECMAScript:

знак доллара ( $ ) и подчеркивание ( _ ) разрешены в любом месте идентификатор. Знак доллара предназначен для использования только в механически сгенерированный код.

вы также можете проверить JavaScript знак доллара ( $ ) - для чего он нужен?

по соглашению, знак доллара ($), подчеркивание (_) и даже некоторые Символ ASCII разрешается использовать в любом месте JavaScript идентификатор (источник: ECMA Script documentation (7.6 Identifiers, ECMA-262, 3-е изд.)знак доллара предназначен для использования только в механически сгенерированный код. это означает, что мы не хотим использовать знак доллара ( $ ) в наших именах indentifier, если мы не пишем a рамки. Ниже приведен список разрешенных символов, которые могут быть используется в любом месте идентификатора имя:

IdentifierName ::
IdentifierStart
IdentifierName IdentifierPart
IdentifierStart ::
UnicodeLetter
$
_
UnicodeEscapeSequence
IdentifierPart ::
IdentifierStart
UnicodeCombiningMark
UnicodeDigit
UnicodeConnectorPunctuation
UnicodeEscapeSequence

EDIT: -

На самом деле функция знака доллара стала более или менее де-факто ярлыком для document.getElementById().

для подтверждения моей точки проверки этой:

$(селектор)

возвращает один элемент, соответствующий заданному селектору CSS. в старом Поджигатель версии, это было равносильно документ.getElementById.

Dollar sign($) не был назначен, но некоторые браузер добавлять функции для специального использования.

, как Google Chrome, Если вы типа $ на консоли он вернет :

function $(selector, [startNode]) { [Command Line API] }

эта функция назначена для Google Chrome Developer Tool, и пусть отладка проще.

если ты типа $('div'), он вернет что-то вроде этого:

e.fn.e.init[178]

и включают в себя все div DOM объект в нем.

кстати, после того, как вы нажмете правую кнопку на мышь, чтобы выбрать элемент, вы можете acceess угловой.область js по типу $scope консоль

отметим, что $$ не совсем document.querySelectorAll, потому что в отличие от этой функции он не возвращает a NodeList:

document.body.querySelectorAll('p') instanceof NodeList 
true

$$('p') instanceof NodeList
false

Array.isArray($$('p'))
true

так $$(selector) на самом деле больше похоже Array.from(document.querySelectorAll(selector)). Это означает, что методы такие как .forEach и друзья доступны на $$, что на самом деле весьма полезно.

это может быть что угодно, как $ - это допустимое имя переменной, как и dollar.

С ECMAScript:

Identifier ::
IdentifierName but not ReservedWord

IdentifierName ::
IdentifierStart
IdentifierName IdentifierPart

IdentifierStart ::
UnicodeLetter
$
_ 
\ UnicodeEscapeSequence

самое простое решение, чтобы увидеть, что это такое и где оно определено, вероятно, наберет $() и поставить точку останова на этой линии.

просто чтобы завершить другие ответы здесь, MooTools также использует $ как псевдоним к document.getElementById.

он проверяет, если $ берется и будет по умолчанию document.id.

Comments

    Ничего не найдено.