菜鸟学习的过程记录 ...._....
- 逻辑运算符&&和|| ----(短路运算)
alert(a&&b)
: 一般字面上理解a和b都为true的时候为true,否则返回false.
alert(a||b)
: 字面理解a和b都为false的时候返回false,否则返回true.
下面的为具体运算结果
1||2 返回1
0||2 返回2
3||0 返回3
undefined||3 返回3
3||undefined 返回3
从以上可以看出,a||b
a存在的时候,执行a; a不存在的时候,才会执行b
1&&2 返回2
0&&2 返回0
3&&0 返回0
undefined&&3 返回undefined
3&&undefined 返回undefined
从以上可以看出,a&&b
a存在的时候,才会执行后面的b, a不存在的时候,只执行a,不执行后面的b
--故在写js中,以下情况可以应用:
var selectId = id || {};
if(APP && APP.name) APP存在的时候才去执行APP.name
if(menu.title || default.title) menu.title存在的时候取menu.title的值, 否则取默认的titlle的值
更强大的应用 (转自其他博客):
var add_level = 0;
if(add_step == 5){
add_level = 1;
}
else if(add_step == 10){
add_level = 2;
}
else if(add_step == 12){
add_level = 3;
}
else if(add_step == 15){
add_level = 4;
}
else {
add_level = 0;
}
等同于
var add_level = (add_step==5 && 1) || (add_step==10 && 2) || (add_step==12 && 3) || (add_step==15 && 4) || 0;
- 位运算符&和|
转化成二进制进行异或计算
----- ‘ | ’ :两个位只要有一个为1,那么结果都为1。否则就为0;
----- ‘ & ’:两个数值的个位分别相与,同时为1才得1,只要一个为0就为0。