23号拿到阿里某部门的内推,线上测试完后,27号晚上收到电话面试。前后面了20多分钟,面试官人很Nice,最后问我有没有要问他的 ,我就问了一下当天晚上的面试评价。面试官说是专业上还不太够,基础能回答80%上来,感谢晚上的参与。后来总结了一下,包括自己的专业课和基础部分,确实有准备不充分的地方。原来想着一面应该能过,今天早上登陆发现已拒绝。回想其实是个很好的经历,之后关注更多的知识点吧。以下给出面试内容:
1、讲一下专业课东西,针对论文。简历里只放了论文名称上去。
问 人工智能与前端有哪些可以结合的地方?(只讲了论文)
后回答:天猫旗舰店可以用人工智能来设计
2、如果要拿到对象的全部 key ,可以怎么拿?
properties / getAttribute 等.. 。 (应该是错的)
3、数组常用的方法有哪些?
sort map filter reduce indexof 。。。
4、谈一下你对 promise 的了解
promise 用来解决异步问题,它包括3个状态,pending 、resolve、reject
设定了一个状态之后就不能再改变。它主要是用于解决 回调地狱的问题,比如在resolve 里定义了以后,可以直接调用
5、Vue 生命周期钩子函数
beforeCreate、 create、beforeMounted、Mounted、beforeUpdate、Updated、beforeDestroy 、Destroyed
一开始在 vue 的构造函数里会先去找 el 看是否有绑定元素,再看是否有 template ,如果有就构建虚拟节点。经历 beforeCreate、 created ,从这里开始创建虚拟节点,经过 beforeMounted 到 mounted 时,所有虚拟节点都渲染完毕。可以进行事件绑定、样式等操作。如果要修改数据,会 经过 beforeUpdate、Updated ,但是如果要销毁对象,会经过最后两个 beforeDestroy 、Destroyed ,销毁之后对象绑定的所有 事件也都会销毁
6、数据库里面,比如有很多班级,但每个班级都有很多条数据,请问如何选出班级的数量?
不会
7、webpack 里的 loader 了解吗?
loader 是加载器,webpack 主要用于模块化构建,主要由两部分构成 loader 和 plugins 插件构成,主要用于 压缩合并等功能。
loader 和 plugins 有什么区别?
不会
答案:webpack 本身只能打包 commonjs 规范里的js 文件,对于其他的图片、css 、字体、sass 文件等不能进行加载。这时就需要对应的loder 将资源转换。所以loader 是直接作用在文件上
在webpack 生命周期中,会出现很多广播事件,plugin 就是监听这些事件,在适合的时机通过 webpack 提供的API 改变输出结果。也就是,在 loader 结束以后,基于事件机制工作,监听打包过程中的节点、执行广泛的任务。
8、闭包了解吗?
闭包主要用于 封装私有变量,比如在 Amd 规范的 第一个项目 中,就是用 闭包来实现,也可以将闭包中的方法 绑定到 windows 全局对象上,这样在外部就可以使用。但是闭包会造成内存泄漏
9、== 和 === 有什么区别
== 主要看数值是否相等,但是它会自动转换类型。比如 数字 和 boolean 比较,会先将Boolean 转换为数字,如果是 数字 和 字符串比较,也会先转换为数字。
=== 主要看类型是否相等,如果类型不等,就直接判为 false
10、浏览器的缓存有了解过吗?
没有
答案:数据请求的3个步骤:网络请求、后端处理、浏览器响应。如果有缓存的话,可以优化第1、第3 步。缓存的位置:
Service Worker:是浏览器背后的独立线程,但传输协议必须为 https ,可自由控制缓存哪些文件、如何匹配 / 读取 缓存、缓存是连续性的。
Memory Cache :是内存中的缓存,读取高效但是持续性很短,会随着进程的释放而释放。页面一旦关闭,内存缓存也就释放了
Disk Cache :硬盘里的缓存,读取速度慢,但是容量和时效性更好
Push Cache :推送缓存,当以上缓存都没有命中时,才会被使用。也只在会话中存在,一旦会话结束就被释放,缓存时间也短
如果上述4种都没有,只能请求获取资源
11、问一个操作系统的问题,线程、进程.. 忘了
12、ajax 底层是如何实现的?
不了解,只会用
13、前端的 React Angular 那些有了解过吗?
不会,只会vue 这些
14、css 动画transform 有哪些常用的属性?
translate 平移 rotate 旋转 scale 缩放 ,
还有 keyframes 可以实现过渡动画
15、简述一下盒模型。
标准 width 就是 content 的内容
怪异 width 包括 content+padding +border
如何实现?:box-sizing : content-box 实现标准 border-box 实现怪异
16、一般通过什么方法学习的?
百度前端学院、现在是自己跟课程学习
17、前端安全问题有哪些?
sql 注入:恶意注入 sql 命令
xss 攻击:在页面上插入恶意的 h5 标签或 JS 代码
18、http 和 https 有什么区别吗?
没回答上来,以下是答案:
HTTP协议通常承载于TCP协议之上,在HTTP和TCP之间添加一个安全协议层(SSL或TSL),这个时候,就成了我们常说的HTTPS。默认HTTP的端口号为80,HTTPS的端口号为443。
19、讲一下快排算法
在中间取一个数,开头和结尾也取一个数,如果开头的数大于中间的,则交换。如果结尾的数小于中间的,也交换。最后实现从小到大排序。
回答的不够好!
20、事件的阶段
事件捕获、处于目标阶段、事件冒泡阶段
21、数组是如何排序的?
sort() 方法,但是如果数组里的每一项是一个对象呢,如何排序?不会
22、你有用过spring 、springBoot 这些吗?
之前实习只是用过 mvc ()
后回答:mvc 只是模式,它不是一个框架。
23、如何解决跨域问题?
只讲了 meta 里设置 access-Origin 方法
js 也可以实现跨域问题
还有项目现在用的 浏览器插件
如果用户没有装插件呢?
24、前端页面报错有哪些信息
1、提示 2、成功 3、重定向 4、客户端出错 5、服务端报错
请说出具体的报错信息,比如 303 和 304 报错有哪些区别等?