前言
自上次滴滴面试结束后,感受到了自己的众多不足,所以我觉得我目前还需要加强学习,一点一点进步,一步一步前进。😁从普通公司开始慢慢积累面试经验,“每天进步一小步,未来前进一大步”,坚持每天学习。
如果对滴滴面试题目感兴趣的可以去看看我之前的滴滴面试总结
端点科技
该岗位只招长期实习,而我因为想着面试试试,没想着长期实习,所以没有安排二面。面后我也问了面试官面试结果,得到了比较不错的评价。
1. var、let、const的区别
这是一个常考题,也很简单,每个人都能说上两句,但难的是深入研究和准确列举,我当时也算是简单说了一些。
- var是es6之前就有的,它声明的变量会挂载在
window上,而es6的let、const不会 - var声明的变量存在变量提升,而let和const不会(存在争议)
- let和const存在暂时性死区,然后引到es5执行上下文中var和let、const储存的不同。 关于es执行上下文我是看了这篇文章: # 面试官:说说执行上下文吧
关于三者区别我推荐看:var、let和const区别
2. 你了解箭头函数吗
这可不是经常用的吗,但你又了解多少和function声明的函数的区别呢
我只答了两点区别:1. 箭头函数内部没有this 2. 箭头函数没有arguments 。
详解箭头函数和普通函数的区别以及箭头函数的注意事项、不适用场景
3. bind、call、apply的区别
关于三者可以记一下MDN上的介绍:
bind()方法会创建一个新函数。当这个新函数被调用时,bind() 的第一个参数将作为它运行时的 this,之后的一序列参数将会在传递的实参前传入作为它的参数.
call()方法使用一个指定的this值和单独给出的一个或多个参数来调用一个函数。
apply()和call()类似,不同的是第二个参数必须是数组(或者类数组对象)。
4. 你讲讲原型链
可以简单总结一句话:每一个实例都有一个__proto__属性指向其构造函数的原型,当构造函数的原型指向另一个实例或者原型时就形成了原型链。
详细可以看冴羽大佬的文章:JavaScript深入之从原型到原型链
5. 你了解继承吗
当时答不全,只讲了三种继承方法
- 原型式继承
- 构造函数式继承
- 组合式继承
详细可以了解:(建议收藏)原生JS灵魂之问, 请问你能接得住几个?(上)
6. react 数据如何进行更新
这算是个大话题,我当时没太理解,就直接讲了一下fiber架构的流程。比如为什么需要fiber,什么是fiber,它的工作流程是什么等等讲了一大堆,现在回顾感觉讲的不是很好,虽然大致都讲到了,但缺少整体的条理性。
这里我强烈推荐卡颂老师的React 技术揭秘
7. 你知道Eventloop吗
一讲到Eventloop我就忘不掉,具体可以看看我年前滴滴面试总结最后一题
8. https和http的区别
我当时就讲了两点区别,HTTP是明文传输的,而HTTPS是在HTTP上建立SSL加密层,并对传输数据进行加密,是HTTP协议的安全版。
HTTPS主要作用是:1. 对数据进行加密,并建立一个信息安全通道,来保证传输过程中的数据安全。 2. 对网站服务器进行真实身份认证。
9. 从输入url到呈现到页面的过程
这是一个很大的话题,基本上可以体现自己在浏览器这方面的前端知识体系。
推荐观看史上最详细的经典面试题 从输入URL到看到页面发生了什么?和 从输入URL到页面加载的过程?如何由一道题完善自己的前端知识体系!
后言
这些问题都是很基础的,很考验八股能力。如果对你有帮助,可以点一个小赞,后面还有其他公司的面试总结,陆续会发布。