国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

小米公司JavaScript面試題

2024-05-06 16:13:11
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了小米公司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"

 

小菜解法

     這兩道題,考的就是閉包,廢話不多說,直接上代碼。

 

復制代碼代碼如下:

/**
 * 第一題
 * @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);

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 济南市| 忻城县| 金阳县| 亳州市| 江油市| 连山| 读书| 保山市| 德阳市| 东安县| 紫金县| 外汇| 四平市| 乌鲁木齐市| 云龙县| 临西县| 报价| 民丰县| 淮南市| 密云县| 富源县| 马公市| 浙江省| 区。| 右玉县| 慈利县| 呼和浩特市| 高唐县| 昭觉县| 乌恰县| 江源县| 南澳县| 长岛县| 沁水县| 察隅县| 康定县| 崇文区| 沾益县| 岫岩| 太仓市| 潢川县|