Der fragliche Code ist hier:
var $item = $(this).parent().parent().find('input');
Was ist der Zweck des Dollarzeichens im Variablennamen, warum nicht einfach ausschließen?
document.querySelector
unddocument.querySelectorAll
Der fragliche Code ist hier:
var $item = $(this).parent().parent().find('input');
Was ist der Zweck des Dollarzeichens im Variablennamen, warum nicht einfach ausschließen?
document.querySelector
unddocument.querySelectorAll
Antworten:
Ein '$' in einer Variablen bedeutet für den Interpreter nichts Besonderes, ähnlich wie ein Unterstrich.
Wie ich gesehen habe, tendieren viele Leute, die jQuery verwenden (wie Ihr Beispielcode für mich aussieht), dazu, Variablen, die ein jQuery-Objekt enthalten, ein $ voranzustellen, damit sie leicht identifiziert und nicht mit beispielsweise ganzen Zahlen verwechselt werden können .
Die Dollarzeichenfunktion $()
in jQuery ist eine häufig verwendete Bibliotheksfunktion, daher ist ein Kurzname wünschenswert.
var $=function(){}
ist das gleiche wie tun var a=function(){}
.
jQuery(document).ready(function($){
... Dann wird das $ in der Funktionsimplementierung verwendet.
$scope
$ ist eines der Zeichen in diesem Namen. So wie Sie das e
am Ende abnehmen $scope
, wird es nicht funktionieren, so wird das $
Abnehmen auch nicht funktionieren. Für den Fall, dass Sie so etwas sehen $( "a" ).addClass( "test" )
, ist das Dollarzeichen der gesamte Name dessen, was auch immer das ist.
In Ihrem Beispiel hat das $ keine andere besondere Bedeutung als ein Zeichen des Namens.
In ECMAScript 6 (ES6) kann das $ jedoch ein Vorlagenliteral darstellen
var user = 'Bob'
console.log(`We love ${user}.`); //Note backticks
// We love Bob.
Das $ -Zeichen ist eine Kennung für Variablen und Funktionen.
Das hat eine klare Erklärung dafür, wofür das Dollarzeichen ist.
Hier ist eine alternative Erklärung: http://www.vcarrer.com/2010/10/about-dollar-sign-in-javascript.html
Das Dollarzeichen wird wie ein normaler Buchstabe oder Unterstrich behandelt (_
) behandelt. Es hat für den Dolmetscher keine besondere Bedeutung.
Im Gegensatz zu vielen ähnlichen Sprachen können Bezeichner (wie Funktions- und Variablennamen) in Javascript nicht nur Buchstaben, Zahlen und Unterstriche enthalten, sondern auch Dollarzeichen . Sie dürfen sogar mit einem Dollarzeichen beginnen oder bestehen nur aus einem Dollarzeichen und sonst nichts.
Somit $
ist eine gültige Funktion oder ein gültiger Variablenname in Javascript.
Warum sollten Sie ein Dollarzeichen in einer Kennung haben wollen?
Die Syntax erzwingt keine bestimmte Verwendung des Dollarzeichens in einem Bezeichner. Es liegt also an Ihnen, wie Sie es verwenden möchten. In der Vergangenheit wurde häufig empfohlen, einen Bezeichner nur im generierten Code mit einem Dollarzeichen zu beginnen, dh Code , der nicht von Hand, sondern von einem Codegenerator erstellt wurde.
In Ihrem Beispiel scheint dies jedoch nicht der Fall zu sein. Es sieht so aus, als hätte jemand zum Spaß nur ein Dollarzeichen am Anfang angebracht - vielleicht war er ein PHP-Programmierer, der es aus Gewohnheit getan hat, oder so. In PHP müssen alle Variablennamen ein Dollarzeichen vor sich haben.
Heutzutage gibt es in einem Interpreter eine andere gebräuchliche Bedeutung für ein Dollarzeichen: das jQuery-Objekt, dessen Name nur aus einem einzelnen Dollarzeichen besteht ( $
). Dies ist eine Konvention, die aus früheren Javascript-Frameworks wie Prototype entlehnt wurde. Wenn jQuery mit anderen solchen Frameworks verwendet wird, kommt es zu einem Namenskonflikt, da beide den Namen verwenden $
(jQuery kann so konfiguriert werden, dass für sein globales Objekt ein anderer Name verwendet wird). . In Javascript gibt es nichts Besonderes, das es jQuery ermöglicht, das einzelne Dollarzeichen als Objektnamen zu verwenden. Wie oben erwähnt, ist es einfach nur ein weiterer gültiger Bezeichnername.
var $j = jQuery.noConflict();
jetzt ist $ j das jQuery-Objekt.
Das Dollarzeichen wird im Ecmascript 2015-2016 als "Vorlagenliteral" verwendet. Beispiel:
var a = 5;
var b = 10;
console.log(`Sum is equal: ${a + b}`); // 'Sum is equlat: 15'
Hier Arbeitsbeispiel: https://es6console.com/j3lg8xeo/ Beachten Sie dieses Zeichen " ` ", seine nicht normalen Anführungszeichen.
Sie können $ auch treffen, während Sie mit der Bibliothek jQuery arbeiten .
$ in regulären Ausdrücken anmelden bedeutet Zeilenende.
Kein Grund. Vielleicht kam die Person, die es codiert hat, aus PHP. Es hat den gleichen Effekt, als hätten Sie es "_item" oder "item" oder "item $$" genannt.
Als Suffix (wie "item $", ausgesprochen "items") kann es ein beobachtbares Element wie ein DOM-Element als Konvention mit der Bezeichnung "Finnische Notation" ähnlich der ungarischen Notation bezeichnen.
Hier ist eine gute kurze Video-Erklärung: https://www.youtube.com/watch?v=Acm-MD_6934
Laut Ecma International Identifier Names sind Token, die gemäß der im Abschnitt „Identifiers“ in Kapitel 5 des Unicode-Standards angegebenen Grammatik interpretiert werden , mit einigen kleinen Änderungen. Ein Identifier ist ein IdentifierName, der kein ReservedWord ist ( siehe 7.6.1 ). Die Unicode-Bezeichnergrammatik basiert sowohl auf normativen als auch auf informativen Zeichenkategorien, die im Unicode-Standard festgelegt sind. Die Zeichen in den angegebenen Kategorien in Version 3.0 des Unicode-Standards müssen von allen konformen ECMAScript-Implementierungen wie in diesen Kategorien behandelt werden. Dieser Standard spezifiziert bestimmte Zeichenzusätze:
Das Dollarzeichen ($) und der Unterstrich (_) sind an einer beliebigen Stelle in einem IdentifierName zulässig .
Weitere Informationen finden Sie unter: http://www.ecma-international.org/ecma-262/5.1/#sec-7.6
Ecma International ist ein 1961 gegründeter Branchenverband, der sich der Standardisierung von Informations- und Kommunikationstechnologie (IKT) und Unterhaltungselektronik (CE) widmet.
Bei Verwendung von jQuery erfolgt die Verwendung des $
Symbols als Präfix im Variablennamen lediglich gemäß Konvention. Es ist vollständig optional und dient nur dazu anzuzeigen, dass die Variable ein jQuery-Objekt enthält, wie in Ihrem Beispiel.
Dies bedeutet, dass Sie eine andere jQuery-Funktion, die für das Objekt aufgerufen werden muss, nicht $()
erneut einschließen müssen . Vergleichen Sie zum Beispiel diese:
// 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
Mit dem $
Präfix sind die Variablen, die bereits jQuery-Objekte enthalten, sofort erkennbar und der Code besser lesbar, und Doppel- / Mehrfachumbrüche werden vermieden $()
.