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
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
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.
The following values are equivalent to false in conditional statements:
- The empty string
- The number 0
- The number NaN
All other values are equivalent to true.
var test = 0 || -1 ; returns
If it was
var test = 0 || false || undefined || "" || 2 || -1 it would return
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: ""