$函数在香草(无库)JS中意味着什么?

时间:2019-02-01 18:20:41

标签: javascript dollar-sign

我想知道$符号功能是什么意思。

document.querySelector的快捷方式还是有更多用途。

我转到about:blank页面并输入控制台$。

Firefox的结果是:

function()

和在Chrome中:

  

ƒ$(选择器[startNode]){[命令行API]}

它用作document.querySelector()的快捷方式,但我不确定它的名称以及对此的浏览器支持。

还有一个$$函数可以用作document.querySelectorAll()

$_存储最后的$ / $$函数结果,

$0只是对document.body的引用(我认为)

我假设

$x是XPath查询,原因是xpath参数:

  

ƒ$ x(xpath,[startNode]){[命令行API]}

(在控制台中输入$x时的Chrome输出)

2 个答案:

答案 0 :(得分:5)

正如“ [Command Line API]”消息所暗示的,它是浏览器中内置的便捷功能,而不是原始javascript的一部分。

例如,对于Chrome:

  

Console Utilities API包含用于执行常见任务的便利功能的集合:选择和检查DOM元素,以可读格式显示数据,停止和启动事件探查器以及监视DOM事件。   https://developers.google.com/web/tools/chrome-devtools/console/utilities

Safari和Firefox似乎支持与Chrome相同的功能集;我相信(但不确定)这是通过协商一致而非实际标准。

这些功能仅在开发人员控制台中起作用;它们在其他地方不可用。

console.log($) // will throw "ReferenceError: Can't find variable: $"

$字符本身在javascript中没有特殊意义,可以用作任何其他字符字形:

var $ = "hello"
var a$b = "world"
console.log($, a$b)

$ = function() {console.log("This will confuse jQuery users, probably not a great idea")}
$()

答案 1 :(得分:2)

您已经找到了每个浏览器开发人员工具中内置的非标准化标识符。它们不是Vanilla JS的一部分。

请注意,您不能在常规脚本中使用这些帮助器。 与内置的帮助程序相比,根据所使用的库或编写这些标识符的上下文,它们可能具有完全不同的含义,因为它们可以在此处任意分配。