Javascript 要求用户选择';男孩';或';女孩';

Javascript 要求用户选择';男孩';或';女孩';,javascript,prompt,Javascript,Prompt,我试图让我的用户用这两个选项中的一个来回答“你是男孩还是女孩?”的问题,并强迫他们选择其中一个 我认为我正朝着正确的方向前进,但每当我运行代码时,如果选择第二个选项,就会打嗝 我做错了什么 var gender = prompt("Are you a boy or a girl?").toLowerCase(); while (gender !== ("boy" || "girl")) { gender = prompt("Please only respond with boy or

我试图让我的用户用这两个选项中的一个来回答“你是男孩还是女孩?”的问题,并强迫他们选择其中一个

我认为我正朝着正确的方向前进,但每当我运行代码时,如果选择第二个选项,就会打嗝

我做错了什么

var gender = prompt("Are you a boy or a girl?").toLowerCase();
while (gender !== ("boy" || "girl")) {
    gender = prompt("Please only respond with boy or girl. Now, are you a boy or a girl?");
}

合适的条件是

while (gender !== 'boy' && gender !== 'girl'){
这是因为
(“boy”| |“girl”)
总是以“boy”结尾,因此
while
看起来像
while(gender!=“boy”)
。在本例中,
|
被称为“默认”运算符,它巧妙地使用了逻辑OR。如果左侧的值为truthy,则将使用左侧的值。否则,它将计算(因此为“默认”)右侧。

我个人喜欢

var gender = prompt("Are you a boy or a girl?").toLowerCase();

while (["boy", "girl"].indexOf(gender) == -1) {
  gender = prompt("Please only respond with boy or girl. Now, are you a boy or a girl?");
}

不正确的语法对吗<代码>性别=与single
=
“boy”| |“girl”是“boy”还是“boy”更适合使用confirm(“youareaboy?”)。如果是真的,那么男孩,如果是假的,那么女孩。因此,它将避免收到其他价值。如果可以的话,结案可能会对您有所帮助<代码>变量性别=(函数(){…})()索引上做波浪图,比如
~[“男孩”、“女孩”].indexOf(性别)
@JosephDreamer不能说我以前见过。我喜欢!