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]"的字符串
> 手动实现判断所有数据类型的函数
```javascript
function 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)
})
//结果
Number
String
Boolean
Null
Undefined
Symbol
Array
Function
Object
RegExp
实现深浅拷贝
继承实现:JS常见的6种继承方式
JS 实现继承的几种方式
1.第一种:原型链继承
原型链继承是比较常见的继承方式之一,其中涉及的构造函数、原型和实例,三者之间存在着一定的关系,即每一个构造函数都有一个原型对象,原型对象又包含一个指向构造函数的指针,而实例则包含一个原型对象的指针。