Skip to content

Instantly share code, notes, and snippets.

@ourai
Last active August 29, 2015 14:01
Show Gist options
  • Save ourai/a507e323eb2a7ccb2085 to your computer and use it in GitHub Desktop.
Save ourai/a507e323eb2a7ccb2085 to your computer and use it in GitHub Desktop.
这里都是我被考过的笔试题,解答方式肯定不唯一,我的方式也不一定是最好的,就是给大家一个思路而已。

笔试题荟萃

这里汇聚的是我在参加面试时所遇到过的问题。

如果各位也想测测自己是否能答出来的话,那么请只看「问题」部分,其他部分不要看。

问题

#lc {
  width: 300px; float: left;
  border-width: 1px; border-style: solid; border-color: #ccc;
  background: #09e;
  margin-top: 20px;
  margin-right: 10px;
}

#rc {
  border-color: #cccccc;
  width: 500px; border-style: solid;
  float: left; border-width: 1px;
  margin-top: 20px; background: #09e;
}

上面的样式有何改进的地方?

解答

#lc,
#rc {
  border: 1px solid #ccc;
  background-color: #09e;
  margin-top: 20px;
}

#lc {
  width: 300px;
  float: left;
  margin-right: 10px;
}

#rc {
  width: 500px;
  overflow: hidden;
}

#lc,
#rc {
  float: left;
  border: 1px solid #ccc;
  background-color: #09e;
  margin-top: 20px;
}

#lc {
  width: 300px;
  margin-right: 10px;
}

#rc {
  width: 500px;
}

考察点

  1. 可合并的规则的合并时机的掌握
  2. 左右布局的实现方式

扩展

都有哪些实现左右布局的方式?这些方式的优缺点是什么?


问题

现有数组["a", "c", 5, 1, "b", 2, 3, "d", "e", 4],如何使其顺序为["e", "d", "c", "b", "a", 1, 2, 3, 4, 5]

解答

["a", "c", 5, 1, "b", 2, 3, "d", "e", 4].sort(function( a, b ) {
  var a_is_num = typeof a === "number";
  var b_is_num = typeof b === "number";
  var r;

  if ( a_is_num ) {
    if ( b_is_num ) {
      r = a - b;
    }
    else {
      r = 1;
    }
  }
  else {
    if ( b_is_num ) {
      r = -1;
    }
    else {
      r = b.charCodeAt(0) - a.charCodeAt(0);
    }
  }

  return r;
});

考察点

  1. Array.prototype.sort的熟悉情况
  2. 如何比较字符大小

扩展

  1. 元素不是字符而是字符串时(例如:["ab", "az", "by", "azc", 5, 10, 6])如何实现?
  2. 不用Array.prototype.sort如何实现?

问题

for (var i = 0; i < 10; i++){
  setTimeout(function(){
    console.log(i);
  });
}

上面代码的输出结果是什么?

解答

10 个10

考察点

  1. for的理解
  2. 对作用域的理解

改进

for (var i = 0; i < 10; i++) {
  (function(i) {
    setTimeout(function() {
      console.log(i);
    });
  })(i);
}

// => 0-9
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment