Short Circuiting

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 false.

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 isLoaded is 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 (isLoaded) 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