ngModelChange VS ion-change VS click using ion-checkbox

I am trying to use the ion-checkbox component and i need to receive what this component emit. i read the official documentation

in the documentation, they recommended that developers shoold use the ionChange event
i am curious. i change this event with the ngModelChange and the click event.
and they produce the same result.
I am sure that there are more hidden features that may be i don’t notice it.
can you help to understand the difference between this event with the ion-checkbox component ?
Thank you in advance