[ 摘 ] 对 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类型。

原文地址:https://www.cnblogs.com/livon/p/3358574.html