《JavaScript 语言精粹》 学习笔记 —— 第八章 方法
第八章 方法
8.1、Array
array.concat(item...),返回一个新数组(浅拷贝),是由把指定的所有参数添加到array中构成的。
注1:可有1个或多个参数,如果参数是数组,数组的每个元素会被分别添加。
注2:它不修改array,返回的是一个新数组。
例子:
array.join(separator),返回一个字符串,用 separator 分隔符把它们连接在一起。默认分隔符是半角逗号','。
array.pop(),返回 array 中最后一个元素,并移除它,数组长度减1。
注:如果 array 是空的,则不改变 array,返回undefined。
例子:
方法pop()和它的伴随方法push()可以提供先进后出(FILO)栈的功能:
array.push(item...),返回 push 后新数组的长度,它将一个或多个参数 item 附加到 array 的尾部。
注1:该方法不创建新的数组,而是直接修改原有的array。
注2:如果 item 是数组,会将参数数组作为单个元素添加之(此与concat不同)。
array.reverse(),返回反转后的 array 数组。
注1:它在原数组上实现这一操作作为替代:重排指定的array的元素,但并不创建新数组。
注2:如果对array有多个引用,那么通过所有引用都可以看到数组元素的新顺序。
array.shift(),返回 array 中第一个元素,并移除它,并且将余下的所有元素前移一位,以填补数组头部的空缺。
注1:如果 array 是空的,将不进行任何操作,返回undefined。
注2:shift 通常比 pop 慢很多。
注3:该方法不创建新的数组,而是直接修改原有的array。
array.slice(start, end),返回一个浅复制后的新数组(不包括array[end]元素)。它对 array 中的一段作浅复制,第一个被复制的元素是 array[start],一直复制到 array[end]。
注1:start如果是负数,为从数组尾部开始算起的位置。也就是说-1指最后一个元素,-2指倒数第二个元素,以此类推。
注2:end如果没有指定,默认为 array.length,即切分的数组包含从start开始到数组结束的所有元素。如果这个参数是负数,它声明的是从数组尾部开始算起的元素。
注3:返回的新数组不包括array[end]。
注4:如果 start 大于 array.length,返回一个空数组。
注5:该方法并不修改数组。如果想删除数组中的一段元素,应该使用方法Array.splice()。
注6:在Internet Explorer 4中,参数start不能为负数。这在IE的最新版本中已经更正。
例子:
array.sort(compareFn),对数组 array 的内容按比较函数进行排序,它不能正确地给一组数字进行排序。
注1:javascript默认的比较函数假定所有要被排序的元素都是字符串,所以比较的时候会将其先转化成字符串;
注2:比较函数接受两个参数,如果两个参数相等则返回0,如果第一个参数应该排列在前面,则返回一个负数,如果第二个参数应该排列在前面,则返回一个正数。
例子:
array.splice(start, deleteCount, item...),从数组 array 中删除1个或多个元素,并用心的item代替它们。返回一个包含移除元素的数组。
例子:
array.unshift(item...),像 push 方法一样用于将元素添加到数组中,但它是把 item 插入到 array 的开始部分而不是尾部。它返回 array 的新的长度值。
例子: