在没有赋值的情况下使用时,是否会为 Javascript 中的表达式自动创建变量?

Are variables created automatically for expressions in Javascript when used without assignment?

例如在下面的代码中:

const productIds = [123, 100, 50];
const test1 = () => productIds.sort(); // *

if (100 === productIds.sort()[0]) { // **
  console.log('equal!');
}

在示例 * 中返回一个排序数组。但我假设在返回之前必须对其进行排序并将结果保存在某处。 Javascript 编译器是否在函数范围内自动创建变量?

示例 ** 也是如此,其中表达式 test1.sort()[0] 的计算基于与 100 的相等性。

如果变量仍然在本地范围内创建,那么我也可以手动声明它,这可能对代码可读性有益。

Does Javascript compiler create a variable automatically in the function scope?

不,不是。

解释器在内存中存储临时值(在表达式求值期间出现),是的,但它不会在范围内为它们创建变量。