X



JavaScript 4©2ch.net
0001デフォルトの名無しさん 転載ダメ©2ch.net
垢版 |
2014/12/05(金) 12:19:07.19ID:fmzBASgG
( ^ω^) 初学者・迷子・ロリ幼女はこちらで
  _、_
( ,_ノ` ) プロフェッショナルはECMAScript デス 4へ

【前スレ】
JavaScript 3
http://peace.2ch.net/test/read.cgi/tech/1380177260/

【関連スレ】
ECMAScript デス 4
http://peace.2ch.net/test/read.cgi/tech/1325448978/
+ JavaScript の質問用スレッド vol.117 +
http://peace.2ch.net/test/read.cgi/tech/1404146244/
CoffeeScript
http://peace.2ch.net/test/read.cgi/tech/1320949260/
TypeScript part1
http://peace.2ch.net/test/read.cgi/tech/1349187527/
構造化ウェブプログラミング言語Dart2
http://peace.2ch.net/test/read.cgi/tech/1319388343/
Microsoft SkyDrive API
http://peace.2ch.net/test/read.cgi/tech/1385604796/
【MACRO】Google Apps Script 質問スレ【DRIVE】
http://peace.2ch.net/test/read.cgi/tech/1404007623/
【node.js】サーバサイドjavascript 2【Rhino】
http://peace.2ch.net/test/read.cgi/tech/1358937029/
0105デフォルトの名無しさん
垢版 |
2015/04/12(日) 11:08:10.55ID:7j69OB5F
『関数型プログラミングに目覚めた! IQ145の女子高校生の先輩から受けた特訓5日間』
http://www.amazon.co.jp/dp/4798043761/

せっかくだからJavaScriptで関数型プログラミングを学んでみるのも面白いかもしれないな。
0106デフォルトの名無しさん
垢版 |
2015/04/12(日) 17:02:14.80ID:PVRHL1t5
>>105
Qiitaアカバンされたポエマー、毛の壁先生じゃんw
0107デフォルトの名無しさん
垢版 |
2015/05/18(月) 15:33:55.56ID:lIw4CyOJ
JavaScriptが20周年。開発者のBrendan Eich氏が過去と未来についてのスライドを公開
ttp://www.publickey1.jp/blog/15/javascript20brendan_eich.html
0109デフォルトの名無しさん
垢版 |
2015/05/20(水) 01:48:48.87ID:zDiYcCDM
言語としてはかなりシンプルだったからな。
LexとYacc使っただろうし、スタックマシンな
バイトコードインタープリタはSchemeのインタープリタを
Cで書いたことがあれば難しくない。

コードを10日で書いたからクソというよりは、
書く前に言語仕様をきちんと練らなかったからクソなんだろう。
0110デフォルトの名無しさん
垢版 |
2015/05/20(水) 05:27:02.66ID:iajmjkjM
10日で書いたにしては良くできてるけど、もともとVBAみたいなものなのに、
後からいろいろ理屈を考えて素晴らしいものみたいに言いくるめようと
したのがいけなかったんじゃないの。

アプリに付属させるマクロだと思えば、納得の仕様だと思うけど。
元々そういうものなんだし。
0113デフォルトの名無しさん
垢版 |
2015/05/20(水) 12:18:11.33ID:qzEPJuIN
誰でも10日で出来る作業なら
クソだろうさw

10日でとても出来ないような作業を
10日で作ったのならば、それは優秀ってことだよ。

優秀な人が作ったのだから、とても良く出来ている。
0116デフォルトの名無しさん
垢版 |
2015/05/23(土) 05:06:34.47ID:aWFfanUl
jsスレでdisるのもアレだけど
権威主義以外の何物でもない

10日で作ったのは凄いかもしれんが別に洗練されてもないしシンプルでもない
初期のjsって文字列演算、暗黙変換とか無駄に長いfunctionとか、
中途半端にvbやC++の真似もしてて、バージョン違いの挙動もあって普通にクソ
初期のを優秀とか言う奴はES6使わないで欲しい

本人はサブセット言語嫌いとかlisp嫌いとか好き勝手言ってるみたいだけど
素直にパクリ元のselfのサブセットを素直に実装すりゃよかったと思うわ
0120デフォルトの名無しさん
垢版 |
2015/05/24(日) 13:15:55.75ID:bCeKXRbu
>>119
じゃあどこが権威主義なのか
噛み砕いて説明してください。

その前に前提として権威主義とは何かを書いておきますね。

http://ja.wikipedia.org/wiki/%E6%A8%A9%E5%A8%81%E4%B8%BB%E7%BE%A9
> 権威主義(けんいしゅぎ)とは、権威に服従するという個人や社会組織の姿勢、思想、体制である[1][2]。権威主義の反対は個人主義や民主主義である。
> 政治学上の用法では、権威主義体制とは非民主的な体制の総称であり、通常は独裁、
> 専制、全体主義などを含むが、権威主義体制を民主主義体制と全体主義体制の中間とする立場もある[5][6]。

http://d.hatena.ne.jp/keyword/%B8%A2%B0%D2%BC%E7%B5%C1
> 権威(人を服従、強制させる力)に価値をおき、それに対して自己卑下や盲目的服従をする態度のこと。
> また逆に人にそれを要求する態度のこと。心理学的には、権威や伝統、社会的に価値のあると
> されているものを無批判に承認し、これに服従、依存し、融通が利かないパーソナリティを指す。
0121デフォルトの名無しさん
垢版 |
2015/05/24(日) 15:11:00.39ID:9Q9ph3Hr
オリジナルがえらいのではなくて
パクリ損ないでオリジナルより劣化してるのがクソ、
っていう単純な話だと思うのだが……
0122デフォルトの名無しさん
垢版 |
2015/05/24(日) 18:48:24.27ID:hZNW9MV5
>>120
10日で作業したというだけで優秀として
優秀な人、その人が作ったからスバラシイ

全然中身に言及してねえじゃんw
どこに権威主義以外の要素があるんだよw
0127デフォルトの名無しさん
垢版 |
2015/05/25(月) 21:28:29.13ID:Pr0+1HdK
流石に初期JSの規模で大変とか言ってるのは
インタプリタの作り方もわからない初心者だけだよな?

クソ言語でも普及したPHPと違って言語そのものの需要で使われたわけでもなし
JSが普及したのはウェブブラウザが先進的だったから

そもそも本人も公開してるのに何マンセーしてんだかw
0129デフォルトの名無しさん
垢版 |
2015/05/26(火) 00:12:46.62ID:xYtlptqc
>>127
オレもそう思うんだけどねえ。
Schemeのインタープリタ書いたことがあればさまえ難しくはない。
0131デフォルトの名無しさん
垢版 |
2015/05/26(火) 18:58:13.73ID:CP1OCp5D
JavaScriptライブラリのスレにも書いたのですが,過疎っていたのでこちらで質問させてください
openlayers3についてです

http://openlayers.org/en/v3.5.0/examples/kml-timezones.htmlをそのままコピーして
ローカルで実行したのですが,サンプルのようにTimezonesが表示されません(地図は表示されます)
kmlファイルはhttps://github.com/openlayers/ol3にあるdataフォルダをhtmlと同じ階層に設置しました
他のkmlファイルを読み込むサンプルも同様に動かないのですが何が原因でしょうか
0135デフォルトの名無しさん
垢版 |
2015/05/28(木) 13:22:35.68ID:E8n2j0BJ
var vector = new ol.layer.Vector({
source: new ol.source.Vector({
url: 'timezones.kml',//url: 'data/kml/timezones.kml',
0137デフォルトの名無しさん
垢版 |
2015/05/28(木) 19:02:19.37ID:V96RG34r
>>135
>>136
ありがとうございます
IE,Opera,Chromeだと動かないのですが,firefoxだとサンプル通り動きました
これってコードにブラウザ依存の部分があるのでしょうか?
それともブラウザの設定の問題でしょうか?
0139デフォルトの名無しさん
垢版 |
2015/05/30(土) 07:45:51.67ID:xVK15s94
ローカルテストはサーバ立ててやるものだと思うが、fileスキームで実行してるのか
0141デフォルトの名無しさん
垢版 |
2015/05/30(土) 10:26:22.21ID:3Gf/DalK
最近やたらめったらモジュールに切り分けてたら共通部分の重複が酷いことになってた
現在のスコープ内にimport,requireできれば便利なんだが
0142デフォルトの名無しさん
垢版 |
2015/05/30(土) 12:21:21.30ID:skc6DNlZ
現時点でもやはりES3で書くべきですか?
ES5出てからもう何年も経ってるしObject.create()とか配列まわりの関数とか色々追加されてるのに使えないのが歯がゆいです。
ネット見てると結構ES5の機能使ってる人が多いですが、そういう方々はIE8とか切り捨ててるんですかね?
0145デフォルトの名無しさん
垢版 |
2015/05/30(土) 14:06:06.57ID:ebcCMrL3
>>142
lodash使ってる。なんとIE6以上から対応してる。

実装不可能なものを除いて、ES5で提供されている関数が提供されてる。
Object.create相当のメソッドもある。
https://lodash.com/docs#create

どうしてもES5だけでやりたいってわけじゃなく
ES5で提供された便利な関数を使いたいならlodashオススメ。
lodashにはES5よりも多くの機能が追加されてる。
0146デフォルトの名無しさん
垢版 |
2015/05/31(日) 02:38:34.37ID:474JDHci
>>143
ありがとうございます。
ぐぐってみたら2016年1月以降は最新版のIEしかサポートされないんですね。
こういうのを境界にして考えるのですね。勉強になりました。
polyfillというのはes-shimsとかのことですよね?Object.createに対応してないので選択肢から外れました。

>>145
ありがとうございます。今回は素のJSでやりたかったのでlodashは使えません><
0147デフォルトの名無しさん
垢版 |
2015/05/31(日) 02:41:25.56ID:474JDHci
でももうすぐES6が出るしキリが無いですね
ブラウザ対応状況とか考えるの諦めてlodashとかunderscoreとかそういうのに完全依存する方が正しいのかも
0148デフォルトの名無しさん
垢版 |
2015/05/31(日) 08:20:05.87ID:6IDXNIVy
>>146-147
Object.create はES3の範囲内で完全実装は出来ない為、制限付きを理解した上で polyfill を書く必要がある
lodash は forEach 等で ES5 互換でないコードが見受けられるので ES 標準を目指すのであればお勧めしない
コードを読む限りでは 仕様に忠実なライブラリではなく、独自の世界を構築するタイプのようだから
0149デフォルトの名無しさん
垢版 |
2015/06/01(月) 15:26:03.49ID:dTiEpsP/
underscoreって可読性低下しない?
_から始まるってのがそもそも論外なんだけど…
知らない人間が見たら何だコリャ?ふざけてんのか?
これを考えた奴は保守性を考慮しないオナニー馬鹿なのか?って思うだろ。
0150デフォルトの名無しさん
垢版 |
2015/06/01(月) 16:19:05.72ID:fqMWxMza
>>149
ま、普通使わない。
オナニーって言えばその通り。少なくとも個人的に使うのだったら文句言う
アレはないが、プロジェクトなんかでこんなもの使ってる奴いたら、排除する。
0151デフォルトの名無しさん
垢版 |
2015/06/01(月) 16:49:15.47ID:4t8ilUI7
>>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 に上げられてるようなよく使う機能は、
オレオレ実装されるより、既知のライブラリのメソッド使って欲しい。
0152デフォルトの名無しさん
垢版 |
2015/06/01(月) 17:05:38.13ID:dTiEpsP/
javascript使いってエンジニアとして未成熟なのか文系が多いのか、
保守性を考慮しないのばっかりだよな。
多言語では保守性において禁忌とされている事を平気でやる
先人が築きあげたバグを排除するコツのようなものをを完全に無視してる
たぶん将来はjavascriptの仕様が整理されて、
jQueryとかunderscoreみたいな非直観的で腐ったキーワードを使うライブラリは完全非推奨になる。
0155デフォルトの名無しさん
垢版 |
2015/06/01(月) 19:51:34.16ID:lFnhdSIE
>>152
だってJataScriptが使いにくいクソ言語じゃん。
細かいこと気にしてられないって、クソだから。
0156デフォルトの名無しさん
垢版 |
2015/06/01(月) 19:59:11.62ID:9HWSCI34
>>152
こういう関数の部分の保守性とかどうでもいいよw
単純に自分実装のライブラリに入れ替えれば済む話なんだから。

それより問題なのはフレームワークだ。
馬鹿が使うとフレームワークにガッチリ組み込まれて
別のものに変えるのがすごく大変になる。
0157デフォルトの名無しさん
垢版 |
2015/06/01(月) 20:00:16.98ID:9HWSCI34
>>151
> > ま、普通使わない。
> 以外と使われてるよ?

だよな。Node関連では一番使われているライブラリだったはず。
何処かにデータが有ったはずなんだが。

好き嫌いは個人の好みとして、一番使われているという
事実を知らないとしたら、モグリだろうw
0158デフォルトの名無しさん
垢版 |
2015/06/01(月) 20:02:41.82ID:9HWSCI34
あったあった。この記事だ。

lodash, あなたが既に使っているJavaScriptライブラリ
http://www.infoq.com/jp/news/2015/04/lodash-utility-library

JavaScriptユーティリティライブラリのlodashがバージョン3.5に達して,
npmパッケージリポジトリの中で最も多く参照されるライブラリになった。
もはや代用品などではなく,信頼できる選択肢のひとつだ。


何の根拠もない「使われてない」は無視していいよ。
だって、本人が無知だから、使われていることを「知らない」という
状態でも、自分の知ってる小さな経験だけから
使われてないって発言するだろうからさw
0159デフォルトの名無しさん
垢版 |
2015/06/01(月) 20:33:19.40ID:qMAgmJxR
そんなことよりもNode.jsのREPLでアンダースコアが使えないのはどうすればいいの?

REPL単体で使うぶんには別の名前を使っても気にならないけど、.loadで読み込むファイルでアンダースコアが
使われていた場合は、ファイルを書き換えなければならず、かなり気持ちが悪い

こんな定番のライブラリで、Node.jsのことを考慮していない名前をデフォルトにするとも思えないから、
何か解決策はあると思うんだけど…
0161デフォルトの名無しさん
垢版 |
2015/06/01(月) 20:49:28.66ID:9HWSCI34
>>159
グローバル変数とローカル変数の違いわかってる?

REPLで使うのはグローバル変数の_。
ローカル変数の_(lodash)が名前かぶっても
何の問題もないんだが。

名前かぶってわかりづらいというのなら、
var i だってずいぶん被ってるはずなんだが。
0162デフォルトの名無しさん
垢版 |
2015/06/01(月) 20:52:38.62ID:9HWSCI34
>>160
いやー、普通、_で思い出すのは、
C言語などで広く使われてる多言語の仕組みである
GetTextの_関数でしょw

あれだって、_で始まる関数なわけだけど、
何だこりゃの前に、普通GetText思い出すよね?

>>149は無知なんじゃないかって思うだけなんだが。
0163デフォルトの名無しさん
垢版 |
2015/06/01(月) 21:51:26.69ID:dTiEpsP/
>>162
_で始まるって言い方はおかしかったな。
C言語系の_は名前が続くから識別に問題ないが、_だけというのがクソだって話
これを初めて拝んだとき、_だけを変数名にするなんて一体このバカはどんな教育を受けているんだと思ったわ。
0165デフォルトの名無しさん
垢版 |
2015/06/01(月) 22:56:29.23ID:qMAgmJxR
>>161
流石にそれくらいは分かってるけど、UnderscoreやLodashは普通グローバルに読み込むものじゃないの?
まさか関数ごとにrequireを書くわけでもあるまいし、少なくともvar iとは次元が違うものだと分かると思うんだけど…
0166デフォルトの名無しさん
垢版 |
2015/06/01(月) 22:59:26.58ID:VQX8/s75
lodash使うアプリでグローバルなんて聞いたことがない。

普通nodeでライブラリを使うときは、
ローカル変数に、略

いわんでもわかるだろ?
知ってるならなw
0167デフォルトの名無しさん
垢版 |
2015/06/01(月) 23:00:05.05ID:VQX8/s75
訂正

lodash使うアプリでグローバルなんて聞いたことがない。
node使うアプリでグローバル変数なんて聞いたことがない。
0168デフォルトの名無しさん
垢版 |
2015/06/01(月) 23:01:04.60ID:e+Q3qVuq
CakePHPなんかの__()ならともかく、underscore.jsでGetTextの方の_を、
どうすれば連想できるのかわからない
0169デフォルトの名無しさん
垢版 |
2015/06/01(月) 23:01:38.04ID:dTiEpsP/
>>164
そんなどうでもいい知識はどうでもいい
0170デフォルトの名無しさん
垢版 |
2015/06/01(月) 23:03:51.00ID:dTiEpsP/
_を変数名にするのはゴミだってのは100人に聞いて99人が納得する話。
ほんとjQueryといい、javascriptのライブラリ作ってる奴は基地外だわ。
0171デフォルトの名無しさん
垢版 |
2015/06/01(月) 23:06:02.95ID:qMAgmJxR
>> 166,167
何が言いたいのか分からんのだけど、ファイルの頭で
var _ = require('lodash'); // またはunderscore
とするのは十分、一般的な使い方じゃないか?

適当に検索したサンプルコードでも、ファイルの頭でrequireをしているものがほとんどだし
0173デフォルトの名無しさん
垢版 |
2015/06/01(月) 23:08:27.29ID:VQX8/s75
>>171
はい、だからファイルの頭で
var _ = require('lodash'); // またはunderscore
とローカル変数に代入してるって言ってるわけですが。
0174デフォルトの名無しさん
垢版 |
2015/06/01(月) 23:12:31.08ID:qMAgmJxR
>>173
それで>>159に戻るんだが、そのファイルをREPLから.loadで読み込むと名前が衝突して困るという話なんだが
何かおかしいこと言ってるかな?
0175デフォルトの名無しさん
垢版 |
2015/06/01(月) 23:16:47.51ID:VQX8/s75
>>174
それは作り方が悪いだけだろう。
自分で作ったものを自分でロードして
問題が起きたって騒いでいるだけ。
0180デフォルトの名無しさん
垢版 |
2015/06/01(月) 23:21:19.02ID:dTiEpsP/
>>172
underscoreというものの存在を知ってる人間じゃないと、おふざけか本気なのか理解不能
知らない人でも直観的にわかるようにするべき。
_.なんていかにも意味ありげに書かれてたら、知らない人間はjavascriptに新しい構文でも出来たのかと勘違いする。
0182デフォルトの名無しさん
垢版 |
2015/06/01(月) 23:23:01.97ID:VQX8/s75
>>178
> だから、どのように作り方が悪いのかを>>159で聞いているわけ

簡単な話。

.loadでAというファイルとBというファイルの
二つを読み込んだ時を考えればいい。

同じ変数を使っていれば、混乱が起きる。
だから.loadなんかを使っては駄目だ。

REPLはAというファイルの前に
別のファイルを読み込んでいると考えればいい。

nodeの標準に合わせてrequireで読み込め。
.loadは簡易なツールにすぎない。
0185デフォルトの名無しさん
垢版 |
2015/06/01(月) 23:29:50.29ID:qMAgmJxR
>>182

> .loadでAというファイルとBというファイルの
> 二つを読み込んだ時を考えればいい。
これに関しては自分の場合は混乱が起きたことは無いな
REPLで必要になるのは常に新しくロードされたものだから

> nodeの標準に合わせてrequireで読み込め。
.> loadは簡易なツールにすぎない。
その簡易なツールとしての使い方を聞いたつもりだが、まぁうまい方法は無いってことで
答えてくれたことは感謝するよ、ありがとう
0186デフォルトの名無しさん
垢版 |
2015/06/02(火) 07:22:03.36ID:ex2Jk34L
>>183-184
こんな記述を許すなんて、webプログラマはどうかしてるわ
C++等の堅牢な言語が理解できないからスクリプトに逃げたってのもあるのかねぇ
0187デフォルトの名無しさん
垢版 |
2015/06/02(火) 07:56:44.99ID:ex2Jk34L
javascriptって手作業感のあるかなりアナログな言語だよな。
コンパイルすれば型間違いやスペルミスを全部チェックしてくれるC++の方が楽だわ。
0188デフォルトの名無しさん
垢版 |
2015/06/02(火) 08:03:09.37ID:rgUwgwJK
デフォルトで存在しなければならないような機能の構文は
可能な限り軽くしたい、というだけの話なのだが、
まあ、キチガイみたいだし、相手にする必要もなさそう。
0189デフォルトの名無しさん
垢版 |
2015/06/02(火) 08:07:16.76ID:rgUwgwJK
>>187
>コンパイルすれば型間違いやスペルミスを全部チェックしてくれるC++の方が楽だわ。

静的検査なのに型安全じゃないクソみたいな型システム自慢されても……
0191デフォルトの名無しさん
垢版 |
2015/06/02(火) 11:02:57.63ID:fIlyBYj2
>C++等の堅牢な言語が理解できないからスクリプトに逃げたってのもあるのかねぇ

ここ笑うところでOK?
0194デフォルトの名無しさん
垢版 |
2015/06/02(火) 12:47:31.17ID:qfQ5Cs59
スクリプト言語なら_とかもありだと思うよ
直感的に理解不能なのはむしろC言語のテクニカルすぎるポインタ操作とか、処理系依存処理
0198デフォルトの名無しさん
垢版 |
2015/06/02(火) 20:57:50.64ID:ex2Jk34L
_なんて使わないで堂々と大文字でUNDERSCORE.でいいのに
面倒くさいから_にしたなんていっても、
UNDERSCOREのようなループ処理は他の頻出するキーワードに比べてそう頻繁に使うもんじゃないから、
UNDERSCOREと打ち込むくらい苦にはならない
むしろ見ただけでUNDERSCOREとわかるメリットのほうが大きい。
0199デフォルトの名無しさん
垢版 |
2015/06/02(火) 20:58:44.32ID:80AN9G/c
>>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);
0200デフォルトの名無しさん
垢版 |
2015/06/02(火) 21:00:08.82ID:80AN9G/c
>>198
開発効率と可読性が悪いだろw

なんで多く出てくるものに、
そんなに長い情報量を与えないといけないんだ?

圧縮の基本だぞ。
多く使うものに短いビットを割り当てるのは。
レスを投稿する


ニューススポーツなんでも実況