[ 摘 ] 对 js 运算符 “||” 和 “&&” 的总结
from : http://jianguang-qq.iteye.com/blog/462449
部分内容节选整理如下:
需求:
成长速度为 >12 显示 4 个箭头 ;
成长速度为 >10 显示 3 个箭头 ;
成长速度为 >5 显示 2 个箭头 ;
成长速度为 >0 显示 1 个箭头 ;
成长速度为 <=0 显示 0 个箭头。
var add_level = ( add_step > 12 && 4 ) || ( add_step > 10 && 3 ) || ( add_step > 5 && 2 ) || ( add_step > 0 && 1 ) || 0 ;
代码:var attr = attr || “”;这个运算经常用来判断一个变量是否已定义,如果没有定义就给他一个初始值,这在给函数的参数定义一个默认值的时候比较有用。因为js不像php可以直接在型参数上定义func($attr=5)。再次提醒你记住上面的原则:如果实参需要是0、""、null、false、undefined、NaN的时候也会当false来处理。
if ( a >= 5 ){ alert("你好") ; }
等同于:
a >= 5 && alert("你好");
var Yahoo = Yahoo || {};
这里顺便提下:经常有人问我
// 看到很多代码 if(!!attr); // 为什么不直接写 if(attr);
其实这是一种更严谨的写法:
// 请测试 typeof 5 ; // 和 typeof !!5 ; // 的区别。
!! 的作用是把一个其他类型的变量转成的bool类型。