提示不返回null?

时间:2019-02-25 02:40:31

标签: javascript

我在页面的开头有一个提示,并且标题文本根据用户的输入而更改。由于单击 Cancel 按钮会返回null,而单击 Ok 按钮却未在字段中输入任何文本会返回一个空字符串,因此我在代码中使用了两次检查来更改文本相应地。问题是单击取消按钮时,提示实际上未返回null。而是将其作为字符串返回。

Javascript:

var name = prompt("Enter your name");
var header = document.getElementById("welcome-header");

if (name !== "null" && name !== "") {
    header.innerHTML = `Welcome, ${name}!`;
}

为了适应这一点,我不得不将 null 放入字符串中,如代码片段所示。我想念什么吗?

Here's,其中W3显示它应该返回null。

2 个答案:

答案 0 :(得分:0)

您可以进行虚假检查:

let ops = [[false, false],[false, true], [true, false], [true, true]];

function xor(cond1, cond2){
  return cond1 + cond2 == 1;
}

for(op of ops){
  console.log(`${op[0]} xor ${op[1]} is ${xor(op[0], op[1])}`)
}

答案 1 :(得分:0)

尝试此操作,您不必在乎是否为null,如果不为null,则其长度应为> 0,但是如果仅输入空格,则可以使用简单的正则表达式查找任何单词。不知道为什么将null作为字符串传递,我无法复制该行为,但是如果是边缘情况,请尝试:

if (name != 'null' && name.match(/\w/).length > 0 {
    header.innerHTML = `Welcome, ${name}!`;
}