What's up guys, how are you doing? 😁
This gives us the ability to check if a value is nullish instead of simply checking if it's falsey. A falsey value can be: 0, ' ', null, undefined, false, NaN. A nullish value can only be 'null' and 'undefined'.
In practice, this can be really handy, because there a lot of times when we want to cross these values out but still allow other values like '0' or empty string. On the code snippet we first see a lot of examples where we are doing a console.log of a falsey value if it's not nullish, otherwise we'll log 'value is nullish'.
const val1 = '' const val2 = false const val3 = 0 const val4 = null const val5 = undefined // We'll log the value if is not nullish only console.log(val1 ?? 'val1 is nullish') // -> console.log(val2 ?? 'val2 is nullish') // -> false console.log(val3 ?? 'val3 is nullish') // -> 0 console.log(val4 ?? 'val4 is nullish') // -> val4 is nullish console.log(val5 ?? 'val5 is nullish') // -> val5 is nullish // More practical example const gradeA = null const gradeB = null const gradeC = 10 const grade = gradeA ?? gradeB ?? gradeC ?? 0 console.log(grade) //-> 10
Then we have a more practical example where we have three consts - two of them are null and the third points to '10'. Next we create a new const 'grade' that will point to the value of 'gradeA' if this is not nullish, otherwise it will point to 'gradeB' if this is not nullish, otherwise it will point to 'gradeC' if this is not nullish, otherwise it will point to '0'. In this case only 'gradeC' is not nullish so 'grade' will point to '10'.
And that's it! Hope you liked it and give it q try! See you guys 😎🤘