• ベストアンサー

javascript joinについて

var options = new Array(); options.push("expires=" + d.toGMTString()); // 引数『key』『value』を元にした設定と、時刻の設定を、 // 文字列結合してクッキーに書き込み document.cookie = escape(key) + "=" + escape(value) + "; " + options.join("; "); // 『key=value; expires=時間』を書き込み 参考書で上記のような表現があります。 この場合のjoinは  expires= と d.toGMTString() の間に ; を入れるという意味かと思ったのですが どうやら違うみたいす。 検索しても解決できませんでした。どなたか御教授お願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • tomaju
  • ベストアンサー率76% (84/110)
回答No.1

> この場合のjoinは expires= と d.toGMTString() の間に ; を入れるという意味かと思ったのですが いいえ。 join は 配列の各要素を区切り文字で連結した文字列を返します。 引数に 「; 」(セミコロンと半角スペース) が指定されているので 「; 」で連結されます。 要素がひとつしかない場合は区切り文字 ; は付かないです。 (最後の要素の後ろには区切り文字が付かない) http://www.tohoho-web.com/js/array.htm#join http://www.ajaxtower.jp/js/array_class/index3.html ご質問の内容だと options の中身がひとつしかないので、 + options.join("; ") は + "expires=" + d.toGMTString() と結果が変わらないので、いまいち意義が感じられないかもしれません。 以下のようなスクリプトでどんな風になるか確認してみてはどうでしょう。 var options = new Array(); options.push("A"); options.push("B"); options.push("C"); alert(options.join("; ")); var options = new Array(); options.push("D"); alert(options.join("; ")); クッキーのオプション(省略可能な部分)としてありそうなもので書いてみます。 var d = new Date(); var options = new Array(); options.push("expires=" + d.toGMTString()); options.push("domain=www.example.com"); options.push("path=/"); options.push("secure"); alert(options.join("; ")); 同じことを配列に格納してjoinではなく、 文字列の連結で書くなら以下のような感じでしょうか。 var d = new Date(); var options = new Array(); var str = "expires=" + d.toGMTString() + "; " + "domain=www.example.com" + "; " + "path=/" + "; " + "secure" ; alert(str); 余談: ひょっとすると参考書はこれの書籍版ですかね。。。 検索していたら偶然ひっかかりました。 http://crocro.com/write/manga_javascript/wiki.cgi?p=%A5%AF%A5%C3%A5%AD%A1%BC%A4%CE%CD%F8%CD%D1

noname#143858
質問者

お礼

回答ありがとうございます。 options.pushが何回か続くことを想定してjoinを書き加えてるだけで 実際にはoptionに一つしか加えなかったために、結果としてはここでのjoinは必要なくなってしまったということでしょうか? それとズバリその本です^^

関連するQ&A