2020.10.20英语前端电话面试总结
人生第二次前端面试,这次面的这个前端岗位是需要有很好的英语口语沟通能力的,我英语很差,面试官让我用英语自我介绍几句就说了解到了我的水平了,嘤嘤嘤···所以英语这方面就没什么好说的了,我也知道自己英语差~
所以还是记录一下问到的技术方面的题目吧
1. 对函数式编程的理解
【我的回答】:函数式编程是一种编程范式,相同的输入永远得到相同的输出,不会产生副作用。
【面试官】:嗯···
(我答得不是很全面)
参考答案:
阮一峰老师《函数式编程初探》:
"函数式编程"是一种"编程范式"(programming paradigm),也就是如何编写程序的方法论。它属于"结构化编程"的一种,主要思想是把运算过程尽量写成一系列嵌套的函数调用。
函数式编程具有五个鲜明的特点:
- 函数是"第一等公民"
- 只用"表达式",不用"语句"
- 没有"副作用"
- 不修改状态
- 引用透明
函数式编程的意义:
- 代码简洁,开发快速
- 接近自然语言,易于理解
- 更方便的代码管理
- 易于“并发编程”
- 代码的热升级
2. JS基础数据类型有哪些
【我的回答】:boolean、number、string、undefined、null、object、ES6新增了Symbol、ES2020新增了bigint
【面试官】:嗯还可以
参考答案:这个答案就是我回答到的boolean、number、string、undefined、null、object,然后ES6新增了Symbol,ES2020新增了bigint
3. 闭包是什么
【我的回答】:闭包是JS在运行过程中的一种现象,一般发生在函数作为参数、函数作为返回值的时候,里面的变量没有得到销毁,就产生了闭包。
【面试官】:那是返回的函数内是闭包还是函数引用的变量产生了闭包?
【我的回答】:是返回的函数内所引用到了外部变量产生了闭包
【面试官】:额···
(这个问题我当时答得不好,乱七八糟说了一大堆,感觉自己也讲不清楚了)
参考答案:
还是引用阮一峰老师《学习Javascript闭包(Closure)》:
由于在Javascript语言中,只有函数内部的子函数才能读取局部变量,因此可以把闭包简单理解成"定义在一个函数内部的函数"。 所以,在本质上,闭包就是将函数内部和函数外部连接起来的一座桥梁。 闭包可以用在许多地方。 它的最大用处有两个,一个是前面提到的可以读取函数内部的变量,另一个就是让这些变量的值始终保持在内存中。
4. JS的事件机制是怎样的
【我的回答】:是指事件循环吧,JS执行的时候有个主任务执行栈,主任务中如果遇到异步任务会放到回调队列中,等主任务全部执行完毕后,回调队列中的任务会进入到主