我是靠谱客的博主 威武小熊猫,最近开发中收集的这篇文章主要介绍JavaScript中的typeof和instanceof一、typeof二、instanceof,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

typeof和instanceof

  • 一、typeof
    • 1. 基本介绍
    • 2. 具体使用
    • 3. 缺点
  • 二、instanceof
    • 1. 基本介绍
    • 2. 具体使用
    • 3. 缺点

一、typeof

1. 基本介绍

描述:typeof用于判断一个变量的类型,返回值主要有:“number”、 “string”、“boolean”、“object”、“function”、“undefined”、“symbol”
语法:typeof operand
operand:要被判断类型的变量
返回值:operand的类型

2. 具体使用

  console.log(typeof 1); // number
  console.log(typeof '1');// string
  console.log(typeof false);// boolean
  console.log(typeof {});// object
  console.log(typeof function () {

  });// function
  let a
  console.log(typeof a);// undefined
  let b = Symbol()
  console.log(typeof b);// symbol

3. 缺点

typeof在判断基本类型的时候是非常好用的,但是在判断引用类型的时候就有些捉襟见肘了
例如:

  console.log(typeof {});// object
  console.log(typeof []);// object
  console.log(typeof null);// object

这个时候就应该使用instanceof了

二、instanceof

1. 基本介绍

描述:instanceof用来检查A的原型链上是否存在B的原型,或者说,A是不是另一个B的实例
语法:A instanceof B
A:要被判断类型的变量
B:原型对象
返回值:true or false

2. 具体使用

  console.log([] instanceof Array); // true
  console.log([] instanceof Object);// true
  console.log({} instanceof Object);// true
  console.log(null instanceof Object);//false

因为instanceof是查找整个原型链的,所以只要是存在原型链上的原型对象,都可以被查找到。
例如:

  let Person = function (name) {
    this.name = name
  }
  let Friend = function (age) {
    this.age = age
  }
  Friend.prototype = new Person('lis') // 原型继承
  let tom = new Friend(16)
  console.log(tom instanceof Friend)
  console.log(tom instanceof Person)

因为Person的原型在tom的原型链上,所以tom instanceof Person为true,这也是为什么[] instanceof Object同样为true

3. 缺点

因为instanceof用来检查A的原型链上是否存在B的原型所以通过实例化得到的对象都可以判断到它的实例对象,但是不是通过实例化得到的对象就无法判断了。
例如:

  console.log(1 instanceof Number); // false
  let num = new Number('1')
  console.log(num instanceof Number); // true
  console.log('哈哈' instanceof String); //false
  let str = new String('哈哈')
  console.log(str instanceof String); // true

所以对一些基本数据类型进行判断的时候,建议使用 typeof

最后

以上就是威武小熊猫为你收集整理的JavaScript中的typeof和instanceof一、typeof二、instanceof的全部内容,希望文章能够帮你解决JavaScript中的typeof和instanceof一、typeof二、instanceof所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(48)

评论列表共有 0 条评论

立即
投稿
返回
顶部