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

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

    JavaScript覧 / PC版 /
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter
    501 = :

    IE8もまだ属性とプロパティと混同してて手抜き実装なんだけど

    503 = :

    質問させてください。
    とある事情から、JavaScriptのデータ(配列やらオブジェクトやら)を、
    「文字列として」出力する必要がでてきました。
    つまり、

    var data = {id:1, text:'Hello'};
    var array = [1, "Hi"];
    // data = ごにょごにょ...
    // array = ごにょごにょ...
    console.log(data); // => {id:1, text:'Hello'} と出力
    console.log(array); // => [1, "Hi"] と出力

    としたいのですが、可能でしょうか?
    ちなみに、
    var data = "{id:1, text:'Hello'}";
    とするのはもちろんナシでお願いします。

    505 = :

    >>503
    JSON.stringify()
    http://es5.github.com/#x15.12.3

    506 = :

    >>503
    JSON.stringify

    507 = :

    >>501-503
    こんな便利なものが! ありがとうございます!

    あと、たびたびすみません。類似の問題なのですが、
    console.log(function(){var foo = 'boo';});
    とした場合、Chromeではコンソールに

    function(){var foo = 'boo';}

    と表示されるのですが、

    $('#input').val(function(){var foo = 'boo';}); // inputタグに出力

    とした場合は、inputタグの値として表示させることができません。
    (空文字? なのか、変化がありません)

    こちらは何か方法はありませんでしょうか?

    508 = :

    >>507
    Function#toString()

    509 = :

    文字列で渡せばok

    510 = :

    >>507
    console.log は渡された引数を内部で toString などをして表示しているけど、
    $('...').val() は引数に文字列型しか取らないので、
    自分で toString なり JSON.stringify なりして文字列にすればいい

    511 = :

    >>507
    $('#input')[0].value = function(){var foo = 'boo';};

    512 = :

    >>510
    ごめん、いろいろ間違ってた

    ・JSON.stringify は Function オブジェクトについては使えない
    ・$('...').val() は関数も引数に取れる(けど使い方が違う)

    .val() | jQuery API Documentation
    api.jquery.com/val/

    513 = :

    >>505
    >>508
    ありがとうございます。どちらの方法でもできました!
    とくに >>508 の方の方法は不思議ですね。なぜ[0].valueだと表示できるのか不思議でなりません^^;

    >>509
    ありがとうございます。なんだか、function( index, value ) と、シグニチャが限定されているっぽいですね。

    とにかく、皆様本当にありがとうございました。

    514 = :

    >>513
    > とくに >>508 の方の方法は不思議ですね。なぜ[0].valueだと表示できるのか不思議でなりません^^;
    String 型にキャストされる仕様だから。
    http://www2u.biglobe.ne.jp/~oz-07ams/prog/dom-ref/HTML/HTMLInputElement.html#HTMLInputElement-value

    jQuery で引数のデータ型によって処理を変更する方法は、標準仕様と大分違うから惑わされないほうがいい。

    515 = :

    >>513
    > どちらの方法でもできました!
    >>512も指摘してるが、function に JSON.stringify は適用できない。
    それを許す実装はあるが、仕様上は不可だから修正されれば使えなくなる。

    516 = :

    >>511
    >>512
    アドバイスありがとうございます。
    とても勉強になりました。

    518 = :

    友人が
    「これからはCoffeeScriptだ」
    見たいなこといっててサーバサイドのスクリプトとかいじってるけどさぁ……。
    世の中の多くはレガシーシステムだってことわかってんのかね。
    そいつのCoffeeScriptとやらより、俺のJavaScriptの方が100倍は表現力・オブジェクト指向性たかいわ。
    言語が先進的だからそれ使ってる自分も先進的。
    んなことほざくガキとは絶対一緒に仕事したくねぇな。
    「JavaScriptって汚くねぇか?」
    とか言っちゃってさ。
    その自分はCoffeeScriptでグローバル変数アホみたいに使ってて。
    はぁ、もう勝手にやってろって感じ。

    521 = :

    そりゃそうだけどvarで変数宣言しないなんてことがあるわけないもの

    522 = :

    >>521みたいな奴がいるわけがない、と思ったら居た。

    523 = :

    >>522みたいな奴がいるわけがない、と思ったら居た。

    524 = :

    >>523みたいな奴がいるわけがない、と思ったら居た。

    525 = :

    ところで、varで変数宣言しないなんてことあるの?

    526 = :

    そんな奴おれへんやろ~。

    527 = :

    全部仮引数にしちゃいなyo!

    528 = :

    試験問題
    次のうちクリックされたときに呼ばれるのはどれか
    理由も述べなさい

    var onclick = function(){alert('hoge')}
    onclick = function(){alert('piyo')}
    function onclick(){alert('fuga')}

    529 = :

    >>528
    イベントハンドラ未定義なのでどれも呼ばれません

    530 = :

    >>529
    そこは脳内変換で

    532 = :

    これonclick = function(){alert('piyo')}だけなら動くんだな
    onclickを新しく作っちまうとダメか
    でも新しくつくったonclickもwindow.onclickなんだね?
    window.onclickを作り変えるとダメ?どゆこと?

    535 = :

    なんか、勉強になった。

    536 = :

    【環境】mac OS10.5.8 firefox16

    【html ソース】
    <html><div id="test">〜〜〜〜〜</div></html>

    【Javascript】
    var count = 1;

    $(function() { $("#test").hover(function(){
    count = 0;
    console.log('reset:' + count);
    setTimeout(countUp,3000,count);
    });

    function countUp(num) { num++;
    console.log('count up:' + num);
    setTimeout(countUp,3000,num);
    }

    というのをつくりました。基本的に何もしなければ3秒毎にcountの値を増やしていき、ログに出力、
    divにマウスが乗ったらcountの値を0にリセットして出力、その後0からカウントアップ再開したいと考えました。

    2→3→0(リセット)→1→2→・・・
    という挙動を期待しているのですが、

    2→3→0(リセット)→4→5→・・・
    となってしまいます。関数countUpに変数countの値が渡らず、別系統でカウントアップがされているようなのですが、
    何がどう間違ってるのか見当がつきません。

    jQueryを使っているものの、中でやってることはjQuery的ではないので、こちらで質問しました。
    スレチならすみませんが、宜しくお願いします。

    537 = :

    それだと hover(function(){... が呼び出される度に
    setTimeout の連鎖が追加されていく(clearTimeout してない)ので

    2→3→4→5→・・・

    0(リセット)→1→2→3→・・・

    が同時並行的に出力される筈だが?

    ちなみにそのコードだと
    setInterval 使う方が管理は楽だろう

    539 = :

    >>536
    俺ならこうする
    http://jsfiddle.net/mHpdL/4/

    540 = :

    それだと動作があんま綺麗じゃないね。

    541 = :

    ありがとうございます。
    取り急ぎclearTimeoutを入れ、関数に引数を渡さないようにすると意図どおりの動きになりました。
    どうも引数の扱いも誤解してたみたいです。
    setIntervalについてはこれから調べてみたいと思います。

    543 = :

    カードゲームを作りたいのですがデータを記述する方法がわかりません
    どうすればデータを作る事ができますか?

    myData = new Array(41);
    for (i=0; i<41; i++) myData[i] = i+1;
    for (i=0; i<500; i++){
    myA = Math.floor( Math.random() * 41 )
    myB = Math.floor( Math.random() * 41 )
    myBackup = myData[myA];
    myData[myA] = myData[myB];
    myData[myB] = myBackup;
    }
    myCard = new Array(5);
    for (i=0; i<5; i++) myCard[i] = myData[i];

    for(i=0; i<5; i++){
    document.write("[",myCard[i],"]");
    if (i < 4) document.write("-");}

    これでランダムの数値を持ってきても、それをカードのデータに変換する方法が見つかりません
    どうすればカードのデータに変換できますか?

    544 = :

    マルチ

    545 = :

    >>543
    >>521-526

    546 = :

    ちょっとした小技知りたいんですが
    var hoge =[];
    if(hoge['a']{'b'}=='unko')ほにゃらら

    ってやるとhoge['a']は生成されてないからバグが発生しちゃいますが
    皆さんこういう対処はどうやってますか?
    i
    f(hoge['a']){
       if(hoge['a']['b']=='unko')ほにゃらら
    }
    というのは何か汚いように見えるんですが

    547 = :

    まっとうな方法
    if (hoge['a'] && hoge['a']['b'] == 'huga') {}

    少しトリッキー
    var hage;
    if ((hage = hoge['a']) && hage['b'] == 'hufa') {}


    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / JavaScript一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

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


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