前提简介:平时的工作内容重业务。自己喜欢记笔记,喜欢总结,涉猎范围比较广(主前端全栈),obsidian 有 500 篇自己码的笔记,记不得的知识点就秒搜一下。 随便举几个例子:
- 类型检测,有 typeof instanceof constructor Object.prototype.toString.call Array.isArray ,每种方式都有优缺点,硬要杠的话就是存在就有对应使用场景但是无形中要记的东西就变得好多,平时工作中还好,只要实现业务不出 bug 就好,没人会考你具体细节,而且很多记不清的功能都会去翻笔记或者去控制台现场测一遍,但是面试就不一样了,生怕面试官问的细,疯狂反问,到时候连这种基础都不知道的话又体现得自己基础不扎实,殊不知我可能 5 年前就自己手撸过一个全类型检测方法了。但是有很多东西研究完过一段时间就会忘,真记不住;
- 再说循环,for for in for of forEach map 那些个 some find filter reduce 什么的我就不讲了(虽然以上这些我都经常用)。我是真想 for 一把梭啊,for in for of 又是可枚举又是迭代器,啰嗦又怎么了,我却很喜欢,"less is more"正是我喜欢的东西,最好只给用户提供一种选择;
- 再说恶心的隐式转换,个别几个一直记不清,平时根本用不到;
- 还有一些奇技淫巧:写惯了 ES5 原生, 当年第一次遇到
[...new Set(arr)]等等很多没见过的小技巧时我是震惊的,会怀疑自己,会害怕以后不这样写就是代码冗余,不优雅。 - pop() shift() unshift() push() slice() splice() (还要考虑是否有返回值,是否改变原数组)
- css 水平相比较 5 年前,就和我的英语一样,更是只减不增
为了面试要去强记一些东西,研究得深的话(知识点太多了)记又记不住,记住这个忘记那个,是我记忆力衰退了吗,还是大家都这样。 我一直认为代码只是工具,代码是为了实现业务,业务是为了创造经济价值,技术永远在变革,几年前的写法如今很多都已淘汰,以后的 api 肯定是越来越人性化,越来越友好。我认为知识的广度更加重要,现在这样,心智压力真的好大。