几年前我做了一些javascript / jQuery编程,然后我又重新开始了。当时所有的jQuery功能都使用美元符号,如果没有导入jQuery库,就没有定义美元符号。
今天,我在一个完全空的html文件中启动了Firefox,文件中没有javascript库,但是美元符号却指向了一些东西。如果我打开火狐控制台,输入'$',我得到的是"function()"
。
1)几年前没有分配美元符号是正确的,还是我记错了?
2)如果不是jQuery,美元符号是什么?
发布于 2014-03-07 16:18:50
1)几年前没有分配美元符号是正确的吗,还是我记错了?
这是正确的,而且仍然是正确的。
2)如果不是jQuery,那么美元符号是什么?
Firefox和Chrome将$
、$$
和其他几个实现为辅助命令。两者都会将$$
设置为document.querySelectorAll()
,如果尚未定义$
,则将document.querySelector
设置为window.$
。
因此,您看到的实际上不是标准的JavaScript,而是浏览器开发人员控制台中的帮助器。它也不是jQuery (只要你不在使用jQuery的页面上)。然而,它的行为接近于jQuery
的行为,因为querySelector
(对于单项匹配)和querySelectorAll
(对于多项匹配)为您提供了几乎与jQuery选择器相同的强度。
发布于 2014-03-07 16:13:31
它对解释器没有任何意义,就像下划线一样
来自ECMAScript规范:
标识符中的任意位置都允许使用美元符号($)和下划线(_)。美元符号仅用于机械生成的代码中。
您也可以查看JavaScript Dollar Sign ($) - What is it for?
按照惯例,美元符号($),下划线(_)甚至一些ASCII码字符都可以在JavaScript标识符中的任何地方使用(来源: Ecma脚本文档(7.6标识符,ECMA-262,第三版))美元符号仅用于机械生成的代码。这意味着我们不想在标识符名中使用美元符号($),除非我们正在编写框架。以下是可在标识符名称中的任何位置使用的允许字符的列表:
IdentifierName ::
IdentifierStart
IdentifierName IdentifierPart
IdentifierStart ::
UnicodeLetter
$
_
UnicodeEscapeSequence
IdentifierPart ::
IdentifierStart
UnicodeCombiningMark
UnicodeDigit
UnicodeConnectorPunctuation
UnicodeEscapeSequence
编辑:-
实际上,美元符号函数或多或少已经成为了document.getElementById()
的事实上的捷径。
确认我的点数检查
选择器$(
)
返回与给定CSS选择器匹配的单个元素。在旧的Firebug版本中,这曾经等同于document.getElementById.
发布于 2014-03-07 16:38:08
未分配Dollar sign($)
,但某些浏览器添加了特殊用途的功能。
和Google Chrome一样,如果你在控制台上输入$
,它会返回:
function $(selector, [startNode]) { [Command Line API] }
此函数分配给Google Chrome开发人员工具,并让调试更容易。
如果您键入$('div')
,它将返回如下内容:
e.fn.e.init[178]
并包含其中的每个div
DOM对象。
顺便说一句,在您单击鼠标右键选择元素之后,您可以通过在控制台上键入$scope
来访问angular.js范围
https://stackoverflow.com/questions/22244823
复制相似问题