in un link (tag A) l'href indica cosa vuoi visualizzare (dove vuoi che il browser sia indirizzato) e l'onclick indica cosa deve fare quando si clicka (tramite uno script, per cui non serve scrivere javascript:).
L'onclick si verifica un attimo prima dell'href quindi se ritorni false l'href non viene considerato.
Puoi eseguire javascript anche nell'href
però se esegui una funzione che restituisce qualcosa il browser proverà a visualizzare questo qualcosa, infatti se provi a fare cosìcodice:link
ti si aprirà una nuova finestra ma quella che conteneva il link visualizzerà la scritta [object]codice:link
per evitare che il browser visualizzi il risultato della funzione basta mettere un void(0); come ultima istruzione
codice:link![]()