逻辑或运算符||
当运算符||的两个运算数都是布尔值,它对这两个运算数执行布尔OR操作。对非布尔型的运算数使用了||,这是利用了它对非布尔型的值会将其返回的特性。该运算符的这一用法通常是选取一组备选值中的第一个定义了的并且非空的值
例: var max=max_width || preferences.max_width || 500js强大的表现力
例:
var add_level = 0;
switch(add_step){
case 5 : add_level = 1;
break;
case 10 : add_level = 2;
break;
case 12 : add_level = 3;
break;
case 15 : add_level = 4;
break;
default : add_level = 0;
break;
}可以写成:
var add_level = (add_step==5 && 1) || (add_step==10 && 2) || (add_step==12 && 3) || (add_step==15 && 4) || 0;甚至是
var add_level={‘5′:1,’10’:2,’12’:3,’15’:4}[add_step] || 0;看到很多代码if(!!attr),为什么不直接写if(attr),其实这是一种更严谨的写法。!!的作用是把一个其他类型的变量转成的bool类型。
typeof 5 ‘number’,
typeof !!5 ‘boolean’几乎所有语言中||和&&都遵循“短路”原理,如&&中第一个表达式为假就不会去处理第二个表达式,而||正好相反。
只要第一个表达式为真,就会一直处理,结果为aaa代码:var attr = attr || “”;这个运算经常用来判断一个变量是否已定义,如果没有定义就给他一个初始值,这在给函数的参数定义一个默认值的时候比较有用。
需要注意的一点就是:js中||和&&的特性帮我们精简了代码的同时,也带来了代码可读性的降低。这就需要我们自己来权衡了。
前端开发文档规范|前端能开发游戏?|浏览器 前端开发
评论前必须登录!
注册