美文网首页
前端 2019.11月份面试

前端 2019.11月份面试

作者: 这是这时 | 来源:发表于2019-11-20 00:36 被阅读0次

期间遇到的问题:

1.element-ui 样式改不了
    答:1.通过自己在标签里添加类名层叠不了,通过F12 把类名复制过来取层叠有效
2.循环的时候加入key ,不加有过报错的情况,查了下:在vue高版本中会报错
    答:key属性需要唯一,理想的 key 值是每项都有唯一id,全局不需唯一,但在一个循环中需要唯一。
3.引入图片 以为写个地址就行看,结果失败了,最后加入了requer()就OK了  
    答:因为放在template模板里会被webpack打包所以可以,而放在data或者动态赋值,图片路径只是一个字符串webpack不会处理所以引用不到。
4.本地开发跨域问题
    答:config -- proxyTable --- changeOrigin: true, // 是否启用跨域
5.打包的时候资源引用错误就是那个地址
    答:打包后部署服务器的时候报错 是个路径问题,把config里index.js  build 大括号里 assetsPublicPath 的 /根路径,改成./ 相对路径
6.vue-router路由参数刷新消失的问题
    答:params传参可以传过去,但是不会显示在url上,在此刷新数据本页数据会没有,query会在url上
    
7.刚建项目的时候安装sass出了问题,报错

Css3 透视

perspective :100 ;

值越小 和眼睛越近越小越明显,值越大越不明显

ES6 特性

let、const
箭头函数
扩展运算符
默认参数
模板字符串
解构赋值
pormise

C3动画怎么写?

animation:name  duration iteration-count
        动画的名字 动画持续的时间 动画的播放次数 infinite(无限循环)
animation:动画名 5s; 
@keyframes 动画名
{
0%   {background:red;}
100% {background:green;}
}

vue-router 钩子

全局的钩子
beforeEach(to,from,next)
- 页面加载之前
- 页面跳转之前权限认证,访问拦截
afterEach(to,from,next)
- 页面加载之后
组建内的导航钩子
beforeRouteEnter、beforeRouteUpdate、beforeRouteLeave,直接在路由组件内部进行定义的
POST请求axios设置什么
headers: {'Content-Type':'application/x-www-form-urlencoded; charset=UTF-8'};
请求头,一般采用x-www-form-urlencoded
发送的数据要序列化,特别注意啊,因为axios默认的格式是Request Payload。
浏览器输入网址后经历了什么
  1. 输入网址回车
  2. 从dns服务器获取服务器ip
  3. 通过ip向服务器建立tcp三次握手连接
  4. 向服务器发送请求
  5. 服务器接收到请求,处理请求
  6. 服务器处理完请求向浏览器响应
  7. 浏览器接收到服务器的响应 解析
  8. 生成dom树 浏览器渲染页面

vuex

1. 什么是vuex :
    Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。Vuex 也集成到 Vue 的官方调试工具 devtools extension,提供了诸如零配置的 time-travel 调试、状态快照导入导出等高级调试功能。
2. 他的属性方法有哪些?每个阶段是干嘛的?
    ? State、mutations、getters、actions、 modules
Store
    表示对Vuex对象的全局引用。组件通过Store来访问Vuex对象中的State
? State
    Vuex对象的状态,即其所拥有的数据
? Getter
相当于Store的计算属性。因为就像计算属性一样,Getter的返回值会根据它的依赖被缓存起来,且只有当它的依赖值发生了改变才会被重新计算。下面会说到具体的使用场景
? Mutation
定义了对State中数据的修改操作。组件使用State中的数据的时候并不能直接对数据进行修改操作,需要调用Mutation定义的操作来实现对数据的修改。这也是Vuex定义中所说的用相应的规则来让数据发生变化的具体实现
? Action
Mutation中定义的操作只能执行同步操作,Vuex中的异步操作在Action中进行,Action最终通过调用Mutation的操作来更新数据
? Module
Store和State之间的一层,便于大型项目管理,Store包含多个Module,Module包含State、Mutation和Action

