刚拆开《即用即查JavaScript核心对象参考手册》,我眼皮往目录上一扫,心里直嘀咕:这排版,属实有点唬人。字挤得跟蚂蚁搬家似的。韩延峰这本小册子,不整虚的,就是给JS小白、日常敲代码的搬砖党,还有搞Web开发的兄弟备的速查本。Date、String、Math、Array、Function、Number、Object,这些基础货色,外加Form表单、Document、Window、ActiveX,这些进阶玩意儿,全摊在桌面上。以前我总觉着工具书跟辞典一样,翻两页就犯困。买回来?基本当镇纸。结果呢?耐着性子扒拉了几章,才咂摸出味儿来。这“翻到哪用到哪”的笨办法,里头藏的全是实打实的生存经验。别指望它教你造轮子。它只负责告诉你,轮子长啥样。搁哪儿拿。
这书最戳我的,压根不是它塞了多少API。而是它直接把“不背函数签名就写不出好代码”那套老黄历,给掀了。以前我也犯过这病。总觉得大佬的脑子自带搜索引擎,啥参数过目不忘。后来碰壁多了,才回过味来。真卡脖子的时候,从来不是想不起方法名。而是需求甩过来,你根本不知从哪儿下嘴。书里的例子,说白了就是教你怎么在乱麻里找线头。跟家里厨房的调料架一个道理。你没必要背熟八角桂皮的产地和化学式。炒菜咸了知道撒糖,汤寡了知道兑水。知道盐罐子搁哪儿,比硬啃菜谱管用多了。说实话,刚看到这儿我挺不服气的。总觉得不记牢点,心里没底。毕竟当年考试背重点的PTSD还在。可硬着头皮翻完几章,我认了。可能未必适合想走学术路线的人。但对我这种天天跟产品需求死磕的搬砖党来说,现在写代码,早不是比谁记忆力好。拼的是,怎么把需求拆碎了,再顺手从架子上,摸对工具。
讲核心对象的时候,作者没在那儿干巴巴地罗列参数表。拿Date和String来说。时间戳转时间、日期格式化、字符串截取,全是他自己踩过的坑,直接扒开揉碎了写进代码里。读到这儿,我脑子里全是我当年为了调个日期格式,跟Safari和Chrome的浏览器差异死磕到凌晨的惨状。当时还暗骂浏览器故意整人。现在才知道,纯粹是自己没摸清这对象自带的脾气。非拿字符串硬拼,当然报错。Math里的向上取整、随机数,Array里的排序去重,看着是冷冰冰的逻辑,其实全是在教咱们怎么收拾烂摊子。把一锅乱码的数据理顺,跟给出租屋断舍离没两样。算个概率分布,跟咱们平时做决定差不多。书把那些飘在天上的抽象概念,全拽回了地面。代码不再是屏幕上乱飞的字母。成了你能攥在手心里使唤的扳手。
往后翻,视线就落到了DOM操作和Ajax上。Document和Window撑起了网页的骨架。Form表单就是用户跟程序递话的窗口。作者没在这儿掉书袋,直接甩出怎么捞节点、怎么绑事件、怎么发异步请求的完整路子。书里有一句大实话,我拿红笔划了:“对象是功能的容器,查手册就是打开容器,拿走你需要的那件工具。”这话听着像废话。但真琢磨透了,你就懂了工具书的脾气。它不替你动脑子。就干一件事:你卡壳的时候,给你递钥匙。想摸Ajax的兄弟,按这个节奏走,门槛低多了。不过话说回来,现在都什么年代了。还用Ajax的兄弟,估计多半是在维护老项目吧?但不管咋说,不用死磕整本厚砖头。哪个接口报错,就翻到那一页,对着例子改两行,毛病多半就通了。
我知道这路子听着有点野。但工具书本来就不是按教科书的路子走的。好多新手一上来就抱着“系统学习”的执念,恨不得把几十个属性全塞进脑子里。结果呢?真拉个项目,照样抓瞎。韩延峰在讲Function和Object的时候,没拿原型链和继承当数学定理考人,而是直接演示怎么拿它们去包业务逻辑。这场景我太熟了。刚入行那会儿,谁不想把技能树点满,生怕在别人面前露怯。干久了才发现,能成事的,都是那种能把零碎本事拼成整活儿的人。书里的每个对象,就是一块零件。你不用提前背下整台机器的图纸。真用到的时候,知道哪块螺丝该拧哪儿就行。我觉得这招,未必能帮你写出什么高并发架构。但对付日常业务逻辑,绝对够用。这脑子转个弯,比死记几个偏门API值钱多了。
合上书,我对“学东西”这回事儿,算是看透了。工具书的作用,从来不是让你一口吃成个胖子。而是给你搭个随时能抓取的索引架。它治的不是代码报错。是那种一碰到新东西就手心冒汗的焦虑。咱们总怕自己知道得太少,可真正推着项目往前滚的,是清楚自己缺啥、去哪儿捞、怎么凑一块儿。读完这本,你未必马上能吹自己是全栈大神。但至少下次盯着空白编辑器发愣的时候,能少点慌。下次再被哪个技术难点堵死,与其干瞪眼,不如翻翻书,给自己留五分钟找找线索。毕竟,代码这玩意儿,敲多了就懂,查多了就熟。急也没用。