DEV Community

Cover image for More JS Concepts
Chayti
Chayti

Posted on • Edited on

More JS Concepts

Truthy and Falsy values
A truthy value is a value which is true in any boolean context. We can say all values as truthy unless they are falsy.

Falsy values are:

  1. false
  2. 0 (zero)
  3. -0 (minus zero)
  4. 0n (BigInt zero)
  5. '', "", `` (empty string)
  6. null
  7. undefined
  8. NaN

Truthy values are:

  1. '0' (a string containing a single zero)
  2. 'false' (a string containing the text “false”)
  3. {} (an empty object)
  4. an empty array
  5. function(){} (an “empty” function)

By writing if condition or passing value to the boolean constructor function, we can check if a value is truthy or falsy.

Null Vs Undefined

  1. Null is an object where undefined is a type.
  2. Null is a declared and assigned value where undefined is just a declared variable.

var example;
alert(example); // output -> undefined

var example = null;
alert(example); // output -> null

Moreover, we can check if null & undefined are the same or not.
null === undefined // false
null == undefined // true

Double equal (==) vs triple equal (===)
Both do the comparison between variables. But the difference between them is that (==) checks for value equality by doing type coercion. That means, if we are performing (==) operation between ‘6’ (string) & 6 (number), the output is true, which is false for (===) operation, because (===) does not allow type coercion. So, we can say, (===) is superior to (==). (==) is also known as a loose, abstract or type converting equality operator.

Implicit conversion
It is also known as automatic type conversion or implicit coercion. JS converts an unexpected value type to an expected value type for performing operations.

We can find implicit conversion to number, to string, implicit boolean conversion to number, null conversion to number.

Implicit conversion to number:

let result;

result = '3' - '2';
alert(result); // 1

result = '3' - 2;
alert(result); // 1


result = '3' * 2;
alert(result); // 6

result = '3' / 2;
alert(result); // 1

When we perform -, /, * operations between a number and string or between two strings, the string is automatically converted to a number before performing the operation.

Implicit conversion to string:

let result;

result = '2' + 2;
console.log(result) // "22"

result = '2' + false;
console.log(result); // "2false"

When we add a number to a string in JS, the number is automatically converted to a string before performing the operation.

Implicit boolean conversion to number:

let result;

result = '3' - true;
alert(result); // 2

result = 3 + false;
alert(result); // 3

JS converts false as 0 and true as 1 in type conversion.

Null conversion to number:

let result;

result = 3 + null;
alert(result); // 3

JS converts null as 0 in type conversion. But for undefined, JS converts it as NaN.

Postmark Image

Speedy emails, satisfied customers

Are delayed transactional emails costing you user satisfaction? Postmark delivers your emails almost instantly, keeping your customers happy and connected.

Sign up

Top comments (0)

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay