• js判断数据类型的几种方法


    1. typeof

      鉴于 ECMAScript 是松散类型的,因此需要有种手段来检测给定变量的数据类型,typeof 就是负责提供这方面信息的操作符。对一个值使用 typeof 操作符可能返回下列某个字符串:( 缺点:对于数组和对象或null 都会返回object)
     
      "undefined"    ——如果这个值未定义;
      "boolean"    ——如果这个值是布尔值;
      "string"     ——如果这个值是字符串;
      "number"         ——如果这个值是数值;
      "object"   ——如果这个值是对象或 null;
      "function"  ——如果这个值是函数。
     
      例如:
      var message = "some string";
        alert(typeof message);   //"string"
        alert(typeof(message));    //"string"
        alert(typeof 95);             //"number"  
        var y=true;
        alert(typeof y);      //"boolean"
        var a = function() { };   
      alert(typeof a);     //"function"
      var b = [1,2,3];
        alert(typeof b);        //"object"
      var c = { }; 
      alert(typeof c);     //"object"
      var d = null;
      alert(typeof d);       //"object"
     
     
    2. 类型判断
      类型判断,一般就是判断是否是数组,是否是空对象。    
       (1) 判断是否是数组 
      定义一个数组:var a = [1,2,3,4,5];

      方法一:

      toString.call(a); // "[object Array]" 

      方法二:

      a instanceof Array; //true 

      方法三:

      a.constructor == Array; //true

      第一种方法比较通用,也就是Object.prototype.toString.call(a)的简写。

      instanceof和constructor判断的变量,必须在当前页面声明的,比如,一个页面(父页面)有一个框架,框架中引用了一个页面(子页面),在子页面中声明了一个a,并将其赋值给父页面的一个变量,这时判断该变量,Array == object.constructor会返回false;

      (2)判断是否是空对象

         定义一个变量:var obj = {};

      方法一:

      JSON.stringify(obj); // "{}"通过转换成JSON对象来判断是否是空大括号

      方法二:

      if(obj.id){ //如果属性id存在....}这个方法比较土,大多数人都能想到,前提是得知道对象中有某个属性。

      方法三: 

      function isEmptyObject(e) {
        var t; for (t in e) return !1; return !0 } //true isEmptyObject(obj);
        //false isEmptyObject({ "a":1, "b":2});
     
      这个方法是jQuery的isEmptyObject()方法的实现方式。
  • 相关阅读:
    [hdu4035]maze
    [codeforce][148d]
    [bzoj3507]通配符匹配
    [BZOJ4831]
    子串
    【洛谷1373】小a和uim之大逃离
    【JZOJ6303】演员
    [jzoj6296]选票
    字符串哈希
    [ABC137d&e]RE
  • 原文地址:https://www.cnblogs.com/cyfeng/p/12098008.html
Copyright © 2020-2023  润新知