一点ASP问题、差错和个人心得

2016-01-29 18:48 1 1 收藏

一点ASP问题、差错和个人心得,一点ASP问题、差错和个人心得

【 tulaoshi.com - ASP 】

 

1.省略dim,方便但也是隐患!
申请变量后再使用是标准方法:
dim a
a = "1"
事实上,你不写dim也可以:
a = "1"
系统并不认为出错,它会自动判断a是不是一个已经存在的变量,存在就继续执行,如果不存在就自动帮你申请!看似系统好聪明好智能好体贴,但是隐患出来了!系统知道我的意思吗?系统很可能自作聪明,好心帮倒忙!问题一:如果我前面已经申请了一个变量,比如administrator,后面我要给这个变量赋值,我不幸写错了个字母或少写了个字母,比如administratar = “me",系统终于等来了个“帮”我的机会,并“自告奋勇”的为我申明变量,“体贴周到”难以言表!是的,程序也许能运行,但逻辑上已经乱成一片了,因为系统没有报错(或者报了个其他错来误导你),你根本不能很快定位到问题处,如果程序很大,你花了很多时间找到根源后,你感想如何?你肯定很想骂系统“自做多情”,如果当初系统报一个administratar变量名不存在,我很快就能知道自己拼写错了,而把问题迅速纠正,而不必“沉醉”在系统的“自做多情”当中!省略dim后带来的另一个隐患后面会讲!

2.函数内申明的变量不会干扰外部的变量!
比如:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%
<%
dim a
a = "1"
function getstr()
dim a
a = "2"
end function

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/asp/)

response.Write a & "<br"
getstr()
response.Write a & "<br"
%

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/asp/)

结果显示函数内部申明的变量是不会干扰外面的,它的作用域就是函数内部,其实学过其他语言的都应该知道!但要先声明,如果把函数内的dim a去掉的话,那就把那个a认为是外部的a,结果就变了!文件里面申请的变量,他的作用域就是这个文件。

3.让人又爱又恨的include!
include可以使ASP程序更加结构清晰,而且一些常用的函数可以被其他文件所共享!他带来的好处同时你必须注意缺点!
现在回到第一点谈到的省略dim,前面讲的是我赋值却被系统“好心”的变成了申明变量。现在讲的正好相反,我想声明变量,系统却赋值,因为省略dim也能申明变量,对于能省则省喜欢精简的程序员来说,常常挡不住这个诱惑(我有时候也喜欢这么申请,嘿嘿)但是,你能保证你申请的变量名前面的程序里没有?如果前面有这个变量名,那你不是申请成了赋值了?同一个文件中也许很少会犯这个错误,但是别忘了include,他是包含进来文件,如果包含进来的文件中有你申请的变量,那你就完了,就算能运行,逻辑上已经成问题了。如果你不偷懒,用dim申请,报错的时候,你幸运的得知这个变量名已经存在了!很快就能改正!

现在来讨论更复杂的情况,如果你include两个文件进来,在这两个文件中都有同一个变量名,如果两个都用dim申请的话,还好,就只是报错,说变量名已经存在了,很快就能知道问题了。现在你可以理解我为什么讲第二点的作用域了,由于作用域,不同文件同名变量一般情况下不会“打架”。但是,如果被另一个文件同时include进来,问题就麻烦了,所以如果你写的asp文件是准备被包含的,请防止同名的情况发生。再回到原来的讨论,如果两个include文件中申请同名变量都dim还好,但是后包含文件是用省略dim申请,问题就来了,后面的省略dim申请成赋值了,要命的是,这是在两个include文件中,很隐蔽,查找问题更困难!

综上所述,大家可以写一些简单的例子来体会体会其中的问题,最后建议:
1.变量请先用dim申请再使用!尤其多人开发的复杂程序!
2.给变量赋值请注意变量拼写!
3.仔细了解include的文件。

***现在讲讲查错:

