Form button types: (JavaScript, PHP, LINK and Ajax), what are the differences?

Sorry but the difference between the types of buttons is not clear to me.
I think that the initial choice in the creation phase implies their different behavior.
I have not found any information in the help guide about it.
Someone can help me?
TKS

The different button is what kind of code they process:
A Javascript button process only javascript
A php button process php code
a link button uses a link to another application

Button type is always Code language of execution.

Ok but the difference between php button and ajax button?
they both use php code
TKS

They both use PHP code executed on the server.
The difference is how the code is triggered from the browser.
Plain PHP buttons code output is automatically loaded in the browser thus replacing the current URL (or opening a new tab\window).
PHP triggered by an AJAX button is still executed remotely on the server but you have to decide what to do with its output in the browser
What you don’t see is what SC handles automatically, i.e. the actual ajax code in javascript that triggers the PHP code and handles its output.
(see https://www.w3schools.com/whatis/whatis_ajax.asp)