字节阿里前端一面(4.20)
字节
介绍一下你的油猴脚本(后面了解到面试官有涉及 chrome 插件的业务,可能对这个比较感兴趣),但我就是一个简单的 js 脚本。
一、JS 基础
JavaScript 数据类型以及 typeof 返回值。
typeof x typeof undefined typeof true function A() {} typeof A const arr = [] const obj = {} typeof arr typeof obj
- 如何区分 arr 和 obj
- Object.prototype.toString.call(obj) ===Object.prototype.toString.call([])
二、算法题
查找第一个缺失的正整数
let arr = [3, 4, -1, 1, 20] // return 2 function findFirstMissingNumber(arr){ ... }
三、算法题
M 个 array,长度分别是 v1、v2、v3 ... vm,从每个 array 各取 1 个元素,试打印出全部的组合方式。let arr = [[1, 2], [1, 2, 3], ] // 111,121,131,211,221,231
四、事件代理
<table id="table" data-xxx="aa"> <td className="td"> <div className="target"> <div>xx</div> <div className="warapper">xx</div> </div> </td> ... </table>
-
target && currentTarget
- target 指向目标
- currentTarget 指向绑定事件的元素
五、JS 深拷贝
- 类型考虑全面
- Number、String、Boolean、null、undefined
- Object
- Array、{}、Date
- 循环依赖(利用 ES6 的 Map)
- function 是否可以深拷贝
- 闭包(因为 function 是有上下文的)
已经凉凉,不过面试官人很好。
阿里
灵魂拷问
- 你觉得什么是前端?
- 你觉得什么是好前端?你觉得什么是比较快的前端?
- 你如何学习前端的?
- 前端性能优化?JPG 和 PNG 的区别。
项目相关
- 简单介绍知乎推荐系统(担任了哪些职责)
- 爬虫除了用 scrapy,还用了其他的吗?
- 为什么使用 ECharts?
- jQuery 和 Vue 的区别。
基础知识
- 树和图的遍历方式
- 链表和数组的区别
- 网络七层模型,IP、TCP、UDP、HTTP、Web Socket 分别是哪层的?TCP 和 UDP 的区别。
- HTTP 2.0 新增
- 发生网络堵塞,路由器如何优化?
- Vue 的其他框架
- Ajax 的流程
- 状态码:50*、302、304、403
- localStorage 和 Cookie
- Cookie 可能存在的问题,简单介绍 XSS 和 CSRF。
- 跨域的方式
- CSS 选择器,优先级
- CSS 动画
- flex 布局,如何居中,center 在哪个字段设置。
- position 有几个值,absolute 是相对于谁的定位。
- ES6 了解什么?
- 用 promise 完成同时发送两个请求,并在都返回结果后进行处理。
- 宏任务和微任务
- CommonJS 了解吗?
- Webpack 等打包工具了解吗?
- 移动端,click 事件的区别?响应式布局如何实现?
说一下自己觉得到目前为止做过的最 🐂🍺 的事。
虽然面试磕磕绊绊,但可以发现自己的不足,每次面试都比上一次准备更加充分!
#前端实习生面试##字节跳动##面经##阿里巴巴##前端工程师#