如何在 JavaScript 中编写没有“else”的 IF else 语句 [关闭]

Posted

技术标签:

【中文标题】如何在 JavaScript 中编写没有“else”的 IF else 语句 [关闭]【英文标题】:How to write an IF else statement without 'else' in JavaScript [closed] 【发布时间】:2011-07-20 12:28:28 【问题描述】:

我不能在我的脚本中使用else;如何在不使用else 的情况下实现if else 语句?

我正在尝试调整 div 的大小:

function hideTable()
    var table = document.getElementById('PDemo');
    if(table.style.width == "50%") table.style.width = "150px";
    if(table.style.width == "150px") table.style.width = "50%";

这个脚本不起作用,因为一旦第一个if 语句被执行,第二个if 语句的条件就变为真,所以它也会执行,因此没有任何变化。

【问题讨论】:

【参考方案1】:

三元运算符:

condition ? execTrue() : execFalse();

这相当于:

if (condition) 
    execTrue();

else 
    execFalse();

可以在 1 行中写一个 if/else,只是不要按 enter...

if (condition)  execTrue();  else  execFalse(); 

此外,您可以在一行上编写任意复杂度的任何语句:

if(condition1)  exec1();  else if(condition2)  exec2();  else  execFalse() 

如果您遇到第二个 if 语句也执行的问题,您希望强制互斥,即在每个后续条件中使用 else if 而不是仅使用 if

【讨论】:

哈哈。这是一个报告软件。它不是日食或任何东西的替代品。它似乎不喜欢其他人。还是谢谢 hmm,所以您将这些命令输入到像单行控制台之类的东西中?我知道了。好吧,如果它不“喜欢” else,那么三元运算符就是您的解决方案。【参考方案2】:

将值保存到不同的变量中。

function hideTable()
  var table = document.getElementById('PDemo');
  var width = table.style.width;
  if(width == "50%") table.style.width = "150px";
  if(width == "150px") table.style.width = "50%";

【讨论】:

但最后不应该改table.style.width吗?否则,该功能似乎根本没有做太多事情。【参考方案3】:

如果您不能使用else(那是疯狂),请使用switch

switch (table.style.width) 

    case '50%':
       ...
       break;

    case '150px':
       ...
       break;


【讨论】:

【参考方案4】:
if(/*condition a*/)/*statements a*/else if(/*condition b*/)/*statements b*/else/*statements c/*

只有一行。

【讨论】:

【参考方案5】:

为了唯一性,使用 while 循环。

while (!resized)
  if(width == "50%") table.style.width = "150px";resized=true;break;
  if(width == "150px") table.style.width = "50%";resized=true;break;
  resized=true;

【讨论】:

我更喜欢do //Stuff while (0); 成语。【参考方案6】:

&& 运算符称为短路运算符。它将根据第一个操作数的值返回第二个操作数的值。

例如:(解释:如果permArray中存在'profile'权限,则加载用户的个人资料)

isPermitted(permArray, 'profile') && loadProfile();

&& 运算符对于在访问其属性之前检查空对象也很有用。比如……

var name = person && person.getName();

【讨论】:

是的,但这如何回答这个问题?

以上是关于如何在 JavaScript 中编写没有“else”的 IF else 语句 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript 代码逻辑判断的优化

如何在没有 2 个 if 语句的情况下在 JSX 中添加 If...Else 语句?

如何在 javascript 中的 if/else 中添加“和”

如何在 SQL 查询中动态跳过没有 If else 的 where 子句?

如何在没有 eval 的 javascript 中编写计算器

如何在 Bash 中使用布尔值编写 if/else? [复制]