在 Javascript 中使用时,是否会自动为表达式创建变量而不赋值?



例如在下面的代码中:

const productIds = [123, 100, 50];
const test1 = () => productIds.sort(); // *
if (100 === productIds.sort()[0]) { // **
console.log('equal!');
}

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

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

如果一个变量仍然在本地范围内创建,那么我也可以手动声明它,并且可能在代码可读性方面是有益的。

Javascript 编译器会在函数作用域中自动创建变量吗?

不,它没有。

解释器将临时值(在表达式计算期间出现(存储在内存中,是的,但它不会在作用域中为它们创建变量。

最新更新