不带花括号的If/else语句javascript

If/else statement with no curly brackets javascript?

本文关键字:else 语句 javascript If      更新时间:2023-09-26

我已经搜索过了,但找不到这样的问题。但是,为什么这个代码能工作呢?

    this.askTeller = function(pass) {
     if (pass == 1234) return bankBalance;
     else return "Wrong password.";
   };

难道不应该像一样吗

this.askTeller = function(pass) {
if (pass == 1234) {
return bankBalance;
}
else {
return "Wrong password.";
};

难道不应该像一样吗

可以说,它应该是:

this.askTeller = function(pass) {
  if (pass == 1234) return bankBalance;
  return "Wrong password.";
};

this.askTeller = function(pass) {
  return pass == 1234 ? bankBalance : "Wrong password.";
};

例如,else根本没有意义。

但说到你对{}的看法:它们是可选的。像if(以及whilefor等)这样的控制流结构连接到它们后面的一个语句;如果希望将它们连接到多个语句,则可以使用块语句{...})来执行此操作。

很多很多人总是使用block语句,即使他们可以不使用它,这既是为了清晰,也是为了更容易地在块中添加第二个东西。

在Javascript中,当您只有一条语句要执行时,大括号对于if/else是可选的。请注意,如果之后要执行多个内容,则需要包含{/},或者只有第一条语句将应用于条件

您可以为几乎所有块范围的结构(ifforwhile等)删除大括号。我遇到的唯一一个不是这种情况的例外是trycatch

如果不包含大括号,则只执行块之后的第一条语句。

var out = document.getElementById("out");
for (var i = 0; i <= 5; i++) out.innerHTML += i;
if (out.innerHTML === "012345") out.innerHTML += " success!";
<textarea id="out"></textarea>

括号对于if语句

是可选的