typeof 一般被用于判断一个变量的类型,我们可以利用 typeof 来判断 number, string, object, boolean, function, undefined,symbol 这七种类型,这种判断能帮助我们搞定一些问题,比如在判断不是 object 类型的数据的时候,typeof 能比较清楚的告诉我们具体是哪一类的类型。但是,很遗憾的一点是,typeof在判断一个 object 的数据的时候只能告诉我们这个数据是 object, 而不能细致的具体到是哪一种 object, 比如

在ES6之前,JavaScript 中除了基础类型外的数据类型都是对象(引用类型),没有类(class),为了实现类似继承以便复用代码的能力,JavaScript选择了原型和原型链。甚至在ES6之后,JavaScript也没有真正的类(class)。ES6虽然提供了class关键字让我么可以伪造一个“类”,但其实只是语法糖而已,本质上仍然是一个对象。ES6实现的继承,本质仍是基于原型和原型链。