【读书笔记】javascript语言精粹--第8章 方法

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函数根据一串数字编码返回一个字符串。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值