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

2020/09/29 09:21 · javascript ·  · 0评论

有问题的代码在这里:

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

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

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

据我所见,许多使用jQuery的人(这就是您的示例代码对我而言的样子)倾向于为包含jQuery对象的变量加上$前缀,以便它们易于识别且不会与整数混淆。 。

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

在您的示例中,$除了是名称字符之外,没有其他特殊含义。

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

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

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

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中的标识符(例如函数名和变量名)不仅可以包含字母,数字和下划线,还可以包含美元符号甚至允许它们以美元符号开头,或者包含美元符号,不能包含其他任何符号。

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

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

语法实际上并没有强制标识符中使用美元符号,因此您要如何使用它取决于您。过去,通常建议仅在生成的代码中以美元符号开头标识符,也就是说,不是手动创建的代码,而是由代码生成器创建的代码。

但是,在您的示例中,情况似乎并非如此。好像有人刚开始就以一个美元符号为乐–也许他们是PHP程序员出于习惯而这样做。在PHP中,所有变量名都必须在其前面带有美元符号。

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

美元符号在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时,您也可以遇到$

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

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

作为后缀(例如“ item $”,发音为“ items”),它可以表示诸如DOM元素之类的可观察到的东西,称为类似于匈牙利符号的“芬兰符号”

这是一个很好的简短视频说明:https : //www.youtube.com/watch?v=Acm-MD_6934

根据Ecma,国际标识符名称是根据Unicode标准第5章 “标识符”部分中给出的语法进行解释的标记,并做了一些小的修改。标识符是一个IdentifierName,它不是ReservedWord(请参见7.6.1)。Unicode标识符语法基于Unicode标准指定的规范性和信息性字符类别。所有符合标准的ECMAScript实现都必须将Unicode标准3.0版中指定类别中的字符视为这些类别中的字符。此标准指定了特定的字符添加项:

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

进一步的阅读可以在以下网站找到:http : //www.ecma-international.org/ecma-262/5.1/#sec-7.6

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

当使用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对象的变量,并使代码更具可读性,并使用消除了两次/多次包装$()

“在JavaScript中使用美元符号不是很常见,但是专业程序员经常将其用作JavaScript库中主要功能的别名。

例如,在JavaScript库jQuery中,main函数$
用于选择HTML元素。
在jQuery中,
$("p");意思是“选择所有p个元素”。

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

本文地址:http://javascript.askforanswer.com/yourenkeyizaijavascriptzhongjieshimeiyuanfuhaoma.html
文章标签: ,  
版权声明:本文为原创文章,版权归 javascript 所有,欢迎分享本文,转载请保留出处!

文件下载

老薛主机终身7折优惠码boke112

上一篇:
下一篇:

评论已关闭!