如何编写函数检查Number对象属性并返回指定格式内容?
JavaScript函数whatNumberIsIt(n)的最佳实现
实现思路
按优先级依次判断输入值的特殊类型,再处理普通数字:
- 先判断是否为
NaN(需用Number.isNaN(),因为NaN === NaN始终为false) - 再判断是否为正无穷或负无穷
- 接着判断是否为Number的最大值或最小值
- 最后输出普通数字的对应描述
完整代码实现
function whatNumberIsIt(n) { if (Number.isNaN(n)) { return "Input number is NaN"; } if (n === Number.POSITIVE_INFINITY) { return "Input number is Number.POSITIVE_INFINITY"; } if (n === Number.NEGATIVE_INFINITY) { return "Input number is Number.NEGATIVE_INFINITY"; } if (n === Number.MAX_VALUE) { return "Input number is Number.MAX_VALUE"; } if (n === Number.MIN_VALUE) { return "Input number is Number.MIN_VALUE"; } return `Input number is ${n}`; }
关键细节说明
- NaN判断:必须用
Number.isNaN()而非全局isNaN(),全局isNaN()会先把非数字类型转为数字,可能出现误判(比如isNaN('abc')返回true,但我们只需要判断输入本身是否为NaN) - 顺序逻辑:特殊值(NaN、无穷)不会和MAX/MIN_VALUE相等,先判断这些能避免逻辑混乱
- 模板字符串:最后返回普通数字时用ES6模板字符串,让代码更简洁易读
内容的提问来源于stack exchange,提问作者Qwop
相关产品推荐
相关产品推荐

