• 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更复杂的用法有必要去深究一下,这里就不班门弄斧了

    不积跬步无以至千里
  • 相关阅读:
    仿windows的嵌入式GUI系统(一)
    入群必看内容。
    嵌入式开发入门(2)
    仿windows消息机制的嵌入式GUI系统(二)(未完)
    使用硬件定时器软模拟多个定时器(8.15改进版)
    Python 文件目录操作
    C/C++ cast
    C/C++ basic
    C/C++ debug
    C++ 引用返回值
  • 原文地址:https://www.cnblogs.com/lyt0207/p/11812658.html
Copyright © 2020-2023  润新知