zoukankan      html  css  js  c++  java
  • js instanceof和typeof的区别及简单用法

    js中判断一个变量的类型,通常的做法是用typeof方法,看它返回的是 什么,但是对于数组和对象它返回的都是object,ECMAScript引入了java中的instanceof 方法来弥补这一缺陷,来判断该变量是否是某种类型,它的返回值只有truefalse。

    一、typeOf

    二、instanceof

    1 [] instanceof Object //false
    2 
    3 [] instanceof Array //true
    4 
    5 {} instanceof Object  // true
    6 
    7 {} instanceof Array // false

    结合这两种方法,可以通过封装函数来判断某个变量的类型

     1 function getDataType(obj) {
     2         if(obj === null){
     3             return "null";
     4         }else if(typeof obj === "object"){
     5             if(obj instanceof Array){
     6                 return "array";
     7             }else{
     8                 return "object";
     9             }
    10         }else{
    11             return typeof obj;
    12         }
    13     }
    14 
    15     console.log(getDataType(111)); //number
    16     console.log(getDataType("fasd"));//string
    17     console.log(getDataType(true));//boolean
    18     console.log(getDataType(function () { }));//function
    19     console.log(getDataType([]));//array
    20     console.log(getDataType({}));//object
    21     console.log(getDataType(null));//null
    22     console.log(getDataType(undefined));//undefined
    23     console.log(getDataType(/
    /));//object
    24     var a;
    25     console.log(getDataType(a));//undefined 如果传入没有声明的变量会直接报错

    对于instanceof更复杂的用法有必要去深究一下,这里就不班门弄斧了

    不积跬步无以至千里
  • 相关阅读:
    Chapter 1. 庞加莱群、单粒子态和时间空间反演
    QI Chapter 1
    Introduction to QFT
    在visual studio 2017中配置Qt
    BUAA软工第0次作业
    附加作业(个人)
    个人作业3——个人总结(Alpha阶段)
    单元测试
    英语学习app案例分析
    小学生四则运算改进版之
  • 原文地址:https://www.cnblogs.com/lyt0207/p/11812658.html
Copyright © 2011-2022 走看看