Clear as the sun explanation of De Morgan’s laws
Sometimes, novice developers struggle with basic logic expressions, especially De Morgan’s laws. To help with this, I have prepared a simple explanation.
The following examples were made using a small React app that I created for this article. You can choose to download and play with it or not 😀️. The following text doesn’t require the app installation.
Step 1. Where are we from
Ok. Let start with the basics. How looks a&&b result? I think everybody knows:

Step 2. Let’s play with it
What if we negate b in this expression? Just imagine the column where b was true will changed to false, and vice versa. The matrix will be flipped horizontally, like reflection in a mirror!

And if we negate a, it will be flipped vertically:

Step 3. Try a little bit harder
What if we negate both a and b the same time? Right! The matrix will be flipped in both directions – horizontally and vertically:

Step 4. The Final
Nice, and what if we negate the entire expression after negating a and b? In that case the values in the matrix will change from true to false, and vice versa:

But wait! It looks like matrix for a||b!

Actually that’s the de Morgan’s Law
!(!a&&!b) === a||b or !a&&!b === !(a||b)
I hope this article was helpful.
Leave a Reply