JavaScript中的 && 和 || 区别

在 JavaScript 中,&& 操作符被称为逻辑与操作符。当使用 && 操作符连接两个表达式时,它会首先计算左侧的表达式:

如果左侧的表达式为 false 或者可以转换为 false 的值(如 null、undefined、0、“” 空字符串或 NaN),那么 && 操作符将返回左侧表达式的值,并且不会计算右侧的表达式。
如果左侧的表达式为 true 或者可以转换为 true 的值,那么 && 操作符将计算右侧的表达式,并返回右侧表达式的值。

const configProps = matched.props && matched.props[name]

这里的 matched.props && matched.props[name] 表达式的意思是:

首先检查 matched.props 是否存在(不是 null 或 undefined)。
如果 matched.props 存在,那么继续获取 matched.props[name] 的值。
如果 matched.props 不存在(即为 null 或 undefined),则 configProps 将被赋值为 matched.props 的值,也就是 null 或 undefined。

因此,这个表达式确保了只有当 matched.props 不为空时,configProps 才会被赋值为 matched.props[name]。这是一种常见的 JavaScript 编程模式,用于避免在访问一个可能不存在的对象属性时出现错误。

逻辑或操作符(||)

如果左侧的表达式为 true 或者可以转换为 true 的值,那么 || 操作符将返回左侧表达式的值,并且不会计算右侧的表达式。
如果左侧的表达式为 false 或者可以转换为 false 的值,那么 || 操作符将计算右侧的表达式,并返回右侧表达式的值。
这种行为被称为“短路”(short-circuiting),因为如果左侧的表达式足以确定整个表达式的结果,那么就不需要计算右侧的表达式了。

const a = true || false; // a 的值为 true,因为左侧表达式已经是 true,右侧表达式不会被计算
const b = false || 'Hello'; // b 的值为 'Hello',因为左侧表达式是 false,所以计算右侧表达式
const c = '' || 'Fallback'; // c 的值为 'Fallback',因为左侧表达式是空字符串(被视为 false),所以计算右侧表达式

逻辑或操作符常用于设置默认值或者在多个可能的值中选择第一个真值。

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值