源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

小米公司JavaScript面试题

  • 时间:2022-12-19 00:59 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:小米公司JavaScript面试题
面试题目 一、
[u]复制代码[/u] 代码如下:
 请定义这样一个函数 function repeat (func, times, wait) { } 这个函数能返回一个新函数,比如这样用 var repeatedFun = repeat(alert, 10, 5000) 调用这个 repeatedFun ("hellworld") 会alert十次 helloworld, 每次间隔5秒
二、
[u]复制代码[/u] 代码如下:
写一个函数stringconcat, 要求能 var result1 = stringconcat("a", "b")  result1 = "a+b" var stringconcatWithPrefix = stringconcat.prefix("hellworld"); var result2 = stringconcatWithPrefix("a", "b")  result2 = "hellworld+a+b"
小菜解法      这两道题,考的就是闭包,废话不多说,直接上代码。
[u]复制代码[/u] 代码如下:
/**  * 第一题  * @param func  * @param times  * @param wait  * @returns {repeatImpl}  */ function repeat (func, times, 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);
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部