题目--机试
2018-06-07 11:27 @疯狂的迈步 阅读(148) 评论(0) 收藏 举报
//评测题目:
//题目1:
//提取url中search部分参数,www.taobao.com?a=1&b=2
function urlgetparme(){
let url = location.search;//获取url
let theRequest = new Object();
if(url.indexOf("?")!=-1){
let str = url.substr(1);
strs = str.split("&");
for(let i=0;i<strs.length;i++){
theRequest[strs[i].split('=')[0]]=unescape(strs[i].split('=')[1]);
}
}
return theRequest;
}
//反省: 正则处理会好一些
//题目2:
//2个正整数字符串的相加,即‘1’+’19’——>’20’(考虑超长字符串相加)
function strAdd(a,b){
let splite_length=3;
let aL=string(a),bL=string(b);
let resout='',c=0;
while(aL!=0||bL!=0){
let aR=aL.slice(-splite_length);bR=bL.slice(-splite_length);
let t =String(parseInt(aR)+parseInt(bR)+c);
resout = t.slice(-splite_length) + resout; // 字符拼接
c= parseInt(t.slice(0,-splite_length)||'0');
aL=aL.slice(0,-splite_length)||'0';
bL=bL.slice(0,-splite_length)||'0';
}
if(c){
resout = string(c)+resout;
}
return resout;
}
//反省 漏了字符拼接的过程、、边界考虑完全不足,哎,要参考一下bigNumber.js这个开源项目是怎么实现的,那个才是正真的实现大数据相加。在代码里面应该体现出负数和小数处理的分支
//题目3:实现es5,es6两种方式
//写一个类Person,拥有属性age和name,拥有方法say(something)
//再写一个类Superman,继承Person,拥有自己的属性power,拥有自己的方法fly(height)
//ES5
function Person(name,age){
this.name=name;
this.age=age;
this.say=function(){
//something
}
}
function Superman(power){
this.power=power;
this.fly=function(height){
//something
}
}
Superman.prototype=new Person("junhey","18");
//ES6
Class Person(){
this.age=age;
this.name=name;
this.say=function(){
//something
}
}
Class Superman extends Person{
this.power=power;
this.fly=function(height){
//something
}
}
END
---------------------------------------------------------------------------------------------
欢迎关注 我的微博@疯狂的迈步 我的github@junhey
浙公网安备 33010602011771号