什么';检查javascript变量是否为数字且大于零的最简单方法是什么?
我把这个编码了:什么';检查javascript变量是否为数字且大于零的最简单方法是什么?,javascript,Javascript,我把这个编码了: isNumberNotZero: function (num) { // Return false if num is null, an empty string or zero if (num === null || typeof num === "undefined" || (typeof num === "string" && num.length === 0) || num == 0) {
isNumberNotZero: function (num) {
// Return false if num is null, an empty string or zero
if (num === null || typeof num === "undefined" || (typeof num === "string" && num.length === 0) || num == 0) {
return false;
}
return true;
},
但是有没有更简单的方法呢。我的代码看起来不是很干净。您正在做大量的检查,以确定它不是什么,而您只关心它是否是大于零的数字 只是:
当你只关心它是否是一个大于零的数字时,你正在做大量的检查 只是: 这是一个著名的问题:
function isNumber(n) {
return !isNaN(parseFloat(n)) && isFinite(n);
}
然后,您的测试非常简单,只需将该函数与>0
:
return isNumber(input) && input > 0;
这是一个著名的问题:
function isNumber(n) {
return !isNaN(parseFloat(n)) && isFinite(n);
}
然后,您的测试非常简单,只需将该函数与>0
:
return isNumber(input) && input > 0;
如果要缩短代码,可以使用a将其转换为整数
这不是那么可读,只适用于整数(例如,如果您的数字为0.5,则将其视为零),但它快速且简洁
function isNumberNotZero(num) {
return +num !== 0;
}
如果要缩短代码,可以使用a将其转换为整数
这不是那么可读,只适用于整数(例如,如果您的数字为0.5,则将其视为零),但它快速且简洁
function isNumberNotZero(num) {
return +num !== 0;
}