有人可以解释 Javascript 中的美元符号吗?

IT技术 javascript naming-conventions
2021-01-14 01:20:14

有问题的代码在这里:

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

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

6个回答

变量中的“$”对解释器没有什么特别的意义,就像下划线一样。

从我所看到的,许多使用jQuery 的人(这就是你的示例代码在我看来的样子)倾向于在包含 jQuery 对象的变量前面加上 $ 以便它们很容易识别,而不是与整数混淆.

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

@ThrowawayAccount3Million 这只是名称的一部分。如果$scope$ 是该名称中的字符之一。就像你e在 的末尾取下 一样$scope,它不起作用,因此取下$也不起作用。如果您看到类似 的内容$( "a" ).addClass( "test" ),则美元符号就是它的全名。
2021-03-19 01:20:14
当 $ 被指定为函数参数时呢?我在看一些类似的代码jQuery(document).ready(function($){......然后在函数实现中使用了 $。
2021-03-28 01:20:14
Thimmayya 您的评论“默认情况下,jQuery 使用“$”作为“jQuery”的快捷方式”应该在 Jquery 网站上每个页面的顶部以粗体字母显示,他们的示例记录得很糟糕。
2021-04-03 01:20:14
注意:默认情况下,jQuery 使用“$”作为“jQuery”的快捷方式。这对其他 Javascript 库的使用有一些影响。请参阅docs.jquery.com/Using_jQuery_with_Other_Libraries
2021-04-07 01:20:14
换句话说,$ 相当于变量/函数名称中任何可接受的符号。var $=function(){}与做非常相似var a=function(){}
2021-04-10 01:20:14

在您的示例中, $ 除了作为名称的一个字符外没有特殊意义。

但是,在 ECMAScript 6 (ES6) 中, $ 可能代表模板文字

var user = 'Bob'
console.log(`We love ${user}.`); //Note backticks
// We love Bob.
$ 除了作为名称的一个字符外,没有其他特殊意义。 ”它确实具有特殊意义。它表明该变量的值是一个 jQuery 包装对象。这是一种匈牙利符号因此,您知道如何纯粹通过命名约定来操作该值。
2021-04-11 01:20:14

$ 符号是变量和函数的标识符。

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

这清楚地解释了美元符号的用途。

这是另一种解释:http : //www.vcarer.com/2010/10/about-dollar-sign-in-javascript.html

Javascript 确实有类型;无论如何,美元符号与此有何关系?它只是一个字符,恰好是 Javascript 中的合法标识符。
2021-03-25 01:20:14
我不确定我会称该链接为“清晰”的解释。在定义函数和变量名称时,是否真的需要 6+ 段来解释 $ 只是一个有效字符?
2021-03-30 01:20:14
看起来第一个链接再次起作用了。我必须同意@Slight 的替代解释很糟糕。
2021-04-08 01:20:14
链接中的示例代码很容易理解。惊人的!
2021-04-08 01:20:14

美元符号被视为普通字母或下划线 ( _)。它对解释器没有特殊意义。

与许多类似的语言不同,Javascript 中的标识符(例如函数名和变量名)不仅可以包含字母、数字和下划线,还可以包含美元符号它们甚至可以以美元符号开头,或者包含一个美元符号而没有其他内容。

因此,$是 Javascript 中有效的函数或变量名称。

为什么要在标识符中使用美元符号?

语法并没有真正强制标识符中美元符号的任何特定用法,因此您希望如何使用它取决于您。过去,通常建议仅在生成的代码中以美元符号开头标识符- 也就是说,代码不是手工创建的,而是由代码生成器创建的。

但是,在您的示例中,情况似乎并非如此。看起来有人只是为了好玩而在开头放了一个美元符号 - 也许他们是出于习惯或其他原因这样做的 PHP 程序员。在 PHP 中,所有变量名前面都必须有一个美元符号。

现在解释器中美元符号还有另一个常见含义:jQuery 对象,其名称由一个美元符号 ( $) 组成。这是从早期的 Javascript 框架(如 Prototype)借来的约定,如果 jQuery 与其他此类框架一起使用,则会出现名称冲突,因为它们都将使用名称$(jQuery 可以配置为对其全局对象使用不同的名称) . Javascript 中没有什么特别之处允许 jQuery 使用单个美元符号作为其对象名称;如上所述,它只是另一个有效的标识符名称。

var $j = jQuery.noConflict();现在 $j 是jQuery 对象,您不能与 jQuery 对象发生冲突
2021-03-14 01:20:14

美元符号在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 时遇到 $

正则表达式中的$ 符号表示行尾。

美元符号的这种用法没有出现在问题中。这是这个答案从别处移到这里的结果吗?
2021-03-20 01:20:14