Il codice in questione è qui:
var $item = $(this).parent().parent().find('input');
Qual è lo scopo del simbolo del dollaro nel nome della variabile, perché non escluderlo?
document.querySelector
edocument.querySelectorAll
Il codice in questione è qui:
var $item = $(this).parent().parent().find('input');
Qual è lo scopo del simbolo del dollaro nel nome della variabile, perché non escluderlo?
document.querySelector
edocument.querySelectorAll
Risposte:
Un '$' in una variabile non significa niente di speciale per l'interprete, proprio come un trattino basso.
Da quello che ho visto, molte persone che usano jQuery (che è quello che mi assomiglia il tuo codice di esempio) tendono a mettere in prefisso le variabili che contengono un oggetto jQuery con $ in modo che possano essere facilmente identificate e non confuse con, diciamo, numeri interi .
La funzione del simbolo del dollaro $()
in jQuery è una funzione di libreria utilizzata frequentemente, quindi è auspicabile un nome breve.
var $=function(){}
è molto simile a fare var a=function(){}
.
jQuery(document).ready(function($){
... Quindi $ viene utilizzato all'interno dell'implementazione della funzione.
$scope
$ è uno dei caratteri con quel nome. Proprio come se decollassi e
alla fine di $scope
, non funzionerà, quindi anche prendere la $
volontà non funzionerà. Nel caso in cui vedi qualcosa del genere $( "a" ).addClass( "test" )
, il simbolo del dollaro è l'intero nome di qualunque cosa sia.
Nel tuo esempio $ non ha alcun significato speciale se non quello di essere un personaggio del nome.
Tuttavia , in ECMAScript 6 (ES6) $ può rappresentare un modello letterale
var user = 'Bob'
console.log(`We love ${user}.`); //Note backticks
// We love Bob.
Il simbolo $ è un identificatore per variabili e funzioni.
Questo ha una chiara spiegazione di cosa serve il simbolo del dollaro.
Ecco una spiegazione alternativa: http://www.vcarrer.com/2010/10/about-dollar-sign-in-javascript.html
Il simbolo del dollaro viene trattato come una normale lettera o trattino basso ( _
). Non ha alcun significato speciale per l'interprete.
A differenza di molte lingue simili, gli identificatori (come nomi funzionali e variabili) in Javascript possono contenere non solo lettere, numeri e caratteri di sottolineatura, ma possono anche contenere segni di dollaro . Sono anche autorizzati a iniziare con un simbolo di dollaro o consistono solo di un simbolo di dollaro e nient'altro.
Pertanto, $
è una funzione valida o un nome di variabile in Javascript.
Perché vorresti un segno di dollaro in un identificatore?
La sintassi non impone alcun uso particolare del simbolo del dollaro in un identificatore, quindi dipende da te come desideri utilizzarlo. In passato, è stato spesso raccomandato di avviare un identificatore con un simbolo di dollaro solo nel codice generato , ovvero codice creato non a mano ma da un generatore di codice.
Nel tuo esempio, tuttavia, questo non sembra essere il caso. Sembra che qualcuno abbia appena messo un simbolo del dollaro all'inizio per divertimento - forse erano un programmatore PHP che lo ha fatto per abitudine, o qualcosa del genere. In PHP, tutti i nomi delle variabili devono avere davanti un segno di dollaro.
C'è un altro significato comune per un segno di dollaro in un interprete al giorno d'oggi: l'oggetto jQuery, il cui nome è costituito solo da un singolo simbolo di dollaro ( $
). Questa è una convenzione presa in prestito da precedenti framework Javascript come Prototype e se jQuery viene utilizzato con altri framework di questo tipo, si verificherà uno scontro di nomi poiché entrambi useranno il nome $
(jQuery può essere configurato per utilizzare un nome diverso per il suo oggetto globale) . Non c'è nulla di speciale in Javascript che consente a jQuery di usare il singolo simbolo del dollaro come nome dell'oggetto; come menzionato sopra, è semplicemente solo un altro nome identificativo valido.
var $j = jQuery.noConflict();
ora $ j è l'oggetto jQuery.
Il simbolo del dollaro è utilizzato in ecmascript 2015-2016 come "template letterali". Esempio:
var a = 5;
var b = 10;
console.log(`Sum is equal: ${a + b}`); // 'Sum is equlat: 15'
Qui esempio funzionante: https://es6console.com/j3lg8xeo/ Notare questo segno " ` ", le sue virgolette non normali.
Puoi anche incontrare $ mentre lavori con la libreria jQuery .
$ sign in Regular Expressions significa end of line.
Nessuna ragione. Forse la persona che l'ha codificata proviene da PHP. Ha lo stesso effetto di se lo avessi chiamato "_item" o "item" o "item $$".
Come suffisso (come "item $", pronunciato "items"), può significare un osservabile come un elemento DOM come una convenzione chiamata "Notazione finlandese" simile alla notazione ungherese.
Ecco una buona breve spiegazione video: https://www.youtube.com/watch?v=Acm-MD_6934
Secondo Ecma International Identifier i nomi sono token che vengono interpretati secondo la grammatica indicata nella sezione "Identificatori" del capitolo 5 dello standard Unicode, con alcune piccole modifiche. Un identificatore è un identificativo che non è un riservatoWord ( vedi 7.6.1 ). La grammatica dell'identificatore Unicode si basa su categorie di caratteri sia normative sia informative specificate dallo standard Unicode. I caratteri nelle categorie specificate nella versione 3.0 dello standard Unicode devono essere trattati come in tali categorie da tutte le implementazioni ECMAScript conformi. Questo standard specifica aggiunte di caratteri specifici:
Il simbolo del dollaro ($) e il trattino basso (_) sono consentiti ovunque in un IdentifierName .
Ulteriori letture sono disponibili su: http://www.ecma-international.org/ecma-262/5.1/#sec-7.6
Ecma International è un'associazione industriale fondata nel 1961 e dedicata alla standardizzazione delle tecnologie dell'informazione e della comunicazione (TIC) e dell'elettronica di consumo (CE).
Quando si utilizza jQuery, l'uso del $
simbolo come prefisso nel nome della variabile è semplicemente per convenzione; è completamente facoltativo e serve solo per indicare che la variabile contiene un oggetto jQuery, come nel tuo esempio.
Ciò significa che quando è necessario richiamare un'altra funzione jQuery sull'oggetto, non è necessario inserirlo $()
nuovamente. Ad esempio, confronta questi:
// 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
Con il $
prefisso le variabili che già contengono oggetti jQuery sono immediatamente riconoscibili e il codice più leggibile, eliminando il doppio / multiplo wrapping $()
.