Wpis z mikrobloga

Hej, może mi ktoś wyjaśnić o co chodzi z dodawaniem do nazw zmiennych w JS znaku $? Na przykład:

let $addBtn = document.querySelector("button");

Gdzieś przeczytałem (chociaż może złe info, nie wiem), że tak naprawdę nie ma to żadnego celu, tylko że znak dolara to po prostu jeden ze znaków, które możemy używać w zmiennych (równie dobrze podobno zmienna może nazywać się $$$$).
Z kolei inni piszą, że kryje się za tym jakaś konwencja nazewnicza i jest w tym jakiś cel, tak jak np nazwy klas piszę się z dużej litery, żeby było wiadome, że chodzi o klasę.

To jak to w końcu jest?

#javascript #webdev #programowanie #naukaprogramowania
  • 10
@Phatee: Właśnie kiedyś coś liznąłem jQuery i pamiętam, że tam się pojawiał ten znak dolara jako tzw "obiekt jQuery" (nie wiem czy coś pokręciłem), ale mi tutaj chodzi o czystego JS.
@maciorqa: Dodam, że w Javie się używa $ w generowanym kodzie, znam również nomenklatury gdzie dolara się dodawało na końcu w js/ts dla obiektów observable np. const observable$ = ...

Ale konwencje są różne, tak czy siak $ jest legalnym znakiem dla zmiennych :)
@maciorqa: kiedyś była taka konwencja że zmienne przechowujące referencje do obiektów jQuery zaczynały się od $. Ale generalnie od kiedy jQuery straciło na popularności coraz żadziej spotykam się z taką konwencją.

Z drugiej strony jest też konwencja dodawania $ na końcu zmiennej jeśli dotyczy streamu (RxJS).
@maciorqa: chociaż jak się tak zastanawiam, to chyba ta jQuerowa konwencja trochę przeszła na zmienne referujące do elementów DOMa. Ale to też nie jest zaden wyznacznik dobrych praktyk ( ͡° ͜ʖ ͡°)
@arktosk: Wiem, że w jQ używa się tego dolara, ale mi chodziło o czysty JS. Czy ten dolar musi być w pewnych przypadkach, bo do czegoś jest to potrzebne i wymaga tego standard języka, albo jest jakąś przyjęta konwencją nazewniczą.
Czy ten dolar musi być w pewnych przypadkach, bo do czegoś jest to potrzebne i wymaga tego standard języka


@maciorqa: Nie musi, do niczego nie jest potrzebne i język tego nie wymaga. Żadnej świętej konwencji tu też nie ma.