Home > Q&A > body text
在司徒正美的书里看到一个判断负整数的例子
1
2
3
4
<code class="lang-js">if (+n === n && !(n % 1) && n >= 0){
<code
class
=
"lang-js"
>
if
(+n === n && !(n % 1) && n >= 0){
}
</code>
不能理解 在控制台里测试了一下
5
<code>+1.1 === 1.1
>true
+1 === 1
这个加号是什么作用
大家讲道理2017-04-10 14:27:45
根据 @Humphry 的方法,测试了下,原来 + 和 - 都可以强制转换为 Number 。
+
-
Number
黄舟2017-04-10 14:27:45
其实我不太喜欢这种卖弄技巧的做法,可读性比较差。这么写的前提是一起工作的人都能够很好地理解这段代码,不然的话,我不喜欢这种奇技淫巧。 要我写的话,我宁愿这么写:
<code>var isNegInt = function (n) {
<code>
var
isNegInt =
function
(n) {
return (typeof n === 'number' && n < 0 && Number.isInteger(n));
return
(typeof n ===
'number'
&& n < 0 && Number.isInteger(n));
然后实际要用的时候直接用:
<code>if (isNegInt(n)) {
(isNegInt(n)) {
//...
这样比较清晰。
PHP中文网2017-04-10 14:27:45
+n === n 判断是数字 !(n % 1) 判断是整数,用Number.isInteger(x)也行 n >= 0 判断是非负