El código en cuestión está aquí:
var $item = $(this).parent().parent().find('input');
¿Cuál es el propósito del signo de dólar en el nombre de la variable, por qué no simplemente excluirlo?
document.querySelector
ydocument.querySelectorAll
El código en cuestión está aquí:
var $item = $(this).parent().parent().find('input');
¿Cuál es el propósito del signo de dólar en el nombre de la variable, por qué no simplemente excluirlo?
document.querySelector
ydocument.querySelectorAll
Respuestas:
Un '$' en una variable no significa nada especial para el intérprete, como un guión bajo.
Por lo que he visto, muchas personas que usan jQuery (que es como me parece su código de ejemplo) tienden a prefijar las variables que contienen un objeto jQuery con $ para que se identifiquen fácilmente y no se mezclen con, por ejemplo, enteros .
La función de signo de dólar $()
en jQuery es una función de biblioteca que se usa con frecuencia, por lo que es conveniente un nombre corto.
var $=function(){}
es lo mismo que hacer var a=function(){}
.
jQuery(document).ready(function($){
... Luego, el $ se usa dentro de la implementación de la función.
$scope
$ es uno de los caracteres en ese nombre. Al igual que si te quitas el e
al final de $scope
, no funcionará, así que quitarlo $
tampoco funcionará. En el caso de que vea algo así $( "a" ).addClass( "test" )
, el signo de dólar es el nombre completo de lo que sea.
En su ejemplo, $ no tiene un significado especial aparte de ser un carácter del nombre.
Sin embargo , en ECMAScript 6 (ES6) el $ puede representar una plantilla literal
var user = 'Bob'
console.log(`We love ${user}.`); //Note backticks
// We love Bob.
El signo $ es un identificador para variables y funciones.
Eso tiene una explicación clara de para qué sirve el signo de dólar.
Aquí hay una explicación alternativa: http://www.vcarrer.com/2010/10/about-dollar-sign-in-javascript.html
El signo de dólar se trata como una letra normal o un guión bajo ( _
). No tiene un significado especial para el intérprete.
A diferencia de muchos lenguajes similares, los identificadores (como los nombres funcionales y variables) en Javascript pueden contener no solo letras, números y guiones bajos, sino también que también pueden contener signos de dólar . Incluso se les permite comenzar con un signo de dólar, o consistir solo en un signo de dólar y nada más.
Por lo tanto, $
es una función válida o nombre de variable en Javascript.
¿Por qué querrías un signo de dólar en un identificador?
La sintaxis realmente no impone ningún uso particular del signo de dólar en un identificador, por lo que depende de usted cómo desea usarlo. En el pasado, a menudo se recomendaba comenzar un identificador con un signo de dólar solo en el código generado , es decir, código creado no a mano sino por un generador de código.
En su ejemplo, sin embargo, este no parece ser el caso. Parece que alguien acaba de poner un signo de dólar al principio por diversión, tal vez fueron un programador de PHP que lo hicieron por costumbre, o algo así. En PHP, todos los nombres de variables deben tener un signo de dólar frente a ellos.
Hay otro significado común para un signo de dólar en un intérprete hoy en día: el objeto jQuery, cuyo nombre solo consiste en un solo signo de dólar ( $
). Esta es una convención tomada de marcos JavaScript anteriores como Prototype, y si jQuery se usa con otros marcos similares, habrá un choque de nombres porque ambos usarán el nombre $
(jQuery se puede configurar para usar un nombre diferente para su objeto global) . No hay nada especial en Javascript que permita a jQuery usar el signo de dólar único como nombre de objeto; como se mencionó anteriormente, es simplemente otro nombre de identificador válido.
var $j = jQuery.noConflict();
ahora $ j es el objeto jQuery.
El signo de dólar se usa en ecmascript 2015-2016 como 'plantillas literales'. Ejemplo:
var a = 5;
var b = 10;
console.log(`Sum is equal: ${a + b}`); // 'Sum is equlat: 15'
Aquí ejemplo de trabajo: https://es6console.com/j3lg8xeo/ Observe este signo " ` ", no son comillas normales.
U también puede cumplir $ mientras trabaja con la biblioteca jQuery .
El signo $ en expresiones regulares significa el final de la línea.
Sin razón. Quizás la persona que lo codificó vino de PHP. Tiene el mismo efecto que si lo hubiera llamado "_item" o "item" o "item $$".
Como sufijo (como "item $", pronunciado "items"), puede significar un observable como un elemento DOM como una convención llamada "notación finlandesa" similar a la notación húngara.
Aquí hay una buena explicación breve en video: https://www.youtube.com/watch?v=Acm-MD_6934
De acuerdo con Ecma International, los nombres de identificadores son tokens que se interpretan de acuerdo con la gramática dada en la sección "Identificadores" del capítulo 5 del estándar Unicode, con algunas pequeñas modificaciones. Un identificador es un nombre de identificador que no es una palabra reservada ( ver 7.6.1 ). La gramática del identificador Unicode se basa en categorías de caracteres normativos e informativos especificados por el estándar Unicode. Los caracteres en las categorías especificadas en la versión 3.0 del estándar Unicode deben ser tratados como en esas categorías por todas las implementaciones ECMAScript conformes. Este estándar especifica adiciones de caracteres específicos:
El signo de dólar ($) y el guión bajo (_) están permitidos en cualquier parte de un IdentifierName .
Puede encontrar más información en: http://www.ecma-international.org/ecma-262/5.1/#sec-7.6
Ecma International es una asociación de la industria fundada en 1961 y dedicada a la estandarización de las tecnologías de la información y la comunicación (TIC) y la electrónica de consumo (CE).
Cuando se usa jQuery, el uso del $
símbolo como prefijo en el nombre de la variable es simplemente por convención; es completamente opcional y sirve solo para indicar que la variable contiene un objeto jQuery, como en su ejemplo.
Esto significa que cuando se necesita invocar otra función jQuery en el objeto, no necesitará envolverla $()
nuevamente. Por ejemplo, compare estos:
// 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 el $
prefijo, las variables que ya contienen objetos jQuery se reconocen instantáneamente y el código es más legible, y elimina la envoltura doble / múltiple $()
.