Kilka lat temu zrobiłem trochę programowania w javascript / jQuery i dopiero co zacząłem ponownie. Wtedy znak dolara był używany do wszystkich funkcji jQuery, a jeśli nie zaimportowano żadnej biblioteki jQuery, znak dolara nie był zdefiniowany.
Dzisiaj uruchomiłem Firefoksa w całkowicie pustym pliku html bez bibliotek javascript, a mimo to znak dolara na coś wskazuje. Jeśli otworzę konsolę Firefox i wpiszę „$” , otrzymam "function()"
.
1) Czy to prawda, że kilka lat temu nie przypisano znaku dolara, czy źle pamiętam?
2) Jaki jest znak dolara , jeśli nie jQuery?
źródło
$.fn.jquery
$
nie użyto dosłownego szablonu .To nic nie znaczy dla tłumacza, tak jak podkreślenie
Ze specyfikacji ECMAScript:
Możesz również sprawdzić JavaScript Dollar Sign ($) - do czego służy?
IdentifierName :: IdentifierStart IdentifierName IdentifierPart IdentifierStart :: UnicodeLetter $ _ UnicodeEscapeSequence IdentifierPart :: IdentifierStart UnicodeCombiningMark UnicodeDigit UnicodeConnectorPunctuation UnicodeEscapeSequence
EDYTOWAĆ:-
W rzeczywistości funkcja znaku dolara stała się mniej więcej de facto skrótem do
document.getElementById()
.Aby potwierdzić mój punkt widzenia, sprawdź to :
źródło
Dollar sign($)
nie został przypisany, ale funkcja dodawania przeglądarki do specjalnego użytku.Podobnie jak Google Chrome, jeśli wpiszesz
$
na konsoli, zwróci:function $(selector, [startNode]) { [Command Line API] }
Ta funkcja została przypisana do narzędzia Google Chrome Developer Tool i umożliwia łatwiejsze debugowanie.
jeśli wpiszesz
$('div')
, zwróci coś takiego:e.fn.e.init[178]
i
div
dołącz do niego każdy obiekt DOM.BTW, po kliknięciu prawym przyciskiem myszy w celu wybrania elementu, można uzyskać dostęp do zakresu angular.js według typu
$scope
na konsoliźródło
Zauważ, że
$$
nie jest to całkiem niezłedocument.querySelectorAll
, ponieważ w przeciwieństwie do tej funkcji nie zwracaNodeList
:document.querySelectorAll("p") instanceof NodeList // true $$("p") instanceof NodeList // false Array.isArray($$("p")) // true
Więc
$$(selector)
jest bardziej jakArray.from(document.querySelectorAll(selector))
. Oznacza to, że metody tablicowe, takie jakmap
i friends, nie tylkoforEach
, są dostępne, gdy używasz,$$
co jest całkiem przydatne.źródło
Może to być cokolwiek, tak jak
$
prawidłowa nazwa zmiennej, tak jakdollar
.Z ECMAScript :
Identifier :: IdentifierName but not ReservedWord IdentifierName :: IdentifierStart IdentifierName IdentifierPart IdentifierStart :: UnicodeLetter $ _ \ UnicodeEscapeSequence
Najprostszym rozwiązaniem, aby zobaczyć, co to jest i gdzie jest zdefiniowane, prawdopodobnie byłoby wpisanie
$()
i umieszczenie punktu przerwania w tej linii.źródło
Aby uzupełnić inne odpowiedzi tutaj, MooTools używa również
$
jako aliasu dodocument.getElementById
.Sprawdza, czy plik
$
jest zajęty, a następnie domyślniedocument.id
.źródło