JavaScript——逻辑与、或的应用

博客介绍了逻辑与和逻辑或的规则及开发应用。逻辑与是短路操作,规则如第一个操作数是对象则返回第二个等;开发中可灵活用于函数参数设置。逻辑或规则如第一个操作数是对象则返回第一个等,开发中可用于vue插值表达式简化代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

逻辑与

遵循的规则
  • 如果第一个操作数是对象,则返回第二个操作数
  • 如果第二个操作数是对象,则只有在第一个操作数的求值结果为true的情况下才会返回该对象
  • 如果两个操作数都是对象,则返回第二个操作数
  • 如果第一个操作数是null,则返回NaN
  • 如果第一个操作数undefined,则返回undefined

注: 逻辑与操作属于短路操作,即如果第一个操作数能够决定结果,那么就不会再对第二个操作数求值。例如当第一个操作数是false,无论第二个操作数是上面值,结果都不再可能是true

开发中的应用

情景描述:在多数时候定义一个函数以及相应的参数的时候,但是这个参数有时候会用到,有时又不需要,大多时候是通过设置默认值,防止不传参数的时候报错,这样就会使用了默认值,有些时候甚至连默认值都不需要,那么这个时候就需要灵活使用与操作,例如

    function doSomething(fn) {
 		fn();
 		console.log("1111");
	}
	//定义一个函数
	function sayHi() {
		alert("sayHi");
	}
	//传入sayHi()参数调用doSomething方法不会报错,会正常执行
	doSomething(sayHi());
	//但是如果调用doSomething不传入参数,程序就会报错fn is not a function
	doSomething();

解决方法

    function doSomething(fn) {
 		fn && fn();  //由于第一个操作符是undefined  则返回undefined  程序并不会报错
 		console.log("1111");
	}
    //此时无论是传入方法参数或者不传,程序都会正常执行
    //传入sayHi()参数调用doSomething方法不会报错,会正常执行
	doSomething(sayHi());  //弹出sayHi  输出1111
	//但是如果调用doSomething不传入参数,程序就会报错fn is not a function
	doSomething(); //输出1111

逻辑或

遵循的规则
  • 如果第一个操作数是对象,则返回第一个操作数
  • 如果第一个操作数的求值结果为false,则返回第二个操作数
  • 如果两个操作数都是对象,则返回第一个操作数
  • 如果两个操作数都是null,则返回null
  • 如果两个操作数都是NaN,则返回NaN
  • 如果两个操作数都是undefined,则返回undefined
开发中的应用

情景描述:应用vue的插值表达式的时候,常常会出现,当一个参数存在我显示的内容是该参数,与参数不存在显示的不同,这种情景一顺手就敲出一个三元运算符…实则不是,如果是这种情况,只要通过逻辑或就可实现更简洁的代码,例如

{{user.name || ‘登录/注册’}}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值