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

    私的良スレ書庫

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

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

    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
    851 : Name_Not - 2017/03/14(火) 04:43:02.12 ID:???.net (+75,+29,-80)
    >>844
    それぞれ最適化の手法がちがうんだからケースによって差が出るのは当たり前だろう
    随分不毛な言い争いが続くとおもってたら吉火狐信者が暴れてたんだな

    V8やnode.js、これらは今のweb界隈の宝だよ
    いつ消滅してもだれも困らないFireFoxにしがみつくのは勝手だが質問スレ荒らすのはやめような
    852 : Name_Not - 2017/03/14(火) 04:45:49.30 ID:???.net (+105,+30,-99)
    >>850
    おまえ本当に発達障害かなにかか?
    ここまできても話のコアがまったく分かってないな
    チョコレートケーキはケーキがベースであり、焼き菓子もベースなんだよ
    どちらかを振り回してもう一方を否定してる姿が滑稽すぎるって話だよ

    要するにおまえが哀れってことな
    853 : Name_Not - 2017/03/14(火) 04:54:51.69 ID:???.net (+105,+29,-113)
    >>849
    申し訳ないがよく理解できない
    エンジン内部でjsコードをコンパイルして実行するときに
    あるオブジェクトのあるプロパティの操作とか固定のものを内部でキャッシュしたりしてて
    ベンチのような特定の何かを超回数ループだとキャッシュが効くから早くなるけど
    そうでなければキャッシュが効くなくなる
    という感じでいいのかね
    854 : Name_Not - 2017/03/14(火) 05:14:15.70 ID:???.net (+109,+29,-43)
    >>852
    何が言いたいのか全くわからん。
    ベースにこだわりたいんか?

    BlinkとWebkitは(2014年時点ですでに)半分以上
    違うものだってのがいちばん重要な点だろ

    ベースのベースのベースのベースは
    ぜんぜん違うものなんだよ。
    855 : Name_Not - 2017/03/14(火) 05:28:32.72 ID:???.net (+57,+29,-32)
    > チョコレートケーキはケーキがベースであり、焼き菓子もベースなんだよ
    この例えも変だし。
    これはベースじゃなくて単なる包含関係
    カテゴリにすぎない
    856 : Name_Not - 2017/03/14(火) 05:33:46.18 ID:???.net (+147,+29,-113)
    >>853
    V8はプロパティに高速でアクセスする隠しクラスをJITに仕込んでいるんだが、
    それが静的型付けを前提にしているからプロパティを付け足すだけで低速化するって話

    最小構成で環境が固定されてるベンチでなら速く動くが、フレームワークやライブラリ挟んで規模を広げた実際の環境では極端に遅くなる仕様だよ
    857 : Name_Not - 2017/03/14(火) 05:35:57.21 ID:???.net (+74,+29,-29)
    >>854
    webkitベースじゃん
    バカなの?

    釣りかとおもったが真正の吉外かよ
    858 : Name_Not - 2017/03/14(火) 05:43:14.31 ID:???.net (+106,+29,-8)
    >>856
    実際に他のブラウザと比較してどの程度の速度ななるのかデータはないの?
    859 : Name_Not - 2017/03/14(火) 05:43:25.33 ID:???.net (+37,-29,-163)
    フォークとベースは違うものだよ。
    ベースは日本語で基礎を意味する言葉だが
    その言葉の通り、ある製品の基礎になっていれば、それはベース

    あるライブラリを使用した別のライブラリは、あるライブラリをベースとしていると言っていい。
    例えば、jQuery Mobileフレームワークは、jQueryをベースとしてる。

    しかしフォークの場合は違う。BlinkがWebkitを含んでいるわけじゃない
    BlinkそのものがWebkitと同等のもの。
    だからBlinkはWebkitをフォークして作られたものであってベースとはしていない
    860 : Name_Not - 2017/03/14(火) 05:44:26.82 ID:???.net (+43,-29,-20)
    >>857
    BlinkはWebkitをベースとしていない
    Webkitをフォークしたものだ。
    そして2014年時点で半分以上入れ替わっている。
    861 : Name_Not - 2017/03/14(火) 05:48:49.06 ID:???.net (+82,+29,-102)
    >>856
    先生、念のため質問させて下さい
    「膨大な量のelement.style.***へのアクセスの高速化とかで
     役立っていてベンチ最適化現象はただの波及効果」
    って線はないもの?
    実用性なのかベンチ特化性なのか判断できない自分

    逆にそういう仕組みだと大きいオブジェクト/配列を作って
    データを追加していったりするとアホ程重いとかになるのかな
    prototype作って回せといわれればそれで終わりな気もするけど
    862 : Name_Not - 2017/03/14(火) 06:12:16.50 ID:???.net (+95,+29,+1)
    >>859
    >>860
    いい加減見苦しい
    863 : Name_Not - 2017/03/14(火) 07:36:26.66 ID:???.net (+47,+29,+0)
    ただの偏屑かよ
    864 : Name_Not - 2017/03/14(火) 09:20:40.40 ID:???.net (+65,+29,-1)
    >>862
    見苦しいのはお前だよ
    865 : Name_Not - 2017/03/14(火) 11:04:49.75 ID:???.net (+73,+29,-19)
    >>858
    わざわざ書いてやったんだから>>849をChromeで動かしてみろよ
    866 : Name_Not - 2017/03/14(火) 11:16:06.12 ID:???.net (-1,-29,-18)
    そもそも今のSafariはWebkit2系だからかつて言っていたWebkit系とも別物と考えたほうがいいよ。
    867 : Name_Not - 2017/03/14(火) 11:32:29.13 ID:???.net (+49,+21,-32)
    上の方で出てた無名関数とかの話ってES2015を使えるような環境だと普通にクラス構文使えるし特にメリットなさそうなんだけどどう?
    868 : Name_Not - 2017/03/14(火) 11:37:37.97 ID:???.net (+47,+15,-21)
    Wevkit切り捨てはモバイルサイト切り捨てといってるようなものだが、今時珍しい考え方だな
    869 : Name_Not - 2017/03/14(火) 12:36:17.20 ID:???.net (+94,+29,-41)
    javascriptって数ある言語のなかでも一番テクニカルで難解な言語なのに、スレに居座るのは素人丸出しの池商多いよね
    870 : Name_Not - 2017/03/14(火) 12:36:22.77 ID:???.net (+201,+29,-46)
    JavaScriptは繰り返しをループでも再帰でも書けると思いますが、
    こういうときは再帰の方がいいよとか、その逆があれば教えてください
    今気になってるのは条件によって途中でループを抜けたいためにforeachが
    使えないような繰り返しは、単にforやwhlieでまわすより再帰の方が
    すっきり書けるのかなとかそれくらいなんですが
    871 : Name_Not - 2017/03/14(火) 13:01:20.19 ID:???.net (+65,+29,-4)
    >>870
    スタックの無駄遣いだろ
    872 : Name_Not - 2017/03/14(火) 14:08:20.47 ID:???.net (+4,-29,-19)
    >>868
    今はBlink or Webkit2
    Wevkitのシェアは0
    873 : Name_Not - 2017/03/14(火) 14:10:10.51 ID:???.net (+75,+29,-23)
    >>870
    ループで纏まりきらなくなってきたら複数の関数の再帰に分割すると良いことがある
    874 : Name_Not - 2017/03/14(火) 14:17:51.00 ID:???.net (+75,+29,-106)
    >>869
    理解しなくてもそれなりに使えるって事はある意味理想的なんじゃないか?
    つうかJSの挙動マスター出来てたとしても、
    ここで暗黙の型変換利用したトリッキーな技使います、セミコロン省略します、プロトタイプベースOOPします、とか言うと大批判間違いなしでしょ。
    875 : Name_Not - 2017/03/14(火) 14:51:17.45 ID:???.net (+22,-30,-26)
    >>870
    再帰を使うぐらいなら、for,while,for-ofを使うけどね
    関数を使いたいなら、Array#someを使えばいいじゃない
    876 : Name_Not - 2017/03/14(火) 14:56:03.77 ID:???.net (+279,-30,-29)
    >>875
    obj = {children:[obj,obj...]}

    function sendChildren(obj){
     for(let child of obj.children){
      sendChildren(child);
     }
    }

    こういう処理を再帰無しで書くにはどうすれば良いの?
    877 : Name_Not - 2017/03/14(火) 14:58:40.08 ID:???.net (+63,+30,-115)
    パフォーマンスの問題だろ
    あんまりループをネストしたりして余りにでか過ぎる関数作ると殆ど最適化してくれ無くなるからな
    反対に極めて小さな関数で有れば完全に埋め込んで最適化かけてくれる
    一方再帰中に全変数で最適化のためのマイクロタイプが絶対に変化しないようにするのはちょっと大変
    878 : Name_Not - 2017/03/14(火) 14:59:48.63 ID:???.net (+74,+29,-11)
    >>876
    それのどこが「条件によって途中でループを抜けたい(>870)」なの?
    879 : Name_Not - 2017/03/14(火) 15:00:57.86 ID:???.net (+67,+29,-21)
    >>876
    無限ループ内で自分でスタックとか管理してオブジェクトを見渡せば出来る
    880 : Name_Not - 2017/03/14(火) 15:08:05.81 ID:???.net (+72,+29,-50)
    >>876
    仮想コードにしても動くコードにしてから張り付けて貰えないもんかね
    こっちに足りない部分を補完させて「それは違います」なんて言われても困るし、面倒くさい
    881 : Name_Not - 2017/03/14(火) 15:11:00.37 ID:???.net (+76,+29,-32)
    >>876
    仮想コードにしても動くコードにしてから張り付けて貰えないもんかね
    無駄な手間を回答者に押し付けるなといいたい
    882 : Name_Not - 2017/03/14(火) 15:12:07.06 ID:???.net (+57,+29,-5)
    投稿できてないと思って二重投稿してしまった、すまん
    883 : Name_Not - 2017/03/14(火) 15:23:20.18 ID:???.net (+57,+29,-35)
    多次元配列の一次元化アルゴリズムをここの奴らに聞いても無駄だよ

    そのコード僕ちゃんのブラウザに貼り付けても動かないぞって底が知れるような文句付ける奴ばかりだから
    884 : Name_Not - 2017/03/14(火) 15:29:28.57 ID:???.net (+115,+29,-41)
    > そのコード僕ちゃんのブラウザに貼り付けても動かないぞって底が知れるような文句付ける奴ばかりだから
    お前さんは>>876のコードが動くブラウザを使っているのか?
    885 : Name_Not - 2017/03/14(火) 15:46:06.19 ID:???.net (+21,-30,-15)
    >>876
    element.children[0].children[0] なら [0,0,0] のように index 値を管理すれば再帰なしでも書けると思うよ
    886 : Name_Not - 2017/03/14(火) 15:55:46.08 ID:???.net (+109,+29,-32)
    >>884
    抽象化されたコードくらい頭の中で実行しろよ

    お前がほざいてることは数学の授業で「yって何ですか、電卓にyなんてありませんよ」と訊くくらいレベルが低いと知れ
    887 : Name_Not - 2017/03/14(火) 16:01:37.03 ID:???.net (+94,+29,-37)
    え、お前らこの程度のコードをわざわざコンソールに貼って実行してるの?
    ちょっとドン引きなんですけど
    888 : Name_Not - 2017/03/14(火) 16:08:48.47 ID:???.net (+57,+29,-8)
    また自分より下を作ろうと必死なカスがわいてるのかよ
    889 : Name_Not - 2017/03/14(火) 16:14:19.81 ID:???.net (+94,+30,-72)
    >>886
    >>876は無限にchildrenを参照し続けるだけで止まる気配がないんだが(多次元構造を参照したいという意思だけは伝わるがね)
    このレベルの質問者にアドバイスだけで作れるわけはないが、動くようにコードを補完してやるのが面倒くさい
    「アドバイスしか出てこない→質問者が分からない」という未来が透けて見えるぞ
    890 : Name_Not - 2017/03/14(火) 16:16:34.11 ID:???.net (+75,+30,-38)
    あと、まあ抽象化されたコードだkで伝わるというなら、抽象的な回答だけで質問者に伝わらないと公平でないよな
    それで伝わるとは思えん質問だから解決するわけがないんだが

    >>887
    コンソールで実行するまでもなく動かない事は自明じゃないかね
    891 : Name_Not - 2017/03/14(火) 16:23:01.30 ID:???.net (+92,-30,-91)
    >>889
    馬鹿なお前の為に書いてやったぞ

    const obj = {children:[{children:[]},{children:[]}]};

    function sendChildren(obj){
    console.log(obj);

    for(let child of obj.children){
    sendChildren(child);
    }
    }

    sendChildren(obj);

    無限に参照し続けるってむしろお前がどんな補完したのか気になるわ
    892 : Name_Not - 2017/03/14(火) 16:28:45.24 ID:???.net (+43,-30,-41)
    >>891
    const obj = {children:[{children:[1]},{children:[2]}]};
    にして実行してみな
    893 : Name_Not - 2017/03/14(火) 16:35:04.11 ID:???.net (+130,+29,-115)
    無限に参照はいいすぎたが、「無限に参照し続けるうちに例外で止まる」が正しいな
    childrenはDOM関連の仮想コードだろうから、childrenが空でないと動かないコードなど役に立たん
    で、これを修正していくと>>876から大分離れたコードになる
    初めから「面倒くさい」としかいってないんだが、なぜ馬鹿にされるんだろうな
    894 : Name_Not - 2017/03/14(火) 16:38:01.49 ID:???.net (+82,+20,-22)
    >>892
    オブジェクト配列の入れ子なのに何で終端を数値配列にしてんの?
    895 : Name_Not - 2017/03/14(火) 16:38:51.66 ID:???.net (+57,+29,-2)
    お前らアホの相手するのやめろよ
    スレのレベルが下がる
    896 : Name_Not - 2017/03/14(火) 16:39:02.09 ID:???.net (+7,-29,-47)
    傍から見てると良く分からん
    childのいずれか1つにプロパティchildrenが無かったらそこでエラー吐いて止まる?
    全てのchildにプロパティchildrenがあったらエラーにならず普通に終わる?
    897 : Name_Not - 2017/03/14(火) 16:40:54.70 ID:???.net (+66,+23,-21)
    >>894
    オブジェクト配列しか存在しないと誰が決めたの?
    898 : Name_Not - 2017/03/14(火) 16:42:34.88 ID:???.net (+76,+29,-72)
    >>893
    お前本物の馬鹿っぽいから優しく教えてやる
    バグってんのはお前の補完(笑)した部分だし、普通に変数の省略部分を展開してやれば>>891の通りちゃんと動く

    それとfor of文で無限とか実装的にあり得ないからよそでは言うなよ、確実に笑われるからな
    899 : Name_Not - 2017/03/14(火) 16:42:54.76 ID:???.net (+32,-29,-21)
    >>896
    childのいずれか一つが「child.childrenが存在しない」もしくは「child.childrenがイテレータではない」だったら例外で止まる
    900 : Name_Not - 2017/03/14(火) 16:44:16.77 ID:???.net (+12,-28,-2)
    >>897
    obj ← これが数値を示すように見える?
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / JavaScript スレッド一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

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


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