你的分享就是我们的动力 ---﹥

人人网的JS面试题

时间:2011-10-28 09:58来源:www.chengxuyuans.com 点击:

要求:
1、只能在指定的位置填写自己的代码,本文件里的其他代码不能修改
2、所有题目都不允许添加全局变量名
3、本文件应该能在firebug的console里正常执行,并输出结果
4、代码最优化,效率最高
5、代码注释明确

练习1:
实现一个遍历数组或对象里所有成员的迭代器。

   1. var each = function(obj, fn){
   2.         //+++++++++++答题区域+++++++++++
   3.         
   4.

   5.


   6.



   7.         //+++++++++++答题结束+++++++++++
   8. };
   9.

  10. try{
  11.         
  12.         var data1 = [4,5,6,7,8,9,10,11,12];
  13.         var data2 = {
  14.                 "a": 4,
  15.                 "b": 5,
  16.                 "c": 6
  17.         };
  18.         
  19.         console.group(data1);
  20.         
  21.         each(data1, function(o){
  22.                 if( 6 == this )
  23.                         return true;
  24.                 else if( 8 == this )
  25.                         return false;
  26.                 console.log(o + ": \"" + this + "\"");
  27.         });
  28.         
  29.         console.groupEnd();
  30.

  31.         /*------[执行结果]------
  32.

  33.         1: "4"
  34.         2: "5"
  35.         4: "7"
  36.

  37.         ------------------*/
  38.         
  39.         console.group(data2);
  40.         
  41.         each(data2, function(v, n){
  42.                 if( 5 == this )
  43.                         return true;
  44.                 console.log(n + ": \"" + v + "\"");
  45.         });
  46.         
  47.         console.groupEnd();
  48.

  49.         /*------[执行结果]------
  50.

  51.         a: "4"
  52.         c: "6"
  53.

  54.         ------------------*/
  55.         
  56. }catch(e){
  57.         console.error("执行出错,错误信息: " + e);
  58. }

复制代码


练习2:
实现一个叫Man的类,包含attr, words, say三个方法。

   1. var Man;
   2. //+++++++++++答题区域+++++++++++


   8. //+++++++++++答题结束+++++++++++
   9.

  10. try{
  11.         
  12.         var me = Man({ fullname: "小红" });
  13.         var she = new Man({ fullname: "小红" });
  14.         
  15.         console.group();
  16.         console.info("我的名字是:" + me.attr("fullname") + "\n我的性别是:" + me.attr("gender"));
  17.         console.groupEnd();
  18.         /*------[执行结果]------
  19.

  20.         我的名字是:小红
  21.         我的性别是:<用户未输入>
  22.

  23.         ------------------*/
  24.

  25.         me.attr("fullname", "小明");
  26.         me.attr("gender", "男");
  27.         me.fullname = "废柴";
  28.         me.gender = "人妖";
  29.         she.attr("gender", "女");
  30.         
  31.         console.group();
  32.         console.info("我的名字是:" + me.attr("fullname") + "\n我的性别是:" + me.attr("gender"));
  33.         console.groupEnd();
  34.         /*------[执行结果]------
  35.

  36.         我的名字是:小明
  37.         我的性别是:男
  38.

  39.         ------------------*/
  40.         
  41.         console.group();
  42.         console.info("我的名字是:" + she.attr("fullname") + "\n我的性别是:" + she.attr("gender"));
  43.         console.groupEnd();
  44.         /*------[执行结果]------
  45.

  46.         我的名字是:小红
  47.         我的性别是:女
  48.

  49.         ------------------*/
  50.

  51.         me.attr({
  52.                 "words-limit": 3,
  53.                 "words-emote": "微笑"
  54.         });
  55.         me.words("我喜欢看视频。");
  56.         me.words("我们的办公室太漂亮了。");
  57.         me.words("视频里美女真多!");
  58.         me.words("我平时都看优酷!");
  59.         
  60.         console.group();
  61.         console.log(me.say());
  62.         /*------[执行结果]------
  63.

  64.         小明微笑:"我喜欢看视频。我们的办公室太漂亮了。视频里美女真多!"
  65.

  66.         ------------------*/
  67.

  68.         me.attr({
  69.                 "words-limit": 2,
  70.                 "words-emote": "喊"
  71.         });
  72.

  73.         console.log(me.say());
  74.         console.groupEnd();
  75.         /*------[执行结果]------
  76.

  77.         小明喊:"我喜欢看视频。我们的办公室太漂亮了。"
  78.

  79.         ------------------*/
  80.         
  81. }catch(e){
  82.         console.error("执行出错,错误信息: " + e);
  83. }

复制代码


练习3:
实现一个URI解析方法,把url里#之后的参数解析成指定的数据结构。

   1. function urlParser(s){
   2.         //+++++++++++答题区域+++++++++++
   3.

   4.
   5.

   6.                
   7.         //+++++++++++答题结束+++++++++++
   8. }
   9.

  10. try{
  11.         var url1 = "http://www.abc.com/m/s/#page/2/?type=latest_videos&page_size=20";
  12.         var url2 = "http://www.abc.com/m/s/#type=latest_videos&page_size=20";
  13.         var url3 = "http://www.abc.com/m/s/#page?type=latest_videos&page_size=20";
  14.

  15.         console.group();
  16.         console.info( urlParser(url1) );
  17.         console.info( urlParser(url2) );
  18.         console.info( urlParser(url3) );
  19.         console.groupEnd();
  20.         /*------[执行结果]------
  21.

  22.         ["page", "2", { "type": "latest_videos", "page_size": 20 }]
  23.         [{ "type": "latest_videos", "page_size": 20 }]
  24.         ["page", { "type": "latest_videos", "page_size": 20 }]
  25.         
  26.         ------------------*/
  27.         
  28. }catch(e){
  29.         console.error("执行出错,错误信息: " + e);
  30. }

本文地址http://www.chengxuyuans.com/job_interview/29239.html

其他频道: