咱们新手刚啃编程书,十有八九手指头一划,直奔目录找语法。但安迪·哈里斯这本《JavaScript与AJAX入门》,偏不跟你玩这套。没一上来就甩五十页语法规则表。反而像搬个马扎,挨着你坐下。慢条斯理地跟你掰扯:怎么挑个不抽风的测试浏览器,怎么把编辑器配顺溜。连字符串拼接漏空格这种破事儿,都给你掰开了揉碎了讲。刚摸到网页开发门槛,或者以前被几百兆的框架吓退过的人,翻它,正好。不教你造火箭。就老老实实带你把零散零件,拧成一辆能上路的车。别嫌它基础。地基打歪了,后面盖楼全得塌。

书里翻来覆去就敲一个钉子:AJAX请求,必须是异步的。乍一听全是黑话。但你把它拽到生活里一琢磨,嘿,还真就那回事。刷网页,点一下链接,非得干等整个页面转圈刷新,那憋屈劲儿谁受得了?异步说白了,就是找个懂分寸的跑腿。你一声令下,他拿小本本记着,转头去后台吭哧吭哧干活。你照旧在页面上溜达。等数据跑回来,再悄没声息把旧内容顶替上。不过话说回来,异步真不是万能药。早期回调地狱能把人逼疯。后来Promise和async/await算是把坑填了。但书里讲得,还是偏基础。我觉得吧,卡脖子的地方根本不是技术多高深。是咱们脑子早就被“同步”思维腌入味了。总觉得一件事没完,下一件事绝对插不上腿。代码里搞异步,其实就是逼着你学会同时掰开几根手指头干活。把干等的空档期省下来,去忙活真正要紧的局。

翻到讲怎么收拾烂摊子那章,我手指头在屏幕上停了停。作者拿函数、数组和对象当手术刀,把程序逻辑层层剥开。听着像数学课。骨子里全是收纳的讲究。好多人刚写代码,图个能跑就行。结果越堆越乱。回头一看,连自己都认不出哪行是自己敲的。这书把乱麻似的逻辑拆成小块。就跟收拾塞爆的抽屉一个理儿。函数是隔板。数组是方格子。对象是贴了标签的盒子。把散兵游勇似的逻辑全塞进去,下次找代码才不瞎忙活。说句掏心窝子的话,我起初压根不买账。觉着写个几十行的脚本,至于这么折腾吗?可真上手搭个稍微复杂点的交互页面,才咂摸过味儿来。没这些底子,后期修bug简直跟蒙着眼进迷宫没两样。书里顺手点拨了两招调试的野路子。让你拿着免费工具一步步顺藤摸瓜。这可比闭着眼睛瞎试强出不止一个段位。当然,也不是说每行代码都得按这套标准来。小项目里硬套反而显得矫情。但逻辑一多,这套规矩就是救命稻草。

书的后半截,把jQuery用户界面库拎出来遛了遛。教你怎么给网页安上滑块、标签页和自定义弹窗。这儿可没有冷冰冰的代码往屏幕上砸。反倒透着一股子设计师的巧思。作者特意把话挑明:工具就是拿来让页面喘口气、活过来的。网页哪能是张死气沉沉的海报?它得能接住你的点击。得跟着鼠标溜达。得在你正需要的时候,冷不丁蹦出个提示框。这种对交互的敏感度,往往比死磕多少语法管用得多。技术说到底就是给人用的。当你拿现成的库咔咔几下,搭出个丝滑的交互效果,那成就感,实实在在砸在手心里。不过我得泼盆冷水。现在原生JS和Vue、React早就把jQuery按在地上摩擦了。书里用这库,主要是为了降低上手门槛。但你别嫌它老。底层那套DOM操作的逻辑没变。摸清了它,换任何框架都不慌。

把书一合。脑子里就剩一个念头。编程压根不是伺候机器的黑话。它伺候的是人的习惯。逼着你把脑子里糊成一团的想法,掰碎了,揉成能看的东西。把乱糟糟的逻辑,捋出个一二三。安迪·哈里斯没用那些云里雾里的理论糊弄人。就是拿最实在的步骤。带你一步步,把点子变成能在浏览器里跑起来的页面。咱们总迷信多学几个高级框架就能原地飞升。真那么回事吗?却忘了异步思维、函数封装和页面控制这些老底子。才是托住所有花里胡哨应用的脊梁骨。下次再对着空白编辑器发愁,先别急着敲键盘。问问自己。这串代码到底想替我干点啥?是帮用户省掉一次干等的刷新?还是让信息跑得更顺溜?代码又不会喘气。但页面上每一次丝滑的过渡。全是你悄悄塞给用户的回话。