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

时间: 2018-08-16阅读: 3113标签: js技巧

我们来判断一个值是否为数字,可以把它转化为数字,看是否为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原创,允许转载,但转载必须附带首发链接。来源:https://blog.csdn.net/FungLeo/article/details/80535029


站长推荐

1.云服务推荐: 国内主流云服务商,各类云产品的最新活动,优惠券领取。地址:阿里云腾讯云华为云

链接: http://www.fly63.com/article/detial/1014

JS禁止打开控制台

主要为了通过禁止打开控制台,防止别人进行代码调试。禁止右键查看源码和F12;通过页面宽度变化监测控制台;利用控制台特性改写对象toString;利用控制台特性进行监听dom属性

js求数组的最大值--奇技淫巧和笨方法

js中有很多“奇技淫巧”,有时我会常常刻意去用这些“奇技淫巧”(注意,我不是在反对用它,只是有时其实没必要用)。比如,求数组中的最大值,js中Array没有原生的求最大值的方法,但是Math有呀

js中一些怪异的写法_神奇的JavaScript

JavaScript是一门伟大的语言,作为一门弱类型语言,它拥有非常简洁的语法,庞大的生态系统,灵活性非常强大。js各种神奇的写法,所谓的神奇也就是罕见。下面就开始介绍这些怪异的写法吧。

js实现浏览器:加入收藏、设为首页、保存到桌面的方法功能

在一些网页中我们可以常见的“设置为首页”和“ 收藏本站”,以及“保存到桌面”等功能,使用js是如何实现的呢?这里为大家分享下实现方法,完美兼容IE,chrome,ff等浏览器

值得收藏的15条高效JS技巧

延迟函数delay、分割指定长度的元素数组、获取数组交集、函数柯里化、字符串前面空格去除与替换、获取当前子元素是其父元素下子元素的排位

js中实现sleep暂停/睡眠功能的多种方式

由于很多语言都有sleep函数,但是js中没有,下面介绍JavaScript实现类似sleep的多种方式:利用循环、Promise版本 、通过generate来实现、通过 Async/Await 封装、使用node-sleep

带你理解 JS 容易出错的坑和细节

本文重在列出并解释说明 JS 中各种容易出错的坑和细节,供大家更加深入理解为什么 JS 会这样

UglifyJS3的使用,UglifyJS3中文文档

使用UglifyJS合并/压缩JavaScript ,UglifyJS3与UglifyJS2相比API变动较大,简化较多,文档也增加了不少示例。

JS技巧技法总结

闭包原理、数组展平、前端语音(在项目中需要对ajax请求返回的消息进行语音播报,str 为返回的data)、Proxy 数据绑定和监听、计数器

js语言中常见错误总汇

事实证明很多这些 null 或 undefined 的错误是普遍存在的。 一个类似于 Typescript 这样的好的静态类型检查系统,当设置为严格的编译选项时,能够帮助开发者避免这些错误。

点击更多...

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!