JavaScript中的美元符号是什么,如果不是jQuery

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (23)

几年前,我做了一些javascript / jQuery编程,然后我又重新开始了。当时美元符号用于所有jQuery功能,如果没有导入jQuery库,美元符号没有被定义。

今天,我在一个完全空白的html文件中启动了Firefox,没有JavaScript库,但美元符号指向了某种东西。如果我打开Firefox控制台并键入'$',我就可以得到"function()"

1)几年前还没有分配美元符号是正确的还是我记得错误?

2)什么是美元符号,如果不是jQuery?

提问于
用户回答回答于

1)几年前还没有分配美元符号是正确的还是我记得错误?

这是正确的,仍然是事实。

2)什么是美元符号,如果不是jQuery?

FirefoxChrome实现$$$以及其他一些辅助命令。两者都将设置$$document.querySelectorAll(),并设置$document.querySelector如果window.$尚未定义。

所以你看到的不是标准的JavaScript,而是浏览器开发者控制台的帮手。这也不是jQuery(只要你不在使用jQuery的页面上)。然而,它的行为是接近的一个jQuery,关于该querySelector(单场比赛)和querySelectorAll(为多个匹配)给你几乎相同的强度jQuery选择。

用户回答回答于

就像下划线一样,对于解释者来说没有任何意义

从ECMAScript规范:

美元符号($)和下划线(_)在标识符的任何地方都是允许的。美元符号仅用于机械生成的代码。

您也可以查看JavaScript美元符号($) - 这是干什么用的?

按照惯例,美元符号($),下划线(_),甚至一些ASCII字符被允许可以在JavaScript标识符(来源任何地方使用:ECMA脚本文件(7.6标识符,ECMA-262,第3版)。美元符号仅用于机械生成的代码,这意味着除非我们正在编写框架,否则我们不希望在我们的标识符名称中使用美元符号($)。下面是允许使用的字符列表标识符名称中的任何位置:

IdentifierName ::
IdentifierStart
IdentifierName IdentifierPart
IdentifierStart ::
UnicodeLetter
$
_
UnicodeEscapeSequence
IdentifierPart ::
IdentifierStart
UnicodeCombiningMark
UnicodeDigit
UnicodeConnectorPunctuation
UnicodeEscapeSequence

其实美元符号功能已经成为或多或少事实上的捷径document.getElementById()

要确认我的观点,请检查一下

$(选择) 返回与给定CSS选择器匹配的单个元素。在旧的Firebug版本中,这用于与document.getElementById等效 。

扫码关注云+社区