ASP脚本入门必看:5个新手常踩的语法坑
|
文章配图,仅供参考 去年中考期间,我帮一个教育站改ASP脚本,结果被五个语法坑坑得差点砸键盘——不是技术难,是那些烂教程把新手往沟里带,劣币驱逐良币太狠了。最离谱的是,有个“Response.Write 必须用括号”的坑,我原以为没人信这种鬼话,结果群里三个新手都中招,其中一个还把代码贴出来问“为什么输出乱码”,我一看,好家伙,括号里多塞了个空格,活该报错。第一个坑是“变量不用声明直接用”。那天我改完代码准备发布,编辑器突然卡死,没保存的草稿全没了——后来发现是某个新手在脚本开头写了“”,结果后面直接“x = 123”,但中间混了段没声明的“y = x + 1”。我原以为ASP会报错,结果它默默把y当空值处理,输出全是NaN,查了两小时才找到问题。更气的是,网上80%的教程都写着“ASP变量不用声明也能用”,这帮人是不是没写过正经项目? 第二个坑是“字符串拼接用+号”。有个新手照着教程写“Response.Write "Hello" + "World"”,结果页面显示“HelloWorld”没错,但他非要在中间加空格,写成“"Hello" + " " + "World"”,然后抱怨“为什么多了一个空格”。我让他把代码贴出来,发现他用了三个+号,而ASP的+号在字符串和数字混用时会优先做算术运算——比如“"1" + 2”会输出3,不是“12”。这教程连基本类型转换都不提,活该新手踩坑。 领导半夜在群里@全员改标题那晚,我正好在改第三个坑——“If语句不用End If结束”。有个脚本里写了“ 0 Then Response.Write "正数" %>”,后面跟着一堆其他代码,结果不管x是多少,都输出“正数”。新手说“我照着教程写的,教程里没写End If”,我查了下,那教程确实没写——但那是针对单行If的简写!多行代码必须用End If闭合,否则后面的代码全算在If块里。这教程为了省字数,把关键细节漏了,害得我熬到两点改代码。 第四个坑是“数组下标从0还是1开始”。我原以为这是编程基础,结果新手在群里问“为什么我的数组第二个元素取不到”。一看代码,他写了“”,然后抱怨“明明设置了arr(2),为什么输出空”。我差点笑出声——ASP的数组默认从0开始,arr(2)是第三个元素,他没设置当然为空。更绝的是,他找的教程里,有篇说“ASP数组从1开始”,有篇说“从0开始”,他自己试了半天,最后选了错的。 定时发布又失败了一次,这次是因为第五个坑——“Session变量不用先检查是否存在”。有个脚本里写了“”,结果第一次访问时报错“对象未定义”。新手说“我照着教程存的Session,为什么取不出来”,我让他检查“是否先用Session.Abandon()清空了”,他说没有——那问题出在第一次访问时Session还没创建!正确做法是先判断“If Not Session("user") Is Nothing Then”,但教程里根本没提这茬,新手直接硬取,不报错才怪。 最气的是,这些烂教程的阅读量还特别高。我写了篇《ASP新手必看的5个语法坑》发到技术论坛,结果被搬走的那篇连错别字都抄了去,还加了句“转载请注明出处”——我注明你个头!更离谱的是,那篇搬运文的收录量比我原帖高三倍,权重也高,现在搜“ASP语法坑”,前几页全是错的。这不就是劣币驱逐良币吗?好内容没人看,烂教程满天飞,新手踩坑的概率直接翻倍。 现在我都不推荐新手直接看ASP教程了,先让他们把基础语法规则过三遍,再去看那些“快速入门”的玩意儿。不然就像去年中考改脚本那次,五个坑踩完,时间全浪费在查低级错误上,真正该写的功能反而没写完。对了,如果你也在学ASP,看到教程里说“变量不用声明”“If不用End If”“数组从1开始”,直接关掉吧——那作者自己都没搞明白,别被他带沟里。 (编辑:站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |


运维新手必避的5大服务器配置坑,第3个90%人中招
Linux新手避坑指南:5年运维老手亲授安装配置
