zoukankan      html  css  js  c++  java
  • JS判断数据类型的方法

    判断数据类型的方法

    var red = "shark";             
    var orangered = "100";
    var ember = 1.7976931348623157E+10308;
    var crimson = -1.7976931348623157E+10308;
    var orange = 123456;
    var yellow = true;
    var green = undefined;         
    var cyan = null;
    var blue = ['a','s','d'];      
    var magenta = {};              
    var purple = function(){};     
    var yellowgreen = new Date();
    var vermilion = /123/;          
    var black = [red,orangered,ember,crimson,orange,yellow,green,cyan,blue,magenta,purple,yellowgreen,vermilion];
    
    • Array.isArray():只能检测Array数据类型
      console.log("### 'Array.isArray()'数据类型检测:只能检测Array数据类型");
      console.log(blue + "的返回值为 -> " + Array.isArray(blue));
      console.log("");
    
    • instanceof:只能检测Function、Object、Array、Date、RegExp等数据类型
      console.log("### 'instanceof'数据类型检测:只能检测Function、Object、Array、Date、RegExp等数据类型");
      console.log(purple instanceof Function);
      console.log(magenta instanceof Object);
      console.log(blue instanceof Array);
      console.log(yellowgreen instanceof Date);
      console.log(vermilion instanceof RegExp);
      console.log("");
    
    • typeof:不能检测null,Array,Object,Data,Regexp的数据类型,返回值都是Object
      console.log("### 'typeof'数据类型检测:不能检测null,Array,Object,Data,Regexp的数据类型");
      for(var i=0;i<black.length;i++){
          console.log(black[i] + "的数据类型为 -> " + typeof black[i]);
      }
      console.log("");
    
    • Object.prototype.toString.call():数据类型检测最佳方案
      console.log("### 'Object.prototype.toString.call()'数据类型检测:全类型检测");
      for(var i=0;i<black.length;i++){
          console.log(Object.prototype.toString.call(black[i]));
      }
      console.log("");
    
    • isNaN():检测是否为非数字类型,与isFinite()相反
      • String、undefined、Array、Object,Function、RegExp 返回true值
      • Number、Boolean、Null、Date 返回false值
      • 无穷数 返回false值
      console.log("### 'isNaN()'数据类型检测:检测非数字类型");
      for(var i=0;i<black.length;i++){
          console.log(black[i] + "的返回值为 -> " + isNaN(black[i]));
      }
      console.log("");
    
    • isFinite():检测有穷数,与isNaN()相反
      • String、undefined、Array、Object,Function、RegExp 返回false值
      • Number、Boolean、Null、Date 返回true值
      • 无穷数 返回false值
      console.log("### 'isFinite()'数据类型检测:检测有穷数,数字类型返回true值");
      for(var i=0;i<black.length;i++){
          console.log(black[i] + "的数据类型为 -> " + isFinite(black[i]));
      }
      console.log("");
    
    • Number.isFinite():检测有穷纯数字
      • Number类型为true
      console.log("### 'Number.isFinite()'数据类型检测:检测有穷纯数字");
      for(var i=0;i<black.length;i++){
          console.log(black[i] + "的数据类型为 -> " + Number.isFinite(black[i]));
      }
      console.log("");
    
    • Infinity属性:检测无穷数
      • 无穷数返回值为Infinity或-Infinity
      console.log("### 'Infinity'属性检测无穷数");
      for(var i=0;i<black.length;i++){
          if(black[i] == 'Infinity'){
              console.log(black[i] + "的数据为 -> 正无穷数");
          }else if (black[i] == '-Infinity'){
              console.log(black[i] + "的数据为 -> 负无穷数");
          }else{
              console.log(black[i] + "的数据为 -> 有穷数");
          }
      }
      console.log("");
    
  • 相关阅读:
    系统维护相关问题
    Python环境维护
    哈希表解决字符串问题
    论文笔记二:《A Tutoral on Spectral Clustering》
    论文笔记之哈希学习比较--《Supervised Hashing with Kernels》《Towards Optimal Binary Code Learning via Ordinal Embedding》《Top Rank Supervised Binary Coding for Visual Search》
    Java中String、StringBuffer、StringBuilder的比较与源 代码分析
    浙大pat1040 Longest Symmetric String(25 分)
    浙大pat1039 Course List for Student(25 分)
    浙大pat---1036 Boys vs Girls (25)
    百炼oj-4151:电影节
  • 原文地址:https://www.cnblogs.com/SharkJiao/p/13424284.html
Copyright © 2011-2022 走看看