不出意外,今天头条一面就被刷了。也正是这次面试,让我真正明白了自己弱点在哪里。哎,时间还有,好好学习天天向上!接下来就总结一下我遇到的这些问题吧。
整次面试40多分钟,深深的受到了来自大佬的打击。
(OS:找个实习真的难…)
你有没有拿到其他公司的offer
没有….这是我第一次正式面试。
你学习的技术栈
我就扯了扯,html,css,JavaScript,jquery,react,webpack,react-native,node。。。
金额转换的问题
说实话,刚开始看到算法题的时候就很慌….自己算法本来就差…想了一个思路结果被面试官说我这个思路不行…
代码有时间再贴出来吧…
2018.03.30更新:
参考链接:https://juejin.im/entry/5abb5b39f265da23830af129
function toS(num){
let reg = /(?=(\B\d{3})+$)/g; ///B表示匹配非单词边界的元字符,而/b表示匹配单词边界
console.log(num.match(reg));
console.log(num.replace(reg,","))
}
toS(1000000000+"");//1,000,000,000
数组去重的问题
面试官看到我第一个算法题做的不够理想,于是就问了我第二个问题。这个我直接回答的是:利用set集合做…面试官说不要这样,用原生的试试。我就老老实实的说,那就遍历这个数组吧。每遍历一次,就去掉重复的数据,依次往后遍历。面试官又说这个时间复杂度太高了….好吧,我还是没有想法。
后来听同学说可以用排序算法做,在排序比较的时候去除重复的元素…最快可以是nlogn。后悔当时怎么没想到…
大数相加问题
好吧,前面算法题都不够理想。又来了一道大数相加的问题。我勒个擦,以前好像看过这一个题目忘了具体怎么做的了。脑子里想的是对齐两个数的位数,然后相加进位这样子…面试官好像不太满意。又gg。到这里我就觉得这个面试怕是要凉了。
JS的数据类型
面试官可能看到我算法太差了,就转过头来问了问JS的基本数据类型。嘿,这个我会:number,boolean,string,undefined,null,object,symbol。
JS中基本数据类型和引用类型在内存上有什么区别?
这个…这个…,我弱弱的说JS中我不太清楚,但是Java中引用类型一般是存在堆区的….好吧面试官就直接说,JS和Java是不太一样的…妹的,又不会。
tostring和valueof有什么区别
后来面试官问我,undefined==null吗?我说是的true,又问为什么。我说,==导致了两边对象进行了隐式数据类型转换,都变成了number类型的,这里两边都变成了0,所以返回true。
然后面试官就往深层次问了:[0]==0?
what???我知道[]==0是true,但是[0]==0??,我想[0]是数组对象,强制转换的时候会调用它的valueof方法,这里应该是返回0,两边应该相等吧…结果我并没有相信自己…就弱弱的说了句返回false吧。。。面试官后来都提示我了valueof返回的是什么?噗….
我说如果是对象的话会调用tostring然后转换成number进行比较,而数组对象则是valueof。。。
于是就问了我tostring和valueof的区别,很显然我答不上来。又gg一波。
2018.04.08更新:
valueof是返回最适合该对象类型的原始值,而tostring则是返回对象的字符串表示。
position的值
看来面试官心里有个底了,于是就开始问我css中position的取值有哪些。
嘿,这个我还是能回答的。
“relative,static,absolute,sticky,fixed,initial,inherit,unset”。。。
面试官问我了,说absolute是相对哪个元素定位的?我依稀记得是相对不为static的元素定位的,但是不太确定。就说了相对父级元素中最近的relative定位。面试官好像不太满意我的回答…
然后又问了我unset有什么作用,OS:我没用过啊…,回答不知道。
2018.04.08更新:
unset是initial和inherit的组合值…哪个属性有值就是哪个
谈一谈你对浮动的理解
ok,这个我还是会一点的。就说了浮动时高度塌陷,为了避免这个问题可以使用伪元素清除浮动,或者使用BFC容器。
好吧一提到清除浮动,面试官就问我了解过.clearfix这个类吗?
我说用过。
看过源码吗?
没有。
2018.04.08更新:
.clearfix:before,.clearfix:after {
display: table;
content: " "
}
.clearfix:after {
clear: both
}
浏览器这块,了解过GC吗?
了解过一点,像JS的话就是利用标记清除法来回收内存的。然后就说了什么情况下添加标记,什么时候去除标记。
“你谈谈如何给对象添加标记”
what???我快崩溃了,这个还真没了解过。
2018.04.08更新:
反转特殊位或者添加对象列表
最近webpack的新版本有什么新特性
这个问题我直接就直接说课程太多,没了解过…面试官表示理解。
谈谈HTTPS
我说了它的默认端口号为443,能够建立可靠的安全的信息通道,能够更加快速的传递数据…面试官好像不太满意.
谈谈CDN加速
我说,这个是选择最近的节点返回资源…
面试官说怎么选择?有什么算法?
我…依稀记得计算机网络组成原理这门课上有讲,已经忘了…只好吐了吐舌头:又不知道了.
除了高程外还看过什么书吗?
我说看的那些教程算不算?
不算?
ok,那没有看过。
好的,你有什么问题问我的吗?
面试官您好,这次我的面试是不是非常糟糕啊…
面试官笑了,他笑了…
他说,还是建议你多看看JS高程…
完了,下午就收到拒信了。学习算法去,这个是硬伤!