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

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

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

    >>39
    関数外で宣言する必要がまるでない
    (function(){
    var a = a || [];
    })();

    52 = :

    >>45
    では、面倒くさいが、
    span[style="color:red"], span[style="color: red"], span[style="color : red"], span[style="color:#f00;"], span[style="color: #f00"]
    のようにホワイトスペースやカンマの有無の全ての組み合わせを , 区切りで宣言しろ
    ブラウザがstyle属性値をどのような書式で持つかは実装依存
    ブラウザがバージョンアップして挙動が変更することも考えられるので必ず「全てのパターン」を宣言しろ

    53 = :

    >>51
    それだと関数内の var で a が新たに宣言されてしまうので不可
    var a = "test";
    (function(){
    var a = a || []; // 関数外の宣言に関わらず [] が代入される
    })();

    54 = :

    >>53
    "test" でも [] でも良い状況ってどんなケース?
    [] で初期化するんだからオブジェクトを想定していたんだが

    56 = :

    >>54
    a = "test"じゃなくても{}でも[]でも同じこと
    試せばわかる

    59 = :

    >>39http://peace.2ch.net/test/read.cgi/hp/1415213701/23n のコピペだからここで回答するだけ無駄

    60 = :

    >>59
    すまん、向こうで回答しなおしてきた
    荒らすのもいい加減にして欲しい

    61 = :

    >>42
    document.querySelector('span[style="color: red;"]')

    ただしこっちの方が安定的
    Array.prototype.filter.call(document.querySelectorAll("span"), function(e){ return e.style.color == "red;" })[0]

    65 :

    >>64
    いやですw

    66 = :

    荒らしの立てたスレだから荒らしだけが残ればいい

    67 = :

    >>46
    >どういう風に変換するのかは、仕様で決まってるのかな?

    要素 element の element.style の戻り値が実装する
    CSSStyleDeclaration インタフェースの
    getPropertyValue() メソッドを呼び出したときの
    戻り値の書式は CSSOM で決まってる。
    (たぶんこれが element.style.xxx でアクセスしたとき得られる値だろう)

    color の場合

    "rgb(R, G, B)" (不透明度 1 の場合)または
    "rgb(R, G, B, A)"
    になる(R, G, B は10進数で A は小数、カンマの後はスペース)

    element.style.color = ... で設定したときに element の style 属性にも
    同じように反映されると考えるのが自然だが、仕様には書かれてないね

    HTML 仕様にも style 属性のふるまいについて
    www.w3.org/TR/css-style-attr/
    を参照しているが
    element.style.color = ... で値を設定したときについては
    どうも書かれてないみたい

    70 = :

    >>68
    span[style="color: red"], span[style="color : red"], span[style="color :red"],
    span[style^="color: red;"], span[style^="color : red;"], span[style^="color :red;"],
    span[style^="color: red ;"], span[style^="color : red ;"], span[style^="color :red ;"],
    span[style*=";color: red;"], span[style*=";color : red;"], span[style*=";color :red;"],
    span[style*=";color: red ;"], span[style*=";color : red ;"], span[style*=";color :red ;"],
    span[style$=";color: red;"], span[style$=";color : red;"], span[style$=";color :red"],
    span[style$="; color: red;"], span[style$="; color : red;"], span[style$="; color :red"]
    のように部分一致にすれば良い
    これでも足りないが、ホワイトスペースの組み合わせを考えると、気が遠くなる

    >>69
    querySelector がナンセンスなのは同意だが、querySelectorでないと困ると駄々をこねるので>>52で回答した
    ComputedStyle を取るほうがまだマシだな

    71 = :

    >70に付け加えるなら「color: #f00, color: #ff0000, color: red, color: rgb(255, 0, 0)」のパターンもある
    ホワイトスペースや ; の組み合わせパターンも考えると、かなり大変だな
    ナンセンスな実装には違いない

    72 = :

    function abc(){
    var result = aaaa();
    result.ok = function(e){

    }
    }
    って書くのと
    function ok(){

    }
    function abc(){
    var result = aaaa();
    result.ok = ok;
    }
    }
    って書くのどっちがメモリにやさしいですか?
    前者はabc()を呼ぶたびに中の無名関数が生成されていってメモリの無駄になる気がするんですが

    73 = :

    >>72
    実際にベンチマーク取ればわかるだろ?

    わからければ・・・・違いはないということさ。

    74 = :

    なんかあっちはわざと?くだらない話ばかりして
    グダグダしてるから、こっちにまともな答え書いておくわ。

    Math.random() は0から1未満の数を返す。だから0にはなるが1.0にはならない。

    http://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Math/random
    > [0,1) 、……つまり、0 以上 1 未満の範囲で疑似乱数を返します。Java と同様に、現在時刻をシードとして乱数を生成します。

    求めたい値が、0~5であれば、0, 1, 2, 3, 4, 5 の6パターンなので
    Math.floor(Math.random()*6)が正解。

    Math.random()が1がでるのであれば、1×6 = 6になるが、
    1未満を返すので6未満、つまり最大でも5.9999・・・の小数点切り捨てで5が最大になる。
    0~1未満を6倍すると以下のようになるから、計算上は公平になる。

    Math.floor(0 ~ 0.9999・・・) = 0
    Math.floor(1 ~ 1.9999・・・) = 1
    Math.floor(2 ~ 2.9999・・・) = 2
    Math.floor(3 ~ 3.9999・・・) = 3
    Math.floor(4 ~ 4.9999・・・) = 4
    Math.floor(5 ~ 5.9999・・・) = 5


    Math.floor(Math.random()*6) - 1; だとrandom() = 0の時
    Math.floor(0*6) - 1 = Math.floor(0) - 1 = -1 なので明らかに間違い。

    75 :

    偽スレと本スレの格の違いがでたなw

    77 = :

    こっちもぐだぐだ感あふれてるわ
    さっきはあっちのスレにたまたま人が多かっただけで何も変わらん

    79 = :

    >>77
    なんで始まってからすぐグダグダになるんだよw

    82 = :

    >>79
    こっちは>>39>>42に対する回答がぐだぐだだったし、何も変わらん

    83 = :

    > 0.2*6=1.2
    > 0.3*6=1.8
    > 0.4*6=2.4
    > 0.5*6=3.0

    ここだけを見ると2が出る確率が低いようだけど、実際は


    0.00000 <= x < 0.16666… = 0
    0.16666 <= x < 0.33333… = 1
    0.33333 <= x < 0.5     = 2
    0.5    <= x < 0.66666… = 3

    になるから、どれも0.166666…ずつで、
    ちょうど同じ数なんだよなね。

    86 = :

    >>81
    初めから10201個の点の位置を決めている、というのがナンセンス
    この時点で π の正確な値は出せない
    極端な例で言うと、3x3の9個の点だと、中央の1点しか円の内側にないでしょ?

    改善する方法は、点の位置を毎回ランダムに決めること
    頑張れば100文字ぐらいでコード書けるよ

    90 = :

    > var arr = new Array();
    > for (m = -50; m < 51; m++) {
    > for (n = -50; n < 50; n++) {
    > arr.push([m, n]);
    > }
    > arr.push([m, n]);
    > }

    50と51の違いも気持ち悪いが、ここを変えても変化はなかった。
    2番目のarr.pushも気持ち悪いが、arr.length = 10201で
    ランダムの最大とも一致するから間違ってないだろう。

    > for (i = 0; i < 100000; i++) {
    この100000はサンプル数だろう。単純に10倍したら結果も10倍になった。
    j * 4 / 100000 の 100000と同じであれば数が多ければなんでも良さそうだ。

    で最期に怪しかったのが、
    > if (crd() < 2500) {
    2500という数字で2500というのは50 * 50 だが
    これは51 * 50 = 2550ではないのかね?

    と思って変えてみたら、それらしくなったぞw

    相変わらず数学的な意味はさっぱりわからんが(笑)
    コードの一貫性における違和感のみからバグ取りしてみた。

    91 = :

    >>89
    そう、まさにそれ

    95 = :

    >>94
    これ、ループでランダムに要素をとる意味が全くないぞ
    まずはプログラミングじゃなくて数学の勉強しろ

    98 = :

    いまだにinnerHTML使ってる奴見ると吐き気がする

    99 = :

    場合によると思うけどね
    jQueryにも使われてるし、仕様に書かれているくらいだし

    100 = :

    意味不明
    innerHTMLは普通に使っていいっていう結論が出たはずだが?


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

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


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