JavaScript面试的10个经典面试题

对大部分公司来说,招聘技术人员这种事情,管理层就应该放手交给技术团队,只有他们才能够准确地判断应聘者的技术实力。如果你恰巧是应聘者,你也是迟早都要去面试的。不管你是哪边的,都让大哥来教你几招。

 以人为本

在 How to Build a High Velocity Development Team 一文中,我提出了一些观点,我觉得这些观点很重要,所以在这里再重复一遍:

优秀的团队才是决定公司业绩的关键,一家公司要想于逆境之中仍能有所建树,最重要的就是得先培养出一只优秀的团队。

就像 Marcus Lemonis 说的,有三点(3 个 P)最重要:

员工(People),流程(Process),产品(Product)。

在创业初期,你招来的工程师必须是能够独当一面的大神队友。他最好能够帮着招聘工程师,能指导其它工程师,还能帮初级和中级工程师解决各种问题。这样优秀的队友,无论何时都多多益善。

要想知道面试应聘者时,有哪些常见的注意事项,可以读读 Why Hiring is So Hard in Tech这篇文章。

 JavaScript面试的10个经典面试题_设计制作_存储技术

要评估一个应聘者的真实水准,最佳方式就是结对编程(pair programming)。

和应聘者结对编程,一切都听应聘者的。多观察、多聆听,看看应聘者是个怎样的人。用微博的 API 抓取消息并显示在时间线上,就是个很好的考察应聘者的面试项目。

不过结对编程再好使,也没办法让你完全了解一个应聘者。这个时候,面试也能帮上很多忙——但是千万别浪费时间去问一些语法(syntax)或者语言上的细节(language quirks)——问些高端的问题吧,大兄弟。问问项目架构(architecture),编程范式(paradigms),这个层面上的判断(the big desicions)能够在很大程度上影响一个项目的成败。

语法和语言特性(features)这种小知识,Google 一搜一大把,谁都会。而工程师在工作中所积累的软件工程方面的经验,以及个人常用的编程范式及代码风格(idioms),这些可都是很难 Google 到的宝贵财富。

JavaScript 很独特,它在各种大型项目中都起着至关重要的作用。那是什么让 JavaScript 如此与众不同?

下面几个问题,也许能帮你一探究竟。

1. 能说出来两种对于 JavaScript 工程师很重要的编程范式么?

JavaScript 是一门多范式(mul  TI -paradigm)的编程语言,它既支持命令式(impera  TI ve)/面向过程(procedural)编程,也支持面向对象编程(OOP,Object-Oriented Programming),还支持函数式编程(func  TI onal programming)。JavaScript 所支持的面向对象编程包括原型继承(prototypal inheritance)。

面试加分项

原型继承(即:原型,OLOO——链接到其它对象的对象);

函数式编程(即:闭包(closure),一类函数(first class func  TI ons),lambda 函数:箭头函数)。

面试减分项

连范式都不知道,更别提什么原型 OO(prototypal oo)或者函数式编程了。

深入了解

The Two Pillars of JavaScript Part 1:JS 两大支柱之一:原型 OO

The Two Pillars of JavaScript Part 2:JS 两大支柱之二:函数式编程

2. 什么是函数式编程?

函数式编程,是将数学函数组合起来,并且避免了状态共享(shared state)及可变数据(mutable data),由此而产生的编程语言。发明于 1958 年的 Lisp 就是首批支持函数式编程的语言之一,而 λ 演算(lambda calculus)则可以说是孕育了这门语言。即使在今天,Lisp 这个家族的编程语言应用范围依然很广。

函数式编程可是 JavaScript 语言中非常重要的一个概念(它可是 JavaScript 的两大支柱之一)。ES5 规范中就增加了很多常用的函数式工具。

面试加分项

纯函数(pure functions)/函数的纯粹性(function purity)

知道如何避免副作用(side-effects)

简单函数的组合

函数式编程语言:Lisp,ML,Haskell,Erlang,Clojure,Elm,F#,OCaml,等等

提到了 JavaScript 语言中支持函数式编程(FP)的特性:一类函数,高阶函数(higher order functions),作为参数(arguments)/值(values)的函数

面试减分项

没有提到纯函数,以及如何避免副作用

没有提供函数式编程语言的例子

没有说是 JavaScript 中的哪些特性使得函数式编程得以实现

深入了解

The Two Pillars of JavaScript Part 2:JS 两大支柱之二:函数式编程

The Dao of Immutability

Composing Software

The Haskell School of Music

3. 类继承和原型继承有什么区别?

类继承(Class Inheritance):实例(instances)由类继承而来(类和实例的关系,可以类比为建筑图纸和实际建筑

17
136
0
62

相关资讯

  1. 1、继《风筝》以后,张翰携一部谍战剧来袭,女配角备受关注2570
  2. 2、《亲爱的柠檬精先生》收获好评,剧情狗血,但霸道女主圈粉无数!594
  3. 3、她曾是最美赵敏,幼年时被父亲性侵曾多次自杀,死后3天才被发现3851
  4. 4、长相神似全智贤,因拍风月片遭歧视,现身家亿万,却苦无良人4949
  5. 5、这部电影有着史上最奢华的女子盗窃团队为啥口碑却没有爆棚?3060
  6. 6、李亚男首曝孩子B超照,身边常伴王祖蓝,满满的高级狗粮634
  7. 7、乡村爱情定档大年初五,宋晓峰玩直播,谢广坤抓内奸,刘能换人了4766
  8. 8、为什么我愿把我心中的2020最佳电影,给《紧急救援》1071
  9. 9、好事将近?56亿票房女王牵手“准婆婆”,网友:岳父也很帅!1705
  10. 10、释小龙疑似投入新恋情,被拍到和女友约会,盯着女友吃饭一脸宠溺486
全部评论(0)
我也有话说
0
收藏
点赞
顶部