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

问题描述:

读highstock源代码,但混淆以下代码:什么是&&和||在下面的代码的意思

textLineHeight = textStyles && textStyles.lineHeight, 

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

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

由于

+0

JavaScript和(&&)运营商或符(||) http://www.w3schools.com/js/js_operators.asp – brk

+0

@ user2181397,他要求 “在下面的代码” – slick

+0

@slick,运营商改变关于代码,这是你的意思? – SilentMonk

textLineHeight = textStyles && textStyles.lineHeight; 

装置设定textLineHeighttextStyles.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中的默认运算符,因为它允许指定一个值,以便在左边的表达式是虚假的情况下使用。