JavaScript 中是否有等效于 Swift 的 guard 语句?

Ran*_*ndy 7 javascript if-statement swift

我开始开发网络应用程序,但我来自 iOS 世界。我想知道guardJavaScript 中是否有等效于 Swift 的语句?我喜欢早退模式。

对于那些可能不知道的人,guardstatement 是一个“return early if statement”,这是一个非常基本的例子:

myCondition = trueOrFalse()
guard myCondition
   else {print("myCondition is false")
         return}
print("myCondition is true")
Run Code Online (Sandbox Code Playgroud)

Cri*_*sty 6

在函数内部时,您可以提前返回。不需要一个实际的guard,你可以使用一个if代替。

f () {
  myCondition = trueOrFalse()

  // Make sure `myCondition` is `true`
  if (!myCondition) return console.log("myCondition is false");

  console.log("myCondition is true")
}
Run Code Online (Sandbox Code Playgroud)

PS:我return的日志语句只是为了将其保留在一行上。console.log简单地返回undefined,因此您的函数将返回undefined。如果您认为这样看起来更好,您可以将该语句拆分为多行,或者希望您的function返回类型始终与可能有助于优化的返回类型相同(例如:始终返回一个整数,因此undefined您可以使用 return代替0)。

  • Swift 的“guard”的强大之处在于,如果条件成功,它可以让您声明变量:“guard let name = some?.name else { return }”。另外,“else”必须退出作用域,否则将无法编译,因此它在编译时确实是一个强制保护。 (3认同)