搜狐JavaScript面试题

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

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


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

  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); 

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

  1. var Man; 
  2. //+++++++++++答题区域+++++++++++ 
  3.  
  4.  
  5.  
  6.  
  7.  
  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); 

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

  1. function urlParser(s){ 
  2.         //+++++++++++答题区域+++++++++++ 
  3.  
  4.  
  5.  
  6.                  
  7.         //+++++++++++答题结束+++++++++++ 
  8.  
  9. try
  10.         var url1 = "https://www.abc.com/m/s/#page/2/?type=latest_videos&page_size=20"
  11.         var url2 = "https://www.abc.com/m/s/#type=latest_videos&page_size=20"
  12.         var url3 = "https://www.abc.com/m/s/#page?type=latest_videos&page_size=20"
  13.  
  14.         console.group(); 
  15.         console.info( urlParser(url1) ); 
  16.         console.info( urlParser(url2) ); 
  17.         console.info( urlParser(url3) ); 
  18.         console.groupEnd(); 
  19.         /*------[执行结果]------ 
  20.  
  21.         ["page", "2", { "type": "latest_videos", "page_size": 20 }] 
  22.         [{ "type": "latest_videos", "page_size": 20 }] 
  23.         ["page", { "type": "latest_videos", "page_size": 20 }] 
  24.          
  25.         ------------------*/ 
  26.          
  27. }catch(e){ 
  28.         console.error("执行出错,错误信息: " + e); 



https://www.nucmc.com/ true 搜狐JavaScript面试题 https://www.nucmc.com/show-66-369-1.html report 11232.5 要求:1、只能在指定的位置填写自己的代码,本文件里的其他代码不能修改2、所有题目都不允许添加全局变量名3、本文件应该能在firebug的console里正常执行,并输出结果4、代码最优化,效率最高5、代码注释明确实现
TAG:搜狐 JavaScript 面试题
本站欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果
转载请注明: 文章转载自:BETWAY官网网 https://www.nucmc.com/show-66-369-1.html
BETWAY官网网 Copyright 2012-2014 www.nucmc.com All rights reserved.(晋ICP备13001436号-1)