事实上,寻找问题比代码编写更重要!我个人经验,问题分三类:
1.报错类,编译系统在编译系统过程中遇到的问题,它会给出错误信息,这是程序员最喜欢的问题,呵呵,不是变态,而是这种问题查起来最简单!

2.逻辑类,比较讨厌的问题,程序编译成功,也能运行,不过显示的结果不是你逻辑中期望的结果。oh, my god!怎么办,没有提示信息,只能凭经验和感觉去分析错误的结果,然后查源代码,顺利的话,几分钟解决,难缠的一天下来也没结果!

3.性能类,很可怕的问题,程序编译成功,也能正常运行,显示也正常!但是,偶尔隔段时间给你来个错误,你根本不知道错误是在什么情况下触发的,或者程序性能不如同类程序的高,运行慢,这些问题,有些一个星期一个月能解决了,有的几乎就是顽疾,治不好。我就曾经被这种问题折腾的死去活来!

所以,要想学好编程,就要尝试自己解决问题,尤其象ASP程序,逻辑方面出问题的情况不大,出的问题基本都是报错类的,有出错信息,出错位置,自己分析分析应该不难解决。我看有些人愿意在论坛上花个三天等别人告诉自己问题,为什么自己不去解决呢?自己查到一个问题,就长了一分经验,这才是程序员的财富!

***一点程序员的心得:
不要以为能写几行代码,做过几个小程序就以为是程序员了,等你去软件公司干上几年你就明白什么叫程序员了,编写代码不算什么,代码查错,优化代码,编写软

来源:https://www.tulaoshi.com/n/20160129/1507358.html

延伸阅读
标签: 育儿知识
夏季,孩子容易发生腹泻,特别是2岁以下的婴幼儿更容易发生,而腹泻轻则导致婴幼儿营养吸收不良,重则会导致婴幼儿死亡,所以应高度重视防腹泻,让宝宝度过一个平安的夏季。 腹泻从病因上可分为感染性和非感染性腹泻两大类,前者可由细菌或病毒等感染引起,后者主要是由饮食因素和气候因素所致。在感染因素引起的腹泻中,以病毒感染最为多见。...
《僵尸困境》的一点小心得 先说一下这游戏英文版有BUG最后一关发电机那里过不去的,下载英文版的朋友就不要挣扎了。(我自己下的也是英文版55555~~~) 再说一下人物和装备: 主角、优点:走路很快、可以使用各种近战武器和手雷。       缺点:血少、枪械只能用手枪、使用近战武器攻击力也不高。 轮椅博士、优点:...
《暗黑之门伦敦》个人心得 会员:asmgsz<原创 玩暗黑之门了一个月,没什么时间玩。的个人心得和大家分享。 我觉的普通级的残疾人,和老塔掉不出什么很好的装备,除非你 很缺装备,普通级在利物普站之前不要升级装备,和刷3000,之前的 装备很容易淘汰大把钱砸在上面不值。如你很缺装备建议你刷几次老塔。 有钱。装备级别差不多的活。先升衣...
《虐杀原形》个人心得评测 刚下载完游戏进去后先被他那贴身的系统限制所感动,因为本人使用8600GTE所以暂时只能用1024x768(后经设置能用1280x800),这个限制有好有坏吧?虽然本人使用的是22吋显示器,但因为这样我就能全HIGH+2x仍能保持25左右FPS,这算是件欢乐的事吧LOL   画面   明显地看到设计者刻意把材质效果着重于人物方面...
《行会2》的个人心得 会员:xiaklmy 原创   行会2这款游戏的精华所在   家族建设和升官发财,以及发展城市。 职业,建筑等等是为了这些目标服务 可以说这款游戏结合了 模拟和养成类,经营类等游戏风格,自由度非常高在,是非常难得的佳作 在游戏中,我感觉两样东西是最重要的:人,还有钱。 人物篇: 因为可以控制3个人,...

经验教程

536

收藏

66
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部