What Is Short Circuiting Circuiting?
Short circuiting is a technique that many programming languages use when evaluating
boolean logic (
||) to save computing power by skipping unnecessary parts of
boolean logic. This is a pretty vague definition, so in order to explain exactly what short circuiting is I want to give some examples. Imagine you have some boolean logic in your code that looks like this
true || false. We know that by looking at this the result will be
true, but a computer needs to take the execution of this statement piece by piece. This means the computer will look at the first part of the statement which is
true then the second part which is
|| and then finally the last section which is
false. The first part is easy for the computer since it just sees that it is
true and it can move onto the second part which is
||. This is where the computer does something smart and actually short circuits out of the boolean logic. The computer knows that
true || anything is always
true, and thus it will skip checking the third part of our statement since it knows that no matter what the third part is the result is
true. This works the same way with
&& as well. For example a computer knows that
false && anything is always
false so in a statement like this
false && true the computer will skip the third part since it already knows the answer is
Why Use Short Circuiting?
Now from these examples you are probably thinking this is pretty pointless, but short circuiting allows you to do some really nice conditional logic. If you have ever worked with React you have probably seen code like this
isLoaded && renderContent(). If we break this code down further we can see that if
false then the computer will skip the last part and never call
renderContent() since it knows that
false && anything is
false. Essentially this code is exactly the same as if
renderContent(), but it is more concise.
React is not the only use case for short circuiting, though. Another, even more common, use case is when you want to assign a default value to a variable. This can be done by doing this
const variable = variableValue || 'default'. This code will assign variable to
variableValue if it exists or if
variableValue does not exist it will set it to
'default'. This again works via short circuiting since the computer will look at the first section
variableValue and if it is something that evaluates to
true, such as an object, then the computer will skip the
'default' section of the boolean logic. If
variableValue evaluates to
false, though, the computer cannot skip anything and it will thus set the variable to
'default'. This is essentially the same as the following code.
let variable = 'default'
if (variableValue) variable = variableValue