几年前,我做了一些javascript / jQuery编程,然后又重新开始了。那时,美元符号用于所有jQuery功能,并且如果未导入jQuery库,则未定义美元符号。
今天,我启动了Firefox,使用的是一个完全空的html文件,没有javascript库,但是美元符号指向某个东西。如果我打开Firefox控制台并输入“ $”,我会得到"function()"。
1)几年前未分配美元符号是否正确,还是我记得错了吗?
2)什么是美元符号,如果不是jQuery?
Answers:
1)几年前未分配美元符号是否正确,还是我记得错了吗?
没错,但仍然如此。
2)如果不是jQuery,美元符号是什么?
Firefox和Chrome实施$,$$以及其他一些作为辅助命令。两者都将设置$$为document.querySelectorAll(),如果尚未定义则设置$为。document.querySelectorwindow.$
因此,您看到的实际上不是标准的JavaScript,而是浏览器开发人员控制台中的帮助器。它也不是jQuery(只要您不在使用jQuery的页面上)。但是,它的行为是接近的一个jQuery,关于该querySelector(单场比赛)和querySelectorAll(为多个匹配)给你几乎相同的强度jQuery选择。
$.fn.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。
请注意,这$$并不完全document.querySelectorAll,因为与该函数不同,它不会返回a NodeList:
document.querySelectorAll("p") instanceof NodeList // true
$$("p") instanceof NodeList // false
Array.isArray($$("p")) // true
所以$$(selector)真的更像Array.from(document.querySelectorAll(selector))。这意味着在使用时map,像和朋友这样的数组方法(而不仅仅是forEach)是可用的,$$而实际上非常有用。
它可以是任何值,也可以$是有效的变量名,就像dollar。
Identifier ::
IdentifierName but not ReservedWord
IdentifierName ::
IdentifierStart
IdentifierName IdentifierPart
IdentifierStart ::
UnicodeLetter
$
_
\ UnicodeEscapeSequence
查看其含义和定义位置的最简单解决方案可能是在该行上键入$()并在其中放置一个断点。