解析以检查 NAN Javascript

The*_*ner 2 javascript parsing if-statement

我什至设置了一个 onclick 来获取输入的值,如果该值是数字,则发出警报。如果输入的值为空,我试图提醒它说“没有数字”,但是,似乎即使我的输入为空,该函数也会返回一条语句,说明“空”值确实是一个数字。

我已经设置了变量来立即解析输入的值,但这就是为什么我的代码总是返回“是一个数字”的原因,因为它在收集变量时自动设置为 1?

代码:

HTML:

<input type="text" id="numberTest" />

<button id="button">Click Me</button>
Run Code Online (Sandbox Code Playgroud)

JS:

var button = document.getElementById("button");

button.onclick = function()
{
var numberTest = parseInt(document.getElementById("numberTest").value);

if(numberTest == NaN || "" || null)
{
    alert("No Number");
}
else
{
    alert("This is a number!");
}
};
Run Code Online (Sandbox Code Playgroud)

Sco*_*ott 5

检查是否== NaN将始终返回false。这样做的正确方法是Number.isNaN()

var button = document.getElementById("button");

button.onclick = function() {
    var numberTest = parseInt(document.getElementById("numberTest").value);
    if (Number.isNaN(numberTest) || numberTest == "" || numberTest === null) {
        alert("No Number");
    }
    else {
        alert("This is a number!");
    }
};
Run Code Online (Sandbox Code Playgroud)

您的逻辑也有一些问题if- 每个子句都是一个单独的表达式,因此numberTest每次都需要检查。