美文网首页
前端面试路遥遥

前端面试路遥遥

作者: 金小可 | 来源:发表于2017-02-08 20:03 被阅读43次

    1、阅读简历

    ...
    

    2、面试问题准备

    2.1、html部分

    1、什么是H5?
    
    2、html语义化的含义和意义?
      提示:用正确的标签做正确的事情。
           html语义化让页面的内容结构化,结构更清晰,便于对浏览器、搜索引擎解析;
           即使在没有样式CSS情况下也以一种文档格式显示,并且是容易阅读的;
           搜索引擎的爬虫也依赖于HTML标记来确定上下文和各个关键字的权重,利于SEO;
           使阅读源代码的人对网站更容易将网站分块,便于阅读维护理解。
    

    2.2、css部分

    1、css绘制圆形、三角形、梯形等;
      提示:none
    
    2、position的取值有哪些?relative、absolute、fixed有哪些区别?
      提示:文档流模型
    
    3、怎样让文字从上到下显示——例如古诗形式的?
      提示:利用折行
           书写模式:writing-mode:lr-tb或writing-mode:tb-rl
    
    4、图片最大化居中裁剪的几种方案?
      提示:background、css嵌套、object-fit
    
    5、元素居中的一些主要方法?
      提示:*
    
    6、css命名和书写需要注意的地方?(规范)
      提示:使用外部文件、不用下划线命名、减少父子关系、少用id
    
    7、页面导入样式时,使用link和@import有什么区别?
      提示:1)link属于XHTML标签,除了加载CSS外,还能用于定义RSS, 定义rel连接属性等作用;而@import是CSS提供的,只能用于加载CSS;
           2)页面被加载的时,link会同时被加载,而@import引用的CSS会等到页面被加载完再加载;
           3)import是CSS2.1 提出的,只在IE5以上才能被识别,而link是XHTML标签,无兼容问题;
    
    8、什么是外边距合并?
      提示:取较大值
    
    9、如何去掉滚动条?
      提示:布局长度控制
    
    

    2.3、js部分

    1、如何将一个字符串的每个字符用下划线链接起来?
      提示:split、join
    
    2、程序中缓存数据的方式
      提示:局部变量、全局变量、localStorage、cookie、sessionStorage
    
    3、什么是闭包(closure),为什么要用它?
      提示:闭包是指有权访问另一个函数作用域中变量的函数,创建闭包的最常见的方式就是在一个函数内创建另一个函数,通过另一个函数访问这个函数的局部变量,利用闭包可以突破作用链域,将函数内部的变量和方法传递到外部。
           闭包的特性:
                1.函数内再嵌套函数
                2.内部函数可以引用外层的参数和变量
                3.参数和变量不会被垃圾回收机制回收
    
    4、如何执行字符串形式的js代码?
      提示:eval(string)
    
    5、什么是事件委托?
      提示:事件委托就是利用事件冒泡,只指定一个事件处理程序,就可以管理某一类型的所有事件
    
    6、ajax有没有破坏js单线程机制
      提示:
          1、浏览器的四个线程:GUI渲染线程、javascript引擎线程、浏览器事件触发线程、HTTP请求线程
          2、回调和任务队列(任务队列中的任务是平等的)
    

    2.4、框架部分部分

    1、bootstrap的主要特点是什么?
      提示:栅格系统、响应式布局
    
    2、react的主要特点
      提示:声明式渲染、基于组件
    
    3、react和react native的区别?
      提示:
    
    4、react和vue的区别?
      提示:
    
    5、vue的主要特点
      提示:响应的数据绑定和组合的视图组件
    
    6、Angular、vue、react的路由的实现原理?他们最大的特点分别是什么?
      提示:
    
    

    2.5、综合(其他)

    1、Ajax是什么?Ajax解决浏览器缓存问题?
      提示:添加随机数、设置请求无cache或者立即更新
    
    2、网页适配pc和mobile的一些方式?
      提示:js计算设定固定大小、媒体查询
    
    3、什么是“前端路由”?什么时候适合使用“前端路由”? “前端路由”有哪些优点和缺点?前端路由的实现原理?
    
    4、一个页面从输入 URL 到页面加载显示完成,这个过程中都发生了什么?
      提示:注:这题胜在区分度高,知识点覆盖广,再不懂的人,也能答出几句,
      而高手可以根据自己擅长的领域自由发挥,从URL规范、HTTP协议、DNS、CDN、数据库查询、
      到浏览器流式解析、CSS规则构建、layout、paint、onload/domready、JS执行、JS API绑定等等;
      详细版:
        1、浏览器会开启一个线程来处理这个请求,对 URL 分析判断如果是 http 协议就按照 Web 方式来处理;
        2、调用浏览器内核中的对应方法,比如 WebView 中的 loadUrl 方法;
        3、通过DNS解析获取网址的IP地址,设置 UA 等信息发出第二个GET请求;
        4、进行HTTP协议会话,客户端发送报头(请求报头);
        5、进入到web服务器上的 Web Server,如 Apache、Tomcat、Node.JS 等服务器;
        6、进入部署好的后端应用,如 PHP、Java、JavaScript、Python 等,找到对应的请求处理;
        7、处理结束回馈报头,此处如果浏览器访问过,缓存上有对应资源,会与服务器最后修改时间对比,一致则返回304;
        8、浏览器开始下载html文档(响应报头,状态码200),同时使用缓存;
        9、文档树建立,根据标记请求所需指定MIME类型的文件(比如css、js),同时设置了cookie;
        10、页面开始渲染DOM,JS根据DOM API操作DOM,执行事件绑定等,页面显示完成。
      简洁版:
        浏览器根据请求的URL交给DNS域名解析,找到真实IP,向服务器发起请求;
        服务器交给后台处理完成后返回数据,浏览器接收文件(HTML、JS、CSS、图象等);
        浏览器对加载到的资源(HTML、JS、CSS等)进行语法解析,建立相应的内部数据结构(如HTML的DOM);
        载入解析到的资源文件,渲染页面,完成。
    
    5、对称加密和非对称加密分别是什么?
      提示:公钥、私钥
    
    6、用户注册登录时怎样记住密码?
      提示:(包含加密方式)
    
    

    2.6、算法

    1、简述二分查找的基本原理?
      提示:
    
    2、数字数组的长度为98,内容为1到100,求缺失的两个数;
      提示:
    
    3、m人围一圈,从第一个人开始数第n个人踢出,再从第n+1个人开始数第n个人踢出,以此类推,知道剩下一个人,请问他的初始编号;
      提示:
    
    

    相关文章

      网友评论

          本文标题:前端面试路遥遥

          本文链接:https://www.haomeiwen.com/subject/zfcsittx.html