我想知道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
答案 0 :(得分:2)
item.toUpperCase();
返回大写字符串,这就是为什么
item = item.toUpperCase();
将大写的字符串分配给item
,并且由于item
是数组元素,因此该元素将通过其引用进行更改。
答案 1 :(得分:0)
此处 item = item.toUpperCase();
用粗体显示正在打印的局部变量,但在后一种情况下,它只是打印的引用和函数参数