字节跳动前端工程师-产品研发 面试一面

  1. 简单说一下你做过的项目 答:在实习公司做过公司内部运维体统主要负责。。。模块等等说了好久

  2. 你做这个系统用到的技术栈是什么 答:vue vuex vue-router jq等

  3. 说一下你对vue/ jQ分别的理解 原理有什么差别 答:jQ主要是简化了js代码 vue是将视图和数据分割开实现了MVVM

  4. Vue的双向数据绑定 具体怎么实现的 如何封装的方法 方法里的内容具体说一下 答:首先vue的双向绑定可以减少DOM操作实现了MVVM
    Data里面属性的值在控制台可以看出有getter和setter方法,vue是通过Object.defineProperty()来实现数据劫持的。
    通过Object.defineProperty( )设置了对象的属性,对它的get和set进行重写操作,get就是在读取属性这个值触发的函数,set就是在设置属性这个值触发的函数 说具体怎么封装的 不会

  5. 你们后台系统有没有做像关于登录的功能 如何实现 如何保留登录状态 答:做过 把用户名和密码提交给后台 后台返回一个token 保存起来

  6. 如何保留值访问其他页面 答:使用localstorage保存起来 使用路由跳转页面 在其他页面 this.token=this. s t o r e . s t a t e . t o k e n ; t h i s . store.state.token; this. store.state.token;this.ajax.get(‘后台.php’,{params:{token:this.token},

  7. 为什么使用localstorage存储不使用cookies 对存储大小有什么理解 说了一下三种存储的区别 具体有什么优缺点不知道

  8. 开发这个系统如何跨域的 跨域是怎么产生的 答:使用jq和ajax配合使用 跨域是因为同源策略,协议域名端口有一者不同则需要跨域

  9. 具体怎么解决跨域 详细说一下jsonp cors跨域了解吗答:jsonp:script里的src img里的url cors跨域不了解

  10. http请求之前有一个DNS你了解吗 详细介绍 答:不了解

  11. 在js中怎么判断一个对象是数组 手写一下 var arr=[ ]; console.log(arr instanceof Array) //trtrueue

  12. 给了一个for循环 里边包着定时器console。Log(i) 最后输出什么字节跳动前端工程师-产品研发 面试一面
    答:输出八个8 正确

  13. 如何用一个div实现一个向右的箭头 手写代码 答:不会

  14. 手写一个用flex实现的居中问题 答:<div class="father"><div class="son"></div></div> .father{display:flex;justify-content=center;align-items=center}

  15. 输入一个数组输出最小值 多种方法 手写代码 说一下时间复杂度空间复杂度字节跳动前端工程师-产品研发 面试一面
    复杂度不会