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原创,允许转载,但转载必须附带首发链接。

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

  1. php 判断联通移动电信,JavaScript判断手机号运营商是移动、联通、电信还是其他(代码简单)...

    在做WEB项目时,有时候需要根据用户的输入手机号码判断该号的运营商是移动.联通.电信或其他,再根据不同的运营商做出相应的处理,下面介绍js中如何判断手机号的运营商的代码 纯js代码 var isChi ...

  2. php 判断联通移动电信,JavaScript判断手机号运营商是移动、联通、电信还是其他(代码简单)_javascript技巧...

    正则表达式判断所填入号码的运营商js代码修改版:http://www.jb51.net/article/31563.htm 在做WEB项目时,有时候需要根据用户的输入手机号码判断该号的运营商是移动.联 ...

  3. 如何用三元组表表示下列稀疏矩阵_稀疏矩阵的压缩存储可以用一个三元组表来表示稀疏矩阵中的非0元素。...

    问题:稀疏矩阵的压缩存储可以用一个三元组表来表示稀疏矩阵中的非0元素. 答案:对 更多相关问题 (本小题满分10分)已知抛物线的焦点坐标是F(0,-2), 求它的标准方程. I bought a dr ...

  4. php 判断联通移动电信,JavaScript_JavaScript判断手机号运营商是移动、联通、电信还是其他(代码简单),正则表达式判断所填入号码的 - phpStudy...

    JavaScript判断手机号运营商是移动.联通.电信还是其他(代码简单) 正则表达式判断所填入号码的运营商js代码修改版:/article/31563.htm 在做WEB项目时,有时候需要根据用户的 ...

  5. python-数字反转,输入一个非 0 十进制整数

    输入一个非 0 十进制整数(不允许前导0的存在,即不允许类似 0123 这样的输入),将其反转输出. 输入格式: 一个非 0 十进制整数 输出格式: 反转后的数字 输入样例: 在这里给出一组输入.例如 ...

  6. c语言怎样在不足n位数的整数前补0,C# String 前面不足位数补零的方法

    int i=10;方法1:Console.WriteLine(i.ToString("D5"));方法2:Console.WriteLine(i.ToString().PadLef ...

  7. javascript 判断为负数_JavaScript从零开始——标准库(7)

    今天的重点,是数值(Number)对象. 1 概念 Number对象是数值对应的包装对象,可以作为构造函数使用,也可以作为工具函数使用. 作为构造函数时,它用于生成值为数值的对象: 上面代码中,Num ...

  8. JavaScript 各种参数 详解(十二)

    程序代码 ' *---------------------------------------------------------------------------- ' * 函数:CheckIn ...

  9. JavaScript 各种参数 详解

    1.文本框焦点问题 onBlur:当失去输入焦点后产生该事件 onFocus:当输入获得焦点后,产生该文件 Onchange:当文字值改变时,产生该事件 Onselect:当文字加亮后,产生该文件 & ...

  10. JavaScript学习总结(六)——JavaScript判断数据类型总结

    最近做项目中遇到了一些关于javascript数据类型的判断处理,上网找了一下资料,并且亲自验证了各种数据类型的判断,在此做一个总结吧! 一.JS中的数据类型 1.数值型(Number):包括整数.浮 ...

最新文章

  1. 【经典课程】图灵奖得主LeCun亲授,深度学习课程在线发布
  2. 为什么各大银行一直在不遗余力推广信用卡呢?
  3. bfs:01迷宫(洛谷P1141)
  4. java中for的常规用法_Java for循环的几种用法详解
  5. SQLServer AlwaysOn在阿里云的前世今生
  6. [WPF自定义控件] 开始一个自定义控件库项目
  7. erp软件是什么软件
  8. PHP undefined index的几种解决方法
  9. Spark Basics
  10. 简短加密_神经网络训练中回调的简短实用指南
  11. Ubuntu20.04编译并运行imu_utils,并且标定IMU
  12. 博客网站软件需求分析说明书-软件工程作业
  13. 408计算机网络重点在哪,2021考研408计算机网络专业基础综合试题特点分析
  14. px,in,mm,pt,dp,dip,sp 之间的换算公式以及区别 屏幕密度
  15. 入门51单片机(STC8952RC)定时器、有关中断原理简述、寄存器设置与程序示例(包括流水灯和计时器)
  16. mapper文件报错:corresponds to your MySQL server version for the right syntax to use near ‘)VALUES( ‘
  17. 《老罗的Android之旅》专栏目录
  18. vs2019找不着工具箱了_VS2010看不到自定义控件_VS2010工具箱上找不到自定义控件...
  19. linux match函数,awk之match函数
  20. mysql添加用户授予root权限和ssl连接

热门文章

  1. 关于equal和==
  2. Pure Strategy Game
  3. 双非计算机硕士在郑州,双非院校的研究生有必要读吗?答案非常现实!
  4. Python 计算变上限二重积分的数值模拟基础
  5. 读《我没偷懒 - 读写记忆困难儿童案例》
  6. CSS3实现骗人版无缝轮播图
  7. 用HTML5的canvas实现抽奖刮刮卡的效果(只需十几行代码)
  8. 数据仓库技术(Data Warehouse Technologien) 第三章节 多维数据模型(3)
  9. 数据结构——树-基本知识点(第六章)
  10. 把两个数和告诉A,积告诉B,A说不知道是多少, B也说不知道,这时A说我知道了, B接着说我也知道了,求这两个数是什么