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

可能重复
为什么JavaScriptvariables是以美元符号开始的?

有问题的代码在这里:

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

美元符号在variables名称中的用途是什么,为什么不把它排除呢?

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

从我所看到的,很多人使用jQuery (这是你的示例代码看起来像我)倾向于前缀variables包含jQuery对象与$,以便他们很容易被识别,而不是与整数,例如,整数。

jQuery中的美元符号函数$()是一个经常使用的库函数,所以短名是可取的。

$符号是variables和函数的标识符。

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

对美元符号的含义有明确的解释。

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

美元符号被视为正常字母或下划线( _ )。 对翻译没有特别的意义。

与许多类似的语言不同,Javascript中的标识符 (例如function名称和variables名称)不仅可以包含字母,数字和下划线,还可以包含美元符号 。 他们甚至被允许从一个美元符号开始,或者包含一个美元符号而没有别的。

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

你为什么要在一个标识符美元符号?

这个语法并没有在标识符中强制使用美元符号,所以这取决于你如何使用它。 在过去,经常build议仅在生成的代码中使用美元符号来启动一个标识符 – 也就是说,不是由人工而是由代码生成器创build的代码。

在你的例子中,然而,这似乎并不是这样。 看起来有人只是为了好玩而放了一个美元符号 – 也许他们是一个PHP程序员,出于习惯做了某事。 在PHP中,所有variables名称必须以美元符号开头。

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

在你的例子中,除了作为名字的字符之外,$没有特别的意义。

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

 var user = 'Bob' console.log(`We love ${user}.`); //Note backticks // We love Bob. 

没有理由。 也许编码的人来自PHP。 它与您命名为“_item”或“item”或“item $$”具有相同的效果。

也许这是某种匈牙利的编码器注记,该variables是一个DOM元素或东西。

这里是一个很好的简短的video解释: https : //www.youtube.com/watch?v=Acm-MD_6934

根据Ecma国际标识符名称是根据Unicode标准第5章 “标识符”部分中给出的语法来解释的标记,并进行一些小的修改。 标识符是不是预留字的标识符( 见7.6.1 )。 Unicode标识符语法基于Unicode标准规定的规范和信息字符类别。 Unicode标准3.0版中指定类别中的字符必须按照所有符合ECMAScript实现的类别来对待。这个标准指定了特定的字符添加:

美元符号($)和下划线(_)在IdentifierName的任何位置都是允许的

进一步阅读可在以下urlfind: http : //www.ecma-international.org/ecma-262/5.1/#sec-7.6

Ecma International是一家成立于1961年的行业协会,致力于信息通信技术(ICT)和消费电子(CE)的标准化。

ecmascript 2015-2016使用美元符号作为“模板文字”。 例:

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

这里的工作示例: https : //es6console.com/j3lg8xeo/注意这个标志“ ` ”,它不是普通的引号。

U也可以在使用库jQuery的同时满足$。