在司徒正美的书里看到一个判断负整数的例子
if (+n === n && !(n % 1) && n >= 0){ }
不能理解 在控制台里测试了一下
+1.1 === 1.1 >true +1 === 1 >true
这个加号是什么作用
学习是最好的投资!
根据 @Humphry 的方法,测试了下,原来 + 和 - 都可以强制转换为 Number 。
+
-
Number
其实我不太喜欢这种卖弄技巧的做法,可读性比较差。这么写的前提是一起工作的人都能够很好地理解这段代码,不然的话,我不喜欢这种奇技淫巧。 要我写的话,我宁愿这么写:
var isNegInt = function (n) { return (typeof n === 'number' && n < 0 && Number.isInteger(n)); }
然后实际要用的时候直接用:
if (isNegInt(n)) { //... }
这样比较清晰。
+n === n 判断是数字 !(n % 1) 判断是整数,用Number.isInteger(x)也行 n >= 0 判断是非负
根据 @Humphry 的方法,测试了下,原来
+
和-
都可以强制转换为Number
。其实我不太喜欢这种卖弄技巧的做法,可读性比较差。这么写的前提是一起工作的人都能够很好地理解这段代码,不然的话,我不喜欢这种奇技淫巧。
要我写的话,我宁愿这么写:
然后实际要用的时候直接用:
这样比较清晰。
+n === n 判断是数字
!(n % 1) 判断是整数,用Number.isInteger(x)也行
n >= 0 判断是非负