Skip to the content.

前端工作面试问题

本文包含了一些用于考查候选者的前端面试问题。不建议对单个候选者问及每个问题 (那需要好几个小时)。只要从列表里挑选一些,就能帮助你考查候选者是否具备所需要的技能。

备注: 这些问题中很多都是开放性的,可以引发有趣的讨论。这比直接的答案更能体现此人的能力。

目录

  1. 常见问题
  2. HTML 相关问题
  3. CSS 相关问题
  4. JS 相关问题
  5. 测试相关问题
  6. 效能相关问题
  7. 网络相关问题
  8. 代码相关问题
  9. 趣味问题

参与协作

  1. 贡献者
  2. 如何参与贡献
  3. 许可协议

常见问题:

HTML 相关问题:

CSS 相关问题:

JS 相关问题:

测试相关问题:

效能相关问题:

网络相关问题:

代码相关的问题:

问题:foo的值是什么?

var foo = 10 + '20';

问题:如何实现以下函数?

add(2, 5); // 7
add(2)(5); // 7

问题:下面的语句的返回值是什么?

"i'm a lasagna hog".split("").reverse().join("");

问题:window.foo的值是什么?

( window.foo || ( window.foo = "bar" ) );

问题:下面两个 alert 的结果是什么?

var foo = "Hello";
(function() {
  var bar = " World";
  alert(foo + bar);
})();
alert(foo + bar);

问题:foo.length的值是什么?

var foo = [];
foo.push(1);
foo.push(2);

问题:foo.x的值是什么?

var foo = {n: 1};
var bar = foo;
foo.x = foo = {n: 2};

问题:下面代码的输出是什么?

console.log('one');
setTimeout(function() {
  console.log('two');
}, 0);
console.log('three');

趣味问题:

贡献者:

本文档始于 2009 年,是以下作者的合作成果:@paul_irish @bentruyman @cowboy @ajpiano @SlexAxton @boazsender @miketaylr @vladikoff @gf3 @jon_neal @sambreed@iansym

时至今日,文档已经融入超过 100 位开发者的贡献。