TCP三次握手

浏览器要向服务器发送请求之前
1.浏览器先要问下服务器你在吗?
2.服务器回复浏览器回复说我在确认信息
3.浏览器说 我收到了你的回应信息了
然后在发送请求

怎么解决代码冲突:

通过报错百度解决方法,因为碰到过好几次后,每个人负责不同的页面,在有代码的页面只增不减

如果想要保留本地修改的话,使用:

1、直接解决冲突:使用当前|使用传入
2、
git stash    //隐藏本地修改
git pull     //拉取服务器代码
git stash pop  //取消本地代码隐藏

11.18下午 电话面试 平安

  1. 高德经纬度怎么获取、转换坐标值的?地图路径规划?

    
    
  2. 权限是怎么做的?

    用户登录根据先判断本地有没有token,如果有token并且是当前登录的账号,根据后台返回的数据渲染当前角色的显示内容,如果没有token 去后台请求,得到相应角色的权限
    
  3. 怎么控制不同用户 某个按钮 功能 展示和不展示?

    在用户登录后根据用户id读取用户的所有权限,比如说某个是删除按钮 本用户没有,让后台返回一个参数,deleteBtn:0/1,如果是0就不显示,如果是1就显示按钮
    
  4. 角色管理 具体实现了什么功能?

    角色管理实现了角色的增删改查,冻结
    冻结:前端只管冻结,要是冻结后这个账号的数据在数据库,这个账号登录的时候后台返回参数 账号被冻结,自动跳到登录页 弹出页面提示 这个账号被冻结信息。
    
  5. 和后端交互的协议?

    http
    WebSocket
    
  6. WebSocket ?

    建立在tcp协议上的全双工通信协议,一般用在网站里面作为用户和后台人员沟通的或者是用来通讯的
    
  7. Ajax ?

    // 1. 创建一个 XMLHttpRequest 类型的对象 —— 相当于打开了一个浏览器
    var xhr = new XMLHttpRequest()
    // 2. 打开与一个网址之间的连接 —— 相当于在地址栏输入访问地址
    xhr.open('GET', '/time')
    // 3. 通过连接发送一次请求 —— 相当于回车或者点击访问发送请求
    xhr.send(null)
    // 4. 指定 xhr 状态变化事件处理函数 —— 相当于处理网页呈现后的操作
    xhr.onreadystatechange = function () {
      // 通过 xhr 的 readyState 判断此次请求的响应是否接收完成
      if (this.readyState === 4) {
        // 通过 xhr 的 responseText 获取到响应的响应体
        console.log(this.responseText)
      }
    }
    
    readyState 状态描述 说明
    0 UNSENT 代理(XHR)被创建,但尚未调用 open() 方法。
    1 OPENED open() 方法已经被调用,建立了连接。
    2 HEADERS_RECEIVED send() 方法已经被调用,并且已经可以获取状态行和响应头。
    3 LOADING 响应体下载中, responseText 属性可能已经包含部分数据。
    4 DONE 响应体下载完成,可以直接使用 responseText
  8. 实时显示车在哪里?

?

  1. MVC MVVM ?

    M 模型
    V 视图
    VM 视图模型 是mvvm的核心,数据和视图不能直接通信,需要靠vm当个桥梁连接m和v,vm把数据模型转化成为是视图,也可以把用户在界面操作后转化为数据,形成双向数据绑定。
    数据双向绑定有很重要的方法Object.difneproty() 给每个数据设置set 和get 
    当数据发生改变,watcher劫持到了数据通知模板解析更新视图
    ---------------------------------------------------------------------------------------
    MVC
    M 模型
    V 视图
    C 控制器 页面业务逻辑
    mvc 是单向通信 
    
  2. less 引入项目的流程?

npm i less
然后在 webpack.base.conf.js里面配置 less-loader 代码

