Boo Who
In this freeCodeCamp algorithm we need to determine whether a number of different elements are considered to be boolean primitives. In short, boolean primitives return either true
or false
.
Note: It's important to point out that a boolean primitive is not a boolean object
To read up a little more on the difference, here is a helpful article
Requirements 📋
-
Check if a value is classified as a boolean primitive. Return
true
orfalse
. -
Boolean primitives are
true
andfalse
. -
booWho(true)
should returntrue
-
booWho(false)
should returntrue
-
booWho([1, 2, 3])
should returnfalse
-
booWho([].slice)
should returnfalse
-
booWho({ "a": 1 })
should returnfalse
-
booWho(1)
should returnfalse
-
booWho(NaN)
should returnfalse
-
booWho("a")
should returnfalse
-
booWho("true")
should returnfalse
-
booWho("false")
should returnfalse
Real-World Use Cases 🌎
Knowing whether a piece of data is either true or false, in some particular context, is one of the fundamentals of many software systems. For instance, you could use an algorithm like this to tell you things like isPaymentLate
or doesAccountHaveSufficientFunds
. Returning a primitve boolean from either of these gives you a clear and concise answer to an important question.
Psuedo-code
Let's walk through the steps we will need to take, without code, in order to pass the requirements listed above. After skimming through the requirements, you may have noticed that if bool
is not literally true
or false
then we must return false
.
// create a function that will accept a value as a parameter
// check whether or not that parameter is literally true or false
// if so, return true
// otherwise, return false
Solving the Algorithm
Setting up the function
Let's use the boilerplate function that's provided to us by freeCodeCamp:
function booWho(bool) {
// What is the new fad diet for ghost developers? The Boolean.
return bool;
}
booWho(null);
Creating our logic
As mentioned above in the psuedo-code section, we need to determine whether or not the value passed into our function, in this case bool
is literally true
or false
. If so, we will return true
otherwise we will return false
:
function booWho(bool) {
// What is the new fad diet for ghost developers? The Boolean.
if(bool === true || bool === false) {
return true;
} else {
return false;
}
}
booWho(null);
//booWho(true)
//booWho(false)
//booWho([1, 2, 3])
//booWho([].slice)
//booWho({ "a": 1 })
//booWho(1)
//booWho(NaN)
//booWho("a")
//booWho("true")
//booWho("false")
Test this code in your browser console
Recap 🔄
While solving this freeCodeCamp algorithm it was important that we made use of the strict equality comparison operator e.g. ===
. This way we were able to determine whether bool
was literally a true
or false
value, not just a truthy or falsy value.
Shoot me an email at tim@timwheeler.com
with any questions and if you enjoyed this, stay tuned and subscribe below! 👇