03-操作数组内容
8.2 操作数组内容
在开始讲解那些激动人心的方法之前,先看一些常用的数组方法(非常有用)。数组方法中最容易让人混淆的是:修改当前数组和返回新数组的方法之间的区别。关于如何区分这两者,并没有相关的约定,所以这是需要记住的内容(比如, push 会修改当前数组,而 concat 则会返回一个新数组)。
在其他语言中,比如Ruby,有一个约定来界定这个函数是修改当前值还是返回当前值的拷贝。例如,在Ruby中,如果有一个字符串 `str` ,调用 `str.downcase` ,会返回该字符串的全小写版本,但是str的值不会改变。不过,如果调用 `str.downcase!` ,则 `str` 会被修改。在JavaScript标准库中,并没有说明哪些方法会返回新的拷贝值,而哪些会修改原值。在作者看来,需要额外在大脑中记住这些信息就是这门语言的一个缺点。
在其他语言中,比如Ruby,有一个约定来界定这个函数是修改当前值还是返回当前值的拷贝。例如,在Ruby中,如果有一个字符串 `str` ,调用 `str.downcase` ,会返回该字符串的全小写版本,但是str的值不会改变。不过,如果调用 `str.downcase!` ,则 `str` 会被修改。在JavaScript标准库中,并没有说明哪些方法会返回新的拷贝值,而哪些会修改原值。在作者看来,需要额外在大脑中记住这些信息就是这门语言的一个缺点。