2010-05-21 15 views
15

¿cuál es la diferencia entre estos enunciados? Sé que "var $ test" declara una variable de jQuery, pero ¿cuál es la diferencia de una variable jQuery con una variable de JavaScript general?

Respuesta

24

Nada. Ninguna diferencia. $ es un caracter válido en un identificador de JavaScript pero no tiene un significado especial. De hecho, en la especificación ECMAScript 3 en la sección 7.6 establece que

El signo de dólar ($) y el subrayado (_) se permiten en cualquier lugar de un identificador . El signo del dólar se diseñado para ser utilizado sólo en código generado mecánicamente .

... aunque los eventos probablemente ya hayan dejado esa recomendación obsoleta. De hecho, la reciente especificación ECMAScript 5 omite la oración final.

29

$test es una convención utilizada para indicar que esta variable es un objeto jQuery y usted puede llamar a las funciones estándar en él mientras test podría ser un elemento DOM estándar y no se puede llamar a la función val en él, por ejemplo.

Por ejemplo:

var $test = $('#someId'); 
var test = document.getElementById('#someId'); 

Usted puede hacer $test.text(); pero no se puede hacer test.text();

+0

Así que significa que incluso si yo no uso el signo "$", voy a seguir siendo capaz de llamar a las funciones estándar en ese objeto, ¿verdad? –

+3

@Sayem Ahmed: Correcto, es solo un nombre. ¡Tiene absolutamente ** no ** significado! Sería lo mismo si pregunta si los nombres de variables que comienzan con 't' son de alguna manera especiales. –

+0

¡Nunca supe de esta convención, pero tiene mucho sentido! Gracias por esta aclaración, Félix. – malvim

2

no hay ninguna diferencia entre var $test y var test. pero siempre es bueno saber qué tipo de datos está en la variable: (por ejemplo, si alguien sólo quiere modificar una función en el código sin tener que leer, o tienen que console.log sus VARs saber cuál está en él)

aquí algunos ejemplos:

var arrTest = [1, 2, a, b, c], //Array 
objTest = {test: 1, test2: 2}, //Object 
strTest = "test", //String 
intTest = 4, //integer 
$test = $("#test") //jqueryObject 

pero también trabajaría como esto

var Test1 = [1, 2, a, b, c], //Array 
test2 = {test: 1, test2: 2}, //Object 
Test3 = "test", //String 
Test4 = 4, //integer 
$test = $("#test") //jquery Object 

creo que lo que confunde usted es la forma $() jQuery.

jQuery es básicamente una función establecida en el nombre de la variable $:

var $ = function(e){ // the jquery magic } 

pero todavía se puede utilizar como variable de $somethingelse.

-1

Pruebe critisism en JQuery.

Las diferencias entre Javascript nativo y un marco como JQuery es zip - coexiste.

Si desea dominar javascript, omita JQuery.

Uso GMap por sus funciones: no soy capaz de desarrollar la funcionalidad de GMap.

Pero JQuery y extJS solo ofrecen estructura, no hay funcionalidad que no pueda hacer usted mismo.

Mike

+3

-1: ¿Esta es una respuesta a qué pregunta? – Kowser

Cuestiones relacionadas