0是不是整数
javascript 判断参数是否为非0整数数字或者整数数字字符串的简单方法(小装逼)
我们来判断一个值是否为数字,可以把它转化为数字,看是否为NaN
然后,再判断是否等于0即可简单的来实现判断了。
所以,代码如下
(num) => {
if (!isNaN(parseInt(num))){
if (num !== 0) {
// do something
}
}
}
逻辑非常清楚。但是有点冗余。其实 isNaN
对于非数字的输出都是 true
,所以,代码可以修改为:
(num) => {
if (!isNaN(num)){
if (num !== 0) {
// do something
}
}
}
好一点,但是两层判断,感觉恶心。所以继续优化
(num) => {
if (!isNaN(num) && parseInt(num) !== 0){
// do something
}
}
去掉一层循环,好了很多。但是这个代码还是感觉恶心。能不能再优化一下呢?
(num) => {
if (!!+num) {
// do something
}
}
看不懂了,得解释以下, +
可以把任何东西变成 数字或者 NaN
,而如果值等于0,转化为布尔值也是为false
,所以,判断可以合并为 !!+num
即可。
看上去不错,换个思路,既然 0 是false
那么我们能不能把所有的非数字或者数字字符串的内容变成 0 呢?代码出炉:
(num) => {
if (~~num) {
// do something
}
}
这里用了两个字符,比上面的三个字符更加精简了。我们能不能用一个字符来实现呢?可以。判断条件是可以自动转化为布尔值的。所以,上上个例子中的 !!
是多余的。
(num) => {
if (+num) {
// do something
}
}
请谨慎在项目中使用这样的代码,挨打不要找我。
本文由FungLeo原创,允许转载,但转载必须附带首发链接。
相关阅读
产品设计是产品组成的一项重要部分,因此对于产品而言,视觉设计并非完全交付于设计师,对于产品经理本身而言也需略懂一二。本篇文章是
excel怎么利用IF判断条件是否成立?在Excel工作表中,灵活使用各种输入技巧,简捷快速地输入信息,提高工作效率;IF判断函数,用来判断
看到很多SWOT分析,竞争对手都没有,居然出来报告了。深深不解。网上也没有找到特别让我满意的说法。虽然swot分析法现在好像过时了,但
影响复购率的因素主要是:商品质量、服务质量、物流体验(效率、服务),对于部分o2o类公司可能只剩下服务。最根本的原因,就是用户在花钱
很多场合下,产品经理都会被问到一个经典问题–什么样的产品才算是个好产品?今天我来尝试做下回答:个人觉得关于“好,坏”的判断