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

    私的良スレ書庫

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

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

    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
    751 : Name_Not - 2014/02/28(金) 23:05:41.74 ID:??? (+57,-30,-147)
    JavaScriptオブジェクトにeasterEggというメソッドを発見した。ネット上で調べたけど出てこない。
    これは誰が仕込んだんだろうか?・・
    構文:
    easterEgg: function () {console.log("IF YOU SEE THIS, YOU MUST BE AN AWESOME JAVASCRIPT HACKER!");},
    結果:
    > console.easterEgg()
    IF YOU SEE THIS, YOU MUST BE AN AWESOME JAVASCRIPT HACKER!

    画像
    752 : Name_Not - 2014/02/28(金) 23:06:37.52 ID:??? (-1,-29,-28)
    console.dirでオブジェクトを調べた
    753 : Name_Not - 2014/02/28(金) 23:17:01.38 ID:??? (+0,-22,-15)
    chromeにはないけど?
    754 : Name_Not - 2014/02/28(金) 23:23:16.24 ID:??? (+19,-3,+0)
    Firefoxにもなかった
    755 : Name_Not - 2014/02/28(金) 23:28:23.85 ID:??? (-1,-29,-28)
    iOSのJS Consoleっていうアプリの中だけ?Safariでコンソールは使えないから確かめようがない
    756 : Name_Not - 2014/02/28(金) 23:30:36.66 ID:??? (+91,+29,-71)
    アプリが実装してるんだろうね
    JSエンジンを一社が独占で作ってるわけじゃないし
    仕様書にないものを入れ込むわけない
    PHPにも昔イースターエッグがあったな
    757 : Name_Not - 2014/02/28(金) 23:34:36.45 ID:??? (+70,+29,-3)
    >>756
    なるほど。やっぱりそうゆうことあるんだ。
    758 : Name_Not - 2014/02/28(金) 23:38:03.03 ID:??? (+57,+29,-15)
    まあコード見てて分かったけどJSの内部もほとんどJsで構成されてるんだな。そりゃ自由度が高いわけだ。
    759 : Name_Not - 2014/02/28(金) 23:43:58.37 ID:??? (+57,+29,-63)
    確かにconsole.dirでgoogleのシステムを見学させてもらうと暇つぶしにはなるな。googleっていうオブジェクトの中に色々な処理をぶっこんでる。
    760 : Name_Not - 2014/02/28(金) 23:54:41.44 ID:??? (+5,-29,-1)
    >>751
    おめでとう!
    AWESOME HACKER のお墨付きだね
    761 : Name_Not - 2014/03/01(土) 04:08:50.09 ID:??? (+19,-23,-15)
    http://jsperf.com/createinputbutton
    innerHTML+=がめちゃくちゃ遅いのは書き方が悪いんでしょうか
    762 : Name_Not - 2014/03/01(土) 04:26:51.17 ID:??? (+33,-29,-63)
    >>761
    innerHTML+=は実行する度に対象の要素の子孫要素を破棄、
    innerHTMLを再パース→要素作成が行われるから、圧倒的に遅くなる
    763 : 761 - 2014/03/01(土) 04:58:36.72 ID:??? (+62,+29,-4)
    >>762
    こんな時間にありがとうございます
    さっそく+=で書いていた部分を改めようと思います
    764 : Name_Not - 2014/03/01(土) 07:48:06.72 ID:??? (+2,-25,-4)
    +=よりjoinの方が早いと聞いたことがあるような・・
    765 : Name_Not - 2014/03/01(土) 12:04:45.61 ID:??? (+57,+29,-22)
    普通は文字列を完成させた後に最後に一回だけinnerHTMLに突っ込むんだよ
    766 : Name_Not - 2014/03/01(土) 18:56:15.90 ID:??? (+7,+29,-54)
    >>1
    オブジェクト指向は愚かな考え。排便メソッドを実装した人間クラスから美少女クラスが作れない。
    http://toro.2ch.net/test/read.cgi/tech/1393660194/49
    767 : Name_Not - 2014/03/02(日) 02:19:36.66 ID:??? (+103,+29,-30)
    再帰関数の中でそれが最初に呼ばれたものなのか、
    再帰で呼ばれたものなのかを判定するいい方法はありませんか?
    768 : Name_Not - 2014/03/02(日) 03:52:53.24 ID:??? (+100,-29,-9)
    >>767

    function a() { // ← 最初
     function b() { // ←二回目以降
      b();
     }
     b();
    }
    769 : Name_Not - 2014/03/02(日) 12:47:11.14 ID:??? (+4,-29,-36)
    >>767
    >>768が解だと思いますが、それは再帰する必要がありますか?
    for, while 文で十分ではないですか?
    770 : Name_Not - 2014/03/02(日) 14:56:57.51 ID:??? (+57,+29,-24)
    再帰はループに書き直せるってのは常識
    ループで書くよりわかりやすい場合に再帰を使う
    771 : Name_Not - 2014/03/02(日) 15:52:23.88 ID:??? (+71,+29,-21)
    >>767
    そういうときは最初に呼ばれるのと再起用のを分けて書けばいいんじゃない?
    772 : Name_Not - 2014/03/02(日) 16:37:15.89 ID:??? (+82,-30,-35)
    再帰呼出し時には引数を付けて判定したらいい
    function hoge(a,b,recursive){
    if (!recursive){
    //1回目
    } else {
    // 2回目以降
    }
    }
    773 : Name_Not - 2014/03/02(日) 17:24:17.47 ID:??? (+69,+27,-6)
    >>772
    再帰回数にもよるが、毎回判定コストが発生するのでお勧めしない
    774 : Name_Not - 2014/03/02(日) 17:32:06.21 ID:??? (+115,+16,-5)
    毎回関数生成のほうがコスト高くないか
    775 : Name_Not - 2014/03/02(日) 17:54:34.72 ID:??? (+68,+29,-9)
    >>774
    毎回関数生成する必要はないと思うが、何の話?
    776 : Name_Not - 2014/03/02(日) 20:00:08.89 ID:??? (+61,+29,-22)
    元関数を呼ぶたび毎回生成されるが?はい論破
    777 : Name_Not - 2014/03/02(日) 20:03:43.97 ID:??? (+57,+29,-18)
    元関数を呼ぶたび毎回生成されません。はい論破
    778 : Name_Not - 2014/03/02(日) 20:08:00.51 ID:??? (+6,-29,-47)
    >>776
    それは「関数呼び出し」のコストなのでは?
    関数生成コストというなら「new Function」や「var fn = function () {};」を想定する。
    779 : Name_Not - 2014/03/02(日) 20:12:22.09 ID:??? (+38,-25,-8)
    768のコードだとaを呼び出す度にbが実体化される
    bの定義を外に出せばいい
    780 : Name_Not - 2014/03/02(日) 20:18:44.02 ID:??? (+57,+29,-2)
    おまえらみんなロンパールームに行ってろ
    781 : 773 - 2014/03/02(日) 20:23:42.19 ID:??? (+76,+29,-56)
    >>779
    そういう意味か
    理解した、ありがとう

    >>774が「>>768の毎回関数生成のほうがコスト高くないか」ならもう少し考えたんだが、>>772だけ読んで判断してた
    bの定義を外に出せば、>>768の方がコストが安いのは明らかだから意見としては変えないけどね
    782 : Name_Not - 2014/03/02(日) 20:31:56.45 ID:??? (+57,+29,-35)
    対象を省略するのは最近の文化なのか
    ゆとり世代に「もう少しちゃんと説明しろよ」と思うことはよくあるが、エスパー力を試されているようでいい気はしない
    783 : Name_Not - 2014/03/02(日) 20:36:36.04 ID:??? (-2,-30,-16)
    毎回関数生成すると思ってるなら
    こう書けば安心するだろ。

    function a() { // ← 最初
     var b = function () { // ←二回目以降
      b();
     }
     b();
    }
    784 : Name_Not - 2014/03/02(日) 20:49:27.04 ID:??? (+57,+29,-14)
    っつーか説明の為に簡潔に書いてるんだから、実践するには適宜読み取れって話でしょ。
    785 : Name_Not - 2014/03/02(日) 20:58:02.89 ID:??? (+56,+28,-10)
    適宜読み取った結果、関数呼び出しコストと勘違いされたんだろ
    786 : Name_Not - 2014/03/02(日) 21:00:06.48 ID:??? (+57,+29,-27)
    生成コストがとかいいたいなら
    まずベンチマークでもして証拠を出さないとダメでしょ。
    遅いかもしれませんじゃ誰も信用しない。
    787 : Name_Not - 2014/03/02(日) 21:05:12.76 ID:??? (+11,-30,-28)
    >>767
    1回目を判定したいなら、これで十分だと思うが…。

    function a() {
     b();
     while (条件) {
      b();
     }
    }
    function b() {
     // 処理
    }
    788 : Name_Not - 2014/03/02(日) 21:12:09.22 ID:??? (+18,-28,-51)
    >>768における function b の生成コストは発生するとしても1回だけ
    >>772は毎回判定コストを払う上に function hoge の生成コストは初回に払ってる

    しっくりこないのでベンチマーク待ち
    789 : Name_Not - 2014/03/02(日) 21:20:30.88 ID:??? (+57,+29,-21)
    再帰に関する話題は別に js に限った話じゃないよね
    js に特有の再帰を最適化するための機能ってあるの?
    790 : Name_Not - 2014/03/02(日) 21:40:39.88 ID:??? (-1,-29,-18)
    for, while はJITで最適化されているという話を聞いたことがあるが、再帰も最適化されてるのだろうか
    791 : Name_Not - 2014/03/02(日) 22:35:39.35 ID:??? (+91,+29,-4)
    再帰と言えばスタック消費というイメージだけど素人っぽいかな
    792 : Name_Not - 2014/03/02(日) 23:07:45.77 ID:??? (+34,-27,-11)
    関数呼び出しコストはif文実行コストの100倍くらいあるから
    一つのif文なんぞ気にしてもしょうがないよ
    793 : Name_Not - 2014/03/02(日) 23:28:07.00 ID:??? (+62,+29,-22)
    >>792
    払わなくてもいいif文のコストを払う理由にはならないし、100回評価せれば等価になる
    794 : Name_Not - 2014/03/03(月) 01:11:44.70 ID:??? (+57,+29,-21)
    限界まで最適化する時はインライン化されない関数呼び出しは論外だ
    795 : Name_Not - 2014/03/03(月) 01:59:34.17 ID:??? (+8,-29,-11)
    return (x >> 16) & 32767;
    これの>>ってなんですか?
    これって返り値が2つってことでしょうか?
    796 : Name_Not - 2014/03/03(月) 02:28:06.49 ID:??? (+57,+29,-28)
    どんだけ初歩的な質問やねん…しゃーないな「JavaScript 演算子」で調べろ
    797 : 795 - 2014/03/03(月) 02:31:37.37 ID:??? (+57,+29,-19)
    事故解決しました
    wikiに載ってるようなこと質問してすみません^^;
    798 : Name_Not - 2014/03/03(月) 04:09:01.00 ID:??? (+28,-4,-44)
    rangeの境界となるノードとオフセットの値を使って、
    その境界の直前、直後の要素を取得したいのですが
    そういうことを簡単にする方法ありますか?
    よくありそうなケースなので、ライブラリで提供しているのではと思うのですが
    799 : Name_Not - 2014/03/03(月) 06:25:44.32 ID:??? (-2,-30,-45)
    直前、直後の定義は自明でない

    <span><span><div><div>境界</div>あ</div><span><span>

    この場合の直前、直後の要素とは?
    800 : Name_Not - 2014/03/03(月) 06:38:19.62 ID:??? (+70,+29,-73)
    >>791-794
    ES6から適切な末尾再帰はフレームを継続する=コールスタックを消費しない=ループに最適化できる事になった
    まだ実装してるエンジンはないが近いうちにそうなるから敬遠しなくていいよ
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / JavaScript スレッド一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

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


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