npm i less;
main.js 里面引入代码 {test:/\.less$/,loader:"style-loader!css-loader!less-loader"}
  1. 怎么解决同事之间代码冲突?

    1.有很多>>>>>> 和同事商量下
    2.其他同事写了代码我我也在我的区域写了代码 git push 不上去,先隐藏本地代码 git stach  ,在git pull 拉取,最后取消隐藏本地代码
    
  2. 怎么使用webpack 打包 流程?

    npm run build   
    1.路径改成./
    2.productionSourceMap:false 生成map文件改成false 
    
  3. 浏览器兼容器的问题?

    1.不同浏览器padding和margin不同 
    解决方案:{margin:0,padding:0}
    2.
    
  4. 字符串转json?

  5. 访问后台用什么 请求?

  6. 把form-data表单请求后端 怎么设置的?

    Content-Type:multipart/form-data
    

11.18 下午 电话面试 海康威视

  1. C3特性

    animation
    transtaion
    transform
    border-shadow
    border-image
    rgba
    border-radio
    flex
    盒模型:
    box-sizing:border-box 
    box-sizing:content-box
    媒体查询
    
  2. C3透视

  3. 定义一个C3动画

  4. Echarts 地图哪里的?

  5. Echarts 数据量很大的情况 怎么办?

  6. 用Echarts 心得 ?

    tooltip 超出 div 限制
    问题:在做条形图时,当div容器较小时,tooltip的内容又较长时,会导致tootip文字被遮挡。
    仔细查阅Echarts文档,可以发现有个tooltip.confine的属性,设置为true时可保证toolip的内容限制在图表的区域范围内。
    
  7. setTimeout 和 Promise 区别?

    Promise 就是一个对象,用来传递异步操作的消息。有三种状态:pending(进行中),resolved(已完成)和rejected(失败)有了promise对象,就可以将异步操作以同步操作的流程表示出来,避免了层层嵌套的回调函数。
    
    
  8. async await 是一种什么样的机制?

    
    
  9. ES6 新特性

  1. 箭头函数 this特性

