什么是&&和||在下面的代码的意思
问题描述:
读highstock源代码,但混淆以下代码:什么是&&和||在下面的代码的意思
textLineHeight = textStyles && textStyles.lineHeight,
wrapper.height = (height || bBox.height || 0) + 2 * padding;
cHeight = (old && chart.oldChartHeight) || chart.chartHeight;
由于
答
textLineHeight = textStyles && textStyles.lineHeight;
装置设定textLineHeight
到textStyles.lineHeight
如果textStyles
是truthy,它有一个属性lineHeight
这是也truthy。
&&
通常被称为JavaScript中的警卫操作符,因为其短路评估确保textStyles.lineHeight
不会被评估,除非定义了textStyles
。这可以避免一个错误,如果它确实可能是未定义的。
wrapper.height = (height || bBox.height || 0) + 2 * padding;
这里,||
手段使用height
如果是truthy以其它方式使用bBox.height
如果这是truthy,最后退回到0
如果也不是truthy。 ||
通常被称为JavaScript中的默认运算符,因为它允许指定一个值,以便在左边的表达式是虚假的情况下使用。
JavaScript和(&&)运营商或符(||) http://www.w3schools.com/js/js_operators.asp – brk
@ user2181397,他要求 “在下面的代码” – slick
@slick,运营商改变关于代码,这是你的意思? – SilentMonk