Logical operator || in javascript, 0 stands for Boolean false? – Even if we have a good project plan and a logical concept, we will spend the majority of our time correcting errors abaout javascript and boolean. Furthermore, our application can run without obvious errors with JavaScript, we must use various ways to ensure that everything is operating properly. In general, there are two types of errors that you’ll encounter while doing something wrong in code: Syntax Errors and Logic Errors. To make bug fixing easier, every JavaScript error is captured with a full stack trace and the specific line of source code marked. To assist you in resolving the JavaScript error, look at the discuss below to fix problem about Logical operator || in javascript, 0 stands for Boolean false?.
Problem :
I happened to know the following code
Here is the code, and very simple:
var test = 0 || -1 ;
console.log(test);
then the output in the console is -1
and somehow i am really new into the javascript,
all i think of is that the 0 stands for Boolean False in JS ,and so ||
operator seems to ignore the 0 and assign the value -1 to the variable
so am i right ?
i just want a confirm
Solution :
-
||
—expr1 || expr2
(Logical OR)Returns expr1 if it can be converted to true; otherwise, returns expr2. Thus, when used with Boolean values, || returns true if either operand is true; if both are false, returns false..
-
&&
—expr1 && expr2
(Logical AND)Returns expr1 if it can be converted to false; otherwise, returns expr2. Thus, when used with Boolean values, && returns true if both operands are true; otherwise, returns false.
All values in Javascript are either “truthy” or “falsy”.
The following values are equivalent to false in conditional statements:
- false
- null
- undefined
- The empty string
""
(''
) - The number 0
- The number NaN
All other values are equivalent to true.
So… var test = 0 || -1 ;
returns -1
.
If it was var test = 0 || false || undefined || "" || 2 || -1
it would return 2
Logical operator on MDN
You can use Nullish coalescing operator (??)
The nullish coalescing operator (??) is a logical operator that
returns its right-hand side operand when its left-hand side operand is
null or undefined, and otherwise returns its left-hand side operand.
Only null and undefined will be falsey. 0 will be considered true. But take care: an empty string will be considered true too!
console.log('0 ?? 1 ->', 0 ?? 1) // expected output: 0
console.log('null ?? 1 -> ', null ?? 1) // expected output: 1
console.log('undefined ?? 1 ->', undefined ?? 1) // expected output: 1
console.log('"" ?? 1 ->', "" ?? 1) // expected output: ""