第一次见到 JavaScript 是在大学宿舍的老旧台式机前。屏幕上跳动的光标像只不安分的萤火虫,而我对着《JavaScript 高级程序设计》扉页上那行 “写给未来的前端工程师” 发呆。那是 2015 年的秋天,窗外的梧桐叶正一片片砸在窗台上,和我敲下的console.log(‘Hello World’)一样,带着笨拙的仪式感。
同寝室的阿哲正抱着键盘打《英雄联盟》,耳机里传来激烈的厮杀声。我偷偷把他拽到屏幕前,指着那个弹出的黑色对话框:”你看,这行字是我让电脑说的。” 他皱着眉扫了眼代码编辑器,突然伸手按了 F5 刷新页面 —— 对话框消失了。”就这?” 他的语气里藏着毫不掩饰的嘲讽,转身又投入了游戏战局。
那天深夜,我抱着笔记本躲在被窝里,把那行代码改写成alert(‘阿哲是猪’)。第二天趁他去洗漱,偷偷在他电脑里植入了这段脚本。当他登录校园网查成绩时,那个弹窗像颗炸雷在屏幕中央炸开,引得全寝室笑到捶桌。阿哲红着脸删掉代码时,我突然懂了:JavaScript 最迷人的地方,在于它能把抽象的逻辑变成看得见的恶作剧。
真正让我对这门语言产生敬畏,是在大三那年的实习。公司接了个电商网站的紧急项目,要求在三天内实现商品详情页的动态加载功能。带我的王哥甩过来一个 U 盘:”里面有前辈写的轮播图插件,你研究下怎么集成进去。”
打开文件夹时我愣住了 —— 那个 100 多 KB 的 JS 文件里,密密麻麻全是压缩过的代码,变量名都是 a、b、c 之类的单字母。我对着屏幕啃了整整一夜,天亮时终于在注释里找到一行 “使用闭包避免全局污染”。那天清晨的阳光透过百叶窗照在代码上,那些扭曲的字符突然变得温顺起来,像一群排列整齐的士兵。
项目上线那天,我蹲在公司茶水间刷自己写的页面。当手指在手机屏幕上滑动,商品图片平滑切换的瞬间,身后传来王哥的声音:”知道吗?当年我第一次用原生 JS 写拖拽效果,激动得在办公室待到半夜。” 他手里的咖啡冒着热气,”这门语言就像水,能变成任何形状,但最厉害的是,它永远保持流动。”
2018 年的夏天,我在上海参加前端技术沙龙。台上的讲师正在演示 React Hooks,台下有人举着 “原生 JS 万岁” 的牌子。中场休息时,一个穿格子衫的男生凑过来:”你觉得框架会取代原生 JS 吗?” 我想起自己当年用 jQuery 写 AJAX 请求,后来又换成 fetch API 的经历,突然笑了:”就像钢笔不会取代文字,框架只是让表达更流畅而已。”
那天傍晚,我们十几个人挤在地铁站附近的烧烤摊,争论着 TypeScript 是否会杀死 JavaScript。穿拖鞋的大叔举着烤腰子说:”你们这些搞代码的,就像当年争论 VB 和 Delphi 哪个更好。” 他的烤串摊用的收款系统,恰好是我前公司开发的 —— 那个用 jQuery 写的页面,至今还在每天处理上百笔交易。
去年疫情期间,我被困在出租屋里远程办公。客户突然要求给官网加个疫情数据看板,而且必须当天上线。我翻出三年前写的天气插件,把 API 地址换成疫情数据接口,再用 CSS Grid 重排布局。当暮色降临时,那个跳动着实时数据的页面已经上线,而整个过程只改了 78 行代码。
视频会议里,客户老板激动地说:”没想到这么快!” 我看着屏幕里自己映出的影子,突然想起刚入行时王哥说的话。那些曾经让我头疼的闭包、原型链、异步编程,如今都变成了得心应手的工具。就像老木匠手里的刨子,用得越久,越能感受到木头的纹理。
上周整理旧电脑,发现一个加密的压缩包。解开密码(是当年的生日),里面是大学时写的贪吃蛇游戏。打开 HTML 文件,那个用 canvas 绘制的绿色小蛇还在笨拙地扭动,吃到食物时会发出用 Audio 对象播放的 “叮” 声。我试着改了行代码,让蛇的移动速度随分数递增,突然意识到:原来那些深夜里敲下的字符,早就变成了有生命的东西。
现在的我依然会在深夜写代码,只是不再需要咖啡提神。当城市陷入沉睡,键盘敲击声反而变得格外清晰。有时写到凌晨,会突然对着屏幕发笑 —— 那些括号和分号组成的咒语,竟然真的能召唤出一个个会呼吸的页面。
楼下的早餐摊开始支起帐篷时,我会保存代码起身。推开窗户,晨雾里飘来油条的香气,远处的写字楼亮着零星的灯光。我知道,在这座城市的某个角落,一定也有人和我一样,正在用 JavaScript 编织着属于自己的世界。而这门诞生于 1995 年的语言,还在以它特有的方式,悄悄改变着我们与世界交互的模样。
免责声明:文章内容来自互联网,本站仅提供信息存储空间服务,真实性请自行鉴别,本站不承担任何责任,如有侵权等情况,请与本站联系删除。