为什么第一个代码有效,第二个代码无效



我想知道JavaScript是如何处理代码的,浏览器中会发生什么
代码1(工作代码(

let array = ['Item 1', 'Item 2', 'Item 3'];
array.forEach(function(item) {
if (item === 'Item 2') {
item = item.toUpperCase();
} else {
item = item.toLowerCase();
}
console.log(item);
});

// output item 1
//        ITEM 2
//        item 3 

代码2(不工作(

let array = ['Item 1', 'Item 2', 'Item 3'];
array.forEach(function(item) {
if (item === 'Item 2') {
item.toUpperCase();
} else {
item.toLowerCase();
}
console.log(item);
});

// output Item 1
//        Item 2
//        Item 3 

item.toUpperCase();返回大写字符串,这就是为什么当您这样做时item = item.toUpperCase();大写字符串被分配给item,由于item是一个数组元素,该元素通过其引用而更改。

此处粗体项=item.toUpperCase();正在创建一个正在打印的局部变量,但在后面的情况下,它只是打印的引用和函数参数

相关内容

最新更新