关于盒模型
常见的类数组结构
arguments
NodeList
如何转为数组结构
- 数组的slice方法:
1 | // arguments, NodeList |
- Array.from方法
1 | Array.from(arguments) |
- 扩展运算符
1 | [...arguments] |
二分查找
1 | var search = function(nums, target) { |
如何开发Webpack插件
DOM相关的常见问题
如何向面试官提问
一般来说,面试的最后都有向面试官提问的环节,这是一个了解部门和公司很好的机会,在公司工作的员工会给出最直接的回答。
对于技术面,前几轮尽量不要询问工作节奏、晋升及绩效制度、公司位置、三餐福利之类的。。这样显得自己不关心实际工作(这些问题我都问过,刚开始不知如何提问所以尬聊出来的😅),这些问题等到最后技术面或者hr会为你详细解答。
提问与实际工作相关的,比如工作内容及岗位要求、业务方向及发展、目前使用的技术栈、是否使用到了自己感兴趣的技术、开发流程是怎样的,流程是否合理完善、是否有某技术的探索计划、团队状况及发展方向之类的。
通常来说,面试官顺序会是你的同事(较高级别的)、业务leader、部门leader,这也是一个了解未来同事和工作环境的机会,面试官说话的方式及性格通过交谈也会了解一二,有的面试官就面带笑容、显得容易接近、过程就比较轻松,有的会比较严肃,交流起来会感觉不舒服,但不排除是个外冷内热的人~
如何回答面试官的问题
以下为个人面试经验及总结他人看法。
首先对于不清晰的地方可以让面试官重述或解释一遍,有时候会遇到略带口音或者英文读法不同的面试官,注意态度平和。
回答要回答到要点上,如果还了解更多也尽量多说一句,展示自己技术的广度,并引导面试官提问自己擅长的部分;但要保证自己能hold住可能的延伸问题,避免自己给自己挖坑。对问题的回答不是对-错的关系,而是达标-满意-超出预期,所以多了解问题的相关内容,尽量表现自己吧~
面试过程中个人要使用保持态度谦逊、语气温和,即便对于不熟悉问题的追问也不要表现出烦躁情绪,说出自己知道的,并表明自己涉猎有限、理解不深,有的面试官不会太较真,大致思路符合要求该问题就通过了,有的还会给出点提示引导或者直接想你解答,这是很好的学习交流机会。
对于不了解的技术最好不要表现出对它的漠视或嫌弃,比如觉得xxx🌶🐔,xxx才是未来的趋势。因为一般面试官说到的都可能是公司正在使用的。。所以要说的话也要表现出积极的态度,比如xxx是一门很优秀的语言,有机会一定会使用。
代码题要注意编码风格,即便功能实现符合要求,有些注重细节的面试官会对你的编码风格提出疑问,所以尽量保持代码整洁、逻辑清楚、不要取a, b, func这样的变量名,因为自己看着累,别人看起来更累😂
进程与线程
- 进程是资源分配的基本单位;线程是程序执行的基本单位。
- 进程拥有自己的资源空间,没启动一个进程,系统就会为它分配地址空间;而线程与CPU资源分配无关,多个线程共享同一进程内的资源,使用相同的地址空间。
- 一个进程可以包含若干个线程。
通俗来说进程倾向于内存分配,线程倾向于cpu运行
Map、WeakMap和Set、WeakSet
WeakMap
WeakMap 与 Map 在 API 上的区别主要是两个,一是没有遍历操作(即没有keys()、values()和entries()方法),也没有size属性。因为没有办法列出所有键名,某个键名是否存在完全不可预测,跟垃圾回收机制是否运行相关。这一刻可以取到键名,下一刻垃圾回收机制突然运行了,这个键名就没了,为了防止出现不确定性,就统一规定不能取到键名。二是无法清空,即不支持clear方法。因此,WeakMap只有四个方法可用:get()、set()、has()、delete()。
WeakSet
WeakSet构造函数的参数是数组,数组的成员只能是对象。
具备set、delete、has方法;WeakSet 没有size属性,没有办法遍历它的成员