JS数据类型
数据类型分类
数据类型检测

- typeof
- 签名:typeof ‘待检测对象’
- 检测基本数据类型,返回对应类型小写字符串(特殊:typeof null 返回 ‘object’)
- 检测引用数据类型,都是object(特殊:函数类型 typeof 返回 ‘function’)
- instanceof
- 签名: ‘待检测对象’ instanceof ‘原型对象’
- 能区分判断引用数据类型,但是不能检测基本数据类型(如果数据类型是通过构造函数初始化的,可以) ```javascript let num = new Number(1) num instanceof Number // true
let num = 1 num instanceof Number // false
> 手动实现Instanceof- **Object.prototype.toString.call()**- 无论基本类型还是引用类型,都能准确的判断类型, 返回"[object Xxx]"的字符串> 手动实现判断所有数据类型的函数```javascriptfunction getType(obj){return Object.prototype.toString.call(obj).replace(/^\[object (\S+)\]$/,'$1'); // 不用正则则么写?}let dataType = [1,'1',true, null, undefined, Symbol(), [], function(){},{},/123/g]dataType.forEach((item)=>{getType(item)})//结果NumberStringBooleanNullUndefinedSymbolArrayFunctionObjectRegExp
实现深浅拷贝
继承实现:JS常见的6种继承方式
JS 实现继承的几种方式
1.第一种:原型链继承
原型链继承是比较常见的继承方式之一,其中涉及的构造函数、原型和实例,三者之间存在着一定的关系,即每一个构造函数都有一个原型对象,原型对象又包含一个指向构造函数的指针,而实例则包含一个原型对象的指针。

