记录一下发现的一段有趣的代码

靓仔?
在这里插入图片描述

前言

今天去面试了,面试过程还是很不错的,填完了面试题后感觉自己还是有很多地方的知识点不足,其中面试题中有一个题我感觉是比较有趣且让我印象深刻,特此记录一下。
上代码

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的能力在慢慢减淡,但该说不说,这次面试还是学到不少东西,从技术面的大佬那里还是学到了不少东西的,说实话,能在面试中跟你解释的面试官还是少,遇见这种乐于分享的技术面大佬还是挺不错的,毕竟人家没有义务和时间跟你解释很多。

加油,骚年👊

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值