全世界最无聊的编程入门项目,偏偏人人都得写一遍。投票年龄检查器——if/else的教科书案例,今天被一个CS学生重新翻出来,却意外暴露了90%新手最容易踩的坑。
代码只有9行,但新手能写出9种bug
看似简单的年龄判断,藏着输入验证、类型转换、边界值三大陷阱。prompt获取的是字符串,直接比较会出意外;isNaN检查漏掉空字符串;Number()转换对"18abc"会返回NaN——这些坑,教科书不会告诉你。
最隐蔽的bug:你以为的"18岁"不是真的18岁
当用户输入" 18 "带空格,或"18.5"这样的小数,代码还能稳吗?更狠的是,有人直接输入负数,系统居然也"正常"运行。这位CS学生在教程里埋了个挑战:让代码告诉用户还要等几年才能投票——看似简单,却要求同时处理数学计算和字符串拼接。
为什么新手总在这翻车?
教学案例追求"能跑就行",真实项目要求"刀枪不入"。从课堂到实战,差的不是技术,是防御性编程的思维。这段9行代码的评论区,已经成为新手互测bug的战场。
热门跟贴