为什么这个JavaScript函数的return里面有个等号?

Why is there an equal sign in the return of this JavaScript function?

这是 MDN 中的一段示例代码,讲述了 async/await:

async function hello() {
  return greeting = await Promise.resolve("Hello");
};

hello().then(alert);

什么是 return *** = ***;

这里=没什么特别的。

这只是说:

  1. 计算右边的表达式
  2. Return结果

所以它计算 greeting = await Promise.resolve("Hello"); 就像 return 没有被涉及一样,然后它 returns 该表达式的结果(与刚刚分配的值相同至 greeting).

let foo = "123";

function hello() {
    return foo = "abc";
}

const bar = hello();

console.log({foo, bar});

在这种情况下,通过浏览器控制台进行测试非常简单。

function test(v) { let t; return t = v;} test(5);

您会看到它 returns 分配的值。

PS。 学会使用控制台非常重要,它实际上是一份礼物!一个实时的极其简单的“'compiler'”本身,大多数语言都拥有它。 在寻求帮助之前尝试找到解决问题的方法,我们将不胜感激,而且这对您的技能很有帮助。