Что означает $ function в vanilla (без библиотек) JS?
Мне было интересно, что означает функция $ sign.
Это просто ярлык document.querySelector
или у него больше применений.
Я пошел о: пустая страница и набрал в консоли $.
Результат в Firefox был:
function()
и в Chrome:
$(селектор, [startNode]) { [API командной строки] }
Это работает как ярлык document.querySelector()
но я не уверен, как это называется и что поддерживает браузер для этого.
Также есть функция $$, которая работает как document.querySelectorAll()
,
$_
который хранит последний результат функции $ / $$,
$0
это просто ссылка на document.body
(Я думаю)
а также $x
я предполагаю, что это запрос XPath из-за аргумента xpath:
x $x(xpath, [startNode]) { [API командной строки] }
(вывод хрома при наборе текста $x
в консоли)
2 ответа
Как следует из сообщения "[Command Line API]", это удобная функция, встроенная в браузер, а не часть ванильного JavaScript.
Для Chrome, например:
API консольных утилит содержит набор удобных функций для выполнения общих задач: выбор и проверка элементов DOM, отображение данных в удобочитаемом формате, остановка и запуск профилировщика, а также мониторинг событий DOM. https://developers.google.com/web/tools/chrome-devtools/console/utilities
Safari и Firefox поддерживают тот же набор функций, что и Chrome; Я считаю (но не уверен), что это на основе консенсуса, а не фактического стандарта.
Эти функции будут работать только в консоли разработчика; они не могут быть использованы в другом месте.
console.log($) // will throw "ReferenceError: Can't find variable: $"
$
Сам символ не имеет особого значения в javascript и может использоваться как любой другой символ:
var $ = "hello"
var a$b = "world"
console.log($, a$b)
$ = function() {console.log("This will confuse jQuery users, probably not a great idea")}
$()
Вы нашли нестандартизированные идентификаторы, встроенные в инструменты разработчика каждого браузера. Они не являются частью ванильного JS.
Обратите внимание, что вы не можете использовать эти помощники в обычном сценарии. В зависимости от используемых библиотек или контекста написания этих идентификаторов они могут иметь совершенно другое значение по сравнению со встроенными помощниками, поскольку их можно произвольно назначать там.