JavaScript之判断是否整数、取余、取整、进制、位或、ES6

这篇具有很好参考价值的文章主要介绍了JavaScript之判断是否整数、取余、取整、进制、位或、ES6。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


方法一

使用取余运算符判断,利用任何整数都会被1整除的原理,即余数是0的特点,通过这个规则来判断是否是整数。

let isInteger = (val) => val % 1 === 0;

// true
isInteger(5);
// false
isInteger(5.72);

以上输出可以看出这个函数挺好用,但对于字符串某些特殊值则需要完善一下检验规则,否则会被"欺骗",对于空字符串、字符串类型数字、布尔true、空数组都返回true。在取余的时候,它们都会进行类型装换,下面例子中的空字符串,空数组都是转化成0,而true转成1。

// true
isInteger('');
// true
isInteger('5');
// true
isInteger(true);
// true
isInteger([]);

优化

let isInteger = (val) => typeof val === 'number' && val % 1 === 0;

// false
isInteger('');
// false
isInteger('5');
// false
isInteger(true);
// false
isInteger([]);

方式二

使用Math.roundMath.ceilMath.floor判断。整数取整后还是等于自己,利用这个特性来判断是否是整数。
Math.floor方法中会自动将参数转成数字进行向下取值,同理使用Math.ceil向上取整,Math.round四舍五入。

let isInteger = (val) => Math.floor(val) === val;

// true
isInteger(5);
// false
isInteger(5.72);
// false
isInteger('');
// false
isInteger('5');
// false
isInteger(true);
// false
isInteger([]);

方式三

通过parseInt()判断。利用parseInt()十进制的转化特点。

let isInteger = (val) => parseInt(val, 10) === val;

// true
isInteger(5);
// false
isInteger(5.72);
// false
isInteger('');
// false
isInteger('5.72');
// false
isInteger(true);
// false
isInteger([]);

但是对于超过检测范围的数就会不再检测,统一返回该检测数字的首个数字。

// 1  false
parseInt(1000000000000000000000);
// 4  false
parseInt(412300213123400000000.21312);

方式四

通过位运算|判断。按位或运算符|是双目运算符, 其功能是将参与运算的两数转成32位二进制后,各对应的二进位相或。只要对应的二个二进位有一个为1时,结果位就为1。因此利用该特性,任一数字和0位或都是返回它本身,同理非数字都是进行类型转化后再进行位或。

let isInteger(val) => (val | 0) === val;

// true
isInteger(5);
// false
isInteger(5.72);
// false
isInteger('');
// false
isInteger('5');
// false
isInteger(true);
// false
isInteger([]);

关于位或运算,效率比Math.floor和parseInt高。
位运算的使用场景及封装


方式五

ES6提供了Number.isInteger。这是Number中的一个API方法,用来判断给定参数是否为整数。
浏览器兼容上大多数已经实现支持,目前IE并不支持。

// true
Number.isInteger(5);
// false
Number.isInteger(5.72);
// false
Number.isInteger('');
// false
Number.isInteger('5');
// false
Number.isInteger(true);
// false
Number.isInteger([]);

结束语

以上就是判断是否为整数类型的五种方式,这五种方式各有优缺点,大家可以进行仔细比较,选择最优的进行使用。文章来源地址https://www.toymoban.com/news/detail-804941.html

