如何跳出 Javascript 中的函数?

How to break out of a function in Javascript?

这是一段代码,注意我已经评论了我想在代码中实现的目标

const extraHot = () => {
   if (hot === "h") {
      return `extra hot`
   }
// otherwise, do nothing, don't return anything
// (not even an empty string or undefined object)
// I want to break here
}

if (givenAmount >= dict){
// I would like to return "Drink maker makes 1 extra hot sugar and 1 stick"
    return `Drink maker makes 1 ${extraHot()} sugar and 1 stick`
}

下面的代码会在"makes"和"sugar"

之间return"undefined"
const extraHot = () => {
   if (hot === "h") {
      return `extra hot`
   }
   return
}

以下代码将 return space 介于 "makes" 和 "sugar"

之间
const extraHot = () => {
   if (hot === "h") {
      return `extra hot`
   }
   return ""
}

您的问题不在于函数 returns if hot !== "h" 是什么,而是您如何编写模板字符串。如果 if 的计算结果为真,return ' extra hot ',然后将模板字符串写成

Drink maker makes 1${extraHot()}sugar and 1 stick

你在 makessugar 之间得到 space 的原因是因为你有一个 space 之后makessugar 前面的另一个。为防止这种情况,您必须将 extra hot 函数更改为:

const extraHot = () => {
   if (hot === "h") {
      return "extra hot " # Note the space after hot
   }
   return ""
}

稍后使用它:

if (givenAmount >= dict){
    return `Drink maker makes 1 ${extraHot()}sugar and 1 stick`
}

您可以将 return 字符串的函数规范化为 return 空字符串,如果某些结果在字符串前面或末尾需要额外的 space 并保留这种风格。

如果条件错误,这种方法允许链接条件并且不会得到额外的 space。

在这种情况下取​​

const extraHot = () => hot === "h" ? ' extra hot' : '';

if (givenAmount >= dict) return `Drink maker makes 1${extraHot()} sugar and 1 stick`;

结果是

Drink maker makes 1 sugar and 1 stick

Drink maker makes 1 extra hot sugar and 1 stick
                   ^^^^^^^^^^