のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:127,062,836人
昨日:no data人
今日:
最近の注目
人気の最安値情報

    私的良スレ書庫

    不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitter
    ログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。

    元スレ+ JavaScript の質問用スレッド vol.78 +

    JavaScript スレッド一覧へ / JavaScript とは? / 携帯版 / dat(gz)で取得 / トップメニュー
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
    レスフィルター : (試験中)
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter
    251 : 240 - 2010/05/23(日) 21:39:21 ID:??? (-1,-29,-34)
    すいません。メモ帳を使っています。

    >>246
    utf-8で保存すると文字化けするので質問しました。
    252 : 240 - 2010/05/23(日) 21:53:05 ID:??? (-1,-29,-38)
    >>246
    申し訳ないです。
    「utf-8で保存」というのは、XPでの保存でのことですね。

    保存時に文字コードをUTF-8にしたところOKでした。
    ※つまり、私のミスです。
    253 : Name_Not - 2010/05/23(日) 23:22:06 ID:??? (+57,+29,-25)
    連想配列の添え字ってスペース使えましたっけ?
    254 : Name_Not - 2010/05/23(日) 23:23:14 ID:??? (+85,+29,-1)
    何でも好きなもん使いやがれ
    256 : Name_Not - 2010/05/24(月) 00:28:34 ID:??? (+62,+29,-9)
    >>255
    javascriptがサーバ側を意識することはないから自分のやりやすい言語でやったらいい
    つまり>>254
    258 : Name_Not - 2010/05/24(月) 03:03:17 ID:??? (+36,-30,-111)
    var x = 150, y = 150;
    var canvas = document.getElementById('canvas1');
    var ctx = canvas.getContext('2d');
    var img = new Image();
    img.onload = function() {
      ctx.drawImage(img, x, y);
    };
    img.src = "hogehoge.png";
    259 : 257 - 2010/05/24(月) 08:23:00 ID:??? (+62,+29,+0)
    >>258
    早速さんきゅう。試してみます。
    260 : 257 - 2010/05/24(月) 08:46:09 ID:??? (+103,+22,+0)
    駄目でした。
    261 : Name_Not - 2010/05/24(月) 09:55:15 ID:??? (+37,+14,-3)
    外部画像じゃなく内部画像でやってみ
    262 : Name_Not - 2010/05/24(月) 09:56:15 ID:??? (+3,-30,-170)
    var canvas = document.getElementById('canvas1');
    var img = new Image;
    img.addEventListener('load', {
    x:150, y:150, ctx:canvas.getContext('2d'), img:img,
    handleEvent: function(e) { this.ctx.drawImage(this.img, this.x, this.y); }
    }, false);
    img.src = "hogehoge.png";
    263 : 257 - 2010/05/24(月) 10:20:12 ID:??? (+167,+29,-14)
    >>260
    テメエ! IDが出ないからって勝手に俺になりすますなよ!
    この板ではこんな行為が常識なのか?
    264 : 257 - 2010/05/24(月) 10:47:23 ID:??? (+63,+24,+0)
    >>260>>263は偽物です
    265 : Name_Not - 2010/05/24(月) 12:27:36 ID:??? (+75,+29,-10)
    >>263
    はい。Web製作板なんですから,偽者くらいは当然分かっていて,
    サワヤカに「xxxは偽者です,やってみたところ,,,」とか
    流してください。
    266 : Name_Not - 2010/05/24(月) 12:33:57 ID:??? (+77,+27,-14)
    >>263
    怒るぐらいならいまからでもID出せよ、sageなくていいからw
    267 : Name_Not - 2010/05/24(月) 15:55:06 ID:??? (+16,-11,-4)
    265も言ってるけど、試してみますじゃなくて試したッ!なら使ってもいい
    268 : Name_Not - 2010/05/24(月) 16:17:50 ID:??? (+72,+29,-125)
    >>298,239
    レス感謝

    すいません、とりあえず態々別のファイルにレシピを作らず、もう1ページの中にそのような感じで
    全部書き込んでしまうことにしました。
    そっちのほうがややこしくならずに済みそうですし・・・。
    ところでその{}内の要素の間にある : の意味って何なんでしょうか?

    それと、今作ってるページがこれです
    http://owakari.web.fc2.com/seisan.html

    このセレクトリスとの下に4番目のセレクトリストを選択し終えた後、動的に・・・というんでしょうか、
    アイテムを選ぶ毎にレシピが表示されるようにしたいのですが、document.writeで表示させてやろうかと
    思うもその方法だと別のページに切り替わってしまいます。
    これを切り替わらずに表示させる方法を教えていただけないでしょうか?
    269 : Name_Not - 2010/05/24(月) 17:27:53 ID:??? (+8,-29,-16)
    >>268
    基礎中の基礎、ObjectリテラルとinnerHTMLを勉強してこい
    270 : Name_Not - 2010/05/24(月) 17:37:19 ID:zoDm4VZU (-17,-28,-31)
    a = b || c
    って書き方は三項演算子みたいに特別な呼び名が付いていたりしますか?なんて名前ですか?
    271 : Name_Not - 2010/05/24(月) 17:49:43 ID:??? (+107,+21,-14)
    >>270
    論理和演算子じゃね
    272 : Name_Not - 2010/05/24(月) 17:55:50 ID:??? (+54,+28,-25)
    >>270
    何それ・・・?
    a == b || cならまだわかるけど
    その式はプログラムとして成り立つの?
    どういう使い方をするのかぜひしりたいわ
    273 : Name_Not - 2010/05/24(月) 18:04:38 ID:??? (+3,-24,-46)
    bが真ならbを、bが偽ならcを代入

    論理演算子だからってbooleanが返ってくる仕様とは限らない
    あと優先順位は押さえとけ
    274 : Name_Not - 2010/05/24(月) 18:05:26 ID:??? (+72,+29,-30)
    >>271-272
    レスどうもありがとうございます

    >>271
    > 論理和演算子
    ググったらそれっぽいです
    どうもありがとうございます
    275 : Name_Not - 2010/05/24(月) 18:10:12 ID:??? (+26,-30,-45)
    <script>
    var a,b,c;
    a=b||c;b=true;c=false;
    alert(a);
    </script>

    undefinedになったけど
    276 : Name_Not - 2010/05/24(月) 18:20:04 ID:??? (-1,-29,-37)
    undefined = undefined || undefined;
    なにがしたいんだ
    278 : Name_Not - 2010/05/24(月) 18:26:09 ID:??? (+0,-30,-13)
    >>275
    そりゃそうだ
    var a, b, c;
    b = true; c = false;
    a = b || c;
    にすればOK
    279 : Name_Not - 2010/05/24(月) 18:28:43 ID:??? (+8,-30,-25)
    >>275
    引数に初期値を持たせたいときとか

    function func(var) {
        var = var || 'test';

    }

    覚えておくとだいぶ楽になるよ
    281 : 275 - 2010/05/24(月) 18:32:28 ID:??? (+57,+29,-27)
    論理演算子って条件式以外で使ったことなくて・・・
    変数にも使えるのは知らなかった
    282 : Name_Not - 2010/05/24(月) 18:50:29 ID:??? (+3,-30,-158)
    「変数(代入文?)にも使える」という認識からなにか歪んでる
    原則として文は式から構成される、条件式もただの式、代入文の右辺も式
    逆に言えばif文の条件部は式が許されているから論理演算を含めることができている

    ついでに単純なif文も flag && func(); や flag || func(); で可能
    if (flag) func(); if (!flag) func(); で済むから使う必要ないけど
    評価がどのような流れで行われているかを知っておくと無駄な関数実行を減らせる
    283 : Name_Not - 2010/05/24(月) 19:19:34 ID:??? (-1,-29,-3)
    >>279
    "var"って変数名に使えたっけ
    284 : Name_Not - 2010/05/24(月) 19:39:59 ID:??? (+57,+29,-8)
    漢字が変数名にできちゃうようなJavaScriptでも
    さすがに予約語は無理だわ
    285 : Name_Not - 2010/05/24(月) 20:22:07 ID:??? (+33,-29,-35)
    >>279
    それだと引数が与えられた場合も無駄に代入が行われてしまう
    素直に if (!arg) arg = 'default'; の方が良いよ
    286 : Name_Not - 2010/05/24(月) 20:22:08 ID:??? (+87,+24,-5)
    変数名に使えない文字列を予約語って言うのかしら
    287 : Name_Not - 2010/05/24(月) 20:28:28 ID:??? (-2,-30,-45)
    識別子に使えないトークンが予約語
    変数だけとは限らん
    http://www2u.biglobe.ne.jp/~oz-07ams/prog/ecma262r3/7_Lexical_Conventions.html
    288 : Name_Not - 2010/05/24(月) 20:37:41 ID:??? (+57,+29,-39)
    なるほど、変数名だけじゃなくてプロパティ名にもラベル名にも使えないってことね。
    言われてみれば当たり前の話だけど、厳密性は厳密性で大切だよな。指摘ありがと!
    289 : Name_Not - 2010/05/24(月) 20:48:47 ID:??? (+0,-30,-176)
    <script type="text/javascript">
    <!--
    var x=1; //製造時の個数
    var list = new Object();
    list["木炭"] = {"木材:x*1};
    list["銅"] = {"木炭":x*1,"銅鉱石":x*2};
    for (i in list["銅"]) document.write( i + ':' + list["銅"][i] + ' ' );
    //-->
    </script>

    こういう感じで書いているのですが>>238,239の内容はこういう事でいいんでしょうか?
    あとなんとなくは分かるのですがundefinedが返ってきた場合に再起しないってどういう感じのことでしょうか?

    list["銅"] = {"木炭":x*1 + {"木材":1}, "銅鉱石":x*2};

    みたいな方法でやろうと思ったけど内側のメンバ名と値が読み出せないし・・・
    290 : Name_Not - 2010/05/24(月) 20:56:40 ID:??? (+39,-30,-120)
    >内側のメンバ名と値が読み出せない

    それをするのが再帰
    list["銅"]の処理中に木炭に出会う、そうしたらlist["木炭"]で銅と同様の処理をする
    末端に辿り着くまで内側へ内側へと同じ処理を繰り返す

    さて、そうなるとlist["木炭"]の処理中にlist["木材"]をやることになるわけだけど
    どんな値が返ってきて、それに対してどう処理すればいいか考えてみてくれ
    291 : Name_Not - 2010/05/24(月) 21:19:01 ID:??? (+67,+29,-37)
    >>285
    意外なことに、ベンチとってみると差がない。むしろ論理演算子のほうが速いくらい

    >>286
    定義が逆だ。キーワード、予約語だから識別子(変数名など)に使えない
    292 : Name_Not - 2010/05/24(月) 22:57:10 ID:??? (+9,-18,-8)
    enumという変数を使っててエラーが出て原因がわからず
    ハマった経験あり。

    予約語だった。
    294 : Name_Not - 2010/05/24(月) 23:02:47 ID:??? (+68,+29,-31)
    >>290
    分かりやすいレス感謝

    for inで繰り返す処理の中で、取得したメンバ名を使ってさらにfor inさせてやることでうまくいけました。
    あとは上で言われたinnerHTMLについてもう少しよく調べればなんとかなりそうです。

    ありがとうございました
    295 : Name_Not - 2010/05/25(火) 00:52:16 ID:??? (-6,-30,-57)
    >>293
    こんな感じか?と思ってやったもののむしろ行が増えたわ
    var str2int = (function() {
      var re = /[0-9]+/;
      return function(str) {
        return parseInt(re.exec(str)[0]);
      }
    })();
    var x = str2int(a);
    var y = str2int(b);
    296 : Name_Not - 2010/05/25(火) 01:00:30 ID:??? (+31,-30,-27)
    function str2int(str) {
     return parseInt(/\d+/.exec(str)[0]);
    }
    これで十分だろw
    297 : Name_Not - 2010/05/25(火) 01:57:46 ID:??? (+62,+29,-20)
    >>296
    おぉw初め関数にしないで2行で書いてたからそのまま変数残してた。無駄なクロージャだったな
    298 : Name_Not - 2010/05/25(火) 02:13:55 ID:??? (+28,-30,-20)
    parseInt使うと先頭に0が入ってたときに>>293と動作が変わるな
    299 : Name_Not - 2010/05/25(火) 02:26:45 ID:fV4wwzYu (+2,-30,-170)
    質問いたします。
    var data = {
      test1: {
        year: 2010,
        month: 5,
        day: 25
      },
      test2: {
        year: function(){ alert(new Date().getFullYear());},
        month: function(){ alert(new Date().getMonth()+1);},
        day: function(){ alert(new Date().getDate());}
      }
    };

    for(var i in data.test1){
      alert(data.test1[i]);
    }

    for(var i in data.test2){
      data.test2[i];
    }
    最初のループでは当たり前ですが順番に「2010」「5」「25」と出力されます。
    では2番目のループでも順番に「2010」「5」「25」(今日の場合)と出力させたい、
    つまり、順番にメソッドを実行させたいのですが、どうすればよいでしょう?
    300 : Name_Not - 2010/05/25(火) 02:52:33 ID:??? (-11,-29,+0)
    data.test2[i]();
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / JavaScript スレッド一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

    類似してるかもしれないスレッド


    トップメニューへ / →のくす牧場書庫について