search

Home  >  Q&A  >  body text

javascript - js判断负整数

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

1

2

3

4

<code class="lang-js">if (+n === n && !(n % 1) && n >= 0){

 

}

</code>

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

1

2

3

4

5

<code>+1.1 === 1.1

>true

+1 === 1

>true

</code>

这个加号是什么作用

PHPzPHPz2894 days ago751

reply all(3)I'll reply

  • 大家讲道理

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

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

    reply
    0
  • 黄舟

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

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

    1

    2

    3

    4

    <code>var isNegInt = function (n) {

        return (typeof n === 'number' && n < 0 && Number.isInteger(n));

    }

    </code>

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

    1

    2

    3

    4

    <code>if (isNegInt(n)) {

        //...

    }

    </code>

    这样比较清晰。

    reply
    0
  • PHP中文网

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

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

    reply
    0
  • Cancelreply