zoukankan      html  css  js  c++  java
  • JS 中类型鉴别

      JS中的基本类型有:数字(Number(NaN,Infinity)),字符串(String),Undefined,Null,Boolean

      引用类型有:数组(Array),对象(Object),函数(Function),日期(Data),正则(RegExp)

    鉴别类型一般使用typeof关键字,但是typeof运算符有很多坑:

      1:对null返回的是object,但是不能将属性和方法加在null身上。

      2:对NaN和Infinity返回的是number,但是这两个量是不可以用来做数值计算的。

      3:不能区分对象,数组,Data,正则及null,都返回的是object。

      最完整的方法是使用Object.prototype.toString方法(前提是此方法没有被重写的情况下)来鉴别各种类型。

      typeof Object.prototype.toString.call(XX)
    number number [object Number]
     NaN  number  [object Number]
     Infinity number [object Number]
    string     string [object String]
    undefined undefined [object Undefined]
    null object [object Null]
    bool boolean [object Boolean]
    array object [object Array]
    obj object [object Object]
    fun function [object Function]
    Data     object [object Data]
    RegExp object [object RegExp]

     

      

     

      此方法唯一的缺点就是没办法区分NaN,Infinity和number,其实从本质上说NaN和Infinity是number的两个特例,所以按照number来标识也不错,只是以后遇见需要判断里的时候要先排除这两个特例再辅之Object.prototype.tostring.call()就能完善的区分各种类型了.

  • 相关阅读:
    CentOS安装sctp协议
    视频编码未来简史
    Linux内核:分析coredump文件
    skb的两个函数pskb_copy和skb_copy
    《Linux内核设计与实现》读书笔记(十二)- 内存管理
    Linux内核学习笔记之seq_file接口创建可读写proc文件
    内核如何签名
    《女士品茶》与统计检验
    K近邻算法
    PCA原理分析
  • 原文地址:https://www.cnblogs.com/Flychown/p/6222992.html
Copyright © 2011-2022 走看看