Array
array.concat(item…) //产生一个新数组
var a=['a','b','c'];
var b=['x','y','z'];
var c=a.concat(b,true);
//c变成['a','b','c','x','y','z',true]
array.join(separator)
join方法把一个array构造成一个字符串
array.pop()
pop和push向堆栈(stack)一样工作pop是移除数组中最后一个元素并返回该元素
array.push(item..)
push是把一个或者多个参数item附加到一个数组的尾部
array.reverse()
反转
array.shift()
shift方法移除数组中的第一个元素并返回该元素
array.slice(start,end)
对array做一段浅复制,从start开始到end结束
array.sort(comparefn)
sort方法对array中的内容进行排序
例子:
var n=[4,8,15,23,42];
n.sort();
//n是[15,16,23,4,42,8]</span>
出现问题的原因是JavaScript中默认比较函数会把被排序的元素都视为字符串;
解决方案:可以使用自己的比较函数来替换默认的比较函数。比较函数应该接受两个参数,并且如果这两个参数相等则返回0,如果第一个参数应该排序在前面,则返回一个负数。如果第二个参数应该排列在最前面,则返回一个正数。
var n=[4,8,15,23,42];
n.sort(function(a,b){
return a-b;
//n是[4,8,15,16,23,42]
上述方法可以使得数字正确排序,但是不能使得字符串排序。
因此需要做更多的工作如下:
var m=['aa','bb','a',4,8,15,16,23,42];
m.sort(function(a,b){
if(a===b)
return 0;
}
if(typrof a===typeof b){
return a<b?-1:1;
});
//m是[4,8,15,16,23,42,'a','aa','bb']
array.splice(start,deleteCount,item…)
参数start是从数组array中移除元素的开始位置。参数deleteCount是要移除的元素个数。如果有额外的参数,item会插入到被移除的元素位置上,它返回一个包含被移除元素的数组。
注意:区分splice和slice,slice是从start到end的浅复制
例子:
var a=['a','b','c'];
var r=a.splice(1,1,'ache','bug');
//a是['a','ache','bug','c']
//r是['b']
array.unshift(item…)
把item插入array的开始部分,而非尾部。
var a=['a','b','c'];
var r=a.unshift('?','@');
//a是['?','@','a','b','c']
//r是5
Function
function.apply(thisArg,argArray)
apply方法调用function,传递一个会被绑定到this上的对象和一个可选的数据作为参数。
Number
number.toExponential(fractionDigits)
toExponential方法把number转换成一个指数形式的字符串
document.writeln(Math.PI.toExponential(0));
document.writeln(Math.PI.toExponential(2));
//3e+0
//3.14e+0
number.toFixed(fractionDigits)
toFixed方法把number转换成一个十进制数形式的字符串,可选fractionDigits来控制其小数点后的数字位数
document.writeln(Math.PI.toFixed(0));
document.writeln(Math.PI.toFixed(2));
//3
//3.14
number.toPrecision(precision)
toPrecision方法把number转换成一个十进制数形式的字符串,可选参数precision来控制数字的精度
document.writeln(Math.PI.toPrecision(0));
document.writeln(Math.PI.toPrecision(2));
//3.1
//3.141593
number.toString(radix)
toString方法把number转换成一个字符串,可选参数radix来控制基数,值必须在2~36之间,默认的radix是以10为基数的。
document.writeln(Math.PI.toString(8));
document.writeln(Math.PI.toString());
//3.11103755242102643
//3.141592653589793
Object
object.hasOwnProperty(name)
若object包含一个名为 name的属性,hasOwnProperty方法返回true
RegExp
regexp.exec(string)
exec方法使用正则表达式的最强大和最慢的方法。
如果匹配成功匹配regexp和字符串string,它返回一个数组。数组中下标为0的元素将包含正则表达式regexp匹配子字符串。下标为1的元素是分组1捕获的文本,下标为2的元素是分组2捕获的文本,如果匹配失败返回null。
regexp.test(string)
如果regexp匹配string,它返回true,否则返回false。
String
string.charAt(pos)
charAt方法返回在string中pos位置处的字符。若pos小于0或者大于等于字符串的长度string.length,它会返回空字符串。
string.charCodeAt(pos)
与charAt方法一样,只是它返回的不是一个字符串,而是以整数形式表示的在string中的pos位置处的字符的字符码位。若pos小于0或者大于等于字符串的长度string.length,它会返回NaN。
var name='curly';
var initial=name.charAt(0);
var initial1=name.charCodeAt(0);
//initial是'c'
//initial1是67
charAt实现:
String.method('charAt',function(pos){
return this.slice(pos,pos+1);
});
string.concat(string)(不常用)
把其他的字符串连接在一起来构造一个新的字符串
string.indexOf(searchString,position)
在indexOf方法在string内查找另一个字符串searchString,若找到,返回第一个匹配字符的位置,否则返回-1。
string.lastIndexOf(searchString,position)
和indexOf方法类似,只是从字符串的尾部开始查找,若找到,返回第一个匹配字符的位置,否则返回-1。
var text='Mississippi';
var p=text.indexOf('ss');//p是2
p=text.indexOf('ss',3);//p是5
var q=text.lastIndexOf('ss');//q是5
q=text.lastIndexOf('ss',3);//q是2
string.localeCompare(that)
比较两个字符串。如果string比字符串that小,结果为负数,如果相等结果为0;
string.match(regexp)
match方法让字符串和一个正则表达式进行匹配。它依据g标识来决定如何进行匹配。如果没有g标识,则调用string.match(regexp)结果与调用regexp.exec(string)的结果相同。若有g标识,则生成一个包含所有匹配的数组
string.replace(searchValue,replaceValue)
replace方法对string进行查找和替换操作,并返回一个新的字符串。参数searchValue可以是一个字符串或者一个正则表达式对象。replaceValue是一个字符串或者一个函数。
string.search(regexp)
search方法与indexOf方法类似,只接受一个正则表达式作为参数而不是一个字符串。若匹配成功,返回第一个匹配 的首字符位置,如果没有找到匹配,返回-1。
var text='and in it he says "Any damn fool could';
var pos=text.search(/["']/);
//pos是18
string.slice(start,end)
slice方法复制string的一部分来构造一个新的字符串。如果start/end参数是负数,它将与string.length相加,end参数可选。
var text='and in it he says "Any damn fool could';
var a=text.slice(18);
//a是'"Any damn fool could'
var b=text.slice(0,3);
//b是'and'
var c=text.slice(-5);
//c是'could'
string.split(separator,limit)
split方法把这个string分割成片段来创建一个字符串数组。
string.substring(start,end)
不能处理负数参数
string.toLocateLowerCase()
将字符串中字幕转换为小写
string.toLocateUpperCase()
将字符串中字幕转换为大写
string.toLowerCase()
将字符串中字幕转换为小写
string.toUpperCase()
将字符串中字幕转换为大写
string.fromCharCode(char…)
string.fromChar函数根据一串数字编码返回一个字符串。