他虽疯,但却有他的一套理论。
———威廉-莎士比亚
Array
array.concat(item..)concat方法产生一个新数组,包含一份array数组的浅复制(shallow copy)并把一个或多个参数item附加在其后。如果item是数组,它的每个元素会被分别添加。
array.join(separator)join方法把一个array构造成一个字符串。它先把array中每一个元素构造成一个字符串,接着用一个separator分隔符把它们连接在一起。默认separator是逗号“,”。       
array.pop()和array.push(item…)pop和push方法使得数组像堆栈一样工作。
push(item…)如果item是数组,则它会把参数数组作为单个元素整个添加到数组中。
| 1 | //pop可以这样实现 | 
array.shift()shift方法移除数组array中的第一个元素并返回该元素。如果这个数组为空,它会返回undefined。shift通常比pop慢得多。
| 1 | Array.method('shift',function(){ | 
array.slice(start,end)slice方法对array中的一段做浅复制。首先复制array[start],一直复制到array[end]为止。“前包后不包”。end参数可选,默认值是该数组长度。
如果两个参数中的任何一个是负数,array.length会和它们相加,试图让他们成为非负数。
如果start>=array.length,得到的结果将是一个新的空数组。
array.sort(comparefn)sort方法对array中的内容进行排序,但不能正确的给一组数字排序,因为默认的比较函数会把要被排序的元素视为字符串。
但可以使用自己的比较函数作为参数替代默认比较函数。下面是给任何包含简单值的数组排序:
| 1 | var m=['aa','bb','a',4,8,15,16,23,43]; | 
我们可以编写一个构造更智能的比较函数的函数,来满足一般情况。
| 1 | //by函数接受一个成员名字符串作为参数 | 
sort方法是不稳定的,不建议链式调用sort方法。    
array.splice(start,deleteCount,item…)splice方法从array中移除一个或多个元素,并用新的item替换它们。它返回一个包含被移除元素的数组。
参数start代表开始位置,deleteCount代表被移除的元素个数,可以为0,item会插入到被移除元素的位置。splice可在像这样实现:
| 1 | Array.method('splice',function(start,deleteCount){ | 
array.unshift(item…)unshift把元素添加到数组开始部分。返回array的新length。
可以这样实现:
| 1 | Array.method('unshift',function(){ | 
Number
number.toExponential(fractionDigits)toExponential方法把这个number转换成一个指数形式的字符串。可选参数控制小数点位数。参数值必须在0-20中。      
number.toFixed(fractionDigits)toFixed方法把这个number转换成十进制数形式的字符串。可选参数控制小数点位数。参数必须在0-20中。    
number.toPrecision(precision)toPrecision方法把这个number转换成十进制数形式的字符串。可选参数控制小数点位数。参数必须在0-21中。   
RegExp
regexp.exec(string)exec方法如果成功的匹配regexp和字符串string,它会返回一个数组。数组下标为0的元素将包含regexp匹配的子字符串。下标为1的元素是分组1捕获的文本,以此类推。
如果regexp带有g标识,会改变regexp.lastIndex的值。   
regexp.test(string)
如果regexp匹配string,就返回true,否则返回false。不要对这个方式使用g标识。
String
string.charAt(pos)
可以这样实现:
| 1 | String.method('string',function(){ | 
string.match(regexp)match方法让字符串和一个正则表达式匹配。它依据g标识来决定如何进行匹配。
如果没有g标识,那么调用string.match(regexp)的结果与调用regexp.exec(string)相同。
如果带有g标识,那么它生产一个包含所有匹配(无捕获分组)的数组。   
string.replace(searchValue,replaceValue)replace方法对string进行查找和替换操作,并返回一个新的字符串。searchValue可以是字符串或正则表达式,replaceValue可以是字符串或函数。
如果replaceValue是字符,字符$有特别的含义。
如果replaceValue是函数,那么每遇到一次匹配,函数就会调用一次,该函数返回的字符串会被用做替换文本。传递给这个函数第1个参数是整个被匹配的文本,第2个参数是分组1捕获的文本,以此来类推。
| 1 | String.method('entityify',function(){ | 
string.search(regexp)
与indexOf类似,但它只接受一个正则表达式对象作为参数。忽略g标识,没有position参数。
string.slice()
和array.slice很像,都是复制再截取构造一个新实例。两个参数若为负数,则与length相加,或者从末位往前数(从1计数)。前包后不包。     
string.split(separator,limit)split方法把string分割成片段来创建一个字符串数组。可选参数limit可以限制被分割的片段数量。separator参数可以是字符串或者正则表达式。此方法会忽略g标识。
注意:来自分组捕获的文本会被包含在被分割后的数组中
| 1 | var text='last,first,middle'; | 
