在知乎上看到一个专栏介绍prototype和class的区别,以下为笔记:
_proto_
prototypeobj._proto_
windows.Object.prototype.toString.call(obj)
比如很多人不懂什么是伪数组,很简单:如果一个数组的 __proto__ 直接或间接指向 Array.prototye(用到了数组的共用属性),那么就是真数组如果一个数组的 __proto__ 没有直接或间接指向 Array.prototye,那么就是伪数组var realArr = {0: 'a', 1:'b', length: 2}
realArr.__proto__ = Array.prototype
// 这就是真数组(并不完全是)
// 基本等价于 realArr = ['a', 'b']
realArr.push !== undefined // true
var fakeArr = {0: 'a', 1:'b', length: 2}
// 这就是伪数组
realArr.push === undefined // true
const str1 = "Hello";
const str2 = "world";
console.log(str1, str2)
console.log("%d年%d月%d日",2015, 09, 22);
console.debug()
console.info()
console.warn()
console.error()
输出的颜色与图标不同
console.table()
const people = {"person1": {"fname": "san", "lname": "zhang"},
"person2": {"fname": "si", "lname":"li"},
"person3": {"fname": "wu", "lname":"wang"}
}
以表格的形式输出,只能显示二维信息的特点
代码执行时间
console.time("for-test");
for(let i = 0; i < 10000; i++){
;
}
console.timeEnd("for-test");
console.assert()
const arr = [1, 2, 3];
console.assert(arr.length === 4);
代码被执行多少次
console.count()
function func() {
console.count("label");
}
for(let i = 0; i < 3; i++) {
func();
}
输出 层级关系
console.group("1");
console.log("1-1");
console.log("1-2");
console.dir()
chrome
firefox
console.dir(document.body)
DOM元素
console.profile();
console.profileEnd();
cpu使用相关信息