@windchimes
2018-02-24T08:28:08.000000Z
字数 1074
阅读 281
面试
有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分别是什么
function A(x) {this.x = x}A.prototype.x = 1function B(x) {this.x = x}B.prototype.x = new A()var a = new A(2)var b = new B(3)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%