Javascript面試題

來源:互聯網
上載者:User

文章簡介:Javascript面試題.

要求:
1、只能在指定的位置填寫自己的代碼,本檔案裡的其他代碼不能修改
2、所有題目都不允許添加全域變數名
3、本檔案應該能在firebug的console裡正常執行,並輸出結果
4、代碼最佳化,效率最高
5、代碼注釋明確

練習1:
實現一個遍曆數組或對象裡所有成員的迭代器。

var each = function(obj, fn){
 
        //+++++++++++答題地區+++++++++++
 
       
 

        //+++++++++++答題結束+++++++++++
 
};
 

try{
 
       
 
        var data1 = [4,5,6,7,8,9,10,11,12];
 
        var data2 = {
 
                "a": 4,
 
                "b": 5,
 
                "c": 6
 
        };
 
       
 
        console.group(data1);
 
       
 
        each(data1, function(o){
 
                if( 6 == this )
 
                        return true;
 
                else if( 8 == this )
 
                        return false;
 
                console.log(o + ": \"" + this + "\"");
 
        });
 
       
 
        console.groupEnd();
 

        /*------[執行結果]------
 

        1: "4"
 
        2: "5"
 
        4: "7"
 

        ------------------*/
 
       
 
        console.group(data2);
 
       
 
        each(data2, function(v, n){
 
                if( 5 == this )
 
                        return true;
 
                console.log(n + ": \"" + v + "\"");
 
        });
 
       
 
        console.groupEnd();
 

        /*------[執行結果]------
 

        a: "4"
 
        c: "6"
 

        ------------------*/
 
       
 
}catch(e){
 
        console.error("執行出錯,錯誤資訊: " + e);
 
}

練習2:
實現一個叫Man的類,包含attr, words, say三個方法。

var Man;
 
//+++++++++++答題地區+++++++++++
 

//+++++++++++答題結束+++++++++++
 

try{
 
       
 
        var me = Man({ fullname: "小紅" });
 
        var she = new Man({ fullname: "小紅" });
 
       
 
        console.group();
 
        console.info("我的名字是:" + me.attr("fullname") + "\n我的性別是:" + me.attr("gender"));
 
        console.groupEnd();
 
        /*------[執行結果]------
 

        我的名字是:小紅
 
        我的性別是:<使用者未輸入>
 

        ------------------*/
 

        me.attr("fullname", "小明");
 
        me.attr("gender", "男");
 
        me.fullname = "廢柴";
 
        me.gender = "人妖";
        she.attr("gender", "女");
 
       
 
        console.group();
 
        console.info("我的名字是:" + me.attr("fullname") + "\n我的性別是:" + me.attr("gender"));
 
        console.groupEnd();
 
        /*------[執行結果]------
 

        我的名字是:小明
 
        我的性別是:男
 

        ------------------*/
 
       
 
        console.group();
 
        console.info("我的名字是:" + she.attr("fullname") + "\n我的性別是:" + she.attr("gender"));
 
        console.groupEnd();
 
        /*------[執行結果]------
 

        我的名字是:小紅
 
        我的性別是:女
 

        ------------------*/
 

        me.attr({
 
                "words-limit": 3,
 
                "words-emote": "微笑"
 
        });
 
        me.words("我喜歡看視頻。");
 
        me.words("我們的辦公室太漂亮了。");
 
        me.words("視頻裡美女真多!");
 
        me.words("我平時都看優酷!");
 
       
 
        console.group();
 
        console.log(me.say());
 
        /*------[執行結果]------
 

        小明微笑:"我喜歡看視頻。我們的辦公室太漂亮了。視頻裡美女真多!"
 

        ------------------*/
 

        me.attr({
 
                "words-limit": 2,
 
                "words-emote": "喊"
 
        });
 

        console.log(me.say());
 
        console.groupEnd();
 
        /*------[執行結果]------
 

        小明喊:"我喜歡看視頻。我們的辦公室太漂亮了。"
 

        ------------------*/
 
       
 
}catch(e){
 
        console.error("執行出錯,錯誤資訊: " + e);
 
}

練習3:
實現一個URI解析方法,把url裡#之後的參數解析成指定的資料結構。

function urlParser(s){
 
        //+++++++++++答題地區+++++++++++
 

               
        //+++++++++++答題結束+++++++++++
 
}
 

try{
 
        var url1 = "http://www.abc.com/m/s/";
 
        var url2 = "http://www.abc.com/m/s/";
 
        var url3 = "http://www.abc.com/m/s/";
 

        console.group();
 
        console.info( urlParser(url1) );
 
        console.info( urlParser(url2) );
 
        console.info( urlParser(url3) );
 
        console.groupEnd();
 
        /*------[執行結果]------
 

        ["page", "2", { "type": "latest_videos", "page_size": 20 }]
 
        [{ "type": "latest_videos", "page_size": 20 }]
 
        ["page", { "type": "latest_videos", "page_size": 20 }]
 
       
 
        ------------------*/
 
       
 
}catch(e){
 
        console.error("執行出錯,錯誤資訊: " + e);
 
}



相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.