靓仔?
前言
今天去面试了,面试过程还是很不错的,填完了面试题后感觉自己还是有很多地方的知识点不足,其中面试题中有一个题我感觉是比较有趣且让我印象深刻,特此记录一下。
上代码
var handler = function(i, j, str){
return j == 0 ? str : handler(i, --j, (str += "_" + i[j]))
}
var arr = new Array('A','B','C','D'),
str = handler(arr,arr.length,"");
alert(str)
// 写出弹出的结果是什么
// 我写的差了十万八千里 我的结果(也就是错误的那个...。。。):'['a2','b1','c0']_'
// 正确的应该是 '_D_C_B_A'
。。。。。。 沉默是今晚的康桥
首先我的思路从那个return就错了,我从第一眼看进去就是一个数组,然后用函数调用自身成为一个循环,我为啥会整成a2,b1这种离谱的东西,因为我看见了后面的i[j]…,脑子没反应过来就想到i是A,j是索引,然后给他们一加,我竟然忘了他们是取值。。。不是单纯的值 + 字符串,不知道当时脑子在干嘛,可能在大公司面试紧张。。。然后那个+=解析出来应该是str = str + (_ + i[j]),我把顺序弄反了,我看的时候还在寻思 数组+= ‘_’???,然后就是–j的话还是反应过来了,就是倒过来循环。
总结: 还是不够沉稳,JS的基础还有待加强,就像这次技术面的大佬说的一样,框架写多了,导致了原生JS的能力在慢慢减淡,但该说不说,这次面试还是学到不少东西,从技术面的大佬那里还是学到了不少东西的,说实话,能在面试中跟你解释的面试官还是少,遇见这种乐于分享的技术面大佬还是挺不错的,毕竟人家没有义务和时间跟你解释很多。
加油,骚年👊