pf, cosa vuol dire esattamente il punto esclamativo messo cosi'?
if(!num){num=5+3+4+2}
vuol dire not... davanti ad una qualunque espressione restituisce vero se l'espressione non ritorna un valore valido.
Nel caso del tuo script se (num non esiste o non e' inizializzato o vale 0)... un esempio:
<script>
alert(!num) // vero
var num
alert(!num) // vero
num=0
alert(!num) // vero
num=1
alert(!num) // falso
</script>
ciao