[关闭]
@windchimes 2018-02-24T08:28:08.000000Z 字数 1074 阅读 281

360面试

面试


有5顶帽子,3顶白色2顶黑色,甲乙丙三个聪明人每人带一顶,都只能看到别人的帽子,看不到自己的帽子,甲说我不知道自己的帽子颜色,已说我也不知道自己的帽子颜色,丙会说什么?(甲乙丙都没有撒谎)
A.我也不知道自己帽子的颜色
B.我的帽子是白色
C.我的帽子是黑色

请问下述代码哪里不对
Array.prototype.contains = function(obj) {
    return this.indexOf(obj) >= 0
}

数组去重 (es6 的set+Array.from方法) symbol方法是对象的
圆形图案分四块,右上角和左下角是黑色背景,剩下的是白色背景,一个div如何实现?
左边固定 右边自适应 float position flex table
promise 优缺点 async/await 优缺点  async/await如何改变状态
css样式奇偶 odd

请问下列代码执行后输出的a.x和b.x分别是什么

  1. function A(x) {
  2. this.x = x
  3. }
  4. A.prototype.x = 1
  5. function B(x) {
  6. this.x = x
  7. }
  8. B.prototype.x = new A()
  9. var a = new A(2)
  10. var b = new B(3)
  11. delete b.x

题目解析:

帽子题 B
分析题目:5顶帽子,3顶白两顶黑,三人能听到彼此的发言,所以乙在发言前已经听到了甲的发言,列举一下可能出现的情况,甲说不知道自己的帽子颜色,所以乙丙的帽子颜色可能是 黑白 白黑 白白;乙听到了甲的发言,依然判断不出自己的帽子颜色,根据乙的发言所以 白黑组合不可能,因此丙的帽子颜色只能是白色了

代码不对的部分:无法覆盖所有的情况,此题目知识点较多,慢慢来分析
1)indexOf方法源码使用的是 === 来判断
2)number类型中有一个很特殊的是NaN, NaN === NaN 的结果是fasle
3)js的引用类型包括数组和对象,{} === {} 返回false 同理[] === []也是false,所以无法判断数组元素是数组或者对象时的存在情况
4)延伸知识点:js的基本数据类型,es6新加的数据类型
5)如何判断空数组和空对象
6)遍历方法for...in es6新加的遍历方法for...of,两者之间的区别

for of :http://es6.ruanyifeng.com/#docs/iterator#for---of-%E5%BE%AA%E7%8E%AF

7)再次延伸知识点:forEach方法 参数顺序是currentValue index this.array

flex:1 表示flex-grow:1 flex-shrink:1 flex-basis:0%

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注