首页  >  问答  >  正文

javascript - js判断负整数

在司徒正美的书里看到一个判断负整数的例子

if (+n === n && !(n % 1) && n >= 0){

}

不能理解
在控制台里测试了一下

+1.1 === 1.1
>true
+1 === 1
>true

这个加号是什么作用

PHPzPHPz2749 天前710

全部回复(3)我来回复

  • 大家讲道理

    大家讲道理2017-04-10 14:27:45

    根据 @Humphry 的方法,测试了下,原来 +- 都可以强制转换为 Number

    回复
    0
  • 黄舟

    黄舟2017-04-10 14:27:45

    其实我不太喜欢这种卖弄技巧的做法,可读性比较差。这么写的前提是一起工作的人都能够很好地理解这段代码,不然的话,我不喜欢这种奇技淫巧。
    要我写的话,我宁愿这么写:

    var isNegInt = function (n) {
        return (typeof n === 'number' && n < 0 && Number.isInteger(n));
    }
    

    然后实际要用的时候直接用:

    if (isNegInt(n)) {
        //...
    }
    

    这样比较清晰。

    回复
    0
  • PHP中文网

    PHP中文网2017-04-10 14:27:45

    +n === n 判断是数字
    !(n % 1) 判断是整数,用Number.isInteger(x)也行
    n >= 0 判断是非负

    回复
    0
  • 取消回复