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); //复制数组