Kod, o którym mowa, znajduje się tutaj:
var $item = $(this).parent().parent().find('input');
Jaki jest cel znaku dolara w nazwie zmiennej, dlaczego nie po prostu go wykluczyć?
document.querySelector
idocument.querySelectorAll
Kod, o którym mowa, znajduje się tutaj:
var $item = $(this).parent().parent().find('input');
Jaki jest cel znaku dolara w nazwie zmiennej, dlaczego nie po prostu go wykluczyć?
document.querySelector
idocument.querySelectorAll
Odpowiedzi:
„$” W zmiennej oznacza dla interpretera nic specjalnego, podobnie jak podkreślenie.
Z tego, co widziałem, wiele osób używających jQuery (taki jest dla mnie twój przykładowy kod) ma tendencję do prefiksowania zmiennych zawierających obiekt jQuery za pomocą $, aby można je było łatwo zidentyfikować i nie pomieszać z, powiedzmy, liczbami całkowitymi .
Funkcja znaku dolara $()
w jQuery jest często używaną funkcją biblioteki, dlatego pożądana jest krótka nazwa.
var $=function(){}
jest bardzo podobne do robienia var a=function(){}
.
jQuery(document).ready(function($){
... Następnie $ jest używane wewnątrz implementacji funkcji.
$scope
$ jest jednym ze znaków o tej nazwie. Tak, jakbyś zdjął e
pod koniec $scope
, to nie zadziała, więc zabranie $
woli też nie zadziała. W przypadku, gdy widzisz coś takiego $( "a" ).addClass( "test" )
, znak dolara to cała nazwa tego, co to jest.
W twoim przykładzie $ nie ma specjalnego znaczenia poza byciem postacią nazwy.
Jednak w ECMAScript 6 (ES6) $ może reprezentować literał szablonu
var user = 'Bob'
console.log(`We love ${user}.`); //Note backticks
// We love Bob.
Znak $ jest identyfikatorem zmiennych i funkcji.
To jasne wyjaśnienie, do czego służy znak dolara.
Oto alternatywne wyjaśnienie: http://www.vcarrer.com/2010/10/about-dollar-sign-in-javascript.html
Znak dolara jest traktowany jak zwykła litera lub znak podkreślenia ( _
). Nie ma to specjalnego znaczenia dla tłumacza.
W przeciwieństwie do wielu podobnych języków, identyfikatory (takie jak nazwy funkcjonalne i zmienne) w Javascript mogą zawierać nie tylko litery, cyfry i znaki podkreślenia, ale mogą również zawierać znaki dolara . Mogą nawet zacząć od znaku dolara lub mogą składać się wyłącznie ze znaku dolara i nic więcej.
Dlatego $
jest prawidłową nazwą funkcji lub zmiennej w JavaScript.
Dlaczego chcesz mieć znak dolara w identyfikatorze?
Składnia tak naprawdę nie wymusza żadnego szczególnego użycia znaku dolara w identyfikatorze, więc od ciebie zależy, jak chcesz go użyć. W przeszłości często zaleca się uruchamianie identyfikatora ze znakiem dolara tylko w wygenerowanym kodzie - to znaczy w kodzie tworzonym nie ręcznie, ale przez generator kodu.
W twoim przykładzie jednak tak nie jest. Wygląda na to, że ktoś po prostu dla zabawy umieścił znak dolara - być może był programistą PHP, który zrobił to z przyzwyczajenia lub coś takiego. W PHP wszystkie nazwy zmiennych muszą mieć przed sobą znak dolara.
W interprecie istnieje inne wspólne znaczenie dla znaku dolara: obiekt jQuery, którego nazwa składa się tylko z jednego znaku dolara ( $
). Jest to konwencja zapożyczona z wcześniejszych frameworków Javascript, takich jak Prototype, a jeśli jQuery jest używany z innymi takimi frameworkami, nastąpi konflikt nazw, ponieważ obie będą używać nazwy $
(jQuery można skonfigurować tak, aby używał innej nazwy dla swojego obiektu globalnego) . W Javascript nie ma nic specjalnego, co pozwalałoby jQuery używać pojedynczego znaku dolara jako nazwy obiektu; jak wspomniano powyżej, jest to po prostu kolejna ważna nazwa identyfikatora.
var $j = jQuery.noConflict();
teraz $ j jest obiektem jQuery.
Znak dolara jest używany w ecmascript 2015-2016 jako „literały szablonów”. Przykład:
var a = 5;
var b = 10;
console.log(`Sum is equal: ${a + b}`); // 'Sum is equlat: 15'
Oto przykład praca: https://es6console.com/j3lg8xeo/ to zauważyć znak „ ` ”, to nie jest normalne cytaty.
Możesz także spotkać $ podczas pracy z biblioteką jQuery .
Znak $ w Wyrażeniach regularnych oznacza koniec wiersza.
Bez powodu. Być może osoba, która go zakodowała, pochodzi z PHP. Ma taki sam efekt, jakbyś nazwał go „_item” lub „item” lub „item $$”.
Jako sufiks (np. „Item $”, wymawiane „items”) może oznaczać obserwowalny element DOM jako konwencję zwaną „Notacją fińską” podobną do notacji węgierskiej.
Oto dobre krótkie objaśnienie filmu: https://www.youtube.com/watch?v=Acm-MD_6934
Zgodnie z Ecma International Identifier Names to tokeny interpretowane zgodnie z gramatyką podaną w sekcji „Identyfikatory” w rozdziale 5 standardu Unicode, z pewnymi niewielkimi modyfikacjami. Identyfikator to nazwa identyfikatora, która nie jest słowem zastrzeżonym ( patrz 7.6.1 ). Gramatyka identyfikatora Unicode oparta jest zarówno na normatywnych, jak i informacyjnych kategoriach znaków określonych w standardzie Unicode. Znaki w określonych kategoriach w wersji 3.0 standardu Unicode muszą być traktowane jak w tych kategoriach przez wszystkie zgodne implementacje ECMAScript. Ten standard określa określone dodatki znaków:
Znak dolara ($) i znak podkreślenia (_) są dozwolone w dowolnym miejscu w identyfikatorze .
Więcej informacji można znaleźć na stronie : http://www.ecma-international.org/ecma-262/5.1/#sec-7.6
Ecma International jest stowarzyszeniem branżowym założonym w 1961 r. I zajmującym się standaryzacją technologii informacyjnych i komunikacyjnych (ICT) oraz elektroniki użytkowej (CE).
Podczas korzystania z jQuery użycie $
symbolu jako prefiksu w nazwie zmiennej jest zwyczajowo; jest całkowicie opcjonalny i służy jedynie do wskazania, że zmienna zawiera obiekt jQuery, jak w twoim przykładzie.
Oznacza to, że gdy trzeba wywołać inną funkcję jQuery na obiekcie, nie trzeba go $()
ponownie zawijać . Na przykład porównaj te:
// the usual way
var item = $(this).parent().parent().find('input');
$(item).hide(); // this is a double wrap, but required for code readability
item.hide(); // this works but is very unclear how a jQuery function is getting called on this
// with $ prefix
var $item = $(this).parent().parent().find('input');
$item.hide(); // direct call is clear
$($item).hide(); // this works too, but isn't necessary
Dzięki $
prefiksowi zmienne już przechowujące obiekty jQuery są natychmiast rozpoznawalne, a kod bardziej czytelny i eliminuje podwójne / wielokrotne zawijanie za pomocą $()
.