电影网站怎么制作,网站做一半能退吗,百姓网二手买卖,网站怎样自动文字排版MENU 方法一方式二方式三方式四方式五结束语 方法一 使用取余运算符判断#xff0c;利用任何整数都会被1整除的原理#xff0c;即余数是0的特点#xff0c;通过这个规则来判断是否是整数。 let isInteger (val) val % 1 0;// true
isInteger(5);
// false
isInteger(… MENU 方法一方式二方式三方式四方式五结束语 方法一 使用取余运算符判断利用任何整数都会被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.round、Math.ceil、Math.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([]);结束语 以上就是判断是否为整数类型的五种方式这五种方式各有优缺点大家可以进行仔细比较选择最优的进行使用。