计数 - console.count()

console.count([obj]) 将一个计数器放在作为参数提供的对象的值上。每次调用此方法时,计数器都会增加(空字符串''除外)。调试控制台中将根据以下格式显示标签和数字:

[label]: X

label 表示作为参数传递的对象的值,X 表示计数器的值。

始终考虑对象的值,即使变量是作为参数提供的:

var o1 = 1, o2 = '2', o3 = "";
console.count(o1);
console.count(o2);
console.count(o3);

console.count(1);
console.count('2');
console.count('');

显示:

1: 1
2: 1
: 1
1: 2
2: 2
: 1

带数字的字符串将转换为 Number 对象:

console.count(42.3);
console.count(Number('42.3'));
console.count('42.3');

显示:

42.3: 1
42.3: 2
42.3: 3

函数始终指向全局 Function 对象:

console.count(console.constructor);
console.count(function(){});
console.count(Object);
var fn1 = function myfn(){};
console.count(fn1);
console.count(Number);

显示:

[object Function]: 1
[object Function]: 2
[object Function]: 3
[object Function]: 4
[object Function]: 5

某些对象获取与其引用的对象类型相关联的特定计数器:

console.count(undefined);
console.count(document.Batman);
var obj;
console.count(obj);
console.count(Number(undefined));
console.count(NaN);
console.count(NaN+3);
console.count(1/0);
console.count(String(1/0));
console.count(window);
console.count(document);
console.count(console);
console.count(console.__proto__);
console.count(console.constructor.prototype);
console.count(console.__proto__.constructor.prototype);
console.count(Object.getPrototypeOf(console));
console.count(null);

显示:

undefined: 1
undefined: 2
undefined: 3
NaN: 1
NaN: 2
NaN: 3
Infinity: 1
Infinity: 2
[object Window]: 1
[object HTMLDocument]: 1
[object Object]: 1
[object Object]: 2
[object Object]: 3
[object Object]: 4
[object Object]: 5
null: 1

空字符串或缺少参数

如果在调试控制台中顺序输入 count 方法时没有提供参数,则假定空字符串为参数,即:

> console.count();
  : 1
> console.count('');
  : 2
> console.count("");
  : 3