0 == false // true
0 === false // false, because they are of a different type
1 == "1" // true, automatic type conversion for value only
1 === "1" // false, because they are of a different type
null == undefined // true
null === undefined // false
'0' == false // true
'0' === false // false
var number = 100; // Here number variable assigned using =
if (number == 100)
// Here Comparision between two values using ==.
// This will not check datatype irrespective of datatype it will do comparision
console.log("Both are equal");
else
console.log("Both are not equal");
if(number === "100") //Here Comparision between two values using ===.
// This will check datatype if it is same then it will do comparision otherwise it will go to else part
console.log("Both are equal");
else
console.log("Both are not equal");
/*
Output will be :-
Both are equal
Both are equal
*/
// The main difference is that nullish coalescing(??) operator will only
// give the result as the right operand only if the left operand is either null or undefined.
// Whereas the OR(||) operator will give the result as right operand
// for all the falsy values of the left operand.
const a = 0;
// a || 10 --> Will result in 10, as || operator considers 0 as falsy value and resulting the right side operand
console.log(`a || 10 = ${a || 10}`);
// a ?? 10 --> Will result in 0, as ?? operator considers 0 as truthy value and resulting the left side operand
console.log(`a ?? 10 = ${a ?? 10}`);
/*
= operator in javascript is called as assign operator. It is used to assign
value to a variable, it is used as: */
variable = "value"
/* ^^^
here, as you can see, it is saying that variable should be assigned(=) the value
"value" */
/*
== operator in javascript is called the equals operator. It is used to compare
equals between two values, ignoring their types(number, string, boolean, etc.),
it is used as: */
(5 == "5") // true
/* ^^^^^^^^^^
here, as you can see, it is asking that 5 is equal to "5", ignoring the type, it
returns true as their value is 5 (Note that "5" is converted to 5 for checking
for == comparator) */
/*
=== operator in javascript is called the strict equals operator. It is used to
compare euals between two values, considering their types(number, string,
boolean, stc.), it is used as: */
(5 === "5") // false
/* ^^^^^^^^^^^
here, as you can see, it is asing that 5 is equal to "5", considering the type,
it returns false as their values is same, but their type is not (Note that "5"
is not converted into 5 for checking for === comparator) */
const a = 0;
// a || 10 --> Will result in 10, as || operator considers 0 as falsy value and resulting the right side operand
console.log(`a || 10 = ${a || 10}`);
// a ?? 10 --> Will result in 0, as ?? operator considers 0 as truthy value and resulting the left side operand
console.log(`a ?? 10 = ${a ?? 10}`);