Sei sicuro secan?
Io credo che l'operatore unario ! ha la precedenza sul confronto == o !=,
In questo senso quell'espressione non ha senso
Quindi
!document.nomeform.nomecampo significa se non esiste il campo
(che chiaramente non puo` essere poi confrontato con una stringa nulla).
Avrebbe senso una cosa del genere:
if(!document.nomeform.nomecampo || document.nomeform.nomecampo.value == "") alert("campo non valido o non compilato");
Comunque e` vero: il ! nega l'espressione che precede, ma deve essere un valore booleano.