Javascript,不';不显示未定义的数字

Javascript,不';不显示未定义的数字,javascript,Javascript,我创建了一个带有键和值的变量,如下所示: var e = new Array(); e[0] = "Bitte"; e[1] = "Danke"; 除此之外,我在变量中添加了一行,当数字未定义时,它会显示一个文本 e[NaN] = "Change Settings"; 因此,当变量e为NaN(“未定义”)时,我希望他不会在输入中显示变量e的编号。正如你所看到的,我试图实现这一点,但它无法发挥作用 if (neuezahl = NaN) { document.getElementById

我创建了一个带有键和值的变量,如下所示:

var e = new Array();
e[0] = "Bitte";
e[1] = "Danke";
除此之外,我在变量中添加了一行,当数字未定义时,它会显示一个文本

e[NaN] = "Change Settings"; 
因此,当变量
e
NaN
(“未定义”)时,我希望他不会在输入中显示变量e的编号。正如你所看到的,我试图实现这一点,但它无法发挥作用

if (neuezahl = NaN) {
  document.getElementById("saveServer").value="";
} else {
  document.getElementById("saveServer").value=""+neuezahl+""; 
}

除了使用
isNAN
功能外,您已分配
neuzahl
而未对其进行比较:

if (isNAN(neuezahl))
{
   document.getElementById("saveServer").value="";
}
else 
{
   document.getElementById("saveServer").value=""+neuezahl+""; 
}

NaN
无法直接进行比较(它甚至不等于它本身
NaN===NaN==>false
)。使用
isNaN()
检测
NaN

if (isNaN(neuezahl)) {...}

if语句中的条件可能不正确。现在您使用“=”而不是“=”,它是一个赋值语句,并且该条件将始终为true。所以,如果您想检查“neuezahl”是否为“NaN”,函数isNaN可能会有所帮助

if (isNaN(neuezahl)){...}
else {}
将(neuezahl=NaN)更改为(neuezahl==NaN)为什么不直接使用if(typeof neuezahl!=“undefined”){实际上
(a=NaN)==>NaN
,因此条件总是错误的。(在条件中赋值会在严格模式下引发语法错误。)