zoukankan      html  css  js  c++  java
  • 人生第一次面试---百度前端面试

      在这里记录一下自己人生中的第一次面试,因为之前春招有其他的安排,没有去实习的打算,错过了腾讯和阿里的面试,觉得也挺可惜的,能不能过是一回事,去锻炼自己又是一回事。

      在自己被通知简历通过筛选以后,心里其实还是非常高兴的,然后被通知了面试,开始了一个星期的CSS和JS基础复习之路,学习了css3的新特性和许多HTML5的新技术。

    第一面

      第一面是一个美女,开始的时候直接叫我做个自我介绍,没错,第一个问题就把我问蒙了,经验不足的后果啊,也没准备过自我介绍说些什么,然后说了一些自己的基本情况,结果面试官问了句:“没有了?”,表示很惊讶,然后开始问问题了。。

      question 1:img标签中的title和alt的区别?

      answer:title是鼠标放上去的时候显示,alt呢是图片无法显示的时候显示在浏览器。

      question 2:css的选择器有哪些?优先级?

      answer:派生选择器,ID选择器,类选择器。选择越精准优先级越高。

      question 3:position有哪些?

      answer:绝对定位absolute,相对定义relative,静态static,固定fixed;

      question 4:absolute和relative是相对于什么来定位?

      answer:absolute是相对于body来定位,relative是相对于父级来定位。

      ps:这里面试官问了句是body吗?我知道答案错了,然而自己没研究过,这里应该是相对于所属元素树中。

      question 5:块级元素和行内元素的区别?如何把行内元素设置他的width和height?

      answer:块级元素有换行。设置display:block把行内元素设置为块级元素,就可以设置width和height。

      PS:面试官追问一句:除了设置display还有其他方法吗?这个问题真不知道,以前只知道display。

      question 6 : 浏览器是如何解析css和js文件的?为什么需要阻塞页面后续内容?

      answer:浏览器是并行加载css文件,串行加载js文件。如果你的javascript想操作后面的DOM元素,基本上来说,浏览器都会报错说对象找不到。因为Javascript执行时,后面的HTML被阻塞住了,DOM树时还没有后面的DOM结点。所以程序也就报错了。

      PS:问题到这里突然变得比较难了,这也是我前不久才学习的。资料:http://coolshell.cn/articles/9749.html。

      

      question 7:开发中有没有遇到缓存问题?如何解决?

      answer:经常出现,就是当加载的JS路径变换时,浏览器还是加载原来的路径,一般都是点击浏览器的历史记录删除历史记录。

      PS:追问:有没有想过通过JS代码来删除缓存?这个以前没考虑过,含糊的说了一句是通过删除cookied吗?面试官说不是,然后我又说了一句是通过刷新页面吗?否认。

      这个问题其实是设置一个开关,当我们有改变时开启开关,让页面重新加载。

      question 8:知道闭包吗?如何运用?

      answer:用2句话概括下闭包。1.闭包是引用着外部变量的内部函数。2.所有函数都是闭包。一般运用是匿名闭包(IIFE),也叫立即执行的函数表达式,优点是:模块化,可重用,实现信息隐藏,只暴露出public方法,最大的优点是不污染变量对象。

      

      question 9:有没有做过性能优化?怎样优化?

      answer:用arguments.callee实现递归,在for循环时保留数组长度,尽量少使用全局对象。。。

      

      question 10:有没有遇到过浏览器兼容问题?如何处理IE8以下浏览器?

      answer:最常遇到的就是事件监听的addEventlistener和attchEvent。IE8以下我在项目开发中不考虑。。

      question 11:事件冒泡和事件捕捉的区别?

      answer:这个问题真是始料未及,冒泡和捕捉是在一年前看过,没有仔细研究,就说了冒泡和捕捉对于onclick事件的区别。

      question 12:OO思想如何理解?

      answer:这个问题因为是我在简历中说过自己有过OO思想的学习,然后和面试官吹了一些封装、继承和多态的知识。

      question 13:HTML5游戏的设计思路?

      answer:略,简历中自己的东西。

      question 14:HTTP协议响应的几种状态?

      answer:1xx:指示信息--表示请求已接收,继续处理
                      2xx:成功--表示请求已被成功接收、理解、接受
           3xx:重定向--要完成请求必须进行更进一步的操作
           4xx:客户端错误--请求有语法错误或请求无法实现
           5xx:服务器端错误--服务器未能实现合法的请求

      PS:资料:http://www.cnblogs.com/li0803/archive/2008/11/03/1324746.html

      一面结束以后真是送了很大一口气,在过程中先紧张然后舒缓,然后又紧张,这个过程真是有点累。一面问了很多CSS的基础,还好自己通过一个星期准备了,不然很多东西虽然不是很常用,也不是很重要,但问到了答不出来就是水平问题,和题目本身没有关系,还是要充分准备下。

    第二面

      早上第一面结束以后,下午5点的时候一个男的打电话给我,说你第一面通过,我们约个时间进行第二次面试。自己也是遵从了他的安排,进行了7点的面试。听声音让人很舒服,应该年龄不大。

      question 1:你开发过自己的JS框架?框架主要实现什么功能?

      answer:开发JS框架呢是通过看一本《JS框架设计》这本书来跟着书开发的框架,现在实现的包括选择器,对象扩展,类型判断和一些对于数组、字符串、字符的操作。

      

      question 2:在AMD规范中为什么要选择seaJS?在开发中能解决什么问题?

      answer:经常在开发项目时会引入jQuery的插件,经常这个插件就会报错了,原因可能是没有引入jQuery,或者jQuery的插件后引用,而且每次开发项目都需要引入大量的<script>标签,让人非常反感,引入seaJs呢,只需要引入一个<script>文件即可,在其他模块中引入所依赖的模块就可以了,实现模块化开发。

      PS:资料:https://github.com/seajs/seajs/issues/547

      question 3:如何实现js文件的异步加载?

      answer:通过document.createElement("script"),然后设置src就可以引入了。

      PS:面试官就这样就可以加载JS文件了吗?你自己实现过没有?我说只是学会了seaJs的使用,没有具体实现过。

      question 4:闭包的问题。(回答和第一次差不多)

      question 5:HTML5游戏开发中遇到最大的困难?

      answer:物理和数学的基础知识缺乏。(回答了自己的游戏stick hero开发过程)。

      question 6:你对前端的看法是什么?未来规划怎么样?

      answer:我对于前端的看法是web框架的架构,所以我会尽多的去学习JS的框架设计,并且研究别人的JS设计思路,以后的计划是10年内成为框架架构师。

      PS:面试官问了句:成为架构师需要10年吗?我说我也不知道,尽自己的努力吧。

      question 7:问了编译原理和数据结构还有简单的算法问题。

      answer:这次面试没想到会问专业知识,自己也没复习过,当初大二的时候也不是学得很好,就把自己能想到的说了一下。

    结束语

       第二次面试呢气氛很轻松,回答也非常流畅,完全没有第一次的尴尬,这也算是一种成长吧,不管这次结果怎么样,丰富了自己的人生经历,感觉自己在专业知识上还有欠缺,到秋招的时候自己也找到了自己的不足还有复习的方向,这也算是一种收获。

      我的梦想是,web框架架构师。  

  • 相关阅读:
    转:Intellij idea创建javaWeb以及Servlet简单实现
    IntelliJ IDEA控制台启动Tomcat输出中文乱码问题
    Tomcat 输出日志出现中文乱码
    转:Java Web 项目发布到Tomcat中三种部署方法
    运行tomcat7w.exe提示指定的服务未安装 解决办法
    (转)ASP.NET MVC:Razor 引入命名空间
    (转)解决WinDbg调试Dump文件不同环境mscordacwks.dll版本问题
    svn移动目录时如何保留原来的日志
    Memcached 教程
    最近帮朋友写了一个百度竞价关键词快速分词(分组)工具,支持与或逻辑分组,附源码和工具下载链接
  • 原文地址:https://www.cnblogs.com/xiaohaoxuezhang/p/4520732.html
Copyright © 2011-2022 走看看