-
ID:MGQT3y さんの質問

if(!$page) {
$page = ’index.html’;
}
の意味を教えて下さい。

みんなの回答 2 件

ID:Eg2FVM さんの回答

このコード断片の「動作」を教えることはできるのだが、「意味」を教えることは不可能じゃ。プログラム全体とその実行環境が判らないと、このコードの「意味」が確定しないんじゃよ。

ID:MGQT3y

申し訳ありません。ページの現在地を判定するのに、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’);
}
});
});

ID:Eg2FVM

jsかよ!jsで変数に $ 付けてんの初めて見たわ!違法じゃないが変態じゃの。
でな、ワシはjsやらjQには疎いんじゃ。テキトーな返答になるが、$pageが’’ とか false になる場合があるからそれに対処してるんじゃろ? そうなる場合を自分で試してないから要るものを不要だと勘違いしとるんじゃないかの?

ID:kLdNCb

$pageが空の場合があるんじゃない?

ID:UdX5x.

>違法じゃないが変態じゃの
いたって普通。いつの時代のJSの話をしてるのやら。

ID:Eg2FVM

↑マジで? ’$’ 単独の話じゃなくて変数の prefix の話じゃよ? 君の周りだけじゃろ?

ID:kLdNCb

マジで普通。
ただ文字列は普通入れない。jQueryオブジェクトを入れる時につけてる。

ID:UdX5x.

>君の周りだけじゃろ?
jsやjqueryに疎いって自称してるんだからつっかかるところじゃないでしょ。多いのはjqueryオブジェクトを変数に入れるときだろうね。そもそもなん現代において、$つかちゃっちゃいかんのよ?

ID:80iCII さんの回答

「$pageではない時、index.htmlとする」ではなくて、「$pageがnull, undefined, 0, 空文字(’’)もしくは、falseである時、index.htmlとする」という意味です。
察するに、制作者は「undefined」とかが文字列でhrefに代入されて困るから、
安直に無効なものの場合に初期値を入れようとしたんだろうね。ソースの良し悪しはさておいて。

ID:MGQT3y

丁寧に解説いただきありがとうございます。大変勉強になりました。もっと勉強します。

最終更新日:2016-09-01 (1,141 views)

関連するトピックス

ページ上部に戻る