前言
- isNaN() 判断不是数字
- isFinite() 判断是数字
- isFinite() 有两个方法 : isFinite() 和 Number.isFinite()
检验代码
<!doctype html><html lang="zh-CN"><head><meta charset="utf-8"/><title>Infinity isFinite() Number.isFinite()</title>
<style>
table{border-collapse:collapse;}
#Tbody001>:nth-of-type(odd){ background-color:#eeeddd; }
</style><script>
</script></head><body>
<table>
<thead>
<tr>
<th>参数</th>
<th>isFinite()</th>
<th>Number.isFinite()</th>
</tr>
</thead>
<tbody id="Tbody001"></tbody>
</table>
<script>
const Tbody001 = document.getElementById("Tbody001");
function td(tr,v){ var td=document.createElement("td"); td.innerHTML = v; tr.appendChild(td);}
function f(x){
var x1 = String(x); if(x.constructor===String)x1='"'+x1+'"';
var tr = document.createElement("tr");
td(tr , x1); td(tr , "isFinite("+x1+")="+isFinite(x) ); td(tr , "Number.isFinite("+x1+")="+Number.isFinite(x) );
Tbody001.appendChild(tr);
}
f(123);
f(-1.23);
f(5-2);
f(0);
f('123');
f('Hello');
f('2005/12/12');
f(Infinity);
f(-Infinity);
f(0 / 0);
f("3.14159265359");
f(3.14159265359);
f("2.718281828");
f(2.718281828);
</script></body></html>
结果
总结
引自菜鸟教程
Number.isFinite() 与全局的 isFinite() 函数不同,
全局的 isFinite() 会先把检测值转换为 Number ,然后在检测。
Number.isFinite() 不会将检测值转换为 Number对象,
如果检测值不是 Number 类型,则返回 false。
Infinity 都是 false