小猿圈之2019年前端JavaScript面试题(二)

小猿圈前端讲师今天继续给你总结js面试题,前面一篇文章咱们已经有一片js基础部分面试题,今天小猿圈web讲师为你讲解js前端应用设计问题,一定要好好看哦,为了能赢在其他人前面。

JavaScript前端应用设计问题

1.解释单向数据流和双向数据绑定。

Angular1.x基于双向数据绑定,而React,Vue,Elm等基于单向数据流架构。

2.单向数据流架构在哪些方面适合MVC?

MVC拥有大约50年的悠久历史,并已演变为MVP,MVVM和MV*。两者之间的相互关系是什么?如果MVC是架构模式,那么单向数据流是什么?这些竞争模式是否能解决同样的问题?

3.客户端MVC与服务器端或经典MVC有何不同?

提示:经典MVC是适用于桌面应用程序的SmalltalkMVC。在Web应用中,至少有两个不同的数据MVC周期。

4.使函数式编程与面向对象或命令式编程不同的关键因素是什么?

提示:Currying(柯里化),point-free函数,partial函数应用,高阶函数,纯函数,独立副作用,record类型(联合,代数数据类型)等。

5.在JavaScript和前端的上下文中,函数式编程与响应式编程有什么关系?

提示:没有正确答案。但粗略地说,函数式编程是关于小型编码,编写纯函数和响应式编程是大型编码,即模块之间的数据流,连接以FP风格编写的组件。FRP–功能响应式编程(FunctionalReactiveProgramming)是另一个不同但相关的概念。

6.不可变数据结构(immutabledatastructures)解决了哪些问题?

不可变结构是否有任何性能影响?JS生态系统中哪些库提供了不可变的数据结构?这些库的优点和缺点是什么?

提示:线程安全(我们真的需要在浏览器JavaScript中担心吗?),无副作用的函数,更好的状态管理等。

7.大型应用程序是否应使用静态类型?

1.如何比较TypeScript/Flow与Elm/ReasonML/PureScript等JS转换语言?这些方法的优缺点是什么?

2.选择特定类型系统的主要标准应该是什么?

3.什么是类型推断(typeinference)?

4.静态类型语言和强类型语言有什么区别?在这方面JavaScript的本质是什么?

5.有你知道的弱类型但静态类型的语言吗?有你知道的动态类型但强类型的语言吗?举例一二。

提示:Structural与Nominal类型系统,类型稳健性,工具/生态系统支持,正确性超过方便。

8.JavaScript中有哪些杰出的模块系统(modulesystems)?如何评价ES模块系统。

列出在实现不同模块系统之间互操作所涉及的一些复杂性问题(主要对ES模块和CommonJS互操作感兴趣)

9.HTTP/2将如何影响JavaScript应用程序打包?

列出HTTP/2与其上一个版本的基本区别。

10.FetchAPI相对于传统的Ajax有哪些改进?

使用FetchAPI有那些缺点/难点吗?

哪些是Ajax可以做的,而fetch不能做的?

11.讨论与Promise相关的问题。

提示:及早求值(eagerevaluation),尴尬的取消机制,用then()方法伪装map()和flatMap()等。

以上就是这次小猿圈HTML5讲师给大家整理的2019年前端JavaScript面试题,大家做的怎么样呢,如果针对哪一部分感觉不足,可以去小猿圈具体学习一下那部分内容,弥补自己的不足,做最充足的准备,小伙伴们加油!


你可能感兴趣的:(小猿圈之2019年前端JavaScript面试题(二))