Jan*_*zny 129 javascript
确定申请人是否真的是专业JavaScript(浏览器方面)开发人员有哪些好问题?
可以区分某人是否是特定的JavaScript程序员,但实际上是在进行专业的JavaScript开发,面向对象,可重用和可维护的问题.
请提供答案,以便中级和临时JavaScript程序员可以采访更有经验的人,并提出很少有这些高级问题的答案.请避免公开提问.
请根据SO答案保留一个面试问题/答案,以获得更好的阅读体验和更轻松的面试准备.
bch*_*rry 118
因为JavaScript是一种如此小的语言,但具有令人难以置信的复杂性,你应该能够提出相对基本的问题,并根据他们的答案找出它们是否真的那么好.例如,我衡量其余采访的标准第一个问题是:
在JavaScript中,
var x = 1和之间有什么区别x = 1?在您感到舒适的同时,尽可能多地回答细节.
新手JS程序员可能有一个关于locals与globals的基本答案.中级JS家伙肯定应该有这个答案,并且应该提到功能级范围.任何自称为"高级"JS程序员的人都应该准备好谈论本地人,隐含的全局,window对象,函数范围,声明提升和范围链.此外,我很乐意听到[[DontDelete]],提升优先级(参数与varvs function),以及undefined.
另一个好问题是要求他们编写一个sum()接受任意数量参数的函数,并返回它们的总和.然后,让他们使用该函数(无需修改)来对数组中的所有值求和.他们应该编写一个如下所示的函数:
function sum() {
var i, l, result = 0;
for (i = 0, l = arguments.length; i < l; i++) {
result += arguments[i];
}
return result;
}
sum(1,2,3); // 6
Run Code Online (Sandbox Code Playgroud)
他们应该在你的数组上调用它(上下文apply可以是任何东西,我通常null在这种情况下使用):
var data = [1,2,3];
sum.apply(null, data); // 6
Run Code Online (Sandbox Code Playgroud)
如果他们得到了这些答案,他们可能知道他们的JavaScript.然后,您应该继续向他们询问非JS特定的内容,例如测试,工作流程,版本控制等,以确定他们是否是一名优秀的程序员.
pra*_*c84 93
基本的JS程序设计
Scope of variableAssociative Array?我们如何使用它?OOPS JS
Difference between Classic Inheritance and Prototypical Inheritance difference between private variable, public variable and static variable?我们如何在JS中实现这一目标?add/remove properties to object在运行时间?inheritance?extend built-in objects?extending array is bad idea?DOM和JS
Difference between browser detection and feature detectionDOM Event PropagationEvent DelegationEvent bubbling V/s Event Capturing杂项
Graceful Degradation V/s Progressive EnhancementAni*_*mde 24
询问"这个".这是一个很好的问题,可以成为JavaScript开发人员的真正考验.
Mat*_*att 17
(我假设你的意思是浏览器端的JavaScript)
问他为什么,尽管他对JavaScript有无限的了解,但使用jQuery,Mootools,Prototype等现有框架仍然是一个好主意.
答:好的编码器代码,伟大的编码器重用.已经有数千个工时涌入这些库中,以便从浏览器特定的实现中抽象出DOM功能.没有理由自己完成所有不同的浏览器DOM头痛只是为了重新发明修复程序.
| 归档时间: |
|
| 查看次数: |
154683 次 |
| 最近记录: |