每日前端夜话0x30
每日前端夜话,陪你聊前端。
每天晚上18:00准时推送。
正文共:2287 字 1 图
预计阅读时间: 6 分钟
翻译:疯狂的技术宅 原文:https://www.indeed.com/hire/interview-questions/javascript
不管你是面试官还是求职者,里面的思路都能让你获益匪浅。
这个问题用来评估基础编码知识。答案可以有多种,所以应该注意倾听具体的问题,并尽量全面回答,来展示自己对单体应用与微服务架构的理解。
设计单体架构在短期内成本较低,但代码在内存是单一的内聚单元。微服务架构提供了灵活性和可扩展性,因为每个组件都是一个独立的程序。
异步编程允许多个并发操作,并且它非常适合 JavaScript 程序。这个问题评用来估求职者的编码知识,以及对 JavaScript 的具体理解。
简单来说,同步编程意味着代码以线性方式执行。这些程序通常不能同时处理多个操作。使用异步编程,有一个事件循环。一个程序线程可以处理多个操作。由于 JavaScript 通常用于用户界面,因此同时运行多个操作的能力可以带来更好的用户体验。
这个问题有助于了解求职者是否具有 JavaScript 经验和专业知识。原型继承比类继承更容易、更灵活,这是判断一个有经验的 JavaScript 程序员的首选方法。
当使用类继承时,实例继承自类,这会产生分层。而通过原型继承,实例继承自其他对象,并且可以从多个对象创建。我更喜欢原型继承,因为它更简单、更灵活。
求职者的答案能让面试官深入了解他们使用 JavaScript 的经历。类继承有意义的情况很少,求职者可能会说根本没有。 否定的答案优于对适当情况冗长的描述,因为这些通常是基于错误信息的。
类继承几乎从来都不是正确的解决方案。只有在极少数情况下,它可能被用到。
函数式编程是目前 JavaScript 使用的基本原则。求职者是否能够完整的回答这个问题,可以证明他们的基础知识是否扎实。
函数式编程允许通过使用纯函数来设计软件。此方法避免了很多编程问题,如共享状态,副作用和可变数据。它作为面向对象编程的替代方案,其中应用状态通常与对象中的方法搭配并共享。
任何具有 JavaScript 经验的求职者都会使用其中一种风格,因此应该能够对每种风格的优缺点提出一些看法。这个问题可以帮助面试官衡量求职者使用 JavaScript 的深度。
虽然我主要使用面向对象编程方式,但是我更希望用函数式编程开发。在用面向对象编程时遇到不同的组件竞争相同的资源的时候,更是如此。
这个问题能够说明求职者对 JavaScript 重要基本原则的深刻理解。不熟悉这些条款的求职者可能没有该职位所需的经验。
当模型是单一事实来源时,会发生单向数据流,React 就是一个例子。双向数据绑定是用户界面与模型数据动态链接的状态。如果用户界面中的字段发生了变化,模型也会发生变化,比如 Angular。