在没有赋值的情况下使用时,是否会为 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?
不,不是。
解释器在内存中存储临时值(在表达式求值期间出现),是的,但它不会在范围内为它们创建变量。
例如在下面的代码中:
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?
不,不是。
解释器在内存中存储临时值(在表达式求值期间出现),是的,但它不会在范围内为它们创建变量。