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

    私的良スレ書庫

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

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

    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 : Name_Not - 2014/05/10(土) 18:42:31.96 ID:??? (-1,-29,-19)
    これが現実

    IE8 50ヶ月連続1位 - 4月ブラウザシェア
    http://news.mynavi.jp/news/2014/05/07/066/
    252 : Name_Not - 2014/05/10(土) 18:58:35.74 ID:??? (+69,+29,-130)
    >>246
    > jQueryやlodashも標準仕様全ての上位互換じゃないから

    他の言語を使っている人からすれば意味不明だなこれ。

    たとえばここにRubyのライブラリがたくさんあるわけだが
    http://rubygems.org/
    それらは標準仕様すべての上位互換か?

    ライブラリに何を求めているのだろうか?
    古いブラウザ用に標準仕様を満たすためのもの?
    そんなわけがない。標準仕様を実装するのはライブラリの仕事ではない。

    長らくJavaScriptの世界にライブラリと呼べるものがなかったからだろうか
    ライブラリを互換性を保つためのものだと勘違いしている人がいる。
    253 : Name_Not - 2014/05/10(土) 19:02:41.85 ID:??? (+15,-29,-56)
    >>250
    jQueryやlodashも、polyfillするコード群も、標準仕様の機能を含むからライブラリと呼ぶべきではないってこと?
    254 : Name_Not - 2014/05/10(土) 19:05:07.11 ID:??? (+22,-7,-44)
    >>253
    含むだけなら、「Polyfill + ライブラリ」だろ
    屁理屈言ってるんじゃねーよw
    255 : Name_Not - 2014/05/10(土) 19:11:59.58 ID:??? (+62,+29,-51)
    重要なのは関数言語的パラダイム変換とライブラリが連動しているということ
    標準機能だけで「悟り」を得るのは不可能
    rubyでもpythonでも、もちろんJSでも不可能だった悟りを俺はlodashで得た
    256 : Name_Not - 2014/05/10(土) 19:12:44.51 ID:??? (+62,+29,-143)
    jQueryやlodashに含まれてるのは
    ブラウザ間での非互換性を解決する機能であって
    標準仕様そのものじゃないけどな。

    たしかprototype.jsには標準機能を満たすための
    実装が含まれていたけど、早期実装してしまったために
    あとから標準になった仕様と同じ名前のメソッドで
    動きが違うという別の問題を起こしてしまったけど。
    257 : Name_Not - 2014/05/10(土) 19:57:50.21 ID:??? (+69,+29,-19)
    何この終わりのない宗教戦争
    >>246が全てを語ってると思うけどな
    それ以上はただの個人的な感情のぶつかり合いだ
    258 : Name_Not - 2014/05/10(土) 20:01:53.19 ID:??? (+57,+29,-3)
    意味不明w
    すべてを語っているどころか情報量ゼロじゃねーか
    259 : Name_Not - 2014/05/10(土) 20:20:59.69 ID:??? (+32,-28,-39)
    とりあえず、>>184のコードでlodashが糞遅いということを示しておこう。
    http://jsperf.com/productlodashvsrow

    forループよりも10倍以上遅いんだがw 予想以上に糞w
    260 : Name_Not - 2014/05/10(土) 20:21:11.55 ID:??? (+56,+28,-55)
    jQueryやlodashも標準仕様も一長一短
    どっちがいいかケースバイケース
    lodashで悟りを得るとか言ってるのはただの信者でしょ
    261 : Name_Not - 2014/05/10(土) 20:48:13.33 ID:??? (+57,+29,-27)
    一長一短ww
    「右の反対は左」みたいなことを言って悦に入れる頭の悪さが羨ましいわ
    262 : Name_Not - 2014/05/10(土) 20:53:10.50 ID:??? (+101,+29,-59)
    >>259
    それはまともな反論だな
    たしかに単純に速度だけで言うと、当然ながら遅くなる
    コストの高い関数呼び出ししまくりだし。
    でもボトルネック以外のところは10倍遅くても体感は変わらないし、
    その遅さを余裕で帳消しにするメリットがあるわけだ
    263 : Name_Not - 2014/05/10(土) 21:36:31.44 ID:??? (+77,+29,-4)
    >>262
    帳消しにするメリットとは?
    264 : Name_Not - 2014/05/10(土) 21:40:14.77 ID:??? (+49,-29,-143)
    >>263
    たとえば、JavaScriptのforEach。
    なんでforがあるのに作られたと思う?
    それは、作るのが早く、バグが少なくなるから。

    lodashは基本的にこのような考え方で作られている。
    もっといい方法があるということは、JavaScript自身で
    証明されているんだよ。

    lodashはそれを先行実装しているだけ。
    ECMAScript 10ぐらいになったら、lodashの
    今のメソッドを全部実装するかもね。
    265 : Name_Not - 2014/05/10(土) 21:41:31.83 ID:??? (+57,+29,-22)
    なるほど、未来のJavaScriptを今すぐに
    使えるようになるってわけだな。
    266 : Name_Not - 2014/05/10(土) 21:50:35.98 ID:??? (+63,+29,-113)
    未来のJavaScriptをすぐに使えるっていうのは
    わかりやすいメリットだな。

    forEachもそうだけど、JavaScriptを見ていると
    クロージャーを引数に取る関数ってのが増えてきている。

    アロー演算子というクロージャーを引数にとる関数を
    使いやすくする機能も出来た。

    この流れは主流になるんじゃないかな。というか、もう主流かな。
    lodashを使えばこれが今すぐ現実になる。
    267 : Name_Not - 2014/05/10(土) 22:39:15.09 ID:??? (+76,+29,-142)
    >>264
    「作るのが早く、バグが少なくなるから」の具体例は?
    forに対してforEachのメリットは何となくわかるけど、あなたの説明には具体性がなく説得力にかける

    それにforEachはES5であってlodashではないからlodashのメリットが全く伝わってこない
    lodashが先行仕様になってる理由も説明できてないように読めるけど、もっと具体的に話して欲しい
    268 : Name_Not - 2014/05/10(土) 22:48:01.17 ID:??? (+52,+29,+0)
    なんでかまうのか
    269 : Name_Not - 2014/05/10(土) 22:50:51.82 ID:??? (+56,+28,-47)
    アロー演算子とあるか、ライブラリで演算子を拡張できるものなのか
    270 : Name_Not - 2014/05/10(土) 22:52:58.98 ID:??? (+63,+30,-103)
    オブジェクト指向以後は、オブジェクト指向より前には戻れない
    しかし、オブジェクト指向のメリットを言葉で説明するのはなかなか難しい
    関数型言語のメリットもこれに似ている
    「これは良いものだ」と分かるが、良さを説明するのは難しい
    しかし一言で言うと、コードが美しくなる
    271 : Name_Not - 2014/05/10(土) 22:55:19.02 ID:??? (+3,-30,-73)
    272 : Name_Not - 2014/05/10(土) 23:04:36.97 ID:??? (+83,-30,-191)
    >>267
    まずさ、前提として
    lodashにforEach相当のものがあるって知ってる?

    あと、lodashのAPI一覧。forEachのお仲間だよ。
    http://lodash.com/docs

    Arraysだけでこれだけある。Collections、Functions、Objects、Utilities、その他を入れるとこの4倍
    _.compact
    _.difference
    _.findIndex
    _.findLastIndex
    _.first
    _.flatten
    _.indexOf
    _.initial
    _.intersection
    _.last
    _.lastIndexOf
    _.pull
    _.range
    _.remove
    _.rest
    _.sortedIndex
    _.union
    _.uniq
    _.without
    _.xor
    _.zip
    _.zipObject
    273 : Name_Not - 2014/05/10(土) 23:14:27.37 ID:??? (+32,-29,-25)
    熱い議論の途中ですまんが
    今から使うならunderscoreよりもlodashを使うべきなの?
    274 : Name_Not - 2014/05/10(土) 23:15:48.09 ID:??? (+106,+29,-162)
    >>272
    「lodashに多数の関数が定義されてる」だけではメリットとはいえないと思う
    それならjQueryの方がよほどたくさんの関数やpluginがあるよ
    多数の機能が揃っているだけならplugin数の多いjQueryに軍配があがる
    というか、「たくさんの機能があるからいい」は短絡に過ぎると思うけど、如何?

    lodashにあるforEachはES5相当の機能だから、lodashを使う必然性がない
    lodashのメリットにはなりえないよ
    275 : Name_Not - 2014/05/10(土) 23:16:37.70 ID:??? (+68,+29,+0)
    >>272
    ゴミ箱いっぱいって感じだな
    276 : Name_Not - 2014/05/10(土) 23:16:50.52 ID:??? (+34,-29,-43)
    underscoreって単独でも使えるけど、
    backboneのおまけみたいで気持ち悪いんだよね。

    lodashの方が関数多いはずだし、
    lodashよりメリットあるの?
    277 : Name_Not - 2014/05/10(土) 23:17:36.10 ID:??? (+100,+29,-35)
    >>273
    用途に合ったライブラリを選べばいいだけで、無条件にどちらを選ぶってものでもないと思うよ
    両方使ってみて自分の感性に合うライブラリを使用するのが一番いい
    278 : Name_Not - 2014/05/10(土) 23:17:48.28 ID:??? (+95,+20,-10)
    >>274
    便利な関数が沢山定義されているのは
    明らかなメリットでしょ?
    279 : Name_Not - 2014/05/10(土) 23:19:51.80 ID:??? (+41,-29,-69)
    lodashとECMAScriptを見てると、
    JavaScript標準ライブラリの進化した先がlodashに見えてくるよ。

    forEachもそうだし、将来lodashの幾つかが
    JavaScriptにバックポートされてもおかしくないよね。
    280 : Name_Not - 2014/05/10(土) 23:20:20.45 ID:??? (+69,+28,-9)
    >>278
    便利な関数ならね
    でも、便利な関数が多数あることを説明できてないでしょ?
    281 : Name_Not - 2014/05/10(土) 23:22:23.48 ID:??? (+36,-30,-88)
    lodashの関数が便利かどうかなんて
    いまさら低レベルなこと言わないよねw

    これらの関数ってJavaScriptに搭載されていないだけで
    他の言語では普通に標準ライブラリだったりする。

    たとえばRubyに同等のものがたくさんある。
    http://docs.ruby-lang.org/ja/search/class:Array/version:2.1.0/
    282 : Name_Not - 2014/05/10(土) 23:27:01.67 ID:??? (+62,+29,-37)
    >>281
    lodashの関数が便利なのは当たり前で知らない人は低レベルなのか
    何か話が合わないようなのでこの辺で失礼するよ
    気を悪くしたらごめんね
    283 : Name_Not - 2014/05/10(土) 23:30:19.38 ID:??? (+109,+29,-71)
    >>276-277
    レスさんくす

    undersocreっておまけのような存在だったのか
    知らなんだ

    最近ここを覗くようになって頻繁にlodashが出てくるから
    underscoreと比べどんなメリットがあるのかと思ったんだ
    underscoreとlodashとの差分がポイントの1つなんだね。

    ともあれ >>277 の言うように実際に自分で使ってみて判断するのが一番なんだろうな
    284 : Name_Not - 2014/05/10(土) 23:30:37.20 ID:??? (+44,-29,-64)
    Array.prototype.forEach の起源は Lo-Dash なのでしょうか?
    私は Firefox が起源だと思っていたのですが…。
    285 : Name_Not - 2014/05/10(土) 23:30:45.43 ID:??? (+57,+29,-4)
    いえいえ消えてくれるのは
    本望なのでどんどん去ってください。
    286 : Name_Not - 2014/05/10(土) 23:34:15.20 ID:??? (+40,-29,-204)
    >>284
    forEach、つまりクロージャーを引数に取る
    ループは関数型言語起源だよ。
    lodashどころかECMAScritpでもFirefoxでもない

    そして、関数型言語起源のものを
    JavaScriptで使えるようにしたのが
    lodashなんだ。

    ECMAScriptではそのほんの一部しか採用されていないが、
    lodashであれば更に多くの関数型言語起源のものが使える。

    forEachがそうだがJavaScriptは関数型言語起源のものを採用しつつある。
    だからlodashを使うということは、将来のJavaScriptを使っているようなものなんだよ。
    287 : Name_Not - 2014/05/10(土) 23:38:56.41 ID:??? (+77,+29,-114)
    >>283
    確かに Lo-Dash の話題が多いようだけど、一部の狂信的な信者も常駐している感があるのでお気をつけを
    全部が信者とはいわないけど、Lo-Dash 関係の話題は自分で検証して事実確認するぐらいには疑っても損はないと思うよ
    結局、自分で使うものだからね
    他人に判断を委ねるぐらいなら、自分で検証して判断するのが一番いい
    288 : Name_Not - 2014/05/10(土) 23:41:46.83 ID:??? (+56,+28,-55)
    lodashの関数の有用性は今更考えることじゃないな。
    他の言語の焼き直しなんだし。
    289 : Name_Not - 2014/05/10(土) 23:43:42.84 ID:??? (+38,-29,-29)
    var hoge;の中の数値があるか?ってとき
    if(!hoge && hoge!=0)
    ってやってるんですがもっと一発でフィニッシュできる方法ありまっか?
    290 : Name_Not - 2014/05/10(土) 23:45:04.60 ID:??? (+55,+27,+0)
    話題が多いっていうかこの板じゃID出ないからね
    291 : 284 - 2014/05/10(土) 23:46:10.65 ID:??? (+69,+29,-95)
    >>286
    せっかく回答いただいたのに申し訳ないのですが、私の質問内容に沿う回答ではないようです。
    foreach が PHP 等の他言語に存在することは知っていますが、「それをJavaScriptに始めに取り込んだ実装が何であるのか」を質問しています。
    >>279で Lo-Dash が forEach の先行実装かのように説明されていたので気になっていましたが、そういうわけでもないんですね。
    292 : Name_Not - 2014/05/10(土) 23:47:33.89 ID:??? (+101,+29,-87)
    >>289
    それ、実は難しい問題だよ。
    何を数値とみなすのか。

    たとえば、16進数表記は数値としてみなすのか?
    指数表記は数値としてみなすのか?

    無限大(Infinity)は数値としてみなすのか。

    そこを答えてくれないかな?
    293 : Name_Not - 2014/05/10(土) 23:47:53.22 ID:??? (+41,-29,-26)
    >>289
    「数値があるか」の定義が不明だけど、typeof hoge === 'number' でいいんじゃない?
    294 : Name_Not - 2014/05/10(土) 23:49:30.85 ID:??? (+31,-29,-28)
    しらんけどforEachはFirefoxが先行だとしても
    それ以外はlodashが先行しているのが多いよ。
    あ、underscoreが先行かもしれないね。
    295 : Name_Not - 2014/05/10(土) 23:51:34.88 ID:??? (+55,+27,-26)
    相変わらず、lodash信者は適当な事ばかりいう
    296 : Name_Not - 2014/05/10(土) 23:53:53.96 ID:??? (+55,+29,-48)
    そういやあのバカは
    ちゃんとNGワードにしたんだろうか?
    あ、このレス見えないようにlodashって入れておこうwww
    297 : 284 - 2014/05/10(土) 23:55:07.19 ID:??? (+66,+29,-33)
    >>294
    そうですか、わかりました。
    参考までにお聞きしますが、lodashが先行している機能は何でしょうか?
    298 : Name_Not - 2014/05/10(土) 23:56:35.61 ID:??? (+10,-29,-4)
    >>297
    ここに書いてるよ。
    http://lodash.com/
    Features not in Underscore
    299 : 284 - 2014/05/10(土) 23:59:54.13 ID:??? (+3,-29,-13)
    >>298
    "Features not in Underscore" は先行仕様の説明ではありませんが…。
    300 : Name_Not - 2014/05/11(日) 00:00:18.81 ID:??? (-1,-29,-21)
    underscoreのコンセプトを深化させたのがlodash
    今からわざわざunderscoreをする必要はないんじゃないかな?
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / JavaScript スレッド一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

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


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