zoukankan      html  css  js  c++  java
  • 常用判断js数据类型 Jim

    通常情况下用typeof 判断就可以了,遇到预知Object类型的情况可以选用instanceof或constructor方法,实在没辙就使用$.type()方法。

    一、typeof
    alert(typeof a)  ------------> string
    alert(typeof b)  ------------> number
    alert(typeof c)  ------------> object
    alert(typeof d)  ------------> object
    alert(typeof e)  ------------> function
    alert(typeof f)  ------------> function

    typeof无法判断null,因为null的机器码均为0,so用typeof判断null直接当做对象看待

    alert(typeof null)  ------------> object
    二、判断已知对象类型的方法: instanceof
    alert(c instanceof Array) ---------------> true
    alert(d instanceof Date) ---------------->true
    new Data('2021/11/23') instanceof Data --->true
    alert(f instanceof Function) ------------> true
    alert(f instanceof function) ------------> false
    
    注:instanceof 后面一定要是对象类型,并且大小写不能错,
    原理就是只要右边变量的prototype在左边变量的原型链即可。
    三、根据对象的constructor判断: constructor
    
    alert(c.constructor === Array) ----------> true
    alert(d.constructor === Date) -----------> true
    alert(e.constructor === Function) -------> true
    四、通用的Object.prototype.toString
    alert(Object.prototype.toString.call(a) === ‘[object String]') -------> true;
    alert(Object.prototype.toString.call(b) === ‘[object Number]') -------> true;
    alert(Object.prototype.toString.call(c) === ‘[object Array]') -------> true;
    alert(Object.prototype.toString.call(d) === ‘[object Date]') -------> true;
    alert(Object.prototype.toString.call(e) === ‘[object Function]') -------> true;
    alert(Object.prototype.toString.call(f) === ‘[object Function]') -------> true;
    五、万能之王jquery.type()---->简写$.type()
    jQuery.type( true ) === "boolean"
    jQuery.type( 3 ) === "number"
    jQuery.type( "test" ) === "string"
    jQuery.type( function(){} ) === "function"
    jQuery.type( [] ) === "array"
    jQuery.type( new Date() ) === "date"
    jQuery.type( new Error() ) === "error" // as of jQuery 1.9
    jQuery.type( /test/ ) === "regexp"
  • 相关阅读:
    SQL性能优化:如何定位网络性能问题
    ORACLE 10升级到10.2.0.5 Patch Set遇到的内核参数检测失败问题
    Linux 僵尸进程查杀
    Linux 虚拟机网络适配器从E1000改为VMXNET3
    v$session中server为none与shared值解析
    SQL SERVER导出特殊格式的平面文件
    XtraBackup出现 Can't connect to local MySQL server through socket '/tmp/mysql.sock'
    CentOS 6.6安装Xtrabackup RPM提示缺少libev.so.4()
    SQL Server Replication 中关于视图的点滴
    ORA-00988: missing or invalid password(s)
  • 原文地址:https://www.cnblogs.com/huoshengmiao/p/15595019.html
Copyright © 2011-2022 走看看