编码过程中自己容易犯的错误

我是一名普通不过的程序员,开发过程中不经意间常会发生一些错误,有些错误犯得常了,就记录了。

 

一、使用迭代器遍历集合时,容易误用if代替while去循环

使用迭代器遍历集合时,容易误用if代替while去循环:

1 if (iterator.hasNext()) {
2     height = iterator.next();
3     session.save(height);
4 }

应该为:

1 while (iterator.hasNext()) {
2     height = iterator.next();
3     session.save(height);
4 }

 

二、JS中避免在循环中重复声明变量

虽然在JAVA中不建议在循环中重复声明变量(尽量放在循环外),但不少时候我们会因为粗心没注意,这样做效率/空间虽然有所缺失,结果始终还是正确的。

而在JS中,重复定义的变量,变量值不会因重新定义而重新初始化为NULL,而只声明不初始化使用该变量也无警告提示,这导致稍不留神就会导致错误(因为该变量仍保留着上次循环的值)

调试代码:

 1 <script type="text/javascript">
 2     function testFn() {
 3         var tempArray = ['a', 'b', 'c'];
 4 
 5         for (var i = 0; i < tempArray.length; i++) {
 6             var temp;
 7             alert(i + '.temp -> ' + temp);
 8             temp = tempArray[i];
 9         }
10     }
11 </script>
12 
13 <body onload="testFn();" >
14 This is my HTML page. <br>
15 </body>

 

三、页面必录字段一般需校验去空格后是否为空

页面存在非空的文本框,在做校验时除了判断该文本框的值是否为空时,一般还需要“去两边空格”后再判断是否为空。

而JAVA中的String类有trim方法,JS中并无此方法,有需要的可自己写一个,或使用Ext或JQuery中的,Ext或JQuery使用正则表达式 + replace实现“去两边空格”

 

四、生成HBM文件应去掉schema声明

使用IDE生成POJOHBM映射文件时,注意把对应的schema="数据库"去掉,不然应用程序切换数据库(切换sit/uat时报错)就会报错

 

五、JS中的delete为关键字,不可使用其作方法名

我偏爱使用简短的单字作为方法名,有两次就使用delete作为方法名,程序总是错误,后来一步步地调试才发现不能使用delete作为方法名。deleteJS的关键字。

 

1 function delete() {
2 }

 

六、从Ctrl中setAttribute传值到页面,页面接收值时应判空

Action中使用request.setAttribute传值到页面(此值可能为空),页面接收时应适当判空,不然有可能会出现无值而语法报错的情况。

页面判空:

1 var queryConditions = <%=
2     request.getParameter("queryConditions") == null || request.getParameter("queryConditions").length() == 0 ? "null" : request.getParameter("queryConditions" %>;

如果不判空,而实际传值为空时,在浏览器上查看的代码:

1 var queryConditions =  ;
posted @ 2012-11-03 22:22  nick_huang  阅读(506)  评论(0编辑  收藏  举报