当前位置:首页 > 综合

web程序设计考试题

web程序设计考试题

昨天下午,序设机房里的计考空调坏了,三十七个人挤在四十度的试题空气里,盯着屏幕上那道“用原生JavaScript实现一个带本地存储的序设待办事项应用”的题目。前排有个女生把键盘敲得噼里啪啦,计考像在跟谁吵架。试题监考老师坐在讲台后面,序设低头翻一本《网络协议》,计考偶尔抬眼扫一圈。试题

这道题不算难,序设但足够刁。计考它不考你背了多少框架API,试题也不问你Vue和React的序设虚拟DOM谁更快——它偏要你在一个半小时里,从零开始写一个能增删改查、计考能刷新后不丢数据的试题完整小应用。我旁边坐的男生,平时用Element UI写后台管理系统溜得飞起,此刻却卡在了localStorage的键值存取上。他挠了挠头,把`JSON.parse`写成了`JSON.stringify`,页面直接白屏。我瞥了一眼,没说话,因为我自己也刚把`filter`方法里回调函数的参数顺序弄反了。

这类考试题最狡猾的地方在于,它把“会用”和“会写”之间的那条裂缝撕开了给你看。你用框架拖个组件,三分钟就能搞定一个表格,可一旦剥掉那层壳,让你裸写一个`XMLHttpRequest`或者手动操作DOM节点,很多人就露馅了。这不是学生的错,是教学节奏和产业需求错位的结果——学校教的是原理,公司要的是效率,考试题夹在中间,只好用这种笨办法来试探你到底懂不懂底层逻辑。

我花了二十分钟写完了主体功能,剩下时间用来检查边界条件:如果用户输入空字符串点提交怎么办?如果localStorage里存的数据被手动改坏了怎么办?这些细节平时写业务代码根本不会在意,因为框架已经帮你做了防御。但考试题不惯着你,它就静静躺在那里,等你踩坑。我盯着题目最后一行小字——“不得使用任何第三方库”,忽然觉得这行字比整道题都重。

交卷前五分钟,我听到后排有人叹气,那种憋了很久的、带着湿气的叹气。回头看了一眼,是个戴眼镜的男生,屏幕上是满页的红色报错。他大概在某个循环里死磕了太久。我猜他回去之后会把这道题重新写一遍,写到能闭着眼敲出来为止——因为这种题考完就忘不了,它像一根刺,扎在你自以为熟练的软肉上。

走出机房,走廊里有人在对答案,声音很兴奋:“你用的`addEventListener`还是`onclick`?”“我用的事件委托。”“哦,那你还写了个`removeChild`?”我听着这些零碎的词汇,忽然觉得,其实考试题考的不是代码,是你在没人帮忙的时候,能不能自己把问题拆小,然后一块一块拼回去。这个能力,跟用哪个框架无关,跟背了多少面试题也无关。

那道待办事项应用,我得了93分。扣的7分是因为没处理`beforeunload`事件——刷新前如果没手动保存,数据会丢。我确实没想起来,但这道题会让我记很久。下次再写,我会加上那个监听器。大概这就是考试题的意义吧,它不给你满分,只给你一个“下次记得”的钩子。

分享到: