zoukankan      html  css  js  c++  java
  • wtf js(三) number的类型不是number

    在javascript中你如何确定一个Number类型的数据是整型?

    x = 1;

    x === Math.floor(x);

    //return true

    如果要把这个写成Number的一个扩展方法呢?你会说,很简单啊,看下面:

    Number.prototype.isInteger = function(){

      return this === Math.floor(this);

    }

    x = 1;

    x.isInteger();

    //return false

    为什么呢?因为你如果你为Number添加一个方法,那在方法内部这个Number类型的数据就会变成object类型,而Math.floor(x)返回的又是Number类型,所以用"==="比较他们的值和类型是会返回false的。

    有两种解决方法:

     1.

    Number.prototype.isInteger = function(){

      return this == Math.floor(this);

    }//仅仅比较他们的值

    2.

    Number.prototype.isInteger = function(){

      return Number(this) === Math.floor(this);

    }//将this的type变成Number先

    that's all.

  • 相关阅读:
    linux下activemq安装
    java 线程方法join
    创建线程池
    游标储存过程
    返回结果集的储存过程
    linux 安装 reids 出错解决问题
    IDEAL 集成 jFINAL 问题
    oracle 游标
    oracle procedures
    Linux下安装Tomcat服务器
  • 原文地址:https://www.cnblogs.com/myself/p/1782072.html
Copyright © 2011-2022 走看看