我正在尝试为一个函数编写代码,在检查该值是否为整数后显示布尔值。当我调用该函数时,请参阅下面我在理想输出中对整数的定义:
到目前为止,我的代码失败了,因为当我希望它为 false 时,它为 validInteger ( 10.0 ) 生成 true 。 JavaScript 正在挣扎,因为 10.0 = 10
期望的输出
validInteger ( '10' ) // should return True
validInteger ( 10 ) // should return True
validInteger ( '-10' ) // should return False
validInteger ( -10 ) // should return False
validInteger ( 0.0 ) // should return False
validInteger ( 10.0 ) // should return False
validInteger ( -10.0 ) // should return False
我想知道是否有人知道如何获得 validInteger ( 10.0 ) 的错误结果。到目前为止,这是我能够编写的代码:
function validInteger (value) { // value can be a string or a number (integer)
const numberValue = Number(value);
return Number.isInteger(numberValue) && numberValue >= 0 && String(numberValue) === String(value);
}
10
和 10.0
在 JS 中是相同的。它是 number
类型的原始值。您无法在 runtume 中区分这些符号。