微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

小米公司JavaScript面试题

面试题目

一、

代码如下:
一个函数 function repeat (func,times,wait) { } 这个函数能返回一个函数,比如这样用 var repeatedFun = repeat(alert,10,5000) 调用这个 repeatedFun ("hellworld") 会alert十次 helloworld,每次间隔5秒

二、

代码如下:
一个函数stringconcat, 要求能 var result1 = stringconcat("a","b") result1 = "a+b" var stringconcatWithPrefix = stringconcat.prefix("hellworld"); var result2 = stringconcatWithPrefix("a","b") result2 = "hellworld+a+b"

小菜解法

这两道题,考的就是闭包,废话不多说,直接上代码

代码如下:
aram func * @param times * @param wait * @returns {repeatImpl} */ function repeat (func,wait) { //不用匿名函数是为了方便调试 function repeatImpl(){ var handle, _arguments = arguments, i = 0; handle = setInterval(function(){ i = i + 1; //到达指定次数取消定时器 if(i === times){ clearInterval(handle); return; } func.apply(null,_arguments); },wait); } return repeatImpl; } //测试用例 var repeatFun = repeat(alert,4,3000); repeatFun("hellworld"); /** * 第二题 * @returns {string} */ function stringconcat(){ var result = []; stringconcat.merge.call(null,result,arguments); return result.join("+"); } stringconcat.prefix = function(){ var _arguments = [], _this = this; _this.merge.call(null,_arguments,arguments); return function(){ var _args = _arguments.slice(0); _this.merge.call(null,_args,arguments); return _this.apply(null,_args); }; }; stringconcat.merge = function(array,arrayLike){ var i = 0; for(i = 0; i < arrayLike.length; i++){ array.push(arrayLike[i]); } } //测试用例 var result1 = stringconcat("a","b"); //result1 = "a+b" var result3 = stringconcat("c","d"); //result1 = "a+b" var stringconcatWithPrefix = stringconcat.prefix("hellworld"); var stringconcatWithPrefix1 = stringconcat.prefix("hellworld1"); var result2 = stringconcatWithPrefix("a","b"); //result2 = "hellworld+a+b" var result4 = stringconcatWithPrefix1("c","d"); //result2 = "hellworld+a+b" alert(result1); alert(result2); alert(result3); alert(result4);

原文地址:https://www.jb51.cc/js/56625.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