2017年7月7日13:47 开始。javascript
2017年7月7日20:55 结束了。前端
2017年7月9日13:37 开始。(看了知乎上关于前端的一些问答,还有大神的简历。目前走的最大的弯路就是先学了jquery而没有先看高级程序设计。)java
2017年7月9日19:59 结束。jquery
2017年7月10日13:22 开始。git
2017年7月10日18:52: 结束。准备研究一下留言栏。github
2017年7月12日13:50 开始。面试
昨天没有打卡,研究了一下留言板怎么写,尚有两个关键功能没有实现(也不知道昨天干啥了)。若是有兴趣能够去看看,指出错误更好咯。正则表达式
地址:github 。啃书了(第七章:函数表达式,比较少,若是看的比较容易会再看一遍第二三章)数组
昨天直接关机了,忘记打卡。闭包
刚开机,稍后开始看书。
2017年7月13日18:14 看不下去了,头有点疼。今天就到这了。
忘记打卡,昨天晚上半夜睡不着,而后反知乎,看见网易云课堂发表的关于前端的文章,这里是连接:知乎连接 内容大概是关于工做时间和能力成长的关系,(良好的代码习惯可让你的工做经验翻倍)下面会贴出主编具体说了什么。
每一年的三月到六月,都是招聘高峰,除了大量的应届毕业生涌入社会以外,还有一些工做了一两年还没有找到稳定归属感的人,也会开始投递简历(没错,基本都是在拿了年终奖以后)。
这时候,前端技术的主管须要在这些投递过来简历的人中,耗费大量精力来筛选符合公司要求、团队发展、技术基础三方面条件的人选。常见的招聘要求中,基本都有“工做经验”的要求,并且都是以年做为单位。可是实际状况却告诉咱们,工做经验每每不是以年衡量的,甚至有些时候跟时间没有关系。
因此,为何你的前端工做经验不值钱?这里从一个小小的面试题目入手:
编写一个javscript函数 fn,该函数有一个参数 n(数字类型),其返回值是一个数组,该数组内是 n 个随机且不重复的整数,且整数取值范围是 [2, 32]。
若是愿意,请先暂停阅读文章,本身动手写一下这个函数。是的,老简单了。我能够等你五分钟。
~~~ 华丽的五分钟过去了 ~~~
如今假设你的工做时间为 y 年,经验系数默认为 1,即工做经验是:Y = 1 * y。从如今开始,如下的错误,你要是遇到了,请自行调整经验系数。
做为一段须要知足需求的代码来讲,它最核心的、最低的要求:可用。
若是你没有产出一个函数( fn ),或者产生了语法错误,那就请设置 经验系数为 0,而后去面壁思过;
请将代码在控制台运行,并执行 fn(3),看看是否输出一个数组,数组中包含了三个随机且不一样且在[2,32]的整数,若是不是,请将 经验系数 * 0;
一个参考的半伪代码是:
其中 getRand 、checkInArr 还另有讲究,后面会提到。固然思路和方法不止一个,后面也会提到。
有至关多的面试者,包括很多工做时间为2年之内的同窗,都会在这一步犯错,很是遗憾。
代码是否老道,过了“可用”这一关后,就开始见分晓了。
所谓“健壮”,即最基本的兼容性处理、边界处理,异常处理、用户输入校验。不少时候,需求方不会明确告诉你这些逻辑怎么处理,但并不意味着你不须要处理。
健壮的程序,必定会将这些兼容性、边界、异常、输入作处理,以保证核心功能的正确输出。固然,若是你的代码没有任何输入并不考虑兼容性(可能吗?)或者仅仅是内部函数,那这一步要求能够下降,并不意味着你能够彻底不作。
好,回过头看代码:
——若是你没有对 n 的取值范围作校验(n必须是 1 到 31 之间的整数),请将 经验系数 * 0.3;
——若是你没有对 n 是否为数字作校验,请将 经验系数 * 0.5;
——若是你没有对 n 是否存在作校验,请将 经验系数 * 0.7;
——若是上述校验都作了,可是没有校验对,请将 经验系数 * 0.9;你须要多练习,仔细认真的。
大多数面试者都止步于前两关,鲜有进入第三关的:可靠。
javascript没有强数据类型,函数的返回值也没法强制返回的数据格式。可是做为“可靠”的要求,尽量在任何状况下,都返回一个可靠的结果,哪怕是异常状况下。是的,这一步很简单,几乎不耗费几个字节的代码,可是会让 fn 的返回值变得可靠:
若是你留意到并处理可靠返回值的问题,那请将经验系数 * 1.2;
另外,一个牵涉的话题就是:异常状况下,是否要抛出 Error,或 console.error ?
关于这个话题,彷佛没有定论,须要本身衡量。个人观点是:若是异常状况下不会形成太大影响的话(包括定位错误),就不用抛错或提示。但一样的,这个衡量仍然是经验性的。此处再也不展开讨论。
若是在你的平常开发中注意“可用”、“健壮”、“可靠”原则的话,你的工做经验就会大于你的工做时间,也就会更容易受到重视,本身所挖的坑就会少。而我近期面试的人中,甚至包括五、6年工做时间的,几乎都止步于此。
若是你要想成为一个受欢迎的技术人员,“宽容”是第一步: 对需求宽容、对用户宽容、对调用者宽容、对维护者宽容。
回到代码:
——若是 n 是一个字符串数字,是否能够容许进入处理流程? 若是是,请将经验系数 * 1.1;
——若是 n 是一个含有小数的数字,好比 3.000001,是否容许进入处理流程?若是是,请将经验系数 * 1.1;
——你的代码中,是否有足够多且清晰的注释? 若是是,请将经验系数 * 1.2;
——若是需求调整了 [2, 32] 的范围,你的代码是否能够快速调整,甚至不用调整? 若是是,请将经验系数 * 1.2;
一个参考的半伪代码是:
恭喜你完成了前四关!
若是你在实际开发中,时时刻刻留意这些原则,这足够让你的工做经验扩大化,并给你带来更多的承认,这些承认来自于需求方(或许是那个曾经很是蛮横的产品狗)、用户以及你的同事。但不该该包括你本身,你还须要更进一步。
宽容是宽以待人,精益求精是严以律己。内外兼修才是高手。当你将这五个原则(可用、健壮、可靠、宽容、精益求精)变成你本身的开发习惯,你的工做经验就跟你的工做时间没有关系了。
以上。
本文转载自网易实践者社区,做者为网易高级前端技术经理马超,转载已获笔者受权。
今天下午就研究这个了,github上有项目代码,有兴趣的看到的能够研究一下,知乎就能够看见有别的大神装逼教程。
2017年7月14日19:55 今天结束。明天继续。
没脸打卡 2017年7月16日13:41 开始。
2017年7月16日17:27 任务完成,结束。
斯哈! 一直在看知乎上有关于前端的帖子,大多数关于面试,有人抱怨,相似于我这种,没找到工做的、水平差的。还有牛的,说要修改本身的面试题。瞧了他出的面试题。都特么怀疑人生了,要不我仍是作销售去吧。 像我这种水平的挺多,比我厉害的更多。想要脱颖而出很难。
看知乎会看到窒息的赶脚。今天不打卡了。哎。看书去了,有些不坚决了。
昨天下午没打卡,复习了一下原型链和闭包这一块。稍后复习一下第八章,内容不是太多(方法不少,记不下来)而后继续看新知识。
打卡:2017年7月19日13:35 开始。(肚子一直在叫……)
吐个槽:模块模式和加强模块模式差异在于后者var 了一个内部变量,而后返回新变量,前者须要返回具体方法。这有啥用!??估计很快就会遗忘……
这个客户端检测,能力检测,怪癖检测,用户代理检测。正则表达式之后须要增强。
2017年7月19日20:51 结束。
昨天和今天表现不太好,有些懈怠了。先不打卡。