JS数据类型

数据类型分类

基石篇 - 图1

数据类型检测

基石篇 - 图2

  • 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

  1. > 手动实现Instanceof
  2. - **Object.prototype.toString.call()**
  3. - 无论基本类型还是引用类型,都能准确的判断类型, 返回"[object Xxx]"的字符串
  4. > 手动实现判断所有数据类型的函数
  5. ```javascript
  6. function getType(obj){
  7. return Object.prototype.toString.call(obj).replace(/^\[object (\S+)\]$/,'$1'); // 不用正则则么写?
  8. }
  9. let dataType = [1,'1',true, null, undefined, Symbol(), [], function(){},{},/123/g]
  10. dataType.forEach((item)=>{
  11. getType(item)
  12. })
  13. //结果
  14. Number
  15. String
  16. Boolean
  17. Null
  18. Undefined
  19. Symbol
  20. Array
  21. Function
  22. Object
  23. RegExp

实现深浅拷贝


继承实现:JS常见的6种继承方式

JS 实现继承的几种方式

1.第一种:原型链继承
原型链继承是比较常见的继承方式之一,其中涉及的构造函数、原型和实例,三者之间存在着一定的关系,即每一个构造函数都有一个原型对象,原型对象又包含一个指向构造函数的指针,而实例则包含一个原型对象的指针。
4.1.原型.png


继承进阶:如何实现 new、apply、call、bind的底层逻辑


函数那些事:JS闭包剖析


进阶练习:实现JSON.Stringfy方法