为什么JavaScript函数在不同的时间工作?

时间:2017-06-01 12:13:46

标签: javascript

有点奇怪的标题,让我解释一下。

拿这个:

let a = ['a', 'b', 'c']
function joining(){
    console.log(a.join())
}
joining() // a,b,c
THE ABOVE IS JOINED

function joining(){
    a.join()
    console.log(a)
}
joining() // ['a', 'b', 'c']
THE ABOVE IS NOT JOINED

function pushing(){
    a.push('d')
    console.log(a)
}
pushing() // ['a', 'b', 'c', 'd']
THE ABOVE IS PUSHED

第一个joining()正确连接它们,因为我在数组上调用了.join()。 但是,我调用的第二个加入了它,然后尝试记录它,但它显示原始。 但是我使用push()方法完全相同,并且更改了原始数组。我该如何判断哪些方法会改变原始数组?哪些方法只是学习每种方法?

2 个答案:

答案 0 :(得分:2)

a.join()未在第二个实例中输出预期结果的原因是您没有从方法的调用中分配返回值。

a = a.join();
console.log(a);

为了完整性,在第一个示例中,预期输出将记录在控制台上,因为调用返回的值作为参数传递给console.log()

答案 1 :(得分:1)

join()方法将数组的元素连接成一个字符串,并返回字符串。

因此,您应该将其更新为:

a = a.join()