你可以创建一个函数,使用JavaScript的parseFloat
或parseInt
函数尝试转换输入到数字。如果转换失败,那么返回默认值0。这是一个示例函数:
function toNumberOrDefault(input, defaultValue = 0) {
const number = parseFloat(input);
return isNaN(number) ? defaultValue : number;
}
在这个函数中,parseFloat
函数会尝试把输入转换为浮点数。如果输入不能被转换为数字,parseFloat
将返回NaN(Not a Number)。isNaN
函数则用来检查parseFloat
的结果是否为NaN。如果是NaN,函数将返回默认值0,否则返回转换后的数字。
你可以通过以下方式使用这个函数:
console.log(toNumberOrDefault("123")); // 输出:123
console.log(toNumberOrDefault("abc")); // 输出:0
console.log(toNumberOrDefault(undefined)); // 输出:0
console.log(toNumberOrDefault(null)); // 输出:0
console.log(toNumberOrDefault([1, 2, 3])); // 输出:0,因为数组不能被转换为数字
这个函数对于大多数情况都能很好地工作,但需要注意,有些非数字字符串(如"123abc")在某些情况下可能会被误解析为数字。如果你需要处理这种情况,可能需要添加额外的检查或使用更复杂的转换方法。
@漏刻有时