void(0)
hrefを無効化するときに使う"void(0)"ですが、そんな組み込み関数あったっけ、と思って調べて見た。
→Mozilla developer center - Special Operators - void
リファレンスによると、voidは
- 右辺の式を実行するが、
- 式の実行結果を返さない
ようにするための演算子とのこと。予想に反して組み込み関数ではなかった。
なので、
- hrefを無効化するだけなら、右辺は0じゃなくてもよい。(1でも2でも文字列でもOK)
- 右辺の式は実行されるので、副作用のある式を指定すると状態が変更されたりする。
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <script type="text/javascript"> </script> </head> <body> <ul> <li><a href="javascript:void(0);">void(0)</a></li> <li><a href="javascript:void(1);">void(1)</a></li> <li><a href="javascript:void('hoge');">void('hoge')</a></li> <li><a href="javascript:void(alert('!!!'))">void(alert('!!!'))</a></li> <li><a href="javascript:void(document.getElementById('out').innerHTML='!!!');">void(document.getElementById('out').innerHTML='!!!')</a></li> </ul> <div id="out"> </div> </body> </html>