还记得之前讲过的第十三课内容:基本包装类型里面的charCodeAt(n)这个字符串的方法吗?这个就是本节练习的主角了。
第一种:使用原型方法:String.prototype.getStrLen = function(){ //var time1 = new Date; var _this = this; if(!_this || _this.length == 0) return null; //if(!arguments.length|| !_this ) return null; if(" " == _this) return 0; var l = 0; for(var i = 0; i<_this.length; i++){ if(_this.charCodeAt(i)>255) l+=2; else l++; } //console.log("耗时:" + (new Date - time1) + " 毫秒"); return l;}console.log(str.getStrLen());function strLen(str){ var time1 = new Date; if(str.length ==0 || !str) return null; var l = 0; for(var i = 0; i<str.length; i++){ if(str.charCodeAt(i) >255) l+=2; else l++; } console.log("耗时:" + (new Date - time1) + " 毫秒"); return l;}console.log(strLen(str));function strLength(str){ var time1 = new Date; if(str.length == 0 || !str) return null; var l = str.length; for(var i = 0; i< str.length; i++){ if(str.charCodeAt(i) > 255) l++; } console.log("耗时:" + (new Date - time1) + " 毫秒"); return l;}console.log(strLength(str)); 结果:原本以为使用原型方法会比较快,事实证明这只是我的一厢情愿而已,原型方法计算出来的结果是他们的后面两个的4倍左右。 而使用函数的方法中,第三种是最快的。 查看比较结果(用谷歌开发工具打开)
零七网部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与零七网进行文章共享合作。