最近面过的前端面经

海康一面

  • 1.解决塌陷

一,盒子塌陷是什么?

二,为什么会出现盒子塌陷? 当父元素没设置足够大小的时候,而子元素设置了浮动的属性,子元素就会跳出父元素的边界(脱离文档流),尤其是当父元素的高度为auto时,而父元素中又没有其它非浮动的可见元素时,父盒子的高度就会直接塌陷为零, 我们称这是*CSS高度塌陷*
2.闭包

3.旋转45度

4.axios的拦截器原理及应用
**应用场景**
import axios from 'axios' let instance = axios.create({  baseURL: "http://localhost:3000/",  headers: {  'content-type': 'application/x-www-form-urlencoded'  } }) //请求拦截器 instance.interceptors.request.use(config => { //拦截请求,做统一处理  const token = "asdasdk"  //在每个http header都加上token  config.headers.authorization = token  return config }, err => {//失败  return Promise.reject(err) }) //响应拦截器 instance.interceptors.response.use(response => { //拦截响应,做统一处理  if (response.data.code) {  switch (response.data.code) {  case 200:  console.log("1111")  }  }  return response }, err => { //无响应时的处理  return Promise.reject(err.response.status) }) export default instance 
import instance from './api/axios' Vue.prototype.$http = instance 12
this.$http.get(url).then(r => console.log(r)).catch(err => console.log(err)) this.$http.post(url, params).then(r => console.log(r)).catch(err => console.log(err))

5.路由守卫进行判断登录。

6.webpack的打包流程

7.实现三角形,圆形

8.vuex原理

9.vue-router懒加载
{  path: '/path',  name: 'componentName',  component: resolve => require(['@/componentPath'], resolve),  }
能够被webpack自动代码分割  允许将不同的组件打包到一个异步块中,使用命名chunk(特殊注释语法)  Webpack 会将任何一个异步模块与相同的块名称组合到相同的异步块中。  const comA = () => import('url') const Foo = () => import(/* webpackChunkName: "group-foo" */ './Foo.vue') const Bar = () => import(/* webpackChunkName: "group-foo" */ './Bar.vue')  const Baz = () => import(/* webpackChunkName: "group-foo" */ './Baz.vue')
{   path: '/home', name: 'home',   component: r =>require.ensure([], ()=>r(require('@/components/home')), 'demo')  }

滴滴二面(一面就项目+基础)(50min)

  • 1.介绍项目(说了一下实习的时候做了什么)

  • 2.react你了解多少(巴拉巴拉一堆),我面试的部门开发项目用的是react

  • 3.数组去重

var newArr = []  if(newArr.indexOf(arr[i])==-1){  newArr.push(arr[i]) } 面试官提出[1,2,3,3,NaN,NaN]去重不了
NaN该怎么做 我想的是用object的值唯一的方式 面试官提出的是设置一个标志位flag,如果NaN不存在flag = true,如果有的话flag=true  
  • 6.反问。

  • 5.给一个文科生讲解数据结构,你会怎样讲解。

  • 4.实现数组快排。。。


去哪网一面(30min)

  • 1.项目+基础。

  • 2.input事件自动获取焦点()。

    <input type="text" id="box" autofocus="autofocus">
    • 3.input的事件有哪些。

      <input>,<select><textarea>元素的value被修改时,会触发input事件

      • onblur: 失去焦点

      • onfocus:得到焦点

      • ondblclick:双击

      • onchange:改变

      • onkeydown

      • onmousedown

        • 4.js实现一个轮播图。

          v-for由此衍生出vue组件间传值。

        • 5.css动画(transform,translate,transition)。

        • 6.简历里搜索页的实现。

快手一面

  • 1.介绍项目

  • 2.js类型

    判别类型的方式

    Array.prototype.toString.call()得到的是一个[object String]

    那么怎么拿到这个'[object String]'中的String

  • 3.Promise的状态,三种pending fulfilled rejected

  • 4.promise.all手动实现

  • 5

    Function.prototype.a=()=>{  alert(1) } Object.prototype.b = ()=>{  alert(2)  } function A(){} var a = new A() a.a()  a.b()//2 考的是原型链 a->A.prototype -> Object.prototype -> null  new 的过程做了什么  改变this指向的方式 call bind apply 手动实现bind
  • 6

    [1,2,[3,4,5],[[6,7]]].getLevel() []->1 [[]]->2 获取当前数组---this 递归调用的是getLevel flattern
  • 7.后又问了我一些以前做的demo的难点(我说了跨域koa-cors,基于cors原理)


#面经##去哪儿##海康威视##快手##校招#
全部评论
楼主你好,请问你是实习、校招还是社招?
点赞 回复 分享
发布于 2020-09-28 14:01

相关推荐

勇敢的联想人前程似锦:如果我是你,身体素质好我会去参军,然后走士兵计划考研211只需要200多分。
点赞 评论 收藏
分享
5 29 评论
分享
牛客网
牛客企业服务