javascript 常用 开发技巧

不管何种语言,在进行运算操作之前,进行验证是非常重要的,可以避免一些简单的错误出现。

1 如进行DOM方法获取节点之前的验证。

if(document.getElementById) var myBtn = document.getElementById("btn");
//用if验证是否有这个方法,因为getElementById为document的一个指向方法的属性,如果未定义会返回undefined,undefined转换为bool类型为false;

2 在函数中有可选参数的时候,对可选参数是否存在进行验证。可以用||或者if判断。

function add(a,b,c){
        a = a || 0;        
        if(!b)    b = 0; // undefined转换为bool型为false
          c = c || 0; //c为undefined,即转化为false,所以c赋值为0
        return a+b+c;
}

3 当一个值时true和false转化的时候,可以用!反转.

this.checked = !this.checked;

4 复制一个数组,或者将一个arguments对象转换为原生数组

1 [].slice.call(arguments,0);
2 Array.prototype.slice.call(arguments,0);

当然也可以对NodeList进行操作

5 一个循环或多次调用的函数中,或||操作符

this.elements = this.elements || {};

即第一访问的时候创建成对象,以后再操作时如果已经是对象了就不用再操作了.这个也很想为参数补充默认值。

6 当进行if,else进行判断时,如果内容赋值是true或false时,可以考虑直接赋值,省去if,else

if (flag) {
				$('#CheckedAll').attr('checked',true);
			} else {
				$('#CheckedAll').attr('checked',false);
			}

//简写如下
$('#CheckedAll').attr('checked',flag);

7 split方法,方便url解析

1 var url = "http://witmax.cn/index.php?key0=0&key1=1&key2=2";
2 // http://witmax.cn/index.php?想要获取前面这一个段
3 var path = str.substring(0,str.indexOf('?')+1); 4 var querys = str.substring(str.indexOf('?')+1); //后面这一段 5 6 var arr = url.split('?'); 7 // 直接这一句将其分开,还可以检测arr的长度看是否有?号,没有问号时返回原句子到数组0中,如果?后没有内容,还是返回整个内容

 

 

8 slice方法可快捷复制一个数组

var a = [1,2,3,4];
var clone = a.slice(0); //复制数组
posted @ 2012-06-27 16:07  zzu-han  阅读(204)  评论(0编辑  收藏  举报