本章要开启一个新系列——JavaScript基础。相较于CSS系列,本系列的文章会更加枯燥&&枯燥&&枯燥,重要的词说三遍。
本系列参考的书籍是:《javaScript权威指南》,也就是我们常说的动物书系列的犀牛书,目前为止我看了前三章的内容,基本都没有记住多少,也想不出如何去介绍这样一本书,依我看来,这本书就像一本字典一样,充斥着许多你不太了解也不想了解的专业术语,在研读本书的过程中,我也发现了书上的部分原理也已经不适用于当前的开发环境(如果你对ES6感兴趣的话,你会发现本书中有许多"过时"的理论)。然而作为前端开发人员,这本书依旧是行业中的“圣经”。当然你也可以选择《JavaScript设计模式》这样的书,从某些角度上讲,我觉得后者的实用价值更大,不管是面试还是平时的项目应用。虽然我只看了其中的几页,但可以明显感觉到后者更贴近实际场景。
为什么要去了解一本“字典”?我在文章标题中用了这样一句话去阐述我最初的疑问。看了三章之后,我依然还是没能给出一个满意的答案。其实我在写完《CSS世界》系列之后,就给自己做了一个评估,看完这样一本书,并通过书写的方式二次记忆了之后,我的CSS水平到底进步了多少?
答案是:有进步,但没必要。即使是没有看过那本书,我依旧能用"经验"或各种偏门去完成布局,可能这个布局不是十分健壮,然而,谁知道呢?你尽可以“自以为是”的觉得跟设计稿完全没有出入了就ok了。甚至大家也是这么认为,其实这样就可以了,如果给一个产品满分十分的话,看书之前你也许能做到9分,剩下的1分全在技术里,对于产品和用户来说,你已经是满分了,因为他们并不关心你的技术是否足够优秀,他们要的是结果,而不是过程。
相较于CSS的直观,JS对于用户层来说就更为隐晦了,只要你的逻辑正确,没人关心你是否做了优化,即使是你为了偷懒并在条件可控的范围内多写了几个循环嵌套,少写了几个判断,如果没有严格的代码审查机制,你依旧能够蒙混过关。数学上有个逻辑叫做负负得正,在我刚入门的时候,也写出过这样的代码,即原本是一个bug的代码,经过不断的“修复”,最终依靠另一个bug的辅助,得到了总是正确的结果,如果不是后来出了别的问题,我一直以为是我修复了那个bug,事实上我只是在不断尝试中发现系统突然正常运行了。
相较于刚入门时的白纸,大部分人(包括自己)对JS的印象就是for and if,用来写逻辑的,知道循环和条件后写写项目也没什么大问题,至于什么构造函数,什么作用域,什么闭包这种东西,面试前准备准备就好了,谁平时没事作死给自己出难题呢?其实我的想法也是如此,如果要给本文标题一个回答的话,我的答案是:闲的。
每个系列开头给自己打个气:不忘初心,真TM难。