Allora, JS e PHP sostanzialmente NON HANNO NIENTE IN COMUNE!
PHP è un linguaggio Server Side, questo significa che quando viene richiesta una pagina .php dal browser, il WebServer (Apache, IIS, quello che è) legge la parte del codice contenuta nel tag <? ?> e la passa all'interprete PHP il quale, alla fine, ritorna dell'HTML che viene mandato al browser.
Molto semplice: Richiesta dal Client al Server, elaborazione dati sul Server e risposta del Server verso il Client.
Javascript nasce come una necessità, la necessità di effettuare delle modifiche alla pagina HTML SENZA effettuare un'altra richiesta. Per questo motivo, Javascritp viene detto Linguaggio Client Side, cioè inviato dal Server con l'HTML della pagina, POI eseguito SOLO dal Client, in questo il Server non ci mette il becco.
A cosa serve? Beh, immagina di avere una pagina con 9 paragrafi (proprio una cosa semplicissima) solo che i paragrafi sono lunghi, e metterli tutti in una pagina la renderebbero un unico testo lunghissimo, senza contare che uno potrebbe volere solo un paragrafo.
Allora cosa puoi fare? Tagli la pagina in N pagina diverse, facendo una lista di link in ogni pagina, ma questo ha un serie di problemi, sia perché se fai una modifica devi modificare N pagine, sia perché ogni pagina che contiene SOLO un paragrafo deve essere richiesta dal server.
Allora cosa si fa? Si caricano tutti i paragrafi, con il CSS si rendono tutti invisibili, tranne il primo, e si usi Javascript per mostrare, al click su di un link, il paragrafo corrispondente, semplicemente, nascondendo tutti i paragrafi, a parte quello interessato. In questo modo il server ha risposto ad una sola richiesta, il client mostra all'utente solo il paragrafo che gli interessa, il resto lo fa JS.
Questo è solo un esempio banale, si possono fare 1000 altre cose, dalle animazioni dei siti (dai un'occhiata a http://demos.mootools.net/ o http://github.com/madrobby/scriptacu...n-effects-demo ) all'utilizzo di Ajax, nella quale anche il Server ritorna in gioco.
Insomma, Javascript serve per effettuare quelle modifiche che, dal punto di vista dell'utente sono piccola cosa, ma dal punto di vista del Server, sarebbero una richiesta, da controllare, elaborare, etc.
Considera poi, che un server molto usato, è facilitato se deve fare il minor numero di richieste possibile, e quindi spostare il maggior lavoro possibile sul browser dell'utente, quindi è anche una questione di moglioramento delle prestazioni.
Spero di aver in parte risposto alle tue domande.