Truthy and Falsy values and logical operators in JavaScript
January 6, 2020 • ☕️ 2 min read
Translated into: Türkçe
Essentially values either can be truthy or falsy rely on how they are evaluated in a Boolean environment. An algebraic notation system used to represent logical propositions through binary numbers 0 (false) and 1 (true).
Falsy Values
There are 6 falsy values in JavaScript, which means that when a boolean is expected in JavaScript and it is given of whichever the values which will be stated below, it will always evaluate as falsy. To be more clear, those 6 falsy values that are coerced to false, are used in if block;
if (false) {/*entered?*/}
if (null) {/*entered?*/}
if (undefined) {/*entered?*/}
if (0) {/*entered?*/}
if (0n) {/*entered?*/}
if (NaN) {/*entered?*/}
if ('') {/*entered?*/}
if ("") {/*entered?*/}
if (``) {/*entered?*/}
0
,0n
are counted one and ”, "",are counted one.
The logical AND (&&) operator
In a logical statement && means, if the first object is falsy, the statement will return that object.
let osman = false && "human";
// ↪ false
Other values can be considered truthy.
Truthy Values
On the other hand, several truthy values can be specified as an example to truthy values in JavaScript. To be more clear, those truthy values that are coerced to true, are executed in if block;
if (true) {/*entered?*/}
if ({}) {/*entered?*/}
if ([]) {/*entered?*/}
if (42) {/*entered?*/}
if ("0") {/*entered?*/}
if ("false") {/*entered?*/}
if (new Date()) {/*entered?*/}
if (-42) {/*entered?*/}
if (12n) {/*entered?*/}
if (3.14) {/*entered?*/}
if (-3.14) {/*entered?*/}
if (Infinity) {/*entered?*/}
if (-Infinity) {/*entered?*/}
The logical OR (||) operator
In a logical statement || means, if the first object is truthy, the statement will return that object, the statement will return the second object otherwise.
let osman = false && "human";
// ↪ "human"
let mahmut = true && "human";
// ↪ true
A value’s being true or false can be seen by passing it into the Boolean function as below.
Boolean("") // false
Boolean([]) // true
(NOT NOT) !! operator
Using !
operator once will reverse the boolean value (i.e. true to false, falsa to true). If using ! operator once more will convert it back to a boolean.
Boolean(!"") // true
Boolean(!!"") // false
Boolean(![]) // false
Boolean(!![]) // true
Example; Shortcut for checking a value in if condition, need to log only true or false.
const sulhadin = "human";
console.log(sulhadin); // ↪ "human"
console.log(!sulhadin); // ↪ false
console.log(!!sulhadin); // ↪ true
In Closing
Thanks for reading.