Что означает $ 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.

Обратите внимание, что вы не можете использовать эти помощники в обычном сценарии. В зависимости от используемых библиотек или контекста написания этих идентификаторов они могут иметь совершенно другое значение по сравнению со встроенными помощниками, поскольку их можно произвольно назначать там.

Другие вопросы по тегам