&& 和 || 是做什么的意思是在下面的代码中

what do && and || mean in the following code

正在阅读 highstock 源代码,但混淆了以下代码:

textLineHeight = textStyles && textStyles.lineHeight,

wrapper.height = (height || bBox.height || 0) + 2 * padding;

cHeight = (old && chart.oldChartHeight) || chart.chartHeight;

谢谢

textLineHeight = textStyles && textStyles.lineHeight;

表示如果 textStyles 是真实的并且它有一个 属性 lineHeight 也是真实的,则将 textLineHeight 设置为 textStyles.lineHeight

&& 通常被称为 JavaScript 中的守卫运算符,因为它的短路求值确保 textStyles.lineHeight 不会被求值,除非 textStyles 被定义。如果确实未定义,这可以避免错误。

wrapper.height = (height || bBox.height || 0) + 2 * padding;

在这里,|| 表示如果为真则使用 height 否则如果为真则使用 bBox.height,如果两者都不为真则最后回退到 0|| 通常被称为 JavaScript 中的默认运算符,因为它允许指定一个值,以防其左侧的表达式为假。