判断变量的类型

JS中,如何判断变量的类型?

const foo = '变量foo,可以是任何类型';

if (typeof foo === 'string') {
  // 字符串处理
}

if (typeof foo === 'number') {
  // 数值型处理
}

if (Array.isArray(foo)) {
  // 数组处理
}

if (typeof foo === 'function') {
  // 函数处理
}

/* 判断是否为Promise对象 */
function isPromise(obj) {
  return (
    !!obj &&
    (typeof obj === 'object' || typeof obj === 'function') &&
    typeof obj.then === 'function'
  );
}

if (isPromise(foo)) {
  // Promise对象处理
}

自定义类的类型判断

在类的实例上面调用方法,其实就是调用原型上的方法。利用这一特性,可以进行类型判断。

class MyClass {}
let myClass = new MyClass();

myClass.constructor === MyClass.prototype.constructor // true
You Might Also Like
发表评论