您的位置 首页 ADAS

JavaScript面试的10个经典面试题

JavaScript面试的10个经典面试题-JavaScript 是一门多范式(multi-paradigm)的编程语言,它既支持命令式(imperative)/面向过程(procedural)编程,也支持面向对象编程(OOP,Object-Oriented Programming),还支持函数式编程(functional programming)。JavaScript 所支持的面向对象编程包括原型继承(prototypal inheritance)。

对大部分公司来说,招聘技能人员这种工作,管理层就应该甩手交给技能团队,只要他们才能够精确地判别应聘者的技能实力。假如你恰巧是应聘者,你也是早晚都要去面试的。不论你是哪边的,都让大哥来教你几招。

以人为本

在 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 是一门多范式(mulTI-paradigm)的编程言语,它既支撑指令式(imperaTIve)/面向进程(procedural)编程,也支撑面向目标编程(OOP,Object-Oriented Programming),还支撑函数式编程(funcTIonal programming)。JavaScript 所支撑的面向目标编程包含原型承继(prototypal inheritance)。

面试加分项

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

函数式编程(即:闭包(closure),一类函数(first class funcTIons),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)由类承继而来(类和实例的联系,能够类比为修建图纸和实践修建

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qiche/adas/102830.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部