+ JavaScript の質問用スレッド vol.121 + [無断転載禁止]©5ch.io
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2016/07/10(日) 22:46:13.52ID:ZmdhimD5>>2-6のテンプレを読んだ上で質問してください。次スレは>>950が>>2のテンプレ案(本スレで改善案があれば考慮)を元に立ててください
■質問を書く上で
(1) 煽り、コード制作依頼等、人を不快にさせる投稿はご遠慮下さい。公序良俗を守った応対を心がけてください。
(2) 他の人に迷惑をかけるスクリプトの質問はご遠慮ください。
(ブラクラ、[戻る], [閉じる], [クリック] の妨害、画面占有など)
(3) 質問者及び議論を行う人はメール欄を空欄にし、名前にレス番を入れることを強く推奨します。回答者はなりすましを判断できませんので、なりすましが現れても自己責任となります。
(4) 常に自発的に調べる心構えを持ってください。
具体的には「自分で調べてから質問する」「回答をもらってわからない単語があればGoogle検索してみる」など。
わからない内容を代わりに調べてくれる回答者をお望みの方は余所で質問してください。
(5) 出来るだけ一般的な用語を使用してください。脳内オレオレ用語は混乱の元です。
(6) 出来るだけサンプルコードを掲示してください。言葉による説明は行き違いが生まれる場合があります。
※必ず「問題の事象が再現されること」を確認してください。
必要な部分だけ切り出したつもりで現象が再現できていなかったケアレスミスがしばしば見られます。
(7) サンプルコードに HTML が含まれる場合は http://validator.w3.org/ で [Check] してみてください。
(8) 質問を具体的かつ詳細に書くと回答を得られやすいです。>>2の質問テンプレートを活用してみてください。
(9) ライブラリ関連の質問は禁止です。関連スレにあるライブラリ質問スレで質問して下さい。
(10) 時にはあなたが望む「答え」だけでなく、「意見」などが寄せられる場合もあります。
0002デフォルトの名無しさん
2016/07/10(日) 22:47:33.04ID:ZmdhimD5【環境】OS, ブラウザをバージョンと共に記入してください。(ex: IE8, Firefox4)
【何をしたのか】何をしたら問題の現象が発生するのか。再現手順を具体的に書いてください。
【エラーメッセージ】エラーメッセージがあれば正確に書き写してください。(Windows なら「コピット」を活用)
【期待する結果】最終的にどういう結果を望んでいるのか、を書いてください。
【サンプルコード】現象を再現可能な最小限のコードを書いてください。
1レスに収まらないならコード投稿サイトを利用してください。
http://jsdo.it/ http://jsbin.com/ http://jsfiddle.net/ http://ideone.com/
■前スレ
+ JavaScript の質問用スレッド vol.120 + [無断転載禁止]c2ch.net
http://echo.2ch.net/test/read.cgi/tech/1463914293/
■過去スレ全集
http://www2.atpages.jp/mirror/2ch/javascript/
http://usamimi.info/~mirrorhenkan/2ch/javascript/ (閲覧のみ)
■テンプレ案
https://fiddle.jshell.net/6018r9tu/1/show/light/
■関連スレ
JavaScript ライブラリ総合質問所 vol.5 [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/hp/1465399470/
JavaScript & jQuery 質問用スレッド vol.6 + [無断転載禁止]c2ch.net
http://echo.2ch.net/test/read.cgi/hp/1465566635/
【node.js】サーバサイドjavascript 4【io.js】 [無断転載禁止]c2ch.net
http://echo.2ch.net/test/read.cgi/tech/1460359714/
(X)HTML/CSS の質問に優しく答えるスレ23 [無断転載禁止]c2ch.net
http://echo.2ch.net/test/read.cgi/hp/1467511443/
Canvasについて語ろう
http://peace.2ch.net/test/read.cgi/hp/1305093769/
0003デフォルトの名無しさん
2016/07/10(日) 22:48:09.96ID:ZmdhimD5http://fiddle.jshell.net/vSqKr/44/show/light/
◆開発者ツール(Developer Tools)の基本的な使い方 (全部はhttp://fiddle.jshell.net/vSqKr/44/show/light/#Browser-Developer-Tools )
▼諸注意
- 本説明では Google Chrome の開発者ツールの名称に従います。他ブラウザで使う場合は適宜読み替えて下さい。
- IE9- でコンソールを使うには予め開発者ツールを起動しておく必要があります(開発者ツールを起動しないと console.log() が機能しません)
- Safari はデフォルトで開発者ツールが無効な為、有効に設定する必要があります。
https://developer.apple.com/library/safari/documentation/AppleApplications/Conceptual/Safari_Developer_Guide/GettingStarted/GettingStarted.html
▼要素を検証
1. ページ上で右クリックして [要素を検証]
2. [Elements] パネルが開き、対象のDOMノードが選択される(選択対象が目的の要素でなければ [Elements] パネル上で選択し直す)
3. 右側のサイドバーから知りたいステータス名のタブを選択する
- [Styles] タブ … CSSプロパティの指定値を表示 (※カスケードによって上書きされたプロパティは取り消し線で表示される)
- [Computed] タブ … CSSプロパティの算出値を表示("font-size: 1em" を指定していても算出後の "*px" で表示される)
- [Properties] タブ … 選択したDOMノードのプロパティを表示
▼コンソール
1. JavaScript コード上で console.log('Hello, World!'); と入力
2. [Ctrl] + [Shift] + [I] キー(IE は [F12])で開発者ツールを開き、[Console] パネルを開く
3. [Console] パネルに "Hello, World!" と表示される
(※window.alert() は String 型に変換されますが、console.log() は Object 型の中身をそのまま表示してくれます。)
0004デフォルトの名無しさん
2016/07/10(日) 22:48:26.99ID:ZmdhimD5◆JavaScriptの実行速度
JavaScriptの速度は「ブラウザ名」「ブラウザのバージョン」「PCスペック」に依存します(ブラウザのバージョン毎に最適化具合が異なります)。
速度の疑問解消の為に http://jsperf.com/ にコードをUPしてブラウザ毎に速度計測する事を推奨します。
例外として、仕様における理論上の速度が明確になっている場合があります。
例えば、正規表現によるマッチング処理を考えた場合、「RegExp#test > RegExp#exec > String#match」は ES5 仕様で保証されています。
ES5 仕様において RegExp#test が最も処理数が少なく、String#match が最も処理数が多いことが明確だからです。
ブラウザによっては RegExp#test の最適化が十分でなく、String#match の最適化が RegExp#test より十分であれば逆転する可能性はありますが、各メソッドの最適化が一律であればこの前提が崩れる事はありません。
■各種仕様 ( http://fiddle.jshell.net/vSqKr/44/show/light/#Link も参照 )
◆ Standard ECMA-262
http://bclary.com/2004/11/07/ (ECMAScript 3 HTML版)
http://www2u.biglobe.ne.jp/~oz-07ams/2002/ecma262r3/ (ECMAScript 3 和訳)
http://www.ecma-international.org/ecma-262/5.1/ (ECMAScript 5.1 HTML版)
http://tsofthome.appspot.com/ecmascript.html (ECMAScript 5.1 和訳)
http://www.ecma-international.org/ecma-262/6.0/ (ECMAScript 6 / ECMAScript 2015)
http://kangax.github.io/compat-table/es5/ (ECMAScript 5 compatibility table)
http://kangax.github.io/compat-table/es6/ (ECMAScript 6 compatibility table)
◆ HTML Standard (HTML5)
http://www.whatwg.org/specs/web-apps/current-work/multipage/
http://momdo.s35.xrea.com/web-html-test/spec/WD-html51-20130528/Overview.html (HTML5.1 部分訳)
http://www.hcn.zaq.ne.jp/___/WEB/WebStorage-ja.html (Web Storage 和訳)
0005デフォルトの名無しさん
2016/07/10(日) 22:49:02.01ID:ZmdhimD5◆ Document Object Model (DOM) / CSS Object Model (CSSOM)
http://www.hcn.zaq.ne.jp/___/WEB/DOM4-ja.html (DOM Standard (DOM4) 和訳)
http://www.w3.org/TR/DOM-Level-3-Events/ (DOM3 Events)
http://www.w3.org/TR/uievents/ (UI Events)
http://www.hcn.zaq.ne.jp/___/WEB/cssom-ja.html (CSSOM 和訳)
http://www.hcn.zaq.ne.jp/___/WEB/cssom-view-ja.html (CSSOM View Module 和訳)
◆ その他のWeb関連仕様
http://domparsing.spec.whatwg.org/ (DOM Parsing and Serialization - innerHTML等)
http://www.hcn.zaq.ne.jp/___/WEB/XHR-ja.html (XMLHttpRequest 和訳)
http://www.hcn.zaq.ne.jp/___/WEB/File_API-ja.html (File API 和訳)
http://www.whatwg.org/specs/ (WHATWGの仕様一覧)
◆ MDN (Netscape/Mozilla)
https://developer.mozilla.org/ja/docs
◆ MSDN Library
https://msdn.microsoft.com/en-us/library/ie/hh828809 (Internet Explorer API)
http://msdn.microsoft.com/ja-jp/library/yek4tbz0.aspx (JavaScript)
http://msdn.microsoft.com/ja-jp/library/cc427807.aspx (JScript)
http://msdn.microsoft.com/ja-jp/library/cc409712.aspx (DHTML)
◆ JavaScript Garden (ja)
http://bonsaiden.github.com/JavaScript-Garden/ja/
◆ JSON (JavaScript Object Notation)
http://www.json.org/json-ja.html
0006デフォルトの名無しさん
2016/07/10(日) 22:51:42.78ID:ZmdhimD5vol.115でlodashを不必要に推奨して啓蒙する行為が多く確認されており、ライブラリ系の質問はvol.116から禁止されました。
vol.115,116ではライブラリ禁止する発言が見られた直後にライブラリを許可する意図で次スレを立てる行為が確認されています。
本スレッドでライブラリ許可を求める発言が確認された場合は不要な争いを避ける為、スルーすることを推奨します。
ライブラリの質問はライブラリスレへ誘導し、誘導行為への反論はスルーしてください。
-----ここまでテンプレ-----
0007デフォルトの名無しさん
2016/07/10(日) 23:00:45.86ID:tx16mOUkhttps://github.com/jquery/jquery/releases
(http://jquery.com/は3.0.0のままなので注意)
0008デフォルトの名無しさん
2016/07/10(日) 23:01:12.49ID:BhOPIXig0009デフォルトの名無しさん
2016/07/10(日) 23:04:36.53ID:tx16mOUkどういたしまして
0010デフォルトの名無しさん
2016/07/10(日) 23:12:42.29ID:AJWTeieN自作自演を疑いたくなるレベル
0011デフォルトの名無しさん
2016/07/10(日) 23:20:09.67ID:B7CKytydたった一人が一任しただけで全住民の権利を委譲されたと勘違いしたのか?
他の意見を汲んでからスレをたててくれ
0012デフォルトの名無しさん
2016/07/10(日) 23:21:14.01ID:tx16mOUk自分の思い通りにいかないと癇癪を起こすやつ。
ま、俺はそんなの無視してjQueryとlodashの普及活動(笑)やりますがね。
0013デフォルトの名無しさん
2016/07/10(日) 23:22:36.60ID:ZmdhimD5諸論ある内で現状維持にしたのはスレ寿命と明確な同意が無かったため
テンプレは前スレ>>958のものがWeb板の質問スレをベースにしていたから
前スレ>>958を基準として前々スレの内容を引き継ぐような形にした
このスレの有り様については引き続き議論してほしい
っていうかこれだけ新IDがいるならもっと早めに参加してくれよ頼むよ
0014デフォルトの名無しさん
2016/07/10(日) 23:22:44.07ID:tx16mOUk>>1にテンプレ書く資格ないと思うやつ挙手w
0015デフォルトの名無しさん
2016/07/10(日) 23:32:49.45ID:BhOPIXig相変わらず足を引っ張ることしか考えてないんだな。
俺は>>1の判断は妥当だと思うぞ。
見た目(9)「ライブラリ禁止」を入れてそれ用に修正、諸注意も古いバージョンに戻しただけだろ。
ライブラリの話は元々どっちつかずになっていたし、それ以前に乱立厨がいてどうにもならなかった。
今回はこれまでとは比較にならないほどまともなスレ立て経緯だったと思うが。
残り10切っているのに無駄に雑談で埋める奴も出てくるし、マジで死ね。
まあとにかくスレは立った。重ねて一乙。
その上で、ライブラリをどうするのか、話し合えばいいだけだろ。
お前らはどうしたいの?
俺はこのスレは基本的にゼネラル(一般)で、
分化した専門スレを傘下に持ちつつやっていけばいいと思っている。
つまり、分化した専門スレが存在するのであれば基本的にそちらに誘導、
それがないのであればここで取り扱う、という基準でいい。
結果的に「ライブラリ総合スレ」はあるのだから、ライブラリの話題は積極誘導となる。
jQueryやnodeも同じ。
あと、迷子対策の「Webサイト制作初心者用質問スレ」はどうするんだ?
0016デフォルトの名無しさん
2016/07/10(日) 23:33:07.54ID:qRzpKnCh僕が気が付いたのは990付近だからうかつに口を出せる状況じゃなかったけど、https://fiddle.jshell.net/6018r9tu/1/show/light/ ベースだから安心してた
それが https://fiddle.jshell.net/6018r9tu/1/show/light/ から大幅に書き換えられたら反対意見が出るのは当然だよね
https://fiddle.jshell.net/6018r9tu/1/show/light/ のテンプレに不満があったなら勝手に書き換える前に不満を述べればよかったんだよ
とりあえず、現状としては https://fiddle.jshell.net/6018r9tu/2/show/light/ で新しく建て直せばいいんじゃない?
0017デフォルトの名無しさん
2016/07/10(日) 23:38:57.68ID:tx16mOUk0018デフォルトの名無しさん
2016/07/10(日) 23:43:00.81ID:LUsHhhnRテンプレの中の人のは統合後の案だからそのまま使えるわけないじゃん
0019デフォルトの名無しさん
2016/07/10(日) 23:48:13.63ID:l1ke6cB+現状維持派はHTML/CSS統合に対する反論としてあったと思うのだが
> テンプレの中の人のは統合後の案だからそのまま使えるわけないじゃん
完全に自分の事しか考えてないな
唯我独尊は程々にな
0020デフォルトの名無しさん
2016/07/10(日) 23:59:26.26ID:BhOPIXigていうか単発はこの状況で出てくるな。
譲れないところがあるのならその旨主張しておかないと駄目だろ。
それはさておき、お前はどうしたいのだ?
何度も言っているが、統合する/しないは向こうの判断であって、こちらが指示できる話ではない。
仮にここでライブラリを解禁したところで、結果的にライブラリの話が2箇所で為されて薄まってしまうだけ。
これは誰にとってもメリットがない。
ここでやるのなら向こうは落とす、向こうが存在するのであれば向こうに積極的に任す、というのが妥当。
単独で十分流れるのでないのならば、そもそもスレを立ててはいけない。
「ぼくのかんがえたすれしかみとめない!」だからお前らは乱立させてきた。その責任はちゃんと取れ。
ライブラリスレをこちらに統合したいのであれば、
(1)ライブラリスレ内でその合意を形成して、
(2)ライブラリスレの最後にこのスレへの誘導を落とし、それ以降はレスしない事によってスレを落とす
事をまず試せよ。少なくともそれが出来ればなし崩し的に統合される。誘導する先がないからね。
そうじゃなくて、こちらにお願いするのなら、追い出された経緯があるんだろ?(俺は知らんが)
その問題点を解決しないと再統合は無理だろ。
個人的には、ライブラリの話は特殊化してしまうので、別の場所でやった方がいいと思うけどね。
実際、例えばnodeスレでやられている話をここでやられても困るだろ。
分化した専門スレという物はそういうものだよ。ライブラリもそれに近いと思うが。
0021デフォルトの名無しさん
2016/07/11(月) 00:05:25.39ID:vK8HszAQライブラリスレが分化したのは荒らしを隔離する為
結果的にjQueryスレに隔離することに成功したが、そのスレでjQueryの回答をするととにかく五月蠅い
スレを落として一つのスレに統合するのは理想だが、荒らしを相手に合意なんて形成できるわけがない
あなたの考えは理想論だと思うぞ
0022デフォルトの名無しさん
2016/07/11(月) 00:09:01.84ID:c813o9It> 結果的にjQueryスレに隔離することに成功したが、そのスレでjQueryの回答をするととにかく五月蠅い
おいw 俺はjQueryとライブラリの両方に書き込みしてるぞw
俺が巡回するスレが増えただけなんだが分かってなかったのかw
0023デフォルトの名無しさん
2016/07/11(月) 00:11:39.74ID:EacXB/Oxでは現実論としてどうなんだ?
その隔離したjQueryスレをこちらで引き取ったらこちらが荒れるだけなんだろ?
だったらそりゃこれまでどおり隔離されたままよろしくって事にしかならない。
少なくともこちらのスレから見ればそうだ。
jQueryはjQueryだけの文法を使うし、jQuery自体について知っておかねばならないことも多い。
あれは分化して専門スレとして存在するべきだよ。そこそこ流れるし。
その上で、荒らしをどうするかは別の問題だ。こちらが一緒に沈む意味はないだろ。
一体お前はどうして欲しいんだ?
俺らが「信者」に対して何か出来るわけではないし、信者がここで改宗されるわけでもないぞ。
0024デフォルトの名無しさん
2016/07/11(月) 00:12:48.29ID:c813o9ItjQueryだけの文法ってなんだ?
いつjQueryがJavaScriptを拡張したんだよw
jQueryは単なるJavaScriptだ。
0025デフォルトの名無しさん
2016/07/11(月) 00:15:59.76ID:gzpHRxsK両方とも現存する場合は双方スレ住民の意見の一致なんて早々出せるわけないわな
荒らしはスルーというスタンスに則って考えるのなら
jQueryスレは考慮せずにライブラリ総合質問所の合意だけでいいでしょ
ageてidか節穴でip出して多数決取ったらいい
とはいえあの荒れっぷりから既に見てない人も多いと思うけど
0026デフォルトの名無しさん
2016/07/11(月) 00:17:19.44ID:vK8HszAQ+ JavaScript の質問用スレッド vol.121 + [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/tech/1467906869/
「荒らしの立てたスレはスルー」というかもしれないが、同じ理由でWeb制作板も乱立してきた
ここでもしライブラリ許容派が新スレを立てれば更に乱立する
彼らにとってはここが「ぼくのかんがえたさいきょうすれ」なのだから(結局はただの主観)
乱立を嫌うのなら荒らしが立てたスレだろうが、テンプレを途中で書き換えて使いつぶすしかない
0027デフォルトの名無しさん
2016/07/11(月) 00:19:33.81ID:c813o9Itそれは正しいなw
JavaScriptスレからDOM APIの話を分離しない限りーーー
(本来は分離するべきもの。DOM APIはJavaScriptを使う上で必須のものじゃない
ブラウザと言う実行環境でしか使えないJavaScript用の外部APIでしかない)
閑話休題、DOM APIの話を分離しない限り、DOM操作の話題が
このスレででてくることになる。
最近ではDOM操作を使わないフレームワークがあるが、
どうせライブラリと同様フレームワークの話もするなっていうんだろ?
であればDOM操作の話がでるたびに、それは素のDOM APIでも
DOM APIよりも格段にシンプルに記述できるjQueryでもできるって話ができる。
つまりDOM APIの話を分離しないこと=jQueryの話に持っていくネタになるんだよ。
0028デフォルトの名無しさん
2016/07/11(月) 00:21:06.48ID:vK8HszAQ俺の望みはある程度、秩序のあるライブラリスレが欲しいだけだ
jQueryスレは現存したまま、ライブラリスレも分化すればよい
こちらに来る人は少数だろうからライブラリ専用スレをプログラム板に新しく建てるよりも子のスレに統合することを望む
0029デフォルトの名無しさん
2016/07/11(月) 00:27:08.07ID:EacXB/Ox> 乱立を嫌うのなら荒らしが立てたスレだろうが、テンプレを途中で書き換えて使いつぶすしかない
それをやってきた結果、「ライブラリ」の取り扱いがグレーになっていて今回揉めているわけだろ。
その流れを断ち切りたいというのが前スレ>>959の
> このスレの現状維持には賛成だが>>936,>>956を使うのには重ねて反対だ
なんだろ。だから俺は彼の意見を尊重して「建て直し」に同意した。
てかお前ら許容範囲が狭すぎる。(多分若いだけなんだろうけど)
何でもかんでも俺が思うとおりしか認めないスタンスだとどうにも纏まらないぞ。
お互いに譲歩しつつよりマシなところを目指すしかないんだよ。
譲れるところは譲れよマジで。
今回、スレ立て前に内容について議論、そしてスレ立て宣言と、
JavaScriptスレにしては信じがたいほどまともだったぞ。
いや、他言語ではこれが常なんですけどね。
0030デフォルトの名無しさん
2016/07/11(月) 00:28:57.48ID:c813o9It「jQueryを使って解決したい」って思う人はいるだろう。
でもjQueryを使わずに解決したいって思う人は少数だよ。
何かしらの質問があって、それを解決するにはどんな方法がありますか?って
思ってる。
だから答えの一つとしてjQueryを使った場合を答えるのは正しいこと。
0031デフォルトの名無しさん
2016/07/11(月) 00:36:59.03ID:vK8HszAQ> それをやってきた結果、「ライブラリ」の取り扱いがグレーになっていて今回揉めているわけだろ。
その通り
> なんだろ。だから俺は彼の意見を尊重して「建て直し」に同意した。
それはお前と彼(ID:ZmdhimD5)の間で合意が成立し、スレが立てれた事で「お前が満足」しているだけに過ぎない
お前にとっては大満足だが、不満が出ている者もいるわけだ
彼らはまだ自分でスレを立てる行動を起こしていないが、もしスレを立てればWeb制作板と同じ現象になることは火を見るよりも明らかだ
つまり、合意を形成出来ているわけではない
0032デフォルトの名無しさん
2016/07/11(月) 01:02:28.47ID:EacXB/Ox> 俺の望みはある程度、秩序のあるライブラリスレが欲しいだけだ
これをこちらに要求されてもどうにもならない。
こちらが出来ることは、誘導先を変更すること程度だよ。
ID付きにしたいのならまずム板に立ててこちらに通知してくれればいい。
可能なら合意を形成した方がいいが、無理なら置き去りでもいいとは思う。
少なくともここにいる「分離派」の連中は誘導先をム板スレにすることに反対はしないだろう。
本来ライブラリスレは別に存在するべきだよ。
誘導するにもスレがないと出来ないのだから、
IDが必要ならとりあえず該当スレで参加者募って立てるしかないだろ。
荒らしを含めて100%の合意なんてする必要はない。
でも君を含めて複数人の賛同者はいないと話にならない。
やりたきゃやれよ。いずれにしても俺らがどうこうできる話ではないよ。
>>31
> つまり、合意を形成出来ているわけではない
じゃあお前は>>26のスレを使えばいいじゃない。(お前がそのスレ立てた馬鹿か?)
それではいけないから流れを断ち切るために立て直したんだろ。
いずれにしても、スレ立てに際してそんなに譲れない部分があるのなら、
お前がスレを立てなければならなかったんだよ。
彼が適切なタイミングでスレ立て宣言したのだから、それで終わりだよ。
言っておくが、俺はテンプレがお前が思っている物であっても一乙感謝したからな。
お前みたいに「おれのさいきょうのてんぷれ」を求めているわけではないんだよ。
少なくともこのスレ立ての経緯は至極まともだった。だから一乙だよ。
テンプレについてはこの状況下では>>1に与えられた裁量権の中に留まっていると思う。
お前が合意してないのは分かったが、お前が多数派である根拠もないだろ。
いい加減にしろよマジで。
0033デフォルトの名無しさん
2016/07/11(月) 01:08:45.09ID:c813o9Itそれはどうなんだろうね。
フレームワークは作り方自体を規定しているから
別に分離するべきだと思うけど。
(例えば、Backbone、AngularJS、Reactなどでぜんぜん違う)
ライブラリは混ぜて使うもので、質問者の立場になって考えれば、
実現できるのであれば、ライブラリを使ってもいいはず。
0034デフォルトの名無しさん
2016/07/11(月) 01:26:19.46ID:vK8HszAQ>>26と反対派が同じだとどうして思う?
俺と>>26が同一人物とか憶測で物事を判断する癖は何とかした方がいい
> 本来ライブラリスレは別に存在するべきだよ。
その根拠のない自信はどこから出てくるんだろうな
> いい加減にしろよマジで。
同じ言葉をそのまま返したい気持ちだが
0035デフォルトの名無しさん
2016/07/11(月) 01:39:01.42ID:EacXB/Oxというか君は構ってちゃん+レス乞食だからウザイ。
それはさておき、君は「Webサイト制作初心者用質問スレ」には興味ないのか?
そこでは、
質問「○○をしたいです。なお□□くらいの知識があります」
回答「それなら××を使うのが最適。詳しくは△△スレに行け」
を繰り返すことになる。あまり恣意的な誘導は困るが、
相手の技術レベルを踏まえた上で8割ほど正解なら十分だ。
誘導先は、生JavaScript/jQuery/その他ライブラリ/各種フレームワークから、
CSS/PHPを含めてどれでもいい。
君のやっていることに割と近いと思うが。
他の連中は君自身を嫌っているようだが、俺は正直わりとどうでもいい。
(既に書いたが、俺が一番問題にしている奴と君は別人だ)
それよりも君のエネルギーを有効活用出来ないかと考えている。
一応言っておくが、そのスレでは誘導に徹した方がいい。
そのスレで技術的会話をやり始めると、極めて間延びしたスレになってポシャる。
とはいえ、今は無いのだから今より悪くなるわけもない。
だから、やる気があるのならまずやればいい。
俺は知らないが昔存在したみたいだから、知っている人から状況を聞いたり、
過去スレのURLが手に入れば見てみるといいだろう。
(なお俺はフルスタックではないのでそのスレに直接関わることは出来ない)
0036デフォルトの名無しさん
2016/07/11(月) 01:41:55.75ID:c813o9It誘導に徹すると言うのなら、
誘導スレにしたら?w
0037デフォルトの名無しさん
2016/07/11(月) 01:45:27.20ID:EacXB/Ox> 反対派が同じだとどうして思う?
文句言っている主な理由は
> (9) ライブラリ関連の質問は禁止です。関連スレにあるライブラリ質問スレで質問して下さい。
だろ?もちろん>>26のスレはそれがない。
少なくとも>>26を立てた奴は「統合派」だ。なし崩し的にライブラリ許可しようとしている。
そして「分離派」はそれを苦々しく思っていたから建て直しを要求した。
その辺の状況は俺も知っているし、このスレに避難してきた連中は「分離派」が大勢だろ。
テンプレは>>26みたいな乱立厨がいたからどうにもならなかっただけだ。
だから>>1の言い分は筋が通っている。
で、お前の言い分は?
0038デフォルトの名無しさん
2016/07/11(月) 01:49:09.14ID:c813o9It正しいことだからそうしたことじゃなくて
気に食わないからそうしたってことなんだろうね。
本来ライブラリの話は禁止知るべきじゃなかった。
0039デフォルトの名無しさん
2016/07/11(月) 01:50:44.23ID:EacXB/Oxでは仮に「Webサイト制作初心者用質問/誘導スレ」にしたらやる気があるのか?
或いは君がやる気が出るスレタイを提示してくれ。
そこで技術的会話をしないことに不満があるのなら、やってみればいい。
あらゆるWeb技術が混ざった訳の分からないスレになる。
初心者にはカオスにしか見えないだろう。
それでも今より悪くなることはないので、やりたければやってみればいい。
つうか、君が荒らし扱いされているのは、エネルギーを持て余しているからだ。
君がこのスレならやりたい!というのがあれば、賛同者を募ってやればいいんだよ。
0040デフォルトの名無しさん
2016/07/11(月) 02:00:40.76ID:c813o9It俺はスレタイがどうであれ>>1の内容がどうであれ
jQueryで回答できると思ったらjQueryで回答するだけだよ。
スレタイっていうのは関係ない話題が出てこないようにするためであり
極端に言えば、政治スレでJavaScriptの話題はでないだろう?
それで十分役目を果たしている。
もしここでjQueryで回答できるような質問がくるというならば
それは分離すべきじゃないってことだよ。
俺が見ているのは質問者だ。他の回答者じゃない。
他の回答者がそんな回答をするなといったところで、
質問者が喜ぶ回答を俺はするだけの話。
0041デフォルトの名無しさん
2016/07/11(月) 02:04:19.09ID:c813o9Itお前らが、スレタイがどーのこーのと言ってる中、
俺だけが回答をしている。
0042デフォルトの名無しさん
2016/07/11(月) 02:06:13.84ID:jsqzL1PWならば当面は既存を維持して、次スレでまた話を続けようというのは何も間違っていないでしょうに。
「スレ落ちそうなのでとりま変えました」の方が問題だと思うよ。
ちゃんと初心者スレの話題を振って再開しようとするID:EacXB/Oxは偉いよ。
0043デフォルトの名無しさん
2016/07/11(月) 02:08:44.01ID:vK8HszAQ>>26が統合派なのは間違いないだろうが、なし崩し的に統合したい奴は>>1に文句いうまでもなく黙って実行する
逆に>>26が非統合派だった場合、お前は>>1と>>26を同じだと判断するのか?
「同じ意見=同一人物」は短絡的に結論を出しているだけだ
0044デフォルトの名無しさん
2016/07/11(月) 02:13:27.09ID:EacXB/Oxつまり君は自分で主体的にスレを運営していくことには興味なく、
あくまで寄生してjQuery教を布教するということか。
そりゃ荒らしでしかないよ。
君が間違っているのは相手のレベルを考えていないこと。
右も左も分からない人にライブラリを勧めても余計に混乱するだけ。
本来ライブラリってのは一通り出来る人が手抜きするために使用するもの。
一通りも出来ない奴が使うべきではないのさ。
まあ分かった、やはり君と共存するのは難しいらしい。
とはいえ俺から見れば君はエネルギーを注ぐ方向を間違っているだけ。
それを他人にも役立つ方向に向けようと思ったら、その旨言ってくれ。
0045デフォルトの名無しさん
2016/07/11(月) 02:14:43.62ID:c813o9It> あくまで寄生してjQuery教を布教するということか。
> そりゃ荒らしでしかないよ。
お前にとっては荒らしに見えるんだろうな(笑)
そもそも俺はjQueryを布教してるわけじゃない。
質問をjQueryで答えてるだけだ。
お前が布教していることにしたがっているだけ。
俺は質問者のために回答をしているだけだ。
0046デフォルトの名無しさん
2016/07/11(月) 02:15:49.24ID:vK8HszAQ統合派と分離派の争いは関係ない
0047デフォルトの名無しさん
2016/07/11(月) 02:15:54.35ID:c813o9It> 右も左も分からない人にライブラリを勧めても余計に混乱するだけ。
質問者が「ライブラリわかりません」って言ったか?w
相手のレベルというのはバラバラだ。
バラバラということはライブラリが分かる人もいるってことだ。
お前が言ってるのは矛盾している。
相手のレベルがライブラリがわからないと決めつけている。
お前こそ何も考えていない。
0048デフォルトの名無しさん
2016/07/11(月) 02:38:19.30ID:EacXB/Ox違う。
「統合派」は今なし崩し的になっている(統合派の思惑どおり進みつつある)
という状況を知っていたから先に立てたんだよ。分離派が先に立てる意味はないのさ。
そして前スレの「ライブラリ禁止無し」のなし崩しテンプレでは、
何故かスレ乱立荒らしもいなくなっていただろ。
つまりスレ乱立荒らしも「統合派」なんだよ。
乱立荒らしが「ぼくのかんがえたさいきょうのすれっど」を立てられたからそこで止まった。
そして、少なくとも「分離派」にはスレを乱立させてまで「ライブラリ禁止」テンプレを守ろうとする奴はいないのさ。
だから前スレのテンプレは放置され、スレが重複して立てられることもなかった。
そういう状況にうんざりしていた奴が適切なタイミングで「スレ立て」宣言して
了解したわけではない部分を戻したのだから、今回はそいつの勝ちって事だよ。
正直、俺もお前ら「統合派」のやり方にはうんざりしているし、頭に来ているよ。
お前らみたいな奴がいなかったからこのスレはある程度平和だった。
お前らがいるスレが糞なのは、お前ら自身が糞だからだよ。それは自覚した方がいい。
てかこんな話しても意味無いだろ。そろそろ止めようぜ。
統合したいのならやり方は既に書いたし、その通り試してみればいい。>>20,32
他人に頼るのではなく、お前ら自身で何とかしろよ。
それより「Webサイト制作初心者用質問スレ」の話をしよう。
まあもう寝るけど。
0049デフォルトの名無しさん
2016/07/11(月) 11:01:49.76ID:vK8HszAQ全て根拠のない憶測ではないか
「統合派」の一人が荒らしというだけで「統合派全体」を荒らし扱いするお前の結論にはうんざりする
> 乱立荒らしが「ぼくのかんがえたさいきょうのすれっど」を立てられたからそこで止まった。
「統合派」と乱立荒らしに同意しているという考えがそもそもの間違い
もし、乱立荒らしが「分離派」だったならお前は分離派全体を荒らし扱いするのか?
> 正直、俺もお前ら「統合派」のやり方にはうんざりしているし、頭に来ているよ。
結局、その結論におさまるんだな
>>32では「俺はテンプレがお前が思っている物であっても一乙感謝したからな」といっていたが、お前の態度を見ていると統合派のテンプレでスレッドを立てられたとして「一乙感謝」なんてやるとは思えないな
結局、「統合派のテンプレでスレッド」は乱立荒らしとして新スレを立てる事を求めるだろう
ようするに分離派のお前が>>1に感謝しているだけ
> てかこんな話しても意味無いだろ。そろそろ止めようぜ。
止めたいのは同意だが、お前の論理があまりにも主観的に>>1を擁護しているから反論しているだけだ
それが客観的な意見であったのならここまで反論はしない
0050デフォルトの名無しさん
2016/07/11(月) 11:14:45.22ID:Gv7vhpybてか落ちてたのを前スレで初めて知った
0051デフォルトの名無しさん
2016/07/11(月) 12:45:53.19ID:STlBfsAQ新しくたてるのはいいと思うけど、それこそ下記スレで話題にすべきなんじゃないのかな
(X)HTML/CSS の質問に優しく答えるスレ23 [無断転載禁止]c2ch.net
http://echo.2ch.net/test/read.cgi/hp/1467511443/
0052デフォルトの名無しさん
2016/07/11(月) 16:50:49.12ID:DrkgU0D10053デフォルトの名無しさん
2016/07/11(月) 21:37:36.78ID:EacXB/Ox結局お前は文句を言いたいだけで、自分では何もする気がないんだろ。
既に言っているが、あの状況なら>>1の判断は妥当だし、裁量権を逸脱してはいない。
お前は自分が気に入らないことに対して延々と文句を言っているだけだ。
そんなんしか居ないからWeb板はどうにもならない。
そしてお前らに見切りを付けた連中がここに集まった。だから当然ある程度マシだ。
君はWeb板に一生引きこもっていてくれよ。
君自身が荒らしであることを自覚した方がいい。
ちなみにお前、詭弁戦術を用いているが、ちゃんと自覚しているか?
それは本当に止めた方がいい。会社でそれやったら人生終わるぞ。
俺はライブラリ排除の経緯は知らないが、これまでの状況や君の主張を聞く限り、
今後とも排除したままの方が妥当だと思うよ。
これまでの状況について俺がどう判断しているかは既に説明した。
お前が納得しないならそれでよし。出ていってくれ。
俺たちはお前らに見切りを付けて出てきた。そしてム板の死にスレを復活させた。
お前らはよりマシなスレにたかるイナゴ行為/焼畑を行っているに過ぎない。
これも既に言ったが、俺は技術的にもライブラリスレは分離した方がいいと思っている。
そして今のところ君含めて「統合派」はゴミしかいない。再統合する理由が1ミリもない。
>>51
「Webサイト制作初心者用質問スレ」だが、ググったら244までは出てきた。
244を拾い読みした限り、終わる感じではなかったし、
ここまで続いたスレが落ちるなんてのは不自然だから、
板やスレタイを変えてどこかに「移転」したのだと思うがよく分からん。
0054デフォルトの名無しさん
2016/07/11(月) 22:02:54.69ID:DrkgU0D1ライブラリのラの字が出ただけでスレチと荒れるのはもう勘弁よ。
0055デフォルトの名無しさん
2016/07/11(月) 22:05:56.32ID:nLBMaq1/0056デフォルトの名無しさん
2016/07/11(月) 22:36:16.81ID:KcY8y3Ffこの人(ID:EacXB/Ox)と会話が成立する気がしない
0057デフォルトの名無しさん
2016/07/11(月) 23:52:15.03ID:CD0szFfE他人を殺人くん呼ばわりする割には、なかなか変わった考え方してるんだな。
0058デフォルトの名無しさん
2016/07/12(火) 00:26:09.50ID:8iCgclQKWebサイト制作初心者用質問スレは244が埋まってそのまま途絶えたよ。
質問スレの住民というのは主体性のある人が少ないものだし
熱心な人がこれまで立てていたのを手放したら続かなかったって感じだ。
>>52
そもそも発案者も「復活が妥当」という意見を出したに過ぎないし
誰かが音頭を取っているわけじゃないんだよね。
0059デフォルトの名無しさん
2016/07/12(火) 00:31:39.74ID:4M8hLvVeWebサイト制作初心者用質問スレ part245 [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/hp/1468250963/
つーか
ごちゃごちゃ言う前にスレ立てればいい。
あとは流れに身を任せればいいだけ。
行動する前に色々考え過ぎ
0060デフォルトの名無しさん
2016/07/12(火) 00:48:52.23ID:umCvEWisはえーよ乙
>>58が事実ならまずは復活させて様子見だろうね。
とはいえ、そんなんで消滅するのか?という疑問はあるが。
Web板の闇は深い、、、
0061デフォルトの名無しさん
2016/07/12(火) 07:30:29.66ID:e5Ry6Jcp0062デフォルトの名無しさん
2016/07/12(火) 07:30:47.58ID:e5Ry6Jcp0063デフォルトの名無しさん
2016/07/12(火) 20:30:59.16ID:zkwaExClこれって実装されたブラウザありませんね
なんか、curryメソッドってニーズがなかったんでしょうか?
0064デフォルトの名無しさん
2016/07/12(火) 22:58:07.12ID:8iCgclQK0065デフォルトの名無しさん
2016/07/12(火) 23:23:28.79ID:umCvEWis規制なんてあったか?と思ってググったら、これか?
なお244の1000は2015/04/19 00:50:25。
> 3月21日: Apple、専ブラ内広告を規約違反に認定。BB2Cから広告を強制削除
> 上同日: Jim陣営激怒、一時、全レスの末尾に「Think different? by 2ch.net/bbspink.com」を付加
> 上同日: 一時、AppleやiPhoneなどがNGワードになる
> 上同日: NGワードを書き込むと31万秒規制になることが判明
> http://www.wdic.org/w/WDIC/2%E3%81%A1%E3%82%83%E3%82%93%E3%81%AD%E3%82%8B%E4%B9%97%E3%81%A3%E5%8F%96%E3%82%8A%E4%BA%8B%E4%BB%B6
これは被害者続出だろうな。
0066デフォルトの名無しさん
2016/07/13(水) 01:25:57.58ID:2JhFq5Nwcurryは関数型のスタイルなら使うが
オブジェクト指向型(手続き型)では使わない
たぐいの関数だからだよ。
関数型ライブラリのlodashでは実装されている。
https://lodash.com/docs#curry
最近は関数型のメリットや使いやすさも理解されてきたが、
JavaScriptは関数型の能力はあっても、文化としてオブジェクト指向型。
そしてJavaScriptは互換性の問題から勝手に拡張するわけにも行かず、
なるべく少ない関数だけを標準化しようとしている。
標準化に時間がかかるんだろうね。
だから昔は関数型に興味を持たれず実装されず、
今は互換性のために実装されないという流れ、
0067デフォルトの名無しさん
2016/07/13(水) 14:22:09.27ID:ihje395B「4.14 カリー化」の事?
ただの Function.prototype.bind としか思えなかった
function add (x, y) { return x + y; }
var add1 = add.bind(null, 1);
add1(6); // 7
0068デフォルトの名無しさん
2016/07/13(水) 22:50:19.43ID:2JhFq5Nwそれは部分適用な。
http://qiita.com/7shi/items/a0143daac77a205e7962
> カリー化と部分適用はよく混同されるので注意が必要です。
しかもそれthisがnull(グローバルオブジェクト=ブラウザならwindow)に
変更されているから(それがbindの本質的な機能だから当然だが)
カリー化はthisを変更したりしない。
これでbindとかリー化と部分適用の違いがわかるだろ
var obj = (function () {
function add (x, y) { return this.location + (x + y); }
var add1 = add.bind(null, 1); // thisのbind + 部分適用
var curried_add = _.curry(add); // カリー化
var add2 = curried_add(2); // 部分適用
return {add1, add2}
}());
obj.location = "obj"
alert(obj.add1(6)); // URL + 7
alert(obj.add2(6)); // obj8
0069デフォルトの名無しさん
2016/07/13(水) 23:36:47.96ID:2JhFq5Nwlodashが提供しているカリー化のための関数な。
0070デフォルトの名無しさん
2016/07/14(木) 00:19:27.35ID:rtzz+yi0Good Partsのコードではthis値を使っていなかったからnullにしたけど、必要なら該当オブジェクトにbindすればいいよ
0071デフォルトの名無しさん
2016/07/14(木) 01:04:10.04ID:9qkjMq+eそういう話じゃないですよね。
カリー化をbindと勘違いしてる。なさけないって話ですよ。
0072デフォルトの名無しさん
2016/07/14(木) 01:29:39.76ID:9qkjMq+e>>68の例で言えば、必要なオブジェクトはobjです。
どうやりますか?
> var add1 = add.bind(null, 1); // thisのbind + 部分適用
この行のnullをobjに変えてもcurryと同じ動きにはなりませんよ。
bindは現在のthisとは無関係に固定のオブジェクトに
結びつけるのでbindを使ってcurryは実装できません。
0073デフォルトの名無しさん
2016/07/14(木) 01:30:44.10ID:9qkjMq+e> var add1 = add.bind(null, 1); // thisのbind + 部分適用
この行の null を obj に変えても this に変えても curry と同じ動きにはなりませんよ。
0074デフォルトの名無しさん
2016/07/14(木) 07:02:33.44ID:ljYKCB29オレの知ってるカリー化と部分適用の定義と違うんだけど・・・・
>http://qiita.com/7shi/items/a0143daac77a205e7962
>関数を引数1つずつに分割してネストさせることをカリー化と呼びます。
>一部の引数を固定化して新しい関数を作り出すことを部分適用と呼びます。
こんな定義始めて聞いた。
「カリー化は引数の数を1つにしますが,
単に引数の数を減らすことを「部分適用」と呼びます。」
(ソース:日経ソフトウェア5月号
基本からしっかり学ぶJavaScipt 第4回)
日経ソフトウェアに載っていた定義で覚えてました。
これって、日経ソフトウェアが間違ってるんなら、BP社に問合せをしようと
思うのですが、いかがでしょうか?
0075デフォルトの名無しさん
2016/07/14(木) 08:22:15.00ID:IlXzE3sd俺の記憶ではGood PartsのFunction#curryはFunction#bindのthis束縛をなくしたものだが
lodashの_.curryを基準に考えているだけではないのか?
https://www.oreilly.co.jp/books/9784873113913/
0076デフォルトの名無しさん
2016/07/14(木) 08:51:45.62ID:nCYaAyyX/ \ また俺様流カレーライスの作り方?
/ ノ ヽ.\
/ (●) (●) \
| (__人__) | __________
\ ` ⌒´ ,/ .| | |
__/ \ . | | |
| | / , | ̄ ̄|n| | |
| | / / | colこ)| | |
| | | ⌒ ーnnn. |_ ⊆ソ|_|_________ _|
 ̄ \__、("二).. ̄ ̄└─┘l二l二_|_|__|_
0077デフォルトの名無しさん
2016/07/14(木) 14:47:59.60ID:tXzYxMsc0078デフォルトの名無しさん
2016/07/14(木) 18:48:55.16ID:ljYKCB29の認識がスレ住民同士で異なってるな。
明確な定義がないから曖昧なのか?
0079デフォルトの名無しさん
2016/07/14(木) 19:16:49.33ID:ldGbBaTffunction add (x, y) { return x + y; }
var add1 = add.bind(this, 1); // 部分適用
add.bind(this, 1)(6); // カリー化
0080デフォルトの名無しさん
2016/07/14(木) 20:20:57.66ID:4fZzzaRd経緯は知らんが、その本は丸々読めるぞ。該当箇所は43ページだ。
http://bdcampbell.net/javascript/book/javascript_the_good_parts.pdf
0081デフォルトの名無しさん
2016/07/14(木) 22:30:34.64ID:9qkjMq+e明確な定義はあるんだが勘違いしている人が
多すぎるってのが問題なんだよ。
カリー化と部分適用が同じだと主張している人、
そして同じだと主張している人を知ったうえで
それは間違いだと言ってる人。
一般論として後者が正しいと思うね。知らずに主張している人と
知っていて主張している人。知っている人の方が信頼できるから。
(もしカリー化と部分適用は違うという主張している人を知ったうえで
同じだと主張している人がいるならば、その話を聞いてから考えるべきことだけど)
0082デフォルトの名無しさん
2016/07/14(木) 22:33:41.98ID:9qkjMq+e>>68でちゃんと書いてるのに
分かってないのかな?
> var curried_add = _.curry(add); // カリー化
> var add2 = curried_add(2); // 部分適用
curried_addっていうのは、curried_add(2)とすることで
部分適用ができる関数。
単なるaddはそんなことはできない。
addからcurried_addを作るのがカリー化
カリー化された関数は、func(1) と書くことで
部分適用ができないといけない。
>>79には、func(1)とすることで部分適用できる関数は存在していない。
0083デフォルトの名無しさん
2016/07/14(木) 22:50:25.28ID:4fZzzaRdhttps://ja.wikipedia.org/wiki/%E3%82%AB%E3%83%AA%E3%83%BC%E5%8C%96
0084デフォルトの名無しさん
2016/07/14(木) 22:52:32.54ID:9qkjMq+eそもそも関数型言語の文化のものだから。
http://d.hatena.ne.jp/kazu-yamamoto/20110906/1315279311
いろんな定義
「カリー化する」という用語は、すくなくとも以下の3つの意味で使われているようだ。
1. 部分適用という意味
・これは明らかに間違い
2. 「複数の引数を取る関数」を「一引数を取る関数のチェインに直す」こと
・これはkmizuさんの定義。世間でもよく使われる。
3. 「構造体を一つ取る関数」を「構造体のメンバーを複数の引数にばらし、一引数を取る関数のチェインに直す」こと
・これは僕の定義。というか、Haskellコミュニティの定義。
一引数を取る関数のチェインに直すことがカリー化の定義の一つなので
カリー化した関数が2つの引数を取ることはないのである。
0085デフォルトの名無しさん
2016/07/14(木) 22:56:20.75ID:9qkjMq+e> カリー化は部分適用と混同されやすい。部分適用とは、複数引数ある関数の引数の一部だけに実引数を適用する操作のことで、
> 上述のd iv(x,y) の例で言えば、 div から inv を導出する操作を指す。
> 一方、カリー化はcdevを導出する操作であり、引数への値の適用までは行わない。
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
この部分だな。
curried_addのように「引数を一つだけ取り」「引数が足りなければ関数を返す」ようすることがカリー化
0086デフォルトの名無しさん
2016/07/14(木) 23:21:33.55ID:aCaaCamcどのような流れで作成していくと良いのでしょうか?
知識はあるのですが全部別々で覚えたので作業手順のようなものがよくわかりません。
作成したことがある人がいらっしゃいましたら教えて下さい。
0087デフォルトの名無しさん
2016/07/14(木) 23:27:53.27ID:4fZzzaRd> > カリー化の最大のメリットはプログラムの論証をする時にすべての関数が一様に一つの
> > 引数を取ります。それ以外、プログラマ向けのメリットがあまりないです。
> > https://groups.google.com/forum/#!topic/start-haskell/8XG6VNBpVoQ
意識高すぎて付いていけませんw
a->a->a をやりたいだけってことか?
0088デフォルトの名無しさん
2016/07/14(木) 23:33:46.75ID:4fZzzaRd盤から作れ
0089デフォルトの名無しさん
2016/07/14(木) 23:41:21.92ID:ljYKCB29ゼロからわかる JavaScript超入門 : 河西 朝雄
って本にJavascriptのライブラリなしで
オセロゲームのソースコードまるまる載ってるから
買って勉強したらいい。さっさとアマゾンで買うんだ
0090デフォルトの名無しさん
2016/07/15(金) 00:13:51.01ID:5Bd+7TeCコーディングやバグフィックスが早くて最初見た時は衝撃だったな
0091デフォルトの名無しさん
2016/07/15(金) 00:33:08.15ID:jokpg7ao数時間で作れるとは思うが、1時間はキツいかな。
ただそういう速さよりは出来が綺麗でないと意味無いから、
俺ならとりあえず1時間考えてから行動だな。
動画、今もあるみたいだが14万再生、この内容にしては結構すごいとは思う。
見る気はないけどw
0092デフォルトの名無しさん
2016/07/15(金) 00:37:25.52ID:A4WbArbjP43のコードを読む限りではカリー化は引数束縛でしかないとしか読めないな
https://jsfiddle.net/og88vLhb/
0093デフォルトの名無しさん
2016/07/15(金) 00:40:55.78ID:jokpg7aoどうやっていいか全く分からないのなら参考になるんじゃないの。(見てないけど)
少なくとも投稿者はさくさくプログラミング出来る腕前なのは確かだし。
【プログラミング】オセロを1時間で作ってみた【実況解説】
にこにこ/sm8391299
つーか規制対象かよ。
0094デフォルトの名無しさん
2016/07/15(金) 00:56:11.42ID:Sr0bYwg9とりあえず動画見てきます。
0095デフォルトの名無しさん
2016/07/15(金) 01:07:30.78ID:A4WbArbj該当コードを読んだら>>67が素直な感想だろうな
「これこそがカリー化だ」と主張するなら好きにすればいいが、他人の回答をディスるのは程々にした方が良い
http://nanto.asablo.jp/blog/2005/12/13/176033
http://nanto.asablo.jp/blog/2008/02/14/2626240
0096デフォルトの名無しさん
2016/07/15(金) 01:12:22.21ID:KdAhu9B/他に何か簡単なのあったらおしえて
var arr = ['a',{x:10,y:20},'b'];
var arr2 = JSON.parse(JSON.stringify(arr));
009780
2016/07/15(金) 01:35:31.15ID:jokpg7aoいや申し訳ないがその点に関してはlodash君の方が正しい。
俺は関数型なんてほぼ知らないが。
>>66見れば分かると思うけど、動作しないといけないのは
sum.curry()(1)(2)(3)
とかなんだよ。それが動作しない点で駄目。
何がまずいかというと、その本のコードがcurry化じゃないw
俺が出してて申し訳ないんだが。
その本の作者も混乱しているのか、あるいはその後に定義が変わったのか。
(wikiでもGroovyとHaskellは誤用みたいなこと言っているし)
0098デフォルトの名無しさん
2016/07/15(金) 01:40:07.94ID:jokpg7aoだから実装としては内部にクロージャでargumentsを溜め込みつつ、
適用可能なら適用していくことになる。
だからそもそもコードがおかしい。that.applyではなく、this.curry.applyになる。
何度呼ばれても関数を返さないと駄目なんだ。
つってもlodashの実装を見た方が早そうだと思ってみてみたが、
createWrapperで集約され、さらにcreateCurryWrapperだった。
ここで挙げるのには適さない。
>>95の下側の最後、これがまあよさそう。(ろくに読んでないけど)
(なおコードを貼ろうとしたら403くらって駄目だorz)
0099デフォルトの名無しさん
2016/07/15(金) 01:41:32.11ID:yeDfZ4O8> オブジェクト含むシャローコピー
> 他に何か簡単なのあったらおしえて
https://lodash.com/docs#clone
Creates a shallow clone of value.
0100デフォルトの名無しさん
2016/07/15(金) 02:09:52.79ID:bBHS6mCb言いたいことはわかるが、>>68を見てると明らかに原文のコードを読まずに指摘していたようだったからな
Good Partsのコードに言及した回答(>>67)に「カリー化」と「部分適用」の定義の違いを問う(>>68)のがそもそもの間違い
>>63は「Good Partsのコード === カリー化」と認識しているわけだが、そのコードに対しての解は間違ってはいなかった
「カリー化」と「部分適用」の定義説明は全く別個の問題なので、両者が衝突する理由は何もない
0101デフォルトの名無しさん
2016/07/15(金) 02:14:10.34ID:bBHS6mCbそのコードはディープコピーに見えるのだが、シャローコピーを期待していると認識していいのか
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Object/assign
0102デフォルトの名無しさん
2016/07/15(金) 02:15:12.79ID:yeDfZ4O8だがその後の対応がまずかった。
カリー化を本当に知っているのであれば、本が間違っていることに気づいたはずだ。
そして本と同じ間違いをしなかったはずだ。
カリー化と部分適用は違うものというのは関数型を知っているならば
常識的な知識なわけで、部分適用なのにbindでカリー化作ってますよなんて
言うわけがなかったはずだ。
0103デフォルトの名無しさん
2016/07/15(金) 02:28:58.26ID:jokpg7aoまあ、その指摘についてはその通りだ。
発端が>>63な以上、この際本来の定義はさておき、質問はgoodpartsのcurryコードについてだからね。
0104デフォルトの名無しさん
2016/07/15(金) 02:34:01.03ID:bBHS6mCb質問者に伝えれば済む話で回答者同士で争う必要はない
0105デフォルトの名無しさん
2016/07/15(金) 17:32:45.87ID:JDhjaKhN定義を質問されてるわけじゃないし、そこをはっきりさせないと進まないわけでもない。
自己満足はやめい。
0106デフォルトの名無しさん
2016/07/15(金) 22:42:52.53ID:AtypjOfw0107デフォルトの名無しさん
2016/07/15(金) 23:53:30.73ID:jokpg7ao多分正確には>>84も間違いで、
× 「複数の引数を取る関数」を「一引数を取る関数のチェインに直す」こと
× 「構造体のメンバーを複数の引数にばらし、一引数を取る関数のチェインに直す」こと
○ 「複数の引数を取る関数」を「一引数の関数チェインに出来る『関数に変換する』」こと
だと思うがな。(チェイン化ではなくて、関数→関数変換)
基本ラインとしては、間違いの指摘は悪いことではない。
ここは技術板なんだし、技術的に正しいのは正義だよ。
ただそれをやる必要がある場合と無い場合はあるが。
とはいえ質問には回答が付いているんだし、当人達も回答者なんだから、
後はやりたいようにやらせるしかないだろ。
0108デフォルトの名無しさん
2016/07/16(土) 00:52:55.49ID:xmxD4czQまちまちでこのスレの住民同士の認識も異なることが判明したな。
ブラウザにbindとかtrimメソッドが実装されてるんだから
curryメソッドも実装されたるくる日がくるだろう
currメソッドが実装されたら、javascriptにおけるカリー化がはっきりするだろう
0109デフォルトの名無しさん
2016/07/16(土) 00:55:52.92ID:Opsk5pSE間違ってる人が多いってこと
0110デフォルトの名無しさん
2016/07/16(土) 00:56:58.77ID:Opsk5pSEそれはない。JavaScriptはオブジェクト指向
関数型言語の文化を標準に入れることはない。
だからlodashなどのライブラリの力が必要になる。
0111デフォルトの名無しさん
2016/07/16(土) 01:48:32.84ID:NWagl7SB彼の言うとおり、間違っている人が多いだけだろう。
とはいえ、そういう現状認識を持てたことは成果だよ。
間違い続けて制御文字君になっても困るし。
(というか彼も絶対何度か言われてるはずだけどな。口頭なら即座に突っ込むだろjk)
俺もcurryが入ることはないと思う。だって使い方が分からんだろ。
そして、trimなんて糞どうでもいいメソッドより、HTMLencodeとかを入れるべきだろ。
なんつーか、JSの標準化委員会はずれてるよな。
(なお、_には入っているの知っているから、念のため)
あとMDNには
> trim はその文字列自身の値には影響を与えません(非破壊メソッド)
とあるのだが、そもそもStringは全部インミュータブルなんだから不要だろこの付け足し。
インプレースのメソッドなんてないよな?
0112デフォルトの名無しさん
2016/07/16(土) 05:33:48.16ID:em2iq9Dg>>関数型言語の文化を標準に入れることはない
それは言い過ぎ、
ある意味mapやらはそうだし、Promiseも文化
そしてまさにObservableが絶賛策定中だろ
そしてlodashが関数型の文化を提供している?
それはごく一部で基本的にただの関数の寄せ集めなだけじゃん
0113デフォルトの名無しさん
2016/07/16(土) 15:31:53.29ID:em2iq9Dgスクリプト言語なんだから特定の環境(HTML)に依存するのは間違っているでしょ?
0114デフォルトの名無しさん
2016/07/16(土) 15:57:58.64ID:Opsk5pSEmore functional programming (もっと関数型プログラミング) だからfpか。
https://lodash.com/
https://github.com/lodash/lodash/wiki/FP-Guide
> The lodash/fp module promotes a more functional programming (FP)
> friendly style by exporting an instance of lodash with its methods
> wrapped to produce immutable auto-curried iteratee-first data-last methods.
説明は面倒なのでqiitaの記事にまかせるがカリー化することのメリットでもあるな。
http://qiita.com/kiri/items/9790c3af42235273c9dd
> lodashの各関数について、引数の順序をiterateeが最初になるように、
> あるいは処理対象データが最後になるように変更した上で予め全てcurryingしたもの。
0115デフォルトの名無しさん
2016/07/16(土) 18:47:51.72ID:NWagl7SB今更HTMLと縁が切れることはないだろ。
>>114
それは
× curry化のメリット
○ 部分適用のメリット
部分適用済みの関数チェインを作りたいだけだろ。
問題はbindがthisをまず束縛しなければならないこと、それを止めて
thisを束縛せず、引き数だけ束縛するメソッド(bind_fp)があればいい。
lodashのpartialがまさにそれに当たる。
実際その件に関しては _.curryは不要で、_.partialがあれば事足りるだろ。
curry化のメリットというのなら、
複数の引き数を一つずつの引き数の関数にばらす事のメリットを引っ張ってきてくれ。
ただ、一般論として、複数の引き数をとる場合はそれが必要だからそうしているのであって、
バラしてどうこう出来ることはないでしょ。
もちろんpartialの一般化がcurryだと考えることも出来るけど、
実際は重要な順に引き数が並んでいるとも限らないから、
好きなところに好きなように適用出来ないと使いにくい。
_.curryはそれが出来るように拡張されているけど、
多分一般のcurryはそんなこと考えてないでしょ。
いずれにしても、俺は部分適用まではいいとして、curryまでは要らんと思うよ。
curryだと多態出来るかもしれないけど、余計見にくくなるだけだと思うし。
問題はbindが「部分適用」ではなくて、this束縛ありきの「オブジェクト指向専用」な点だろ。
あれはついでに引き数も束縛出来るだけ。
thisを使わないならそれでもいいけど、チェインにしたい場合はあれでは無理だよね。
0116デフォルトの名無しさん
2016/07/16(土) 19:03:31.32ID:4AlocGfnbindで妥当なthis値を与えて代用してるが、あるなら使いたい
0117デフォルトの名無しさん
2016/07/16(土) 19:35:31.24ID:Opsk5pSEなに熱くなってるのさw
lodashが関数型プログラミングを
後押ししてるって話をしてるだけでしょwww
0118デフォルトの名無しさん
2016/07/16(土) 19:41:03.99ID:xmxD4czQ不毛な争いすぎる。
このROMってる人も困惑してるだろし、
初心者が質問しずらい。
0119デフォルトの名無しさん
2016/07/16(土) 20:52:17.20ID:NWagl7SB俺はその点は否定してない。
というか俺は君と言い合ってた奴とは違うがそれは分かっているよな?
ライブラリが標準より糞なら存在価値がないだろ。
当たり前だがlodashにも「使える」関数はあるのさ。
本当にそれが便利なら標準化すればいいだけ。
nativeで動くようになるから標準化する意味はある。(速度的な意味で)
で、俺が思うに _.partial, _.escape, _.unescape あたりは使えるよ。
_.curry は要らん。
_.unescapeとかはDOM+innerHTML+textContentでも出来るけど、50倍遅い。
>>116
ガンはそこだよな。thisを束縛するからチェインしにくくなる。
lodashのコードがトンデモwrapperだらけになっているけど、
あれもpartialが標準になればずいぶん綺麗になるだろう。
>>118
基本ラインとしては、ここは質問スレなんだから、
質問はいつ行ってもいいし、
質問によって話がぶった切られるのが嫌なら他スレでやれって事になる。
俺はこの話を引きこもりスレ(情報交換所)でするのは全く問題ないが、
lodash君は布教したいんだから目立つ場所、つまりここでやりたがるだろ。
はいでは次の質問どうぞ。
0120デフォルトの名無しさん
2016/07/16(土) 20:53:40.71ID:Opsk5pSEカリー化されることで便利なライブラリが作れるが、
すでにカリー化されたものが用意されているから
新たなカリー化は不要という理屈なのだろう。
もし標準でカリー化のメソッドがあれば、lodash/fpのような
ものを簡単に作れただろう。lodashにcurryメソッドがあるから
lodash/fpを簡単に作ることができた。
でも、すでに用意されているものを使うだけの人にとっては
curryメソッドが必要なわけじゃない。殆どの人は
カリー化されたものがあればそれで十分なのだ。という理屈なのだろう。
0121デフォルトの名無しさん
2016/07/16(土) 20:55:44.15ID:Opsk5pSE> 当たり前だがlodashにも「使える」関数はあるのさ。
> 本当にそれが便利なら標準化すればいいだけ。
JavaScriptで標準化されてないから使えるものではないという理屈かな?
でもRubyではlodashで提供されているものとほとんど同じものが
標準化されているんだよね。
よってlodashの関数は「使えるもの」と断言していいだろう。
JavaScriptの標準化能力が低いだけなのさ。
0122デフォルトの名無しさん
2016/07/16(土) 20:57:05.79ID:Opsk5pSERuby 2.1.0 リファレンスマニュアル > ライブラリ一覧 > 組み込みライブラリ > Procクラス > curry
instance method Proc#curry
http://docs.ruby-lang.org/ja/2.1.0/method/Proc/i/curry.html
> Procをカリー化します
でもRubyではこれも標準化されている。
0123デフォルトの名無しさん
2016/07/16(土) 22:12:46.72ID:NWagl7SBpartialがねえなw
いずれにしてもcurryは要らんよ。
その例でもそうだが、他サイトも含めて、
curryの例って最初からarrayを渡しておけばいいだけでしかないだろ。
> b = proc {|x, y, z| (x||0) + (y||0) + (z||0) }
要するにそれ以外使い道がないんだよ。
そしてその場合は君ならreduceを使うんだろ。
こういった引き数が「等価」として扱える状況なら、最初からarrayでいい。
そうじゃない場合の例があるかい?
そもそも現実的にその例みたいな間抜け関数は作らない。
当たり前だがarray入力にしないと汎用的に使えない。
引き数は必要だから並んでいるのであって、
対象データ(this)だけ分離したいというのは分かるが、
それ以外の所までバラバラにする意味は無いよ。
0124デフォルトの名無しさん
2016/07/16(土) 22:25:22.30ID:Opsk5pSE> いずれにしてもcurryは要らんよ。
だからRubyにはあるじゃん?
もしいらないものであればRubyには搭載されていない。
lodashにはpartialがあるから、curryはいらないという理屈なら
まだわかるけどさ。
RubyにもJavaScriptにもpartialは無いのだから
(もちろんbindはpartialではない)
partialかcurryのどちらかは入れる理由がある。
そしてpartialがあってもcurryの替わりににはならないが、
curryがあればpartialの代わりになる。
(だからRubyにはpartialがないのだろう)
0125デフォルトの名無しさん
2016/07/16(土) 22:39:17.02ID:Opsk5pSEJavaScriptにはcurryが無いから自分で実装しているけどさ、
関数をcurry化して作られたライブラリがlodash/fpだろうと。
0126デフォルトの名無しさん
2016/07/16(土) 23:32:18.92ID:NWagl7SBいや君は勘違いしているが、partialとcurryは別物だ。
全ての引き数を指定するのなら同じ物として扱えるが、
引き数指定を飛ばしたい場合にはcurryでは駄目なんだ。
だから、両方あるlodashの実装が正しい。
curryは前から順番に引き数を埋めてしまう。
例を出そう。
範囲付きソートがあったとして、以下とする。
function sort_range(func_sort, start, end, this) // start, end の指定方法はString.sliceと同じ
部分適用してチェインを作る為に、thisは最後だとしよう。
これについて、Rubyのcurryは前から指定個割り付けることしか出来ないから、
var sort_10 = sort_range.partial(_, 10, -10); // 両端10個ずつ以外をソート
の指定がRubyでは出来ない。
使い方としては、両端10個以外に何かする関数チェインがあって、
そこにオブジェクトを突っ込めば結果がでてくるとする。
func_sortはそれぞれのオブジェクトのプロトタイプに指定してあるとする。
this.func_a_10().func_b_10().sort_10(this.sort_func)
という感じ。
0127デフォルトの名無しさん
2016/07/16(土) 23:32:57.00ID:NWagl7SB一般的に言えば、後ろ側だけbindして、前側は後で流し込みたい場合、
curryでは対応出来ない。
結局の所、どちらも「重要な順に引き数は並んでいる」という前提に立っていて、
それがオブジェクト指向ならthis、関数型ならfuncなのは当然として、
指定を飛ばせないことが問題なんだよ。
だからbindでも飛ばせるようになればすべて解決する。
(partialとして使えるようになる)
0128デフォルトの名無しさん
2016/07/16(土) 23:34:57.26ID:NWagl7SB駄目なのはRubyのcurryな。
0129デフォルトの名無しさん
2016/07/16(土) 23:45:48.94ID:Opsk5pSE俺はcurryとpartialの話しかしてないよw
curryもpartialもbindも引数を左から埋める関数。
右から埋めたいときどうするかという
curryでもpartialでもbindでもできない話はしていない。
それは別の関数を使えってだけの話だ。
lodashの話をするならば、curryRightが用意されているし、
partialRightも用意されている。
なんか反論きたから何を言うかと思えば。
> いや君は勘違いしているが、partialとcurryは別物だ。
俺は最初からpartialとcurryは別物だといってる。curryがあればpartial可能な関数を作れる(それがカリー化)
からpartialはいらないという意味だ。と言おうとしたら、
> 全ての引き数を指定するのなら同じ物として扱えるが、
> 引き数指定を飛ばしたい場合にはcurryでは駄目なんだ。
引数指定を飛ばしたいならpartialでもだめだろってツッコミ入れる話だったw
0130デフォルトの名無しさん
2016/07/16(土) 23:50:46.64ID:Opsk5pSEセンスの無さを感じられるw
範囲付きソート? そんなもん、
範囲を得る関数とソートをする関数に分けたほうが良い。
自分の設計が悪いからできないだけ。
0131デフォルトの名無しさん
2016/07/16(土) 23:53:25.82ID:Opsk5pSElist.range(10,-10).sort()
ってなるだろうし。
rangeをカリー化するならば
list.curried_range(10)(-10).sort()
ってなるだろうな。
見てて可哀想になったw
0132デフォルトの名無しさん
2016/07/17(日) 00:06:01.31ID:8ycEuEZylodashのcurryやpartialって _ を使って間を飛ばすことができるのかw
https://lodash.com/docs#curry
> // Curried with placeholders.
> curried(1)(_, 3)(2);
> // → [1, 2, 3]
でもそれをもってcurryとpartialは違うって言われても、
lodashのcuryも、lodashのpartialも、間を飛ばせるんだから同じだろ。
lodash以外のpartialの話(どの言語の話?)であれば、そのpartialは間を飛ばせないだろうし、
なんで他の言語の一般的なcurryと、lodash特有の拡張されたpartialを比べてるんだ?って話
lodashのcurryとlodashのpartialか、他のcurryと他のpartialを比べろよ。
0133デフォルトの名無しさん
2016/07/17(日) 00:06:08.30ID:o7sDjaLNRubyの話にlodashで反論するのは意味不明
0134デフォルトの名無しさん
2016/07/17(日) 00:11:11.02ID:8ycEuEZy> Rubyの話にlodashで反論するのは意味不明
それをいうなら、Rubyの話にlodashの拡張されたpartialで
話をすすめるのは意味不明。
Rubyに _ で引数省略できるpartialなんてありませんぜwww
0135デフォルトの名無しさん
2016/07/17(日) 00:15:21.82ID:UzC9Qtsn> 引数指定を飛ばしたいならpartialでもだめだろってツッコミ入れる話だったw
いや俺が想定しているのは飛ばせるpartialだ。が、一般的には駄目なのかな?
とにかく俺が欲しいのは飛ばせるものであって、bindが飛ばせるようになればそれでいい。
例えば何かしらのsymbol指定で飛ばし扱いになるのならそれでいい。
> list.curried_range(10)(-10).sort()
それで元と同じ長さのarrayが欲しい場合、どうするんだ?
頭とお尻に付け直すという記述は単なるチェーンでは出来ないだろ。
ネストして書くのなら最初からチェーンする意味無いだろ。
とはいえ既に言っているように範囲指定は関数型的ではないんだよ。
それはただの例であって、後で前側の引き数を指定出来ないのが駄目なんだよ。
0136デフォルトの名無しさん
2016/07/17(日) 00:19:21.34ID:UzC9QtsnRubyを出してきたのはお前だろ。
そして多分そっちが一般的curryだよ。
lodashのは拡張されている。だから_.partialと_.curryは冗長な部分がある。
Rubyのcurryでは出来ない記述がある。
これはいいか?
俺の例が良いか悪いかは別の話だよ。
0137デフォルトの名無しさん
2016/07/17(日) 00:22:04.85ID:o7sDjaLNcurryはlength分の引数を与えないと処理が終わらないが、partialは終わらせることが出来る、という違いがある
0138デフォルトの名無しさん
2016/07/17(日) 00:25:46.50ID:8ycEuEZy> // Partially applied with placeholders.
> var greetFred = _.partial(greet, _, 'fred');
> greetFred('hi');
> // → 'hi fred'
知らない人(いないかな?)のために解説しておくと、
curry や partial の 引数の順番を入れ替えるときに使う _ っていうのは
JavaScriptの文法じゃなくて、lodashが使っている変数(lodashオブジェクト)
_.partial の _ と一緒。
_ が使えない環境のために、 var lodash = _.noConflict(); とやると
var greetFred = lodash.partial(greet, lodash, 'fred');
こう書くのが同じ意味になる。
_ で順番入れ替えとか思い切ったことやったなw
0139デフォルトの名無しさん
2016/07/17(日) 00:27:15.76ID:UzC9Qtsnそういうこった。
partialはbindされたその関数を返す。つまり次は必ず値を返す。
curryは引き数が指定個たまるまでは溜める為の関数を返し続ける。
指定個たまったら初めて値を返す。
だから引き数を全部埋めないのなら動作が異なってくる。
0140デフォルトの名無しさん
2016/07/17(日) 00:31:22.05ID:8ycEuEZy> いや俺が想定しているのは飛ばせるpartialだ。が、一般的には駄目なのかな?
聞いたこと無いね。
lodashみてみ。_(lodashオブジェクト) で引数省略だってよ。
他の言語でどうやってるのか知りたいぐらいだ。
> とにかく俺が欲しいのは飛ばせるものであって、bindが飛ばせるようになればそれでいい。
> 例えば何かしらのsymbol指定で飛ばし扱いになるのならそれでいい。
null、undefinedにつづいて、また何か似たようなもの作るのかw
>>136
> Rubyを出してきたのはお前だろ。
Rubyのcurryを出してきたのは俺だが、
Rubyのpartialは出していない。そもそもないからな。
だからなんでお前はRubyのcurryとlodashの拡張されたpartialを比べてるんだって話をしてる。
> lodashのは拡張されている。だから_.partialと_.curryは冗長な部分がある。
「だから」が文章としてつながっていない。
> Rubyのcurryでは出来ない記述がある。
Rubyのcurryでは(lodashのcurryでできるが)できない記述がある。
lodashのcurryではあれば、その記述ができる。
そしてRubyにはpartialはない。
という話であればOK。それで何が言いたいのかわからんが。
0141デフォルトの名無しさん
2016/07/17(日) 00:32:27.49ID:8ycEuEZy> curryはlength分の引数を与えないと処理が終わらないが、partialは終わらせることが出来る、という違いがある
それはpartialで引数が足りなければundefinedとして処理されるってだけだろw
curryでもundefinedを与えればよい。
0142デフォルトの名無しさん
2016/07/17(日) 00:33:56.29ID:8ycEuEZyRuby で可変長引数の Proc オブジェクトをカリー化する
http://secret-garden.hatenablog.com/entry/2015/08/02/204010
0143デフォルトの名無しさん
2016/07/17(日) 00:34:35.85ID:UzC9Qtsnいや逆だろ。
飛ばせないcurry/partialなんて大して使い物にならないのさ。
というかお前はここに気づけない点でザコなんだよ。
だから、大口を叩けるほどの腕前ではないのは確かだ。
あんまり無駄吠えするな。
それはさておき、Rubyコミュニティが気づかないというのも無いと思うので、
nil指定したら飛ばし扱いとか、そういう落ちがある気はするが。
0144デフォルトの名無しさん
2016/07/17(日) 00:36:05.41ID:8ycEuEZyそれはおかしいな。飛ばせないカリー化が一般的なカリー化なんだがw
お前関数型言語クラスタに殴り込みに行った方が良いんじゃないか?w
俺はオブジェクト指向言語出身だが、お前らよりもカリー化を分かっている。
とか言ってさw
0145デフォルトの名無しさん
2016/07/17(日) 00:37:26.13ID:UzC9Qtsn> > Rubyのcurryでは出来ない記述がある。
これは以下相当の記述をRubyでは出来ないと言っているんだよ。
てかお前もマジで日本語何とかしろよ。
> var sort_10 = sort_range.partial(_, 10, -10); // 両端10個ずつ以外をソート (>>126)
後ろ側の引き数だけbindする記述がRubyでは出来ないだろ?
0146デフォルトの名無しさん
2016/07/17(日) 00:41:24.42ID:PyzTEoPAちょっとくだらないタイトル思いついたんでスレ立ててきたよw
関数型■引数が飛ばねぇカリー化はただのカレーだ [無断転載禁止]©2ch.net
http://tamae.2ch.net/test/read.cgi/prog/1468683640/
0147デフォルトの名無しさん
2016/07/17(日) 00:44:03.91ID:UzC9Qtsn> それはおかしいな。飛ばせないカリー化が一般的なカリー化なんだがw
これについては俺もそういう意見だ。つまり、頭の悪いお前でも分かるように書くと、
・一般的なカリー化は飛ばせない
・飛ばせないカリー化は余り使い道がない
この2件についてはいいか?
問題は、関数型()な奴らがカリー化のメリットとして、
「部分適用しやすくなる」とか間抜けなことを言っている点なんだよ。
部分適用したいのなら、部分適用関数、つまり _.partialを用意するのが妥当で、
curryで代用ってのはおかしいんだよ。
curryは多分、あれは関数の形を揃える為に使ったものであって、
プログラミング的に意味があるものじゃない。
プログラムをメトリックス的に静的検査する時、関数の形が揃っている方がいいんだよ。
多分その用途向けだよ。
0148デフォルトの名無しさん
2016/07/17(日) 00:44:20.26ID:PyzTEoPA> 後ろ側の引き数だけbindする記述がRubyでは出来ないだろ?
それ以前にpartialってメソッドはRubyにないんだが、
Rubyでpartialメソッドが存在しない言ってるのか?
それとも、どうあがいても後ろ側の引数だけ部分適用する仕様の
partial関数を作ることができないって言ってるのか?
自分で作るんだったら
sort_range.partial(:skip, 10, -10)
とかいう仕様にすりゃ作れるだろ。
0149デフォルトの名無しさん
2016/07/17(日) 00:46:35.76ID:PyzTEoPA・一般的なカリー化は飛ばせない
・飛ばせないカリー化は余り使い道がない
この2件についてはいいか?
その意見はお前の意見だろう?
お前間違ってる個人的な意見に対していいかと
聞かれても困るんだがw
俺に言わせれば
・飛ばせないカリー化は余り使い道がないといってる人がいる
・だけど一般的なカリー化は飛ばせない
・使いみちがないと言ってる人は、みなが一般的なカリー化の話をしてることをどう思ってるのだろうか?
という疑問があるだけだよw
0150デフォルトの名無しさん
2016/07/17(日) 00:48:21.01ID:UzC9Qtsn俺はRubyは知らないからな。その:skipってのはなんだ?
Rubyにそういう書き方が出来るのならそれでいい。
0151デフォルトの名無しさん
2016/07/17(日) 00:48:57.06ID:zhfBdiNAvar finish=false;
hoge(function(){
//非同期処理コールバック
finish=true;
console.log("finish");
});
while(!finish){}
としてみましたが、いつになっても終わりません
ログも出力されません
ループをなくしたらログは出力されました
非同期なのでループは関係ないはずなのに影響しています
これ絶対ブラウザのバグですよね?Chromeです
間違っている所をどんなに探しても見当たりません
同じようなバグになった人いますか?
0152デフォルトの名無しさん
2016/07/17(日) 00:49:43.60ID:UzC9Qtsnでは君はRubyのcurryは使い道があるという見方なんだな。それはそれでいい。
それで lodash では飛ばせるように拡張されているが、それは無駄だと思うか?
0153デフォルトの名無しさん
2016/07/17(日) 00:51:30.43ID:UzC9Qtsnシングルスレッドだから。
0154デフォルトの名無しさん
2016/07/17(日) 00:53:51.78ID:PyzTEoPA結局の所お前が言いたいのは、カリー化は部分適用以外に
使いみちが思いつかないってことだろ?
上の方でlodash/fpってライブラリを紹介した。
このライブラリではすべての関数がカリー化されている。
partialでは「カリー化+部分適用」をしてしまうから
カリー化だけをした関数を作ることはできない。
このライブラリを作ることはできないんだよ。
114 自分:デフォルトの名無しさん[sage] 投稿日:2016/07/16(土) 15:57:58.64 ID:Opsk5pSE [3/12]
lodashの公式トップからリンクはられているlodash/fpって面白いな。
more functional programming (もっと関数型プログラミング) だからfpか。
https://lodash.com/
https://github.com/lodash/lodash/wiki/FP-Guide
> The lodash/fp module promotes a more functional programming (FP)
> friendly style by exporting an instance of lodash with its methods
> wrapped to produce immutable auto-curried iteratee-first data-last methods.
説明は面倒なのでqiitaの記事にまかせるがカリー化することのメリットでもあるな。
http://qiita.com/kiri/items/9790c3af42235273c9dd
> lodashの各関数について、引数の順序をiterateeが最初になるように、
> あるいは処理対象データが最後になるように変更した上で予め全てcurryingしたもの。
0155デフォルトの名無しさん
2016/07/17(日) 00:54:28.92ID:zhfBdiNAマルチスレッドです
0156デフォルトの名無しさん
2016/07/17(日) 00:54:55.25ID:zhfBdiNA0157デフォルトの名無しさん
2016/07/17(日) 00:54:59.72ID:PyzTEoPA> それで lodash では飛ばせるように拡張されているが、それは無駄だと思うか?
「便利なもの」が「より便利なもの」になった。
「より便利なもの」の部分がなければ「便利なもの」になるだろう。
0158デフォルトの名無しさん
2016/07/17(日) 00:56:17.69ID:PyzTEoPA> Rubyにそういう書き方が出来るのならそれでいい。
じゃあそれでいいということで話は終わりだ。
まったく何が言いたいんだかw
Rubyにはpartialが無いって言ってるのに
なんでlodashのpartialと比べるんだか。
0159デフォルトの名無しさん
2016/07/17(日) 00:56:59.12ID:zhfBdiNA0160デフォルトの名無しさん
2016/07/17(日) 01:03:22.24ID:UzC9Qtsnいや話がおかしな事になっているぞ。
全てカリー化された世界があるのなら、それはそれでいいんだよ。
Haskellがそうだし、lodash_fpもそうならそれでいい。
> partialでは「カリー化+部分適用」をしてしまうから
これが間違い。
partialはカリー化しない。(当然fpが付いてない方のlodashな)
>>157
無いよりましって考えか?それならそれでいい。
ただ俺はRubyのcurryなら要らないし、_.partialなら欲しい、ってだけ。
_.curryは_.partialの代用にはなるけど、記述が冗長になるだけだから、
_.partialだけでいい。
>>158
:skip ってググッても出てこないが。知ってたらURLくれ。
0161デフォルトの名無しさん
2016/07/17(日) 01:35:44.19ID:o7sDjaLN> curryでもundefinedを与えればよい。
内部的にundefinedで処理をしていればそれで等価だが、arguments.lengthで分岐処理していれば等価ではなくなる
0162デフォルトの名無しさん
2016/07/17(日) 01:51:40.48ID:UzC9Qtsn何かと思えばそれも明確な間違いだな。
undefinedを指定したらundefinedという値がバインドされるだけ。
指定してないことにはならない。例えば
func.bind(undefined)
ならundefinedがバインドされ、結果的にwindowが与えられるようだ。
これは後からcall等で与えても上書き出来ないんだよ。
てか真面目な話、お前はもうちょっと書いた方がいいんだよ。
基礎は出来ているから、後は書けよ。
0163デフォルトの名無しさん
2016/07/17(日) 03:25:10.13ID:PyzTEoPA> :skip ってググッても出てこないが。知ってたらURLくれ。
なんかお前勘違いしているようだなw
https://lodash.com/docs#partial
> // Partially applied with placeholders.
> var greetFred = _.partial(greet, _, 'fred');
> greetFred('hi');
> // → 'hi fred'
partial の _ って何かわかるか?
これはただの変数だぞ。
特殊な変数を作ってそれを渡されたときだけ
特別扱いするのならなんだってできるよな?
0164デフォルトの名無しさん
2016/07/17(日) 03:26:39.06ID:PyzTEoPA> undefinedを指定したらundefinedという値がバインドされるだけ。
> 指定してないことにはならない。例えば
> func.bind(undefined)
あのさ、bindの第一引数は、thisをなんに固定するかなの
二番目以降とは扱いが違うの。それぐらい分かれよw
0165デフォルトの名無しさん
2016/07/17(日) 03:28:33.37ID:PyzTEoPA今話してるpartialとは違うものなんだわ。
> curryはlength分の引数を与えないと処理が終わらないが、partialは終わらせることが出来る、という違いがある
partialの話をしてるのに、bindを持ってきて、bindの第一引数は〜(partialにないもの)
とか言い出すのって、意味がわからんというか卑怯な行動というか、
お前ほんとに何を主張したいの?
0166デフォルトの名無しさん
2016/07/17(日) 03:39:02.29ID:PyzTEoPA> それはpartialで引数が足りなければundefinedとして処理されるってだけだろw
> curryでもundefinedを与えればよい。
さて反論ついでにこれの検証でもしてみましょうかw
function foo(a, b, c) {
return a + ':' + b + ':' + c
}
var foo1 = _.partial(foo, 1);
console.log(foo1(2)); // 1:2:undefined
var foo1 = _.curry(foo)(1);
console.log(foo1(2, undefined)); // 1:2:undefined
はい、たしかにpartialはundefinedとして処理されるだけ。
curryでもundefinedを渡すことで同じことができました。
なお、こうすることでもっと近い動きになりますね。
var foo1 = _.curry(foo, 2)(1);
console.log(foo1(2)); // 1:2:undefined
console.log(foo1(2, 3)); // 1:2:3
0167デフォルトの名無しさん
2016/07/17(日) 03:54:11.01ID:UzC9Qtsnいや既存の関数を組み合わせるから意味があるんだろ。
CSSみたいに予約語で :before とかがあるのなら意味があるが、それなら意味無い。
てかお前話について来れてないし、それ以前に関数型を理解出来てないな。
>>164
ではRubyのcurryで飛ばして指定してみろ。出来ないだろ。
(第1引き数を指定せずに第2引き数を固定する)
こちらも話について来れてない。
対象がthisか引き数かなんて関係ないんだよ。
当然bindかreplaceかcurryかも関係ない。
てかお前、結局自分の間違いは絶対に認められない馬鹿なのね。
そりゃお前荒らし扱いされるよ。
>>165を見てもお前は理解出来ていない。
>>161は正しいことを言っている。(確認はしていない)
ただそれは余りないから、俺がもうちょっとマシなケースを付け足しただけ。
いずれにしても、卑怯なのはお前だよ。
日本語が不自由なら、何度も読み返してまっすぐ回答しろよ。
そして自分の間違いを認めろ。
いちいち揚げ足をとるのは俺の趣味じゃないからしないけど、沢山間違えているよ。
そしてお前の間違い雅言院のくせに無駄吠えが多い。
実力がある奴は無駄吠えしないものだよ。お前が小物であることは間違いない。
JavaScriptにおいては、undefinedを指定するのと、何もなくて結果的にundefinedなのは、
扱いが違うんだよ。俺たちはそれを言っている。お前は多分このことを知らない。
だからundefine指定すればいいとかいう寝ぼけた回答が出てくる。
>>166を見ても、お前は根本的に分かってない。
0168デフォルトの名無しさん
2016/07/17(日) 03:59:07.76ID:PyzTEoPA> ではRubyのcurryで飛ばして指定してみろ。出来ないだろ。
だからなんでlodashの特殊機能ができるかできないかの話をしてるんだ?
それが意味不明だって話をしてるんだろ。
Ruby版lodashを作ればいいだけだろ。
まずなお前は、コードを書け。書いて証明しろ。
お前がやってるのは「分かってない」って言うだけだろ。
何が分かってないのかも言えやしないw
0169デフォルトの名無しさん
2016/07/17(日) 04:00:58.88ID:PyzTEoPA認められない〜
関係ない〜
わかってな〜い〜
間違えてるよ〜
知らない〜
何回言ってるんだかw
否定するだけで、何が正しいのかを一つも書いていない。
0170デフォルトの名無しさん
2016/07/17(日) 04:05:21.46ID:PyzTEoPAfunction foo(a) {
return Array.prototype.slice.call(arguments).join(':')
}
var foo1 = _.curry(foo, 2)(1);
console.log(foo1(2, 3, 4, 5));
0171デフォルトの名無しさん
2016/07/17(日) 05:17:29.10ID:o7sDjaLNhttps://jsfiddle.net/4fa1n49y/
故にcurryはpartialの代替にならない
0172デフォルトの名無しさん
2016/07/17(日) 05:41:33.47ID:uL5p4xyf扱いが違うんだよ。
正しくは、引数において、undefinedを指定するのと、何も指定しないのとは扱いが違う部分がある、だろう。
結果的にundefinedを参照する部分になってしまうと違いはない。
まあとは言え標準仕様もだいぶそういう記述じゃなくなってきたし、
全体的な雰囲気で言うと『JavaScriptにおいては〜』って感じじゃなくなったけどね。
0173デフォルトの名無しさん
2016/07/17(日) 06:20:05.19ID:PyzTEoPAだからなに?としか言いようがない。
curryでもundefinedと何も指定しないのの
区別はつくんだから同じ話。
0174デフォルトの名無しさん
2016/07/17(日) 06:22:53.14ID:PyzTEoPA実装できたな。
https://jsfiddle.net/4fa1n49y/1/
お前が何を言いたいのかさっぱりわからない。
0175デフォルトの名無しさん
2016/07/17(日) 06:29:22.54ID:PyzTEoPAarguments.length = 0 と > 3 の場合を忘れていたなw
https://jsfiddle.net/4fa1n49y/2/
0176デフォルトの名無しさん
2016/07/17(日) 06:30:28.09ID:PyzTEoPAhttps://jsfiddle.net/4fa1n49y/3/
0177デフォルトの名無しさん
2016/07/17(日) 07:56:59.16ID:pSsgY/TxJSでは、ブラウザ(実行環境)側のGUIスレッドと、
君が書いたJSのソースコードの、2つのスレッドがある
while(true){}のような、無限ループをすると、君が書いたJSから、
ブラウザ側へ制御を渡す、タイミングがないから、描画もされない。
これを実行環境を除いて、シングルスレッドと言う
function f(){
〜処理
setTimeout(f, 0);
}
一方、setTimeoutを使うと、イベントキューに投入だけして、関数fは、すぐにリターンする。
関数はスタックに積まれていないから、10万回以上再帰しても、スタックオーバーフローにならない
関数fがリターンしたら、ブラウザ側へ制御が移って、画面描画・入出力が行われ、
イベントキューから、次のイベントを取り出して、処理する
setTimeoutに、0msを指定しても、必ず一旦、ブラウザ側へ制御が移るので、ブラウザが処理できる。
ただし、0msを指定しても、実際には最低でも、4msかかる
0178デフォルトの名無しさん
2016/07/17(日) 08:08:36.38ID:zhfBdiNAつまりwhile(true){}をしている間は排他処理かなんかでGUIスレッドがロックされているんですね
でも2つのスレッドといっても非同期関数を呼び出したら沢山スレッドが出来るはずです
0179デフォルトの名無しさん
2016/07/17(日) 08:56:27.15ID:pSsgY/Txブラウザ(実行環境)側へ制御が移らず、
結局スレッドも作られないから、シングルスレッドと同じになる
非同期という意味は、実行環境のイベントキューへ、
イベントを投入だけして、関数fは、すぐにリターンする
そこで一旦、ブラウザ側(UIスレッド)へ制御が移って、様々な処理をこなせることが重要
0180デフォルトの名無しさん
2016/07/17(日) 10:07:12.11ID:zhfBdiNAつまり簡単に言うとjavaとは違うという事ですか?
0181デフォルトの名無しさん
2016/07/17(日) 10:45:47.12ID:pSsgY/TxAndroidでもそう。
UIスレッドと、自分の書いたソースコードの、2つのスレッドがある
ゲームループも同じ。
1秒に30フレームなら、33.3ms内に、自分のコードの処理を終わらせて、
UIスレッドに制御を移さないと、画面が再描画されず、駒落ちする
自分が書いたソースコードの部分は、シングルスレッドになるから、
どこかでUIスレッドに制御を移さないと、イベントが処理されない
0182デフォルトの名無しさん
2016/07/17(日) 10:50:30.76ID:UzC9Qtsnいやお前それ出来ていないし。
出来てないって分かってないのお前だけだし。
というか、お前が日本語分からない病を発症するのは自分が都合悪い時だけだよね。
そりゃやっぱり荒らしだよ。
馬鹿なお前の為に、俺たちは具体的に色々用意しているわけだが、
それを理解できないようならさすがにもう話は無理だ。
お前は表面的な読み方をしている。その単レスしか読めてないんだ。
なんでその話が出てくるのか理解出来ていない。
煽り抜きでガチのアスペなのかもしれないが。
俺たちはおかしな論理を展開していない。
前の話が通じなかったから別の言い方という至極当然のことを行っている。
もっと前のレスを読み直して、例えば>>171にしても何でその話が出てくるのか確認してから回答しろ。
お前は>>171しか見てないから話がずれる。
0183デフォルトの名無しさん
2016/07/17(日) 10:56:11.88ID:UzC9Qtsn俺が言いたかったのはundefined指定しても飛ばし扱いにはならないって事ね。
まあそちらの言い分はその通り。
0184デフォルトの名無しさん
2016/07/17(日) 11:11:11.44ID:UzC9Qtsn> JSでは、ブラウザ(実行環境)側のGUIスレッドと、
> 君が書いたJSのソースコードの、2つのスレッドがある
俺は詳しくないが、多分それはnodeの場合で、ブラウザのJSの場合は合わせて一つだと思う。
だから無限ループしたらブラウザごと固まる。
> ただし、0msを指定しても、実際には最低でも、4msかかる
これは環境による。というか最低4msかかる環境はかなり稀だと思う。
>>178
> 非同期関数を呼び出したら沢山スレッドが出来るはずです
これが間違い。
非同期関数は一つのスレッドによって順番に非同期に処理される。
という言い方だと余計混乱するかもしれないが、
非同期処理するスレッドが1つしかなく、それは同期処理しているスレッドと同じ物なんだよ。
だからそもそもスレッド生成しない。
全てを一つのスレッドが処理していくだけ。
0185デフォルトの名無しさん
2016/07/17(日) 11:15:00.98ID:UzC9Qtsn> UIスレッドと、自分の書いたソースコードの、2つのスレッドがある
繰り返すが、JSの場合はそれは違う。
とはいえそれ以外の部分は基本的な考え方ではあるし、
そちらの言い方の方が相手に通じるかもしれないが。
0186デフォルトの名無しさん
2016/07/17(日) 11:37:20.37ID:UzC9Qtsnこれな。
http://please-sleep.cou929.nu/onload-handler-setting-timing-and-async-request-of-image-element.html
不幸なことにこの現象が発生するのはIEだけで、他は問題ない為、
IEのバグだということになっている。
要するに、仕様上はJS側の実行状況を待って描画しないといけないわけではなく、
実際に独立して描画しているブラウザもある。
多分そちらの言っているUIスレッドってのはこれのことだろ?
それらとJSスレッドは同期しておらず、同期しろという仕様もない。
とはいえ現実的にはchromeやFFは同期しているわけだが。
まあ、質問者にはそちらの説明で十分だとは思うが。
0187デフォルトの名無しさん
2016/07/17(日) 11:49:36.13ID:PyzTEoPA> いやお前それ出来ていないし。
> 出来てないって分かってないのお前だけだし。
いやできてるでしょw
話について来れてない〜
認められない〜
関係ない〜
わかってな〜い〜
間違えてるよ〜
知らない〜
出来てない〜 ← NEW
0188デフォルトの名無しさん
2016/07/17(日) 12:23:25.28ID:PyzTEoPA>>186とかさ、いきなり全く関係ない
リンク持ってきて本当に意味不明w
0189デフォルトの名無しさん
2016/07/17(日) 12:42:49.70ID:BOb01YTDlodashのcurryは第二引数でlengthを指定可能だが、第二引数に0を指定したらもはや「部分適用」だな
https://lodash.com/docs#curry
>>171は「カリー化で部分適用は代用できない」といっているのだろうから、言葉が通じてない
rubyも引数の数を指定可能なようだから「部分適用」を実装可能だが…
http://docs.ruby-lang.org/ja/2.1.0/method/Proc/i/curry.html
この実装が一般的なのかどうかは知らんが、ID:PyzTEoPAはlodashの実装が絶対的なものと認識しているようだな
0190デフォルトの名無しさん
2016/07/17(日) 12:49:22.29ID:UzC9Qtsn>>161と>>171を読んで>>176は完全にアスペだぞ。煽り抜きで。
0191デフォルトの名無しさん
2016/07/17(日) 13:09:17.87ID:PyzTEoPA> lodashのcurryは第二引数でlengthを指定可能だが、第二引数に0を指定したらもはや「部分適用」だな
そのとおりだが?
だから curryで見事、partial(部分適用)を実装してみせただろ。
curryがpartialの代替になった。
> 171 名前:デフォルトの名無しさん[sage] 投稿日:2016/07/17(日) 05:17:29.10 ID:o7sDjaLN [4/4]
> curryでこのコードは実装できない
> https://jsfiddle.net/4fa1n49y/
> 故にcurryはpartialの代替にならない
curryの第二引数を0にしたらpartialの代替になるな。
0192デフォルトの名無しさん
2016/07/17(日) 13:10:48.13ID:PyzTEoPA> この実装が一般的なのかどうかは知らんが、ID:PyzTEoPAはlodashの実装が絶対的なものと認識しているようだな
それをいうならば、lodashのpartialを前提にして
話をすすめるのをやめろよ。
lodash以外のpartialの話は出てきていない。
0193デフォルトの名無しさん
2016/07/17(日) 13:50:05.02ID:oPCVgRrMconsole.log( (new Date('2010-6-2') - new Date('1996-10-21'))/(1000*60*60*24*365)|0);//13
console.log( (new Date('2010-10-18') - new Date('1996-10-21'))/(1000*60*60*24*365)|0);//14
でやってみたのですがどうも合っていない気がします
0歳 1996年10月21日
1歳 1997年10月21日
13歳 2010年06月02日
14歳 2010年10月18日?
14歳 2010年10月21日
初心者考えに「タイムスタンプで差分出して年間のミリ秒で割ればおk♪」と期待していたのに出来なくてショックででした(泣
そこで、ぐぐってみて修正したところ
function calculateAge (birthday, when) {
var b = new Date(birthday.getTime()).setFullYear(2000);
var w = new Date(when.getTime()).setFullYear(2000);
return when.getFullYear() - birthday.getFullYear() - (w >= b ? 0: 1);
}
console.log(calculateAge(new Date('1996-10-21'),new Date('2010-6-2')));//13
console.log(calculateAge(new Date('1996-10-21'),new Date('2010-10-18')));//13
console.log(calculateAge(new Date('1996-10-21'),new Date('2010-10-21')));//14
これで上手くいってるみたいです
が、理由がよくわかりません
setFullYearで2000年をまたぐ部分の処理をしているみたいですが
一体何のために処理をしているのでしょうか?
chrome
0194デフォルトの名無しさん
2016/07/17(日) 13:59:12.58ID:PyzTEoPA1年は365日じゃなくて366日の場合もあるんだから
それじゃだめだろ。
そのコードの意味は知らんし、一見してバグがあるだろうなと思ったので
読むつもりはないがうるう年の例外の例外の年の一つ、2000年が
俺らの人生の中で珍しく発生してるから、どうせそのための手抜きコードだろ。
0195デフォルトの名無しさん
2016/07/17(日) 14:12:23.95ID:PyzTEoPAところでJavaScriptライブラリのmoment.jsを使ってみてはどうかね?
http://momentjs.com/
http://momentjs.com/docs/#/displaying/difference/
moment("2010-10-18").diff('1996-10-21', 'years'); // 13
詳しくは検証していないが期待する結果になってないか?
俺もちゃんと調べてないが、上のリンクのちょっと下にある
「Month and year diffs」の所で特殊な処理をしてると書いてあるぞ。
0196デフォルトの名無しさん
2016/07/17(日) 14:28:20.51ID:oPCVgRrM使いたいのは山々なのですがchrome拡張内のコンソールで使おうとすると
拡張別にライブラリ導入の仕様が異なったり
他のライブラリと併用するととても野暮ったくなってしまうのです
0197デフォルトの名無しさん
2016/07/17(日) 14:41:02.77ID:PyzTEoPAよくわからんな。
結合して1ファイルにすればいいじゃないか?
0198デフォルトの名無しさん
2016/07/17(日) 14:46:55.90ID:oPCVgRrM別タグ移動、もしくは再読み込みした場合に、またライブラリを読みなおししないといけなかったり
その状態で長時間回すと止まったり、
拡張によって仕様が違うのでゴリ押しで導入してもエラーを吐く場合があるのです
0199デフォルトの名無しさん
2016/07/17(日) 15:03:05.93ID:PyzTEoPA頑張って勉強しろとしか言いようがないが・・・。
0200デフォルトの名無しさん
2016/07/17(日) 15:06:33.84ID:UzC9Qtsnそもそも - がオーバーロードされていないはず。
確かに動いてはいるが。
MDNのサンプルでも直接引いてはいないだろ。
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Date
> setFullYearで2000年をまたぐ部分の処理をしているみたいですが
してないね。よく読め。
0201デフォルトの名無しさん
2016/07/17(日) 15:42:47.20ID:pSsgY/Txうるう年の2/29生まれなら、3/1で年齢が繰り上がる。
2/28生まれなら、2/28
12/31生まれなら、12/31
1/1生まれなら、1/1
年は年だけで、別に計算すればいい
0202デフォルトの名無しさん
2016/07/17(日) 16:00:18.92ID:PyzTEoPA詳しくないなら頑張らなくていいのに。
演算子のオーバーロードがないJavaScriptで何を言ってるんだって感じだし、
日付型をプリミティブ値に変換したらgeTimeと同じだって書いてあるし。
0203デフォルトの名無しさん
2016/07/17(日) 16:13:39.53ID:UzC9Qtsn> 日付型をプリミティブ値に変換したらgeTimeと同じだって書いてあるし。
どこに?
0204デフォルトの名無しさん
2016/07/17(日) 16:29:12.54ID:uL5p4xyfイベントループに依存してるから同期せざるを得ない。
0205デフォルトの名無しさん
2016/07/17(日) 16:43:27.90ID:UzC9Qtsn足し算はToPrimitive()で文字列になる。
さて引き算はToNumber()だから数値になると言いたいところだが、以下によると
http://www.ecma-international.org/ecma-262/5.1/#sec-9.3
ToNumber(ToPrimitive(object))
らしい。
DateのToNumberとToPrimitiveの仕様が分かれば確定するが、どこに書いてあるのか分からん。
0206デフォルトの名無しさん
2016/07/17(日) 16:47:53.64ID:PyzTEoPAお前が持ってきたページのリンクを
一つ残らずクリックしろ
0207デフォルトの名無しさん
2016/07/17(日) 16:53:01.97ID:UzC9Qtsnいやそれは関係ない。
DOMツリーにぶら下げた時点で描画していい。
描画スレッドが別スレッドならその時点で描画が開始される。これがIE。
描画スレッドとJSスレッドが同一、或いは同期しているのなら、
JSスレッドが走行終了してから描画が開始される。これがCHとFF。(と言われている)
本来はIEの方が技術的には上のはずなのだけど、この点は完全に裏目ってる。
とはいえ、確か俺はFFでも遭遇した覚えがある。
それ以降は気を付けるようにしたから、CHでどうなのかは分からない。
0208デフォルトの名無しさん
2016/07/17(日) 16:55:50.50ID:PyzTEoPAアホすぎるものにレスするのも苦痛になってきたなw
>>186が持ってきたリンクは
画像のロードとそのイベントの話であって
画像の描画の話じゃない。
って言えば ID:UzC9Qtsnのアホさが
他の人には伝わるだろ。
本人はわからんだろうがw
0209デフォルトの名無しさん
2016/07/17(日) 16:56:21.43ID:UzC9Qtsn15.9にはないように見えるが。そこに無ければどこにある?
0210デフォルトの名無しさん
2016/07/17(日) 16:58:18.99ID:PyzTEoPAそっちじゃねーよ。
お前が持ってきたページを全部見直せ
0211デフォルトの名無しさん
2016/07/17(日) 17:01:26.78ID:PyzTEoPA0212デフォルトの名無しさん
2016/07/17(日) 17:11:33.81ID:UzC9Qtsn11.6.1.NOTE1か?
hintがどうこう言っているだけで、結果はよく分からんが。
>>211
俺は15.9に
ToPrimitive(Dateオブジェクト)
ToNumber(Dateオブジェクト)
がどうなるか書いてあるようには読めないよ。
0213デフォルトの名無しさん
2016/07/17(日) 17:18:42.95ID:PyzTEoPAそれ以前の話だからな。
そこに書いてないってことは、
それ以前に解決済みだってことだ。
それにしても ID:UzC9Qtsn のようなやつが仕様を持ち出すとか笑えるね。
仕様策定者でもない限り普通はコードを書いて何かしらの自体が起きて
(今回で言えば日付型同士の減算が可能!?)
その理由を知るために仕様を読むんだが、
まるで仕様ばっかり読んでわかった気になって、
実際に使ってないかのように見えるね。
つまり実戦経験がない。
0214デフォルトの名無しさん
2016/07/17(日) 17:25:35.91ID:UWgEbhve「1996年10月21日」生まれの人が「2010年10月18日」に誕生日を計算する場合、「2010-1996=14」では誕生日を求められない(まだ、2010年の誕生日が訪れていないからだ)
function calculateAgeのコード制作者はnew Dateを2000年に統一して差分をミリ秒単位でとることで誕生日が訪れているかを判定できると考えた
これは一見、正常動作しているように見えるが、どちらか一方が閏年だった場合に2/28の有無で24時間分のズレが生じるので完璧ではない
確実に判定するには
「年の差分」を得た後に「月の差分」「日の差分」「時間の差分(一日分で単位はミリ秒」を比較して誕生日が訪れたか確認する事だろう
0215デフォルトの名無しさん
2016/07/17(日) 17:29:05.04ID:UzC9Qtsnああ分かった。15.9.1か。
ToNumber/ToPrimitiveとかは総称として abstruct operation と呼ばれ、(9.1)
その呼称で記述されているわけか。(俺は総称があるとは知らなかった)
まあ引き算が出来るのはそれでよし。
足し算は
ToNumber(ToPrimitive(time values(=数値))) + ToNumber(ToPrimitive(time values(=数値)))
なんだから、ただの数値になるべきなのだが、実際はtoStringの連結になっている。
これは仕様違反なのか?
0216デフォルトの名無しさん
2016/07/17(日) 17:42:25.90ID:PyzTEoPA0217デフォルトの名無しさん
2016/07/17(日) 17:47:38.89ID:UWgEbhveあなたが示したリンク先に左辺がString型なら右辺もString型に変換し、連結した値を返す(return)と読めるが
http://www.ecma-international.org/ecma-262/5.1/#sec-11.6.1
ES3なら日本語訳もある
http://www2u.biglobe.ne.jp/~oz-07ams/2002/ecma262r3/11_Expressions.html#section-11.6.1
頼むから質問する相手は選んでくれ
彼は他人の無知を嘲笑ってかき回したいだけのいたずらっ子だ
質問するなとはいわないが、レスアンカをつけずに質問して彼をスルーする等の対策はとってほしい
0218デフォルトの名無しさん
2016/07/17(日) 17:48:47.85ID:PyzTEoPA> あなたが示したリンク先に左辺がString型なら右辺もString型に変換し、連結した値を返す(return)と読めるが
今回はDate型なんだから話が違う
0219デフォルトの名無しさん
2016/07/17(日) 17:51:08.17ID:PyzTEoPA出てきたのか?ってのが気になってるわけだがw
0220デフォルトの名無しさん
2016/07/17(日) 18:25:12.10ID:UzC9Qtsn確かにこれはやりすぎなので向こうに落とした。
http://echo.2ch.net/test/read.cgi/tech/1449440793/287-288
>>217
了解。とりあえず移動する。
0221デフォルトの名無しさん
2016/07/17(日) 18:32:24.27ID:PyzTEoPA0222デフォルトの名無しさん
2016/07/18(月) 05:37:57.21ID:FfTrxk2Lhttps://tc39.github.io/ecma262/#sec-addition-operator-plus-runtime-semantics-evaluation
Dateにはhintの無い(defaultな)プリミティブ化のとき
string化を優先させる特別な@@toPrimitiveが定義されてるので
toStringの方が呼ばれる。
https://tc39.github.io/ecma262/#sec-date.prototype-@@toprimitive
https://tc39.github.io/ecma262/#sec-toprimitive
https://tc39.github.io/ecma262/#sec-ordinarytoprimitive
0223デフォルトの名無しさん
2016/07/18(月) 11:30:58.84ID:bcoQ8eS/新しいバージョンが出てるのにnpm -g upで新しくなりません
いちいちアンインストールしてからインストールしなおしてます
どうやってアップデートするんですか?
0224デフォルトの名無しさん
2016/07/18(月) 12:12:24.05ID:UhcVRSnP0225デフォルトの名無しさん
2016/07/18(月) 15:33:47.35ID:2YiAFpK4document.ID.src = "pic.jpg";
これのIDの部分を配列変数みたいに使えないだろうか?
こんな感じで使いたいんだがこのままだとエラーになる
var list = [area0, area1];
document.list[0].src = "pic.jpg";
document.list[1].src = "pic.jpg";
なにかいい方法あったら教えて下さい
0226デフォルトの名無しさん
2016/07/18(月) 15:50:12.64ID:x26cHOJDもしかして、こういうこと?
var list = [
document.getElementById('area0'),
document.getElementById('area1')
];
list[0].src = "pic.jpg";
list[1].src = "pic.jpg";
0227デフォルトの名無しさん
2016/07/18(月) 16:26:38.85ID:2YiAFpK4できました
ありがとうございます。
0228デフォルトの名無しさん
2016/07/21(木) 15:12:44.45ID:hMSDEF/P何度もjavaを入れ直しているのにプラグインが入りません・・。
IEでは正常に動きます。原因が分かる方いたら教えて下さい・・。
0229デフォルトの名無しさん
2016/07/21(木) 15:52:26.95ID:H+8vmePLソフトウェア板に専用スレが立ってるからそっちで聞いてね
0230デフォルトの名無しさん
2016/07/21(木) 23:44:31.97ID:cYO+DsiXすみません
動いたので安心していたら
Uncaught TypeError: Cannot set property 'src' of undefined
キャッチされない例外TypeError:未定義のプロパティ 'SRC'を設定することはできません。
こんなエラーが出てしまいました。
いろいろ調べては見たのですが上手い解決策がありません。
なにかいい方法あったら教えて下さい。
0231デフォルトの名無しさん
2016/07/22(金) 00:12:24.76ID:2d8IYdtg.src をつけてるオブジェクトには、ちゃんと img要素のオブジェクトが入ってる?
あと、listを作るのは、ちゃんとHTML読み込みが完了してからにしてる?(window.onload を使うとか)
0232デフォルトの名無しさん
2016/07/22(金) 00:13:36.62ID:TYfQ1tRC何がやりたいのか分からないけど
list[0].setAttribute("src", "pic.jpg");
やってみたら
0233デフォルトの名無しさん
2016/07/22(金) 01:51:29.59ID:LRtdFfUywindow.onloadは使ってあるしsetAttributeもダメだったので
多分img要素読み込めていないことに問題があると思います。
時間もあれなのでまた明日挑戦します。
0234デフォルトの名無しさん
2016/07/22(金) 08:57:31.23ID:NAbIMrgH早くここまでの発言・気付き・結論の9割がおかしいことが分かるようになると良いね
0235デフォルトの名無しさん
2016/07/22(金) 10:37:40.26ID:pIiY+R73用途は、基本的には、自分のブログで趣味で使う程度です。
0236デフォルトの名無しさん
2016/07/22(金) 14:55:04.44ID:NRLrP2+LjQueryから入って詳細を学ぶ方が楽しみながら学べると思う
0237デフォルトの名無しさん
2016/07/22(金) 17:43:37.66ID:NAbIMrgH今は選択肢多いからねぇ。
0238デフォルトの名無しさん
2016/07/22(金) 18:53:53.17ID:MjNKqbzT書籍に依るかと
『JavaScript 第6版』は良い
https://www.oreilly.co.jp/books/9784873115733/
0239デフォルトの名無しさん
2016/07/22(金) 21:54:18.71ID:zhSM/RUJ0240デフォルトの名無しさん
2016/07/23(土) 00:39:55.52ID:tWjtYIW6読みやすい本ではない。
基本は十分知っている人が読む本。
0241デフォルトの名無しさん
2016/07/23(土) 03:00:38.15ID:eYAwBGPhimg = new Image();
img.onload = function(){}
img.src =
0242デフォルトの名無しさん
2016/07/23(土) 03:07:12.52ID:eYAwBGPhimg = new Image();
img.onload = function(){}
img.src = '〜.png'
onload を先に書かないと、いけないのじゃ?
.src が先だと、ブラウザの並行処理により、
画像読み込みが先に済んだ場合、永遠に、onload が呼ばれない
(ダブルクォーテーションを使うと、文が切れるから、シングルクォーテーションに変えた。
投稿確認画面が出る際、バグる。2chのバグ)
0243デフォルトの名無しさん
2016/07/23(土) 03:13:57.94ID:tWjtYIW6それをIEのバグだとか騒いでいた
間抜けがいたよなw
0244241
2016/07/23(土) 03:28:35.94ID:eYAwBGPh0245デフォルトの名無しさん
2016/07/24(日) 11:54:04.53ID:2LCCcZChシングルスレッドなので、javaのようにループで待つことが出来ません
0246デフォルトの名無しさん
2016/07/24(日) 12:25:34.03ID:IAPsL1FIcallbackで書くところを同期処理のように書きたいってこと?
0247デフォルトの名無しさん
2016/07/24(日) 12:35:04.59ID:2LCCcZChfunction イベントが発生するまで待つ(){
}
みたいな関数を作りたいです
javaだと
var フラグ=false;
function コールバック(){
フラグ=true;
}
function イベントが発生するまで待つ(){
while(!フラグ){}
フラグ=false;
}
みたいなループで対応出来ましたが、シングルスレッドのjsだと出来ません
0248デフォルトの名無しさん
2016/07/24(日) 12:36:11.25ID:GAqeVEg9addEventListenerでイベントが発生するまで待つことが出来る
0249デフォルトの名無しさん
2016/07/24(日) 12:40:11.16ID:GAqeVEg9Javaは知らないが、そんなCPUを回す実装でしかイベントを実装出来ないものなのか?
同じように作るなら setInterval, setTimeout で実装出来るが、CPUを酷使する実装になる
0250デフォルトの名無しさん
2016/07/24(日) 15:00:05.65ID:p8SJSbCV> シングルスレッドなので、javaのようにループで待つことが出来ません
もしループで待つようなコードを書いたら、
クソコードだって言って突き返すけどなw
0251デフォルトの名無しさん
2016/07/25(月) 04:32:42.69ID:0UVAPYM3カードが無いと、52回もアラートが表示されるのを、阻止したい。
1回目のエラーで、即座に、スクリプトを終了したい
JSには、exit が無いようだが、どうすればよい?
非同期処理で、onerrorは後でコールバックされる
for (52枚分) {
var img = new Image()
img.onload = function () { 処理 }
img.onerror = function() {
alert("読み込みエラー")
}
img.src = どこか
}
0252デフォルトの名無しさん
2016/07/25(月) 05:41:30.27ID:oORbOkwxJSは互いに関係有るような無いような複数ファイルが動くもんだし、
イベントドリブンだから登録されてるものがあるかぎり動く。
で、その解決策としてはフラグを準備するとか、関数を共有して
シングルトンチックに書くとか簡単な方法はちょっと考えなくともナンボでもある。
まあ最近風に書くならPromiseベースにしてPromise.allでも使えばいいんじゃないかな
0253デフォルトの名無しさん
2016/07/25(月) 10:02:38.18ID:umEBYYKNお前は馬鹿なのか?
そんなことせずにreturnすればいい話だろ
やたら複雑にするやつっているよな。
0254デフォルトの名無しさん
2016/07/25(月) 10:57:40.03ID:Ym2voYSRimgに絡む所全てtryで括り、catchでonerrorの処理を行う。
質問のロジックがモジュールならfinallyでエラーを呼び出しにthrowする。
何処で非同期処理を終了するのかが面倒なのかな?
0255デフォルトの名無しさん
2016/07/25(月) 11:08:53.71ID:RRYfyzEqfor ループを止めて img.onload の中で再帰呼び出しすれば良い
>>252が提案するように Promise.all を使ってもよいが、そちらも理屈は同じコールバックで再帰処理させることになる
>>253
img.onerror は非同期処理なので return で処理を中断するには await を併用しなければならない
await は実装が限られているので注意すべし
0256デフォルトの名無しさん
2016/07/25(月) 11:30:37.78ID:HZtj7LrB何がしたいのかわからん。
イメージのエラーじゃなくて、画像を読み込む処理のエラーなら、なんでimgのonerror?にそんなもの突っ込むの?
そこまでアホらしいコードなら、逆にonLoadが52回無事に終わったら成功で良いんじゃないの?
var imgCount=0しといて、
onLoad終わるときに、if(++imgCount==52){
ロード完了後の処理
}
にするとか。
var imgUrls=[
0257デフォルトの名無しさん
2016/07/25(月) 11:32:55.04ID:HZtj7LrBvar imgUrls=[......];
var imgs[];
var createImage=function(arr,success,failure){
if(arr.length==0) return success();
var uri=arr.unshift();
var img=new Image();
img.src=uri;
img.onLoad=function(){createImage(arr,success,failure)};
img.onError=failure;
}
createImage(imgUlrs,function(){
//全部成功
},function(){
//どれか失敗
});
とかの方がシンプルじゃない?
スマホで書いたから間違ってたら直して。
0258デフォルトの名無しさん
2016/07/25(月) 12:24:52.90ID:efDvWL5V試してないけど、img.onLoad, img.onError が期待通りに動作しないかと(大文字が混在してる)
設計概念は Promise.all と同じだね
http://azu.github.io/promises-book/#ch2-promise-all
0259デフォルトの名無しさん
2016/07/25(月) 13:52:39.14ID:fi2YdWy7癖で大文字にしてしまった。ありがとう。
世の中には何故かPromiseが嫌いな人もいるようで。
なんちゃらというライブラリの方が俺は嫌いなんだけどね。
0260デフォルトの名無しさん
2016/07/25(月) 16:21:33.08ID:oORbOkwxフラグ管理してreturnするのでもいい
0261デフォルトの名無しさん
2016/07/25(月) 16:52:16.15ID:yC43A6TW>>260
よくわからんが、読み込み自体が非同期なんじゃね?
グローバルに持ってくる下品なたぐいのやり方か、非同期をつなげるしか出来ない気がする。
0262デフォルトの名無しさん
2016/07/25(月) 16:56:18.24ID:oORbOkwxエラーハンドラが呼ばれた時それがtrueならreturn。
横着だが質問のコードを改変する形では一番シンプルなやり方。
0263デフォルトの名無しさん
2016/07/25(月) 17:01:19.00ID:fi2YdWy7あー、一番楽だな。
0264デフォルトの名無しさん
2016/07/25(月) 17:15:05.02ID:NQ9CNO0Y大丈夫なのか?
0265デフォルトの名無しさん
2016/07/25(月) 19:25:39.96ID:ig5Wi1L3ループ内に関数書いてるバカだなw
0266デフォルトの名無しさん
2016/07/25(月) 21:06:55.55ID:umEBYYKN> 設計概念は Promise.all と同じだね
違うぞ。これはPromiseを使った逐次処理だ。
0267デフォルトの名無しさん
2016/07/25(月) 21:16:37.91ID:umEBYYKNPromise便利だよね。でもやっぱり理解するまで時間がかかると思う。
俺はjQueryで初めて知ったんだが最初はインデントを減らすだけ?
ぐらいしか思わなかった。
今は並列処理関連にいろいろ応用できるって分かっているけど。
0268デフォルトの名無しさん
2016/07/25(月) 21:25:51.95ID:umEBYYKNイベントハンドラの代わりにならないってのがなぁ。
一度resolve()状態になったら、それ以降状態が変わらないから
何度も発生するイベントには対応できない。
だからloadイベントぐらいにしか使えないんだよな。
(正確に言えばloadイベントも、発生後にsrcを変更すると
再度loadイベントが発生するから完全な代替にはならない)
0269デフォルトの名無しさん
2016/07/25(月) 22:33:16.36ID:oTlBCQg6その方法なら一つ目のエラーが確認されるまではimg.onloadをいくつでも発行出来る
従って、エラーを一つに抑える要件を満たせない
0270デフォルトの名無しさん
2016/07/25(月) 23:05:00.08ID:oORbOkwxObservable
https://github.com/zenparsing/es-observable
>>269
要件はアラートを1つしか出さないことでしょ。
別に関数が数十空回りする分なんて何の問題にもならないんだからさ。
もしonloadの方でも問題があるならそっちでも同じくreturnすればいいじゃん。
つかそもそもエラーが起きた時それまでの成功処理をどう片付けるのか、
そもそも片付ける必要があるのかさえ分からないし、この話題に触れるのは野暮。
0271デフォルトの名無しさん
2016/07/25(月) 23:51:53.69ID:RRYfyzEq問題があるかは質問者が判断すればいい事だが、onerrorが複数回発火して2回目以降をスルーするコードは美しくないと思う
0272デフォルトの名無しさん
2016/07/26(火) 01:02:02.22ID:QVnkfIyA0273デフォルトの名無しさん
2016/07/26(火) 01:08:19.97ID:4C3+YW38普通は>>253が正解で、以上終わりだよ。
お前らは本当に自分のレベルの低さを自覚した方がいい。
0274デフォルトの名無しさん
2016/07/26(火) 01:21:06.38ID:qQPpojaePromiseはイベントハンドラの代わりにならないって
言ったんだけど?
Observableを使えってことは、やっぱりPromiseは
イベントハンドラの代わりにならないってことだよね?
0275デフォルトの名無しさん
2016/07/26(火) 03:13:09.55ID:PgLMCPv4そんなアホみたいに長いコードは書かんけど、ソースだけで10M近くに別れるプロジェクトはやってるよ。
だからこそ、そんな小手先は被害を余計に甚大にするだけだってのも知って?
0276251
2016/07/26(火) 07:08:36.57ID:SBchxGpMトランプ52枚の画像は入っていなかった
まあ、実際には1つのファイルにまとめるだろうが、
こういう場合にどうするのかな、と思った
>>253
非同期でコールバックされるから、外側の関数がreturnして、
ブラウザ側へ制御が移ってから、アラートされる
0277デフォルトの名無しさん
2016/07/26(火) 09:23:03.62ID:xARKgQoPそう、美しくない、だからあくまで横着な例だと断ったでしょ。
まあその後のレスで言われてるように、そもそもを言い出したらキリがない。
あと例えばPromise.allを使うと、allの前というか引数内でいろいろチェーンを繋げてからするとじゃなくて
素直なパターンだとallで読み込み全完了してからそのimg要素配列を解決値として受け取る形になるよね。
で、そこから表示となるから、このパターンだと、読み込みながら順次プログレスに表示したい場合には使いにくい。
まあゲームリソースとしてのトランプ画像ならそれは問題ないかもしれない。
まあそれやこれやとか狭い見方広い見方で考えることはキリがないけど、
とりあえずそういう一度きりパターンにはこういうのもあるよと示した。
これがベストだとかどのくらい良いものなのかとかは言ってないし、言わない。ただ横着に思われるかもとは思った。それだけ。
>>274
YESでもありNOでもある。
ただ自分の中ではPromiseとObservableは仲間というか進化関係というか話の繋がりがあるから断りなく言ってしまった。
幾つかの値を断続的に出したいとき:Generator関数がIteratorを返す。
1つの値を非同期に出したい時:Async関数がPromiseを返す。
なら幾つかの値を断続的に非同期に出したい時は?:Async-Generator関数を使う案がある。
ではAsync-Generatorは何を返す?:Promiseを返すIteratorか?
つまり、1つの値を得るのに列挙しながら、解決を待つという2つの作業が必要なのか?
いや、列挙しながら、解決を待つ、これは監視するという1つの作業でこなせる。
そういう新たなインターフェイスを備えたObservableを返そうということになりそう。
つまり逆に言えば今でもPromiseを使っても、Generatorと組み合わせればそういうことはこなせる。
0278デフォルトの名無しさん
2016/07/26(火) 10:47:00.83ID:SBchxGpM非同期って、例外を送れたっけ?
try〜catch〜finallyの例外機構は、使えないのじゃ?
0279デフォルトの名無しさん
2016/07/26(火) 13:07:39.59ID:xA1W5EPUtry〜catchの中に書かれていてもそこでやってる事はonerrorに関数を代入するという操作だけ
なので代入時に例外がなければ問題なく終了してブロックを抜ける
ロード時のエラーについては非同期なので当然ここでは拾えない
0280デフォルトの名無しさん
2016/07/26(火) 22:41:19.02ID:4C3+YW38とりあえず正解は出ているし、君なりに251を書き換えて投稿してみろ。
この状況ならほぼ間違いなくフィードバックは得られるだろう。
ただし、276の後半を読む限り、俺たちが言っていることを君は理解できてない。
君が指摘している点は、全く問題にならない。
というかJSならそれが当たり前だし、逆に、それ以外はない。
そこを問題と感じるのなら、君は非同期とクロージャを理解できていない。
上記の通り、このケースでPromiseを使う必要はないし、使う意味も無い。
練習として書くのは自由だが、このケースは普通のPromiseの使い方に合致しない為、
へんな癖が付くだけだからやめとけ。
Promiseを使いたければ普通のPromiseの使い方が出来るときにやればいいだけ。
0281デフォルトの名無しさん
2016/07/26(火) 23:12:57.91ID:xARKgQoPnew Promise(function(res,rej){
for (52枚分) {
var img = new Image()
img.onload = function () { 処理 }
img.onerror = rej
img.src = どこか
}
}).catch(function() {
alert("読み込みエラー")
})
もしくはカウンタを用意して52枚成功したら解決させてthenで続きの処理をしてもいい。
別に大したことないし、Promiseってのは大したことないことにも使えるものだよ。
0282デフォルトの名無しさん
2016/07/26(火) 23:32:00.09ID:qQPpojaeお前がやってるのは、1+1をPromiseでくるんで
Promiseはこんなところでも使えるって
言ってるようなもんだよw
52枚分のループをどうやるかって話があって
それをカウンタを用意するという話で解決。
ここまでがメインの話。
メインの話が終わったあとにお前がやってきて
周りを単にPromiseで包んでどやぁとか言われてもな。
0283デフォルトの名無しさん
2016/07/27(水) 00:00:48.03ID:WcmPdQZh0284デフォルトの名無しさん
2016/07/27(水) 06:59:19.06ID:uELxTflt別にPromise使うのも、カウンタ使うのも、同じくらい普通なことだろ
>>281を見てわざわざPromiseを使って……ってなるか?
0285デフォルトの名無しさん
2016/07/27(水) 07:07:08.34ID:uELxTflt>>251と>>281の動作の違いが分からないのか
逆に>>282の推奨する>>251の問題を解決するコードって何?
0286デフォルトの名無しさん
2016/07/27(水) 16:34:26.46ID:prwil0JZ知らなすぎて言ってるなら可哀想だけど。
1+1をPromiseでやってる、が意味わからん。
ループで出来る事をPromiseでやってるから、ループ使えば良い、なんて思ってるんだろうか。
そんな事言うなら、ループなんて要らなくて、gotoこそが必要なんじゃねえの?全てのループはjeないしjneなんだから。
>>281
やるなら、52個の、「画像を読み込む」Promiseを作ってallしとけば、その他のリソース読み込みにも使えるだろうし便利だと思うよ。
funcion loadimg(imgno){
return new Promise(res,rej){...}
}
ってしといて、
Promise.all(Array(52).map(loadimg)).then(...).catch(...)
だけで済む。
0287デフォルトの名無しさん
2016/07/27(水) 17:26:55.62ID:uELxTflt[...Array(52)].mapじゃないと。
0288デフォルトの名無しさん
2016/07/27(水) 21:48:13.18ID:rlINsgdh> 普通のプロミスの使い方じゃないの?
ぜんぜん違うよw
>>281を見てみ。Promiseの中のforで52枚分繰り返している。
言い方を変えると、一つのPromiseで52枚分の処理が並列で実行されている。
つまりres(rejectを略すなよ)を呼び出すのは
52枚すべて終わったときに一回だけ。
その52枚の処理がすべて終わったのをどうやって判定するのか?
カウンタを用意する?最初からその話をしていたはずなんだがねw
つまり、この問題をPromiseを使って解決してないのさ。
この問題を何かの方法で解決したのを前提として、
単にそれをPromiseで包んでいるだけ。
Promiseの普通の使い方であれば、new Image()一つに対して
一つのPromiseを生成する。
0289デフォルトの名無しさん
2016/07/27(水) 21:49:01.14ID:rlINsgdh× つまりres(rejectを略すなよ)を呼び出すのは
○ つまりres(resolveを略すなよ)を呼び出すのは
0290デフォルトの名無しさん
2016/07/27(水) 22:04:41.16ID:rlINsgdh0291デフォルトの名無しさん
2016/07/27(水) 22:05:09.91ID:rlINsgdh> 1+1をPromiseでやってる、が意味わからん。
new Promise(function(res,rej){
// -------------↓ いま解決したい問題 ここから ---------
for (52枚分) {
var img = new Image()
img.onload = function () { 処理 }
img.onerror = rej
img.src = どこか
}
// -------------↑ いま解決したい問題 ここまで---------
}).catch(function() {
alert("読み込みエラー")
})
いま解決したい問題はこの部分なのに、この部分でPromiseを使っていない。
正確に言えばrejectは呼び出しているがresolveを呼び出していないから、
このPromiseが正常終了することはない。
だからやってることは↓これと一緒だって言ってるんだよ。
new Promise(function(res,rej){
a = 1+1; // 1+1ではなく、i = i +1 といえばよかったとは思ってる。
}).catch(function() {
alert("読み込みエラー")
})
console.log(a);
単純にくるんだだけ。何のためにPromiseで包んだのって思うだろ?
0292デフォルトの名無しさん
2016/07/27(水) 23:33:39.83ID:NQAdKjCM読み込まれる順番が決まらないから、cards 配列に絵柄を、どうやって入れていくのか?
cardsには、スート毎に、1〜13まで並べる。
スペードの1〜13、クローバーの1〜13、続く
0293デフォルトの名無しさん
2016/07/28(木) 02:43:45.89ID:XB8oACQ8promise.allで一つでも例外が発生したら、それで止まるからいいんだよ。
all
promise.allは、すべてがresolveされたときにはじめてresolveされ、さもなくばrejectされんの。
カウンタも何も要らないよ。
>>291
それは、関数に対する考え方しだいなんじゃねえの?
resolveされてないのは問題だけど。
俺なら>>286で書いたとおり、別個のPromise作って親玉作ってとやってるが、
もしかすると画像の読み込みとonloadは不可分な処理で今の処理でもまずいとかあるじゃん。
でも、どのみちonloadにはハンドラ足すんだから、
→ハンドラのreturnではこのループは終わんないが故の、
→→rejectを書きたいがための、に見えてて気持ち悪いってのはわかるわ。
まあ誰かさんを殺人くんとかどうとか罵った長文野郎であれば、気持ちだけわかる、くらいに下げるけど。
0294デフォルトの名無しさん
2016/07/28(木) 02:47:22.91ID:XB8oACQ813で割った整数の商がカードの種別、
13を法にした場合のその数が、カードの数字、
でいいんじゃねえの?
0295デフォルトの名無しさん
2016/07/28(木) 03:28:13.92ID:QZIZcbGu人殺し君ちーす。
てかせっかくいいあだ名つけてやったんだから間違えんな。「人殺し君」な。
あと、お前もいい加減初心者でしかないことに気づけドアホ。
>>294とかちょっと引くぞ。
0296デフォルトの名無しさん
2016/07/28(木) 03:54:28.69ID:XB8oACQ8言われたくない言葉を、悪口に使うってよくわかるねぇ、つくづく。
>>295はよく使うでしょ。
真面目にやるなら変換テーブル持ってりゃ良いだけなんだし。
0297デフォルトの名無しさん
2016/07/28(木) 07:36:30.92ID:rjKZ5URj一番の問題は例えば5枚読み込みエラーになったときアラートが5回も出る。これを1回にしたいということだったでしょ。
「非同期処理と例外」の話の流れの上でそういう”一度きり”の例外処理を実現するためにプロミスを使ってるんでしょ?
君話の内容とプロミスの挙動本当に理解してる?
0298デフォルトの名無しさん
2016/07/28(木) 23:59:35.24ID:v/GK23aA> promise.allは、すべてがresolveされたときにはじめてresolveされ、さもなくばrejectされんの。
だからresolveされてないだろって話をしてる。
> 俺なら>>286で書いたとおり、別個のPromise作って親玉作ってとやってるが、
だからその別個のPromiseがないだろ?
今のコードのPromiseにはresolveがない・・・Promiseの使い方とはいえない
別個のPromiseは書いていない・・・Promiseの使い方が書いてない。
だからこれはPromiseを使った例じゃないだろ。
0299デフォルトの名無しさん
2016/07/29(金) 00:07:43.93ID:Yq4kvMV2> 「非同期処理と例外」の話の流れの上でそういう”一度きり”の例外処理を実現するためにプロミスを使ってるんでしょ?
Promiseとは処理が終わった後でthenに書いたコードが実行されることで
非同期処理を同期的のように書きたいときに使うもの。
エラーを1回だけ表示したいためにPromiseのrejectの
挙動(機能ではなくて挙動)を利用するっていうのは、
例えば関数の中で処理を中断してそこまでの計算結果(エラーコードではなく)を
返すときに例外を使えますって言ってるようなもんなんだよ。
それは正しい使い方じゃない。
非同期のために使う機能を非同期とは関係なく、
エラーメッセージを1回しか出さないようにするために使ってる。
0300デフォルトの名無しさん
2016/07/29(金) 01:43:15.76ID:xQxW8HVE硬派にプロミスは未来の値のプレースホルダーなのだから、そういう「意味」ではなく「挙動」を利用するのはおかしいよというのならまだ分かる。
でも処理が終わった後で、みたいにPromiseの可能性を広く挙動として認識してるのにそれを否定するのはおかしい。
というか否定する必要ないと思う。
一定時間後に解決させるためだけの値とは関係ないプロミスだって欲しいだろうし、
サブミットボタンが押された時一度きりの処理をさせるみたいなのにも使っていいと思う。
0301デフォルトの名無しさん
2016/07/29(金) 01:53:32.58ID:Yq4kvMV2話は単純だよ。
Promise(約束)っていうのは何を約束するかというと
処理が正常に終わったらthenで書いた処理を将来実行しますっていう約束
それを満たしていないのだから、Promiseの間違った使い方だって話。
動けば何でも良いでしょ?じゃないんだよ(笑)
0302デフォルトの名無しさん
2016/07/29(金) 01:56:07.22ID:Yq4kvMV2一度きりの処理も何も書いていない。
果たされるPromise(約束)はなにもありません。
約束することはないけど約束しましょうというふざけたコード
0303デフォルトの名無しさん
2016/07/29(金) 02:04:12.04ID:xQxW8HVE条件が満ちることを利用するのは良いのに条件が満ちないことを利用するのはダメなの?
それとも具体的に書いた限りでは解決しないプロミスになっていることがご不満なのかな?
それに関しては処理の内容にもよるので具体的には書かなかったけど、その旨を注記したはずだよ。
0304デフォルトの名無しさん
2016/07/29(金) 02:12:37.35ID:xQxW8HVEもう一度言うけど、プロミスとは本来値のプレースホルダー
それを条件の道具として使ってるのだったら、満ちるのに使っても満ちないのに使っても同じ。
例えば>>300のサブミットの件は認めるのにアレは認めないという方が変。
0305デフォルトの名無しさん
2016/07/29(金) 02:57:11.55ID:Yq4kvMV2値のプレースホルダーになってないって話。
値のプレースホルダーっていうのは、
値を返すってことだろ?
resolve(値)をやって、値を返していないのだから、
これは間違った使い方。
0306デフォルトの名無しさん
2016/07/29(金) 03:00:52.86ID:Yq4kvMV2> 条件が満ちることを利用するのは良いのに条件が満ちないことを利用するのはダメなの?
条件が満ちないことを利用するのがだめなんじゃない。
条件が満ちないことは、利用しても利用しなくてもどっちでも良い。
これは関係ない部分。
条件が満ちることを利用しなければだめだって言ってるんだよ。
条件が満ちること=値を返すこと。
resolve(値) がないPromiseはPromiseの処理が永久に終わらない。
非同期だから進むってだけでそのPromiseの処理は無限ループと一緒。
0307デフォルトの名無しさん
2016/07/29(金) 03:07:31.18ID:Yq4kvMV2var p1 = new Promise(function(res,rej){
for (52枚分) {
var img = new Image()
img.onload = function () { 処理 }
img.onerror = rej
img.src = どこか
}
}).catch(function() {
alert("読み込みエラー")
})
// p2 〜 p4 は別のPromiseオブジェクト
Promise.all([p1, p2, p3, p4]).then(function(values) {
console.log('end');
});
いつ終わるのかね?
0308デフォルトの名無しさん
2016/07/29(金) 08:37:20.21ID:OnYsmJnz普通に考えて>>251の「アラートを阻止したい」が「404 Not Foundを阻止したい」を暗喩しているのか、言葉通りアラートだけ阻止したいのか、を質問者に尋ねるのが先
0309デフォルトの名無しさん
2016/07/29(金) 08:46:37.69ID:OnYsmJnz通常、HTTPリクエストは可能な限り抑えるものだ
クライアント端末にはHTTPリクエスト数制限があるからトランプカードで52回もリクエストを発行すれば、その間は他のリクエストを待機させる事になる
その点においては>>253や>>281は良いコードとはいえない
0310デフォルトの名無しさん
2016/07/29(金) 08:55:10.30ID:xQxW8HVEカウンタ用意してresを呼べばいいって言ってるでしょ?
そうした時のプロミスの価値は例外処理を簡単に扱えることと、
そういう風に別のプロミスと連携できること。
それに君が言ってた「普通」ってそういうことだったの?
違うでしょ。>>280の時点では具体的に解決しないプロミスなんて話されていない。
意味ではなく条件処理に使う挙動で使うことがダメだって雰囲気だったでしょ?
もしくはプロミスの仕様を勘違いしてるか、変な信念があるかで
「大袈裟」で「使う意味もない」と言いたいのかと思ったから、
画像読み込み部分でプロミスを1つ1つ作るすでに提案されていた方法とはあえて違った形で
もう少し見かけ上シンプルにプロミスが活かせるサンプルを書いたのが>>281
満ちるか満ちないかの方が、君が後から思いついて持ってきた「関係ない」理屈なんだよ。
確かに君に突っ込ませる隙を作ったのは俺の汚点だけど、
元の問題とは関係ないし、君は関係ない隙を突いて話を曲げ、
主張を全体通し正しかったようにしようとしただけだよね?
こっちは真面目に誠実に話してるんだから、そういうことはやめていただきたい。
0311デフォルトの名無しさん
2016/07/29(金) 09:19:31.65ID:Yq4kvMV2みたいだって話だってこと。
例外を使って正常系の戻り値を返すのは例外の正しい使い方じゃない。
そんなの自信満々に提示されてもねぇ
そしてPromiseの場合は、Promiseでやらなければならない
戻り値を返す(resolve)ということを書いていない。
これは間違った使い方なんだよ。
0312デフォルトの名無しさん
2016/07/29(金) 09:29:49.36ID:xQxW8HVE話がずれながらループしてるということは分かる。
うーん。。。
これは感じ方の問題だから間違ってるとは言わないけど。
君のプロミス観は合理的に考えて変わってると言わざるを得ないね。
おそらくプロミスと最初に出会った時、値という抽象的な面と条件という機能的な面の両方を半端に聞いて
どちら付かずのよくわかんない融合点で認識しちゃったんだろうね。
そしてそのよくわかんない美意識に基づいて、人に縛りプレイを共用するのも奇異としか言いようが無い。
話はもう進まないだろう。俺はこれ以上言うことがない。
何も収穫はなかったが滑稽な矛盾ジョークに沢山笑わせて貰った。
じゃあね。
0313デフォルトの名無しさん
2016/07/29(金) 09:36:50.90ID:Yq4kvMV2自覚がないのかね?w
もしこれを書くとしたら、しっかりコメント残さないといけないね。
// このコードはPromiseを使っているが、Promiseがresolve状態になることはない
// rejectを使って、エラーメッセージを1回しか出さないために使っているだけである。
// 本来は1回しか呼び出すものではないrejectを複数回呼び出すことがあるが、
// これは意図的にやっておりバグではない。
// 仕様上許させた操作であるかわからないが、動いているようである。
0314デフォルトの名無しさん
2016/07/29(金) 09:38:34.34ID:Yq4kvMV2// このコードはPromiseを使っているが、Promiseがresolve状態になることはないので
// 通常のPromiseオブジェクトと同じように使うことは出来ない。
0315デフォルトの名無しさん
2016/07/29(金) 09:51:15.40ID:zuFoZ8Db主処理内で手間のかかる処理を行う為の手段として認識して良いのかな?
処理内に負荷のかかる処理を記述して、インターフェースを優先させる。
処理の空きが出来たらステータスを監視して、完了したら後処理を行う。
これで良いのかな?
こんな点を知らないと、非同期処理内部から「returnで戻れよ」なんて話も出てくる。
0316デフォルトの名無しさん
2016/07/29(金) 10:19:12.35ID:M8iblnlx0317デフォルトの名無しさん
2016/07/29(金) 11:31:50.25ID:hbm++o+iそれはpromiseというよりはcallbackの話だね
0318デフォルトの名無しさん
2016/07/29(金) 12:08:43.37ID:2ZTAOyYt0319デフォルトの名無しさん
2016/07/29(金) 12:16:20.82ID:zuFoZ8Dbcallbackは処理をテーブルに並べて必要に応じて処理を呼び出すモノと思っていた。
今worker内部でcallback実装させたモノ作っているから
メッセージだけでなくステータス監視も付けないとならないのか。
0320デフォルトの名無しさん
2016/07/29(金) 13:48:25.56ID:z2DSZBgH「手間がかかる」や「負荷がかかる」が曖昧すぎると思うのだが。
Promiseを使っても負荷軽減はされない。
Promiseはコールバックを駆使して非同期処理を抽象化したもの。
.catch() があるので例外処理のインターフェースといえなくもない。
> こんな点を知らないと、非同期処理内部から「returnで戻れよ」なんて話も出てくる。
同意。
0321デフォルトの名無しさん
2016/07/29(金) 14:21:53.29ID:M8iblnlx0322デフォルトの名無しさん
2016/07/29(金) 15:35:44.08ID:3BHI3OHgあれ、俺誤読してるのかな。
もちろんonloadとやらの中でresolveするだろ。
それすら想像できてないなら、ほんとに行間読めないやつって居るんだなって衝撃だわ。
0323デフォルトの名無しさん
2016/07/29(金) 15:36:14.29ID:pPxOJaCr真面目にやるなら、どれかが失敗した時点で
応答待ちリクエスト全部を中止する、か
(トランプみたいな画像なら、1枚に集約しておいて、リクエスト結果を切り分けるのが正解だろうが、それは問わないことにする)
0324デフォルトの名無しさん
2016/07/29(金) 15:38:41.36ID:3BHI3OHgエラーをエラーメッセージに変換して否決するやつとか。
俺は用意する。
型付きでJS書いてれば特に。
どこかもっと上位でcatchしてるかもしれないし。
0325デフォルトの名無しさん
2016/07/29(金) 15:54:00.13ID:Wq98kvkQPromiseオブジェクトは必ずしもresolveになり得なくとも良いとPromise自身の実装が証明している
0326デフォルトの名無しさん
2016/07/29(金) 15:56:14.24ID:3BHI3OHg必ず否決されるPromiseであれば、そう書いておけば十分だし。
何より、ようである、みたいな事書いたらレビュー通らないだろ。
でも通さないと通るまで同じ事繰り返して、キリがなくて鬱陶しいから通してから、改修依頼を別の人間に投げるやつ。
そのうち切られる協力会社の子あるあるの発言。
やんごとない理由で切ってるから、本人気づいてないんだろうなって話してたけど、ホントにプロ気分で講釈してて笑える。
>>325
あー、あるね。
テキトーなオレオレpolyfillしか書いた事無いんだろうね。
0327デフォルトの名無しさん
2016/07/29(金) 17:54:06.72ID:P4hCQfNUphpとかって記述まちがったりすると、何行目にエラーってでるじゃないですか
sqlとかもエラーでるじゃないですか
jsってどうやって何行目のどこどこにエラーがあるって知るんですかね
特にjqueryから出るエラー。
0328デフォルトの名無しさん
2016/07/29(金) 18:33:20.14ID:rEVj3QcJ「知る」の主体はブラウザか?
0329デフォルトの名無しさん
2016/07/29(金) 19:09:31.04ID:EWeZ8stihttps://www.google.co.jp/search?q=chrome+developer+tools
0330デフォルトの名無しさん
2016/07/29(金) 20:59:43.21ID:Yq4kvMV2> もちろんonloadとやらの中でresolveするだろ。
それだとじゃあこのコードはなんのために書いたの?って話になるw
onloadの中でresolveを何回も呼び出してはいけない。
理由はわかるだろうけど、resolveした後にrejectする必要があるかもしれないからね。
だからすべての処理が終わった一番最後にresolveしないといけない。
つまりonloadで変数を52からカウントダウンしていって0になったときにresolveを
する必要がある。
だから、
1. Promiseのcacheを変則的なやり方で利用し、かつ変数をカウントダウンするしなければいけない面倒な方法と
2. alertを一回表示したらフラグに立てておいて、フラグが立っていたら表示しない単純な方法
の二通りの答えになるわけさ。
Promiseを使って余計に複雑にするより、
フラグを使ってalert出さないようにする方がいいという話。
0331デフォルトの名無しさん
2016/07/29(金) 21:02:03.09ID:Yq4kvMV2> 静的メソッドPromise.reject(reason)の戻り値は常にrejectされていてresolveは絶対に発生しない
> Promiseオブジェクトは必ずしもresolveになり得なくとも良いとPromise自身の実装が証明している
大きな勘違いしてるぞw
Promiseはrejectもしくはresolve状態のどちらかになる(約束されている)
>>281はどちらにもならならず(エラーが発生しなければ)終わらない
Promiseになっているから間違った使い方だって話。
0332デフォルトの名無しさん
2016/07/29(金) 21:08:19.55ID:Yq4kvMV2> Promiseについてだけど
> 主処理内で手間のかかる処理を行う為の手段として認識して良いのかな?
時間がかかる処理を実行するときに、操作不能になってはいけない。
それを解決する手段として従来はコールバックが利用されていた。
だけどコールバックを使うと、処理が終わったあとに次の処理を行って
その処理が終わった後に次の処理を行う、というのが連続したとき
何重ものネストするコードを書かなくてはいけなかった。
それを解決したのがPromise。
この「処理が終わって」というのをthenメソッドを使って
つなげていくことで、ネストせずに処理を記述できるようになった。
それがPromiseの本質なので、thenでつなげないようなコードは
間違ったPromiseの使い方だって話になるわけよ。
0333デフォルトの名無しさん
2016/07/29(金) 21:14:12.11ID:Yq4kvMV2(元レス>>251を修正したほうが楽だけどw)
var suppress = false;
for (52枚分) {
var img = new Image()
img.onload = function () { 処理 }
img.onerror = function() {
if (suppress) return;
alert(
0334デフォルトの名無しさん
2016/07/29(金) 21:15:41.12ID:Yq4kvMV2>>281をシンプルな方法で書き換えたらこうなる。
(元レス>>251を修正したほうが楽だけどw)
var suppress = false;
for (52枚分) {
var img = new Image()
img.onload = function () { 処理 }
img.onerror = function() {
if (suppress) return;
alert('読み込みエラー')
suppress = true;
}
img.src = どこか
}
0335デフォルトの名無しさん
2016/07/29(金) 21:22:23.31ID:zuFoZ8Db説明ありがとうございます。
考え方は解ったけれど、記述がゴチャゴチャしそうだな。
いま作っているヤツの区切りがついたら、promiseの基礎でも見てみます。
0336デフォルトの名無しさん
2016/07/29(金) 21:46:45.21ID:Yq4kvMV2> 考え方は解ったけれど、記述がゴチャゴチャしそうだな。
1. thenで呼び出す関数の中ではごちゃごちゃした処理をしない。
2. ごちゃごちゃした処理を行いたい場合は関数として切り出して戻り値としてPromiseオブジェクトを返す。
3. アロー関数を使う。
この3つを守れば(もちろん厳密に守る必要はないけど)
単純な逐次処理であれば
func1()
.then(ret1 => func2(ret1))
.then(ret2 => func3(ret2))
.then(ret3 => func4(ret3))
.catch(e => error(e));
という形にできるよ。
非同期処理を行う処理は、Promiseを返す関数にするというのを守っていれば、
あとはそれをどの順番で実行するか、どうつなげるかといった話にできる。
0337デフォルトの名無しさん
2016/07/29(金) 21:49:41.37ID:Yq4kvMV2そうそう。もう一つ、コールバックでは例外発生時の扱いが
大変だったと言うのがある。
コールバックの場合、例外が発生してもコード上の
外のスコープのtry-catchでキャッチするのは単純には実現できない。
Promiseを使えば、途中で例外が起きたときに
チェーンで繋いだ次のcatchにジャンプしてくれる。
0338デフォルトの名無しさん
2016/07/30(土) 00:58:26.91ID:HDsjKptc頭おかしいの?
だから、「52個の画像を読み込んでimageを作るプロミスを返す関数」を返してallすべきだよねって言ってんじゃん。
ってか変則的でもなんでもないと言うか、そんな気が触れたような考え方でプログラム書こうとすんなよ。。
>>334
1番横着なやつ来たなw
0339デフォルトの名無しさん
2016/07/30(土) 04:29:25.67ID:2+wyX/Xh最終的にはasync-awaitですっきりする。
0340デフォルトの名無しさん
2016/07/30(土) 05:22:26.95ID:2+wyX/Xh頭の作りが我々とは違うんだろうよ。
残念だが説得は無駄。
もしかしたらBOTか何かかもな。
0341デフォルトの名無しさん
2016/07/30(土) 05:33:05.64ID:2+wyX/Xh何度もonerrorを呼ばれることを気にしないのはホント不思議だな。
そこはremoveEventListenerすべきじゃないのか?
やってることは全く変わらないと思うのだが(笑)
0342デフォルトの名無しさん
2016/07/30(土) 07:17:30.64ID:HGvU0mp6JavaScriptで、async-await使えるんですね。
此方の方が楽で良い。
ついでにworkerをTaskで定義出来たらいいかな。
0343デフォルトの名無しさん
2016/07/30(土) 09:44:03.43ID:TM2kAcv9> だから、「52個の画像を読み込んでimageを作るプロミスを返す関数」を返してallすべきだよねって言ってんじゃん。
それだと>>281は何のために書いたの?って話になる。
「52個の画像を読み込んでimageを作るプロミスを返す関数」を
書けないから>>281のような変なコードを書いてしまうわけ
0344デフォルトの名無しさん
2016/07/30(土) 09:44:31.79ID:wxugBCYa0345デフォルトの名無しさん
2016/07/30(土) 09:45:23.62ID:TM2kAcv9> でも何度もrejectを呼ばれることを気にする奴が、
> 何度もonerrorを呼ばれることを気にしないのはホント不思議だな。
rejectは最悪52回呼ばれる。
onerrorはimageごとに1回なんだからなんの問題もない。
0346デフォルトの名無しさん
2016/07/30(土) 09:49:00.02ID:TM2kAcv9本来は「1個の画像を読んでimageを作るプロミスを返す関数」を作らないといけないのに、
ここで52個の画像を読み込むとかいって>>281のようなコードを書くから
やっぱりこいつはPromiseの使い方がわかってないとしか言えんわけだよw
0347デフォルトの名無しさん
2016/07/30(土) 09:52:17.70ID:JI59i/1E馬鹿の一つ覚えw
0348デフォルトの名無しさん
2016/07/30(土) 09:56:25.42ID:TM2kAcv9Promiseを使っている意味が全くない、
間違ったPromiseのであるということを示すために
本当の使い方を俺が書いてやろうか?
0349デフォルトの名無しさん
2016/07/30(土) 10:06:40.14ID:TM2kAcv9return new Promise(function(resolve, reject) {
var img = new Image();
img.onload = function () { resolve(img) };
img.onerror = reject;
img.src = src;
}
}
var promises = [];
for (52枚分) {
var p = loadImage(どこか).then(function() {
処理
});
promises.push(p);
}
Promise.all(promises).then(function(images) {
すべての画像が正常に読み終わったとき
}).catch(function() {
alert("読み込みエラー");
})
な?これがPromiseを使う場合の正しいやり方だ。
>>281はごく普通のPromiseのコードからみると、元々の>>251のコードを
意味なくPromiseで包んだだけだろって言うのがわかるだろw
包んだ上にresolveがないから終わらないPromiseになって
間違った使い方だって言うのはすでに指摘したとおり。
0350デフォルトの名無しさん
2016/07/30(土) 10:13:19.32ID:TM2kAcv9> JavaScriptで、async-await使えるんですね。
> 此方の方が楽で良い。
async-awaitってういのはPromiseを使った
コードのシンタックスシュガーになている。
前提としてPromiseを返す関数があって、
それをthenを使って書くかawaitを使って書くかという違い。
0351デフォルトの名無しさん
2016/07/30(土) 12:23:50.32ID:928XZCPmで、
for (var key in p) {
if (p.hasOwnProperty(key)) { <====== この判定は何故必要ですか?
console.log(key + " -> " + p[key]);
}
}
無くても良いと思うのですが。
0352デフォルトの名無しさん
2016/07/30(土) 12:32:31.06ID:tGpnnJ+jenumerableなObject.prototype 上のプロパティも拾ってしまうから
今時ならObject.keysの方が使い勝手がいいと思うけどね
0353デフォルトの名無しさん
2016/07/30(土) 12:37:20.53ID:TM2kAcv9https://lodash.com/docs#keys
> Note: Non-object values are coerced to objects. See the ES spec for more details.
ソースコード見ると、ESのspecを満たすのは
意外と大変そうだ。
polyfillもあるぞw
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Object/keys
0354デフォルトの名無しさん
2016/07/30(土) 12:45:02.48ID:928XZCPmレスありがとうございました。
>enumerableなObject.prototype 上のプロパティ
というのは何ですか?
ググッても見つけられませんでした。
具体例を教えて下さい。
0355デフォルトの名無しさん
2016/07/30(土) 13:28:05.35ID:TM2kAcv90356デフォルトの名無しさん
2016/07/30(土) 13:57:36.02ID:xXaFsH0A>>355から辿れる以下のDetectionTableがお勧め
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Enumerability_and_ownership_of_properties
0357デフォルトの名無しさん
2016/07/30(土) 14:23:01.71ID:xXaFsH0Aてかお前がlodash君かよw
てっきりPromiseを主張している方がlodash君だと思っていたぜ。
お前多少は腕を上げたか?
ついでだから>>294の何が問題か教えておいてやるよ。
お前は若干アスペで、前後のつながりが読めて無いから問題なんだよ。
質問:読み込まれる順番が決まらないから、cards 配列に絵柄を、どうやって入れていくのか?(>>292)
の回答になってないだろ。
さらについでに言うと、回答は>>334でいいんだが、それをお前が書いちゃ駄目なんだよ。
回答をそのまま書くと、コードクレクレ君が集まるだろ。
その程度のコードもかけないのなら、その本を最初から読み直せでいいんだよ。
実際その程度だろ、この話は。
0358デフォルトの名無しさん
2016/07/30(土) 14:29:48.74ID:TM2kAcv9> お前多少は腕を上げたか?
最初からだ。詳しいからこそ
jQueryとlodashの関数型的な素晴らしさも知ってる。
大抵のやつは、便利なライブラリ程度にしか思ってないだろ。
> ついでだから>>294の何が問題か教えておいてやるよ。
>>294の話なんかしてない。
してほしいのか? 読むとすると今からだが
> さらについでに言うと、回答は>>334でいいんだが、それをお前が書いちゃ駄目なんだよ。
なぜだ?それはこれを含めていつでも素晴らしい回答をしている。
0359デフォルトの名無しさん
2016/07/30(土) 14:39:51.89ID:TM2kAcv9さて読んでは見たが、
> ついでだから>>294の何が問題か教えておいてやるよ。
念のために言っておくが、>>294(ID:XB8oACQ8)は俺じゃないからな。
逆に>>293で俺にレスしてるぐらいだからな。
つーかなんで、お前が>>294の話を今更持ってきてるのかそこがわからんのだが
cards配列とかいうのもなんの脈絡もなくいきなり登場したし。cards配列の仕様はなんだ?
俺は>>281がPromiseの使い方がわかってない。書いたコードになんの意味も無いって話をしてるんだが
お前(ID:xXaFsH0)も(ID:XB8oACQ8)も何の話をしているのか。
俺が>>292に対してレスすりゃいいのか?
そんなもん読み込まれる順番がバラバラでもcards[i] = img とかすりゃいいだけだろ。
最初にcards[10] = img が読み込まれるかもしれんが、配列としては10番目だ。
0360デフォルトの名無しさん
2016/07/30(土) 14:58:49.46ID:928XZCPmありがとうございました。
難しそうですが時間が有る時にじっくり読んでみます。
皆さんこんな難しいのをスラスラ理解出来ているのですね。尊敬します。
0361デフォルトの名無しさん
2016/07/30(土) 15:04:27.13ID:xXaFsH0Aああすまん、俺は>>294も君だと勘違いしていた。
確かに流れを再確認すると君の言うとおりだ。すまん。294についてはもういい。
> なぜだ?それはこれを含めていつでも素晴らしい回答をしている。
その理由はその次にそのまま書いてあるだろ。
お前はもうちょっとじっくり読んでから回答しろってことだよ。ほぼ全てにおいて。
この点は君も294も同類。
> > お前多少は腕を上げたか?
> 最初からだ。
いやそれは無い。というかこのケースでPromiseなんて、
CardGameEnterpriseEditionForPromiseLearnersでしかない。
で、お前は同様に糞どうでもいいところで糞どうでもいいライブラリを宣伝していたよ。
だからてっきりそうだと思っていた。逆に>>334がお前だって事が驚きだよ。
まあいずれにしても294の勘違いは俺のミスだった。悪かったね。
そしてお前はとりあえず全文読んでからレスするようにしろ。
0362デフォルトの名無しさん
2016/07/30(土) 15:15:52.46ID:NxOPfq9tブラウザでF12を押せば、開発者ツールが起動する
開発時には、jqueryの非圧縮・開発用を使うと、
ソースコードも付いているから、jquery内にも入っていける
>>333-334
スレに書き込む際、ダブルクォートを入れたら、文章が切れるのは、
確認画面が出たときだけじゃない?
>>351-356
hasOwnProperty は、自分のクラスにある、プロパティだけを列挙する。
継承チェーンを親クラス方向へ、たどらない
0363デフォルトの名無しさん
2016/07/30(土) 18:27:58.94ID:mDBQj8C3Object.prototype.prop = 1;
var o = {a: 1, b: 2};
for (var p in o) {
console.log(p); // "prop" も拾う
}
console.log(Object.keys(o)); // ['a', 'b']
ちなみに、Object.keysはenumerableなOwnPropertyを拾うので、厳密には>>351と違う
0364デフォルトの名無しさん
2016/07/30(土) 18:55:20.02ID:TM2kAcv9> だからてっきりそうだと思っていた。逆に>>334がお前だって事が驚きだよ。
何のためにIDが出てるスレでやってると思ってるんだ。
ちゃんと読んでから書き込め。(俺はIDなんか無視してるけどなw)
お望みなら>>334を改良してやろうか?
一回だけ呼ばれる関数であれば、lodashのonceが利用できる。
var onerror = _.once(function() {
alert('読み込みエラー')
});
for (52枚分) {
var img = new Image()
img.onload = function () { 処理 }
img.onerror = onerror;
img.src = どこか
}
jQueryで書くこともできるが今回はコード量は殆ど変わらない。
for (52枚分) {
$('<img>').on({
load: function() { 処理 }),
error: onerror,
}).attr('src', どこか);
}
0365デフォルトの名無しさん
2016/07/30(土) 19:16:07.52ID:TM2kAcv9> いやそれは無い。というかこのケースでPromiseなんて、
> CardGameEnterpriseEditionForPromiseLearnersでしかない。
CardGameEnterpriseEditionForPromiseLearners でググれカス
0366デフォルトの名無しさん
2016/07/30(土) 19:22:52.42ID:xXaFsH0Aググったんか〜い!
FizzBuzzEnterpriseEditionと掛けてんだよアスペ。
0367デフォルトの名無しさん
2016/07/30(土) 20:05:13.15ID:TM2kAcv90368デフォルトの名無しさん
2016/07/30(土) 20:06:37.96ID:TM2kAcv9単なる意味がないクソコードなんだが。
それが分かってない時点でオワッテル
0369デフォルトの名無しさん
2016/07/30(土) 23:07:43.92ID:7q/oDVJzあ、カッコの位置を正確に書くわ。
「52個の『画像を読んでimageを返すPromiseを返す関数』」な。
ホントに読解力無いやつだな。
0370デフォルトの名無しさん
2016/07/30(土) 23:10:23.82ID:7q/oDVJz余程、趣味(レベルの)コーダなんだろうな。
0371デフォルトの名無しさん
2016/07/30(土) 23:13:48.29ID:TM2kAcv9カッコの位置を正確に書くわ?
> だから、「52個の画像を読み込んでimageを作るプロミスを返す関数」を返してallすべきだよねって言ってんじゃん。
元々これだよな?
なぜ括弧を増やした?
位置を正確にっていうなら外側のカッコはいらんだろ。
> だから52個の「画像を読み込んでimageを作るプロミスを返す関数」を返してallすべきだよねって言ってんじゃん。
それで、52個の「画像を読み込んでimageを作るプロミスを返す関数」を返すのか?
関数を返すのか? Promiseを返すのではなくて?
それだと意味が違ってくるよなw
ごまかすなよ。お前は最初から間違ってたんだよ。
0372デフォルトの名無しさん
2016/07/30(土) 23:40:00.78ID:xXaFsH0A一応、ID:TM2kAcv9の認識する「正しいPromiseの使い方」は>>349にコードがあるのだから、
>>370がこれを糞だというのなら、>>370はコードを書かなければいけない。
それが>>281だというのならそれはそれでいいけど。
0373371
2016/07/31(日) 01:39:06.38ID:LD4Pss8Jいつもコードを書くのは俺なんだよなw
俺がいう正しいPromiseの使い方のコードは
そのとおり、>>349に書いてある。
ぱっと見るだけでわかると思うが糞コードの
>>281とはぜんぜん違うことがわかるだろう?
281は「こんな感じで」と言ってるが、全然こんな感じじゃない。
俺曰く、通常のコードを単にPromiseで包んだだけ。
まさに「52個の画像を読み込んでimageを作るプロミスを返す関数」の通りの
コードなんだわ。これは偶然じゃないだろうねw
0374デフォルトの名無しさん
2016/07/31(日) 02:06:53.96ID:rhb0jFW4俺も書いたよ。
>>256-7で。
Promise使ってないから余計に書きたいことわかるとは思うけど。
「いつもコードを書くのは俺」と書いたら、書いた気になるからインスタントな満足感有って良いだろうね、生きるのに。
何故、二重カッコか?
そりゃ、「」自体もプロミスだからだよ。
all使うって言ってんじゃん。allが返すのはプロミスだよ。
0375デフォルトの名無しさん
2016/07/31(日) 02:12:59.51ID:rhb0jFW4これの頂けないところは、for inでpushする所と、その場でthen使っちゃう所じゃねえの?
カスすぎるだろ。
thenの中身は本来、プロミスが解決して、処理するところであって、
不可分であるべきでしょ、loadimageとやらと。
いや、読み込むだけが処理なんだ、なら、そもそも、「処理」とやらは要らん話で。
センスねえな。
0376デフォルトの名無しさん
2016/07/31(日) 04:56:38.99ID:HYz1gR92こんなところで誰もが納得するようなハイセンスなものを書く必要もないし。
質問スレなんだよ?
回答者から質問者の方向へ、こんなのもあるよ、こんなのもあるよとアドバイスを提示して、
最終的には質問者が自分で具体的なセンスの良いと思うコードを書ければいいじゃん。
質問置き去りにして回答者同士でアホな漫才やっててどうするの?
揉めたいだけならVIPかどこかでやってくれよ……
0377デフォルトの名無しさん
2016/07/31(日) 05:06:00.68ID:LD4Pss8J> 何故、二重カッコか?
> そりゃ、「」自体もプロミスだからだよ。
> all使うって言ってんじゃん。allが返すのはプロミスだよ。
allが返すのがプロミス?
ってことはカッコが三つ必要になるな(笑)
> だから52個の「画像を読み込んでimageを作るプロミスを返す関数」を返してallすべきだよねって言ってんじゃん。
↓
だから「52個の『画像を読み込んでimageを作るプロミスを返す関数』」を返してall(してプロミスを返す)すべきだよねって言ってんじゃん。
allが返すのがプロミスだからなww
0378デフォルトの名無しさん
2016/07/31(日) 05:08:14.32ID:LD4Pss8J> いや、読み込むだけが処理なんだ、なら、そもそも、「処理」とやらは要らん話で。
アホかお前w
質問者の>>251が「処理」書いてるんだからいるに決まってるだろ
0379デフォルトの名無しさん
2016/07/31(日) 05:09:54.81ID:LD4Pss8J> thenの中身は本来、プロミスが解決して、処理するところであって、
> 不可分であるべきでしょ、loadimageとやらと。
意味がわからんが?
お前の頭のなかでは「画像のロード」と「ロードされたあとの処理」が
切り離せないというのか?
切り離せるだろ。
画像がロードした後にやることはいろいろ思いつく。
0380デフォルトの名無しさん
2016/07/31(日) 05:21:48.88ID:LD4Pss8J面白いから別の形でツッコミやるわw
> 何故、二重カッコか?
> そりゃ、「」自体もプロミスだからだよ。
> all使うって言ってんじゃん。allが返すのはプロミスだよ。
つまり
だから「52個の『画像を読み込んでimageを作るプロミスを返す関数』」(←これもプロミス)を返してallすべきだよねって言ってんじゃん。
っていう意味かwww
やっぱりお前はプロミスの使い方がおかしいな。
『画像を読み込んでImageを作るプロミス』が52個あればいい。それをallに渡すんだよ。
『画像を読み込んでimageを作るプロミスを返す関数』これが俺が>>349で書いたloadImageの52回呼び出しになるわけだが、
お前は『』の他にもう一段階「」自体がプロミスになるんだよなw
俺は「」自体をプロミスになんかしていない。直接『』をallに渡しているんだが?w
0381デフォルトの名無しさん
2016/07/31(日) 05:24:18.05ID:HYz1gR92そんなに議論したいのならせめて
書いてある通りの自分に都合のいい一部を自分の定義で解釈するのではなくて
相手が何を考えて何を伝えたがってるかも考えたほうが良いよ。
端から自分は正しい、相手は間違ってると、
否定することを目的にやり取りしてたんじゃそりゃ会話にならないよ。
0382デフォルトの名無しさん
2016/07/31(日) 05:25:50.35ID:HYz1gR92技術的な話に戻ってくれないかな?
0383デフォルトの名無しさん
2016/07/31(日) 05:39:38.21ID:LD4Pss8Jお前は
書いてある通りの自分に都合のいい一部を自分の定義で解釈するのではなくて
俺が何を考えて何を伝えたがってるかも考えたほうが良いよ。
0384デフォルトの名無しさん
2016/07/31(日) 08:56:53.02ID:495ihtzq技術以前の問題
根本的なことが理解できていないのに何をやっても同じ
0385デフォルトの名無しさん
2016/07/31(日) 10:49:20.68ID:JpmR10dQ52個の『…』をallしたものそのものが「」で、それはPromise.allないし、jQueryのなんちゃらって事。
0386デフォルトの名無しさん
2016/07/31(日) 11:45:06.28ID:LD4Pss8Jどういうこと?
>>369でカッコの位置を正確に書いた所
↓これなんだけど?
> あ、カッコの位置を正確に書くわ。
> 「52個の『画像を読んでimageを返すPromiseを返す関数』」な。
最初の>>338に当てはめると
> だから「52個の『画像を読み込んでimageを作るプロミスを返す関数』」を返してallすべきだよねって言ってんじゃん。
この文章は52個の『…』をallしたものそのものが「」とは読めないね。
「52個の『…』」をallするんだから。
0387308-309
2016/07/31(日) 11:54:47.94ID:rV9GWd/y逐次処理をするならArray#reduceを使うといいらしい
https://jsfiddle.net/4jxhc5d1/
http://azu.github.io/promises-book/#promise-sequence
同じことはPromiseを使わずとも実装できるが、return で処理を停止するコードではなく、再帰呼び出しを止める事で停止する
return で止めるのはやはり、同期処理の発想だな
>>323
> (トランプみたいな画像なら、1枚に集約しておいて、リクエスト結果を切り分けるのが正解だろうが、それは問わないことにする)
CSSスプライト的な発想だろうか
俺なら画像をdata-uri化するパッチ処理を作ってJSONかJavaScriptコードの埋め込むだろうな
0388デフォルトの名無しさん
2016/07/31(日) 12:01:01.93ID:qxlatQlRお前、なんか脳のハンディキャップ持ってるとかそういうのなの?
なんか申し訳ないわ。
0389デフォルトの名無しさん
2016/07/31(日) 12:15:15.82ID:LD4Pss8J当たり前だろ。っていうか今頃気づいたのかよwww
元レスの>>251が逐次処理ではなくて並列で画像読み込みしてるから
それに合わせてたんじゃないのか?
逐次処理に直すことで画像の読み込みは遅くなるので「最適解」ではない
どちらが良いかは場合による。
> 逐次処理をするならArray#reduceを使うといいらしい
reduceを使うのは必須ではなく、ループで書くこともできる。
例えば>>349を逐次処理に直すとこうなる。
まあこのコードはreduceに置き換えられますって話なだけなんだけどな。
reduceもやってることはループと一緒。
var promises = Promise.resolve();
for (52枚分) {
promises = promises.then(function() {
return loadImage(どこか).then(function() {
処理
});
});
}
> return で止めるのはやはり、同期処理の発想だな
>>334のコードは非同期処理だぞw
あんたは勘違いしている。returnをどういう用途で使ってるか見てみ。
画像の読み込みを途中で辞めるために(言い換えると同期した処理を途中で中断するために)
returnを使ってるんじゃない。
単に二回目以降のメッセージを表示させないために使っているだけだ。
0390デフォルトの名無しさん
2016/07/31(日) 12:16:15.64ID:LD4Pss8J> お前、なんか脳のハンディキャップ持ってるとかそういうのなの?
>>369でカッコの位置を正確に書いた所
↓これなんだけど、どこが間違ってる?
> あ、カッコの位置を正確に書くわ。
> 「52個の『画像を読んでimageを返すPromiseを返す関数』」な。
0391デフォルトの名無しさん
2016/07/31(日) 12:38:59.11ID:LD4Pss8J(本当はsrcsが破壊されないようにした方がいいが手抜き)
function loadImages(srcs) {
var src = srcs.pop();
if (!src) return;
var img = new Image()
img.onload = function () {
処理
loadImages(srcs);
}
img.onerror = function() {
alert('読み込みエラー')
};
img.src = src
}
loadImages(52個のsrc);
これが>>387が言っている「同じことはPromiseを使わずとも実装できる」を実装したコード。
そして387は「return で処理を停止するコードではなく、再帰呼び出しを止める事で停止する」と
言っているが、見ての通り再帰呼び出しをreturnで停止している。
つまり「return で止めるのはやはり、同期処理の発想だな」という結論が
矛盾であることを証明したことになる。
ようするに同期非同期関係なく、逐次処理にしたいのであればreturnで停止することになるし、
並列処理であれば(処理をreturnで停止するのではなく)二回目以降のメッセージを
フラグとreturnを使って抑制することで実現している。
returnの使い方が少し違うが、どちらにしろreturnを使って二回目以降のメッセージを表示されないようにしてるのよ。
(もともとreturnすればいいとは言ったが、逐次処理に変更してreturnで処理を中断しろとは言ってない)
0392デフォルトの名無しさん
2016/07/31(日) 12:41:48.12ID:LD4Pss8J再帰処理の停止条件にreturn使ってないかw
普通は再帰処理の停止条件にはreturn使うから
勘違いしたわーw
これイベント挟むから再帰処理とはちょっとちがうな。
0393デフォルトの名無しさん
2016/07/31(日) 12:45:53.80ID:jxaaQp2k> 画像の読み込みを途中で辞めるために(言い換えると同期した処理を途中で中断するために)
returnを使ってるんじゃない。
> 単に二回目以降のメッセージを表示させないために使っているだけだ。
その挙動が問題だと主張されているだけだろ
ただの設計思想の違いなんだから>>308でいわれているように質問者に尋ねるのが先
0394デフォルトの名無しさん
2016/07/31(日) 12:49:20.84ID:jxaaQp2k>>387がいうdata-uri化は一つの解だろうな
0395デフォルトの名無しさん
2016/07/31(日) 12:49:35.10ID:LD4Pss8Jエラー発生時に継続処理が行われないから、
自動的に中断されるだけか。
まあreturnを使うって所は同じだが、returnを使えっていうのは
そもそもPromise.allでも使えと言った>>252に対して言ったセリフだしな。
0396デフォルトの名無しさん
2016/07/31(日) 12:52:54.37ID:LD4Pss8J> 読み込み速度に着眼するなら52個もの画像ファイルにリクエストする設計を見直すのが先
それはそうだけど、
今まで並列画像読み込み(Promise.allを使う)で話をしてきたのに、
今更、逐次処理に直して「return で止めるのはやはり、同期処理の発想」っていうのは
話が違うだろって事。
だいたい、俺はreturnで処理を中断しろと言ったのではなく、
returnで二回目以降のメッセージを抑制しろって言っただけだし。
0397デフォルトの名無しさん
2016/07/31(日) 12:55:39.32ID:LD4Pss8Jさぁ、それはどうだろう?(笑)
data-uriだけを見るとそれはありに見えるが、
>>387が言ったセリフはこれだぞ。突っ込みどころ満載だよな?w
> 俺なら画像をdata-uri化するパッチ処理を作ってJSONかJavaScriptコードの埋め込むだろうな
パッチ処理ってな〜に?
data-uri化したのにJSONやJavaScriptコードのが
なんででてくるの〜?
0398デフォルトの名無しさん
2016/07/31(日) 14:10:49.17ID:5VAmxlYUざっくりと以下の4つに分類して比較してみる、なお()内は読み込み時に投げるhttpリクエストの数
・jsファイルの中にdata-uriを使って画像を埋め込んでおく埋込型(0)
・全てのカードをまとめた画像を1枚読み込んで切り分ける切分型(1)
・52枚分のリクエストをまとめて投げる並列型(52)
・1枚読み終えてから次を読むを52回行なう逐次型(52)
通信コストと読み込み速度で見ると、埋込型>切分型>>>(超えられない壁)>>>並列型>>逐次型となる
>>272で指摘した通り52回ものhttpリクエストを投げる並列型と逐次型はまずありえない選択、比較するなら並列型の方が早い
一方この視点で最も優秀な埋込型は、カード画像の差し替えに手間がかかるため柔軟性やメンテナンス性に欠ける
よって切分型が妥当な落とし所だと判断できる
いや夏だなぁ、議論()が暑いw
0399デフォルトの名無しさん
2016/07/31(日) 14:58:20.46ID:LD4Pss8J昔はscssとgrunt-spritesmithでやっていたなぁ。
今は仕事が変わって使ってないけど、
そこまで自動化出来ない人は、どっかのウェブサービスでも使うんかね。
0400デフォルトの名無しさん
2016/07/31(日) 15:03:17.96ID:y+nwx4O7それは、ループでは代替出来ないよね。
0401デフォルトの名無しさん
2016/07/31(日) 16:57:30.98ID:HfhW/0nQそれってどれのこと?
俺の発言で「ループ」が出てきたのは>>389の
reduceの代わりにループで書くことができるって
ことだろうけど、君、何を指摘したいの?
0402デフォルトの名無しさん
2016/07/31(日) 17:29:45.26ID:g6dtbC4eパッチ処理はおそらくバッチ処理のtypo
data-uri化する為のプログラムを組んでjsコードに埋め込みやすくしてる
(サーバの仕事量を増やす気があるならサーバサイドスクリプトでサーバ上にある画像からdata-uriを出力するコードを書いてもいいけど)
>>398が主張している切分型も同じで画像の連結処理を機械化しないと面倒で仕方ない
従って、機械化さえ出来れば埋込型と切分型のメリットは同等になる
で、並列型と逐次型で並列型の方が速いって話だけど、トランプゲームに限定するならその通り
でも、>>309が指摘しているのはそういうことではなくて同時リクエスト中に他のリクエストを待機させるところにあるんだよね
クライアントの同時リクエスト数は無限ではないので複数のリクエストを発行すれば、バックグラウンドで働いている他の通信を阻害する事になる
サーバ側にも404とわかっているリクエストを複数投げれば余計な負荷がかかる
要するに作ろうとしているトランプゲームに通信リソースをフルパワーで使っていいなら並列型が最善、そうでなければ逐次型が最善って事
具体例をあげるなら、複数のタブをバックグラウンド開くパワーユーザやブラウザとは別にUpload/Downloadダウンロードプログラムをバックグラウンドで実行する人を考慮するか、ってところ
0403デフォルトの名無しさん
2016/07/31(日) 18:04:05.01ID:HfhW/0nQ制御することなので、それをアプリ側でやるのは間違い
0404デフォルトの名無しさん
2016/07/31(日) 18:04:57.72ID:/gYhK5vg所詮同類だから?
0405デフォルトの名無しさん
2016/07/31(日) 18:05:49.26ID:HfhW/0nQ自分でそういうなら、反応するなよw
0406デフォルトの名無しさん
2016/07/31(日) 22:30:36.02ID:4OHjdeo5ブラウザが自己判断するから、リソースを使いつくしてもいいとはならないんじゃないの?
通信速度はベストエフォートだからだれだけ通信してもいい、といってるようなものだぞ
0407デフォルトの名無しさん
2016/07/31(日) 23:44:31.40ID:JthY0EmQ前段については画像を52枚作ってから結合すると思ってるのが間違ってないか?
トランプの画像なんか大部分がイラレ使って複製を繰り返すだけだから52枚の画像作るより1つのアートボード上で作業が完了する1枚の画像を作る方がずっと楽
またデザイン屋や絵師の中にはスクリプトを触ることにアレルギーのある奴が存在し、結合用のツールを作って渡してても触りもしないでわからんとか言いだす馬鹿までいる
画像→結合画像の方がデザイン屋や絵師にとって理解しやすくアレルギーが出にくいから安全
後段については普通にやれば1回のリクエストで済むのだから同時リクエスト数なんか気にする必要ないだろ?
わざわざ52倍のhttpリクエストを飛ばして逐次処理してるから負荷が少ないと言われても困るわ
0408308-309
2016/07/31(日) 23:52:04.64ID:rV9GWd/y並列処理の場合、100人が同時アクセスしたらサーバに5200回リクエストを投げる事になる
逐次処理の場合、100人が同時にリクエストする回数は100回
並列処理は逐次処理と比較してサーバにかかる負荷が52倍大きい
0409デフォルトの名無しさん
2016/07/31(日) 23:55:21.64ID:DiaxdW8Z0410デフォルトの名無しさん
2016/08/01(月) 00:00:58.98ID:ivQcvGp6obj.hoge.fooが存在する事が確実でない場合はお勧めしないがobj["hoge"]["foo"]で取れるだろ
0411デフォルトの名無しさん
2016/08/01(月) 00:03:16.68ID:c1gi8M4g動的だから
obj["a.b.c"]かもしれないしobj["a"]かもしれない
function f(obj,fullPath){
return obj[fullPath];
}
みたいな感じ
0412デフォルトの名無しさん
2016/08/01(月) 00:07:50.37ID:ivQcvGp6並列型も逐次型もどっちもダメだと言ってるんだが?
同接数100リクエスト総数5200と同接数100リクエスト総数100を比較しろよ
逐次型は切分型に比べてサーバへの負荷が52倍とは言わんがそれに近いレベルで大きいw
0413デフォルトの名無しさん
2016/08/01(月) 00:08:31.00ID:5DCQ+Ipg標準機能はないので関数を自作してやる
ちなみにプロパティを繋ぐ区切り文字に "." を指定するとプロパティ名に "." を含むことが出来ない
自作するなら文字列にせず、配列にすることをお勧めする
http://qiita.com/keroxp/items/3c9503eb6948c4b5c5bd
http://qiita.com/miyatah/items/da693bd573e770ada041
http://qiita.com/alucky0707/items/ba88a130ca7689e0480f
0414デフォルトの名無しさん
2016/08/01(月) 00:09:44.13ID:c1gi8M4gサンガツ!
0415308-309
2016/08/01(月) 00:16:48.35ID:5DCQ+Ipgリクエスト数を抑える事に異論はないし、>>308-309で初めからそう主張している
逐次型を良しとしたのは「52個の画像ファイルを使用する前提」に限る
>>398の言葉を借りるなら「埋込型 === 切分型 >>> 逐次型 >>> 並列型」
0416デフォルトの名無しさん
2016/08/01(月) 00:37:45.46ID:E1waX2Jm> 並列処理の場合、100人が同時アクセスしたらサーバに5200回リクエストを投げる事になる
HTTP/1.1の場合、仕様上は同時接続数は2であるが、ブラウザはそれを無視して6ぐらいになってる。
だから100人が同時アクセスししても600にしかならない。
またHTTP/2では一つの接続を共有するから100にしかならない。
0417デフォルトの名無しさん
2016/08/01(月) 04:50:09.02ID:TN7oD4EQHTTP/2では1つのソケット内で100程度まで並列でリソースアクセスがされる。
ブラウザはそれを2つ程度までもつので最大200。
アプリケーション側か見れば6回どころか52回同時にリクエストが来ることになる。
愚直な旧来のCGI型へのアクセスなら問題になる。
が、今回はアプリケーション普通通さないリソースアクセスだし、
サイズもとても小さいだろうから短い間に数千のアクセスが来ても問題にはなるまい。
0418デフォルトの名無しさん
2016/08/01(月) 09:58:14.13ID:JL0T0s940419デフォルトの名無しさん
2016/08/01(月) 16:49:04.95ID:TN7oD4EQ0420デフォルトの名無しさん
2016/08/01(月) 19:21:12.98ID:JL0T0s940421デフォルトの名無しさん
2016/08/01(月) 23:28:00.77ID:e/95EzLA並列型と逐次型では鯖負荷は変わらない。
多数が「バラバラに」アクセスした場合、時間的には負荷は分散される。
結果的に一定時間内に処理しなければならない合計アクセス数は変わらず、負荷は同じ。
いまどきの鯖はI/Oネックだと聞いているので、埋込型は鯖負荷が増加する。
静的に埋め込むならファイルの容量が大きくなる。(jpgとBase64の比較)
PHPで埋め込むならそのときにjpgファイルがアクセスされることになる。(I/O負荷は同一)
一般的にjpgのほうがBase64+gzip(URI+HTTP1.1)より圧縮されているので、ネットワーク的にも無駄。
だから鯖に関しては埋込型よりは並列型のほうがマシ。
ただしレイテンシーは改善するが、それは本来HTTP2で解決するべき事柄。
切分型は実際に負荷が減るから有効な選択肢にはなる。
ただし1枚単位での差し替えが出来なくなるから、仕様による。
お前らは初心者にありがちな、「木を見て森を見ず」になってる。
上記についても、少し考えれば分かるだろ。
こんなところに異様にこだわらず、もっと愚直にがしがしコードを書いたほうがいい。
質問が並列型なのだから、並列型で答えるのが普通だし、
いずれにしてもこの辺は環境によるのだから、単純に優劣はつけられない。
0422デフォルトの名無しさん
2016/08/01(月) 23:38:09.02ID:0WV0N9Ri煽りで長文レスしてる奴はリソースの無駄遣い
0424デフォルトの名無しさん
2016/08/02(火) 00:27:38.73ID:lI1DLEHZ0425デフォルトの名無しさん
2016/08/02(火) 10:41:14.13ID:I5ApOedL0426デフォルトの名無しさん
2016/08/08(月) 00:30:29.60ID:CqZYH8L+Foo.prototype.bar = function() {};かくと警告あり
Foo.prototype.bar = function bar() {};かくと警告なし
何故変数とかプロトタイプに無名関数を代入するのにわざわざ関数名を付けないといけないんですか?
0427デフォルトの名無しさん
2016/08/08(月) 03:57:05.38ID:UKjMuFYoタイマーで繰り返し呼び出すと動きません。
alert(text);では正しく表示されているので
document.execCommand("copy"); に問題がありそうです。
回避方法を教えてください。
function clipCopy(text){
var input = document.createElement("textarea");
input.value = text;
document.body.appendChild(input);
input.select();
document.execCommand("copy");
input.remove();
alert(text);
}
0428デフォルトの名無しさん
2016/08/08(月) 05:24:46.93ID:UKjMuFYoエレメントを消さずに繰り返し実行すると、
1回目だけは消えるが、2回目以降はカットされずに残る。
しかし、コマンドラインで上記を実行すると成功する。
1回目は普通に呼び出されるから、
もしかしてタイマーで呼び出された場合に動作しないと言う事か。
0429デフォルトの名無しさん
2016/08/08(月) 05:38:11.10ID:seg48G/a正確には短いタイマーならOKなクライアントが多いです。
起点にユーザーの操作が必要な処理は多いです。
0430デフォルトの名無しさん
2016/08/08(月) 06:48:57.52ID:UKjMuFYo100msでダメだからタイマーは無理って事ですね。
.onblur 経由で呼び出しても同じだった。
と言うか、blur を trigger("blur") で発生させても動かないが、
実マウスでトリガーを発生させると cut 動作した。
つまり、マウスイベントを起点として動けばいいんだ(ただし、タイマーなしで)・・・
ちょっと無理。別の方法を考えよう。
0431デフォルトの名無しさん
2016/08/08(月) 09:32:37.86ID:fgSwKGI70432デフォルトの名無しさん
2016/08/08(月) 12:18:53.86ID:UKjMuFYoclick や tap は監視されてしまってイベント発行できないんです。
そこで、クリップボード経由でクリックすべき座標を送って
他アプリケーションでクリックしようと思っていたんです。
もちろん、JavaScript を使わないマクロは存在しますが
画像を読み取る方法は重くて
ブラウザの画像処理でにじみが出て反応が遅くなったりと問題があるので。
また、Chrome はクライアント座標が分からないのでページの原点座標が分からない問題があります。
それについては下記に投稿したスクリプトで取得できるので execCommand が役立ってはいます。
http://potato.2ch.net/test/read.cgi/software/1469866649/41
以前、Chrome のファイルを直接見る方法を目にしたことがあったので
現在それを検討しています。
規制内容についてはこの辺に情報があります。
http://tamae.2ch.net/test/read.cgi/gameurawaza/1469536392
0433デフォルトの名無しさん
2016/08/08(月) 15:02:26.34ID:f24lX/Zc0434デフォルトの名無しさん
2016/08/09(火) 02:20:50.83ID:Lgzk2fEIEffective JavaScript という本に書いてあったが、
ES3では、名前付き関数を使うと、悪名高い with と同じく、
Object.prototype まで、スコープチェーンをさかのぼるバグがあった
他にも、
var f = function g(){};
これで、f, g 別々のオブジェクトを作るブラウザがあったので、
一々、2文に分けたりするのは面倒だから、漏れは、無名関数を使っている
function g(){};
var f = g;
>>432
画像処理でにじみが出るのは、ピクセル座標に実数(小数点)を使うからだろ。
整数にすれば、にじまない
さらに、1ピクセルの線でにじむ場合は、2ピクセルの線を使う
0435デフォルトの名無しさん
2016/08/09(火) 05:07:30.53ID:kpBTwW/n画面にとあるデータの一覧があり、
リストボックスで選択する列があります。
そのリストボックスが変更された行のみ、更新したいので、
changeflgみたいなのを持って、変更されていれはUpdateをモデル側でする処理をしたいです。
モデル側はいいとして、画面でフラグをかえるのはどうやればよいですか?
0436デフォルトの名無しさん
2016/08/09(火) 05:08:39.68ID:yBzqS6eZいや、あの、既存のゲームのマクロなんで自分ではどうしようもなくて。
座標をいじれるんだったら、カードの配置ごとに違うカードの微妙な色の違いもなくて楽ですが、
ツール見つかるとアウトになっちゃったもんで。
あと、にじみと言ってもピンぼけな状態からくっきりに変化していくエフェクトがかかっているようなので
座標が原因ではないんじゃないでしょうか。
0437デフォルトの名無しさん
2016/08/09(火) 06:21:41.53ID:Lgzk2fEIリストボックスは、onchange イベントを使うのかな?
「js リストボックス イベント」で検索!
0438デフォルトの名無しさん
2016/08/09(火) 10:29:03.75ID:f4n/Ethy0439デフォルトの名無しさん
2016/08/10(水) 15:08:33.76ID:GZxBKXmp0440デフォルトの名無しさん
2016/08/10(水) 15:18:41.26ID:tF7lsY2t0441デフォルトの名無しさん
2016/08/10(水) 16:52:12.26ID:aUoQ61q7obj.length = 'aaa';
obj.constructor = 'aaa';
obj.__proto__ = 'aaa';
length, constructor には、値を設定できるけど、__proto__ には値を設定できない
Objectを辞書として使う際、困る
0442デフォルトの名無しさん
2016/08/10(水) 17:12:53.38ID:1BJtW3NY__proto__ には null 代入が有効なはずだが、Object.create(null) や Map で十分だろう
0443441
2016/08/10(水) 17:22:07.59ID:aUoQ61q7__proto__ をキーとして使えないから、
絶対にECMAが使わない、今後追加しないプロパティとなるように、
xxxx などを、すべてのキーの接頭辞に付ければ良いかな
xxxx__proto__
0444デフォルトの名無しさん
2016/08/10(水) 23:00:41.41ID:QX2NjVQeES3でも動くように全てのキーが使えることを保証するなら、keyを配列で持つようにする等、構造を変えるしかないのでは
var keys = ['length', 'constructor', '__proto__'];
var values = ['aaa', 'aaa', 'aaa'];
MapのPolyfillを使うのが一番楽
0445441
2016/08/11(木) 17:50:41.17ID:qVxIjH10obj.constructor = 'aaa';
大量のデータの中に、たまたま、constructor という単語があって、
その上書きでエラーになったと、どこかのサイトに書いてあった
ES3だと、エラーになるのかな?
0446デフォルトの名無しさん
2016/08/11(木) 22:20:24.77ID:tEhDWZyP0447デフォルトの名無しさん
2016/08/11(木) 22:38:15.93ID:6K5FCkEP自由にキーを入れる可能性があるなら
オブジェクトをそのまま使わなければいいだけのこと。
何のために関数があると思ってるのだろうか。
0448デフォルトの名無しさん
2016/08/12(金) 00:12:53.42ID:iMSqEUthEdgeでエラーにならなかったわけだが
var obj = {};
obj.constructor = 'aaa';
> 大量のデータの中に、たまたま、constructor という単語があって、
> その上書きでエラーになったと、どこかのサイトに書いてあった
その説明だとエラーとなるトリガーが
- constructor プロパティへの代入処理
- constructorが上書きされることを想定していないコード
の2通り考えれるが、どこかのサイトとやらの説明を正しく理解してるのか?
他所様のサイトの説明を流し読みして早合点する前に仕様書を読むなり、検証するなりして理解に努める事を覚えた方がいいと思うぞ
> ES3だと、エラーになるのかな?
constructor の所在を確認すれば、自ずと答えは出てくるだろう
http://www2u.biglobe.ne.jp/~oz-07ams/2002/ecma262r3/15-2_Object_Objects.html#section-15.2.4.1
0449デフォルトの名無しさん
2016/08/12(金) 08:21:55.89ID:IgSOEp5cES3の仕様など関係ないわ
0450デフォルトの名無しさん
2016/08/12(金) 08:52:02.82ID:rlhGSfSo以前__proto__を特別視していたのはあくまでブラウザの独自実装。
その中には確かに問題が避けられない変な実装もあったが、過去の話。
0451デフォルトの名無しさん
2016/08/14(日) 01:16:07.06ID:c5wBpDWUmodi = new ActiveXObject("MODI.Document");
} catch (e) {
WScript.Echo("MODIが利用できません。" + e.message);
WScript.Quit();
}
実行結果:「MODIが利用できません。オートメーション サーバーはオブジェクトを作成できません。」
MODI(SharePoint Designer 2007)はインストールしてあります。(Greenshotは動作した)
環境はwin10 64bitです。
エラーの原因は何が考えられますか?
0452デフォルトの名無しさん
2016/08/14(日) 02:08:21.93ID:Ccd3OdrvMicrosoft Edge、Chrome、Firefox、Safari、Opera といった
最新のブラウザではActiveXObjectは使えません
0453デフォルトの名無しさん
2016/08/14(日) 02:12:31.35ID:c5wBpDWUWindowsScriptHostで実行してるんですけど、これも無理なんでしょうか?
0454デフォルトの名無しさん
2016/08/14(日) 03:08:22.63ID:suN02SZDVBScriptについて必死に話し合うスレ
http://echo.2ch.net/test/read.cgi/tech/1416826139/l50
0455デフォルトの名無しさん
2016/08/14(日) 03:16:23.87ID:suN02SZD検索したら、以下を発見した
ゾーン信頼済みサイトに追加
スクリプトを実行しても安全だとマークされていないActiveXコンポートネントを、有効にする
0456デフォルトの名無しさん
2016/08/14(日) 03:46:40.52ID:c5wBpDWUWSHは別スレだったんですか。知りませんでした。
>>455
やってみたけどだめでした。
IEの設定は関係なさそうです。
0457デフォルトの名無しさん
2016/08/14(日) 22:59:01.77ID:QKUVORCDサーバー側で重い処理すんなと言われているので…
0458デフォルトの名無しさん
2016/08/14(日) 23:10:51.14ID:YNmu3wYYそっちの方が負荷としては高くなるぞ。
0459デフォルトの名無しさん
2016/08/14(日) 23:30:50.07ID:Ccd3Odrvサーバーっていうのは通常一人で使うものじゃないんだよ。
1台で何十人、場合によっては何百人やそれ以上、同時に処理する。
つまり性能は単純計算で数十分の1の能力になる。
それに対してクライアント側は1人で使う。
100人同時アクセスすると100台分のパソコンの能力が使える。
0460デフォルトの名無しさん
2016/08/15(月) 00:01:32.39ID:4bBU3lZ4サーバーサイドのチェックが基本だけど、レスポンスに時間掛かるからクライアントサイドのチェックもあった方がいい
でも例えばパスワードを10文字以内から15文字以内に変更する場合などに両方変えないといけないからバグの原因になる
ajaxとかで部分読み込みするならレスポンスは気にしなくていい程度だからクライアントのチェックはなくていい
0461デフォルトの名無しさん
2016/08/15(月) 00:17:02.27ID:AocbVtDIさすがにそんな修正はマスタで対応すると思うけど、サーバサイドでやってた事をクライアントにさせようと言う流れは確実にあると思うよ。
json返して、テンプレートにつっこんで画面つくる、とか。
0462デフォルトの名無しさん
2016/08/15(月) 07:01:06.94ID:vABY74nf現行スレのご案内です
+ JavaScript の質問用スレッド vol.130 +
http://echo.2ch.net/test/read.cgi/hp/1463395557/l50
0463デフォルトの名無しさん
2016/08/15(月) 08:05:07.89ID:vavdf6hQあのスレは明確に間違ってることを誰も指摘しないのだからその程度だということだよ。
お前含めてね。
まあ向こうは当然もう放置として、こっちで同様に明確な間違いを主張する馬鹿が現れた時に、
いちいちそれに反論してやるかってのも別問題ではあるのだが。
とはいえそれを含めて質問者が好きな方で聞けばいいだけ。
0464デフォルトの名無しさん
2016/08/15(月) 15:20:22.56ID:WdXosg7c>>458でも書いたけれど、負荷対策ありきでことを運んでも上手くハマるケースは殆ど無いと思う。
何かを実現して結果的に仮定してみれば負荷対策にもなっていることはたくさんある。
0465デフォルトの名無しさん
2016/08/15(月) 15:45:35.47ID:7pdaq14j記述が負荷の原因だとしたらド素人もいいところ
0466デフォルトの名無しさん
2016/08/15(月) 16:53:57.39ID:YfPTCOOG負荷対策ありきというか、ありきで考えてないとあとからどうしようも無くなるのが、
・負荷対策
・足回り、外回りのライブラリ
・デザインの制約事項
だよ。
各クライアントに大量のデータ送る必要があるなら送ればよいし、
送らなくて良いなら送らなくて良いじゃん。
負荷対策の名のもとにマスタを全部クライアントに持たせる!みたいなのを思ってるんだろうが、
それは負荷対策ですら無いよ。
0467デフォルトの名無しさん
2016/08/15(月) 23:48:14.67ID:EpYmo9VQ<BR>
<INPUT type="button" value="押す" onclick="hyouji()">
</FORM>
値を取得するため
document.フォーム名.テキストエリア名.value
var aa=document.myform.myarea.value;
ってやると
コンソールに
TypeError: document.myform.myarea is undefined
って出るのですが、さっぱりわかりません。教えて下さい。
0468デフォルトの名無しさん
2016/08/16(火) 01:16:02.92ID:pFCjgoYw0469デフォルトの名無しさん
2016/08/16(火) 09:12:31.69ID:SZhaYTt6つまり具体的なことがわからなければなんとも言えないということでしょ。
0470デフォルトの名無しさん
2016/08/16(火) 09:35:27.91ID:NJKGXiS8何をそこまで絡んで自分の正当性を押し通したいのかわからんけど、
要は、チューニングは開発おわってからの原則を守ってるつもりなんだろうな。
チューニングする余地を作りながら開発するって脳みそを持ってないが故に。
0471デフォルトの名無しさん
2016/08/16(火) 12:30:51.29ID:UZUG19lEケースバイケースだから>>457がいう「重い処理」に具体性がないとクリティカルな回答は出来ない、という意味では?
・曖昧な質問に対して回答者が状況を勝手に想像して回答する
・各々の回答者の想定が微妙に違って
回答者同士で争う
そんな状況に思えます。
質問者と論ずるならともかく、回答者同士で争う理由はないかと。
0472デフォルトの名無しさん
2016/08/16(火) 13:59:16.33ID:GdCEovCM主な意味
批評(家)の、評論の、批判的な、批評眼のある、厳しく批判する、酷評する、(…を)厳しく批判して、(…に)難くせをつけて、(生死を分けるような)危機の、きわどい
http://ejje.weblio.jp/content/critical
0473デフォルトの名無しさん
2016/08/16(火) 22:03:46.97ID:CFM4NC3Wvar aa=document.myform.myarea.value;
開始タグの形式が正しくありません。属性は空白文字で区切る必要があります。
<TEXTAREA rows="3" cols="20" name="myarea">
nameの前に、全角空白が入っている
0474デフォルトの名無しさん
2016/08/16(火) 23:09:05.04ID:SZhaYTt6>>471の言うとおり
俺からすると君のほうが変な絡み方をしてる
>>466の最初の一文の煮詰まらない感じからも分かるようにね
だから俺も煮詰まらない感じで返すしかない
つまり、そういうことだ。
0475デフォルトの名無しさん
2016/08/16(火) 23:56:10.69ID:x5+6F2zm最初から考えておく以外は、付け焼き刃の継ぎ接ぎで「落ち着くべくして落ち着いた」なんてことにはならんよ。
そこまで言うなら、サーバのcpu食いつぶすべく、シンクラよろしく何もかもサーバレンダリングして画面だけ送ればよろしい。
一番挙動はブレないだろうね。クソ遅いだろうけど。
そんなクラサバアプリが百万回通った轍を踏む真似するなら、最初から考えときゃいいだけ。
0476デフォルトの名無しさん
2016/08/17(水) 10:49:42.18ID:wGY1Wkn00477デフォルトの名無しさん
2016/08/17(水) 15:13:11.21ID:7mpH/Vqy俺がいった「ありき」というのは君が言う「最初から考える」というのとは違う。
設計時にはサーバーサイド内、クライアントサイド内で、最初から考えておく方が良いよねというTipsと、
サーバサイドの負荷を考えてクライアントサイドでなるべく処理をさせるという(思い切った)案の話は違う。
やはり具体的な話が分からんからなんとも言いづらいけど、
サーバサイドとクライアントサイド、どっちに合ってるとか無く、
単純に負荷を考えて変更できる物事というのは結構限られてるし、
実際はいろんな要素がある。
つまり質問の形、文だけを見ると、自然に肯定して良さそうにも見えるが、
実際はそうでないパターンが無数に浮かぶので、素直に肯定できないということ。
だから、>>458で切り返してみた。
0478デフォルトの名無しさん
2016/08/17(水) 15:17:52.88ID:16HcYGtWごっちゃになってて、議論になってない
0479デフォルトの名無しさん
2016/08/17(水) 16:36:59.67ID:KeLjKTiRそれはまた別次元のお話です
0480デフォルトの名無しさん
2016/08/17(水) 21:06:18.02ID:EvJVMuWG> 単純に負荷を考えて変更できる物事というのは結構限られてるし、
> 実際はいろんな要素がある。
サーバーでなければ出来ない処理と
クライアントでなければ出来ない処理と
サーバーでもクライアントでもできる処理の
3パターンある。
サーバーまたはクライアントでなければ出来ない処理は
変更の余地がないんだから、そういうものは最初から考えてない。
いまはどちらにでも変更可能な物事の話しかしていない。
そして、どちらでもいい場合はクライアントで処理すれば
サーバーの負荷がさがるという当たり前の話しかしてない。
0481デフォルトの名無しさん
2016/08/17(水) 22:23:29.18ID:yyt3k9jo公式読めよ
0482デフォルトの名無しさん
2016/08/18(木) 07:12:57.34ID:FdMcbMvOそう。君はただ
「『クライアントに移せば負荷が軽減する事柄』はクライアントに移せば負荷が軽減する」
という『当たり前』の意味のない話しかしていない。
現実は0か1でもないし、もっと複雑。
0483デフォルトの名無しさん
2016/08/19(金) 10:37:41.57ID:A3bQWT03FileAPIとかWEBGLとかcanvasとかAudioAPI
WindowsAPIかよってレベルな気がする
0484デフォルトの名無しさん
2016/08/19(金) 12:59:58.27ID:yyp35bID後はライブラリ作って使えってスタンスだからね
0485デフォルトの名無しさん
2016/08/19(金) 19:19:26.98ID:uFJ/3Jni特定の実装向けの言語ではないから各実装で採用判断できるように仕様が分散してる
0486デフォルトの名無しさん
2016/08/19(金) 19:22:55.77ID:A3bQWT03PHPは良くも悪くも1行でファイル入出力出来たりするし
0487デフォルトの名無しさん
2016/08/19(金) 19:56:53.73ID:FNjeaqVa小説や論文のように、仰々しい決まり文句や書式ではなく、
あくまで何かを操作するための、「ト書きの台本」(Script)になぞらえてるからスクリプト言語で、
低レベル高レベル関係ないと思うよ。
比較的高レベルな物も多いけど、コマンドを呼び出すのと、ほんの少しの制御構文しかもたないシェルスクリプトだってスクリプトだからね。
0488デフォルトの名無しさん
2016/08/19(金) 20:10:27.10ID:uFJ/3JniECMAScript はスクリプト言語だけど、File API は JavaScript 専用の API ではないんだよ
DOM が Java で実装されているのと同じ
0489デフォルトの名無しさん
2016/08/19(金) 20:14:25.89ID:A3bQWT03なるほどそういう事か
だから複雑なのか
0490デフォルトの名無しさん
2016/08/19(金) 20:26:25.54ID:ybmjJZzO1つはJSはalert()でアラート出せるのにPHPはどうして簡単じゃないのと言ってるようなもので、
専門性の違う部分を比較しても仕方ないこと。
もう1つはPHPはアラート出す必要がないけど、JSはファイルの読み書きもする必要があって、
機能の需要が幅広く深いから、ある程度大きなAPIが沢山必要になるということ
0491デフォルトの名無しさん
2016/08/19(金) 23:49:00.98ID:U1hiIUMqの後を続けるならば、
ブラウザではセキュリティの問題があるから
JavaScript 専用の APIとして実装することが不可能。
この制限は「ブラウザ」という環境にあるため、仮に他の言語を
ブラウザで使えるようにしたとしても、その言語のAPIを使うことが出来ない。
そしてFile API を使って、その言語の標準APIをエミュレートすることも不可能。
0492デフォルトの名無しさん
2016/08/20(土) 04:44:48.46ID:TeD+k3DWNodeや他のJS実装のために設計されたAPIでもPHPのそれよりは難しい
0493デフォルトの名無しさん
2016/08/20(土) 05:00:04.54ID:m/mZi/ni0494デフォルトの名無しさん
2016/08/20(土) 05:06:07.48ID:TeD+k3DW0495デフォルトの名無しさん
2016/08/20(土) 11:55:19.39ID:vYsGE14L逆に非同期であれ以上簡単なAPIを提供することは難しいと思うが。
0496デフォルトの名無しさん
2016/08/20(土) 12:38:21.84ID:GxTqSDb9FileAPIの特徴的なところはローカルのファイルを
参照することは可能であっても、好き勝手に参照させない仕組みにある。
これはブラウザに搭載された仕組みと制限なので、
どんな言語ができたとしても言語の標準ライブラリを
そのまま使うことはできないって話になるんだよ。
0497デフォルトの名無しさん
2016/08/20(土) 13:19:24.87ID:vYsGE14Lてか日本語が不自由な人はマジで死んで
0498デフォルトの名無しさん
2016/08/20(土) 13:22:29.21ID:uGEzIpbj0499デフォルトの名無しさん
2016/08/20(土) 13:44:23.94ID:GxTqSDb9>>483が言ってるのは「スクリプト言語にしては」だろ
ちゃんと日本語読もうぜw
0500デフォルトの名無しさん
2016/08/20(土) 17:59:22.17ID:nPDTGaeFアホなの?
0501デフォルトの名無しさん
2016/08/20(土) 18:16:27.82ID:TeD+k3DW0502デフォルトの名無しさん
2016/08/20(土) 18:16:58.90ID:48IL0b/00503デフォルトの名無しさん
2016/08/20(土) 21:44:40.98ID:AGx2vRYBむしろそれ以外の理由でする奴は気持ち悪い
0504デフォルトの名無しさん
2016/08/21(日) 12:32:27.46ID:MiidlysDID:A3bQWT03が納得したのならそれでいいじゃないか
0505デフォルトの名無しさん
2016/08/21(日) 20:31:06.26ID:sjfW/TwQ(昔)
fr = new FileReader
fr.onload = () => console.log(fr.result)
fr.readAsText(file)
(今)
new Response(file).text().then(res => console.log(res))
でも大きなデータの時は実質これは使えない。
Streamを使えば外部ファイルの全データの到着を待たず、
もしくは内部ファイルの全テータを展開せずに利用することができる。
それをrequestIdleCallbackでreadしながらTextDecoderで貯めていくのがベスト。
0506デフォルトの名無しさん
2016/08/21(日) 20:43:00.04ID:vHDD4AcV大きなデータはFileReaderを使って
一定サイズのチャンクで読み出すのがベストだよw
0507デフォルトの名無しさん
2016/08/21(日) 20:44:54.73ID:vHDD4AcVその場合はFile APIの同期読み込み(FileReaderSync)が使える。
0508デフォルトの名無しさん
2016/08/21(日) 22:35:49.54ID:ABrjXE6TResponseコンストラクタってなんぞやと思ったらFetchAPIの一部か
まだXHRばっかり使ってるから勉強になったよ
0509デフォルトの名無しさん
2016/08/21(日) 23:05:11.25ID:sjfW/TwQFileReaderだと大前提としてFileでないといけない、fileとして読み込みが完了するのを待たないといけない。
文字列が欲しいにしろABが欲しいにしろ、FRを使うときは部分をすぐにでも欲しい場合が多い。
そうでないのなら、(fetchする場合)最初からテキストとして読み込んだり、既存のメディアタグで再生させればいいだけだからね。
もちろんローカルの小さなテキストファイルをDnDして表示する程度にStreamを使うのは大袈裟。
でも多くの場合にはStreamで得るのがファイルの読込中から随時読み出せるので結果最も早いし効率的。
fileを作ること無くストリーミングで処理もできるので理論的には馬鹿でかい外部ファイルでも容易に扱える。
一方すでにfileとして取得した内部ファイルの場合、現在の実装では残念ながらnew Response(file).body......とかやっても省メモリにはならない。
現状では巨大ファイルを扱うのにはslice必須。将来の最適化に期待。
RICの件はbyob modeと合わせればdefaultでread任せにするより複数の意味で効率的なはずだ。
まあそこまで大袈裟にしなくともread任せで十分だろうが。
Workerはどうだろうね。結局メインに送るようじゃ効率的とは言えない。
まあWorkerでできることというか、いろいろできるWorkerが増えてるから案外アレなのかもしれない。
0510デフォルトの名無しさん
2016/08/22(月) 01:02:50.42ID:DP11HYPcいや、別にローカルのファイルとウェブ上のアプリを
同一視したいことなんて無いから。
> fileとして読み込みが完了するのを待たないといけない。
部分的に読み取ればいいだけの話。1GBのファイルのうち1MBずつ読んで処理しろよ。
0511デフォルトの名無しさん
2016/08/22(月) 01:05:56.57ID:DP11HYPcその一部分だけを読み取れる所。
だから省メモリになる。
0512デフォルトの名無しさん
2016/08/22(月) 01:08:47.69ID:DP11HYPcFetchAPIは便利だぞ。
Promiseを返すからjQueryのAjaxを使ったコードとかなり近いコードになる。
ただjQueryと違って、HTTPのエラー(404とか)で例外にならないから
独自でチェックコードを書かないといけないのがちょっと面倒。
0513デフォルトの名無しさん
2016/08/22(月) 01:27:20.10ID:bLWZhaRuだから、sliceするにしてもまずfileオブジェクトがないといけない。
逆に言うとfileオブジェクトを得られた時点でその全データが手元にあり、
fileのどこでもすぐにアクセスできる状態にあるということ。
データを取得中に随時処理できるようにはできていない。
0514デフォルトの名無しさん
2016/08/22(月) 01:49:16.02ID:RW2M/REUまたインターネットから再読み込みするのは、やめてほしい
漏れは、8GBのメモリを積んでいるから、
10分100MBぐらい、メモリのキャッシュに貯めておいて、それを再生してほしい
0515デフォルトの名無しさん
2016/08/22(月) 02:44:10.07ID:DP11HYPc> だから、sliceするにしてもまずfileオブジェクトがないといけない。
> 逆に言うとfileオブジェクトを得られた時点でその全データが手元にあり、
お前さ、自分の書いたコードちゃんと理解してるか?
> fr = new FileReader
> fr.onload = () => console.log(fr.result)
> fr.readAsText(file)
これ書いたのお前だよな?
fileオブジェクトって、readAdTextの引数のfileのことだろ。
fileオブジェクトが先にあってその後にreadしてるだろ。
だからreadする前にsliceしてからreadしろよ。
最初から俺はちゃんと言ってるだろ。
「File APIは巨大なファイルの途中の一部分だけを読み取る事ができる」
ランダムアクセス可能ってことだ。
0516デフォルトの名無しさん
2016/08/22(月) 02:44:11.85ID:iZWsi2cDdialog内の表示領域が、少しずつですが、だんだん小さくなっていってしまいます。
これの解消方法はないでしょうか?
chrome、IE11、edgeで確認しています。
0517デフォルトの名無しさん
2016/08/22(月) 02:50:11.26ID:DP11HYPc> データを取得中に随時処理できるようにはできていない。
データ取得中に随時処理って言っても1バイトずつじゃないだろ。
そんなことしたらイベント発生回数が多くなりすぎて逆に遅くなる。
非同期でやるならば一定のサイズごとに発生したイベントで処理することになるが、
それはFile API使っても一定のサイズごと読み取って処理するのと一緒。
それよりも並列で処理させたいならばWebWorkerの出番
読み取ったデータを処理しながら、別スレッドでデータを読み取ることができる。
そしてWebWorkerの中ではFile APIは同期命令を使うことができる。
これは非同期よりも僅かだが効率が良くなる。
0518デフォルトの名無しさん
2016/08/22(月) 05:29:57.84ID:bLWZhaRuそれは無理。例えばデータをXHRで取得しながら
fileを一定サイズごと得ることは標準仕様の範囲ではできない。
textなら一部可能だが、そもそも最初から文字列を得られて満足できるのなら
File云々は登場しなくていい。
結局例えば巨大ファイルの場合到着を待たないといけないし、
無限サイズのストリーミングデータを扱うことはできない。
0519デフォルトの名無しさん
2016/08/22(月) 09:37:52.97ID:DP11HYPc何言ってんだお前。
今はFile APIの話してるんだよ。ローカルにあるファイルの話だ。
XHRってお前がFile APIで済む話を
Fetch API(通常はウェブからデータを持ってくるもの)を
使うからデータの途中が取れないって言ってるだけだろ。
俺は最初からFile APIを使えば、巨大なファイルの
一部分だけを取れるって言ってるの。
いいかげん正しい使い方を勉強しろ。
「最新のAPI知ってる俺すげーだろ」って言ってるガキにしか見えんぞ
0520デフォルトの名無しさん
2016/08/22(月) 10:47:00.45ID:+wJWfai1のは俺だけ?
0521デフォルトの名無しさん
2016/08/22(月) 11:25:52.67ID:T7UxWpko波形の選択、拡大縮小をしたいです
またSVGとCanvasではどちらを使うべきでしょうか?
0522デフォルトの名無しさん
2016/08/22(月) 12:37:38.99ID:nyATAtmGお前だけ
コーダーにお前の好みを押しつけるのはただのワガママ
0523デフォルトの名無しさん
2016/08/22(月) 16:32:28.96ID:bLWZhaRu何を言ってるんだはこっち。
もしもFile APIはローカルファイルにしか使わないと思ってるのなら君が浅学なだけ。
というか正確にはFile APIの話ではなく、
ファイルのバイナリを解析・利用するときの話でFile APIが出てきてるだけだし。
>>Fetch APIを使うからデータの途中が取れない
君は完全に読み間違えている。
>>俺は最初からFile APIを使えば、巨大なファイルの一部分だけを取れるって言ってるの。
何度でも言うが、それをするには巨大ファイルの受信が完了し、手元に完全にある状態でないといけない。
数十GBのデータなら例えば一時間受信を待って、それからの処理だ。
というかそんな巨大なデータはメモリにかかえておけない。
ローカルファイルのfileオブジェクトならただの参照で利用される時に範囲分だけメモリに読み込まれるが、
外部ファイルならどのみちファイルデータがヒープに格納されてしまう。
なのでそもそも一時間待ってもfileオブジェクトは現実的に完成できないし、File APIは使えない。
Streamでストリーミングするしかない。
そこまで大きくない場合も、Streamならすぐ処理を実行できる。
前述したようにFile APIを使いたい、もといこれはFile APIの話ではなく、
その実はバイナリを解析・利用したいという場面なら全部の受信を待たなくても良い場合も多い。
例えば何かのデコーダなど。
0524デフォルトの名無しさん
2016/08/22(月) 18:58:56.86ID:uzkoNVx4どちらにせよ、リモートの一部が欲しいなら、XHRのheaderでrange指定して、部分だけ貰ったほうが楽なんじゃないの?
streamも良いけど、読み捨てるだけなら勿体無いよ。
ほんとに湧いてくる類のデータならstreamすべきだとは思うけど、湧いてくるものじゃない物の一部分が欲しいなら、それを取得する方が当たり前だけど効率いいんじゃないの?
0525デフォルトの名無しさん
2016/08/22(月) 20:21:44.88ID:dbwB4uvZイケメンなら稼げるんだろうけど。
話が上手けりゃ稼げるかな。
誰かレポ頼む。
メンガでググると出てくる。
0526デフォルトの名無しさん
2016/08/22(月) 21:15:25.66ID:DP11HYPc> うーん、なんか噛み合ってなくない?
馬鹿なんだろうさw
最初からつまりローカルにあるファイルの話をしてるのに勝手にウェブから
とってくるって話にすり替えて途中のデータが取れないとか言い出してるんだよこいつは。
ウェブから取ってくると言い出したレス(>>505)の一つ前のレス
> FileAPIの特徴的なところはローカルのファイルを
> 参照することは可能であっても、好き勝手に参照させない仕組みにある。
最初からローカルにあるファイルの話をしていることがわかるだろう。
おそらくこいつは、Fileオブジェクトを取得した時点で
そのファイルすべてを読み取ってメモリに格納してるって考えてるだろう。
俺は最初から気づいていたが、面白いからあえて指摘しなかったけどねw
sliceを使えば、巨大なファイルの一部分だけをメモリに読み取ることが可能。
Fileオブジェクトを作った段階ではまだデータは読み取られていない。
(余談だが、ネットワークフォルダを指定した場合でもそれは同じだから、
Fileオブジェクトを取得した段階ではデータは手元にないとも言える)
> どちらにせよ、リモートの一部が欲しいなら、XHRのheaderでrange指定して、部分だけ貰ったほうが楽なんじゃないの?
正解。こいつはリモートにあるデータであってもサーバーが対応していれば
一部分だけ読み取れるってことが分かってない。
多分ストリー無脳なんだろうw なんでもストリームを使うのがイケてるって考えてるのさ。
0527デフォルトの名無しさん
2016/08/22(月) 22:33:02.61ID:RW2M/REUデータの分離・持ち運びには、SVGが良いが、ブラウザ対応がどうだろう?
0528デフォルトの名無しさん
2016/08/22(月) 22:34:22.15ID:mMSpz3ksブラウザ対応はあまり気にしてない
Chromeなら大丈夫っぽいし
0529デフォルトの名無しさん
2016/08/22(月) 22:53:21.15ID:DP11HYPcSoundEngine程度なら簡単そうだが、
こういうのもあるよということで。
https://github.com/d3/d3/wiki/Gallery
内部的にはSVGが使われている
0530デフォルトの名無しさん
2016/08/22(月) 23:01:26.34ID:mMSpz3ksソース見てしてみる
SVGの方がよさそうだな
0531デフォルトの名無しさん
2016/08/22(月) 23:19:58.46ID:mMSpz3ksvue.jsのバインド使わずに直でやるべきなんだろうか
0532デフォルトの名無しさん
2016/08/23(火) 00:09:21.53ID:McuNJCc9今の環境でTypedArrayを使う利点ってあるんでしょうか?
例えば行列クラスを作るときFloat32Array(16)を使うより、
this.a, this.b...と変数で直接管理した方がパフォーマンス出るんですが
ライブラリを参考にするとどれもTypedArrayを使用していたので気になりました
0533デフォルトの名無しさん
2016/08/23(火) 08:27:08.43ID:exF8NocQ適切に扱わないとダメ。
例えば普通に設計すると細かいTAをたくさん用意したり、
TAを変更したデータが欲しい時は複製したりしがち。
でも全てをカバーする大きなTAを用意したり、
複製せずに書き換えて使ったあと、ロールバックする方がそれで済むなら速い。
最終的にはasm.jsに行き着くが。
まあ愚直に書いてパフォーマンスが実際問題なら検討するしかないだろう。
0534デフォルトの名無しさん
2016/08/23(火) 08:39:27.41ID:exF8NocQFloat32のまま余計な変換やオーバーヘッドが発生しないよう
演算全てを気を付けないといけない。
例えばf1 = f2 + f3は内部的にfloat32の範囲で完結できる。
でもf1 = f2 + f3 + f4はfloat32として扱った場合とfloat64として扱った場合で
違う結果になることがあるので、JSの使用挙動を守るためそれぞれキャストが発生する。
なのでf1 = Math.fround(f2 + f3) + f4としないといけない。
もっと言えばこれは理想的な最適化エンジンに対しての話なので、
f = Math.froundとでもしておいて、
最初の例もf1 = f(f2 + f3)、次の例もf1 = f(f(f2 + f3) + f4)とした方が確実。
まあここまでするならuse asmで書いたほうが良いかもしれない。
でもuse asmで書いたからといってパフォーマンスを出すための注意点がなくなるわけじゃない。
少し減る程度。
0535デフォルトの名無しさん
2016/08/23(火) 08:58:48.76ID:exF8NocQ最初の例もMath.fround使わないといけない。
論理的に使わなくとも良いのはfa[i] = f2 + f3の場合くらいだわ。
0536デフォルトの名無しさん
2016/08/23(火) 12:17:33.53ID:pzsJZWTOありがとうございます
Math.froundで明示的に型変換するとMath関数の呼び出しコストがそのまま乗ってしまうんですけど、
javascriptでメソッドのオーバーヘッドを避ける方法が何かあるんでしょうか
0537デフォルトの名無しさん
2016/08/23(火) 14:06:08.21ID:exF8NocQこういった場合理想的なエンジンではインライン化され冗長性が最適化されるのでコストは0と考えるもの。
とは言え通常の範囲ではなかなかそこまで最適化されるようになっていないし、最適化されないこともある。
なので本当に確実に0にしたいのならasm.jsで書くしかない。
0538デフォルトの名無しさん
2016/08/23(火) 21:56:27.97ID:2q86xdQZ(検索機能あり)を作ったのですが、
ソートとかやって、いろいろやるので、
for文がいっぱいあっって、動作が遅いです。
これって、私の考えたアルゴリズムが悪いからなのでしょうか?
高速化のテクニックなどはありますでしょうか?
0539デフォルトの名無しさん
2016/08/23(火) 22:20:18.34ID:GSVVeKNg0540デフォルトの名無しさん
2016/08/24(水) 00:58:36.22ID:WeNRmuBCある単語が含まれているかどうか、すべてのファイルから、
ボタンを押された時に、全文検索するんだろ。
そりゃ、ファイル数分、I/Oが発生するし、遅いに決まっている
Linuxのlocate は、1日1回、すべてのファイルから、単語のインデックスを作るから速い。
その代わり、24時間以内に作ったファイルは、検索対象にならない
一方、find は、インデックスを作っていないから遅いけど、
24時間以内に作ったファイルも、検索対象になる
0541デフォルトの名無しさん
2016/08/24(水) 01:03:27.92ID:Yh+4AV6G普通に実装を考えてもfor文がいっぱいあるという状態が既に間違ってるし
0542デフォルトの名無しさん
2016/08/24(水) 01:11:16.16ID:7vNot/FKさらに偽陽性のフィルタを噛ますことによって高速化できる
0543デフォルトの名無しさん
2016/08/24(水) 01:23:56.23ID:YROtPsAw高速化の一番の方法は自分でコードを書かないこと
0544デフォルトの名無しさん
2016/08/24(水) 23:11:20.15ID:Hbn6Og0q'a': 10,
'b': 20,
};
var obj2 = {
a: 10,
b: 20,
};
上のような文字列としてプロパティ名をつけるのと、
下のような何もつけないプロパティ名では意味が違ったりします?
0545デフォルトの名無しさん
2016/08/24(水) 23:14:18.57ID:YROtPsAwだからよりシンプルなクォートでくくらないを使うべき。
0546デフォルトの名無しさん
2016/08/24(水) 23:52:54.89ID:Hbn6Og0qありがとうございます
0547デフォルトの名無しさん
2016/08/25(木) 00:20:19.15ID:AN90eZbuJavascriptのオブジェクトのプロパティ名としては同じ
オブジェクトの名前がJavascriptの名前の付け方に従っているなら
クォートは省略可能になる
ただし、気をつけないとダメなのがJSONオブジェクトのとき
OK→var json_obj = {"a": 10, "b": 20};
NG→var json_obj = {'a': 10, 'b': 20};
NG→var json_obj = {a: 10, b: 20};
JSONオブジェクトのプロパティ名前はクォートの省略禁止
シングルクォート'の使用禁止
ダブルクォート"で絶対に囲むのが正しいやり方。
0548デフォルトの名無しさん
2016/08/25(木) 00:22:53.98ID:BkJ4qeavJSON文字列を手書きすることはないんでw
0549デフォルトの名無しさん
2016/08/25(木) 00:30:50.65ID:HLXhtP5BVector2, Vector3, Quaternion, Matrix3, Matrix4
これらクラスを相互変換するロジックを解説しているサイトなど心当たりございませんか?
0550デフォルトの名無しさん
2016/08/25(木) 08:22:05.43ID:99xpDjOR予約語で死なない。
delete:'xxxxxx'は使えないし、
for:'xxx'も使えない。
統一感のために全部つけてる。
0551デフォルトの名無しさん
2016/08/25(木) 09:38:35.23ID:BkJ4qeav『「見やすい形に」統一する』であれば
それは見やすいようにするのが目的だが、
理由のない『統一する』は害悪でしか無い。
多くは楽をできると言うのに、
一部の例外のために面倒な方法を選ぶのは無駄。
0552デフォルトの名無しさん
2016/08/25(木) 12:02:57.36ID:99xpDjOR一部の例外のために、その例外に対してクォートしなければならない、
を例外だとすると、
すべてのクォートする、というルールで、例外で無くなるんだよ。
みやすさは副次的なもので、本質的には例外を内包したルールで縛って、例外ではなくすだけ。
たかがワンタイプの為に頭の中で判断する必要と、
将来的な予約語の追加に備える記憶のコストがもったいない。
アホなのか、経験無いのかわからんけど、無闇やたらと反発しても滑稽だよ。
0553デフォルトの名無しさん
2016/08/25(木) 14:17:48.31ID:kFTapBTb予約語が使えないとか一体何時の話だよ。江戸時代か?
それとも未だにIE8が闊歩してる並行世界からの書き込みですか?
呆れる。
そんな太古の知識のままじゃJS使いとは名乗れないな。
アホで経験ないのはあんたでしょ。
まあ虐めたいわけではないが、
俺は原則付けない形を推奨するよ。
0554デフォルトの名無しさん
2016/08/25(木) 17:41:06.33ID:wdyS6PKY必要なのは「統一」であって「統一感」じゃないよ
という話だね
0555デフォルトの名無しさん
2016/08/25(木) 18:07:47.14ID:YSzam+pv統一性を持たすために全部つけてる。
0556デフォルトの名無しさん
2016/08/25(木) 18:21:17.20ID:99xpDjORあのなぁ。
闊歩してるもなにも、イントラだと普通だよ。
IE8とchrome最新版の両方で動かなならん物を作る羽目にもなる。
その時にだけ脳味噌切り替えるの?
無駄過ぎるでしょ。
よくそれで業務やってるなぁ。
必ずつけて、minifierに任せる方が余程効率的。
>>554
あー、言葉が悪かったのは認める。すまん。
0557デフォルトの名無しさん
2016/08/25(木) 18:28:16.07ID:9o9g1zI80558デフォルトの名無しさん
2016/08/25(木) 18:30:50.48ID:99xpDjOR書き出したり読み込んだり送ったり送られたりするんだわ。
0559デフォルトの名無しさん
2016/08/25(木) 21:17:31.85ID:BkJ4qeav> すべてのクォートする、というルールで、例外で無くなるんだよ。
だからなんで例外をなくそうとするのさ?w
ルールを作ることが目的になってるだろ。
0560デフォルトの名無しさん
2016/08/25(木) 21:21:39.15ID:BkJ4qeav> 将来的な予約語の追加に備える記憶のコストがもったいない。
予約語を記憶してるんですか?w
それはeslintなどを使っていれば簡単に検出できる。
0561デフォルトの名無しさん
2016/08/25(木) 21:23:05.64ID:BkJ4qeav> IE8とchrome最新版の両方で動かなならん物を作る羽目にもなる。
それなら当然babelを使って、ES2015からES5への変換ぐらいしてますよね?
ちゃんと最新のJavaScriptを使ってコード書いてますか?
未だに効率の悪いやり方してませんかねw
0562デフォルトの名無しさん
2016/08/25(木) 21:27:27.76ID:BkJ4qeavそれを技術で解決(babelやeslintを使う)か
努力で解決かの違いなんだわ。
業務でやるなら技術で解決しなきゃだめ。
努力はコストがかかる。
0563デフォルトの名無しさん
2016/08/25(木) 22:38:37.69ID:lH34XZIFよっぽど悔しいんだろうな。
技術で解決できる事はすりゃいいけど、
技術で解決しなくても良いレベルで解決できるならそれでいいんだよ。
Polyfillやら、バベって解決するべき問題と、
最初から回避できる事は回避するのでは、
割と大きな差がある。
効率が良いやり方、なら、
何も考えずクォートしてしまうのが一番効率的だわな。
0564デフォルトの名無しさん
2016/08/25(木) 22:48:45.16ID:lH34XZIF例外が例外でなくなれば、例外かどうか考える事すらしなくて良いから。
むしろ面倒くさくないんだよ。
やってみればわかると思うけど。
grepかける時も、リテラルでこれ、と指定するだけで良いから、誤ヒット減るし。
eslintやら、babelは頼るべきものでは無くて、利用するべきもの。
babelがどうトランスパイルするか知ってれば、手でも書ける。
ただただ依存して謎のトランスパイルミスの沼にはまる必要もない。
努力でも技術でも無いよ。ただ頼るのは。
原付乗って、自転車より早い!ってドヤ顔するようなもの。
0565デフォルトの名無しさん
2016/08/25(木) 23:01:31.00ID:BkJ4qeav> 何も考えずクォ
やっぱり何も考えてないじゃねーかw
0566デフォルトの名無しさん
2016/08/25(木) 23:01:42.18ID:kFTapBTbそれは普通でも何でもない全くお前だけの都合かつお前だけの思い込み。
ES2015だってPromiseでcatchメソッドとかES3に囚われるの解禁したんだから。
俺はお前がいう古臭い現場よりそういう標準仕様や実装の動向こそ一般的といえ基準を置くべきだと思う。
そもそもここは汚らしい現場で「しか」通用しないJSのバッドノウハウを共有するためのスレじゃないから。
微塵でもあればあるうちになるので一般的に考慮すべきだみたいな自分勝手な考えはやめたほうが良いよ。
マイノリティは一般的に考慮すべきでない、こっちの考えの方がどう見ても自然だから。
0567デフォルトの名無しさん
2016/08/25(木) 23:02:30.00ID:BkJ4qeav何言ってんだ?
「どっちでも良い」とすれば
例外もなにもないだろ。
後は楽な方でやればいい。
問題はすべて解決してるのに、
なんで意味がないルールを作るのか。
0568デフォルトの名無しさん
2016/08/25(木) 23:03:15.35ID:BkJ4qeav> babelがどうトランスパイルするか知ってれば、手でも書ける。
コスト意識がないね。
そんなんで業務するなよ。
0569デフォルトの名無しさん
2016/08/25(木) 23:06:22.22ID:BkJ4qeav俺の勘違いで終わったかもしれんが、
やはり俺の勘違いではなかったようだね。
何も考えずにキーを必ず""でくくって無駄なことをしているような所は
技術力も低いだろうという俺の予測は見事に的中したようだ。
0570デフォルトの名無しさん
2016/08/26(金) 00:39:02.18ID:4RusDDpB好きな方で書いていって、いやむしろいろんな方法を積極的に試して、
落ち着いたのがその人にとってのその時での正解だと思う。
と、セミコロンフリー派の僕が通りますよ。
0571デフォルトの名無しさん
2016/08/26(金) 00:54:03.80ID:aieEGB34JavaScript Standard Style がその規約だね。
http://standardjs.com/
eslintで言えばeslint-config-standardのスタイル
es6の新しい書き方でこんなのがあるしね。
http://qiita.com/kura07/items/356bd37733f457d3177f
var d = 42;
var obj = {
a: 42,
"b": 42,
0: 42,
["c"] : 42,
d,
e(){},
get f(){},
set g(v){},
*h(){}
};
長い議論の末、便利だと判断されたからこそ使えるようになった書き方を
統一すると言うくだらん理由のために、これらの書き方を全部捨てるのかと。
0572デフォルトの名無しさん
2016/08/26(金) 01:13:24.23ID:4NaQhdnk使う必要のある部分ではそりゃ使ってるけど。
Vue使ってるものなんかだと、色々バベってみた。
ものの、実はgulpは要らなかったな、とも思えてるけど。
makefileでタスクとそのタスクの成果物を明確に書いた方が、大体得策。
俺が何が言いたいか解らなかったらもういいよw
考える余地があるのであれば、考えず安全側で書くだけなのになぁ。
技術!トランプパイル!で解決するのは、それを解決させる力量が無いだけ。
0573デフォルトの名無しさん
2016/08/26(金) 01:26:34.06ID:aieEGB34だから何も考えなくていい。
そんなものはeslintやbabelが勝手に判断してくれる。
俺は考えずに楽をしている。
お前は苦労をしている。
俺が言いたいのはこれだけ。
0574デフォルトの名無しさん
2016/08/26(金) 01:28:35.35ID:MwmpSlTr0575デフォルトの名無しさん
2016/08/26(金) 01:31:57.14ID:X/VWO4dZ新しいもの好きなプログラマが流行りに乗って騒いで使ってるだけで実際のところ色々な効率求めるなら無駄にしか思えない
どうせまた新しいライブラリが出たら乗り換えて学習し直して全面的に書き換えるんだろってところが特に
0576デフォルトの名無しさん
2016/08/26(金) 01:37:28.65ID:aieEGB34そういう人はまずフレームワークが先に存在していて
それを導入するかどうかで悩んでいる。
フレームワークを作る側の視点を持っていれば
まず最初に問題が有って、それを解決するために
フレームワークを作っているとわかるはず。
つまりは問題点が認識できないほど技術が低いか、
問題にぶち当たるほどのことをしてないかのどちらかだろう。
フレームワークを使うかどうかに関係なく「問題」は存在している。
その問題を認識してますか?って話だよ。
0577デフォルトの名無しさん
2016/08/26(金) 01:45:34.44ID:4Sr56RXx0578デフォルトの名無しさん
2016/08/26(金) 01:49:08.43ID:X/VWO4dZそのおま環で生まれたフレームワークを俺らが使う理由は何?
自前で好きにライブラリ作って使い回した方がマシだろ
0579デフォルトの名無しさん
2016/08/26(金) 02:01:29.31ID:n0soyahRとうの昔に滅んでからはもうフレームワークを使う必要はほとんど無い
標準化が進んでからも仮想DOMみたいな高速描画用のフレームワークも新しく登場したが、
まあそんなのはIEに訓練されたWebプログラマなら自然と身に付けてる作法だし
ReactもAngularも所詮はjQueryと同じお子様の歩行器よ、使う奴のレベルが知れる
0580デフォルトの名無しさん
2016/08/26(金) 02:02:21.78ID:aieEGB34同じ問題は誰にでも発生する。
だけど問題解決方法(フレームワーク)を
独自で作るのはコストがかかる。
仕事でやってるならコスト意識ぐらい持とうぜw
0581デフォルトの名無しさん
2016/08/26(金) 02:03:09.13ID:aieEGB34仮想DOMの作法がどんなものか言ってみ。
お前が仮想DOMを分かってないってことがはっきりするから
言えないだろうがなw
0582デフォルトの名無しさん
2016/08/26(金) 02:07:44.76ID:PgCAqldG釣乙
0583デフォルトの名無しさん
2016/08/26(金) 02:12:01.42ID:n0soyahRITベンチャーがやたらとブログやQiitaにハウツーを載せたがるのと同じ
>>581
レンダリングの最適化だろ?
極論innerHTMLはループの外に置きましょうって昔の格言を最新のNode操作でやってるだけ
0584デフォルトの名無しさん
2016/08/26(金) 02:13:18.08ID:OUrL1nQPあー、なるほど。
ツールを使えば、回避できるから、シンプルな方で書く、と。
ツール使うって苦労するより、
最初からつけとけばツール使わんで済む、って主張とは平行線だな。
アホらしw
どっちが苦労してるかわからんw
gulpてwatchタスク書いてるし!とか言うかもしれんが、それごと要らんからなぁ。
0585デフォルトの名無しさん
2016/08/26(金) 02:15:30.17ID:X/VWO4dZ他人の作ったフレームワークの学習コストや寿命リスクは無視すんの?
それこそ仕事でやってる人間の意識とは思えんがな
0586デフォルトの名無しさん
2016/08/26(金) 02:17:30.81ID:6b7oKqOMレンダリングの最適化というより、昔の裏画面のようにDOMをオブジェクトにしたものを持っといて、
更新するタイミングで差分取って適用するんよ。
ループの外中も副次的に、更新タイミングで更新されるだけだからいい感じみたいなそういうの。
イントラ用にごく低次元なの実装したわ。
0587デフォルトの名無しさん
2016/08/26(金) 02:22:30.76ID:Me0yrsFaフレームワークは抽象化モデルで「ぼくのかんがえたさいきょうのしょしき( ^q^ )」を強要されるのがだるい
他で潰しの効かない学習とかマジで時間の無駄だわ
0588デフォルトの名無しさん
2016/08/26(金) 03:20:39.93ID:aieEGB34> 極論innerHTMLはループの外に置きましょうって昔の格言を最新のNode操作でやってるだけ
120%間違えすぎてて哀れwww
0589デフォルトの名無しさん
2016/08/26(金) 03:21:45.75ID:aieEGB34学習コストは学べばそれで終わり
学習しないで無駄なことやってると
ずっと何も変わらない。
お前の人生10年後も今と同じことしてる。
実際に10年前と何も変わってないだろ?w
0590デフォルトの名無しさん
2016/08/26(金) 07:47:04.27ID:6b7oKqOMそりゃ極論だけど、まぁ、他人が作ったフレームワークは、使えるようになっておくと、
自分が作らないといかん時に、考え方なんかがすでに整理された状態で頭にあるから、
それを機械的にパンチするだけになるので、
学習コスト払ってもコードリーディングだと思って読んどくとためになるよね。
0591デフォルトの名無しさん
2016/08/26(金) 08:43:14.01ID:4RusDDpB同じようなものをこれからも長く作り続けていく雑多なチームでは
学習する方が良い可能性がある。
ただ失敗したという話もよく聞く。
問題を認識ったってチーム全体として扱いきれるか判断するのは難しいし、
実際に参考にできる成功事例も少ないしな。
それでも0から書くよりはマシなのかもしれない。
制限されるから自由に悩まなくて良くなるしね。
0592デフォルトの名無しさん
2016/08/26(金) 08:52:48.92ID:LTYwvQxlコーディング規約次第だと思うよ、あとから入った人を救うのは。
人間minifierみたいな人のコード読んでも辛いしな。
0593デフォルトの名無しさん
2016/08/26(金) 10:16:34.20ID:7f8QgTGW0594デフォルトの名無しさん
2016/08/26(金) 10:23:36.57ID:7f8QgTGWテキスト入力の書式方向(縦書きモード)を日本語入力環境に伝える方法って何かないかな
縦書き入力は可能なのに変換ウィンドウが横向きから変えられなくて困ってる
IEだとちゃんと全部縦になるというのに
0595デフォルトの名無しさん
2016/08/26(金) 11:59:00.07ID:LTYwvQxl普通は信頼度成長曲線のような形でスキル上がるわけで、
天井は無いもんなんだけど。
0596デフォルトの名無しさん
2016/08/26(金) 21:04:04.36ID:aieEGB34そりゃそうだろw
フレームワークは大規模なものをメンテナンス性を
落とさずにチームで開発するのが目的だ。
小さなものを作るならjQuery程度のライブラリでいいんだよ。
トランスパイラの目的はまた別だけどな。
少なくともbabel(ES2015)は、今すぐ最新のネイティブコードを
使えるようにするのが目的、最新のEcmaScriptは読みやすくすることを
目的に作られているんだから当然読みやすい。
速度に関しては新しい機能を使った部分に関しては変換が入るから
新しい機能を使わない(=読みにくい)方法よりも今は遅いが、
将来はそれもなくなる。
0597デフォルトの名無しさん
2016/08/26(金) 21:05:01.58ID:aieEGB34> 天井は無いもんなんだけど。
その理屈だと、成長を続ける人は遙かなる高みへと上り詰め、
そうでない人は底辺にへばりつくことになる。
0598デフォルトの名無しさん
2016/08/26(金) 22:00:27.83ID:X/VWO4dZでもbabelで変換されるのはクラスのような単純な構文だけで、新しい概念にも切り詰めたコーディングにも対応はしてないんだろ?
0599デフォルトの名無しさん
2016/08/26(金) 22:14:20.95ID:LTYwvQxl信頼度成長曲線ググってみろ。
上がり続けるが、上がり幅が違うんだよ。
アキレスと亀状態。
0600デフォルトの名無しさん
2016/08/26(金) 22:41:23.02ID:fnAyGTx3何の話をしてるんだ?
最新のJavaScriptは新しい概念がどうとかを
サポートしていなければならないとか
そういう話をしてるのか?
babelは改良された最新のJavaScriptが使えるんだよ。
0601デフォルトの名無しさん
2016/08/26(金) 23:33:25.61ID:LTYwvQxlちょっと違うだろ。
最新のjavascriptが、古いJavaScriptに変換されるという、ある意味最新のJavaScriptを信奉するのであれば忌むべきバッタモンだよ。
0602デフォルトの名無しさん
2016/08/26(金) 23:41:33.71ID:fnAyGTx3意味がわからん。
コンパイル言語なんてみんなそうなんだが。
コンパイルすると機械語になるがそれは機械語を使いたいわけじゃない。
機械語から発展していって作られたコンパイラを使いたいんだよ。
最新のJavaScriptを使いたいんだよ。
それが古いJavaScriptになろうが機械語になろうが
そんなのは関係ない。
0603デフォルトの名無しさん
2016/08/26(金) 23:57:10.34ID:LTYwvQxlそれは機械語を使いたいから、でしょ。
機械語を実行したいんでしょ?ただ眺めるもんでなしに。
アセンブラで例えるなら、コプロが無い時代のアセンブラで、コプロを使うコードを、代替コードに置き換えられたマクロアセンブラみたいなもん。
そのコードが実行できれば良いのであれば、コンパイラなんか極論要らないんよ。インタプリタで充分。
充分ではなかった、と歴史は言ってるけど。
最新のJavaScriptを使えばいいよ。
最新ではないJavaScriptとPolyfillに変換される為の最新のJavaScriptの様な言語使うんじゃなくて。
古いJSが根絶に値するならば、そんなトランスバイラ使ってるからこそ改革できないんじゃねーの?って話をしたんだけど、理解できないのかな?
0604デフォルトの名無しさん
2016/08/27(土) 00:09:17.79ID:TwHnMtjD横レスすまんが信頼度成長曲線ってこんなのだぞ?
天井は明確にある
0605デフォルトの名無しさん
2016/08/27(土) 00:10:27.91ID:tVdOxPsU新しいフレームワークに飛び付くギークとまんま動機が同じだなぁ
0606デフォルトの名無しさん
2016/08/27(土) 00:14:32.76ID:VpXVOrs8無いよ。
ある証明はできるけど、無い証明な「現時点無い」によって代えられる。
現時点無い、を証明したところで、将来的に無いでは無い。
0607デフォルトの名無しさん
2016/08/27(土) 00:15:42.18ID:VpXVOrs8最新のではなく、最新のまがい物で満足してるレベルのバカだからな。
仕方ないわ。
0608デフォルトの名無しさん
2016/08/27(土) 00:18:25.15ID:VpXVOrs80609デフォルトの名無しさん
2016/08/27(土) 01:22:19.54ID:W50SJfH+まがい物ってなんだ?
何が悪いのかを明確にしろや
0610デフォルトの名無しさん
2016/08/27(土) 01:24:01.63ID:W50SJfH+まがい物と言う言葉遊びでごまかしてんだな。
0611デフォルトの名無しさん
2016/08/27(土) 04:02:41.95ID:TwHnMtjD??
天井の話だろ?
バグの数が頭打ちになったらそこが天井だ
0612デフォルトの名無しさん
2016/08/27(土) 08:50:07.01ID:4zJIWaih何が悪いかって、そりゃ、構文は新しい構文()を使ってるけど、
中身はJSのコードになるよね?
ネイティブじゃなくて。
あれは、「Babelで変換するES6のような構文で書いた、昔の処理系で動くスクリプト」
挙動が違うものもいくつかあるし、何より、意味がない。
JavaScriptにトランスパイルされるpython3を持ってきて、「俺Webもpython3使ってるんだ、技術者は新しい物をキャッチしないとね!」なんてドヤしてるようなもんで、
どちらの陣営としてもバッタモン感の塊でしかない。
>>611
頭打ちが、頭打ちである証明が出来ないよね。って話。次は絶対に無いの?って。
学習も同じで、終わりは無いよ。
この時点で充分、と自分で辞めることはあっても、これで完璧は存在しない。
0613デフォルトの名無しさん
2016/08/27(土) 09:23:07.54ID:W50SJfH+何が悪いかって、そりゃ、構文は新しい構文()を使ってるけど、
中身は機械語のコードになるよね?
何が違うだろうかw
0614デフォルトの名無しさん
2016/08/27(土) 09:23:40.03ID:W50SJfH+> 挙動が違うものもいくつかあるし、何より、意味がない。
挙動が違うものはない
0615デフォルトの名無しさん
2016/08/27(土) 09:24:39.69ID:W50SJfH+0616デフォルトの名無しさん
2016/08/27(土) 09:29:00.96ID:4zJIWaihならんよ。同じILにすらならん。
arrow functionで良いから、両方、V8止めてオブジェクト見てみれば良いけど。
>>614
挙動が同じものしか使わない、でしょw
ジェネレータとyieldをtry-catchで包んだときの動きとか結構違うよ。
0617デフォルトの名無しさん
2016/08/27(土) 09:31:25.60ID:4zJIWaihだから、JavaScriptにトランスパイルされる、JavaScriptの様な言語でしかないよ、
JavaScriptの様な言語ではなく、JavaScriptだ、と言うのであれば、非互換な実行環境を駆逐するか、別の名前で開き直るべきだよね、って話。
あれは未来仕様を先どった、AltJSに他ならんよ、現状。
0618デフォルトの名無しさん
2016/08/27(土) 09:39:14.14ID:4zJIWaihそれ以上調査もリポジトリのトラックもせず、ただひたすら使う側だと言う事がよくわかるわ。
0619デフォルトの名無しさん
2016/08/27(土) 09:57:13.25ID:4zJIWaih0620デフォルトの名無しさん
2016/08/27(土) 10:10:04.56ID:W50SJfH+何を言ってるのかさっぱりわからんw
互換性がある部分はJavaScriptだろ。
JavaScriptじゃない部分を列挙してみろよ。
どーせしらんのだろうがw
0621デフォルトの名無しさん
2016/08/27(土) 10:43:38.33ID:bDNCBpuS理解してから論議しろよ
0622デフォルトの名無しさん
2016/08/27(土) 12:05:56.97ID:cIYhXoXwそのレスで自分で説明してない?
互換性のある部分はJavaScriptでしょ。
対偶の、互換性のない部分はJavaScriptではない、が真になるじゃん。
var f=(e)=> { var a='alpha';return {a}}
はES6だけど、それ以前のESとは互換性が無いから、babel使うんでしょ。
逆に、
var f=function(e) { var a='alpha';return {a:a}}
は、ES6でもある。
ES6でもあるのではなく、ES6しか存在しない状態になることを、何故目指さないの?効率原理主義者なら、って話。
処理系と言語は分けような。
ScalaはJavaである、何故ならJVMで動くからだ、みたいな暴論だよ。
0623デフォルトの名無しさん
2016/08/27(土) 12:08:37.37ID:W50SJfH+JavaScriptじゃない部分は互換性がない部分だけだと認めましたね?w
じゃあJavaScriptじゃない部分はどこですか?
それ以外は明らかに最新のJavaScriptですね。
ES6はbabelつかなくても動きますよ。
最新のJavaScriptに対応した実行環境があれば動きます。
0624デフォルトの名無しさん
2016/08/27(土) 12:13:28.09ID:W50SJfH+処理系と言語は分けような(大爆笑)
Scala(言語)はJava(言語)ではない。
何故なら同じJVM(処理系)で動くことは言語とは関係ないからだ
0625デフォルトの名無しさん
2016/08/27(土) 12:14:20.07ID:cIYhXoXwあのさぁ。
お前理解できないの?
最新のJavaScriptに対応した実行環境、以外を排斥すれば、
JavaScriptに対応した実行環境、という「特殊解ではない一般論」になる、
何故それを目指さないの?babelなんてまがい物で我慢してるから?
って話をしてるんだけど。
最新のJavaScriptを処理するエンジンと、
「最新のJavaScript」をトランスパイルして最新ではないJavaScriptに変換するエンジンと、最新ではないJavaScriptを実行するエンジン
はかはり違うよね、旧いマックのRosettaやら、win32sみたいなもんだよね。それに依存してなんの意味があるのかな、それに依存してるから、新しい環境が整備されないんじゃないの?
って話。
0626デフォルトの名無しさん
2016/08/27(土) 12:16:09.27ID:cIYhXoXwあれ?機械語になれば同等だから、
旧いJavaScriptのエンジンでも動くから、
ES6もバベったものも旧いJavaScriptもJavaScriptだ、って言ってなかったっけ?wwww
0627デフォルトの名無しさん
2016/08/27(土) 12:20:19.44ID:W50SJfH+頭悪いですね(大爆笑)
Java8のコードがあってJava8のコードを
古いJVMで動かそうとしても動きません。
じゃあJava8のコードはJavaではないのかといったら違いますね。
最新のJVMで動くのだからJava8のコードはJavaです。
ES2015のコードがあってES2015のコードを
古いIEで動かそうとしても動きません。
じゃあES2015のコードはJavaScriptではないのかといったら違いますね。
最新のChromeで動くのだからES2015のコードはJavaScriptです。
ES2017のコードもES2018のコードも同様
これなら理解できるでしょwwww
0628デフォルトの名無しさん
2016/08/27(土) 12:21:18.01ID:cIYhXoXwES6(言語)はJavaScript(言語)である、何故ならば「babelでコンパイルしたものは旧いV8等のエンジン(処理系)でも動くからだ」
って話してたじゃんw
0629デフォルトの名無しさん
2016/08/27(土) 12:23:21.79ID:W50SJfH+ES6(言語)はJavaScript(言語)である、何故ならば言語と処理系は別のものだからだ。
特定の処理系で動かなかったとしても、言語自体には全く関係ない。
俺が言ったよな? 処理系と言語は分けようって。
0630デフォルトの名無しさん
2016/08/27(土) 12:29:46.63ID:cIYhXoXw違うだろw
Java8のコードとJava8のclassは直接関係しないし、JVM8とも直接関係しない。
Javaのコードを、Java8のクラスへ、Java8のコンパイラを使ってコンパイルできるだけ。
Java9999と言うまだ仕様しか決まっていない架空の言語を、Java9999のコンパイラを使って、JVM8で実行できるclassに変換した時、それは、Java9999という言語のコードであって、Javaのコードではない。
単にお前の不勉強。
0631デフォルトの名無しさん
2016/08/27(土) 12:31:45.05ID:W50SJfH+それは仕様が決まってない架空の言語だからだねw
今は仕様が決まってるES2015の話をしてる。
ま、こうやってツッコミどころ満載のレスをするから
お前の株はだだ下がりwww 匿名掲示板でよかったな。
0632デフォルトの名無しさん
2016/08/27(土) 12:31:58.83ID:cIYhXoXwだから、あのさぁ。
ES6とは、JavaScriptの一種である、ではなく、JavaScriptである、と言うのであれば、って話をしてるんだけど。
0633デフォルトの名無しさん
2016/08/27(土) 12:33:40.43ID:cIYhXoXw0634デフォルトの名無しさん
2016/08/27(土) 12:34:45.31ID:W50SJfH+架空の言語だと思っていたのかな?
処理系と言語は分けような。
ES2015に完全対応してない処理系が存在しなかったとしても
言語はそれとは関係ない。
ES2015は仕様が決まってる言語
0635デフォルトの名無しさん
2016/08/27(土) 12:36:27.21ID:cIYhXoXwだからさぁ。仕様が決まって、実装は?まばらなんでしょ?
そこで、まばらを何とかするbabelに頼る理由がわからんのだ。
0636デフォルトの名無しさん
2016/08/27(土) 12:39:27.30ID:W50SJfH+だから何度も言ってるが、言語と処理系は分けようなw
対応している処理系を使えばbabelに頼る必要はない。
最新のJavaScriptは当然ながら最新のJavaScriptだ。
お前は、古いIE(処理系)で動かないから、最新のJavaScriptは
JavaScript(言語)ではないと言ったばかりだろw
0637デフォルトの名無しさん
2016/08/27(土) 12:40:47.02ID:W50SJfH+2015年という意味だぞw
今は2016年だ。
一体何年前から、勉強してないんだろうね。
ES6という言い方はもう古いぞw
0638デフォルトの名無しさん
2016/08/27(土) 12:44:33.62ID:cIYhXoXw結論として、根拠と結論はなんなの?ぼやけてきたんだけど。
JavaScriptを実行するエンジン、で実行できるから、ES6はJavaScriptなの?
それとも、
機械語になったら同じだから、ES6はJavaScriptなの?
俺は、コンパイラ通してやっと実行できるものは、ネイティブ実装とは違うもので、コンパイラ通す前と通したあとを同じ言語だとはよう言わんな、たとえ、一部互換があったり、一部ネイティブでも、と言ってるんだが。
VB6のネイティブコンパイルされたバイナリが含まれてるPCODEを、ネイティブバイナリです、と言われる気分。
0639デフォルトの名無しさん
2016/08/27(土) 12:45:04.52ID:W50SJfH+WebKit、ECMAScript 6 compatibility tableで実装率100%をマーク。
http://applech2.com/archives/20160507-webkit-ecmascript-6.html
0640デフォルトの名無しさん
2016/08/27(土) 12:46:27.34ID:cIYhXoXwそれ以前から触ってるからそのまんま呼んでるだけだよ。
お上りさんと一緒にされても困るわ。
どっちかってと原理主義者なんだけど、こういう奴居るから流行んねえんだよ。今のところはbabelで大丈夫です!→じゃあインフラ変えなくていいよね!→まぁ、今のところは。
みたいな。
0641デフォルトの名無しさん
2016/08/27(土) 12:47:08.33ID:cIYhXoXw5月か6月にやっと、だろ。
知っとるわ。
0642デフォルトの名無しさん
2016/08/27(土) 12:50:29.50ID:W50SJfH+ほんとあったまわりぃなw
機械語の下りは、コンパイル(トランスパイル)した結果が
何に変わろうが、人間が元々書いた言語とは何の関係もないって話だろ。
ES2015はJavaScript。本物のJavaScript。それだけの話。
たとえ動く処理系がなかったとしても、ES2015は最新の本物のJavaScript。
(正確にはES2015よりも新しい仕様はあるが。)
それが結論。
ここまではOKだよな。
そして以下は蛇足。
babelを使えば最新の本物JavaScriptでコードを書ける。
babelで変換するから〜とか意味が無いからいうなよ。
なぜなら「ここまではOKだよな」のところでES2015は
本物のJavaScriptだって結論がでてるんだから。
0643デフォルトの名無しさん
2016/08/27(土) 12:52:19.71ID:W50SJfH+じゃあお前は、
ES2015で書いたコードを見て、
これが本物のJavaScriptはかどうかは、webkitが5月か6月に
出る前と後で変わる。
とでも言いたいのかw
いい加減、処理系と言語は分けて考えような。
このセリフ俺が言った言葉だぞ(笑)
0644デフォルトの名無しさん
2016/08/27(土) 13:06:45.43ID:cIYhXoXwお前の言ってるJavaScriptがわからん。
ChakraのJScriptとかどうなんの?
>>643
本物のJavaScriptでもなんでもなく、それ以降のwebkitでは、ECMAScript 2015が実行できる、以外のなんなの?
0645デフォルトの名無しさん
2016/08/27(土) 13:10:44.65ID:W50SJfH+> お前の言ってるJavaScriptがわからん。
> ChakraのJScriptとかどうなんの?
いい加減、処理系と言語は分けて考えような(大爆笑)
俺が言ってるJavaScriptは処理系ではなくて
言語仕様の方だ。当たり前だ。
0646デフォルトの名無しさん
2016/08/27(土) 13:12:18.06ID:cIYhXoXw俺は、ES6だろうが何だろうが、babelした時点で、TypeScriptやらなんやらかんやらの有象無象と同じ、都合上そう書いている言語の一種でしかない、ただのコンパイラ用の言語だ、
それがES6の書式で書いたとして、コンパイラ用の言語でしかない、って話。
なぜその地位で満足して、babelを引き合いに出して、これで正当な物なのです、と言えるのかわからん、と言ってるんだよなぁ。
0647デフォルトの名無しさん
2016/08/27(土) 13:15:11.94ID:W50SJfH+> それがES6の書式で書いたとして、コンパイラ用の言語でしかない、って話。
webkitでそのまま動くのですが?wwww
勉強不足って怖いねwww
0648デフォルトの名無しさん
2016/08/27(土) 13:15:24.34ID:cIYhXoXwそら噛み合わんわ。
言語仕様がどうであれ、コンパイラに対して書くか、ネイティブに実行されるか否かで、
「現状はAltJSと同じ立ち位置」だって言ってんだよ。
JavaScriptのES6と同じ書式で書いた、babel用の言語だよ。
0649デフォルトの名無しさん
2016/08/27(土) 13:16:13.09ID:cIYhXoXwだから、あのさぁ。
babelを引き合いに出さなければ、俺も何も言わんよ。
0650デフォルトの名無しさん
2016/08/27(土) 13:16:38.18ID:W50SJfH+だからwebkitでそのまま動くんだよ。
babel用の言語じゃない証拠。
お前本当に馬鹿だろw
0651デフォルトの名無しさん
2016/08/27(土) 13:17:31.65ID:W50SJfH+じゃあこれから何も言うなよ?
ES2015は、最新の本物のJavaScriptです。
なので今すぐ使いましょう。
0652デフォルトの名無しさん
2016/08/27(土) 13:25:27.85ID:cIYhXoXw対応したwebkitで動かしているものと、
コンパイラへの入力に同じ物が使えるだけだろ。。
webkitやらnodeでネイティブに動く分には何も言ってねえじゃん、最初から。
babelで変換する為に書いたのであれば、何であれAltJSでしかない、って話してんの。
目的論なの。そこ理解してる?
0653デフォルトの名無しさん
2016/08/27(土) 13:25:28.27ID:W50SJfH+ES2015は、最新の本物のJavaScriptです。
最新の本物のJavaScriptという結論が出ました。
でも動かない環境がある?
そういうときはbabelを使って変換すれば動きます。
でもbabelは関係ありません。
babelを引き合いに出すまでもなく、
ES2015は、webkitで完全対応したので
どこからどうみても最新の本物のJavaScriptです。
0654デフォルトの名無しさん
2016/08/27(土) 13:26:30.18ID:cIYhXoXw0655デフォルトの名無しさん
2016/08/27(土) 13:27:13.20ID:W50SJfH+> babelで変換する為に書いたのであれば、何であれAltJSでしかない、って話してんの。
babelで変換する為に書きませんよ?
ES2015で書くだけです。
でもWebKit以外では完全対応してないので、
対象ブラウザで動くようものだけを選んで
ES2015で書きますがねwwww
もちろん変換して対応できる機能も使いますよ。
でもそれもES2015の機能です。
0656デフォルトの名無しさん
2016/08/27(土) 13:27:35.22ID:W50SJfH+あれ? レスしないんじゃなかったっけ?wwww
0657デフォルトの名無しさん
2016/08/27(土) 13:29:41.04ID:cIYhXoXwそりゃ、babelがあるから、ES6で書くんだろ。
webkitにしか対応しなくていいから、ES6で書くんじゃなくて。
Dartでも書いとけよ。。
0658デフォルトの名無しさん
2016/08/27(土) 13:30:41.33ID:cIYhXoXw引き合いに出すまでもない理由は、webkitで、実質引き合い出したじゃんw
0659デフォルトの名無しさん
2016/08/27(土) 13:31:22.69ID:W50SJfH+> そりゃ、babelがあるから、ES6で書くんだろ。
いいえ、webkitがあるから、ES6で書きますよ。
何か問題でもあるんですか?w
0660デフォルトの名無しさん
2016/08/27(土) 13:32:59.62ID:cIYhXoXwいやー、babelは改良された最新の云々、eslintが、babelが勝手に判断、というのは別人かぁw
0661デフォルトの名無しさん
2016/08/27(土) 13:35:49.45ID:cIYhXoXw俺もES6でも、ServiceWorkerでも、generatorでもyieldでもなんでも使うけどな。
0662デフォルトの名無しさん
2016/08/27(土) 13:45:30.42ID:W50SJfH+generatorやyieldはECMAScriptの機能
ChromeやFirefoxやbabelですでに対応済み
そんなことも知らないのですかね? やれやれです。
0663デフォルトの名無しさん
2016/08/27(土) 13:47:20.79ID:cIYhXoXwだから、どこぞのランタイムに依存するのであれば、その機能を使うと言ってるんだよ。
言語がどうではなく。
なんか、お前、ちょっとズレてるって言われない?
0664デフォルトの名無しさん
2016/08/27(土) 13:49:35.66ID:W50SJfH+だからランタイム(処理系)の話は別に考えろって言っただろ。
処理系の有無は関係なく、
ECMAScriptは最新の本物のJavaScriptだって言ってるの。
そしてES2015に対応するブラウザは存在するし
babelを使って多くの古いブラウザでも動く。
今すぐ最新の本物のJavaScriptを使える環境が
すでに多く存在してるって話をしてるの。
お前がずれてるんだよ。
0665デフォルトの名無しさん
2016/08/27(土) 13:50:09.84ID:cIYhXoXw「chromeとfirefoxの為に書いた物」と、
「chromeとfirefoxとbabel()」の為に書いた物を混同するなよ、未経験者でもあるまいし。
0666デフォルトの名無しさん
2016/08/27(土) 13:54:24.27ID:W50SJfH+なんでES6(言語)で書けば、
chrome(処理系)でもfirefox(処理系)でも動くのに、
わざわざそれぞれの処理系ごとに考えて書かないといけないんだw
IE6の時代じゃねーんだぞ。
今はES6で書けばどの処理系でも動く。
だからES6で書くし、ES6で書いていればbabelを使って
古いブラウザ(処理系)でも動くことができる。
統一された言語がES6なんだが。
言語と処理系は分けて考えような。
お前は処理系しか見てない。
0667デフォルトの名無しさん
2016/08/27(土) 13:55:34.27ID:cIYhXoXwなんか、余程ES6で悔しい思いしたの?
導入提案して怒られたとか。
別に、ES6自体を否定はしてないんだけど。偽物でも本物でも、どちらでも良いよ。本物だろう。
ただ、コンパイラするなら、コンパイラに対して書いたものでしかないけど。
ES6を.netのdllにコンパイルしてくれるyyyyってのがあったとして、それはyyyyの為に書いたES6でしかないよね、って話してるんだよなぁ。
なんでbabelを処理系として考えられないんだろ。
0668デフォルトの名無しさん
2016/08/27(土) 13:58:15.43ID:TwHnMtjD典型的アスペだな
アスペならアスペで収束の概念くらい知っとけ
0669デフォルトの名無しさん
2016/08/27(土) 14:02:16.06ID:cIYhXoXwあーwww
なるほど、夢見てるんだね。
>>662みたいな形で理解はしてるみたいだけど、使えるAPIがどうとか、そう言うのはJavaScriptの機能では無いから、JavaScriptとしては、どの処理系でも動く、と。
めでたい話だw
処理系しか見てない?当たり前だろ。
0670デフォルトの名無しさん
2016/08/27(土) 14:03:34.41ID:W50SJfH+> 導入提案して怒られたとか。
それお前じゃね?
数年前に標準化される前からES2015を普通に使ってるんだが。
社内全体で当たり前に使われてる。
JavaScriptもCSSもビルドして生成して使う言語
Railsの世界ではRailsの標準機能でアセットパイプラインってのがあって
GruntもGlupも使わずに、フレームワークの一環として
JavaScript(とついでにScss)のビルドと結合とミニファイが統合されている。
(もっとも今はRails側がJavaScriptの進化のスピードに
追いつけてないから、webpack使ってビルドする方法に変更したけど)
0671デフォルトの名無しさん
2016/08/27(土) 14:07:10.82ID:W50SJfH+ブラウザのAPIとECMAScriptの違いぐらい理解しようなw
ECMAScriptにはブラウザのAPIは含まれてないからこそ、
どのブラウザでも同じようにES2015は動くってことになるんだよ。
だからブラウザのAPIを使わない理由は有ったとしても、
ES2015を使わない理由はないだろ。
0672デフォルトの名無しさん
2016/08/27(土) 14:13:09.80ID:cIYhXoXwRails()使いなら仕方ないな。
絡んですまんな。
そんな当たり前の話をドヤされるとは思わなんだわ。
0673デフォルトの名無しさん
2016/08/27(土) 14:14:57.12ID:W50SJfH+なんでそこでRailsが関係するんだよw
今はJavaScriptの話をしてるんだが?
お前Rails使えばJavaScripが不要になるとでも思ってんのか?
今までのECMAScriptの話に何の関係があるんだよ。
言ってみな。
0674デフォルトの名無しさん
2016/08/27(土) 14:15:26.69ID:cIYhXoXwレベル低すぎて話にならん。
0675デフォルトの名無しさん
2016/08/27(土) 14:16:50.74ID:W50SJfH+0676デフォルトの名無しさん
2016/08/27(土) 14:21:39.65ID:cIYhXoXwだってそれ、Railsって言う処理系としか言えないからな。全体が。
それに気付いてない時点でもうお察しも良いところ。
0677デフォルトの名無しさん
2016/08/27(土) 14:23:39.68ID:W50SJfH+あーなるほどw
お前クライアントのブラウザで動くJavaScriptが
Rails(Ruby)上で動くと思ってるだろw
JavaScriptはRailsの上では動かねーよ。
無知に無知を重ねてるな。
しかも自分でそれをわかってない。
0678デフォルトの名無しさん
2016/08/27(土) 14:25:36.60ID:Axxom3Kq0679デフォルトの名無しさん
2016/08/27(土) 14:48:39.62ID:W50SJfH+専門でやってる分高い技術を持っているかと言えばそうじゃないんだよな。
フルスタックエンジニアの方がより多くのことを知ってるから
より効率のいい方法を選択できる。
クライアントサイドなんて何年もの間ビルドという概念すらなかったからな。
そんなのコンパイル言語を使う世界では当たり前だったこと。
0680デフォルトの名無しさん
2016/08/27(土) 15:11:33.56ID:tVdOxPsU邦訳された海外小説をロシア語に翻訳して読ませるくらいの無駄を何でわざわざ行うのか
0681デフォルトの名無しさん
2016/08/27(土) 15:18:17.58ID:W50SJfH+数式と一緒。文法を改良することで以前よりもわかりやすく
少ない記述で表現できるようにする。
無理やり例えるならば、推敲に近いことをやってるんだよ。
この言い方(笑)なら無駄じゃないって理解で来るだろ?
0682デフォルトの名無しさん
2016/08/27(土) 15:51:04.98ID:mf8jh8Qk違うよ。
「お作法」に則ってしか作れないのが透けてる。
cakeしか使えないPHPerみたいなもん。
bakeでオッケーです、じゃねえよ、って話。
ドヤ顔でデプロイとか言いながらマイグレーションスクリプト書いてんだろうなぁ、マイグレーションせずに済むように書いておけば済むだけなのになぁ、って。
ビルドせんでもよいものはビルドしなくて良いんだよ、当たり前に考えて。
すれば楽なものはすれば良いけど、その分の検証は余計に必要になる。
数式と同じ、改良すれば良くなる、は的外れ過ぎる。
間違っていない数式は触るべきで無い。それを高速に計算させたいからと何らかの変換を掛けるのは必要だけど、冗長だからと書き換えるのはキチガイのやる事。
文法がどうのが大切で、文法を良くすれば良いものに変わるなら、その為のインタプリタそのもので良いんだよ。
その為のインタプリタが無いから、トランスパイル()するんであって、それはそのトランスパイラが仮想的な実装そのもの。
無駄な中間層があるだけ、無駄な地雷踏むわ。
0683デフォルトの名無しさん
2016/08/27(土) 15:54:11.33ID:W50SJfH+ん?
全然俺のことに当てはまらないんだけど
もしかしてそんなに具体的なのは自分のことだから?
0684デフォルトの名無しさん
2016/08/27(土) 15:57:34.05ID:mf8jh8Qk噛みつき方おかしいだろw
当てはまります、なんて言うようなディスりしてないよ。
具体的も何も、そういう下請け結構いるから。フルスタック気取りの人w
フルスタックできます、って言う会社はもう使わないって決めたくらい。
おつかれさんだねえ。
0685デフォルトの名無しさん
2016/08/27(土) 16:00:25.24ID:W50SJfH+ビルドはソースコード保存すれば勝手にビルドさせるようにしてるし・・・
> すれば楽なものはすれば良いけど、その分の検証は余計に必要になる。
自動化してるね。karmaって知ってる? JavaScriptの世界の話だよ。
複数のブラウザで同時にテスト実行できる。ソースコードを保存したら
勝手にビルドされてすぐにテストが実行される。
同時に複数のブラウザテストってことでBrowserSyncが気になってるけど
まだこれは試してないな。
でお前は俺と同じことをどうやってるのさ?
> 文法がどうのが大切で、文法を良くすれば良いものに変わるなら、その為のインタプリタそのもので良いんだよ。
インタプリタでもなんでもいい。ブラウザがネイティブにサポートされていればそれでもいいし
本当に何でもいいならば、babelでいいだろ。
お前はなんでも良いとは思ってない。中間層をなくさなければならないと思ってる。
でも思ってるだけ。自分の力で実現できてない。できてないからいつまでたっても無駄なことをしている。
現在進行系で地雷を踏み続けている。例えば「これはあのブラウザでは使えない機能だったー」とかな。
俺は中間層をなすくまでの力はなくても、自動化することで中間層が無いような環境を作ってる。
未来までまたなくていい。いま実現できている。
0686デフォルトの名無しさん
2016/08/27(土) 16:03:53.99ID:W50SJfH+一旦乗り遅れると、最新の技術を取り入れるまで
時間がかかるようになってくるんだよな。
常に取り入れ続けていれば、アレをプラスするだけでいいのに、
そういう文化がないと、アレをプラスするにはコレ
コレをプラスするにはソレってなって、
いっぺんに多くのことをしなければならなくなる。
大変だから全く手を付けない。悪循環の始まり。
ご愁傷様だよw
0687デフォルトの名無しさん
2016/08/27(土) 16:13:10.14ID:JHx29YrTなんの文化だよw
0688デフォルトの名無しさん
2016/08/27(土) 17:06:15.16ID:W50SJfH+CMMでいえばレベル4以上の文化
レベル1:プロセスが確立されていない初期段階
レベル2:特定のプロジェクトリーダーや技術者に依存している状態
レベル3:首尾一貫したプロセスを標準として持っている段階
レベル4:標準化されたプロセスを定量的に測定し、洗練化していく状態
レベル5は技術・要件環境の違いによって、標準プロセスを最適化して用いられる段階
0689デフォルトの名無しさん
2016/08/27(土) 17:07:03.18ID:W50SJfH+0690デフォルトの名無しさん
2016/08/27(土) 17:14:12.31ID:mf8jh8Qkビルド自動化とか、テスト自動化とか、当たり前過ぎてちょっと怯えるレベル。
未だにナプキン持ったおっさんなのを責められるならわかるけど。
karmaではテストしないよ。当たり前だけど。
Seleniumで一定範囲はやるけど、それはCIの範囲と、改修の範囲であって、
本質的には、テスト自体のテストが必要な事はしちゃダメでしょ。
それ以上はテスト屋に投げるよ。
ホントになんでも良ければ、babelでも良い?
頭おかしいのかな。
「これはこのブラウザでは使えない機能だったか」なんて、いきあたりばったりで開発する訳ねえじゃん。提案段階で気づくっしょ。
コーディングルールも、指針も、規約も、ライブラリも無い無法地帯でもあるまいし。
内製してます。たぶんまともな会社はどこも。
あと、中間層が「ない」のと、中間層が「ほぼ無い、透過的」なのは大きく違うからね。
「施錠されていない扉はありません」は意味あるけど、
「施錠されていない扉はほぼありません」
は全然意味無いからね。
>>668にも突っ込みたいけど。
0691デフォルトの名無しさん
2016/08/27(土) 17:18:30.98ID:mf8jh8Qk要は、ターゲットを理解しきってないから、karmaとか言い出すんだよな。
なんでkarmaがユニットテストに向いてるか、どういうプロセスでテストするか考えればわかると思うけど。
>>689
アジャイルなめんな
0692デフォルトの名無しさん
2016/08/27(土) 17:38:07.27ID:mf8jh8Qk何をどうドヤ顔してるのかわからんけど、
リポジトリ置いてあるサーバにはジェンキンスと、
XP以降のHyperVの仮想マシン立ってて、マージしたタイミングで勝手にSeleniumかけてくれる。
変わってるとレポート上げて来るから、変ってると書いとく。
Seleniumのスクリプト変えるときは手続き的に結構面倒。ほっとくとスクリプト変わってっけどって割と強めのレポート上がる。
最悪、人でもできる。マージ者がやりゃいいんだけど。
手元は特にこう何かあるわけでもないけど、普通にgulpでビルドが要るものはビルドしてる。
本番サーバも規格品あるから、仮想マシンにバージョン揃えたテスト環境で立ててる。このイメージの作成はたまに刷新するけどめんどい。Dockerにすべきだろうけど、プロプラの物もあるので安易に出来んからやむなし。
cssとかは社内標準あるから、lessのconst変えるくらい。
オートプリフィクサの類はサーバサイドで配信時にかける。いちいちコミット、デプロイすんのも無駄だし。
最悪、手で書けば良いんだけど。
0693デフォルトの名無しさん
2016/08/27(土) 17:55:01.55ID:W50SJfH+いや、なんで当たり前のことを言ってるだけなのに、
わざわざ当たり前というのかわからん。
じゃあ何て言うのか?
当たり前のことを言ったらいかんのか?
じゃあお前はどうやってるんだ?
当たり前のことを言うだろ?
0694デフォルトの名無しさん
2016/08/27(土) 18:00:02.91ID:W50SJfH+> なんでkarmaがユニットテストに向いてるか、どういうプロセスでテストするか考えればわかると思うけど。
karmaは各ブラウザでES6で書いたコードが
正しく動かどうかののテストだけど?
これをやってるからES6で書いて
各ブラウザでES6が同じように動くことが担保できてる。
当たり前のことだが、当たり前のことを言うと
こいつは文句つけるんだよなぁw
0695デフォルトの名無しさん
2016/08/27(土) 18:00:57.05ID:W50SJfH+> リポジトリ置いてあるサーバにはジェンキンスと、
> XP以降のHyperVの仮想マシン立ってて、マージしたタイミングで勝手にSeleniumかけてくれる。
> 変わってるとレポート上げて来るから、変ってると書いとく。
> Seleniumのスクリプト変えるときは手続き的に結構面倒。ほっとくとスクリプト変わってっけどって割と強めのレポート上がる。
そんな当たり前のことをドヤ顔で言われましてもwwww
こういうレスでいいんでしたっけなw
0696デフォルトの名無しさん
2016/08/27(土) 18:04:46.68ID:mf8jh8Qkそりゃ、あたりまえだからだろ。
馬鹿じゃねえの?
0697デフォルトの名無しさん
2016/08/27(土) 18:07:13.32ID:W50SJfH+> Seleniumで一定範囲はやるけど、それはCIの範囲と、改修の範囲であって、
Seleniumでやるのは単体テストではない。
単体テストをいちいちJenkinsでやってられるかw
テスト結果待ちに何分掛かるんだか。
テストといったらSeleniumしか思いつかない時点でアウトだよお前。
> 本質的には、テスト自体のテストが必要な事はしちゃダメでしょ。
どこにもテスト自体のテストが必要とか書いてないが?
何幻見てるんだよw
0698デフォルトの名無しさん
2016/08/27(土) 18:07:41.57ID:W50SJfH+じゃあこれから当たり前のことを一切言わないようにw
0699デフォルトの名無しさん
2016/08/27(土) 18:09:13.45ID:W50SJfH+> 「これはこのブラウザでは使えない機能だったか」なんて、いきあたりばったりで開発する訳ねえじゃん。提案段階で気づくっしょ。
提案段階で「使える機能」だとわかるから
使うんですが?
babelで何が使えるかぐらいわかるだろwww
0700デフォルトの名無しさん
2016/08/27(土) 18:13:08.38ID:5Mfi3utCES6の動作検証を、ES6のスクリプトでしてどうすんの(笑)
その辺がRailsの人の神経わかんないんだけど。
レンジテストに関数じゃなくて値を書いて渡しちゃうタイプ。
むしろ、ブラウザ外からテストかけないと意味ないっしょ。
0701デフォルトの名無しさん
2016/08/27(土) 18:17:36.22ID:5Mfi3utCあ、うん、単体テストじゃないね。
結合だけど。
そんなレベルの話してないって。
なんでわざわざブラウザ外から試験してると思ってんだ。
0702デフォルトの名無しさん
2016/08/27(土) 18:17:53.75ID:W50SJfH+Jenkins使うとかテスト屋に回すと言ってる時点で、
「遅い開発」してるってよく分かるわw
発言がことごとく意味不明で突っ込みどころが多すぎ。
一例を出すと
> Seleniumのスクリプト変えるときは手続き的に結構面倒
それこそ本末転倒になってる証拠だろ
> 最悪、人でもできる。マージ者がやりゃいいんだけど。
コスト無視すりゃなんでも人でできるだだろ
> Dockerにすべきだろうけど、プロプラの物もあるので安易に出来んからやむなし。
プロプラ使ってもDockerにできるだろ
> cssとかは社内標準あるから、lessのconst変えるくらい。
それじゃ改良しようにもルールに縛られてできんくなってるだろ
> オートプリフィクサの類はサーバサイドで配信時にかける。いちいちコミット、デプロイすんのも無駄だし。
サーバサイドで配信時にかけるのがデプロイの一環なんだけど?
0703デフォルトの名無しさん
2016/08/27(土) 18:20:50.62ID:W50SJfH+> ES6の動作検証を、ES6のスクリプトでしてどうすんの(笑)
馬鹿すぎだw
ES6の動作検証がテストの目的だと思ってるのか。
ずれすぎの原因だな。
テストの目的はES6を使って書いたコードが正しく動くことを確かめるんだよ。
もちろんテストコード込みでな。
テストコード込みでES6で書いたコードが
正しく動けば何も問題ないだろ。
0704デフォルトの名無しさん
2016/08/27(土) 18:23:24.00ID:W50SJfH+> むしろ、ブラウザ外からテストかけないと意味ないっしょ。
あ、この人、ブラウザで動くアプリしかテストしたこと無いなw
例えばC#アプリのテストコードはC#で書かれるのが普通。
アプリを開発した言語と同じ言語を使ってテストするんだよ。
どうせお前GUIアプリだと、手でぽちぽち操作するのが
テストだと思ってるんだろうな。
0705デフォルトの名無しさん
2016/08/27(土) 18:24:45.03ID:W50SJfH+ES6のテストはES6でやれよ?
なに○○○だって?
じゃあSeleniumがバグっていたらどうするんですかねぇ。
0706デフォルトの名無しさん
2016/08/27(土) 18:27:24.00ID:mf8jh8Qk単体テストは各自でやるよ。
当たり前だけど、仕様が変わるってのは、順序があるでしょ。
テスト仕様ってのは本来先に決まってるべきもので、アジャイルなら特にこれが一番大事なんだけど、
そのスクリプトが先に用意されて無いってことは、結構ヤバ目なの。
コスト無視すりゃ人でも出来るようにしておくの、必要だよ。
まぁインフラでもない端っこのシステムなら、何かとんでもない事が起こっても何日か止めれば良いだけだけどね。
過去二回食らってるからね。どうやってもどうしようもない障害。
付け焼き刃の改良ならしないほうがマシ。
したらプルリク送ればいいし、やってほしければデザイナに頼む。
あのさ、もしかして、社内便とか無い会社なの?なんか日数掛かるのが前提みたいな話だけど。
0707デフォルトの名無しさん
2016/08/27(土) 18:29:02.00ID:mf8jh8Qk>>704
>>705
お前バカなの?
クラサバならクラサバで、自動化してるよ。
同じ言語でテストするのは、単体以下。モジュールまで。
0708デフォルトの名無しさん
2016/08/27(土) 18:33:55.82ID:W50SJfH+> 同じ言語でテストするのは、単体以下。モジュールまで。
ほうw SeleniumはJavaScriptをメインで開発されていますが、
じゃあ同じ言語のJavaScriptのテストには使えませんねw
https://github.com/SeleniumHQ/selenium
あほか、これと同じことは何にでも当てはまるぞ。
お前が使ってるそのテストツールは何言語で作られてる?
そのテストツールと同じ言語だとテストできない?
馬鹿かお前。
0709デフォルトの名無しさん
2016/08/27(土) 18:37:43.18ID:W50SJfH+> そのスクリプトが先に用意されて無いってことは、結構ヤバ目なの。
じゃあ用意しろよ。
> コスト無視すりゃ人でも出来るようにしておくの、必要だよ。
アホかどんなことでも人でできるだろ。
たとえ電気がなくてもコスト無視すりゃ仕事はできるだろ。
泳いで行けばいい。
あとアジャイルとテストファーストが違うってことぐらい
知っておいたほうが良い。
0710デフォルトの名無しさん
2016/08/27(土) 18:44:41.20ID:W50SJfH+あやふやな記憶を頼りにこの記事を探していたんだよ。
なぜ従来のテスト自動化ツールはアジャイルを抑えつけるのか
https://www.infoq.com/jp/news/2008/05/testobsessed-agile-auto-testing
Seleniumはまさにこの記事で言う「従来のテスト自動化ツール」であり
アジャイルに向かない。
> 従来の記録および再生するヘビーウェイトで商業用のテスト自動化ソリューションは、なぜアジャイルではないのでしょうか
> 3つの理由があります
> 1. そのようなツールを使って行うテストラストのワークフローは、アジャイルチームにとってはまったくの間違いです。
> 2. そのようなツールで作成されたメンテナンスできないスクリプトは、変更が難しくなります。
> 3. 専門のツールを使うにはテスト自動化の専門家が必要となり、そのため孤立した作業が増えます。
見事に2と3に当てはまってるよな。
0711デフォルトの名無しさん
2016/08/27(土) 18:46:41.82ID:W50SJfH+> 本物のIDEで実際の言語を使ってテスト自動化のコードを書くようサポートする。
実際の言語を使ったほうが良いらしいぜw
0712デフォルトの名無しさん
2016/08/27(土) 19:18:53.82ID:DL42PbUIID:W50SJfH+ はBabelが完全ではない事を理解してないんだろうな
「Babel用のES6」と「ネイティブのES6」は別物
0713デフォルトの名無しさん
2016/08/27(土) 19:21:32.91ID:mf8jh8Qkだからランタイムに影響されんように静的ビルドしたコンパイル言語で作ったものがあるし、
ライブラリやらkernel上げるのは大事になるんじゃん。
電気が無くてもコスト無視すりゃ仕事出来るのは、そうだよ。
最悪何らかのOSが立ってて、テキストエディタで修正できて、バインダに綴じてあるテスト仕様書刷ったもの見てテスト通せるような姿になってる。
昔はコンパイラ置いてたけど。
>>710
アホ過ぎるだろ。
それは、テストツールについてる操作記録からテストスイート作ってくれるもの、を叩いてるんだよ。3つの理由の2読んでわかんないのかな。
Seleniumだと、SeleniumIDE使って作ったスクリプトを撮って出しの様に使うって事だよ。
もしかしてそういう使い方しか知らないのかな。
JavaScriptで出来てる、って謎理解。
0714デフォルトの名無しさん
2016/08/27(土) 19:30:16.88ID:mf8jh8Qk理解していないだろうね。
babelをターゲットに入れたくない、中間層に入れたくない、に、
中間層は意識しない作りになってる、なんて的外れな答え返してくれるレベルだから。
0715デフォルトの名無しさん
2016/08/27(土) 19:45:51.14ID:mf8jh8QkMany developers view the specialized QA tools with disdain. They want to write code in real programming languages, not in some wacky vendorscript language using a hamstrung IDE.
ここだね。
要は、(Record-and-playbackなテストスイートの)言語じゃなくて、本当に実在するプログラミング言語でテストは記述しようね、って事で、
ターゲット言語と同一を使え、とは一切書いてないね。
テスト対象もテストプログラムも、どっちも地雷すら踏み抜いてて検知されない類のフレームワークの不具合踏んだとき泣くやつだわ。
http://testobsessed.com/2008/04/29/agile-friendly-test-automation-toolsframeworks/
自体は面白かったよ。
0716デフォルトの名無しさん
2016/08/27(土) 19:58:06.22ID:W50SJfH+> それは、テストツールについてる操作記録からテストスイート作ってくれるもの、を叩いてるんだよ。
> Seleniumだと、SeleniumIDE使って作ったスクリプトを撮って出しの様に使うって事だよ。
十分わかってるよw
予想通りIDEだったかって感じ。
やっぱりWebDriver使ってないんだね。
IDEかぁ。あれはすごくメンテンナンスしづらかった。
あんなの使うやつの気が知れない。作るのもメンテナンスするのも時間がかかる。
まるでプログラミング出来ない罰として苦行を押し付けるような感じだ。
Ruby使ってないなら、Capybara使えとまでは言わないけど、
IDEなんか使わずにWebDriverを直接またはCapybaraのように間接的に使って
アプリと同じ言語でテストを書けよ。
0717デフォルトの名無しさん
2016/08/27(土) 19:59:09.20ID:W50SJfH+> だからランタイムに影響されんように静的ビルドしたコンパイル言語で作ったものがあるし、
> ライブラリやらkernel上げるのは大事になるんじゃん。
お前はそうなんだね!w
0718デフォルトの名無しさん
2016/08/27(土) 20:01:14.67ID:W50SJfH+実際のブラウザ(Chrome等)で単体テストを実行できること。
0719デフォルトの名無しさん
2016/08/27(土) 20:12:02.18ID:mf8jh8Qkだから書いてるってば。
そのお前が引用してきた記事が叩いてる対象がSeleniumIDEだって言ってんの。
英語読めない?
IEでもテストすんだから、WebDriver使ってるに決まってるだろ。
何発狂してるんだよ。
カピバラ使うわけねえだろ、Seleniumは検証したけど、カピバラの検証までしたくねえよ。
>>718
実際のブラウザだけでやるなら片手落ちすぎるだろ。
仮想マシンで全ターゲット回せそんなもの。
出来ないなら、それこそgulpかなんかでwatchしてんなら、半殺しにしたnodeでテストも終わらせてターミナルに上げてくれば良いだけじゃん。
フルスタックが聞いて呆れるわ。
0720デフォルトの名無しさん
2016/08/27(土) 20:14:59.40ID:mf8jh8Qk0721デフォルトの名無しさん
2016/08/27(土) 20:22:54.48ID:mf8jh8Qkそうじゃない使い方もある。
ってか、そうじゃないと、テストスクリプトを先に用意出来ないよね。
録画するものだと思っていたなら。
矛盾に気づかず、叩く事しか考えれないんだろうな、もう余裕無くて。
哀れ。
0722デフォルトの名無しさん
2016/08/27(土) 20:32:49.67ID:mf8jh8Qk↑わかってない
予想通りIDEだったか
↑既に、テストスクリプトを先に書くと言ってる
あれはすごくメンテナンスしづらかった
↑むしろ自分が使ってる
お粗末すぎるだろ。
0723デフォルトの名無しさん
2016/08/27(土) 22:06:36.06ID:mf8jh8QkRailsの世界では()
アセットパイプライン()
↑旧い
もっとも今は()
↑そっちだけ書けよw
ブラウザのAPIを使わない理由はあったとしても
ES2015を使わない理由は無い
↑そりゃ、古いコードも、ES6に内包されるから、当たり前の話
ほらな。何も言い返せない
↑ここで引いておけば恥かかなかった
フロントエンドってフルスタックエンジニアに比べたら
↑フルスタックってRails!?
karmaって知ってる?
↑は?
同時に複数のブラウザテスト
↑TCP/IPのコネクション数限られてるから同時にやんなそんなテスト、一台ずつ立てろ。何がフルスタックだ。
0724デフォルトの名無しさん
2016/08/27(土) 22:07:29.01ID:mf8jh8Qk↑そんな要件最初から断われ。
いま実現できている
↑できていない
大変だから、全く手を付けない
↑つけた結果がこれ。ってか、どんな製造で工数計上すんの?研究開発費?
工数計上ってわかる?
テストと言ったらSeleniumしか思いつかない
↑テストと言ったら単体テストが出て来る時点でお察し
どこにもテスト自体のテストが必要とか書いてないが
↑当然の事だから。マル付けする小学校の先生は教員免許持ってるっしょ。
それじゃ改良しようにもルールに縛られて出来ない
↑デザインセンターのデザイナより良いものが作れるならどーぞ、ただ相手はデザイン畑でうん十年選手だけど。それがどれだけ失礼な態度か、プログラマの域に入ってくるレベルの低い画面屋見たらわかる。
サーバサイドで配信時にかけるのがデプロイ
↑()
見事に2と3に
↑当てはまってない
アプリと同じ言語でテストを書けよ
↑それ.net出始めの頃にエラッタ踏んでえらいめに遭った。MSの人来てもらった。
↑同じくGreasemonkeyでも踏んだ。コミットした
↑同じ経験してる人多かったのでルール化した
あまりに未経験者過ぎるだろ。
経験者のフリするには未熟過ぎ。
0725デフォルトの名無しさん
2016/08/27(土) 22:33:07.97ID:QbV02vjqをただのマップに変換する方法を、
誰か教えて頂けないでしょうか
こんなイメージです。
usersMapList[0]["foo"] = "太郎"
usersMapList[1]["bar"] = "次郎"
usersMapList[2]["hog"] = "三郎"
↓
usersMapList["foo"] = "太郎"
usersMapList["bar"] = "次郎"
usersMapList["hog"] = "三郎"
よろしくお願いします。
0726デフォルトの名無しさん
2016/08/27(土) 22:34:29.01ID:QbV02vjqできればmapとかreduceでスマートに書けるとありがたいです
一時変数作ってそこに突っ込んで・・・だと残念コードなので・・・
0727デフォルトの名無しさん
2016/08/27(土) 22:37:30.43ID:vp5ltHnS教科書を最初から読み直すのが一番いいと思う。
0728デフォルトの名無しさん
2016/08/27(土) 22:50:06.68ID:mf8jh8Qkキーがかぶるとかそう言うのおいといたら、
var ret={}
for(var i in usersMapList) {
If(!
usersMapList.hasOwnProperty(i)) continue;
for(var key in usersMapList[i]){
If(!
usersMapList[i].hasOwnProperty(key)) continue;
if(!!ret[key]) { continue; } //キー被ったとき
ret[key]=[usersMapList[i][key]];
}
}
と地道にやるのが一番面倒くさくないんじゃないかな。確実にスレッド独占できるし。
>>726
reduceでも一時変数出来る割に、それほど効率よくないよ。
残念の意味がわからないかな。
mapなら、一時変数にmapで放り込んで行くと楽だけどそう言うの求めてないっしょ。
雰囲気スマートなのと、何やってるか自明なのは、何やってるか自明な方書いたほうが良いよ。
0729デフォルトの名無しさん
2016/08/27(土) 22:51:04.38ID:mf8jh8Qk0730デフォルトの名無しさん
2016/08/27(土) 23:57:53.63ID:QIOEbDBu0731デフォルトの名無しさん
2016/08/28(日) 00:01:55.51ID:zR1ENZmnス ク ス | | │ //
/ ス | | ッ // ク ク ||. プ //
/ // ス ク ス _ | | │ //
/ ̄ ̄\ / ス ─ | | ッ //
/ _ノ .\ / //
| ( >)(<) ___
. | ⌒(__人__) ./ ⌒ ⌒\
| ` Y⌒l / (>) (<)\
. | . 人__ ヽ / ::::::⌒(__人__)⌒ \
ヽ }| | | ` Y⌒ l__ |
ヽ ノ、| | \ 人_ ヽ /
. /^l / / ,─l ヽ \
0732デフォルトの名無しさん
2016/08/28(日) 00:18:44.05ID:Olv20zQg00年代で成長が止まったレベルの老害コード、
クソ汚いセンス零に加えて、
初歩的なコーディングミス
スレッドがどーとか知ったかの言葉振りかざす前に、
もっとお勉強すべきことがあるんじゃないか?
酷いなんてもんじゃない、恥ずかしくないのか、君
自明?これが?正気?
残念とか以前の問題だよこれは・・・
JavaScriptの角に頭打ち付けて死んだ方がいいレベルだよこれは
0733デフォルトの名無しさん
2016/08/28(日) 01:08:29.61ID:s486bi6/スマートな書き方か
let users = [{foo: ”山田”}, {bar: ”田中”}];
users = Object.assign({}, ...users);
しかしまだ動かないブラウザがあるしわざわざポリフィル用意するくらいならforで丁寧に書くのが一番な気はする
0734デフォルトの名無しさん
2016/08/28(日) 01:18:19.49ID:CaGzKWyDlodash (または、Underscore.js)の、Collection の、each, map でできるのでは?
[js]便利機能満載のライブラリUnderscore.js
http://d.hatena.ne.jp/ninoseki/20110414/1302786001
0735デフォルトの名無しさん
2016/08/28(日) 01:23:58.28ID:Olv20zQg大変素晴らしい
感動をありがとう
出逢いに感謝
>>734
この程度の処理ならライブラリ使うほどじゃないと思った
でもありがとう、勉強になる
0736デフォルトの名無しさん
2016/08/28(日) 01:47:14.14ID:CUC3T7Hpスマホで書いてんだし、そう来ると思って、インデントせずにおいといたんだよ。
配列にいれんのはマジで書き間違えたけどw
書かなくなったけど負けを認めるのは悔しいから、書くんじゃないかな、って待ってたの。
ようこそ、自己紹介をありがとう。
何をどう勉強したら良いか、教えてくれよw
>>733
babelれば動くんじゃねーの?ww誰かさんの言い方だと。
ちなみに、なぜ老害コードで止めてるかわかる?
俺自身は書けるけど、書かないよ。相手がもしかしたらゴミブラウザかもしれんし。
老害コード、いつのJSで動くと思う?
>>733が指摘したようにな。
あと、なぜ、スレッドに関して触れたかは、コールバックを持つjQueryの配列関係の関数よ挙動を見てくれればわかるよ、みといで。
「知ったかぶりをに違いない、何故なら俺はわからないからだ、分からない理屈は世界に存在しないんだ」って自分を慰めてたら、本当の意味で統合失調症になるから気をつけてね。
0737デフォルトの名無しさん
2016/08/28(日) 01:51:33.11ID:CUC3T7Hpやっぱり、レベル低すぎて話にならんわ。
0738デフォルトの名無しさん
2016/08/28(日) 09:27:26.66ID:Olv20zQgごめんね、そんなに返答待ち焦がれてたとは思わなかったよ
mapかreduce使ってと書いてるのに、オレオレ理論でゴミブラウザがどうの言い出すし、
老害に加えて思い込みまで禿しいとかほんとゴミだな
互換を言い訳に老害コードにしがみついてるゴミ屑www
日がな一日長文連投お爺さん
やっぱり、レベル低すぎて話にならんわ。w
0739デフォルトの名無しさん
2016/08/28(日) 09:48:39.77ID:JslD76EF結果のみ
0740デフォルトの名無しさん
2016/08/28(日) 12:09:04.61ID:9MrtMfPy> あと、なぜ、スレッドに関して触れたかは、コールバックを持つjQueryの配列関係の関数よ挙動を見てくれればわかるよ、みといで。
JavaScriptはスレッドは一つしかありません。
だからブラウザはWebWorkerというAPIを作ったのです。
(これはブラウザが提供するAPIでありJavaScriptの仕様外です)
で、スレッド、関係ないよね?w
0741デフォルトの名無しさん
2016/08/28(日) 12:24:28.42ID:FZ102VPA0742デフォルトの名無しさん
2016/08/28(日) 12:25:25.44ID:9MrtMfPy自分がかけないからだろw
> 俺自身は書けるけど、書かないよ。相手がもしかしたらゴミブラウザかもしれんし。
これって相手を馬鹿にしてるだけだよね。
俺天才、だからできるけど、
お前馬鹿だろ、馬鹿でもわかるように、簡単な言葉でせつめいしてあげまちゅよw
0743デフォルトの名無しさん
2016/08/28(日) 12:28:46.59ID:9MrtMfPy説明はこれでいい?
https://developer.mozilla.org/ja/docs/Web/JavaScript/Guide/Introduction
JavaScript とは?
JavaScript はクロスプラットフォームで動作する、オブジェクト指向のスクリプト言語です。
・クライアントサイド JavaScript は、ブラウザとそのドキュメントオブジェクトモデル (DOM) を
制御するオブジェクトを提供することにより、コア言語を拡張します。
・サーバサイド JavaScript は JavaScript を使ったサーバの稼働に関連するオブジェクトを
提供することにより、コア言語を拡張します。
JavaScript と ECMAScript 仕様
JavaScript は国際的なプログラミング言語を提供できるように Ecma International によって
標準化されています (ECMA は、以前は European Computer Manufacturers Association の頭文字をとったものでした)。
この標準化された JavaScript のバージョンは ECMAScript と呼ばれ、
この標準をサポートするアプリケーションはすべて同じ動作になります。
0744デフォルトの名無しさん
2016/08/28(日) 12:35:45.62ID:9MrtMfPy1996年らしいから、ECMAScript初版(1997年)よりも前。
http://www.planetpdf.com/codecuts/pdfs/tutorial/jsspec.pdf
http://hepunx.rl.ac.uk/~adye/jsspec11/jsrefspe.htm
ちゃんとブラウザのAPIは入ってないから
これが「JavaScript」であってると思うよ。
0745デフォルトの名無しさん
2016/08/28(日) 12:37:44.19ID:FZ102VPA> ・クライアントサイド JavaScript は、ブラウザとそのドキュメントオブジェクトモデル (DOM) を
> 制御するオブジェクトを提供することにより、コア言語を拡張します。
これを読んでもまだ分からないのかな
クライアントサイドJavaScript(Firefox)はWebWorkerも提供してる
JavaScriptは様々な仕様の集合体なんだよ
勿論、環境に依存するから「Google ChromeのJavaScript」と「FirefoxのJavaScript」は別物
>>740で「ECMAScriptはスレッドは一つしかありません。」といってたなら何もいわなかった
0746デフォルトの名無しさん
2016/08/28(日) 12:42:58.30ID:FZ102VPA「ECMAScript2015はスレッドは一つしかありません。」の方が厳密か(将来的に拡張されるかもしれないし)
0747デフォルトの名無しさん
2016/08/28(日) 12:43:19.32ID:9MrtMfPyでもサーバーサイドJavaScriptでは提供してないだろ?
クライアントJavaScript ・・・ DOM含む
サーバーサイドJavaScript ・・・ DOM含まない(サーバの稼働に関連するオブジェクトを含む)
JavaScript・・・両方に共通するもののみ
でしょ?
0748デフォルトの名無しさん
2016/08/28(日) 12:49:47.89ID:9MrtMfPyそれは実装と実行環境の話。
仕様としてのJavaScriptは一つしか無いよ
0749デフォルトの名無しさん
2016/08/28(日) 12:51:59.05ID:FZ102VPAそうだよ
実装によってはWebWorkerは存在しない
だからJavaScriptを語るなら実装を決めうちしないと正確じゃない
一般論で「JavaScriptは〜である」なんていえない
0750デフォルトの名無しさん
2016/08/28(日) 12:53:37.70ID:FZ102VPAJacvaScriptという名の仕様は存在しない
仕様を語るなら仕様の名前も正確にいうべき
0751デフォルトの名無しさん
2016/08/28(日) 12:58:05.05ID:ZmsD9M2aこれを見ればわかると思うけど、ChromeのES6実装率はbabelよりも高いんだわ
だから>>733のこれは、現行の(Chromeの)JavaScriptで動く
> let users = [{foo: ”山田”}, {bar: ”田中”}];
> users = Object.assign({}, ...users);
だからJavaScriptのコード例としてECMAScript6の範囲の
コードを書くのは何ら問題ないってことなんだよ。
いい加減>>728みたいな老害コードはやめよう。
0752デフォルトの名無しさん
2016/08/28(日) 12:58:58.13ID:ZmsD9M2aタイトル:JavaScript Language Specification
http://www.planetpdf.com/codecuts/pdfs/tutorial/jsspec.pdf
どういうことかな?w
0753デフォルトの名無しさん
2016/08/28(日) 13:09:35.21ID:ZmsD9M2ahttps://developer.mozilla.org/ja/docs/Web/JavaScript/New_in_JavaScript
> JavaScript versions
> JavaScript 1.1 初版
> JavaScript 1.3 Standardization work to be compliant with ECMA-262 1st and 2nd Edition.
> JavaScript 1.5 標準化団体の ECMA-262 3rd Editionに準拠しています。
> JavaScript 1.6 ECMAScript for XML (E4X)やnew Array methods plus String and Array generics.
> JavaScript 1.7 Includes generators, iterators, array comprehensions, let expressions, and destructuring assignment.
> JavaScript 1.8 Includes expression closures, generator expressions and Array.reduce()
> JavaScript 1.8.5 Includes many new features for ECMA-262 Edition 5 compliance.
ECMA-262っていうのがECMAScriptのことね。
JavaScriptにバージョンがあることすらも忘れたれたのかねぇ。
昔はscriptタグのlanguage属性でバージョン番号指定していたりしたのに。
http://www.tohoho-web.com/js/write.htm
> <script language="JavaScript1.2">
> <!--
> document.write("JavaScript 1.2 をサポートしてるよ");
> // -->
> </script>
0754デフォルトの名無しさん
2016/08/28(日) 13:36:40.98ID:PTagisoLコールバックが発火するタイミングか。
forEachは関数抜ける。
>>751
そのコード、id重複時の処理書き足すの、楽?w
0755デフォルトの名無しさん
2016/08/28(日) 13:43:01.01ID:uj5gKXyg英語みろよ。あんな欠陥言語だけど使いやすい、書きやすい、で使用者増やして、話者が多く通じる≒まなびやすい、まで登っとる。
言語構造として理想、と作ったエスレペラントやその他後続の新興言語見れば、理想に意味があるのかわかっるっしょ。
言語構造がどうであれ、話者は相手に伝われば良いんだよ。
だからRubyなんて使ってるんだなぁ。
ECMAScriptのMozilla実装が、JavaScriptって名前だよ、本来ww
だからChakra引き合いに出したのに。哀れな奴。
0756デフォルトの名無しさん
2016/08/28(日) 13:45:41.50ID:ZmsD9M2ausers = Object.assign({}, ...users.reverse());
0757デフォルトの名無しさん
2016/08/28(日) 13:46:50.95ID:ZmsD9M2aだからJavaScriptはECMAScriptを実装したものであり
内容は同じである。
0758デフォルトの名無しさん
2016/08/28(日) 13:48:32.60ID:uj5gKXygほとんど動く、は動くとは違うんだからw
0759デフォルトの名無しさん
2016/08/28(日) 13:50:39.40ID:ZmsD9M2aSpiderMonkeyという名前である。
0760デフォルトの名無しさん
2016/08/28(日) 13:51:36.55ID:ZmsD9M2ahttps://ja.wikipedia.org/wiki/SpiderMonkey
> それ単体では Document Object Model (DOM) のようなホスト環境を提供しない。
0761デフォルトの名無しさん
2016/08/28(日) 13:51:38.46ID:uj5gKXygアホかな。狭義のJavaScriptだけでしょ。
狭義のJavaScriptと広義のJavaScriptを混同するな、と、オライリー本にはちゃんと書いてあるよ。
読んだことねえんだろうなぁ。
0762デフォルトの名無しさん
2016/08/28(日) 13:52:46.58ID:ZmsD9M2aって考えてるんだろうなって思ったw
0763デフォルトの名無しさん
2016/08/28(日) 13:53:11.55ID:uj5gKXygそれを、どこでも使えるぞ、JavaScriptだから。Webkitでも今は。
ってのは恣意的なごまかし。
0764デフォルトの名無しさん
2016/08/28(日) 13:53:56.90ID:uj5gKXyg第5版だと、2P目に書いてあるほど大事なことだからだ。
0765デフォルトの名無しさん
2016/08/28(日) 13:55:50.26ID:ZmsD9M2a動かないじゃないか!って言いそうな雰囲気である(笑)
0766デフォルトの名無しさん
2016/08/28(日) 13:56:30.09ID:uj5gKXyg6版は会社の金で買ったから会社においてあるわ。
0767デフォルトの名無しさん
2016/08/28(日) 13:58:45.70ID:uj5gKXyg何を揶揄したいかわからんけど、
だからターゲットを明確にする必要があって、
ターゲットに対して書くJavaScriptを、汎用的かつ一般的な標準仕様のJavaScriptとは明確に、全く同じものでも違う意味合いの言語だと理解しなきゃダメなんだよ。
lisp処理系が爆発的に増えた時代とか、古くて理解しなくて良い歴史じゃないんよ。
0768デフォルトの名無しさん
2016/08/28(日) 13:59:12.39ID:ZmsD9M2a2Pのどこ?
https://books.google.co.jp/books?id=RDqQXFA42-kC&printsec=frontcover&hl=ja&sa=X&redir_esc=y#v=onepage&q&f=false
0769デフォルトの名無しさん
2016/08/28(日) 13:59:51.69ID:ZmsD9M2aだからどの仕様のJavaScriptであっても、
そこにDOMは含まれてないんだけど?
0770デフォルトの名無しさん
2016/08/28(日) 14:01:04.18ID:uj5gKXygいろんな発言を鑑みるに、お前は役不足だと思ってるんだろうが、妥当な評価だよ。
0771デフォルトの名無しさん
2016/08/28(日) 14:01:19.61ID:ZmsD9M2a「JavaScriptの正式な名前は、ECMA-262標準によると、ECMAScriptになります。」
0772デフォルトの名無しさん
2016/08/28(日) 14:06:49.49ID:uj5gKXygこの版ではマイルドになってるな。
でも、1.2の下の方に、この名前があらすのは、とまだ書いてあるよ。
0773デフォルトの名無しさん
2016/08/28(日) 14:06:59.27ID:ZmsD9M2aひどいことに、今は、ECMA-262標準でJavaScriptの正式な名称が
ECMAScriptになったんでしょう?
ひどくても、そうなってしまったんでしょう?
今現在の話をしましょうやw
このスレをMozilla実装のJavaScriptだけの話の
スレにしますっていうのなら、そう宣言しろよ。
それならそれで、>>733のコードは
Mozilla実装のJavaScriptで動くから何の問題もないよな。
それは当然の話でMozillaはES6に準拠しているのだからES6のコードは動く。
0774デフォルトの名無しさん
2016/08/28(日) 14:07:40.34ID:ZmsD9M2a> この版ではマイルドになってるな。
第5版ってかいてますが?
0775デフォルトの名無しさん
2016/08/28(日) 14:11:59.82ID:uj5gKXygんで、次のページに親切に実装の差が書かれてるな。
で、同じ事言うとるな。
本書の内容が通じなくなることは無いw
0776デフォルトの名無しさん
2016/08/28(日) 14:14:08.57ID:uj5gKXyg違うよ。お前買ってちゃんと読むか、もう少し続きよめよ。
「ECMA262の一種がJavaScriptとも呼ばれる」
なんだし、現在はそれも変わってねえよ。
だから、JavaScriptと呼ぶなら、ターゲットをちゃんと定めて発言すんの。
0777デフォルトの名無しさん
2016/08/28(日) 14:16:06.48ID:uj5gKXygありゃ、すまんな。それは俺の記憶違いだな。
昔の版はもう少しここトゲトゲしとったんだよ。
0778デフォルトの名無しさん
2016/08/28(日) 14:16:19.84ID:ZmsD9M2aえっと、Googleブックスって知ってますか?
その機能に中身の一部を見れるって知ってますか?
リンク先から2ページ目と3ページ目の中身が見れることに
気づいていますか?
0779デフォルトの名無しさん
2016/08/28(日) 14:17:41.67ID:ZmsD9M2aすまんな。>>773を早く送信しすぎた。
本当は>>775の後に書き込むつもりだったんだよ。
お前のレスが遅すぎで先に書き込んでしまったじゃないかw
で、今はECMA-262標準でJavaScriptの正式な名称が
ECMAScriptと定められました。これが現実です。
0780デフォルトの名無しさん
2016/08/28(日) 14:18:31.92ID:uj5gKXygFirefox動いてるんですね、じゃあ「最新の」コード動きますね
は間違いなの。
ちょっと勉強して書き込みにおいで。
もしくは、ES2015質問用スレッド、立てなよ(笑)
0781デフォルトの名無しさん
2016/08/28(日) 14:20:17.22ID:uj5gKXygアホか。何一つ理解してねえな。
んじゃ、今日は家族サービスしてくるわ。
勉強するかスレ立てとけよ。
0782デフォルトの名無しさん
2016/08/28(日) 14:22:23.26ID:ZmsD9M2aLTSの最新版はESR45.0、これは2016年3月8日に
リリースされたFirefox 45相当だから
最新のコードは動きますねw
https://www.mozilla.jp/business/#sport
0783デフォルトの名無しさん
2016/08/28(日) 14:25:18.28ID:ZmsD9M2aそれが次スレのスレタイですねw
0784デフォルトの名無しさん
2016/08/28(日) 14:26:09.38ID:Olv20zQgせっかくの休日も、2chでオレオレ理論を披露してレスバトルしかやることがない
かわいそう・・・
0785デフォルトの名無しさん
2016/08/28(日) 14:36:55.87ID:uhyHhNbC無意味で長ったらしい
0786デフォルトの名無しさん
2016/08/28(日) 15:45:25.84ID:S9TMTp6WJavaScriptには長らくモジュール化の仕組みがなかったからね。
今は標準でimport/exportがあるけど、Edgeしかまだ対応してないみたいだし。
0787デフォルトの名無しさん
2016/08/28(日) 15:47:46.46ID:C4oSiRgf一本糞みたいなの書くやつって何考えてるの
あとでメンテするとき死にたいの
0788デフォルトの名無しさん
2016/08/28(日) 16:09:53.77ID:S9TMTp6Wそれだとパフォーマンス悪いし、グローバル変数がたくさんできて
どれがどこを見てるのかわからなくなるじゃん。
結合すればいいけど、いちいちファイル結合して保存とか面倒なことしないと動かせないし。
0789デフォルトの名無しさん
2016/08/28(日) 17:09:41.46ID:PTagisoLファイルいくら分けようが単純コンカチしようが、問題無いと思うけど。
何が何を見てるかわからなくなるのは構造の問題。
単部品単機能で作ればいいと思うよ。
xx.webrequest.jsはどう見てもウェブへのリクエストするモジュールだし、
xx.uploaduserdatum.jsはどう見ても一つずつユーザデータをアップロードするモジュールなんだから。
依存するなら、既に使いたいモジュールが読み込まれてるかだけ見て、使いたいモジュール無かったらthrowして教えてやれば良いだけだし、
どうしても自動化が必要なら読み込んでScriptタグ足してからもう一度自分を呼べば良い。
global[xx]だけ汚染して、global[xx].requestがnullなら、って処理にしとけば統一出来るでしょ。
xxとwindowもらう感じで。別にブラウザだけの処理でもなくて、global.documentがあればブラウザだろうし、って中で書き分けても良い。
キャッシュとか考えたら、巨大なファイルがちょくちょく変わるより小さなファイルのいくつかが変わるほうが良い場合もあるし、
最初から別けておいて問題出たらコンカチするとかした方が運用上安定するとは思う。
0790デフォルトの名無しさん
2016/08/28(日) 17:20:18.50ID:9MEkCf8fそれはNetscape Navigator 2.0 のJavaScriptエンジンの仕様書
>>753
それはNetscapeの後継となるFirefoxのJavaScriptエンジンのバージョン
実装レベルで話をするならFirefoxはWebWorkerを実装しているので「Firefoxが実装するJavaScript」はWebWorkerを含むことになる
>>740であなたがいってるJavaScriptは標準仕様の話でしょ
Mozilla系列のJavaScript仕様書を持ち出して反論しておかしいと思わないわけ?
0791デフォルトの名無しさん
2016/08/28(日) 17:32:49.80ID:9MEkCf8f当然、これらはFirefox専用の機能で他の実装がその仕様に準拠する強制力はない
JavaScript 1.8.5 を出してる時点でFitefoxの話にしかなってない
0792デフォルトの名無しさん
2016/08/28(日) 18:38:53.18ID:3M8BWqcqくっだらない言い争いでそんな親の敵のように喧嘩しなくてもさ。
0793デフォルトの名無しさん
2016/08/28(日) 18:55:53.44ID:PTagisoLこいつに言っても無駄よ。
出逢いに感謝()wとか、まぁ楽しくやらせりゃ良い。
機械語にすれば同じとか言ってた奴が、機械語にすれば同じかもしくはパフォーマンスが多少良いコードを、古い書き方、とディスるだけなんだし。
お得意のbabel()で変換したコード読んで、愕然とすれば良いww
>>792
喧嘩というより、間違ってるからな。
質問スレで嘘言う奴はいかんだろ。
0794デフォルトの名無しさん
2016/08/28(日) 18:59:59.06ID:mAwbYo5H> 実装レベルで話をするならFirefoxはWebWorkerを実装しているので「Firefoxが実装するJavaScript」はWebWorkerを含むことになる
含まない。なぜなら、実際にJavaScript 1.8.5にWebWorkerが含まれてないからである。
WebWorkerがリリースされたのはFirefoxの3.5から。
JavaScript 1.8.5がリリースされたのはFirefox 4
0795デフォルトの名無しさん
2016/08/28(日) 19:05:39.73ID:mAwbYo5HJavaScript 1.8.5とかいう名前ではない。
https://developer.mozilla.org/ja/docs/Web/JavaScript/About_JavaScript
> Mozilla プロジェクトは二つの JavaScript 実装を提供しています。
> 最初の JavaScript は Netscape の Brendan Eich が作成して、
> ECMA-262 改訂 5 版に適合するようアップデートされてきました。
> このエンジンは、SpiderMonkey というコードネームで、C/C++ で実装されています。
> Rhino エンジンは、主に Norris Boyd (この人も Netscape) によって作成され、Java による JavaScript の実装です。
そしてSpiderMonkeyのどこを見てもWebWorkerなどというものは出てこない。
https://developer.mozilla.org/ja/docs/SpiderMonkey
0796デフォルトの名無しさん
2016/08/28(日) 19:14:42.36ID:PTagisoLエンジンにSpiderMonkey使ってる、firefoxと言うブラウザじゃん。
V8使ってるnodeとchromeは、同じ実装と言ってるようなもんだよ、それ。
0797デフォルトの名無しさん
2016/08/28(日) 19:15:20.50ID:mAwbYo5HSpiderMonkeyであることは以下の文章からも明らか。
https://developer.mozilla.org/ja/docs/Web/JavaScript/About_JavaScript
> 時々、SpiderMonkey の JavaScript エンジンには、TraceMonkey (Firefox 3.5) や
> JagerMonkey (Firefox 4)、IonMonkey のようないくつかの最適化が加えられました。
> JavaScript の実行パフォーマンスを向上させるための取り組みは継続しています。
>
> 上記の実装の他にも、以下のような人気の JavaScript エンジンがあります。
>
> ・Google の V8。これは Google Chrome ブラウザや最近のバージョンの Opera ブラウザが使用しています。
> また、Node.js もこのエンジンを使用しています。
> ・Safari (Apple) などの WebKit ブラウザで使われている JavaScriptCore (SquirrelFish/Nitro)
> ・過去のバージョンの Opera の Carakan
> ・Internet Explorer で使われている Chakra エンジン (ただし、実装している言語は
> 商標の問題を避けるため、公式には "JScript" と呼ばれています)
そう、商標の問題を避けるたJScriptと呼ばれているが、JScriptに相当する部分とJavaScriptに相当する部分は同じ。
そして続けてこう書いてある。
> Mozilla の各 JavaScript エンジンは、アプリケーション開発者がソフトウェアに JavaScript を統合するために
> 使用できる公開 API を公開しています。JavaScript をサポートした最も一般的なホスト環境はウェブブラウザです。
> ウェブブラウザは主に DOM の JavaScript への実装を担当する 'ホストオブジェクト' を作成するのに公開 API を使っています。
ホストオブジェクトを作成するAPIを使っているのは、JavaScriptにはDOMを含んでいないからこそ。
JavaScriptはブラウザだけで動くものじゃないのだからDOMは含まない。
0798デフォルトの名無しさん
2016/08/28(日) 19:16:23.07ID:mAwbYo5H今はFirefoxのJavaScriptエンジン「SpiderMonkey」の話をしているが
SpiderMonkeyにはDOMは含んでいない。
0799デフォルトの名無しさん
2016/08/28(日) 19:17:44.63ID:PTagisoLエンジンがどうではなくね。
まぁ良いや。獣医終わるし。
楽しく最新のウェブとやらを夢想すれば良いよ。
0800デフォルトの名無しさん
2016/08/28(日) 19:19:16.62ID:PTagisoL0801デフォルトの名無しさん
2016/08/28(日) 19:28:53.12ID:mAwbYo5H話をまとめるとこういうこと
ブラウザ
├ DOM (ホストオブジェクト = windowオブジェクト)
│ ├ DOM要素 (window.document.getElementById などの関数)
│ ├ WebWorker(WHATWGやW3CによるHTML仕様の一部)
│ └ 他
└ JavaScriptエンジン(SpiderMonkey = JavaScriptを実装したもの)
JavaScript仕様を実装したJavaScriptエンジンであるSpiderMonkeyにはDOMは含まれていない。
SpiderMonkeyで実装されているJavaScript仕様はECMAScript仕様にもとづいている。
0802デフォルトの名無しさん
2016/08/28(日) 19:33:49.28ID:mAwbYo5H動く言語のことであるが、
仮にJavaScriptとはFirefoxのSpiderMonkeyで動くものだけであると
いうことにしたとしても、その(Firefoxの)JavaScriptには
DOMは含まれない。
DOMを提供しているのはブラウザ。
正確な意味にしろ一般的な意味にしろJavaScriptの
範疇にDOMは含まれないのである。
0803デフォルトの名無しさん
2016/08/28(日) 19:47:46.98ID:mAwbYo5H> 実装レベルで話をするならFirefoxはWebWorkerを実装しているので「Firefoxが実装するJavaScript」はWebWorkerを含むことになる
が間違いであることは>>801の図からご理解いただけたと思います(笑)
Firefox(ブラウザ)はDOM(ホストオブジェクト)としてWebWorkerを実装していますが、
Firefoxが実装するJavaScriptのエンジンであるSpiderMonkeyには、WebWorkerは含まれておりません。
0804デフォルトの名無しさん
2016/08/28(日) 19:59:07.87ID:mAwbYo5H× 楽しく最新のウェブとやらを夢想すれば良いよ。
○ 楽しく最新のJavaScript(= ECMAScript)とやらを夢想すれば良いよ。
この板はウェブ板じゃないんだからさw
0805デフォルトの名無しさん
2016/08/28(日) 20:37:22.41ID:wR6MB9JUDOMツリーが醜いし描画後のレイアウトを想像しにくいし変更しにくいし
色々試行錯誤してシンプルにコントロールをリスト形式で並べてcssで絶対位置指定でレイアウトする方法に行き着いたんですがこのパターンってなにか致命的な問題ありますか?
0806デフォルトの名無しさん
2016/08/28(日) 20:39:44.62ID:mAwbYo5HJavaScriptと関係ないのでウェブ板に行ってください。
0807デフォルトの名無しさん
2016/08/28(日) 21:05:52.53ID:vx1a7S19【悲報】基地害お爺ちゃん、日曜日なのに孤独を紛らわすため2chでレスバトル
0808デフォルトの名無しさん
2016/08/28(日) 21:07:01.47ID:9wO8q42o画面サイズ変えたときとか、フォントサイズとか、wordbreakとかハイフネーション考えると、ややこしくなると思う。
テンプレートエンジン使ったら良いんじゃないかな。handlebarsとか。
簡易的にやるなら、最初からデザインありきで画面作って、あとから変数書き出すようにすれば良いと思うよ。
0809デフォルトの名無しさん
2016/08/28(日) 21:08:50.88ID:9wO8q42o必死だなぁ。
レスバトルと言うのであれば相手が居て、もちろん相手も同様なんだがw
いよいよ劣勢が見えてきたんだろうな。情けない奴。
0810デフォルトの名無しさん
2016/08/28(日) 21:13:01.94ID:9wO8q42oだから何なんだろう。
だから俺は間違ってない、って言いたいのかな。
もう、間違ってない、で勝てればそれで良いんだろうなぁ。
間違ってようが間違ってなかろうが、自分の知識が否定されるのが、自己批判のように聞こえて仕方ないんだろうな。
0811デフォルトの名無しさん
2016/08/28(日) 21:18:19.19ID:mAwbYo5Hそのレスは何が言いたいんだ?w
間違ってないし、お前はそれに対して反論もしていないよな?
0812デフォルトの名無しさん
2016/08/28(日) 21:22:47.32ID:mAwbYo5HただのHTMLテンプレートエンジンを持ち出すのかもよくわからん。
こういうところからも、こいつ知識怪しいぞってバレるんだよなw
0813デフォルトの名無しさん
2016/08/28(日) 21:26:39.38ID:9wO8q42o何?認めてほしいの?
何を反論しても俺理論な机上空論な独自解釈を繰り広げるんだから仕方ないんじゃねえの?
レベル低い奴に説明すんの疲れた。
0814デフォルトの名無しさん
2016/08/28(日) 21:27:13.93ID:vx1a7S1924時間こんなスレに張り付いて駄レス長文連投とか
情けない通り越してかわいそうだよ、お爺ちゃん・・・
0815デフォルトの名無しさん
2016/08/28(日) 21:27:59.19ID:vx1a7S19とかいいつつ1日中スレに張り付いてID変えて必死のレスしてまつ
0816デフォルトの名無しさん
2016/08/28(日) 21:30:20.91ID:9wO8q42oどんな絡み方だよ。
変数でレンダリングせずにテンプレートの中身をそのまま確認して作れて、必要ならデザイナに投げれて、
デザインの修正に対してjs側で何もしなくて良い様に作るための、テンプレートエンジンだろ。
jQueryでDOM要素をポチポチ弄るより余程楽だし、絶対座標でレイアウトしたいような状態ならなおさらほっとくと密結合になるじゃん。
お前ホントに未経験者なの?
0817デフォルトの名無しさん
2016/08/28(日) 21:30:53.40ID:mAwbYo5Hそのレスをした意味だよ。
お前は反論してないだろ?
ならばその通りと答えるべきだ。
お前は反論も肯定もせずに、俺が発言するという行為に対して
文句を言ってるだけだよな?
単に俺が発言するのが気に食わないだけじゃないか。
俺の発言に反論できなかったから、気食わないと書いて
反論した気持ちになってるだろ?
0818デフォルトの名無しさん
2016/08/28(日) 21:32:53.76ID:9wO8q42o自分がしてるからといってそう言われましても。
変えては無いよ。移動してるから変ってるとは思うけど。
ID:9wO8q42o
ID:PTagisoL
ID:uj5gKXyg
が俺だよ。
0819デフォルトの名無しさん
2016/08/28(日) 21:34:47.01ID:mAwbYo5Hあのさ、
「コントロールをリスト形式で並べてcssで絶対位置指定でレイアウトする方法に行き着いたんですがこのパターンってなにか致命的な問題ありますか?」
という質問に対して、〜略〜という理由でややこしくなるから、
テンプレートエンジンを使とそれが解決するんだろ?
テンプレートエンジンで何がどう解決するのか言ってみろよ。
一例でいいから言ってみな。
まったく本当に話が通じない(苦笑)
0820デフォルトの名無しさん
2016/08/28(日) 21:36:17.25ID:9wO8q42o何言ってんの?
べき、って何だそりゃ。
やっぱり認めてほしいの?
ちなみに、あの図解がおかしいよ。
依存性注入してるでしょ、spidermonkeyに。
いや、気に食わないだけじゃないのか、ってお前自体が気に食わんとか無いよ。
どうせ無駄なんだから。
反論も何もしてなかったし、反論する価値もないと思ってる。
お前は自分が思うほど、他人に否定してもらえるほどすごい人間ですら無かったってこと。
0821デフォルトの名無しさん
2016/08/28(日) 21:39:34.67ID:mAwbYo5H> やっぱり認めてほしいの?
お前が反論できないなら
そういうことじゃねーの?w
> ちなみに、あの図解がおかしいよ。
> 依存性注入してるでしょ、spidermonkeyに。
依存性注入ってまたどこかで聞いたことがある言葉を
使ってみましたみたいな(笑)
で、続きは?
spidermonkeyに依存性注入してる(意味不明)から
なんだって? 続きはよw
0822デフォルトの名無しさん
2016/08/28(日) 21:39:59.17ID:9wO8q42o将来的にその絶対座標で指定しているリスト、を、WebComponentなんかで置き換えたりする場合に手間が省ける、
デザイン自体の問題を切り分けられる。
とりあえずでもcssをscopedにして、他の要素に引きずられないようにできる、そのリストがサイズ違いで同じ画面に登場した時に詰まなくて済む、
なんぼでもあるよ。
0823デフォルトの名無しさん
2016/08/28(日) 21:42:30.17ID:9wO8q42owindowオブジェクトがどう湧いてきてるか考えたら?
https://developer.mozilla.org/en-US/docs/Web/JavaScript/About_JavaScript
0824デフォルトの名無しさん
2016/08/28(日) 21:44:23.06ID:9wO8q42o欲しいか聞いてんだけどw
認めてほしいなら認めてほしいって言えばいいのに。
そう言うことでも何でもないっしょ、もはやw
0825デフォルトの名無しさん
2016/08/28(日) 21:44:40.82ID:mAwbYo5Hなんか単純なことをどんどん複雑にしていくやつだな。
誰がWebComponentで置き換えたいって話をしたんだか。
そもそもWebComponentで置き換えたところで何も解決しない。
「コントロールをリスト形式で並べてcssで絶対位置指定でレイアウトする方法に行き着いたんですがこのパターンってなにか致命的な問題ありますか?」
の回答になってない。
> とりあえずでもcssをscopedにして、他の要素に引きずられないようにできる、
だからそのcssを絶対一時で指定するレイアウトに問題があるかって話をしてるのに、
今度はスコープの話にしてる。今スコープがかぶって混乱すると言う話はしてない。
本当にズレまくってるな。
こいつに「CSSが難しい。絶対座標指定は問題ある?」って相談したら、
テンプレートエンジン使ってWebComponentにしてscopedにすれば解決だ!
っていう答えが返ってくるんだぜw
0826デフォルトの名無しさん
2016/08/28(日) 21:49:12.82ID:X2+Qc9v6結局、「FirefoxのJavaScript仕様」にしか言及してないけど、それがChromeやNode.jsにも通用する知識だと思っているのかねえ
>>748を見てると、とても個別の実装の話とは思えないんだけど
0827デフォルトの名無しさん
2016/08/28(日) 21:51:53.83ID:mAwbYo5H質問に質問で返すなよ(大爆笑)
たいてい自分が説明できないから、相手に考えろっていうんだよな。
なんで俺がお前の有利になるようなことを考えてやらんといかんのだw
で、なに? windowオブジェクトがどうやって湧いてくる?
JavaScriptエンジンが備える公開 API を使って(ブラウザの場合は)ブラウザが
windowオブジェクト(=ホストオブジェクト)を作成するって書いてあるだろ。
これがサーバーサイドJavaScriptなどブラウザじゃなければ、window以外のオブジェクトを
ホストオブジェクトとして作成する。
https://developer.mozilla.org/ja/docs/Web/JavaScript/About_JavaScript
> Mozilla の各 JavaScript エンジンは、アプリケーション開発者がソフトウェアに JavaScript を統合するために
> 使用できる公開 API を公開しています。JavaScript をサポートした最も一般的なホスト環境はウェブブラウザです。
> ウェブブラウザは主に DOM の JavaScript への実装を担当する 'ホストオブジェクト' を作成するのに公開 API を使っています。
まったくだからなんなんだよ。
0828デフォルトの名無しさん
2016/08/28(日) 21:52:04.78ID:9wO8q42oほう、じゃあ逆に、問題解決提案してみたら?
作り切り、売り切りしかやってないならトラブルが浮かばないのかもしらんが。
ってかもしかして学生かなんかなの?
0829デフォルトの名無しさん
2016/08/28(日) 21:52:56.08ID:9wO8q42oうん、と言うことは、実装としては介入を受けてるだよね?
ソース読んでこいw
0830デフォルトの名無しさん
2016/08/28(日) 21:53:47.84ID:mAwbYo5H> 結局、「FirefoxのJavaScript仕様」にしか言及してないけど、それがChromeやNode.jsにも通用する知識だと思っているのかねえ
ChromeやNode.jsにも通用するのか通用しないのか
はっきりとお前の意見を言え。
俺の考えをお前が代弁しただけで(明らかなんだから、そんなことするまでもないだろ)
お前は何も言ってないじゃないか。
0831デフォルトの名無しさん
2016/08/28(日) 21:55:10.41ID:mAwbYo5H> ほう、じゃあ逆に、問題解決提案してみたら?
だからJavaScriptの話題じゃないからウェブ板に移動しろって
問題解決提案した。
>>829
> うん、と言うことは、実装としては介入を受けてるだよね?
実装としては介入を受けているとはどういう意味?
言葉遊びでごまかす手法に切り替えた?w
0832デフォルトの名無しさん
2016/08/28(日) 21:55:22.11ID:9wO8q42oその辺曖昧にして逃げてるんだよ。
0833デフォルトの名無しさん
2016/08/28(日) 21:56:39.34ID:mAwbYo5Hなるほど、お前は曖昧にして逃げてたのか(笑)
0834デフォルトの名無しさん
2016/08/28(日) 21:56:52.00ID:9wO8q42oそれは解決提案じゃねえよw
お前のオナニー会場じゃねえんだから。
実質追い出しじゃん。
後半。
ちゃんと勉強してこい。
0835デフォルトの名無しさん
2016/08/28(日) 21:57:26.70ID:9wO8q42o盲撃ちかwww
0836デフォルトの名無しさん
2016/08/28(日) 21:58:12.61ID:mAwbYo5H> それは解決提案じゃねえよw
> 実質追い出しじゃん。
適切な誘導っていうんだよw
なんでHTMLとCSSの話なのに
このスレでやらないといけないの?
ねぇねぇ、なんで?
0837デフォルトの名無しさん
2016/08/28(日) 21:58:27.74ID:vx1a7S19移動中も2chにレスしないと気が済まないとか
立派な病気でつね
0838デフォルトの名無しさん
2016/08/28(日) 21:59:29.68ID:9wO8q42oJavaScriptで解決できる要素があるから、だろ。
何でも関係ない、消えろ、で追い返してたら仕事減るよw
0839デフォルトの名無しさん
2016/08/28(日) 22:00:52.90ID:9wO8q42o移動して「から」暇な時に書いてるけど。
獣医で順番待ってるとかそう言うやつ。
何にでも噛みつきたいんだなぁ。
0840デフォルトの名無しさん
2016/08/28(日) 22:01:10.24ID:mAwbYo5H質問は
「コントロールをリスト形式で並べてcssで絶対位置指定でレイアウトする方法に行き着いたんですがこのパターンってなにか致命的な問題ありますか?」
ですよね?
0841デフォルトの名無しさん
2016/08/28(日) 22:01:39.74ID:vx1a7S19畜生のお世話の前に、精神科医にお世話になるべきですね・・・間違いない
0842デフォルトの名無しさん
2016/08/28(日) 22:01:56.66ID:9wO8q42oもういいやお前。微塵も価値がないわ。
0843デフォルトの名無しさん
2016/08/28(日) 22:03:24.76ID:mAwbYo5HじゃあさっさとNGにして今後一切レスすんなよw
(NGにしたら見えないから俺が見えないところで何言っても分からない)
そうすりゃ俺が助かるんだよw
0844デフォルトの名無しさん
2016/08/28(日) 22:05:03.33ID:9wO8q42oそういえば、人間って言われたら一番自分が辛い事を、根拠のない中傷に使うらしいよ、俺が習った時代の精神医学と心理学的には。
自分がそれを我慢してる事が、一番自分が許せない事だとも。
まあ10年前の知識だけど。
0845デフォルトの名無しさん
2016/08/28(日) 22:05:12.07ID:aPPFKqa10846デフォルトの名無しさん
2016/08/28(日) 22:05:32.97ID:9wO8q42o悔しいから、見たくないもんね。
はいはい。お疲れ様でした。
0847デフォルトの名無しさん
2016/08/28(日) 22:05:36.21ID:ev9L5f83俺は2レス目で「あ、こいつダメだわ」って思ったよ
0848デフォルトの名無しさん
2016/08/28(日) 22:06:29.80ID:X2+Qc9v6ChromeやNode.jsに通用する訳ない
個別の「実装の仕様」を他の実装が守らなければならない理由がない
それをやるならMozillaがChromeやNode.jsの仕様に準拠しようとしないとフェアじゃない
実装の数だけ仕様書があるのだから、全ての実装の仕様に準拠させるのはナンセンス
0849デフォルトの名無しさん
2016/08/28(日) 22:08:22.38ID:9wO8q42o我慢強く教える方なんよね。
講師とチューターやってるからバカには慣れてるんだけど。
20どころか昨日から100近く書いてるよ。
0850デフォルトの名無しさん
2016/08/28(日) 22:14:28.36ID:mAwbYo5Hはい、適切なスレでレスしときましたよw
HTML/CSS の質問に優しく答えるスレ 24 [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/hp/1471758338/76
0851デフォルトの名無しさん
2016/08/28(日) 22:14:35.62ID:vx1a7S19シッ・・・他に彼の相手をしてくれる人がいないんだよ
察してやれ
0852デフォルトの名無しさん
2016/08/28(日) 22:16:20.17ID:mAwbYo5H> 悔しいから、見たくないもんね。
見たくないのはお前じゃんw
見たくないなら勝手にNGにするわw
>>848
> ChromeやNode.jsに通用する訳ない
ほう、して通用しない理由は?
通用するとは限らないじゃないかという
可能性うんぬんじゃなくて
通用しないという理由を聞きたい。
0853デフォルトの名無しさん
2016/08/28(日) 22:19:52.34ID:9wO8q42oえ?俺は踊り狂うのを楽しく見てるよ。
勝手にNGがよくわからんけど、それで満足するならどうぞ?
0854デフォルトの名無しさん
2016/08/28(日) 22:23:05.19ID:mAwbYo5Hじゃあ俺とは目的が違うなw
俺は間違っていることを言っているやつに対して
適切なソースを示して正しいことが何であるかを解説している。
それに対して反論があるのなら聞きたいところだが、
まあその反論は尽きたんだろうなって判断してる。
お前が俺との議論ではなくて「踊り狂うのを楽しく見てる」
に変えたことで、お前の反論はもうなくなったと判断することにしよう。
0855デフォルトの名無しさん
2016/08/28(日) 22:27:38.94ID:9wO8q42oNGしたんじゃないの?
お前に対しては、間違っているソースを渡しても斜め上に解釈するから無駄だからもう出さないんだよ。
あまつさえ自分から読み違えてるものを出してきてドヤ顔するし。
自分が出したソースで首締めたの覚えてないの?
反論がもう無くなった、じゃないよ。
もう反論すらしてもらえなくなった、だからね。
0856デフォルトの名無しさん
2016/08/28(日) 22:29:58.09ID:mAwbYo5H> NGしたんじゃないの?
NGするって一言も書いてないけどw
ちょっと日本語の読解能力にも疑いが出てきた。
どの文章を読んで、俺がNGにするって判断した?w
0857デフォルトの名無しさん
2016/08/28(日) 22:30:35.54ID:s1MteeQB0858デフォルトの名無しさん
2016/08/28(日) 22:30:49.78ID:9wO8q42o>>852。
0859デフォルトの名無しさん
2016/08/28(日) 22:31:06.75ID:9wO8q42oそう。俺はもう諦めた。
0860デフォルトの名無しさん
2016/08/28(日) 22:31:34.67ID:mAwbYo5H> お前に対しては、間違っているソースを渡しても斜め上に解釈するから無駄だからもう出さないんだよ。
「それは斜め上の解釈である。正しくは○○である」なんて
レス見た記憶ないけど?
それが反論って言うの。
それは斜め上だーって叫ぶのは、反論じゃないの。
0861デフォルトの名無しさん
2016/08/28(日) 22:38:11.34ID:Ch3DlCiC書いたよ、何度も。
すり替え続けたじゃん。
クォートは常にかける必要はない、最新のJavaScriptでは必要ない
↑それじゃ困るよね。
babelかければよい、
↑それは違うよね、Webkitネイティブとbabelは違うよね
いや、Webkitネイティブの話だ
↑なら良いよ。でもJavaScriptってMozillaのな
いや、firefoxの話だ
↑な、ターゲット考えなきゃならんだろ?
いや、そうじゃない、Spidermonkeyの話だ
↑Spidermonkey単体での話ならさておき、ブラウザだよな?
いや、そうじゃない、
とこれいつまでやんの?
反論ではなかった、違う話だもの、と自分守られたらなんともならんわ。
嘘の理由で休んだ奴に、理由聞いてよくわかんないところに着地する流れそのもの。
0862デフォルトの名無しさん
2016/08/28(日) 23:16:21.02ID:X2+Qc9v6>>848の2〜4行目を見てもわからないようだから、あなたの理解力が低すぎるんでしょ
あなたの論理なら「標準規格の仕様(ECMAScript2015)」と「実装の仕様(FirefoxのJavaScript)」の両方を実装しなければならない
Netscape 2.0の仕様書を持ち出しているところからして、たまたま検索して見つけた仕様書をよく読まずに紹介した程度で普段は仕様書なんか読まないんだろうけどね
0863デフォルトの名無しさん
2016/08/28(日) 23:16:28.13ID:mAwbYo5H> クォートは常にかける必要はない、最新のJavaScriptでは必要ない
ハッシュのキーにクォートをかける必要が無いのは、最新のJavaScriptだからではない。
一番の理由は統一するないから。また>>571のようにいろんな書き方があるから統一できない。
もちろん最新のJavaScriptだけの話じゃないし、
FirefoxでもChromeでもIEでも全部同じだ。
SpiderMonkeyの話はJavaScriptを本来のFirefox専用のものだとして
そのFirefoxのJavaScriptにはDOMは含まれてない。
最初のJavaScript1.1仕様には含まれていたと言いたいのかもしれんが
そのJavaScript1.1仕様書にはDOMは含まれていなかった。
という話でクォートの話は全く別。
なんで全く違う会話をつなげてるんだかw
0864デフォルトの名無しさん
2016/08/28(日) 23:21:30.98ID:mAwbYo5H> あなたの論理なら「標準規格の仕様(ECMAScript2015)」と「実装の仕様(FirefoxのJavaScript)」の両方を実装しなければならない
え?どっからそんなことが出てきたんだw
そもそも実装の仕様(ちょっと意味不明だがまあ見逃す)である
FirefoxのJavaScriptはES2015に準拠している。
それはこの文章からもわかる。
https://developer.mozilla.org/ja/docs/Web/JavaScript/ECMAScript_6_support_in_Mozilla
> ECMAScript 2015 (第 6 版) は、〜中略〜、Firefox や他の Mozilla アプリケーションで使用されているエンジンの
> SpiderMonkey における JavaScript 実装のための標準仕様を定義しています。
ECMAScript 2015 (第 6 版) は、(Firefoxの)JavaScript実装のための標準仕様の定義
だからFirefoxのJavaScriptはES2015を実装しているということ。
正確にはES2015に少し独自の拡張(DOMのことではない)を入れているが、
その部分を除けば二つは同じもの。両方を実装どころの話ではなく同じもの。
0865デフォルトの名無しさん
2016/08/28(日) 23:21:35.78ID:9wO8q42o言い訳は良いよ。お疲れ様でした。
0866デフォルトの名無しさん
2016/08/28(日) 23:25:02.57ID:mAwbYo5H>>797の理由から明らか
https://developer.mozilla.org/ja/docs/Web/JavaScript/About_JavaScript
> Mozilla の各 JavaScript エンジンは、アプリケーション開発者がソフトウェアに JavaScript を統合するために
> 使用できる公開 API を公開しています。JavaScript をサポートした最も一般的なホスト環境はウェブブラウザです。
> ウェブブラウザは主に DOM の JavaScript への実装を担当する 'ホストオブジェクト' を作成するのに公開 API を使っています。
ブラウザがDOMを作りそれをJavaScript実行環境に(お前の意味不明な言葉を用いるならば)依存性注入している
注入しているのはJavaScriptの中にDOMが含まれないからであり、
DOMを注入しない使い方もできる。
ChromeのV8やIEのChakraも同じで、DOMを注入しないJavaScriptの
使い方としてnodeが存在する。
0867デフォルトの名無しさん
2016/08/28(日) 23:25:48.29ID:mAwbYo5H言い返さないなら、俺も問題ないよ。
はい、さよならw
0868デフォルトの名無しさん
2016/08/28(日) 23:27:23.98ID:mAwbYo5Hどうせまた斜め上だーって言って反論した気になって
終わるんだろうなwと釘を差しておこうか。
0869デフォルトの名無しさん
2016/08/28(日) 23:32:18.31ID:9wO8q42o自分で説明してるじゃん。
丁寧に間違ったか、恣意的に誤読したレスをありがとうね。
0870デフォルトの名無しさん
2016/08/28(日) 23:32:18.51ID:vumwqn0oというかここ何のスレだっけ?
0871デフォルトの名無しさん
2016/08/28(日) 23:35:06.31ID:9wO8q42o間違ってなければどうでもいいよ。
馬鹿な学生が知ったかぶりして、高説をぶちかますのを見る、JavaScriptの質問スレ。
0872デフォルトの名無しさん
2016/08/28(日) 23:38:36.67ID:mAwbYo5H> 「含まれないからであり、しない使い方も出来る」所に、含ませるために、しているのがブラウザじゃんね。
ブラウザがしているからこそJavaScriptには含まれてないんだが。
お前また斜め上の解釈しようとしてるだろ。
>>871
> 間違ってなければどうでもいいよ。
間違ってないなら言い返してくんなよw
どうでも良くないって「お前」が思ってるから
言い返してくるんだろうが。
上のレスみたいにさ。
で、結局また誤読というだけで、
何が間違ってるか、指摘しないし。
これが現実だよ。
0873デフォルトの名無しさん
2016/08/28(日) 23:40:41.52ID:mAwbYo5H> 大昔の文章やその言葉の定義なんてどうでもええやんと思うのは俺だけ?
世の中には、正式な定義なんかどうでもいいって人と
正しい定義で話そうとする人がいる。
俺は後者ってこと。
0874デフォルトの名無しさん
2016/08/28(日) 23:42:50.88ID:9wO8q42oなんかお前、理解力にハンディキャップ持ってるとかそういうのなの?
なんか申し訳ないわ。流石に。
間違ってなければどうでもいいよ。ってお前に言ってなくない?
そりゃ、逆に『「俺がどうでも良くない」って思ってる』ってどういう意味か考えれば、アホみたいな絡み方出来ないだろう。
ちょっとはロジカルシンキングしろ。
0875デフォルトの名無しさん
2016/08/28(日) 23:43:15.89ID:BOBGslLC0876デフォルトの名無しさん
2016/08/28(日) 23:43:35.43ID:9wO8q42oお前前者じゃん。
0877デフォルトの名無しさん
2016/08/28(日) 23:48:35.01ID:vumwqn0oいやもちろん正しい定義が大事なのはわかる
しかし今のこの流れ、”がいいか’がいいかレベルの揚げ足取りになってないか
すごく不毛に見える
0878デフォルトの名無しさん
2016/08/28(日) 23:50:22.28ID:mAwbYo5Hやっぱりそんなレスしか出来ないんだw
そりゃね。俺が書いた内容ならともかく、
Mozillaの文書の引用に対して反論することはできないよねw
0879デフォルトの名無しさん
2016/08/28(日) 23:56:33.05ID:mAwbYo5Hだってあいつが定義の話をしないんだもんw
斜め上の解釈ばかりして、俺が持ってきた
引用に対してのコメントを拒否してる。
そのくせ俺の発言(内容ではない)に対してばかり文句を言う。
0882デフォルトの名無しさん
2016/08/29(月) 00:04:53.56ID:SN/ntmAr>>648
>>652
>>665
0883デフォルトの名無しさん
2016/08/29(月) 00:05:53.52ID:SN/ntmAr揚げ足取ってるのはあっちだよ。
babelは現状AltJSと同じ立ち位置、を認めれば良いだけなんだから。
0884デフォルトの名無しさん
2016/08/29(月) 00:07:35.20ID:MUTWRWKo0885デフォルトの名無しさん
2016/08/29(月) 00:11:00.33ID:MUTWRWKo同じ立ち位置っていうのがどういう意味なのかさっぱりわからん。
babelは最新のJavaScript = ES2015 = FirefoxのJavaScriptを
古いブラウザでも動かせるようにするトランスパイラ。
AltJSっていうのはJavaScriptの代替。JavaScriptの言語とは違うものだろ
そういう意味で立ち位置はぜんぜん違う。
0886デフォルトの名無しさん
2016/08/29(月) 00:15:38.68ID:MUTWRWKoFirefoxでネイティブに動くJavaScript(ES2015+)コードを書けば、
それが古いブラウザでも動く。
0887デフォルトの名無しさん
2016/08/29(月) 00:15:48.21ID:SN/ntmAr古い()JavaScriptとはよく似ているけど違う言語を、古い()JavaScriptとして動かす、代替言語だよ。事実上。
0888デフォルトの名無しさん
2016/08/29(月) 00:17:29.20ID:MUTWRWKoFirefoxで動く最新のJavaScriptを
古いブラウザでも動かせるトランスパイラだよ。
babel用にコードを書く必要はない。
Firefox用にコードを書けばいい。
もちろん当然ながらDOMはJavaScriptの範囲外(すでに証明したとおり)
その部分で動かないことと、JavaScriptが動かない話は関係ない。
0889デフォルトの名無しさん
2016/08/29(月) 00:18:29.34ID:SN/ntmAr0890デフォルトの名無しさん
2016/08/29(月) 00:19:12.45ID:MUTWRWKolet foo = () => console.log(123)
これは、babel用のコードではなくて
正式の最新JavaScriptコード。
だからFirefoxでネイティブに動く。
この最新JavaScriptコードを古いブラウザでも
動かしてくれるのがbabelというトランスパイラ。
0891デフォルトの名無しさん
2016/08/29(月) 00:20:54.03ID:SN/ntmAr最新のJavaScriptは、古いブラウザからすれば、JavaScriptでは無いんだよ。
だから、JavaScriptではない言語から、JavaScriptへの変換をしてるの。理解できる?
最新のブラウザとか標準仕様とか関係ないの。
その言語がそのターゲットにとって、未知の言語だって事には変わりがない。
だから、目的論だと言ってるんだよ。
0892デフォルトの名無しさん
2016/08/29(月) 00:21:04.65ID:MUTWRWKo最新のJavaScriptコードを書けばいい。
便宜上FirefoxのJavaScriptと書いたが、
FirefoxのJavaScriptはECMAScriptに準拠しているので、
その他のECMAScriptに準拠したブラウザの
JavaScript(V8、Chakra)エンジンでも動作は同じ。
0893デフォルトの名無しさん
2016/08/29(月) 00:22:17.01ID:SN/ntmArES6で、Firefoxでも、webkitでも、babelでも解釈実行が可能なコード、だよ。
0894デフォルトの名無しさん
2016/08/29(月) 00:23:34.83ID:SN/ntmAr必要があるよ。
余計なレイヤは無くすべき。
0895デフォルトの名無しさん
2016/08/29(月) 00:23:47.09ID:MUTWRWKo> 最新のJavaScriptは、古いブラウザからすれば、JavaScriptでは無いんだよ。
どちらもJavaScriptだろ。
古いブラウザは新しいバージョンの
JavaScriptに対応してないだけ。
なんでこんな当たり前のことがわからないんだろうねw
0896デフォルトの名無しさん
2016/08/29(月) 00:27:14.61ID:SN/ntmAr違うよ。
古いブラウザからすれば、ね。
対応していないと言う事は、それは、JavaScriptではなく、意味不明で解釈不能な言語。
これは新しいバージョンのJavaScriptである、と言う事が解釈出来るのは、停止問題として、対応してるって事でしょ。
0897デフォルトの名無しさん
2016/08/29(月) 00:28:13.01ID:MUTWRWKo新しいブラウザからすれば、JavaScriptなのに。
JavaScriptじゃないっていうんだよw
0898デフォルトの名無しさん
2016/08/29(月) 00:38:46.79ID:BFY9f7LW\;;;; \ 彡""彡彡-//ヽ" ''''''"" ̄'''""(エア/ /
\;; \'''''')彡ヽ// | (tv /| , r_>'| <一体みんな誰と戦っているんだ
\;;; \'" \ ,,"''-,,ノ,r-", / r'''-, .j \
\;;; \ /,,>--'''二"''' r-| 二'" / __ \______
0899デフォルトの名無しさん
2016/08/29(月) 00:39:53.28ID:SN/ntmArなんで理解できないんだろう。
新しいブラウザからすれば、そりゃJavaScriptだよ。
仕様としてのJavaScriptと、実装としてのJavaScriptと、言語としてのJavaScriptの立ち位置をごまかし続けてるから理解できないのかな。
例え話するわ。
今の日本語を、安土桃山時代の日本人に読ませても、多分読めないよね。
これは日本語じゃない、って言う。漢字も違うし、表記も違う、知らない記号もある、こんなの日本語ではない、って。
でも日本語じゃん、ってお前言ってんの。未来の言語で、その人は理解しようのない言語ね。
そんで、カタカナひらがなを漢字に置き換えて、アラビア数字を漢数字に変換して、漢語の順に書き下して筆で書く換字機作って、読ませると読めた。
だからやっぱり日本語だ、って言ってる。
頭おかしいじゃん?
日本語だけど、2015年の日本語であって、
安土桃山時代の日本語がそれによって変わるわけでも無い。
日本語は日本語でも別けて考えるべきだし、
安土桃山時代の人に読ませるために、機械に入れるべくかかれた日本語は、言うなれば日本語じゃなくても安土桃山時代の日本語になれば良い代替言語じゃん。
今の日本人が読めようが読めまいが、今の日本人向けに書いた物を転用しようが。
0900デフォルトの名無しさん
2016/08/29(月) 00:43:42.99ID:MUTWRWKo今の日本語を、安土桃山時代の日本人に読ませても、多分読めないよね。
でも今の日本語は当然日本語です。古い日本語も当然日本語です。
今のJavaScriptを、Netscapeで読ませても、多分読めないよね。
でも今のJavaScriptは当然JavaScriptです。古いJavaScriptも当然JavaScriptです。
例え話終わり
0901デフォルトの名無しさん
2016/08/29(月) 00:44:54.55ID:MUTWRWKoあー、今は平成なんだ。Firefox 48の時代なんだ。
今のJavaScript(ES6)はJavaScriptです。
0902デフォルトの名無しさん
2016/08/29(月) 00:47:42.73ID:SN/ntmArだから恣意的だって言ってんの。
今の日本語と、安土桃山時代の日本語は、どちらも正しく日本語だけど、
同じ日本語では無い。
JavaScriptと過去呼ばれていた言語と、ES6も、どちらも正しくJavaScriptだけど、
同じJavaScriptではない。
過去そう呼ばれていた言語として解釈するのであれば、それは、翻訳用の言語として、新しい言語をそのまま用いて変換する事が可能な道具がある。
という話。
過去そう呼ばれていた言語側にとっては、それがラテン語であれ未来のその言語であれ、図であれ、なんであれ過去そう呼ばれていた言語になれば等価値である。
という話。
0903デフォルトの名無しさん
2016/08/29(月) 00:49:53.39ID:SN/ntmArそうだね。
IE8互換モードも動いてる平成28年だ。
0904デフォルトの名無しさん
2016/08/29(月) 00:52:36.72ID:MUTWRWKoで?
俺は今のJavaScriptはJavaScriptだって話をしている。
昔のブラウザは今のJavaScriptを理解できないのであって、
今のJavaScriptがJavaScriptじゃないものになるわけじゃない。
古いブラウザが理解できないだけ。
お前、安土桃山時代で今の日本語を話したら、
日本語が日本語じゃない言語になるっていうのか?
安土桃山時代の人が今の日本語をわからないって言うだけだろ。
0905デフォルトの名無しさん
2016/08/29(月) 00:53:22.09ID:SN/ntmArお前筋金入りの馬鹿だな。
0906デフォルトの名無しさん
2016/08/29(月) 00:53:45.65ID:MUTWRWKo言い返せなくなったら、こういう一言を放つ(笑)
0907デフォルトの名無しさん
2016/08/29(月) 00:56:23.62ID:SN/ntmArそれは古いブラウザにとってはデタラメで最初からJavaScriptですらないんだよ。
>>904
日本語が日本語でなくなるんじゃないよ。
最初から日本語ですら無い。
だからbabelなんて事するより、根絶してネイティブ話者を増やすか、逆に古い言葉で全部書いた方が良いと言ってんだよ。
0908デフォルトの名無しさん
2016/08/29(月) 00:57:00.08ID:SN/ntmAr呆れ返ったから言ってんだよ。
これで理解できなきゃもう手がねえよ。
0909デフォルトの名無しさん
2016/08/29(月) 01:01:19.53ID:SN/ntmArもう絶対にこれ次のPJの請けの奴全員にアンケートとって変なこと言ったやつ切ろう。
0910デフォルトの名無しさん
2016/08/29(月) 01:03:26.25ID:MUTWRWKo> 最初から日本語ですら無い。
矛盾してるなw
今の日本語の話をしようか?
今のJavaScriptの話をしようか?
日本語は日本語であり
JavaScriptはJavaScriptである。
おしまい
0911デフォルトの名無しさん
2016/08/29(月) 01:04:39.16ID:MUTWRWKo古い日本語は、日本語じゃないよって言わないの?w
安土桃山時代の日本語を、今の人はわからないだろうからね。
0912デフォルトの名無しさん
2016/08/29(月) 01:09:52.00ID:MUTWRWKo新しいJavaScriptはブラウザでネイティブに動く。
古いブラウザであればbabelで変換すればいい。
新しいJavaScriptを使っていれば、コストを掛けずに古いブラウザにも対応できるが
古いJavaScriptを使うと、新しいJavaScriptのメリットを受けられなくなる。
古いブラウザが消え尽くすまで10年はかかるだろうが、
それまでずっと古いコードを書くことになったら、それが負債になる。
新しいコードに書き換える時間はまず無い。
ならば最初から新しいコードを書いていたほうが良い。
こんな当たり前のことを言わないとだめなのかな?w
0913デフォルトの名無しさん
2016/08/29(月) 01:10:54.05ID:SN/ntmAr>>902を読めよ。矛盾してない。
今のお前が40年くらい昏睡して目覚めてたら、意味のわからん言語で周りが話していた。
ジジイに翻訳してもらうと、どうやらそれは新しい日本語らしかった。
その日本語は自分が知っている日本語とは違った。
正しく日本語だけど、お前にとっては日本語じゃないんだよ、2056年その時点でも。日本語なら理解できるはずだろ。
相手が新しい日本語をジジイに話して、ジジイがお前に理解できる日本語で話す。その新しい日本語はジジイに対しての言葉で、お前に対しての日本語じゃないじゃん。別にそれがお前にとってはラテン語でも英語でも、ジジイが理解できる言葉話せば良いんだから。
でも本来はジジイ居なくなっても良いようにジジイの代わり確保しとくか、新しい日本語を覚える必要あんじゃん。
「今」は関係ないの。「誰に対しての」が主題なの。
だからターゲットの問題だ、目的論だ、って言ってんの。
0914デフォルトの名無しさん
2016/08/29(月) 01:12:10.76ID:SN/ntmAr無い。
そんなことするなら、自分でコンパイラ作れ。
うちにはある。
0915デフォルトの名無しさん
2016/08/29(月) 01:13:14.24ID:SN/ntmAr言わないよ。
理解し得る人間は存在し得るから。
お前が非論理的なの。
0916デフォルトの名無しさん
2016/08/29(月) 01:15:32.50ID:MUTWRWKo> ジジイに翻訳してもらうと、どうやらそれは新しい日本語らしかった。
はい、じゃあそれは日本語ですね。
新しい日本語わからないだけで、
その言語は日本語ですね。
後の文章は読んでないw
0917デフォルトの名無しさん
2016/08/29(月) 01:17:17.98ID:MUTWRWKo日本語は新しいからって優れているわけじゃないけど、
JavaScriptっていうのは、優れているように改良をして
新しいJavaScriptになるのだから、新しい方が優れてるんだ。
だから、日本語と違い、どちらを選ぶ?と聞かれたら
新しいJavaScriptを選ぶ方がいい。
どうせ古いブラウザでもbabelで動くんだからね。
0918デフォルトの名無しさん
2016/08/29(月) 01:17:44.92ID:SN/ntmArそうすりゃbabelなんて要らないんだよ。
それでも変わらんコードは変わらんだろうけど。
サーバで198901080520ってスタンプ入ったコードまだ動いてるし。
0919デフォルトの名無しさん
2016/08/29(月) 01:19:17.20ID:SN/ntmArそこまではそう書いてある。
読めよw
まぁ、本気で馬鹿なのか振り上げた拳が下げられんのかわからんが、もうこれ以上下ろすことを期待はできんだろ。
生まれ変わったら犬にでもなれよ。
0920デフォルトの名無しさん
2016/08/29(月) 01:20:36.09ID:MUTWRWKo俺は絞らないけどねw
絞るよりも動くほうが良いし
0921デフォルトの名無しさん
2016/08/29(月) 01:21:07.10ID:MUTWRWKoまたそうやって反論じゃないことを言ってごまかす(笑)
振り上げた拳をおろしてないのお前じゃんwww
0922デフォルトの名無しさん
2016/08/29(月) 01:23:31.35ID:SN/ntmAr素人じゃないから、動く事を保証させなきゃいかんし、絞るよ、そりゃ。
動くほうが良い、なんてよく言えるな。中小企業の意味わかってない社長か。
0923デフォルトの名無しさん
2016/08/29(月) 01:24:28.28ID:SN/ntmArお前が誤魔化してんじゃんw
あとの文章は読んでない、とか言って、そこが反論なのに。
頭おかしいわ。
0924デフォルトの名無しさん
2016/08/29(月) 01:24:33.93ID:MUTWRWKo動くことを保証するために、
すべてのブラウザで動かして見るんだろ?
そのコストに違いはないはずだが?
0925デフォルトの名無しさん
2016/08/29(月) 01:25:15.40ID:MUTWRWKoお前の前半分のレスがおかしいから
あとは読む意味がない。
前提が崩れてるんだから。
0926デフォルトの名無しさん
2016/08/29(月) 01:27:44.57ID:SN/ntmAr逆に考えれば?
動かないことを確認も出来るんだよ。
動作保証対象外です、って言えるの。
動くかもしれません、は無いの。
たとえ動いても動かなくても。
コストは違うよね。
お前技術者として働いた事無いだろ。
0927デフォルトの名無しさん
2016/08/29(月) 01:28:19.27ID:SN/ntmArお前の頭がおかしいから、俺がつい詰るのと同じだな。
話す意味がないのによく話してるわ俺。
0928デフォルトの名無しさん
2016/08/29(月) 01:29:27.36ID:SN/ntmAr0929デフォルトの名無しさん
2016/08/29(月) 01:31:34.24ID:MUTWRWKo> 動かないことを確認も出来るんだよ。
> 動作保証対象外です、って言えるの。
babel使っても動作保証対象外っていえばいいだけじゃん?
将来登場するChromeバージョン100で動きますか?って
聞かれたら動くかもしれないけど、動作保証対象外って言うだろ。
マヌケなのかな?
だから、動作保証外です、って言うためには、ノーテストだから動作保証外はだめでしょ。
テストして動作保証外と表示される所まで見て動作保証外だよ。
動作保証外という、動作のテストしなきゃダメでしょ。
お前ずっとコテつけりゃいいじゃん。
俺もつけるから。
スレタイ、テンプレそのままなので、そこは再度議論しましょう。
新しい()ことの話はスレが立ったみたいなので。そちらへ行ってもらいましょう。
+ JavaScript の質問用スレッド vol.122 + [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/tech/1472426483/
0932デフォルトの名無しさん
2016/08/29(月) 08:53:04.58ID:FaTyomHQ0933デフォルトの名無しさん
2016/08/29(月) 09:07:20.71ID:BFY9f7LWワイは寝坊したが
0934デフォルトの名無しさん
2016/08/29(月) 09:33:00.58ID:0oRbFpHcまさか自動テストしてないの?
ブラウザがバージョンアップしたとき
手動でポチポチ再テストしてるのか?
0935デフォルトの名無しさん
2016/08/29(月) 09:34:05.42ID:aKaj3e/jなにそれwww
それ、どういう結果になったら、
テストの目的を達成したことになるの?
0936826
2016/08/29(月) 09:41:03.45ID:yhR6+b5E君こそ何を言ってるのかね
俺は初めから ID:9MrtMfPy と ID:ZmsD9M2a の下記の流れに反論してるだけ
>>826「先日からずっと『JavaScript === ECMAScript』と思っている人の物言いが気になる」
⇒>743-744「説明はこれでいい?」
⇒>745「クライアントサイドJavaScript(Firefox)はWebWorkerも提供してる」
⇒>747「でもサーバーサイドJavaScriptでは提供してないだろ?」
>748 「それは実装と実行環境の話。仕様としてのJavaScriptは一つしか無いよ」
⇒>750「JavaScriptという名の仕様は存在しない」
⇒>752「http://www.planetpdf.com/codecuts/pdfs/tutorial/jsspec.pdf どういうことかな?w」
>753「JavaScriptにバージョンがあることすらも忘れたれたのかねぇ」
仕様の所在が「ECMAScript」になったり、「NetscapeのJavaScript」になったり、「FirefoxのJavaScript」になったり、アホじゃないかと
言葉遊びをしたいなら他所でやってくれよ
>>692
>>935
そりゃ、対応していない、というテストだよ。
未検証ではなくて、動作保証対象外なんだから。
純然たる、テストすらしていない、には、なんの答えも無いよ。
動作保証対象外と言うより、対象外。
厳密さがねえ仕事しとるなぁ。
0938デフォルトの名無しさん
2016/08/29(月) 12:30:12.41ID:eNHK1FnQ最初の設計で明確にするし、客先にも理解して仕事していると思っていた。
0939デフォルトの名無しさん
2016/08/29(月) 13:17:28.24ID:OA7Er5Ycそのテストはどうなれば
テストに通った事になるの?
0940デフォルトの名無しさん
2016/08/29(月) 13:23:35.85ID:OA7Er5Yc0941デフォルトの名無しさん
2016/08/29(月) 13:26:01.10ID:OA7Er5Ycただし動作保証外の場合でも、おおむね動作環境を満たしていれば使えることが多い。しかし「使えます」と保証してしまうと、トラブルがあった場合に困るので、メーカー側は「動作保証できません」としている。
つまり、「使えない」といっているのではなく「使えるという保証はしません」といっているわけだ。そして実際には、問題なく使える、おおむね大丈夫だけど一部の機能が使えない、ほんの一部の機能だけ使える、まったく使えない、のどれかになる。
言っても聞かずに変なブラウザで開くやつは居るんよ。
そいつらに、サポセンの返答として、未評価なのか対応してないかは分けて回答してるみたい。
>>939
ものによるけど、特に何もせず結果のみ収集するか、
どうしても蹴らなければいけないなら蹴ってるか確認するか、
ものによる。
>>941
広義では動作保証対象外に、対象外が含まれるから勘違いしてんじゃねえの?
0943938
2016/08/29(月) 19:10:25.00ID:eNHK1FnQレスありがとうございます。
オレがやってた頃のパソコンは”仕事の道具”で
納品した時の環境以外では使わせなかったし
操作手順書で明記していた。
だから、「クレーム」=「バグ」だった。
今は切り分けが大変なんだなぁ‥
0944デフォルトの名無しさん
2016/08/29(月) 19:13:00.96ID:ZGcNPWphイントラと言っても結構な多人数が使うからね。
標準仕様もあるし、ADで縛ってるけど、だからこそか意味のわからんブラウザで見る奴居るよ。
あんまり酷かったらそのブラウザ立てれなくポリシー撒くけど。
その事業所の別のシステムで要るからと言われたらなんともならん。
0946デフォルトの名無しさん
2016/08/29(月) 21:04:20.41ID:h/qERmsT0947デフォルトの名無しさん
2016/08/29(月) 21:22:53.43ID:BFY9f7LWまさにおまいら
0948デフォルトの名無しさん
2016/08/29(月) 21:25:03.99ID:S9XXvNaM>ものによるけど、特に何もせず結果のみ収集するか、
>どうしても蹴らなければいけないなら蹴ってるか確認するか、
ものによる。
それは、テストを流しただけで
どんな結果でもokならテストした事に
なってないじゃん
0950デフォルトの名無しさん
2016/08/29(月) 21:28:11.89ID:BFY9f7LWえ、ん?
テストを流すってことは、シナリオがあるんだから。
でも改修対象じゃないよ。
angerとangleは、確か印欧語祖的にはang(絞める)とank(曲る)だから、語根違うと思うんだけどなぁ。
でも調べてみるわ。
0953デフォルトの名無しさん
2016/08/29(月) 21:57:03.92ID:V2I771t3◆SEdFBOkLSw って論理的に考えることが出来ない馬鹿だからw
まず答えを最後に言うと、動作保証対象外はテストしません。
開発者の趣味で勝手にテストすることが有っても公式にテストはしません。
動作保証対象外なのにテストする工数が無駄です。
>>930で
> 動作保証外という、動作のテストしなきゃダメでしょ。
って言ってるけど、そんなテストはしません。
テストというのは動作するというテストをします。
わざわざ「動作保証外であることを証明するテストはしません。」
だからbabelを使っても使わなくても、同じテストを行うのだからコストに差はないし、
動作保証対象外はテストをしないのだからbabel使っても動作保証対象外って言って問題ない。
0954デフォルトの名無しさん
2016/08/29(月) 22:00:04.67ID:V2I771t3決めるのではなくて最初の要件で決めます。
>>951で「テストを流す」って言ってるだろ?
じゃあたまたま、そのテストが通ったらどうするのか?
動作保証するのか?って話。
だから◆SEdFBOkLSw の理屈で言えば、
たまたま通ったテストに追加で、動作保証対象外であるという
テストを加えるって話をしている。それは工数の無駄。
で、その動作保証をするテストではなくて、
「動作保証外という、動作のテスト」とはなんだよって話になるが
その答えは書いてない。
とは何だよ、って。
まぁ、自分に理解が出来るものでない答えは、答えでもなく、書いてもない事だから仕方ないんだろうけど。
0957デフォルトの名無しさん
2016/08/29(月) 22:08:23.04ID:V2I771t3> オレがやってた頃のパソコンは”仕事の道具”で
> 納品した時の環境以外では使わせなかったし
> 操作手順書で明記していた。
> だから、「クレーム」=「バグ」だった。
エンドユーザが使うブラウザはコントロール出来ないからね。
しかも短いスパンで勝手にバージョンが上がっていく。
こうなってくると特定のバージョンで動作保証することは現実的ではなくなる。
だからテストは自動化するし、特定のブラウザではなくて特定の仕様(HTML5やECMAScript)を
満たしているであろうブラウザで動作することを保証することになる。
もっともテストをしたブラウザのバージョンは記述するけどね。
でもそうなってくると逆にbabelを使っていたとしても、テストの工数は変わらないことになる。
自動化しているテストを流せばいいだけだからね。
自動化でのテストだけじゃなくて特定のブラウザで実際に動かしてくれと言うのならそうするだけだし、
babelを使って古いブラウザで動くようになってしまったとしても、
そういうブラウザは最初から動作保証外としていればいいだけ。
たまたま動いたからって、動作保証する必要はないし、
ましてや動作保証対象外にするためのテストなんて当然しないw
0958デフォルトの名無しさん
2016/08/29(月) 22:09:28.65ID:V2I771t3だから ◆SEdFBOkLSw は逃げてないで
俺の言ってることがどう間違っているかを
論理的に説明しろって。
いっつも>>956みたいな文句だけを書いて
逃げてるじゃねーかw
0959デフォルトの名無しさん
2016/08/29(月) 22:09:57.23ID:BFY9f7LW君の言うJavaScriptとECMAScriptの定義は正しいのか?
0960デフォルトの名無しさん
2016/08/29(月) 22:11:33.76ID:V2I771t3ちょっとまってw
今 ◆SEdFBOkLSw が論理的な
反論するのを待ってるところだからw
0961デフォルトの名無しさん
2016/08/29(月) 22:12:00.76ID:BFY9f7LW・仕事に貴賤なし、重要ではない仕事にも完璧さを要求せよ。ささいな点でも修正する。
0962デフォルトの名無しさん
2016/08/29(月) 22:14:40.65ID:BFY9f7LWHeadless Browzerも含むのか
Macなのか、Windowsなのか、Linuxなのか、x86なのか、8080はサポート対象なのか、対象年齢は18歳以上か
0963デフォルトの名無しさん
2016/08/29(月) 22:15:20.21ID:V2I771t3それあるよなw
◆SEdFBOkLSwって悪い意味で真面目なんだわ。
babel使えばいいのに、babel使ったら本物のJavaScriptじゃないとか言って
テスト通って動けばいいだろうって話なのに、
重要ではない所にこだわってるんだよ。
イントラだって言ってんのに。
何も理解してなさすぎてびっくりする。
テストの工数変わるだろw
babelのバージョンが固定ならそれで良いだろうけど、何からの理由でbabelのバージョン上げたりbabelが依存してるもののバージョン上げるだけで、改修してないのにテストやりなおしじゃん。
動作保証ってそうじゃないよ。
なってしまった、たまたま動いてるとか怖すぎる。転んでるほうがマシ。
走らない車が止まらない車より安全なのと同じ。
それだけが動いてるんじゃないんだからさ、システムって。
ホントに未経験なのかなぁ。
動けばいいんじゃないよ。
極論、データが壊れなければ動かなくてすら良いんだよ。
0966デフォルトの名無しさん
2016/08/29(月) 22:18:35.24ID:BFY9f7LWバベってんじゃねーぞ
AltJSは甘え
スレッドがシングルするのでマルチブラウザ対応には大量のテストが必要
ECMAの仕様はMozzilaの歴史的に理由によりアレ
でも枯れた技術を使えば安全←結論
止まるかどうかわからない車が危ないんだな。
自分ですまん。
0968デフォルトの名無しさん
2016/08/29(月) 22:20:02.97ID:BFY9f7LWPokemon GO
0969デフォルトの名無しさん
2016/08/29(月) 22:21:19.70ID:V2I771t3> 勝手に上がらないようにLTSとか、配るKB選べるIE使うんじゃん。
じゃあお前、イントラの仕事しかできないよね?
その時点で能力に差があるよw
> テストの工数変わるだろw
> babelのバージョンが固定ならそれで良いだろうけど
ならbabelのバージョン固定すればいいだけだろ。
ほんと意味わかんないw
> なってしまった、たまたま動いてるとか怖すぎる。転んでるほうがマシ。
はい。また話のすり替え。
俺が言ってるのは、動作保証しているブラウザで通るテストが
たまたま古いブラウザでも通ってしまったらどうするの?って
話をしている。
で、お前に質問だよ。たまたま古いブラウザで通ってしまったらどうするんの?
俺だったらテストとは無関係に、要件で動作保証対象外であれば、動作保証しない。
お前が言ってるような、「動作保証外という、動作のテスト」なんてしない。
どっちみち動作保証しないんだから。
0970デフォルトの名無しさん
2016/08/29(月) 22:21:37.82ID:BFY9f7LWあなたが見ている空の色は違うと思うの
そんな世界
僕らはどうあるべきなのか?最高のブラウザは?JavaScriptとは何だったのか?
0971デフォルトの名無しさん
2016/08/29(月) 22:22:10.95ID:V2I771t3> 動けばいいんじゃないよ。
俺は最初からバグなく正しく動くって意味の話をしてる。
本当に卑怯なやつだよなw
0972デフォルトの名無しさん
2016/08/29(月) 22:22:36.80ID:BFY9f7LWでもバベったバージョンがバグってたらどうするんですかぁ?
0973デフォルトの名無しさん
2016/08/29(月) 22:22:59.61ID:V2I771t3ちょっとまって、論理的に反論するのを待ってるところだからw
0974デフォルトの名無しさん
2016/08/29(月) 22:23:47.74ID:BFY9f7LWJQUERYは後方互換も安全だぞ
0975デフォルトの名無しさん
2016/08/29(月) 22:23:48.74ID:V2I771t3IEでバグがあったらお前はどうする?
0976デフォルトの名無しさん
2016/08/29(月) 22:24:10.92ID:YmHx5jts0977デフォルトの名無しさん
2016/08/29(月) 22:25:02.56ID:BFY9f7LWおまえ車は危ないからって自転車派なの?
自転車のサドルから鉄釘が飛び出てきたらどうするの?
0978デフォルトの名無しさん
2016/08/29(月) 22:25:18.57ID:V2I771t3戻らせないよw
◆SEdFBOkLSwは「動作保証外という、動作のテスト」をすると言った。
そのことに関して追求する。
0979デフォルトの名無しさん
2016/08/29(月) 22:25:49.81ID:BFY9f7LWIEの責任なのでマイクロソフト・サポートセンターへの電話番号をメールにてご連絡差し上げます。
0980デフォルトの名無しさん
2016/08/29(月) 22:26:33.24ID:BFY9f7LW何それヤバない?
0981デフォルトの名無しさん
2016/08/29(月) 22:26:38.92ID:V2I771t3おもろいおもろい
0982デフォルトの名無しさん
2016/08/29(月) 22:27:46.27ID:V2I771t3↓動作保証外ですというためにはテストしないといけないらしいよw
930 名前: ◆SEdFBOkLSw [sage] 投稿日:2016/08/29(月) 08:06:03.18 ID:FpDQPGJ0
>>929
だから、動作保証外です、って言うためには、ノーテストだから動作保証外はだめでしょ。
テストして動作保証外と表示される所まで見て動作保証外だよ。
0983デフォルトの名無しさん
2016/08/29(月) 22:27:59.09ID:BFY9f7LWやっぱりバベるのせい?
0984デフォルトの名無しさん
2016/08/29(月) 22:28:56.51ID:BFY9f7LWまじかよ・・・
組み込み冷蔵庫で俺のJavaScriptで左右に揺れるクールなキンタマが動作しないことを保証しないといけないの?
発狂しそう
0985デフォルトの名無しさん
2016/08/29(月) 22:32:04.92ID:yBrPIcB+動作保証:動作に於いて責任を持つ
プロセスなんか関係ないよ
0986デフォルトの名無しさん
2016/08/29(月) 22:32:49.75ID:BFY9f7LWスレッドは関係ある?
0987デフォルトの名無しさん
2016/08/29(月) 22:36:32.44ID:V2I771t3スレッドって>>728か
こいつも◆SEdFBOkLSwっぽいよな
トリップ長いからSEさんって呼ぼうかw
0988デフォルトの名無しさん
2016/08/29(月) 22:39:34.40ID:BFY9f7LWJavaScriptとスレッドの蜜月な関係 〜バベル編〜
0989デフォルトの名無しさん
2016/08/29(月) 22:40:31.65ID:pB20ab43次スレワッチョイ入れろよマジでうぜえから
0990デフォルトの名無しさん
2016/08/29(月) 22:41:58.90ID:V2I771t3+ JavaScript(ECMAScript)質問用スレッド vol.122 + [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/tech/1472401404/
0991デフォルトの名無しさん
2016/08/29(月) 22:42:26.41ID:saLZAl2R0992デフォルトの名無しさん
2016/08/29(月) 22:42:31.23ID:BFY9f7LWレス1つしねえくせに文句だけ言う
おまえJavaScriptの何なの?
0993デフォルトの名無しさん
2016/08/29(月) 22:42:39.18ID:/bsrQQoV0994デフォルトの名無しさん
2016/08/29(月) 22:42:56.56ID:oNBje6yw0995デフォルトの名無しさん
2016/08/29(月) 22:43:08.80ID:QOnVsd9Z0996デフォルトの名無しさん
2016/08/29(月) 22:43:22.66ID:2jcI0rTU+ JavaScript(ECMAScript)質問用スレッド vol.122 + [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/tech/1472401404/
0997デフォルトの名無しさん
2016/08/29(月) 22:43:45.96ID:D0Hv4ADa+ JavaScript(ECMAScript)質問用スレッド vol.122 + [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/tech/1472401404/
0998デフォルトの名無しさん
2016/08/29(月) 22:44:08.06ID:RFd6V2xt+ JavaScript(ECMAScript)質問用スレッド vol.122 + [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/tech/1472401404/
0999デフォルトの名無しさん
2016/08/29(月) 22:44:15.40ID:BFY9f7LWてめえらなんかあれだからな、俺の指先一つでバグで吹き飛んでダウンさ
わかるか?
1000デフォルトの名無しさん
2016/08/29(月) 22:44:33.47ID:/4QG0Ido10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
life time: 49日 23時間 58分 20秒
10021002
Over 1000Thread運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 2ちゃんねる専用ブラウザからの広告除去
★ 2ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
http://premium.2ch.net/
http://pink-chan-store.myshopify.com/
レス数が1000を超えています。これ以上書き込みはできません。