属性javascript: somethingの値として指定した場合、これは誰かがそのリンクをアクティブ化したときに評価されます。hrefsomething
この評価の結果がチェックされます。文字列とtypeof評価された場合'undefined'、何も起こりません。そうでない場合は、ページに評価結果がコンテンツとして再読み込みされます。
<a href="javascript: void(0);">Nothing to see here, move along...</a>
<a href="javascript: undefined;">No, still nothing...</a>
<a href="javascript: prompt('Where would you like to go today?');">Check this out!</a>
ここでの最初の2つのリンクは、基本的に何もしません。しかし、3番目のものは非常に興味深いものです。入力したものpromptはすべて表示されます。空の文字列も表示されます。しかし、それだけではありません。クリックCancelすると、新しいページが表示されます-null印刷された状態で表示されます(キャンセルされた場合promptは戻り値が返さnullれ、おそらくご存知のとおり、typeof null実際にはobject;でありnull、文字列に変換されます'null')。
それはもっと面白くなるかもしれません:
<a href="javascript: window.undefined = 333; void(0);">What happens here?</a>
<a href="javascript: window.undefined = 333; undefined;">And here?</a>
さて、ここではまだ最初のリンクでは何も得られません。しかし、2番目のリンクはIE8で333を表示します。:)
そして、それは、あなたの2番目の質問にも答えると思います。typeofvoid(0)は常にですundefined。typeof undefined誰かがドラゴンをに再割り当てするのが良い考えだと判断した場合、ドラゴンを与えることができますwindow.undefined。)。
...そして、はい、javascript: return false;間違っています。機能していない環境から戻ることはできません。あなたはおそらくそれをと混同しましたがonclick: return false、それは完全に別の話です。)。