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

时间:2018-11-13 10:22:51

标签: javascript

我想知道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 

2 个答案:

答案 0 :(得分:2)

item.toUpperCase();返回大写字符串,这就是为什么 item = item.toUpperCase();将大写的字符串分配给item,并且由于item是数组元素,因此该元素将通过其引用进行更改。

答案 1 :(得分:0)

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