Jquery很熟悉,$.ajax包也不陌生,其中$.ajax({url:url,type:"GET",data:data,success:function(res){},错误:函数(错误){}});以前很喜欢success固定回调的写法,实现success和error的语法很清晰var$={ajax(call){if(call.bol){call.success("回调成功");}else{console.error("bolisundefined");//提示}}}Call:$.ajax({bol:false,//如果bol存在可以调用成功回调success:function(res){console.日志(res);},错误:函数(err){console.log(err);}});类似物流信息,后台返回一个字符串,前端识别出连续的11位数字,就可以打电话了。这样做的时候,你想向后台要一个电话号码的额外字段,直接包裹在前端的a标签中。但是后端也连接了三方,三方返回的是一整串。。。然后仔细想想这个过程,即使后端多给了一个字段,这个需求也不是很完美。例如这个字符串是这样的:'您的快递正在派送中,快递员电话:17600699305,某快递员继续为您服务'后台分为两个字段'str1=您的快递员正在派送中,快递员电话:某快递员继续为您服务'str2='17600699305'这个str2插入str1的地方?显然也不容易。最好不要打扰后台,前端自己消化。'识别连续11位数字',首先想到的是正则化:varstr='您的快递正在派送中,快递员电话:17600699305,某快递继续为您服务',strCon=str.match(/\d{11}/);match满足条件,返回一个数组,包括匹配到的内容,内容的起始下标,整个内容,分组(求解释)然后封装实现:functioncontinuFunc(str){varstrBol=str.match(/\d{11}/);if(strBol){returnstrBol.input.slice(0,strBol.index)+''+strBol[0]+''+strBol.input.slice(strBol.index+strBol[0].length,str.length);}}分三部分返回,匹配以连续的11个数字为节点,前后分为两部分,然后进行拼接。index是匹配区域的起始下标,所以第一部分取自0到下标,第二部分已经返回,第三部分取index+字符长度(11)——如何实现toFixed()方法在最后(保留小数点后n位)第一次看到有没有惊慌失措?这个方法调用的是Number.toFixed(),常规的函数包是functionFunc(argu){returnargu;}calls是Func('call');,panic。这种功能基本上是绑定在原型上的。不难发现,toFixed方法调用的是Number类型,所以toFixed方法应该是Number绑定的原型。接下来分析内部实现问题Number.prototype.toDiyFixed=function(n){return(Math.round(this*Math.pow(10,n))/Math.pow(10,n)).toString();}调用:varnum=100.123,a.toDiyFixed(2)得到100.12。toDiyFixed方法成功复制了toFixed方法。以a=100.123为例说说实现原理:先将原数num乘以100(n乘以10的次方),然后四舍五入,(去掉小数点后两位小数,因为乘以100后,前两位小数变成了整数部分,不影响四舍五入),至此保留2(n)位小数的操作完成。注意:但是这个方法有一个问题,就是不会自动在末尾加0。比如100.196应该得到两位小数的100.20,但是这种方法只能得到100.2,100.201应该得到100.20,但是这种方法得到的是100.2,暂时还没有想到解决方法,欢迎大家一起讨论,不过基本功能可以实现。另外说一下原生的toFixedbug:0.7.toFixed(0)发现结果是1(IE)0.035和0.045有两位小数。它们都是0.04(铬)。当然,如果你觉得这个错误无所谓,10.35、10.45、10.45小数点后两位,发现是10.3、10.4,都是错误的。这是一个不容小觑的数字。后来查资料说js的toFixed方法用的是“银行家算法”,本质上是“舍入不加双”。这是什么意思?当四舍五入的数字小于5时,直接丢弃该数字;等于6时,舍去一位,结转一位;当舍弃位的值等于5时,如果前一位的值为奇数,则在舍弃该位的同时结转一个,如果前一位的值为偶数,则直接舍弃该位。按照这个说法,在Chrom中还是不行。10.35应该得到10.4,10.45应该得到10.4。这不是一个问题。有些人碰不到边缘,所以自定义方法toDiyFixed进行备份。靠近。(??)一般开发时间很紧,很多事情没时间考虑,所以还有很多需要优化的地方。有时候,放慢脚步也许是一种进步!