数据类型——方法总结(可能有不对的)

假设:var arr=['100px','abc'-6,[],-98765,34,-2,0,'300', ,function(){alert(1);},null,document,[],true,'200px'-30,'23.45元',5,Number('abc'),function(){alert(3);}];

1、判断一个数是整数还是小数

  if(parseInt(num)===parseFloat(num)) {

    console.log(num + '是整数');

  }else{

    console.log(num + '是小数');

  }

 

2、如何把数字类型中的数字过滤出来

  If(typeof arr[i]==='number'&&!isNaN(arr[i]))

  If(typeof arr[i]==='number'&&arr[i]==arr[i])   //  因为NaN跟它本身不相等,可以排除掉NaN

 

3、isNaN()  

  经过Number()筛选,是NaN,就true

  经过Number()筛选,是数字,就false

   !isNaN()

  经过Number()筛选,是NaN,就false

  经过Number()筛选,是数字,就true

* 而经过Number()筛选出数字的,有可能是   纯数字、纯数字字符串、布尔值、简单的数组

 

4、找出可以转成数字的

  // 方法一: 

  for( var i=0;i<arr.length;i++ ) {
    if(!isNaN(arr[i])||parseFloat(arr[i])) {
      console.log(arr[i]);
    }
  }

  // 方法二:会把 []、null 给漏掉,因为0、null、undefined在if里都是false,也就是if(0)==if(false) if(null)==if(false) if(undefined)==if(false),放在if里面,它们就跑到false那里去执行了

  for( var i=0;i<arr.length;i++ ) {

    if(Number(arr[i])||parseFloat(arr[i])) {
      console.log(arr[i]);
    }
  }

 PS:数据类型:数字类型、字符串、布尔值、函数、对象(元素、[] 、{} 、null)、未定义

  真:非0的数字、非空字符串、true、函数、能找到的元素、[]、{}

  假:0、NaN、空字符串、false、null、未定义

 

5、parseInt()  parseFloat() 可以转数字的有:纯数字   字符串(至少第一个字符是数字)  非空数组(根据第一个逗号之前的数转)

   Number()  可以转数字的有:纯数字   纯数字字符串   布尔值   null   数组( []  [纯数字] )

parseFloat()&&Number()  :纯数字  纯数字字符串  数组( [纯数字] )

parseFloat()||Number()    :纯数字 字符串( 至少第一个字符是数字 ) 布尔值  null   数组(简单的数组) ,但是要注意的是,如果放在if中做判断,0  null  这样的会是false的,参见方法二

 

posted @ 2015-10-21 14:39  Y_Y1208  阅读(269)  评论(0编辑  收藏  举报