¿Puede alguien explicar el signo de dólar en Javascript?


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?

Author: Donald Duck, 2009-05-11

7 answers

Un '$' en una variable no significa nada especial para el intérprete, como un subrayado.

Por lo que he visto, muchas personas que usan jQuery (que es lo que me parece su código de ejemplo) tienden a prefijar variables que contienen un objeto jQuery con un $ para que se identifiquen fácilmente y no se mezclen con, digamos, 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 deseable un nombre corto.

 318
Author: cobbal,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-11-14 20:49:39

El signo $ es un identificador para variables y funciones.

Https://web.archive.org/web/20160529121559/http://www.authenticsociety.com/blog/javascript_dollarsign

Que tiene una explicación clara de lo que el signo del dólar es para.

Aquí hay una explicación alternativa: http://www.vcarrer.com/2010/10/about-dollar-sign-in-javascript.html

 32
Author: AlbertoPL,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-07-19 11:14:01

El signo de dólar se trata como una letra normal o subrayado (_). 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 que también pueden contener signos de dólar. Incluso se les permite comenzar con un signo de dólar, o consisten solo de un signo de dólar y nada más.

Así, $ es un nombre válido de función o 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 ha recomendado iniciar un identificador con un signo de dólar solo en código generado, es decir, código creado no a mano sino por un generador de código.

En su ejemplo, sin embargo, esto no parece ser el caso. Parece que alguien acaba de poner un signo de dólar al principio por diversión-tal vez eran un programador de PHP que lo hizo por costumbre, o algo así. En PHP, todos los nombres de variables deben comenzar con un signo de dólar.

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 frameworks Javascript anteriores como Prototype, y si jQuery se usa con otros frameworks, 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.

 28
Author: thomasrutter,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-01-27 00:06:52

En su ejemplo el $ no tiene un significado especial que no sea ser un carácter del nombre.

Sin embargo , en ECMAScript 6 (ES6) el $ puede representar un Literal de Plantilla

var user = 'Bob'
console.log(`We love ${user}.`); //Note backticks
// We love Bob.
 26
Author: UpTheCreek,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-12-15 15:30:09

El signo de dólar se usa en ecmascript 2015-2016 como 'literales de plantilla'. 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 citas normales.

U también puede encontrarse working mientras trabaja con library jQuery.

Sign iniciar sesión Expresiones regulares significa fin de línea.

 6
Author: Vasyl Gutnyk,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-12-13 12:15:56

No hay razón. Tal vez la persona que lo codificó vino de PHP. Tiene el mismo efecto que si lo hubieras nombrado "_item" o "item"o" item item".

Tal vez sea algún tipo de notación húngara para que el codificador note que la variable es un elemento DOM o algo así.

 2
Author: Claudiu,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-05-11 03:04:24

Aquí hay una buena explicación de video corto: https://www.youtube.com/watch?v=Acm-MD_6934

De acuerdo con Ecma, los Nombres de Identificador Internacionales son tokens que se interpretan de acuerdo con la gramática dada en la sección "Identificadores" de capítulo 5 del estándar Unicode, con algunas pequeñas modificaciones. Un Identificador es un nombre de identificación que no es una palabra reservada (véase 7.6.1). La gramática del identificador Unicode se basa tanto en la normativa como en la informativa categorías de caracteres especificadas 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 de ECMAScript conformes.esta norma especifica adiciones de caracteres específicos:

El signo de dólar ($) y el subrayado (_) están permitidos en cualquier lugar 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 industrial 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).

 2
Author: Nomis,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-02-10 10:25:35