一、Array
-
array.concat(item...)
concat方法产生一个新数组,它包含一份array的浅拷贝,并把一个或多个参数item附加在其后。如果参数item是一个数组,那么它的每个元素会被分别添加。
-
array.join(separator)
join方法把一个array构造成一个字符串。它先把array中的每个元素构造成一个字符串,接着用一个separator分隔符把它们连接在一起。默认的是逗号‘,’。要想做到无间隔的连接,我们可以使用空字符串作为separator。
pop可以像这样实现:
Array.method('pop', function() {
return this.splice(this.length - 1, 1)[0];
} -
array.pop()
pop和push方法使得数组array可以像堆栈一样工作。pop方法移除array中的最后一个元素并返回该元素。如果该array是空,它会返回undefined。
-
array.push(item...)
push可以像这样实现:
Array.method('push', function(){
this.splice.apply(this, [this.length,0].concat(Array.prorotype.slice.apply(arguments));
return this.length;
}
push方法把一个或多个参数item附加到一个数组的尾部。和concat方法不同的是,它会修改array,如果参数item是一个数组,它会把参数数组作为单个元素整个添加到数组中,并返回这个array的新长度值。
-
array.reverse()
reverse方法反转array里的元素的顺序,并返回array本身
-
array.shift()
shift方法移除数组array中的第1个元素并返回该元素。如果这个数组array是空的,它会返回undefined。shift通常比pop慢得多:
shift可以这样实现:
Array.method('shift', function(){
return this.splice(0,1)[0];
}) -
array.unshift(item...)
unshift方法像push方法一样,用于把元素添加到数组中,但它是把item插入到array的开始部分而不是尾部。它返回数组的新的长度:
-
array.slice(start,end)
slice方法对array中的一段做浅拷贝。首先拷贝array[start],一直拷贝到array[end]为止。end参数是可选的,默认值是该数组的长度。如果两个参数中的任何一个是负数,array.length会和它们相加,试图让它们成为非负数。如果start大于等于array.length,得到的结果将会是一个新的空数组。
-
array.splice(start,deleteCount,item...)
splice方法从array中移除一个或多个元素,并用新的item替换它们。参数start是从数组array中移除元素的开始位置。参数deleteCount是要移除的元素个数。如果有额外的参数,那些item会插入到被移除元素的位置上。它返回一个包含被移除元素的数组。
splice最主要的用处是从一个数组中删除元素。千万不要把splice和slice弄混了:
-
array.sort(comparefn)
sort方法对array中的内容进行排序。它不能正确地给一组数字排序:
JavaScript的默认比较函数把要被排序的元素都视为字符串。所以当它比较这些数字的时候,会把它们转化为字符串,于是得到一个错得离谱的结果。
幸运的是,你可以使用自己的比较函数来替换默认的比较函数。你的比较函数接收连个参数,并且这两个参数相等则返回0,如果第1个参数应该排列在前面,则返回一个负数,如果第2个参数应该排列在前面,则返回一个正数。
上面这个函数可以使数字正确排序,但它不能使字符串排序。如果我们想要给任何包含简单值的数组排序,必须要做更多的工作:
二、Number
-
number.toExponential(fractionDigits)
toExponential方法把这个number转换成一个指数形式的字符串。可选参数fractionDigits控制其小数点的数字位数。它的值必须在0~20:
-
number.toFixed(fractionDigits)
toFixed方法把这个number转换成为一个十进制数形式的字符串。可选参数fractionDigits控制其小数点后的数字位数。它的值必须在0~20,默认为0:
-
number.toPrecision(precision)
toPrecision方法把这个number转换成为一个十进制数形式的字符串。可选参数precious控制数字的精度。它的值必须在0~21:
-
number.toString(radix)
toString方法把这个number转换成一个字符串。可选参数radix控制基数。它的值必须在2~36。默认的radix是以10为基数。radix参数最常用的是整数,但是它可以用任意的数字。
在最普通的情况下,number.toSting()可以更简单地写为String(number):
-
Object
object.hasOwnProperty(name)
如果这个object包含一个名为name的属性,那么hasOwnProperty方法返回true。原型链中的同名属性是不会被检查的。这个方法对name就是“hasOwnProperty”时不起作用,此时会返回false:
三、String
-
string.charAt(pos)
charAt方法返回在string中pos位置处的字符,pos默认值是0。如果pos小于0或大于等于字符串长度,它会返回空字符串:
charAt可以像这样实现:
String.method('charAt', function(pos){
return this.slice(pos, pos+1);
}) -
string.charCodeAt(pos)
charCodeAt方法同charAt一样,只不过它返回的不是一个字符串,而是以整数形式表示的在string中的pos位置处的字符的字符码位。如果pos小于0或大于等于字符串长度,它返回NaN:
-
String.fromCharCode(char...)
String.fromCharCode函数根据一串数字编码返回一个字符串。
-
string.concat(string..)
concat方法把其他的字符串连接在一起来构造一个新的字符串。它很少被使用,因为用+运算符更为方便:
-
string.indexOf(searchString,position)
indexOf方法在string内查找另一个字符串。如果它被找到,返回第1个匹配字符的位置,否则返回-1.可选参数position可设置从string的某个指定的位置开始查找:
- string.replace(searchValue,replaceValue)
replace方法对string进行查找和替换操作,并返回一个新的字符串。参数searchValue可以是一个字符串或一个正则表达式对象。如果它是一个字符串,那么searchValue只会在第1次出现的地方被替换,所以下面的代码结果是“mother-in_law”:
var result = "mother_in_law".replace('','-');//mother-in_law
如果searchValue是一个正则表达式并且带有g标识,它会替换所以得匹配。如果没有带g标识,它会仅替换第1个匹配:
"mother_in_law".replace(//g,'-')//mother-in-law
"mother_in_law".replace(/_/,'-')//mother-in_law -
string.search(regexp)
search方法和indexOf方法类似,只是它接受一个正则表达式对象作为参数而不是一个字符串。如果找到匹配,它返回第1个匹配的首字符位置,如果没有找到匹配,则返回-1.此方法会忽略g标识,且没有position参数:
-
string.slice(start,end)
slice方法复制string的一部分来构造一个新的字符串。如果start参数是负数,它将与string.length相加。end参数是可选的,且默认值是string.length。如果end为负数,那么它将与string.length相加。end参数等于你要取得最后一个字符的位置加上1。要想得到从位置p开始的n个字符,就用string.slice(p, p+n)。
- string.substring(start,end)
substring方法和slice方法一样,只是它不能处理负数参数。没有任何理由去使用substring方法。请用slice替代它。 -
string.split(separator,limit)
split 方法把这个string分割成片段来创建一个字符串数组。可选参数limit可以限制被分割的片段数量。separator参数可以是一个字符串或一个正则表达式。
如果separator是一个空字符,会返回一个单字符的数组:
否则,此方法会在string中查找所有separator出现的地方。分隔符两边的每个单元格文本都会被复制到该数组中。此方法会忽略g标识: