前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >javascript 判断参数是否为非0整数数字或者整数数字字符串的简单方法(小装逼)

javascript 判断参数是否为非0整数数字或者整数数字字符串的简单方法(小装逼)

作者头像
FungLeo
发布2019-05-27 08:49:46
1.3K0
发布2019-05-27 08:49:46
举报

javascript 判断参数是否为非0整数数字或者整数数字字符串的简单方法(小装逼)

我们来判断一个值是否为数字,可以把它转化为数字,看是否为NaN 然后,再判断是否等于0即可简单的来实现判断了。

所以,代码如下

代码语言:javascript
复制
(num) => {
  if (!isNaN(parseInt(num))){
    if (num !== 0) {
      // do something
    }
  }
}

逻辑非常清楚。但是有点冗余。其实 isNaN 对于非数字的输出都是 true ,所以,代码可以修改为:

代码语言:javascript
复制
(num) => {
  if (!isNaN(num)){
    if (num !== 0) {
      // do something
    }
  }
}

好一点,但是两层判断,感觉恶心。所以继续优化

代码语言:javascript
复制
(num) => {
  if (!isNaN(num) && parseInt(num) !== 0){
    // do something
  }
}

去掉一层循环,好了很多。但是这个代码还是感觉恶心。能不能再优化一下呢?

代码语言:javascript
复制
(num) => {
  if (!!+num) {
    // do something
  }
}

看不懂了,得解释以下, + 可以把任何东西变成 数字或者 NaN ,而如果值等于0,转化为布尔值也是为false,所以,判断可以合并为 !!+num 即可。

看上去不错,换个思路,既然 0 是false 那么我们能不能把所有的非数字或者数字字符串的内容变成 0 呢?代码出炉:

代码语言:javascript
复制
(num) => {
  if (~~num) {
    // do something
  }
}

这里用了两个字符,比上面的三个字符更加精简了。我们能不能用一个字符来实现呢?可以。判断条件是可以自动转化为布尔值的。所以,上上个例子中的 !!是多余的。

代码语言:javascript
复制
(num) => {
  if (+num) {
    // do something
  }
}
 
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018年04月26日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • javascript 判断参数是否为非0整数数字或者整数数字字符串的简单方法(小装逼)
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档