有问题的代码在这里:

var $item = $(this).parent().parent().find('input');

在变量名中使用美元符号的目的是什么,为什么不直接排除它呢?


当前回答

变量中的'$'对于解释器来说没有任何特殊意义,就像下划线一样。

据我所知,许多使用jQuery的人(在我看来,您的示例代码就是这样的)倾向于在包含jQuery对象的变量前面加上$,这样它们就很容易被识别,不会与整数混淆。

jQuery中的美元符号函数$()是一个经常使用的库函数,因此最好使用较短的名称。

其他回答

变量中的'$'对于解释器来说没有任何特殊意义,就像下划线一样。

据我所知,许多使用jQuery的人(在我看来,您的示例代码就是这样的)倾向于在包含jQuery对象的变量前面加上$,这样它们就很容易被识别,不会与整数混淆。

jQuery中的美元符号函数$()是一个经常使用的库函数,因此最好使用较短的名称。

使用美元符号在JavaScript中并不常见,但是 专业程序员经常使用它作为main的别名 函数在JavaScript库中。 例如,在JavaScript库jQuery中,主函数$ 用于选择HTML元素。jQuery $("p");意思是“全选” P个元素。

通过https://www.w3schools.com/js/js_variables.asp

美元符号在ecmascript 2015-2016中用作“模板文字”。 例子:

var a = 5;
var b = 10;
console.log(`Sum is equal: ${a + b}`); // 'Sum is equlat: 15'

下面是工作示例: https://es6console.com/j3lg8xeo/ 注意这个符号" ' ",它不是普通的引号。

你也可以在使用jQuery库时遇到$。

$ sign在正则表达式中表示行结束。

在使用jQuery时,使用$符号作为变量名的前缀只是一种惯例;它是完全可选的,仅用于指示变量保存jQuery对象,如示例中所示。

这意味着当需要在对象上调用另一个jQuery函数时,您不需要再次将它包装在$()中。例如,比较这些:

// 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

使用$前缀,已经包含jQuery对象的变量可以立即识别,代码更易于阅读,并消除了使用$()的双/多次换行。

    let $ = "Hello";
    let $$ = "World!";
    let $$$$$$$$$$$ = $ + " " + $$;
    alert($$$$$$$$$$$);

这将显示一个“Hello World!”警告框。

正如您所看到的,$只是JavaScript标识符或变量名的一个普通字符。事实上,您可以使用大量Unicode字符作为变量名,使其看起来像美元或其他货币符号!

注意,$符号也被用作jQuery名称空间/库的引用:

$("p").text("I am using some jquery");

// ...is the same as...

jQuery("p").text("I am using some jquery");

$也用于新的模板文字格式,使用JavaScript ES6/2015版本支持的字符串插值:

var x = `Hello ${name}`;