到了这里,关于JavaScript之判断是否整数、取余、取整、进制、位或、ES6的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • JavaScript判断是否为NaN

    (旅行是最劳顿,最麻烦,叫人本相必现的时候。经过长期苦旅行而彼此不讨厌的人,才可以结交作朋友。——钱钟书) 相信你在实际开发中,经常遇到一下场景 业务中不可避免的有些字段是空值,但经过转换后会变为NaN值,而在js中NaN的类型无论怎么判断都是数字,并且奇

    2024年02月02日
    浏览(56)
  • Javascript判断时间是否处于今天、本周、当月

      Javascript判断时间戳/时间日期字符串是否处于今天、本周、当月,三个时间范围。   水平有限,可能逻辑会比较繁琐,如果有更好的方法欢迎赐教。 判断是否是今天 传参:param为时间戳(默认) / 日期时间字符串,type为timestamp / datetime 示例:  todayJudge(1669961510000)  

    2024年02月15日
    浏览(40)
  • JavaScript 判断是否为数字的几种方式

    喜欢博主的文章,欢迎关注、点赞👍、收藏⭐️、留言📝支持,谢谢大家 js判断是否为数字的方式很多: typeof 、 instanceof 、 Number.isNumber parseInt 、 parseFloat isNaN 、 isFinite Number.isNaN 、 Number.isFinite 正则表达式 终极方案 我们逐一介绍,希望能帮到大家。 typeof 判断值是不是基

    2023年04月10日
    浏览(41)
  • 3的幂,给定一个整数,写一个函数来判断它是否是 3 的幂次方。如果是,返回 true ;否则,返回 false。

    题记: 给定一个整数,写一个函数来判断它是否是 3 的幂次方。如果是,返回 true ;否则,返回 false 。 整数 n 是 3 的幂次方需满足:存在整数 x 使得 n == 3^x 示例 1: 输入 :n = 27 输出 :true 示例 2: 输入 :n = 0 输出 :false 示例 3: 输入 :n = 9 输出 :true 示例 4: 输入 :

    2024年02月15日
    浏览(39)
  • JavaScript判断变量是否为undefined的两种写法

    可以使用 typeof 操作符来判断一个变量是否为 undefined 类型 也可以使用严格相等运算符 === 来判断一个变量是否为 undefined 注意: 不要使用 == 运算符来判断一个变量是否为 undefined 因为它会在比较之前进行 类型转换 ,可能导致意外的结果。 如果要判断一个变量是否未定义(既

    2024年02月14日
    浏览(36)
  • JavaScript判断时间间隔是否连续为一天的方法

    在开发中,我们经常需要判断一个数组中的对象的时间间隔是否连续。本文将介绍一个方法,通过对数组中的对象进行排序和比较,来判断时间是否从00:00到24:00连续。 假设我们有一个数组,其中包含多个对象,每个对象都有开始时间和结束时间。我们需要判断这些时间间隔

    2024年01月18日
    浏览(52)
  • JavaScript判断数组对象是否含有某个值的方法(6种)

    文章内容 文章链接 vue3 antd table表格的增删改查(一) input输入框根据搜索【后台管理系统纯前端filter过滤】 https://blog.csdn.net/XSL_HR/article/details/128072584?spm=1001.2014.3001.5501 vue3 antd table表格的增删改查(二) input输入框根据搜索【后台管理系统 请求后端接口 前后端

    2024年02月06日
    浏览(47)
  • JavaScript判断对象是否为空对象的几种方法

    目录 1、空对象对应的字符串为 \\\"{}\\\" 2、for in 3、jquery 的 isEmptyObject()方法 4、Object.getOwnPropertyNames() 5、ES6 的 Object.keys() JSON.stringify()扩展 1、第一大特性 小结 2、第二大特性 3、第三大特性 4、第四大特性 5、第五大特性 6、第六大特性 7、第七大特性 8、第八大特性 var data = {}; v

    2024年01月16日
    浏览(67)
  • vue中获取复选框是否被选中的值、如何用JavaScript判断复选框是否被选中

    一、方法介绍          第一种方法:通过获取dom元素,getElementById、querySelector、getElementsByName、querySelectorAll(需要遍历,例如:for循环)         第二种是用v-model在input复选框上绑定一个变量,通过双向绑定的特性来判断复选框是否被选中。 (推荐使用) 二、演示

    2024年02月03日
    浏览(39)
  • 百度地图API:JavaScript开源库几何运算判断点是否在多边形内(电子围栏)

    漏刻有时百度地图API实战开发(1)华为手机无法使用addEventListener click 的兼容解决方案 漏刻有时百度地图API实战开发(2)文本标签显示和隐藏的切换开关 漏刻有时百度地图API实战开发(3)自动获取地图多边形中心点坐标 漏刻有时百度地图API实战开发(4)显示指定区域在移动端异常的

    2024年02月07日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包