• 百度2015校园招聘前端笔试题汇总


    博主本人前两天刚参加了百度前端校园招聘笔试,现把能记住的跟大家分享探讨下,还有一些是网上搜集来的其他地区的笔试

    1、列举所知道的图片格式,说明其应用场景和优缺点

      当时只填出png,jpg,gif这几个格式,应用场景和优缺点只能随便写了几句话。

      网上搜集的资料如下:

    1. bmp(位图)格式:它是Windows操作系统中的标准图像文件格式,能够被多种Windows应用程序所支持。图像信息较丰富,几乎不进行压缩,但由此导致了它与生俱生来的缺点——占用磁盘空间过大。
    2. gif格式:可以同时存储若干幅静止图象进而形成连续的动画。目前Internet上大量采用的彩色动画文件多为这种格式的文件。缺点是不能存储超过256色的图像。
    3. jpeg格式:文件扩展名为.jpg或.jpeg,其压缩技术十分先进,可以用最少的磁盘空间得到较好的图像质量。应用非常广泛,特别是在网络和光盘读物上。
    4. png格式:一种新兴的网络图像格式,结合GIF及JPG两家之长,是目前保证最不失真的格式,它汲取了GIF和JPG二者的优点,存贮形式丰富。PNG的缺点是不支持动画应用效果。

    以上资料摘自网上搜索结果

    2、跨域通信问题解决方法

      作答时只写了利用document.domain

      详情请见我另一篇博客web跨域通信问题解决

    3、父元素设置了一个透明度,让子元素不继承父元素透明度,有什么解决方法

      博主表示平常透明度用的就不多,更没有遇到子元素继承的情况,所以此题你懂的

      解决办法:a、利用绝对布局,不使用子元素,使其看似是子元素,但由于position:absolute,可能会出现很多问题

           b、IE中,子元素添加position:relative,非IE,使用background:rgba(120,120,120,0.7)来实现。

    4、考察加号减号运算符

     1 console.log(2+'1')    //'21'
     2 
     3 console.log(2-'1')    //1
     4 
     5 console.log(1+ -'1'+'2')    //'02'
     6 
     7 console.log(+'1'+'1'+'2')    //'112'
     8 
     9 console.log(1+ +'2'+'2')    //'32'
    10 
    11 console.log('A'-'B'+2)    //NaN
    12 
    13 console.log('A'-'b'+'2')    //'NaN2'

    5、手机端浏览器,当用户使用百度搜索某一结果时,返回N条记录,用户可向下滚动查看记录,而不是像电脑上的翻页效果

      我觉得是考的AJAX无刷新修改页面的问题,当用户搜索时,先返回搜索记录的前n调数据(不用太多),当滚动到底端时,利用ajax技术,取得后n条数据,然后将取得的数据append进页面中。

    6、设计一个once函数,这个函数只执行一次,若再执行,直接返回上次的结果。 

      我认为是利用立即执行加闭包的方式,再利用hash-table判断是否已经执行

     1 /*只执行一次的函数*/
     2 var test1 =function(){
     3     alert('OK1'); //只会弹出一次
     4     console.log('OK1');
     5 }
     6 
     7 var test2 =function(){
     8     alert('OK2'); //只会弹出一次
     9     console.log('OK');
    10 }
    11 
    12 var once = function(){
    13     var obj = {},i = -1;
    14     return function(fn){
    15         if(arguments.length<1){
    16             alert('请传入要执行的函数');
    17             return;
    18         }
    19         for(var key in obj){
    20             if(obj[key].func === fn){
    21                 return obj[key].result;
    22             }
    23         }
    24         var result = fn();
    25         i++;
    26         obj[i] = {func:fn,result:result};
    27         return result;
    28     }
    29 }()
    View Code

    7、问了些自己平常做的事情

    ---------------------------------------------------------------分割线---------------------------------------------------------------------------

    以下是网上搜集来的题目

    a、html5语义化标签

      在HTML 5出来之前,我们用div来表示页面章节,但是这些div都没有实际意义(例如<div id="header"></div>  <div id="footer"></div>等等),html5的出现改变了这一规则。语义化标签优点:结构更好,更利于搜索引擎的抓取(SEO的优化)和开发人员的维护(可维护性更高,结构清晰,易于阅读);更有利于特殊终端的阅读等。

    • <header></header> 网页的页眉,通常包含h1-h6元素或hgroup,作为整个页面或者一个内容块的标题。也可以包裹一节的目录部分,一个搜索框,一个nav,或者任何相关logo。整个页面没有限制header元素的个数,可以拥有多个,可以为每个内容块增加一个header元素。
    • <footer></footer> 网页的页脚,通常含有该节的一些基本信息,譬如:作者,相关文档链接,版权资料。如果footer元素包含了整个节,那么它们就代表附录,索引,提拔,许可协议,标签,类别等一些其他类似信息。
    • <hgroup></hgroup> 代表“网页”或“section”的标题,当元素有多个层级时,该元素可以将h1h6元素放在其内,譬如文章的主标题和副标题的组合。如果只需要一个h1-h6标签就不用hgroup。
    • <nav></nav> 元素代表页面的导航链接区域。用于定义页面的主要导航部分
    • <aside></aside> 元素被包含在article元素中作为主要内容的附属信息部分,其中的内容可以是与当前文章有关的相关资料、标签、名次解释等(特殊的section)。
    • <section></section> 元素代表文档中的“节”或“段”,“段”可以是指一篇文章里按照主题的分段;“节”可以是指一个页面里的分组。section通常还带标题,虽然html5中section会自动给标题h1-h6降级,但是最好手动给他们降级。article、nav、aside可以理解为特殊的section,所以如果可以用article、nav、aside就不要用section,没实际意义的就用div。
    • <article></article> 元素最容易跟section和div容易混淆,其实article代表一个在文档,页面或者网站中自成一体的内容,其目的是为了让开发者独立开发或重用。譬如论坛的帖子,博客上的文章,一篇用户的评论,一个互动的widget小工具。(特殊的section)除了它的内容,article会有一个标题(通常会在header里),会有一个footer页脚。如果在article内部再嵌套article,那就代表内嵌的article是与它外部的内容有关联的。article内部嵌套section,这样能让浏览器更容易区分各个章节所包括的内容。section内部嵌套article,section将这些自成一体的article包裹,就组成了一个团体。

    b、客户端存储

    • cookie 可以允许的最大存储为4KB,不适合存储任何复杂数据。
    • webStorage W3C规范,HTML5新方法,提供了在客户端存储数据的功能,它可以维持数据直到会话结束(sessionStorage),或者更久(localStorage)。有getItem(key),setItem(key,value),removeItem(key),clear()四种方法。
      • sessionStorage 针对一个 session 进行数据存储。当用户关闭浏览器窗口后,数据会被删除。
      • localStorage  存储的数据没有时间限制。第二天、第二周或下一年之后,数据依然可用。
    • 离线缓存application cache  CACHE MANIFEST

    c、RGB HEX转换

     1 /*RGB(255,255,0),rgb(25,12,100)*/
     2 var rgbToHex = function(rgb) {
     3     var reg = /RGB|rgb|(|)/g;
     4     var rColor = rgb.replace(reg,'').split(',');
     5     var strHex = '#';
     6     for(var i=0,len=rColor.length;i<len;i++) {
     7         var hex = Number(rColor[i]).toString(16);
     8         if(hex.length == 1){
     9             hex = '0' + hex;
    10         }
    11         strHex = strHex + hex;
    12     }
    13     return strHex;
    14 }
    15 
    16 /*#ff00f0,#ff0*/
    17 var hexToRgb = function(hex) {
    18     if(hex.length==4){ //将3位的颜色变为6位的形式
    19         var hColor = '#';
    20         for(var i=1;i<4;i++) {
    21             hColor = hColor + hex.substring(i,i+1) + hex.substring(i,i+1);
    22         }
    23         hex = hColor;
    24     }
    25     var strRgbArr = [];
    26     for(var i=1;i<7;i=i+2){
    27         strRgbArr.push(parseInt('0x'+hex.substring(i,i+2)));
    28     }
    29     return 'RGB(' + strRgbArr.join(',') + ')';
    30 }
    View Code

    d、前端优化

    雅虎网站页面性能优化的34条黄金守则

    PS. 答案题目我会不定期更新,欢迎各位大牛指导

  • 相关阅读:
    GCC的gcc和g++的区别
    C++运行程序依赖的环境-vcredist_x64.exe
    linux账户管理[转自vbird]
    Linux 的账号与群组[转自vbird]
    文件的搜寻【转vbird】
    常用的文件和目录操作命令【转vbird】
    十六进制查看器【转】
    文件与目录的默认权限与隐藏权限【转vbird】
    改变文件属性与权限(转)
    Linux目录规范和含义(转)
  • 原文地址:https://www.cnblogs.com/soulcm/p/3999169.html
Copyright © 2020-2023  润新知