JS中妙用&&、||精简代码

在js逻辑运算中,0、""、null、false、undefined、NaN都会判为false,其他都为true

几乎所有语言中||和&&都遵循“短路”原理,如&&中第一个表达式为假就不会去处理第二个表达式,而||正好相反。

例1:用于赋值

var attr = attr || “”;这个运算经常用来判断一个变量是否已定义,如果没有定义就给他一个初始值,这在给函数的参数定义一个默认值的时候比较有用。

&&:从左往右依次判断,当当前值为true则继续,为false则返回此值(是返回未转换为布尔值时的原值)
|| : 从左往右依次判断,当当前值为false则继续,为true则返回此值(是返回未转换为布尔值时的原值)

// => aaa
var attr = true && 4 && "aaa";

// => 0
var attr = true && 0 && "aaa";

// => 100
var attr = 100 || 12;

// => e
var attr = "e" || "hahaha"

// => hahaha
var attr = "" || "hahaha"

例2:多次判断赋值

出个题:
x为>12,y=4;
x为>10,y=3;
x为>5,y=2;
x为>0,y=1;
x为<=0,y=0;

如何实现? 笨的方法就是ifelse嵌套,或者switch语句,但是写起来都很麻烦。有没有简单的方法呢?

我们来看看js的强大之处

var y= (x>12 && 4) || (x>10 && 3) || (x>5 && 2) || (x>0 && 1) || 0; 

例3:

x=12,y=4;
x=10,y=3;
x=5,y=2;
x=0,y=1;
x=0,y=0;

这个题由上一个例子可以简写成如下代码:

var y= (x==12 && 4) || (x==10 && 3) || (x==5 && 2) || (x==0 && 1) || 0; 

但是,还有更优的(但是这种写法,没查到是什么原理,懂的大佬可以帮解答下,感谢!)

var y={'5':1,'10':2,'12':3,'15':4}[x] || 0; 
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    悟名先生阅读 9,745评论 0 13
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,224评论 19 139
  • 《重阳有寄》 每欲私心留芙蓉,常疑桂雨借荷风。 透帘香醉阴阳界,勾梦月行山海空。 雁度离天虚一瞥,云消逝水索无终。...
    蓟门闲客阅读 1,265评论 0 0
  • 1-3得到《超级个体》 一个人最习惯的处理信息的方式,也就决定了你自己的职业路径和职业类型。 1.传播信息。 媒...
    Lisa的小世界阅读 1,400评论 0 0
  • 从小到到,父母和老师一直强调的一个习惯之一就是专注,今天我对专注有了更深的理解,专注才能出结果呀,否则时间浪费了,...
    2777427fc74f阅读 3,660评论 1 6

友情链接更多精彩内容