if(!$page) { $page = ’index.html’; }の意味を教えて下さい。
このコード断片の「動作」を教えることはできるのだが、「意味」を教えることは不可能じゃ。プログラム全体とその実行環境が判らないと、このコードの「意味」が確定しないんじゃよ。
申し訳ありません。ページの現在地を判定するのに、jQuery purl.jsを使っており、以下の記述で正常に動いているのですが、ふとif(!$page) {...}の部分がいらないような気がして消してみたら、それでも正常に動作しているので、何の為の記述かと思いまして・・・。動作としては、$pageではない時、index.html とする、ということと思うのですが。
$(function(){ $page = $.url().attr(’file’); if(!$page) { $page = ’index.html’; } $(’#nav li a’).each(function(){ var $href = $(this).attr(’href’); if ( ($href == $page) || ($href == ’’) ) { $(this).addClass(’active’); } else { $(this).removeClass(’active’); } });});
jsかよ!jsで変数に $ 付けてんの初めて見たわ!違法じゃないが変態じゃの。でな、ワシはjsやらjQには疎いんじゃ。テキトーな返答になるが、$pageが’’ とか false になる場合があるからそれに対処してるんじゃろ? そうなる場合を自分で試してないから要るものを不要だと勘違いしとるんじゃないかの?
$pageが空の場合があるんじゃない?
>違法じゃないが変態じゃのいたって普通。いつの時代のJSの話をしてるのやら。
↑マジで? ’$’ 単独の話じゃなくて変数の prefix の話じゃよ? 君の周りだけじゃろ?
マジで普通。ただ文字列は普通入れない。jQueryオブジェクトを入れる時につけてる。
>君の周りだけじゃろ?jsやjqueryに疎いって自称してるんだからつっかかるところじゃないでしょ。多いのはjqueryオブジェクトを変数に入れるときだろうね。そもそもなん現代において、$つかちゃっちゃいかんのよ?
「$pageではない時、index.htmlとする」ではなくて、「$pageがnull, undefined, 0, 空文字(’’)もしくは、falseである時、index.htmlとする」という意味です。察するに、制作者は「undefined」とかが文字列でhrefに代入されて困るから、安直に無効なものの場合に初期値を入れようとしたんだろうね。ソースの良し悪しはさておいて。
丁寧に解説いただきありがとうございます。大変勉強になりました。もっと勉強します。
みんなの回答 2 件
このコード断片の「動作」を教えることはできるのだが、「意味」を教えることは不可能じゃ。プログラム全体とその実行環境が判らないと、このコードの「意味」が確定しないんじゃよ。
「$pageではない時、index.htmlとする」ではなくて、「$pageがnull, undefined, 0, 空文字(’’)もしくは、falseである時、index.htmlとする」という意味です。
察するに、制作者は「undefined」とかが文字列でhrefに代入されて困るから、
安直に無効なものの場合に初期値を入れようとしたんだろうね。ソースの良し悪しはさておいて。
関連するトピックス