Both expressions have the same result.
The crucial difference is : compatibility
In pure javascript, the ?. operator is really recent : see the Browser compatibility chart on MDN,
my current browser for example (today is 2020-03-11, my linux system is running Firefox 73) does not support the b?.c syntax.
The b?.c === true version could simply not be written before ES2020, and will not work as is on your client's browser if he hasn't updated to recent builds - to this day : "recent" would mean "bleeding edge" ...
As mentioned by @jonrsharpe in his comment, the ?. operator is also available through transpiled languages (typescript, coffeescript, babel ...), with various dates of support.