this指向外层作用域的this
```

  1. const var let 提升 定义 赋值

    var 可以变量提升 let const 不可以
    var 可以重新定义 let const 不可以
    const的值赋值简单数据类型 值不可更改,赋值复杂数据类型 值可以更改
    const 必须赋值 不能用null替代
    
    
  2. node用过什么框架?

    express
    
  3. js事件循环机制

?

  1. 居中布局

?

  1. MVC MVVM 区别

11.19上午 全球同方人寿

  1. for循环删除列表某一项

11.19下午 智昌科技

  1. Echarts 处理tab切换数据改变不了问题
  2. 怎么修改Element-UI 样式
  3. element-ui 时间格式化
  4. async?await?捕捉错误?怎么捕捉?catch
  5. token?过期之后跳回到登录页,写在哪里?
  6. token存到哪里?localstor
  7. token怎么发给后台?
  8. css两端布局
  9. 父组件?传值给多层子组件?怎么传?

11.19 晚上 博彦科技 电话面试

  1. 对vue的理解 介绍vue

    
    
  2. vue用什么脚手架?

    
    
  3. vue脚手架里怎么用sass?

    
    
  4. 在vue哪个生命周期中获取DOM

    
    
  5. vue的指令5个

    
    
  6. v-model 干嘛用的 v-model和v-bind 区别?

    
    
  7. v-show v-if区别?

    
    
  8. 父子组件的通信?

    
    
  9. 非父子组件传值?

    
    
  10. 什么时候用vuex ?


  1. vue 中 data 为什么是一个函数 不是一个对象?

    'abc' ?  '真'  :  '假' //真
    'abc' === true      //false
    'abc' == true       //false
    
  2. Promise干嘛用?

    异步回调有4中
    1.callback 回调函数
    2.generator + co 库
    3.promise
    4.async + await 
    
  3. 给vue 里的data 的对象添加一个属性 会发生什么?如何解决?

    发生数据丢失?
    
  4. 优化性能?

    
    
  5. 本地缓存 localStorage、sessionStorage、cookie、session对比

    
    
  6. Ajax能不能跨域? 存在同源策略?

    
    

11.21上午 工商 现场面试

  1. MVVM MVC
  2. 路由导航守卫
  3. Vue生命周期钩子函数
  4. 项目中遇到过哪些困难?
  5. webpack在实际项目中怎么配置?

11.23 下午 电话面试

  1. 工作中遇到了什么困难?怎么解决的?

  2. ES6新特性

  3. 兼容问题怎么解决的?

  4. Vue框架和jQuery的区别是什么?

    最明显的就是思维方式不同,jquery 是以操作dom为主,做了数据处理之后还需要对dom进行操作。vue.js是以操作数据为主,不操作dom,也就是传说中的双向数据绑定,你只需要操作数据就好,dom自动更新
    
  5. 怎么理解ajax?

    Ajax是一套用来发异步请求的技术,它可以让我们不用跳转网页就能发请求,所以我们也把ajax叫局部请求技术。
    
    Ajax应用程序的优势在于:
    1. 通过异步模式,提升了用户体验
    2. 优化了浏览器和服务器之间的传输,减少不必要的数据往返,减少了带宽占用
    3. Ajax引擎在客户端运行,承担了一部分本来由服务器承担的工作,从而减少了大用户量下的服务器负载。
    2、AJAX最大的特点是什么。
    Ajax可以实现动态不刷新(局部刷新)
    就是能在不更新整个页面的前提下维护数据。这使得Web应用程序更为迅捷地回应用户动作,并避免了在网络上发送那些没有改变过的信息。
    
  6. 事件委托

    事件委托,是利用了冒泡的原理,把事件委托给子孙元素的祖先元素,当点击子孙元素后,由于事件冒泡,祖先元素会捕获到该事件,并可以使用事件对象.target来获取是最先触发的是哪一个子孙元素,从而实现了事件的绑定
    
  7. null与undefined的区别?

    console.log(null==undefined)//true
    console.log(null===undefined)//false
    
    null表示"没有对象",即该处不应该有值。典型用法是:
    (1) 作为函数的参数,表示该函数的参数不是对象。
    (2) 作为对象原型链的终点。
    
    undefined表示"缺少值",就是此处应该有一个值,但是还没有定义。典型用法是:
    (1)变量被声明了,但没有赋值时,就等于undefined。
    (2) 调用函数时,应该提供的参数没有提供,该参数等于undefined。
    (3)对象没有赋值的属性,该属性的值为undefined。
    (4)函数没有返回值时,默认返回undefined。
    
    
  8. 项目中遇到过什么问题?

    
    
  9. $toute 和 $router routes

    $router是VueRouter的实例,在script标签中想要导航到不同的URL,使用$router.push方法。
    返回上一个历史history用$router.to(-1)
    $route为当前router跳转对象。里面可以获取当前路由的name,path,query,parmas等。
    
    router可以理解为一个容器,或者说一种机制,它管理了一组route。简单来说,route只是进行了URL和函数的映射,而在当接收到一个URL之后,去路由映射表中查找相应的函数,这个过程是由router来处理的。
    route,它是一条路由。
    routes,是一组路由。
    
    
  10. vue-router有哪几种导航钩子?(具体怎么用的)

三种,
第一种:是全局导航钩子:router.beforeEach(to,from,next),作用:跳转前进行判断拦截。
第二种:组件内的钩子
第三种:单独路由独享组件

用到vue-router的导航钩子的时候,发现有三类:
1 、全局导航钩子   // 全局导航钩子 直接挂载在router实例上的
beforeEach
beforeResolve
afterEach

2 、某个路由独享的导航钩子
beforeEnter  // 直接在router的路由配置中使用

3 、路由组件上的导航钩子 // 定义一个vue模板,这个模板被router的配置文件的component使用
beforeRouteEnter    // 某个路由独享的导航钩子beforeEnter
beforeRouteUpdate (2.2 新增) 
beforeRouteLeave

相关文章

网友评论

      本文标题:前端 2019.11月份面试

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