我不认为是NNN会为我的情况工作.我想确保某个变量在验证时只包含整数.所以不应该允许-1.45在我的情况下.诸如1,23,334之类的值应该是允许/有效的.
pal*_*aѕн 25
第1部分:
您可以使用余数运算符来查找值是否为整数,如:
function isWholeNumber(value) {
if (value % 1 === 0) {
console.log(value + ' is a whole number');
} else {
console.log(value + ' is not a whole number');
}
}
// Display the result here
isWholeNumber(1.45);
isWholeNumber(23);Run Code Online (Sandbox Code Playgroud)
说明:
1.45 % 1退货0.44999999999999996和23 % 1退货0.value % 1 === 0,那么我们可以说这value是一个整数而不是.第2部分:
这种逻辑在某些情况下失败,其中value实际上不是a number,因为余数运算符(%)将其操作数转换为如下数字:
function isWholeNumber(value) {
console.log(value % 1); //<--- result is always 0
if (value % 1 === 0) {
console.log(value + ' is a whole number');
} else {
console.log(value + ' is not a whole number');
}
}
// Display the result here
isWholeNumber('23');
isWholeNumber('');
isWholeNumber(true);Run Code Online (Sandbox Code Playgroud)
这导致显示不正确的结果,如空字符串和布尔值显示为整数.我们可以通过检查值的类型来解决这个问题,number例如:
function isWholeNumber(value) {
if (typeof value === 'number' && value % 1 === 0) {
console.log(value + ' is a whole number');
} else {
console.log(value + ' is not a whole number');
}
}
// Display the result here
isWholeNumber(1.45);
isWholeNumber(24);
isWholeNumber('23');
isWholeNumber('');
isWholeNumber(true);Run Code Online (Sandbox Code Playgroud)
第3部分:
在ES6中,全局对象Number得到了一个新属性Number.isInteger(value).它检查是否value是一个整数:
// Display the result here
console.log(Number.isInteger(1.45));
console.log(Number.isInteger(24));
console.log(Number.isInteger('23'));
console.log(Number.isInteger(''));
console.log(Number.isInteger(true));Run Code Online (Sandbox Code Playgroud)
我们可以将它与我们在第2部分中的修改 isWholeNumber函数集成,如:
function isWholeNumber(value) {
if (Number.isInteger(value)) {
console.log(value + ' is a whole number');
} else {
console.log(value + ' is not a whole number');
}
}
// Display the result here
isWholeNumber(1.45);
isWholeNumber(24);
isWholeNumber('23');
isWholeNumber('');
isWholeNumber(true);Run Code Online (Sandbox Code Playgroud)
isNaN()是检查号码是否完整,不会检查号码是否完整。
function isInt(n) {
return n % 1 === 0;
}
Run Code Online (Sandbox Code Playgroud)
或者
if (number % 1 == 0) {
alert('Whole Number');
} else {
alert('Not a Whole Number');
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
38528 次 |
| 最近记录: |