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

    不积跬步无以至千里
  • 相关阅读:
    如何用ps简单快速扣头发丝
    thinkphp在iis上不是出现500错误
    PHP数组函数详解大全
    一个搜图的好网站
    手把手编写PHP MVC框架实例教程
    centos配置epel和remi源
    CentOS 7 yum 安装php5.6
    20162322 朱娅霖 作业005&006 栈,队列
    2017-2018-1 bug终结者 团队博客002
    2017-2018-1 bug终结者 团队博客001
  • 原文地址:https://www.cnblogs.com/lyt0207/p/11812658.html
Copyright © 2011-2022 走看看