例如在下面的代码中:
const productIds = [123, 100, 50];
const test1 = () => productIds.sort(); // *
if (100 === productIds.sort()[0]) { // **
console.log('equal!');
}
在示例中*
返回一个排序数组。但我假设在返回之前必须对其进行排序并将结果保存在某个地方。Javascript编译器是否在函数作用域中自动创建变量?
示例**
也是如此,其中表达式test1.sort()[0]
基于与100
的相等性进行评估。
如果一个变量仍然在本地范围内创建,那么我也可以手动声明它,并且可能在代码可读性方面是有益的。
Javascript 编译器会在函数作用域中自动创建变量吗?
不,它没有。
解释器将临时值(在表达式计算期间出现(存储在内存中,是的,但它不会在作用域中为它们创建变量。