前端面试题总结

背景:前端经验2年,5月份经历了几个公司的面试,记录一下面试总结

css部分

  • 上下左右居中布局
1. 父元素flex布局
<div class="parent">
    <div class="child"></div>
  </div>
  <style>
    .parent{
      background:gray;
      width:300px;
      height:300px;
      display: flex;
      justify-content: center;
      align-items: center;
    }
    .child{
      background:red;
      width:100px;
      height: 100px;
    }
2. 父元素相对定位 子元素绝对定位 结合left top margin/transform-translate
<div class="parent">
    <div class="child"></div>
  </div>
  <style>
    .parent{
      background:gray;
      width:300px;
      height:300px;
      position: relative;
    }
    .child{
      background:red;
      width:100px;
      height: 100px;
      position: absolute;
      top:50%;
      left:50%;
     /*margin-top: -50px;
      margin-left: -50px;*/
      transform: translate(-50%,-50%);
    }
  </style>
  • 盒模型
每个块级元素都看做有一个盒子 盒子包含content padding border,
一般块元素的height width是指content 部分的height width,
在怪异模式下 是指border box的height width,
标准模式下可以使用box-sizing 属性 指定为border box;
  • 纯css写轮播
  • css3新特性有哪些
  • 动画与过渡的区别
两者都是从一个状态 变化 到另外一个状态
过渡 不能在始 终状态之间 定义过渡的子过程细节
动画 可以在始 终在始 终状态之间 定义过渡的子过程细节 
过渡属性有
    transition-property
    transition-duration
    transition-timing-function
    transition-delay
动画属性有
    animation-name
    animation-duration
    animation-timing-function
    animation-delay
    animation-iteration-count
    animation-direction
    animation-play-state
  • css动画与js动画的区别
css动画经过GPU加速优化,更流畅,
但是他属于CSS3的特性,浏览器支持程度不一样,js动画浏览器支持程度更好
  • css动画的优点
css动画经过GPU加速优化
  • css3选择器中:与::的区别
    :伪类 ::伪元素
  • CSS 选择器 优先级(实战题)
    答案 gray
<div id="wrapper">
  <p class="inner">
    <span class="content">
      <b class="txt">color is ?</b>
    </span>
  </p>
  <style type="text/css">
    #wrapper span{
      color:green
    }
    .content b.txt{
      color:gray;
    }
    p.inner b{
      color:red;
    }
    .txt{
      color:black;
    }
  </style>
</div>
  • BFC怎么形成的
  • BFC的特点
  • BFC实战
题目:问A的宽 高分别是多少?代码如下
答案:280px 260px
<div class="A">
  <div class="B"></div>
  <div class="C"></div>
  <div class="D"></div>
</div>
 <style type="text/css">
  .A{
    float: left;
    background: gray;
  }
  .B,.C,.D{
    height: 50px;
    width:200px;
    margin:20px;
    padding:20px;
  }
  .B{
    float: left;
    background:green;
  }
  .D{
    float: right;
    background:red;
  }
  .C{
    position: relative;
    top:50px;
    left:50px;
    background:yellow;
  }
  </style>

JS部分

  • 二维数组拍平
[].concat.apply([],arr)
  • 数组去重
这个方法时间复杂度为O(n),而且稍微gai'd
let arr=[1,2,3,4,5,8,10,2,4,7,3,2]
    function noRepeat(arr){
      let obj={}
      arr.forEach(item=>{
        obj[item]||(obj[item]=true)//这样写去重
        // obj[item]=obj[item]?obj[item]+1:1 //这样不仅去重而且方便后期统计出现的次数
      })
      return Object.keys(obj)
    }
    console.log(noRepeat(arr))
  • this
在一般函数中
1. this总是代表它的直接调用者, 例如 obj.func ,那么func中的this就是obj
2.在默认情况,没找到直接调用者,则this指的是 window;在严格模式下,没有直接调用者的函数中的this是 undefined
3.使用call,apply,bind绑定的,this指的是绑定的对象
  • 箭头函数
this已经定义 指向已经明确 指向其父级作用域的this,默认指向在定义它时,它所处的对象,而不是执行时的对象, 
没有arguments
答案:33
  • console.log([0,1,2,10].map(parseInt))

答案:[0, NaN, NaN, 3]
解析:parseInt接受两个参数,第二个标示进制(2-36之间),map函数将vaule和key传给parseInt,y因此parseInt接受到的参数依次为
(0,0)--第二个参数为零,默认采用10进制解析,输出结果为0;
(1,1)--第二个参数为1,不在2-36之间 所以输出NAN;
(2,2)--第二个参数为2,则采用二进制解析第一个参数,但是二进均是0或1标示的,所以2进制不能解析2,输出NAN;
(10,3)--第二个参数为3,3采用三进制解析,输出结果为3;

框架相关

  • JQuery $与$.fn,$.ready与window.onload与window.DOMcomponentLoaded
  • Vue:生命周期及各个钩子的作用
  • React:生命周期及各个钩子的作用
  • Vuex:什么情况下使用,与eventbus区别
  • redux:
  • 前端路由:动态路由与子路由
  • 框架选型

栈外技术

相同点:数据存储机制 不跨域
不同点:
1. 作用:cookie用于前后端通信,localStorage sessionStorage本地存储
2. 长度:cookie限制4k,localStorage sessionStorage 各浏览器不一致,但是比cookie大很多 一般5M
3. 存储方式:cookie字符串形式,不同字段用分号隔开,localStorage sessionStorage 均是键值对方式,且都是简单数据类型,对于数组 对象等引用类型 可先用JSON.stringfy转换后存储
4. 有效期:cookie 在其字段中expire对应的时间内有效,localstorage长期有效,除非手动删除,sessionstorage关闭会话时候失效
5. 作用域:cookie在其字段domain path对应的域名即父级域名内有效,在所有同源窗口中都是共享的;localstorage在同域名下有效,在所有同源窗口中都是共享的;sessionStorage不在不同的浏览器窗口中共享,即使是同一个页面

算法

  • 冒泡排序、快速排序、排序二叉树
    参看另一篇博客
  • 最短路线
  • 协方差
  • 时间复杂度及推导
  • hash算法怎么实现的

其他

  • 平时怎么学习的
  • 遇到了什么问题,怎么解决
  • 有什么打算、规划是怎样的
  • 为什么跳槽
  • 你有什么要问的么

写在最后

面试心态很重要:自信 稳重 不卑不亢 实事求是

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,324评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,356评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,328评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,147评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,160评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,115评论 1 296
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,025评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,867评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,307评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,528评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,688评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,409评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,001评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,657评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,811评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,685评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,573评论 2 353

推荐阅读更多精彩内容