What is ! before the variable does in javascript [duplicate]

what is the difference between
variable!.child_variable
and
variable?.child_variable

Use case Example

const data = obj!.data;

vs

const data = obj?.data;

Similar applied to func of that obj

obj!.doSomething();

vs

obj?.doSomething();

Note: this is not the same as In TypeScript, what is the ! (exclamation mark / bang) operator when dereferencing a member?

Here, we are discussing the differences.

It is the same for me. But still are there any differences?