var user = "";
function greet() {
console.count();
return "hi " + user;
}
user = "bob";
greet();
user = "alice";
greet();
greet();
console.count();
在上面的示例中,控制台显示 1、2、3,然后显示 1。 console.count 是如何工作的?谁能解释一下吗?
在这里您可以找到答案https://developer.mozilla.org/en-US/docs/Web/API/Console/count
简述:
此函数记录此特定调用的次数
已被呼叫。该函数采用可选参数count()
。label
如果提供
,此函数会记录次数label
已被调用为特定的count()
。label
如果省略
,该函数会记录次数label
已被调用在该特定行。count()
这就是为什么你会得到不同的结果,因为在函数内部调用了 3 次,假设它是第 4 行,并且在另一行(脚本中的最后一行)调用了一次。
您连续调用了greet()函数3次,这就是为什么它打印1 2 3。但是在函数console.count()之外执行了1次,这就是为什么它打印1。
来自 https://console.spec.whatwg.org/#count
1.2.1。计数(标签)
令map为关联的计数图。
如果map[label]存在,则将map[label]设置为map[label] + 1。
否则,将map[label]设置为1。
令 concat 为标签 U+003A (:)、U+0020 SPACE 的串联, 和 ToString(地图[标签])。
执行 Logger("count", « concat »)。
另请参阅 Node.js 的实际实现。