javaScript中的小技巧
一:&& 和 || 的使用
function show(){ //|| 逻辑表达式 或者 只要有一个表达式为真就ok了 var a=false || true; //true var b=true || false; //true var c=false || false; //false var d=true || true; //true var val1=""; var val2="2"; var c= val1 || val2; //当在在进行赋值操作的时候; 会尝试将val1 和 val2 转换成boolean类型的的值; //在转换规则中; //true -true //false-false //任何非0数字-true 0和NaN-false //任何对象-true null-false var val3=undefined; var isTrue=Boolean(val3); //false var value= "" || null || undefined || 0 || false || 4 || 5; //结果为4 它找到一个true之后就停止了寻找 } //默认初始值 function tip1(){ var obj={val:'1'}; var value; //这里值得注意额一点是; alert((null==undefined));//true if(obj.val!=null){ value=obj.val; }else{ value='unknown' } //简写; //var value=obj.val || 'unknow'; } //还有在取值的时候 function tip2(){ var obj={val:'fuck'}; if(obj!=null){ var val=obj.val; } //简写: var val=obj&&obj.val; //&& 表达式中一旦遇到false就停止了寻找滴呀 }
二:节点属性的遍历
function obj(name,age){ this.name=name; this.age=age; this.fun=function (){ } } obj.prototype.proto='hello'; function show(){ Object.prototype.selfValue='obj'; //对象属性遍历的时候可以使用 for in 或 for 循环; var son=new obj('jack',18); for(var p in son){ alert(p); //这个方法会把原型中的属性遍历出来 //遍历到原型链的顶级; } //遍历自身的属性; var sun=['jack',18]; for(var n in sun){ alert(sun[n]); //它会把selfValue遍历出来的滴呀;所以建议使用for循环 } var len=sun.length; for(var i=0;i<len;i++){ alert(sun[i]); } } //ps:如何获取到对象的本地属性呢; function show1(){ Object.prototype.selfValue='obj'; //对象属性遍历的时候可以使用 for in 或 for 循环; var son=new obj('jack',18); var propertys = Object.getOwnPropertyNames(son); //propertys 是一个数组; //更多信息:http://www.cnblogs.com/ziyunfei/archive/2012/11/03/2752905.html }