Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/406.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果字符串等于其他任何内容,则使用JavaScript_Javascript_If Statement - Fatal编程技术网

如果字符串等于其他任何内容,则使用JavaScript

如果字符串等于其他任何内容,则使用JavaScript,javascript,if-statement,Javascript,If Statement,如何检查字符串是否不等于任何其他选项?我知道我可以只做一个简单的else语句,但我不确定它是否能工作,因为我的ifs中的代码没有组合,它们只是if()和else if()本身,但是没有else。如果不使用switch/case语句,我如何执行else语句/检查它是否还有其他内容 这里有一个例子 if(object1 === "string") { function1(); } if(object1 === "string2") { function2(); if(object2 ==

如何检查字符串是否不等于任何其他选项?我知道我可以只做一个简单的
else
语句,但我不确定它是否能工作,因为我的
if
s中的代码没有组合,它们只是
if()
else if()
本身,但是没有
else
。如果不使用
switch/case
语句,我如何执行else语句/检查它是否还有其他内容

这里有一个例子

if(object1 === "string")  {
  function1();
}
if(object1 === "string2")  {
  function2();
if(object2 === "string" && variable === 10)  {
  function1();
}
if(object1 || object2 === "")  {
  alert("That's not a valid option!");
}
警告 我无法将代码作为独立片段插入此处,因为它超过了最大字符限制。我只能添加一个JSFIDLE。请原谅我的失礼


如果不将if/else if/else组合在一起,您可以使用两种主要方法,这两种方法都是一种简单的失败方法

function foo(opt) {
    if (opt === 'this') { return true; }
    if (opt === 'that') { return 'something else'; }
    /* Code here represents the case that opt is not this or that */
 }

另一种更复杂的方法是使用某种类型的选项,然后检查它们,但这是一个糟糕的模式,你真的应该考虑使用I/OR I/OR作为一个组合树(不确定你真的解释了为什么不能这样做)。

function foo(opt) {
    var checked = ['this', 'that'];
    if (opt === 'this') { return true; }
    if (opt === 'that') { return 'something else'; }
    if (checked.indexOf(opt) === -1) { return 'fall through case'; }
}
切换也是可能的,但这只是组合if/else if/else的一种变体,所以如果你不能使用后者,我看不出前者会有什么帮助


同样,上面的模式不好,但如果出于某种原因,这是必须的,那么就有了一个实现。

另一个解决方案是在执行一个if语句时提高标志,这样在最后,您可以检查这些标志,如果没有一个是真的,那么您可以做任何您想做的事情

var flag = false;
if(object1 === "string")  {
  function1();
  flag = true;
}
if(object1 === "string2")  {
  function2();
  flag = true;
if(object2 === "string" && variable === 10)  {
  function1();
  flag = true;
}
if(object1 || object2 === "")  {
  alert("That's not a valid option!");
  flag = true;
}

if(!flag) {
  alert('no other options were validated');
}

那么为什么不直接使用一个
开关
语句呢?嗯,没有理由把你的整个游戏都放在小提琴上。如果选项相互排斥,只需使用
else If
else
(或
开关
)你是说这些选项不是相互排斥的吗?@Mathletics如果HTML和CSS不存在,那么就没有必要进行故障排除,因为JavaScript会中断。单击链接获取一个链接。你也不需要发布游戏中的所有JS。