目录-入口-由此开始-大纲-总览-概括-枢纽-指导-指引-总领js

常见搭配

判断所有的类型

可能出现的类型范围比较小

  • 选择性的选择判断方式

typeof运算符

child::

typeof运算符

  • 返回操作数(类型)的类型

1. 适用范围:

  1. typeof常用于获取函数的类型

1. 不适用场景

  1. 除了function, 不能获取引用类型与null
    1. 不管什么对象或null, 都统一返回’object’

1. 语法

1. 返回值:

只能是以下字符串: “string” | “number” | “bigint” | “boolean” | “symbol” | “undefined” | “object” | “function” | “Number”

实例

console.log(typeof new Date()); // object console.log(typeof new RegExp()); // object
指向原始笔记的链接

instanceof运算符

child::

instanceof

适用范围:

1. 场景:

  • 用于判断自定义对象
    • 判断一个实例对象是不是由一个类实例化得来的

2. 不适用场景

  • 不能获取基本数据类型
    • 运算符左边不能是基本数据类型

梗概:

对于a instanceof A, 判断A.prototype是否出现在a实例对象的原型链上(详见prototype(原型对象))

指向原始笔记的链接

原型上的constructor属性⭐

child::

使用constructor属性判断类型

适用范围:

1. 场景

  • 几乎所有的类型都能使用该方法判断,除了undefined和null,其他都有constructor属性
    • 但只要稍作修改即可

梗概

  • 判断对象?.constructor === 某一种类型的构造函数

说明

实例

class Test {
    word: string;
    constructor() {
        this.word = 'hi'
    }
}
let obj = new Test()
console.log(obj.constructor === Test)//true
指向原始笔记的链接

toString方法⭐

child::

使用toString方法判断类型

JS

适用范围:

1. 场景

  • 基本数据类型
  • js内置的类

2. 不适用场景

  • 用户自定义的类
    • 统一返回[object Object]

实例

Object.prototype.toString.call('Hello')//返回[object String]
Object.prototype.toString.call(false); //返回[object Boolean]
Object.prototype.toString.call(false); //返回[object Null]
指向原始笔记的链接