JavaScript 4©2ch.net
>>142 lodash使ってる。なんとIE6以上から対応してる。 実装不可能なものを除いて、ES5で提供されている関数が提供されてる。 Object.create相当のメソッドもある。 https://lodash.com/docs#create どうしてもES5だけでやりたいってわけじゃなく ES5で提供された便利な関数を使いたいならlodashオススメ。 lodashにはES5よりも多くの機能が追加されてる。 >>143 ありがとうございます。 ぐぐってみたら2016年1月以降は最新版のIEしかサポートされないんですね。 こういうのを境界にして考えるのですね。勉強になりました。 polyfillというのはes-shimsとかのことですよね?Object.createに対応してないので選択肢から外れました。 >>145 ありがとうございます。今回は素のJSでやりたかったのでlodashは使えません>< でももうすぐES6が出るしキリが無いですね ブラウザ対応状況とか考えるの諦めてlodashとかunderscoreとかそういうのに完全依存する方が正しいのかも >>146-147 Object.create はES3の範囲内で完全実装は出来ない為、制限付きを理解した上で polyfill を書く必要がある lodash は forEach 等で ES5 互換でないコードが見受けられるので ES 標準を目指すのであればお勧めしない コードを読む限りでは 仕様に忠実なライブラリではなく、独自の世界を構築するタイプのようだから underscoreって可読性低下しない? _から始まるってのがそもそも論外なんだけど… 知らない人間が見たら何だコリャ?ふざけてんのか? これを考えた奴は保守性を考慮しないオナニー馬鹿なのか?って思うだろ。 >>149 ま、普通使わない。 オナニーって言えばその通り。少なくとも個人的に使うのだったら文句言う アレはないが、プロジェクトなんかでこんなもの使ってる奴いたら、排除する。 >>149 > 知らない人間が見たら何だコリャ?ふざけてんのか? それを言い始めたら、$.hogeってなんだ?ってことにもなる。 >>150 > ま、普通使わない。 以外と使われてるよ? http://www.infoq.com/jp/news/2015/04/lodash-utility-library > JavaScriptユーティリティライブラリのlodashがバージョン3.5に達して,npmパッケージリポジトリの中で > 最も多く参照されるライブラリになった。もはや代用品などではなく,信頼できる選択肢のひとつだ。 http://matsukaz.hatenablog.com/entry/2014/04/09/082410 に上げられてるようなよく使う機能は、 オレオレ実装されるより、既知のライブラリのメソッド使って欲しい。 javascript使いってエンジニアとして未成熟なのか文系が多いのか、 保守性を考慮しないのばっかりだよな。 多言語では保守性において禁忌とされている事を平気でやる 先人が築きあげたバグを排除するコツのようなものをを完全に無視してる たぶん将来はjavascriptの仕様が整理されて、 jQueryとかunderscoreみたいな非直観的で腐ったキーワードを使うライブラリは完全非推奨になる。 >>152 だってJataScriptが使いにくいクソ言語じゃん。 細かいこと気にしてられないって、クソだから。 >>152 こういう関数の部分の保守性とかどうでもいいよw 単純に自分実装のライブラリに入れ替えれば済む話なんだから。 それより問題なのはフレームワークだ。 馬鹿が使うとフレームワークにガッチリ組み込まれて 別のものに変えるのがすごく大変になる。 >>151 > > ま、普通使わない。 > 以外と使われてるよ? だよな。Node関連では一番使われているライブラリだったはず。 何処かにデータが有ったはずなんだが。 好き嫌いは個人の好みとして、一番使われているという 事実を知らないとしたら、モグリだろうw あったあった。この記事だ。 lodash, あなたが既に使っているJavaScriptライブラリ http://www.infoq.com/jp/news/2015/04/lodash-utility-library JavaScriptユーティリティライブラリのlodashがバージョン3.5に達して, npmパッケージリポジトリの中で最も多く参照されるライブラリになった。 もはや代用品などではなく,信頼できる選択肢のひとつだ。 何の根拠もない「使われてない」は無視していいよ。 だって、本人が無知だから、使われていることを「知らない」という 状態でも、自分の知ってる小さな経験だけから 使われてないって発言するだろうからさw そんなことよりもNode.jsのREPLでアンダースコアが使えないのはどうすればいいの? REPL単体で使うぶんには別の名前を使っても気にならないけど、.loadで読み込むファイルでアンダースコアが 使われていた場合は、ファイルを書き換えなければならず、かなり気持ちが悪い こんな定番のライブラリで、Node.jsのことを考慮していない名前をデフォルトにするとも思えないから、 何か解決策はあると思うんだけど… >>149 perlのデフォルト演算子($_)の名残だと思ってた >>159 グローバル変数とローカル変数の違いわかってる? REPLで使うのはグローバル変数の_。 ローカル変数の_(lodash)が名前かぶっても 何の問題もないんだが。 名前かぶってわかりづらいというのなら、 var i だってずいぶん被ってるはずなんだが。 >>160 いやー、普通、_で思い出すのは、 C言語などで広く使われてる多言語の仕組みである GetTextの_関数でしょw あれだって、_で始まる関数なわけだけど、 何だこりゃの前に、普通GetText思い出すよね? >>149 は無知なんじゃないかって思うだけなんだが。 >>162 _で始まるって言い方はおかしかったな。 C言語系の_は名前が続くから識別に問題ないが、_だけというのがクソだって話 これを初めて拝んだとき、_だけを変数名にするなんて一体このバカはどんな教育を受けているんだと思ったわ。 >>163 うん。それでgettextは、_ だけの 関数名なんだが、恥の上塗りしてどうするの? >>161 流石にそれくらいは分かってるけど、UnderscoreやLodashは普通グローバルに読み込むものじゃないの? まさか関数ごとにrequireを書くわけでもあるまいし、少なくともvar iとは次元が違うものだと分かると思うんだけど… lodash使うアプリでグローバルなんて聞いたことがない。 普通nodeでライブラリを使うときは、 ローカル変数に、略 いわんでもわかるだろ? 知ってるならなw 訂正 lodash使うアプリでグローバルなんて聞いたことがない。 node使うアプリでグローバル変数なんて聞いたことがない。 CakePHPなんかの__()ならともかく、underscore.jsでGetTextの方の_を、 どうすれば連想できるのかわからない _を変数名にするのはゴミだってのは100人に聞いて99人が納得する話。 ほんとjQueryといい、javascriptのライブラリ作ってる奴は基地外だわ。 >> 166,167 何が言いたいのか分からんのだけど、ファイルの頭で var _ = require('lodash'); // またはunderscore とするのは十分、一般的な使い方じゃないか? 適当に検索したサンプルコードでも、ファイルの頭でrequireをしているものがほとんどだし >>170 デフォルトに近い機能を誰もタイプしたくないから >>171 はい、だからファイルの頭で var _ = require('lodash'); // またはunderscore とローカル変数に代入してるって言ってるわけですが。 >>173 それで>>159 に戻るんだが、そのファイルをREPLから.loadで読み込むと名前が衝突して困るという話なんだが 何かおかしいこと言ってるかな? >>174 それは作り方が悪いだけだろう。 自分で作ったものを自分でロードして 問題が起きたって騒いでいるだけ。 ヒント 普通はREPLでライブラリを読み込むときはrequireを使う。 >>175 だから、どのように作り方が悪いのかを>>159 で聞いているわけ >>176 何故qiitaが出てくるの? なんか話が通じない人多すぎ… ttp://stackoverflow.com/questions/5691901/using-the-underscore-module-with-node-js >>172 underscoreというものの存在を知ってる人間じゃないと、おふざけか本気なのか理解不能 知らない人でも直観的にわかるようにするべき。 _.なんていかにも意味ありげに書かれてたら、知らない人間はjavascriptに新しい構文でも出来たのかと勘違いする。 >>177 それは別な名前を使うってことじゃないの? それなら>>159 で書いたよ >>178 > だから、どのように作り方が悪いのかを>>159 で聞いているわけ 簡単な話。 .loadでAというファイルとBというファイルの 二つを読み込んだ時を考えればいい。 同じ変数を使っていれば、混乱が起きる。 だから.loadなんかを使っては駄目だ。 REPLはAというファイルの前に 別のファイルを読み込んでいると考えればいい。 nodeの標準に合わせてrequireで読み込め。 .loadは簡易なツールにすぎない。 >>180 _.なんていかにも意味ありげに書かれてたら、知らない人間は 普通調べる >>182 > .loadでAというファイルとBというファイルの > 二つを読み込んだ時を考えればいい。 これに関しては自分の場合は混乱が起きたことは無いな REPLで必要になるのは常に新しくロードされたものだから > nodeの標準に合わせてrequireで読み込め。 .> loadは簡易なツールにすぎない。 その簡易なツールとしての使い方を聞いたつもりだが、まぁうまい方法は無いってことで 答えてくれたことは感謝するよ、ありがとう >>183-184 こんな記述を許すなんて、webプログラマはどうかしてるわ C++等の堅牢な言語が理解できないからスクリプトに逃げたってのもあるのかねぇ javascriptって手作業感のあるかなりアナログな言語だよな。 コンパイルすれば型間違いやスペルミスを全部チェックしてくれるC++の方が楽だわ。 デフォルトで存在しなければならないような機能の構文は 可能な限り軽くしたい、というだけの話なのだが、 まあ、キチガイみたいだし、相手にする必要もなさそう。 >>187 >コンパイルすれば型間違いやスペルミスを全部チェックしてくれるC++の方が楽だわ。 静的検査なのに型安全じゃないクソみたいな型システム自慢されても…… >>186 $と_を選択したjQueryとundersocreの作者は天才だと思うぞ >C++等の堅牢な言語が理解できないからスクリプトに逃げたってのもあるのかねぇ ここ笑うところでOK? スクリプト言語なら_とかもありだと思うよ 直感的に理解不能なのはむしろC言語のテクニカルすぎるポインタ操作とか、処理系依存処理 _なんて使わないで堂々と大文字でUNDERSCORE.でいいのに 面倒くさいから_にしたなんていっても、 UNDERSCOREのようなループ処理は他の頻出するキーワードに比べてそう頻繁に使うもんじゃないから、 UNDERSCOREと打ち込むくらい苦にはならない むしろ見ただけでUNDERSCOREとわかるメリットのほうが大きい。 >>190 > $と_を選択したjQueryとundersocreの作者は天才だと思うぞ 天才じゃなくてズルいと思ったな。 そんな特等席を取るなんてw でもjQueryとlodashなら許せるよ。 DOM操作目的が多いJavaScriptで標準よりも 優れたライブラリに仕上げたjQueryは高く評価できるし。 JavaScriptという言語自体に足りない(そして他の言語にはある) 基本的な機能を備えたlodashも一文字名前空間を与える価値はある。 これ以外に一文字を与える価値が有るものなんてまず無いだろう。 (あえて言うのなら多言語のためのgettextだろうね) http://ja.wikipedia.org/wiki/Gettext > まず、gettextが利用されるようソースコードの修正を行なう。これはほとんどのプログラミング言語において、 > ソースコード中の文字列がまずgettext関数へ渡されるよう、文字列をラップしていく作業となる。 > 読みやすさやキータイプの手間を省くため gettextには通常 _ のエイリアスが付けられる。C言語では、 > > printf("My name is %s.\n", my_name); > > を以下のように変更する: > > printf(_("My name is %s.\n"), my_name); >>198 開発効率と可読性が悪いだろw なんで多く出てくるものに、 そんなに長い情報量を与えないといけないんだ? 圧縮の基本だぞ。 多く使うものに短いビットを割り当てるのは。 >>200 そんなに画面を占領するほど出てこないだろ。 圧縮率が気になる人は var, a, b, c; でも使えばいい _ が気にならないなら Java でも PHP でも同じように使えばいい それが誰が見てもコードの意図を理解できるものであると思うのならな > それが誰が見てもコードの意図を理解できるものであると思うのならな ん? 馬鹿が見てもわかるコードなんてあると思うのか? 何の知識も持たない奴が、forとか見て、繰り返しだな。なんてわかると思うのか? 知識があるプログラマが見てわかれば十分だろw >>203 ←こういう極論振りかざす馬鹿はプロジェクトから最初に外したいねぇ♪ そもそもjQueryの根幹を成していたcssQuery作者はJSに習熟していたから$なんて使わなかったが、 当時JS初心者が浅い知識で無茶苦茶に作ったprototypejsが流行っていてユーザーがそこで$にすっかり慣れてしまっていたから、彼らを取り込もうと図った時に敢えて$を使った。 jQueryリリース日から知っているのって、俺以外で何人いるかな、まあ、ライバル心が凄くて、露骨に他のライブラリーを威圧する画像を貼っていて苦笑ものだった。 実際、query api がなかった当時において、飛び抜けた存在だった。 誰も知らないだろうが、既に消した10年ほど前のブログで俺が日本で最初にjQueryにお墨付きを出したので、変な責任感があって、今や粗大ゴミと化したjQueryを徹底的に駆除しなきゃならないと思っている。 >>205 今じゃすっかり死に絶えたね prototype.jsは 未だに$使ってる奴は、PHPでもやってろって思うね。 どうでもいいが、underscorejsはグローバルで名前がかち合わないよう自動処理してるだろ。だから_にこだわりも何もないよ、あれは。あの作者はさすがだなと思う。 jQueryでみんなが慣れてしまったメソッドチェーンはOOPであるJSならではの妥協の産物であって決して素敵な何かではない。 > jQueryでみんなが慣れてしまったメソッドチェーンはOOPであるJSならではの妥協の産物であって決して素敵な何かではない。 メソッドチェーン便利じゃん メソッドチェーンを否定するなら、代わりに何を推すのだろうか >>206 > jQueryリリース日から知っているのって、俺以外で何人いるかな、まあ、ライバル心が凄くて、露骨に他のライブラリーを威圧する画像を貼っていて苦笑ものだった。 知ってるも何も、Internet Archiveに残ってるよ。 その画像ってどれのこと? https://web.archive.org/web/20060203025710/http ://jquery.com/ >>209 jQueryでみんなが慣れてしまったメソッドチェーンは jQueryができるより前から知っていたが、はて? そもそも、$ や _ の話にメソッドチェーンは関係なかろう vue.js でelを指定しない時にHTMLを生成できるって書いてある記事を見かけたのだけど、どうやればいいんだ? まあ名前付けが傲慢な感じはあるね prototypeとかqueryとかnodeとかbootstrapとか、 一般的なコンピュータ用語になんでもjs付ければ許されるのかと ここ5年くらい、Web屋の無知と傲慢が招いた名前空間の汚染が激しいように思う >>219 > ここ5年くらい、Web屋の無知と傲慢が招いた名前空間の汚染が激しい という無知 >>220 おっWeb屋だ、元気? ところでv8をビルドするときに使う bootstrapスクリプトの機序をどうやって検索したらいいか教えてくれよw >>221 v8のビルド方法で検索すればいいんじゃね? 検索したら、How to Download and Build V8っていうのが見つかったけど。 https://developers.google.com/v8/build?hl=ja >>219 世の中の大半は、おまえより生産的で知識豊富な人たちが開発したと思ってるけどね >>223 そういう話はキッチリソースつけて、話してくれや。 ま、ウェブ屋の大半が馬鹿なのは本当だろう 巨大なページに普通のjquery適用させて重い重い言ってるのよく見るしな 中古のスマホやタブレットでデザイナーに作られたようなjQuery満載の糞ページを表示させると電力不足を引き起こされてバッテリー残量が正確に認識されなくなってOSが緊急終了させられる。 今やスマホどころかタブレットもバッテリー内蔵で交換は困難/不可能だからバッテリーが寿命になっても使い続けられている端末はいくらでもある。 >>226 とにかく書き捨ての糞プロジェクトが増えた こんな流れはGoogleがつくった感じする 誰かのせいにして安心するのは間違ってる それは作った当人らの責任だろ 詐欺業者が横行してて 姉歯的案件だらけだよ 年金記録流出も起こるべくして起きた 関係無いけど久しぶりにJSLint使おうと思ったら随分変わってるのな つーか何で x /= 3; でストップするんだ?わけわからんのだが 他人が作ったコードをメンテすることになってJSDocアノテーションされてたので ドキュメント化しようという話になった 開発時にはがJSDoc Toolkit(https://code.google.com/p/jsdoc-toolkit/ )を使っていたようなのだが それはすでにサポート終了してテンプレートも消えていた それでJSDoc3(https://github.com/jsdoc3/jsdoc )を試しているのだがデフォルトのテンプレートが どうにも満足のいかないものだったので、テンプレートをいくつか探して試した なかには not found のエラーを出すものがあり、そろそろ疑問に感じてきた それで JSDoc を jsdoc -T としてテスト実行してみたところ大量の not found えっ? テストしてないでリリースしてるの? それともこちらの環境の問題? ちなみに Windows 7 環境で同梱のバッチで実行してるのだけれども java 上で動くのだからその辺は一緒のはず? javaランタイムのバージョン? もし Windows 上で JSDoc3 を使っている方がいたら 安定して動作している環境を教えてほしい >>235 $ git clone https://github.com/jsdoc3/jsdoc Initialized empty Git repository in /home/hoge/src/jsdoc/.git/ remote: Counting objects: 16429, done. remote: Total 16429 (delta 0), reused 0 (delta 0), pack-reused 16429 Receiving objects: 100% (16429/16429), 16.16 MiB | 377 KiB/s, done. Resolving deltas: 100% (8177/8177), done. $ cd jsdoc/ $ ./jsdoc -T Running tests... .....(略).... Finished in 4.993 seconds 1163 tests, 2965 assertions, 0 failures .....(略).... Finished in 0.054 seconds 33 tests, 60 assertions, 0 failures ちなみに、 $ java -version openjdk version "1.8.0_45" OpenJDK Runtime Environment (build 1.8.0_45-b13) OpenJDK 64-Bit Server VM (build 25.45-b02, mixed mode) 同じ手順を Windows 上の Git Bash にて行ってみた $ git clone https://github.com/jsdoc3/jsdoc Cloning into 'jsdoc'... remote: Counting objects: 16429, done. remote: Total 16429 (delta 0), reused 0 (delta 0), pack-reused 16429 Receiving objects: 100% (16429/16429), 16.16 MiB | 1.17 MiB/s, done. Resolving deltas: 100% (8177/8177), done. Checking connectivity... done. Checking out files: 100% (620/620), done. $ cd jsdoc/ $ ./jsdoc -T js: exception from uncaught JavaScript throw: Error: Module "c:/Users/xxxxxx/Documents/GitHub/jsdoc/jsdoc.js" not found. うわーん $ java -version java version "1.8.0_45" Java(TM) SE Runtime Environment (build 1.8.0_45-b15) Java HotSpot(TM) Client VM (build 25.45-b02, mixed mode) です >>239 Windowsは、jsdoc.cmdを実行するみたいだよ。 ただ、俺には理解不能なエラーが出た。 Javaとか知らんし。 > $ .\jsdoc.cmd -T > Running tests... > org.mozilla.javascript.EcmaError: ReferenceError: "self" is not defined. (file:/C:/Temp/jsdoc/node_m > odules/bluebird/js/main/captured_trace.js#464) Macでもやってみた。 3年位使ってたけど、Java入ってないし。JDKのインストール方法をググる所から始めた。 Web開発にMac使ってる人が多いのは、こういうところかもね。 $ ./jsdoc -T Running tests... ....(略)... Finished in 3.486 seconds 1163 tests, 2965 assertions, 0 failures ....(略)... Finished in 0.024 seconds 33 tests, 60 assertions, 0 failures ttp://www.bluefoun.pos.to/games/howto/htimg.html ここに出てくる関数gameBodyって意味あんのか・・・? これ書いただけじゃ何も実行できんぞ read.cgi ver 07.5.4 2024/05/19 Walang Kapalit ★ | Donguri System Team 5ちゃんねる