javaScript中的美元符号是什么,即使不是jQuery



我几年前做了一些javascript/jquery编程,我又开始了。那时,美元符号用于所有jQuery功能,如果未进口jQuery库,则没有定义美元符号。

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

1)几年前没有分配美元标志,还是我记得错了吗?

是正确的吗?

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

1)几年前没有分配美元标志,还是我记得错了吗?

是正确的吗?

那是正确的,仍然是正确的。

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

Firefox和Chrome实施$$$以及其他几个作为帮助人命令。两者都将将$$设置为document.querySelectorAll(),如果尚未定义window.$,则将$设置为document.querySelector

因此,您所看到的实际上不是标准的JavaScript,而是浏览器开发人员控制台中的助手。这也不是jQuery(只要您不在页面上使用jQuery)。但是,它的行为靠近jQuery之一,涉及querySelector(用于单场比赛)和querySelectorAll(用于多个匹配项)给您与JQuery Selector几乎相同的强度。

它对解释器没有任何意义,就像下划线

来自ecmascript规范:

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

您也可以检查JavaScript美元符号($) - 是什么?

按大会,美元符号($),下划线(_),甚至一些 允许在JavaScript中的任何地方使用ASCII字符 标识符(来源:ECMA脚本文档(7.6标识符,, ECMA-262,3版)美元标志仅用于用于 机械生成的代码。这意味着我们不想使用 除非我们写一个 框架。以下是允许字符的列表 标识符名称中的任何地方使用:

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

编辑: -

实际上,美元符号功能已成为document.getElementById()的事实上的捷径。

确认我的点检查 this

$(Selector)

返回与给定CSS选择器匹配的单个元素。在旧 firebug版本,这曾经相当于 document.getElementById

Dollar sign($)未分配,但是某些浏览器添加了特殊用法的函数。

喜欢Google Chrome,如果您在控制台上键入$,它将返回:

function $(selector, [startNode]) { [Command Line API] }

为Google Chrome开发人员工具分配了此功能,让调试更容易。

如果您键入$('div'),它将返回这样的内容:

e.fn.e.init[178]

并将每个 div dom对象包含在其中。

顺便说一句,单击鼠标上的右键选择元素后,您可以按CONEOLE上的 $scope acceess angular.js范围

请注意,$$不是document.querySelectorAll,因为与该功能不同,它不会返回NodeList

document.querySelectorAll("p") instanceof NodeList // true
$$("p") instanceof NodeList // false
Array.isArray($$("p")) // true

因此,$$(selector)实际上更像Array.from(document.querySelectorAll(selector))。这意味着使用map等数组方法,而不仅仅是forEach,当时使用$$,实际上非常有用。

只是为了在此处完成其他答案,Mootools还将$用作document.getElementById的别名。

确实检查了$是否已采用,然后将默认为document.id

可能是什么,因为 $是有效的变量名称,就像 dollar一样。

来自ecmascript:

Identifier ::
IdentifierName but not ReservedWord
IdentifierName ::
IdentifierStart
IdentifierName IdentifierPart
IdentifierStart ::
UnicodeLetter
$
_ 
 UnicodeEscapeSequence

最简单的解决方案是查看它是什么以及定义的位置可能会键入$()并在此行上放置断点。

最新更新