人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

JavaScriptで、「何もしない」関数としてvoid()がありますが、なぜこれに引数が必要なのですか?

何もしないのであれば、void();で良いと思うのですが。

ここでJavaScriptを実行できるので、変数のスコープが特殊なのかと一瞬思ったのですがそうでもないみたいです。

そもそも、もしかして、void();って<a href="javascript:void(0); 以外に使われてないのでしょうか?もう要らない関数なのでしょうか?

●質問者: tohokuaiki
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:href JavaScript void スコープ 変数
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● HowAreYou
●35ポイント

http://developer.mozilla.org/ja/docs/Core_JavaScript_1.5_Guide:O...

void は関数ではなく演算子です。

◎質問者からの返答

なるほど!演算子だと引数は必要ですね。というか、引数じゃないですね。

リンク先を見るとvoid演算子はハイパーテキストを(<aタグを)JavaScriptのトリガーにしたい目的で作られたような印象です。となると、使用非推奨ってことになるんでしょうか。</p>


2 ● 牛乳先生(tukihatu)
●35ポイント ベストアンサー

Void = 空 という意味です。

大抵のプログラムには使用頻度に関わらず、空にする、何もしない、という命令が必ず入っています。

なので、専用の目的で作られたものではないかと思いますよ。

href=javascript:void(0); は作動してしまうhref機能を空にする、という使い方なので、非推奨というわけではなく、本来の使い方かと思います。

ただhref=javascript:void(0); 以外の形でvoid(0);は私も見たことはないです・・・

ちなみに他のプログラムだとVoidは、何も戻り値を返さない、などいろいろな意味で使われています。

◎質問者からの返答

ありがとうございます。

ただ、HTMLをセマンティックに捕らえると、hrefでのvoid(0)は非推奨というかバッドノウハウ的なんですよね。そもそもリンクをさせずにonclickなどをさせたいのであれば、を使わず、を使うとか。

http://ishikawa.arielworks.com/memo/2006/06/24/185137#comments

の受け売りなんですが。

その辺が分からないなーと思って質問させていただきました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