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
js的基本数据类型  第⼀种⽅法⽐较通⽤,也就是String.call(a)的简写。
  instanceof和constructor判断的变量,必须在当前页⾯声明的,⽐如,⼀个页⾯(⽗页⾯)有⼀个框架,框架中引⽤了⼀个页⾯(⼦页⾯),在⼦页⾯中声明了⼀个a,并将其赋值给⽗页⾯的⼀个变量,这时判断该变量,Array == structor会返回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()⽅法的实现⽅式。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。