+ JavaScript の質問用スレッド vol.122 + [無断転載禁止]©5ch.io
レス数が1000を超えています。これ以上書き込みはできません。
>>2-6のテンプレを読んだ上で質問してください。次スレは>>950が>>2のテンプレ案(本スレで改善案があれば考慮)を元に立ててください
■質問を書く上で
(1) 煽り、コード制作依頼等、人を不快にさせる投稿はご遠慮下さい。公序良俗を守った応対を心がけてください。
(2) 他の人に迷惑をかけるスクリプトの質問はご遠慮ください。
(ブラクラ、[戻る], [閉じる], [クリック] の妨害、画面占有など)
(3) 質問者及び議論を行う人はメール欄を空欄にし、名前にレス番を入れることを強く推奨します。回答者はなりすましを判断できませんので、なりすましが現れても自己責任となります。
(4) 常に自発的に調べる心構えを持ってください。
具体的には「自分で調べてから質問する」「回答をもらってわからない単語があればGoogle検索してみる」など。
わからない内容を代わりに調べてくれる回答者をお望みの方は余所で質問してください。
(5) 出来るだけ一般的な用語を使用してください。脳内オレオレ用語は混乱の元です。
(6) 出来るだけサンプルコードを掲示してください。言葉による説明は行き違いが生まれる場合があります。
※必ず「問題の事象が再現されること」を確認してください。
必要な部分だけ切り出したつもりで現象が再現できていなかったケアレスミスがしばしば見られます。
(7) サンプルコードに HTML が含まれる場合は http://validator.w3.org/ で [Check] してみてください。
(8) 質問を具体的かつ詳細に書くと回答を得られやすいです。>>2の質問テンプレートを活用してみてください。
(9) ライブラリ関連の質問は禁止です。関連スレにあるライブラリ質問スレで質問して下さい。
(10) 時にはあなたが望む「答え」だけでなく、「意見」などが寄せられる場合もあります。
※前スレ
+ JavaScript の質問用スレッド vol.121 +
http://echo.2ch.net/test/read.cgi/tech/1468158373/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
【環境】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/
http://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プロパティの算出値を表示(
0004 ◆SEdFBOkLSw (スププ Sdb8-LFRZ)
2016/08/29(月) 08:25:42.49ID:zn5a5dIZd◆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 和訳)
http://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プロパティの算出値を表示(
◆ 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
◆ 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
vol.115でlodashを不必要に推奨して啓蒙する行為が多く確認されており、ライブラリ系の質問はvol.116から禁止されました。
vol.115,116ではライブラリ禁止する発言が見られた直後にライブラリを許可する意図で次スレを立てる行為が確認されています。
本スレッドでライブラリ許可を求める発言が確認された場合は不要な争いを避ける為、スルーすることを推奨します。
ライブラリの質問はライブラリスレへ誘導し、誘導行為への反論はスルーしてください。
-----ここまでテンプレ-----
0009デフォルトの名無しさん (ワッチョイ 2aa7-gQqU)
2016/08/29(月) 12:07:07.79ID:uRu8v7uy0うん、それはマジですまんかった。
新しいスレ立ててもらえたようだし、ワッチョイもやってみたし、迷惑掛けた分多少なりとも貢献させてくれ。
0011デフォルトの名無しさん (ワッチョイ 7f5b-gQqU)
2016/08/30(火) 19:50:02.89ID:XVRDpTr20個人的にはやりたいことをやればいいと思うから、
「スレを乗っ取る」のではなく、「新しいスレを立てて何かやる」のはいいと思うよ。
今回はその新しいスレが「質問スレ」と銘打っているから駄目だと思うけど。
仕様について語りたい人が多いのなら、「仕様スレ」を立てればいいんだよ。
人を集めるのが面倒だからといって、既存スレを乗っ取るのは駄目だよ。
結果的に「質問スレ」「仕様スレ」と並立した状態で、質問スレが過疎って落ちるのなら、
それは不要という意味だから、その時統合すればいいだけ。
それ以前に無理矢理方針変更するのは、ただの乗っ取りでしかない。
質問スレは単独で十分流れているわけだし。
前回何故か「仕様スレ」が放置されて落ちたでしょ。
それも含めて単独で「仕様スレ」が存在出来ないと考えて「質問スレ」としたのなら姑息だよ。
単独で存在出来ないのならそれは需要がないということでしかない。
それでも需要を掘り起こしたいのなら、ぬしって保守していくしかない。
自分では何もする気がなくて、他人が作り上げた物を横取りすることしか考えないのは、ただのクズだよ。
実際、君らには「仕様スレ」が必要なのだろう?
だったら姑息なことをせずに正面から「仕様スレ」立てて勝負すれば良かっただけの話だよ。
それが落ちたらそれまでの話でね。別に殺されるわけでもなし。
というのが今回の顛末で思ったことだね。
はい、では次の質問どうぞ。
いや、俺にそこまでの強い意図があったわけでは無いんだ。
質問スレで、間違ってる答えってのはその中で訂正、再発言されて然るべきだと思って、おかしいんじゃねえの?
って言ったのを、良くわからん理屈で訂正どころか、
間違いに間違いを重ねるから。
訂正してほしかっただけよ。後続の人のために。
売り言葉に買い言葉になっているだけで仕様を語りたいわけでは(俺は)無くて、間違ってなければそれで良いよ。どんな話してても。
0013デフォルトの名無しさん (ワッチョイ 7dce-gQqU)
2016/08/31(水) 03:17:11.25ID:Z+fjIbnf0正しい情報をちゃんとしたソース込みで。
相手はちゃんとソース出しているんだから、
お前がそれよりも信頼できるソースを出せない以上、
相手が正しいで終わりだろ。
平行線だろ。
こっちが、ソースやら考え方を話しても聞かないんだから。
だから説得は諦めた。
0015デフォルトの名無しさん (ワッチョイ 27b1-CT9T)
2016/08/31(水) 07:49:31.73ID:xPKmFyyb0ホトリン
正確な言語名を教えて欲しいです。
0016デフォルトの名無しさん (ワッチョイ 11a1-qQHP)
2016/08/31(水) 20:30:25.87ID:VPZCfIA10間違ってたらすまん
0017デフォルトの名無しさん (ワッチョイ 75ce-gQqU)
2016/08/31(水) 23:30:36.59ID:mxX4GOAr0年齢がわかる
0018デフォルトの名無しさん (オッペケ Sr8f-RETc)
2016/09/01(木) 01:07:46.75ID:vX3kyOFIr0020デフォルトの名無しさん (オッペケ Sr8f-RETc)
2016/09/01(木) 08:21:27.50ID:bs0MIC6Prだったら、向こうのスレでレスするのを止めなよ
あっちが閑古鳥鳴いたら来ちゃうじゃん。
0022デフォルトの名無しさん (オッペケ Sr8f-RETc)
2016/09/01(木) 13:36:19.91ID:Z7/OzEHdr構わなければあの話題に関しては自然消滅するでしょ
あっちが本スレだと勘違いする人も出てくるだろうし、スルーが一番
0023デフォルトの名無しさん (ワッチョイ 17c9-wh/5)
2016/09/01(木) 18:09:09.45ID:yAfRysov00024デフォルトの名無しさん (ワッチョイ 17c9-wh/5)
2016/09/01(木) 18:17:54.49ID:yAfRysov0これをこう書き
function run(a){
return a[0]().then(a[1]).then(a[2]).then(a[3]);
}
a[] を4個固定じゃなくてn個にしたい
0025デフォルトの名無しさん (オッペケ Sr8f-RETc)
2016/09/01(木) 18:44:11.05ID:P+2ORA+3rPromise.all の事?
0026デフォルトの名無しさん (ワッチョイ 17c9-wh/5)
2016/09/01(木) 19:14:13.95ID:yAfRysov0allじゃない。 thenの方。
0027デフォルトの名無しさん (ワッチョイ efce-wh/5)
2016/09/01(木) 20:03:48.39ID:EP8ZkXWM0PromiseはECMAScriptの範囲なので
+ JavaScript(ECMAScript)質問用スレッド vol.122 + [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/tech/1472401404/
こっちのほうがふさわしい。
var f=function (a){
var y=a.shift();
if(y) y().then(function(){f(a)})
}
で全部いけるんでないの?
0029デフォルトの名無しさん (アウアウ Sacf-vSVO)
2016/09/01(木) 22:40:36.60ID:ZxoQ7kpta処理の連続性は保証されるはずだが、Promise.all では要件を満たせないのだな?
並列処理がNGなら下記URLを参考に
http://azu.github.io/promises-book/#promise-sequence
0030デフォルトの名無しさん (ワッチョイ f3ce-wh/5)
2016/09/01(木) 22:41:37.26ID:scPPFiSF0こっちに答えがあったよ。
http://echo.2ch.net/test/read.cgi/tech/1472401404/130
0031デフォルトの名無しさん (ワッチョイ eb5b-wh/5)
2016/09/01(木) 22:59:22.58ID:+SVnGf+J0前から思ってるんだけど、何でお前らそんな奇妙なコードを書くの?
そういう可変長ループはwhileが鉄板で、>>24はそれを知らないだけだろ?
関数型()でインミュータブル()なら、shift使っちゃ駄目だと思うし。(俺は詳しくないが)
そのコード自体は自前Promiseとしてarrayを持ち、途中で挿入も出来るから、
そういった用途には面白いと思うよ。
ただ、普通は>>24に対してそれはない。
というか、お前らどこで習った?或いは誰を参考にしてそのコードを書いてる?
>>24
while使って書いてみ?
正直、書くのは手間ではないのだけど、コードクレクレ君が集まるのはウザイから、
今回の質問レベルならコピペで動くコードを書く気はない。
ただ、十分なヒントだと思うから、クレクレ君でなければ書けると思うが。
while使って書くって、プロミスなのに?
順序が保証できるのならそれで良いとは思うけど。
別に、shiftでも、carとcdrに相当するものでも良いよ。
どこも奇妙じゃないと思うけど。
0033デフォルトの名無しさん (ワッチョイ eb5b-wh/5)
2016/09/01(木) 23:29:32.66ID:+SVnGf+J0いや俺はPromise使ったことがないからその辺詳しくはないが、
>>24なら見た目普通に書けそうだが駄目なのか?
そもそも>>24が駄目(動かないコード)なのか?そうだったら済まんかった。
やはりcarとcdrか。
つかcar/cdrで抽象化している関数型みたいな奴って、一般的にarrayを破壊的に使うものなのか?
(lispなら最近の大富豪プログラミング以前だからそうなのかもしれんが、
多分最近の関数型なら嫌われるのでは?)
0034デフォルトの名無しさん (ワッチョイ f3ce-wh/5)
2016/09/01(木) 23:31:41.25ID:scPPFiSF0◆SEdFBOkLSw は技術レベル低いくせに
口ばっかりうるさいやつですから・・・
これまでも何度となく、意味不明なこと言ってるよw
0035デフォルトの名無しさん (ワッチョイ eb5b-wh/5)
2016/09/01(木) 23:46:42.27ID:+SVnGf+J0見た目、functionで入れ子になるのが嫌で、タマネギ型オブジェクトにしてみただけだろ?
まあ、俺は使ったことがないから、壮絶な勘違いをしているかもしれんが。
ちなみに>>30は「タマネギ型」であることを説明しているわけだが、
それは>>24見る限り本人は分かってると思うんだよ。
そうではなくて、「n個にしたい」って言ってるんだから、そこを答えないと意味無いだろ。
なんつーか、Promise知ってる俺カッケーな答えでしかないんだよ。>>30は。
0036デフォルトの名無しさん (ワッチョイ f3ce-wh/5)
2016/09/01(木) 23:52:20.69ID:scPPFiSF0i < n にすればいいだけじゃんw
0037デフォルトの名無しさん (ワッチョイ eb5b-wh/5)
2016/09/01(木) 23:57:35.19ID:+SVnGf+J0というか、これを書けないレベルの人がPromiseの使用を強制されられるところが
若干JavaScriptは歪んでる。まあこれも前から思っていることだが。
0038デフォルトの名無しさん (ワッチョイ f3ce-wh/5)
2016/09/02(金) 00:00:22.58ID:gFIXdWf60http://echo.2ch.net/test/read.cgi/tech/1472401404/130
お前だけが分かってない。
まぁ、破壊されたものを次に渡してるし、参照型で渡ってるから気持ち悪いだけで、破壊せずに渡してもいいと思うよ。
多分嫌われるw
>>34
本質理解してないお前よりマシだけどな。
なんだあのセンス無いやつ。
>>35
thenの中はコールバック関数で遅延評価だから、whileだと終わったかどうかわかんないと思うけど、どんなソース想定してる?
0040デフォルトの名無しさん (ワッチョイ eb5b-wh/5)
2016/09/02(金) 00:40:54.92ID:oKN/Shh+0いやPromiseで書くのはあくまで処理の事前予約だよな?
そこは変更不能だし、同期的に確定する。
もちろん中身の関数は実際には後に呼ばれるけど、
一般的にそれを「遅延評価」とは表現しない。
俺の想定しているコードなら、>>30をwhileに変えただけに近い。
とりあえず君の言い分が正しいのなら、>>30は間違いだということになるが、そうか?
あー、そういう事か。いや、間違ってない。面目ないな。
入れ替えると言うか、それごと変えるという事か。
それは再帰とどっちが良いのかは目的次第かもしれん。
俺は残り回数渡して再帰すると思うわ。setTimeoutで包んで。
0042デフォルトの名無しさん (ワッチョイ eb5b-wh/5)
2016/09/02(金) 01:23:27.78ID:oKN/Shh+0>>23が「動的に」って言っているからそこは微妙なのだけど、
まあ初心者にそこまで厳密に言っても仕方ないからね。
多分あの質問なら単純に「可変長ループ」が分からないのだと思った。
それはさておき、>>28のコードは面白いとは思うが、
>>28を読める奴がこの質問はないだろってこと。
Promiseなら突っ込んだ時点でそこまでの処理は確定だが、
>>28なら途中の関数内で処理を変更出来る。
これを「動的に」と表現するのは自然ではあるが、
これを記述しようとする奴が>>24の質問はない。(と見た)
0043デフォルトの名無しさん (ワッチョイ f3ce-wh/5)
2016/09/02(金) 01:52:27.16ID:gFIXdWf60またなぁw 余計な一言。
なんでsetTimeoutを含まなきゃならんのか。
これも何も分かってない証拠よ。
理屈はわからないけど、これやったら動いた!
正しい理解をせずに長年やったやつの末路だなw
0044デフォルトの名無しさん (ワッチョイ eb5b-wh/5)
2016/09/02(金) 02:32:24.71ID:oKN/Shh+0ただし俺はC派だからそういう余計な処理は出来るだけ入れたくなくて、
俺は実際にはほぼ直接呼び出しにしているが、その分気を使わなければならなくなる。
そういう面倒なことは無しにしようってのが昨今のプログラミングスタイルだろ。
つーか、お前も若いんだと思うが、噛み付きまくるのはやめい。
setTimeoutで包むかどうかは上位のコーディングポリシーの話だから、
「常に」どっちがいいとかいうことはないし、ここで白黒つけられることでもないよ。
むしろそこに噛み付いた時点で無知だと晒しているようなもん。
まあそれでも「技術的に」やり合うのならどうぞご自由にだが。
0045デフォルトの名無しさん (ワッチョイ 3fa7-wh/5)
2016/09/02(金) 03:01:31.89ID:L3z5oHD70やり合うんだったら>>27の隔離スレでやってくれ
よく理解して実装してるにきまってるでしょ。
自分の経験書かないでよ。
0047デフォルトの名無しさん (オッペケ Sr8f-RETc)
2016/09/02(金) 08:28:05.43ID:ZAub+DJjrいや、setTimeoutは不要でしょ
遅延処理をするわけでもないのになぜ使う必要があるのさ?
生粋のネイティブなPromiseなら、非同期になることは保証されてるけど、
どんなPromiseっぽいものかわからん現状安全側に倒すよ。
次の処理始める、ではなくて、
今もし、今回の呼び出しでキュー溜まってるならそれ終わらしてからやりたいし、
コールスタックも深くなるじゃん。
0049デフォルトの名無しさん (オッペケ Sr8f-RETc)
2016/09/02(金) 08:45:09.66ID:ZAub+DJjr非同期の逐次処理で重要なのはコールバックでしょ
非同期処理が完了したことを確認するにはコールバックするしかない
seTimeoutはコールバックを楽に実装する機能がないわけで何の役にも立ってない
0050デフォルトの名無しさん (ワッチョイ efa5-w0F2)
2016/09/02(金) 11:47:53.06ID:RZSd/NSC0textareaの入力から複数行、行頭スペース・連続スペースを含む文字列を取得したいのですがJS側で何とかすることはできませんか?
0051デフォルトの名無しさん (ワッチョイ 739d-Es5g)
2016/09/02(金) 11:52:59.18ID:d9/aWFQj0できるよ
thenの中の話だが。
promiseのそれっぽいポリフィルだと、即時に関数呼び出しするから、
promiseの中でsetTimeoutしてた場合、そいつらが走る前に、次のPromiseが走るよね。
そうじゃなくて、キューイングすることで、もし何かが実行されていてもその後に実行されるじゃん。
あと、コールバックが書けない、は一番ナンセンスじゃない?
配列の最後のPromiseが、「コールバックを呼び出す」ってPromiseであれば良い。
>>50
それぞれ取りたい感じ?
valueで全体は取れるけど、あとは正規表現でマッチした部分使えば良いんじゃないかな。
0053デフォルトの名無しさん (ワッチョイ efa5-w0F2)
2016/09/02(金) 12:59:55.23ID:RZSd/NSC0お騒がせしました……
0054デフォルトの名無しさん (オッペケ Sr8f-RETc)
2016/09/02(金) 15:53:26.83ID:XGUTMOjhr君はPromiseとsetTimeputを激しく誤解している気がしてならない
> promiseの中でsetTimeoutしてた場合、そいつらが走る前に、次のPromiseが走るよね。
そんなことはない
そもそも、非同期処理を上手く活用することを目的としているPromiseにそれが出来ないわけがないだろう
やり方は既出だが、ちゃんと理解してないのではないか?
> そうじゃなくて、キューイングすることで、もし何かが実行されていてもその後に実行されるじゃん。
君の言葉を借りるなら非同期処理に対してsetTimeputを適用したらsetTimeputの数だけキューが増えると思うんだが
setTimeputは同期処理を非同期処理にするのに有効だが、非同期処理にsetTimeputを使っても遅延処理以上の結果は得られない
> あと、コールバックが書けない、は一番ナンセンスじゃない?
「コールバックが書けない」とは誰もいってない
だからそれっぽいポリフィルだって言ってんじゃん。
日本語読めないならもう書かんほうが良いよ。
キューが増えていいんだよ。
promiseの中でsetTimeout(..,0)された物を先に動かしたいだけだから。
お前実装見ずに概念で話してない?
0056デフォルトの名無しさん (オッペケ Sr8f-RETc)
2016/09/02(金) 18:24:53.65ID:Z6ER1HHhrそれはPolyfillがおかしいだけだろ
おかしなPolyfillを基準にされてま困る
setTimeoutは役に立たんという意見もスルーするし、お前の方こそ日本語を読め
あ、うん。
最初からそう言ってんじゃん。
まぁ、thenを持ったオブジェクトさえ返せば別にPromiseで無くともその辺誤魔化しつつ走ってくれる便利なやつなんだけどね。書いた関数。
なんでsetTimeoutするかの理解出来てないんだったら、同じようにcatch書いたときにどう例外オブジェクト飛んでくるか見たら?
catchで、setTimeoutしてthrowし直すとか割と普通っしょ。
コールスタックって言ったのになぁ。
0058デフォルトの名無しさん (ワッチョイ 739d-Es5g)
2016/09/02(金) 18:36:22.17ID:YHEl/7lL00059デフォルトの名無しさん (オッペケ Sr8f-RETc)
2016/09/02(金) 18:40:34.64ID:Z6ER1HHhrPromiseが理解できていればsetTimeoutが不要なことがわかるはずなんだがな
「それっぽいPolyfill」とやらも具体例が皆無
必要なら完璧なzPolyfillを探すなり、自分でPolyfillを書くなりやれと
お前さんのPolyfillらしきものがsetTimeoutなのかもしれんが、無駄が多すぎだろ
ちゃんと処理が出来るならなんでも良いよ。
俺は嫌いだからeventEmittet的なものでイベント起こす。
イベントのリスナが一つとも限らんし、発火させるやつが一つとも限らんし。
そのイベントがリエントラントでさえあれば良い。
0062デフォルトの名無しさん (オッペケ Sr8f-RETc)
2016/09/02(金) 18:44:14.81ID:Z6ER1HHhrPromiseがなくてももちろん実装できる
Promiseの利点は統一されたインターフェースで非同期処理を管理できること
自分なりのコード資産があるのならPromiseを使わなくてもいい
が、他人に読ませるならPromise一択だな
0063デフォルトの名無しさん (オッペケ Sr8f-RETc)
2016/09/02(金) 18:51:50.44ID:Z6ER1HHhr>>48のどこに「ポリフィルっぽいもの」の具体例がある?
余所様のPolyfillが使用できないなら自分で書けばいいのにな
error,resultほうが余程そして統一されてるんでは?
逆じゃん。
生粋のものであれば、の方でPromiseの定義してるでしょ。
もちろん使うなら内製はするだろうけど、基本的にはポリフィル自体を使わんよ。
0066デフォルトの名無しさん (ワッチョイ eb5b-wh/5)
2016/09/02(金) 21:24:55.46ID:oKN/Shh+0自分では使わないが、
意識高い系APIが返してくる場合はどうしようもないだろ。
0067デフォルトの名無しさん (ワッチョイ f3ce-wh/5)
2016/09/02(金) 22:29:55.63ID:gFIXdWf60中身が違うだろ?w
0068デフォルトの名無しさん (オッペケ Sr8f-vSVO)
2016/09/03(土) 07:07:29.63ID:z0le1ilUr> 生粋のものであれば、の方でPromiseの定義してるでしょ。
そんなことは聞いてない
> promiseの中でsetTimeoutしてた場合、そいつらが走る前に、次のPromiseが走るよね。
こんなおかしなPolyfillがあるならそのPolyfillをDL出来るURLを出せ、って事だ
正直、そんなPolyfillがあるなら「Promise」と呼ぶのもおこがましいレベルだが、
実際のところは君が書いているPromiseのコードがおかしいだけでPolyfillに罪はないと思ってるよ
どうせsetTimeoutをPromise化してないんだろ?
0069デフォルトの名無しさん (ワッチョイ a3a1-10NS)
2016/09/03(土) 08:12:05.87ID:I7zaPf2I0promiseの仕事じゃない気がするんだが
どんなコードを前提にしてるのかさっぱり分からん
0070デフォルトの名無しさん (オッペケ Sr8f-RETc)
2016/09/03(土) 08:26:26.61ID:Y2U/H6HXr0071デフォルトの名無しさん (ワッチョイ e33c-10NS)
2016/09/03(土) 09:05:52.38ID:KrSHBF2N0Promiseの中でsetTimeoutした場合に、その先まで面倒見るかどうかは使う側の問題なのでどちらとも言えない
Promise自身は内部で何をしているかに関わらず、resolveまたはrejectが呼ばれるまで次の処理に進まずに待つだけだ
setTimeoutの処理を待ちたいならsetTimeoutの中でresolveを呼べばいいし、待たないならsetTimeoutの外でresolveを呼べばいい
Promiseなんてちょっと賢いコールバックの仕組みでしかなく、正しく使えるかどうかは使う側の問題
まあそのちょっと賢いに慣れてしまうとわざわざ他を使おうなんて思えなくなるぐらい便利なんだがw
0072デフォルトの名無しさん (ワッチョイ a3a1-RETc)
2016/09/03(土) 09:15:44.52ID:I7zaPf2I0ありがとう
setTimeoutの中でresolveを呼んでる場合
引数を受け取らずに次が走るって状況が想像付かんのだわ
0073デフォルトの名無しさん (ワッチョイ f77b-RETc)
2016/09/03(土) 09:29:11.12ID:e3VOV86p0Promiseで実行指定した処理群内部では
タイマー関連を使えないのでしょうか?
これが使えないならば、WebWorkerでも極力使わない方が良い様に思います。
それでよいと盲信して使っているが故にこうなる見本じゃん。
0075デフォルトの名無しさん (オッペケ Sr8f-RETc)
2016/09/03(土) 13:55:25.79ID:40V3o/40r鏡
おまえに必要なもんだな。
0077デフォルトの名無しさん (ワッチョイ 0bce-wh/5)
2016/09/03(土) 14:22:41.73ID:EZVA2rF200078デフォルトの名無しさん (オッペケ Sr8f-RETc)
2016/09/03(土) 18:29:27.52ID:fDA8i4Yzr0079デフォルトの名無しさん (オッペケ Sr8f-RETc)
2016/09/03(土) 18:49:19.66ID:fDA8i4Yzr> うん、得体のしれないポリフィル、に対して言ってた。
> 読めば良いだけ、なら、そんな工数無駄なので、作れば良いだけ。
この人(◆SEdFBOkLSw )、他作製コードは全く使わんつもりなのかな
このポリシーではライブラリ系が全く使えん
それとも、jQueryやらReactやらは盲目的に信頼するタイプなのか
信頼の多寡をはかる指標の問題だろうが
0080デフォルトの名無しさん (ワッチョイ 0bce-wh/5)
2016/09/03(土) 18:51:02.59ID:EZVA2rF20ブラウザはソースコードを全部読んで
ライブラリは全部自分で作るらしい。
コストは全部客持ちだから何も痛くないだってさw
0081デフォルトの名無しさん (オッペケ Sr8f-RETc)
2016/09/03(土) 19:42:03.71ID:fDA8i4Yzr> ブラウザはソースコードを全部読んで
> ライブラリは全部自分で作るらしい。
わざわざブラウザのソースコードを読む理由が分からんのだが、実装依存な挙動を確認する目的?
実装依存に頼るコードは様々な対策をやりきってどうしようもないときぐらいしか出番がないわけで
定常的にはWHTWG HTMLやECMA262を読む方に時間をかけると思う
(まあ、その辺の仕様書を読まないからわざわざソースコードを読みにいっているのかもしれないが)
0082デフォルトの名無しさん (ワッチョイ 0bce-wh/5)
2016/09/03(土) 19:47:33.04ID:EZVA2rF20> わざわざブラウザのソースコードを読む理由が分からんのだが、実装依存な挙動を確認する目的?
◆SE曰く。全く同じ動作をしていて同じコードが動いてテストコードを使ってテストしていても
中身が違えば、ブラウザごとに違うテストが必要になるって思ってるらしいよw
挙動じゃなくて中身のコードが同じかどうかで考えてる。
だからES6という言語で書いたソースコードをそのまま動かす(テストにも通る)のと
babelを使ってES5にして動かす(もちろんこちらもテストに通る)のとで
動きが全く一緒だけど、それはbabel用の言語(?)だって言い張ってるw
全くじゃないけど、基本的には使わんなぁ。
jQueryは検証しまくったし、パッチもだいぶ出したから使うけど、それでも割と古い。
Reactは使わんねぇ。個人的にはRiotが使いたいけど。
似たようなのはあるが、仮想DOMでは無いんだよなぁ。
>>81
どっちも読んでるよ。
ブラウザ見るときは、例外として何という文言で飛んできてくるか、とか。
ログに落としてたりするから。
FireFoxはmessageにスタックトレース飛んでこないしね。
例外が起こる、とだけテストしても無意味だし。
0084デフォルトの名無しさん (オッペケ Sr8f-vSVO)
2016/09/03(土) 20:46:37.83ID:fDA8i4Yzr仕様書を読めるならPolyfillを書けばいいのになぜ書かないんだ?
いつまでも古いES用のコードにしがみつく理由が分からん
そのやり方なら動作保証している最も古いブラウザに合わせたコードしか書けないだろうに
setTimeoutを使ったコード例が欲しいな(setTimeoutはPromiseの代替にはならないと思ってる)
0085デフォルトの名無しさん (ワッチョイ 0bce-wh/5)
2016/09/03(土) 20:55:50.71ID:EZVA2rF20当たり前。
Promiseは終わったと言うイベントを通知するだけ。
setTimeoutでいえば、setTimeout(function() {・・・}, 1000)の
「function() {・・・}」この部分の代替。
別スレッドでn秒待つとかいうことはできない。
しがみついてるわけではなくて、要件定義で絞れるならネイティブにそう書くよ。
ポリフィル使う意味もあんまないと思うわ。
それなら、ライブラリ作ったほうが余程建設的だと思う。
ライブラリ自体の実装を、どれ用、で分ける事はあるだろうけど、面は同じにしとくよ。
0087デフォルトの名無しさん (オッペケ Sr8f-RETc)
2016/09/04(日) 12:32:50.46ID:chJ34NF3r例えば、ES3、IE8対応の自作ライブラリを永続的に使うとしよう
ライブラリ依存から抜け出さないし、ES7→ES8と機能が増えていく度にES5,6,7,8を全て自作ライブラリで担当するのでライブラリの負担は増えていく
社内チームで作っていくなら自作ライブラリを更新する度に制作したあなた以外の人に教えるコストがかかる
ドキュメントも作る必要があるだろうし、後に入社する新人は膨大な自作ライブラリを覚えなければならない
あなたのスタンスは自分一人で作って自分一人で保守している感覚なんだよな…
で、setTimeoutのコードはスルーするんだな
0088デフォルトの名無しさん (オッペケ Sr8f-RETc)
2016/09/04(日) 12:39:09.43ID:chJ34NF3r前半3行は意味が分からんのだが、「中身」とは何を指してるんだ?
> 動きが全く一緒だけど、それはbabel用の言語(?)だって言い張ってるw
Babelは可能な限りES6に似せてトランスコンパイルするが、同じではないと思うぞ
Polyfill可能な機能は大部分を同じに出来るが、構文が異なる機能を完全に同じにするのは難しい
トランスコンパイルされたコードを想定して書くのはおかしなことではないかと
0089デフォルトの名無しさん (オッペケ Sr8f-RETc)
2016/09/04(日) 12:46:48.41ID:chJ34NF3r俺に何を説明したいのかよくわからんが、>>84で書いたようにsetTimeoutがPromiseの代替にならないのは理解している
Promiseはコールバックで非同期処理完了を検知するわけだが、Promiseを使わなくともコールバックで完了を検知するしかない
だから、自作ライブラリで実装するならコールバックを管理する形になるはずでそこにsetTimeoutの出番はない
少なくとも、発端となった>>23-24にsetTimeoutを勧める理由はないはずだ
0090デフォルトの名無しさん (ワッチョイ efce-wh/5)
2016/09/04(日) 13:03:47.49ID:EwnjeGwb0> Babelは可能な限りES6に似せてトランスコンパイルするが、同じではないと思うぞ
同じものと、不完全なものの二通りある。
ポリフィル用語では前者はshim、後者はshamと呼ばれているものだよ。
> 構文が異なる機能を完全に同じにするのは難しい
babelは構文を置き換えるのだから、構文の違いはまったく関係ない。
完全に同じにできない理由は、JavaScriptの内部の機能に依存するから。
同じゃない部分っていうのは動きが違うわけじゃなくて一部が実装されてない(できない)
だから動く部分に関しては完全に同じだよ。
> トランスコンパイルされたコードを想定して書くのはおかしなことではないかと
想定する内容は「一部の機能を使わない」ようにするということだけ。
でもこれって難しい?
だってそもそもブラウザだってES6のすべての機能をサポートしているわけじゃない。
babelを使わなかったとしてもお、普段からブラウザで動くJavaScriptコードを書いている人がやってることだよ。
このブラウザでは使える機能だっけ?って調べながらコード書いている。
トランスパイルできないコードを想定して書くのも
ブラウザが対応してないコードを想定して書くのも大きな違いはない。
むしろ多種多様なブラウザを想定するよりもbabelがブラウザの違いを吸収して
ブラウザ間の違いを減らしてくれる方が「想定する必要」が減って楽でしょ?
0091デフォルトの名無しさん (ワッチョイ efce-wh/5)
2016/09/04(日) 13:19:14.13ID:EwnjeGwb0ここは完全に間違ってるから訂正w
babelはES6に対応していないブラウザで実行できるように、
ES6のコードを可能な限りES5のコードに変換するもの
他の言語からES6やES5のコードに変換するわけじゃない。
前半はわりとそうかな。
アーキとしてチームで作るし、教育もドキュメンテーションもするし、規約もQAも書くよ。
一人じゃ無いよ(笑)どんな会社だよそれ。。
setTimeout解決してない?なんか誤読してるのかもしれないし、何がひっかかってるの?
>>89
うん、そういう意図では使わんのだが。本来のコードに勧めてるわけでもない。
何故二人が、あってもいいって発想で、お前だけ絶対に無しだって発想なのか、どこが差なんだろ。
関係あるんじゃ?構文の違い。
確か、いくつかが言語仕様上変換しようがないから、
意味合いの変わるコードになるよ、一般解においては結果は同じだけど、とテヘペロしてたような。
またリポジトリ見てくるか。
0094デフォルトの名無しさん (ワッチョイ efce-wh/5)
2016/09/04(日) 13:58:20.34ID:EwnjeGwb0質問していい?
babelで変換したコードはリポジトリに入れたり
変換したコードは必要ない限り見たりテキストエディタで
修正したりしないんだけどそれはわかってる?
0095デフォルトの名無しさん (ワッチョイ 13ce-wh/5)
2016/09/04(日) 14:27:30.61ID:+uXpWhFu0Promiseっていうのはthenでつなげるためには
Promiseオブジェクトを返さなきゃいけないと思ってるのかもしれないけど、
Promise.resolve(1)
.then(i => Promise.resolve(i+1))
.then(i => Promise.resolve(i+1))
.then(i => Promise.resolve(i+1))
.then(i => console.log(i))
こういう書き方も問題ないんだよ。
Promise.resolve(10)
.then(i => i+10)
.then(i => i+10)
.then(i => i+10)
.then(i => console.log(i))
setTimeoutはそれを入れる明確な理由があるのであれば
(「念のため」は明確な理由ではない)入れるべきだが、
理由がない場合は入れない。単なる無駄な処理。
あんたがディスられてるのは、理由をいわずに
setTimeoutを持ち出してきたから。
うん、同じコンパイラが確保できること、納品としてbabelかけたあとのものを納品しない、が前提であれば、わかってるけどそれがなにか?
>>95
知ってるよ。
中で、一連のJSが走り終わってから走ってほしいという意図で、setTimeoutやら、setImmediateを使われていたら、
こちらはその意図に合わせて、非同期に呼んだらないとね、って話で、だからこそレベル低いポリフィル引き合いに出して、ネイティブなら、って言ったんだけど。
0098デフォルトの名無しさん (ワッチョイ 13ce-wh/5)
2016/09/04(日) 14:51:13.06ID:+uXpWhFu0> 中で、一連のJSが走り終わってから走ってほしいという意図で、setTimeoutやら、setImmediateを使われていたら、
そんな話全くしてないよね?
何先走ってるのさw
0099デフォルトの名無しさん (ワッチョイ 13ce-wh/5)
2016/09/04(日) 15:01:04.48ID:+uXpWhFu0まずPromiseを使うときって言うのは、通常は非同期処理を行うAPIを使う時、
同期処理であればそもそもPromiseを使う必要が無い。
非同期処理を行うAPIを使うならば、非同期処理のAPIがsetTimeoutと
同じ効果をもたらすのでsetTimeoutを使うまでもなく一連のJSが
走り終わってから実行になる。
つまりsetTimeoutを使う必要があるのは、
「Promiseを返す関数の中で非同期APIを使ってない場合」に
限られるということ。
何も考えずに付け加えれば万事OKみたいに扱うものじゃない。
>>48でも、もし、キューが溜まってるならって言ってるし、
>>52では同じこと言ってるんだけど、
憎さのあまり読んでなかったのかな。もしくは「キュー」が何のキューなのか理解できてなかったのか。
付け加えてもなく、最初から俺はそうってるし、
「使っていない」なんて元にはないんだから、
「安全側」って言葉が出てくんだけど。
0101デフォルトの名無しさん (ワッチョイ 13ce-wh/5)
2016/09/04(日) 15:15:16.15ID:+uXpWhFu0理由を明確に示していない「安全側」というのは
とりあえずこうしておけばうまくいくんじゃね程度の
浅い考えでしかない。
0102デフォルトの名無しさん (ワッチョイ 13ce-wh/5)
2016/09/04(日) 15:37:31.30ID:+uXpWhFu0やっと思いついた。
var p = Promise.resolve(1);
setTimeout(function() {
// 1秒も待っているので、pは確実にresolveされたPromise
console.log('start')
p.then(i => console.log(i))
console.log('end')
}, 1000);
この場合、start -> end -> 1 の順で表示される。
ChromeとFirefoxと有名なポリフィルのBlueBirdで確認した。
ここからわかるのはthenを使って呼び出されるのは必ず非同期になるということ。
つまりPromiseを作る段階でsetTimeoutが不要であるということを意味する。
世の中にはPromiseの仕様通りに動かないバグが有るブラウザやポリフィルが
存在するかもしれないが、そんなものに対応するのは「安全側」とはいわない。
問題が確実にあると分かってる場合にだけ問題に対処せよ。
もしかしたら世の中の何処かにバグが有るのでは?という可能性に対応するのであれば
for文にすらバグがあるかもしれないって話になるだろw
そうじゃない、何故1秒も待つのに使うものと、setImmediateと比べんのかわからん。
DOM弄って0待つ(DOM構築待ち)とか、そういうのじゃん。
getElementById("hoge").innerText=xxxxxx
setTimeout(function(){
//hogeの大きさ見たりする処理
},0)
みたいなやつ。
>>102
thenを使ったら必ず非同期になる、なんて言語仕様に書いてあるのにそういう検証してなんの意味があんのかわからん。
>>102
問題があるとわかってから対処はその通りだね。
ただ誰のどんな環境かわからん質問への返答としては、安全側としか言いよう無くない?
0104デフォルトの名無しさん (ワッチョイ 13ce-wh/5)
2016/09/04(日) 17:19:13.61ID:+uXpWhFu0だからsetTimeoutはいらないだろ?
0105デフォルトの名無しさん (ワッチョイ 13ce-wh/5)
2016/09/04(日) 17:22:39.50ID:+uXpWhFu0> //hogeの大きさ見たりする処理
> },0)
> みたいなやつ。
お前が俺が書いたコードの意図がわかってないだけ。
> ただ誰のどんな環境かわからん質問への返答としては、安全側としか言いよう無くない?
誰のどんな環境が分からないというならIE6の可能性もあるが?
なんで誰のどんな環境変わらんと言っておきながら
「Promiseが使えるが仕様通りでなく、その仕様通りでないというのは、
Promiseのthenが同期的に動くと言うバグがあること」という
自分の都合のいい環境に限定してるんだって話なんだが?
どんな環境かわからないなら、仕様通りの環境を前提にするべきだろ。
0106デフォルトの名無しさん (ワッチョイ 13ce-wh/5)
2016/09/04(日) 17:26:00.82ID:+uXpWhFu0仕様通りに動くBluebirdを使えば、
すべてのブラウザで同じ挙動になるわけさ。
仕様外のブラウザがあることを懸念するならば、
素直にポリフィルを使ったほうが良い。
0107デフォルトの名無しさん (ワッチョイ a3a1-10NS)
2016/09/04(日) 18:48:47.88ID:yHJJ2SAO0奇策使ってまで残す理由が分からん
0109デフォルトの名無しさん (ワッチョイ 13ce-wh/5)
2016/09/04(日) 19:01:07.31ID:+uXpWhFu00110デフォルトの名無しさん (ワッチョイ eb5b-wh/5)
2016/09/04(日) 19:21:57.04ID:AXUinR+60Promise使わないと死んじゃう病気なんだろ。
典型的な「手段と目的の混同」でしかないけど、割とどこの界隈でもいると思うが。
0111デフォルトの名無しさん (ワッチョイ 13ce-wh/5)
2016/09/04(日) 20:30:52.48ID:+uXpWhFu0これは「コールバック"地獄"」と書いてあるところから
ジョークと受け取って欲しいってことだと思ったがw
いや君が分かってやってるのなら良いんだけどさ。
0112デフォルトの名無しさん (ワッチョイ e33c-FA7T)
2016/09/04(日) 20:57:57.38ID:me3Bqu020下のclass="a"のDIVを下のtitle内に入れたいのですが
Jqueryでどのように書けばよいでしょうか?
どなたか教えて下さい
<div>
<div class="title"></div>
<div>
<div class="a">111</div>
</div>
</div>
<div>
<div class="title"></div>
<div>
<div class="a">222</div>
</div>
</div>
0113デフォルトの名無しさん (ワッチョイ 13ce-dyuG)
2016/09/04(日) 21:19:32.90ID:XuW4/w2e0return $(this).next().find('.a');
})
0114デフォルトの名無しさん (ワッチョイ e33c-10NS)
2016/09/04(日) 21:47:50.25ID:me3Bqu020ありがとうございました!
0115デフォルトの名無しさん (ワッチョイ 13ce-wh/5)
2016/09/04(日) 21:48:56.32ID:m9ZxPHXs0+ JavaScript & jQuery 質問用スレッド vol.6 + [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/hp/1465566635/
0116デフォルトの名無しさん (ワッチョイ 4979-nUk7)
2016/09/12(月) 16:02:19.79ID:QAsPefCB0class名を引数に用いることはできないのでしょうか?
<head>
<script type="text/javascript">
function(hiki){document.querySelector("div.hiki input").value=0;}
</script>
</head>
<body>
<div class="tamago">
<input type="number" value="0">
</div>
<input type="button" value="リセット" onClick="resetbutton(tamago)">
<body>
0117デフォルトの名無しさん (ワッチョイ 4979-nUk7)
2016/09/12(月) 16:04:35.58ID:QAsPefCB0わかりづらいかもしれませんがよろしくお願い致します。
<head>
<script type="text/javascript">
function resetbutton(hiki){document.querySelector("div.hiki input").value=0;}
</script>
</head>
<body>
<div class="tamago">
<input type="number" value="0">
</div>
<input type="button" value="リセット" onClick="resetbutton(tamago)">
<body>
0118デフォルトの名無しさん (ワッチョイ f19d-2kU/)
2016/09/12(月) 16:26:45.66ID:1arG/Lwr0/* hikiは変数 */
document.querySelector("div." + hiki + " input").value=0;
}
/* tamaleはString(文字列) */
<input type="button" value="リセット" onClick="resetbutton('tamale')">
0119デフォルトの名無しさん (ワッチョイ f19d-2kU/)
2016/09/12(月) 16:52:21.69ID:1arG/Lwr00120デフォルトの名無しさん (ワッチョイ 69ce-tq+X)
2016/09/12(月) 21:47:10.72ID:p0km3lhz0+ JavaScript の質問用スレッド vol.130 + [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/hp/1463395557/
0121デフォルトの名無しさん (オッペケ Sr3d-j70e)
2016/09/12(月) 21:55:18.12ID:6fvstpPur厳密にはエスケープ処理が必要
0122デフォルトの名無しさん (ワッチョイ fb5b-tq+X)
2016/09/12(月) 22:26:08.68ID:XojLrMQ90強いて言えばclassではなくIDを使う場面であり、
あるいはjQueryと同様に該当全部に対して実行してくれると勘違いしている可能性があるとは思うが、
質問からするとかなりの初心者が見よう見まねでやっていると思われ、
ここはまず118でよく、生暖かい目で見守るべきだろう。
>>121
ユーザ文字列じゃないのに何を言ってるんだお前は?
てゆうか正解が出ているのに間違いを垂れ流すのは止めろ。
どう見ても自分でどちらが正しいか判断出来るレベルの質問者ではないのだし、
ただの迷惑行為でしかない。
>>117
ということで、まずは>>118ね。
ここでは間違った主張をする奴を止めることは出来ないから、こんな感じになってしまうが。
0123デフォルトの名無しさん (ワッチョイ 69ce-tq+X)
2016/09/12(月) 23:08:27.83ID:ipGCKz/x0そんなことまず指摘するべき所あるだろ。
リセットするならvalue=0はやめろ。
俺が軽く見本みしてやるわ。
https://jsfiddle.net/yf9onpas/
textだけじゃなくcheckboxやselectにも対応したやつな。
つってもtextareaやnumberとかには対応してない手抜きコードだけどな。
0124デフォルトの名無しさん (オッペケ Sr3d-GoLj)
2016/09/12(月) 23:08:33.89ID:6fvstpPur<p class="a.b"> に対して resetbutton('a.b') と指定できる方が汎用性が高いので「厳密には」と前置きしたわけだが、何が間違ってるんだ?
後は、空白文字が指定された時に例外を投げるか、複数のクラストークンを許可する仕組みにするか、というところで設計思想が分かれそうだな
0125デフォルトの名無しさん (ワッチョイ 69ce-tq+X)
2016/09/12(月) 23:11:29.28ID:ipGCKz/x0自分が初心者のくせにさ。
ここはIDでもクラスでもないく、セレクタを扱えるようにすれば良いんだよ。
>>118の"div." + hiki + " input" とかほんと、ダサすぎる。
HTMLの構造が変わったら使えなくなるようなクソコードやめろ。
0126デフォルトの名無しさん (ワッチョイ 69ce-tq+X)
2016/09/12(月) 23:13:02.37ID:ipGCKz/x0jQueryがイヤっていうのなら、そいつがjQuery使わない方法に書き直せな。
0127デフォルトの名無しさん (アウアウ Sa09-GoLj)
2016/09/12(月) 23:15:50.48ID:zX7hrAQza> 自分が初心者のくせにさ。
ID:ipGCKz/x0 も上から目線なので「目くそ鼻くそを笑う」になってる
0128デフォルトの名無しさん (ワッチョイ 69ce-tq+X)
2016/09/12(月) 23:16:12.77ID:ipGCKz/x0おう?文句があるならコードに対して
指摘しろや。
0129デフォルトの名無しさん (アウアウ Sa09-GoLj)
2016/09/12(月) 23:49:33.68ID:zX7hrAQzaそれならお前も「低レベル」や「初心者」と煽ってないでコードだけに言及したら?
当初の質問(>>117)が「セレクタの一部を引数に取るやり方」を質問をしているのだから>>118の回答になるのは自然
「セレクタを渡せ」は一つの解だが、質問(>>117)への回答としては正答ではないだろう
質問は「文字列リテラルの一部に変数を入れるにはどうすればいいですか?」なのだから回答としては
・テンプレートリテラルを使う
・Array#join
・+で文字列と変数を連結する
のいずれかになる
0130デフォルトの名無しさん (ワッチョイ fb5b-tq+X)
2016/09/12(月) 23:51:47.93ID:XojLrMQ90デタラメな回答するのは止めろよマジで。
(JavaScriptにしても日本語にしても)
このスレでは>>121,123みたいな馬鹿は回答しなくていい。
お前らはWeb板の馬鹿スレに行けよマジで。
俺はあっちはスルーすると決めているから、
お前らのトンチンカンな回答にも、俺が物言いを付けることはない。
初心者じゃないつもりのお前らが意識高い系()Web系()の実力を見せつけるのは自由だ。
質問は、リセットボタンを設置する際にターゲットとの関連をclassで付けたいってことだろ?
だったら関連方法にclass使ってない、それ以前に関連方法を説明していない>>123は論外だ。
何の説明にもなってない。
123が書いているのは各input種別のリセット方法だが、そこは質問されていない。
つまり123に足りないのは日本語能力だ。
>>124
そんなクラス名の付け方なんてしないだろ。
ただ正直、お前とは議論が成立しないことは分かるから、これでおしまいな。
お前がどういう環境なのかは知らんが、もうちょっと他人が書いたJSなりHTMLなり見た方がいい。
普通はそんなことを考えなくていいようにクラス名を付ける。ただそれだけだ。
質問者はquerySelectorの引数がString型であることを理解出来ていないんだよ。
だからそれを気づかせる>>118が直接的回答で、それでまずは十分だよ。
一応言っておくが、>>118は俺じゃない。
そして適切に回答出来る奴(118)がいる以上、>>121,123みたいな馬鹿は回答しなくていい。
(俺も121が出てこなければ出てくる気はなかった。だって118でいいから。)
質問者が何に引っかかっていて、どうすれば越えられるのか理解してから回答しろよマジで。
そしてお前らのおかしな問答に質問者を巻き込むな。
0131デフォルトの名無しさん (ワッチョイ 9030-ZwPk)
2016/09/12(月) 23:51:54.31ID:dTaJTDWJ0こう書くと、何がトンチンカンか指摘しろ、ってキレるんだろうけど。
0133デフォルトの名無しさん (オッペケ Sr3d-GoLj)
2016/09/13(火) 00:07:15.40ID:+SCJmNCrr「普通はやらない」が、エスケープシーケンスで指定出来るのだから対応する方が「安全」というだけの話
仕様に厳格であるのが安全面で望ましい
仕様を無視するならいくらでも「(主観的な)普通は」の論理があるけどね
・普通は数値参照や実態参照と被らないから <a href="?a=1&b=2">a=1&b=2</a> と書いても良い
・普通はArray.prototype拡張しないから配列にfor-inを使っても良い
・普通はfor-inが定義順で列挙するから配列にfor-inを使っても良い
しかし、Stringなのは理解出来てないか?
Stringの中に、変数が入ったままなだけであって。
それを気づかせる、ってお前何言ってるか相変わらずわからん奴だな。
0135デフォルトの名無しさん (ワッチョイ 69ce-tq+X)
2016/09/13(火) 02:05:51.44ID:5MhN2/GP00136デフォルトの名無しさん (ワッチョイ fb5b-tq+X)
2016/09/13(火) 03:02:21.17ID:K8VetvZF0そしてbabel君も池沼。
当然池沼同士の会話は成立せず空回り、それがbabel論争だな。
お前らそんなことばかりやってるから全く上達してないんだよ。
あれで何か得たか?或いは何か得るはずだったか?
くだらん争いに精を出すのではなくて、コード書けよマジで。
俺は>>117が初心者であることについて文句を言っているわけではない。
というか117はあれで良いんだよ。誰しも最初は初心者だし、
基本的なことを押さえた後は、動くコードを改変しながら学ぶのが一番早道だ。
もっとも、基本的なことを押さえているのかについては若干疑問ではあるが、
仮に全くの初心者が一回本を読んだら丁度あの程度だし、とりあえず不問だ。
ここら辺は118も気づいていて、卵に''付けてるだろ。
質問者は「文字列リテラル」を認識出来ていない。
(SEは池沼だからこれに気づけない。だから会話が成立しない。)
118はたまれ?とかよく分からん改変をしているが、
これは多分日本語であることに気づいていないから。
どうせなら「ひよこ」とかのほうが気が利いてた。(それともgo->leって何か頓知の効いたギャグ?)
まあ俺は「卵は匹じゃなくて個!」と言いたいところだが。(匹じゃなくて引?)
それ以外にも奇妙な点は色々あり、コードを見る限りかなりの初心者が書いたコードだと分かる。
ただ繰り返すが、それでいいんだよ。そこから始めればいい。
そしてこれが分からないbabelとSEは両方とも池沼で初心者レベルってことだよ。
つかおまえらECMAスレで罵りあってろよマジで。
そしてこの池沼共は俺が何言っているのか分からんと喚くに100ペリカ。
まあ池沼がコテ付けてくれることは歓迎だよ。無視すればいいだけだから。
ではさようならSE。お前も今後は無視対象だ。
てか、どっちかというと俺がもう2chでは有効情報を得られないと見切りを付けつつあり、
そういった意味では俺が出て行くから、いいとこ知っていたら教えてくれないかな?
0137デフォルトの名無しさん (アウアウ Sa09-GoLj)
2016/09/13(火) 09:26:53.16ID:2dH5xCXza長文を書き連ねる時間があるなら内容に言及している人に返答を返せばいいのに
出ていくというなら二度と来なくていいから
回答としては>>129
>>123は内容が的外れ(文字列リテラルに言及せず、明後日の方向にコードを書いてる)
>>121,124,133は「クラストークンを渡す仕様ならエスケープしろ」という仕様原理主義者らしい考えで間違いではない
0138デフォルトの名無しさん (ワッチョイ 7220-tq+X)
2016/09/13(火) 09:42:14.23ID:+bEheDn00(自称)初心者ではないやつがクソコードを量産(これはいけない)するのが問題。
初心者はクソコードで満足してしまって、その人のためにならない。
あるべきコードを提示するべき。
初心者が言ってるやりたいことっていうのは、こうすればできるんじゃね?ぐらいの意味で
本当にやりたいことではない。
0139デフォルトの名無しさん (ワッチョイ f19d-2kU/)
2016/09/13(火) 09:52:58.43ID:CCv9tLlM0>>117の場合、わからないところを問いただしている「質問」
質問(要求)に答えることが「回答」
「回答」と「問答」を認識し、区別すべし
babel君でも誰でも良いが。
>>138
後半に同意。
テーブルのあるセルを非表示にして詰めたら、一行のセル数が足りなくなる。
その時次の行のセルを上に持ってきて詰めて表示できないか?
の回答は「出来ない」でしかないけど、
「そもそもそれ表じゃ無いよね。並んでるだけなんだから、並べるだけで良いんじゃないの?」って答えはあるべきだと思う。
0141デフォルトの名無しさん (ワッチョイ f19d-2kU/)
2016/09/13(火) 12:33:33.52ID:CCv9tLlM0忙しそうですね?w
0142デフォルトの名無しさん (アウアウ Sa09-GoLj)
2016/09/13(火) 15:18:02.53ID:2dH5xCXzahttps://jsfiddle.net/4zn5eszn/
部分的にリセットしたいなら無理だが、それにしても同一form要素上に存在すれば form.elements[name] で参照できて便利
え?普通に昼休みだったけど。
基本あんまり忙しくは無いけどなんなの?
0144デフォルトの名無しさん (ワッチョイ f19d-2kU/)
2016/09/13(火) 18:56:34.25ID:CCv9tLlM0誤爆ねw
0145デフォルトの名無しさん (ワッチョイ 4979-nUk7)
2016/09/13(火) 19:55:49.03ID:E/claygU0>>118さんのやり方で出来ました!
有難うございます。助かりました。
'tamale'の部分"tamale"だとだめなんですね。'と"は今まで同じに使えると思っていました。
他のアドバイス下さったみなさんもありがとうございます。
0146デフォルトの名無しさん (ワッチョイ fb5b-tq+X)
2016/09/13(火) 22:07:21.07ID:K8VetvZF0>>108
> ◆SEdFBOkLSw (アウアウ Sa09
> ◆SEdFBOkLSw (スフッ Sd28
> 108 名前: ◆SEdFBOkLSw (スププ Sd5f-RETc)[sage] 投稿日:2016/09/04(日) 18:58:26.34 ID:ysPFxgV5d [7/7]
> 素直に、読んでませんでしたと何故言えんのだろうか。
お前がな。
所詮池沼は池沼同士、babel君とSEでまともな議論が成立しないのもむべなるかな。
というかマジで、煽ってなだめて情報を出させようとするのはウザイしキモイから止めろ。
どうやらゆとり流の戦法らしいが。(他板でも遭遇した)
俺はもうSEには有効情報を出す気はないんだよ。
だからその部分をキチンと避けて書いてる。それに気づいて欲しいね。
babel君も問題児だが、SEも問題児だよ。>>121みたいな意味不明な仕様原理主義者もね。
というか何でお前らがそんなに知ったかぶりして非現実的議論を続けるのかさっぱり分からない。
つかおまえらマジでエセプログラマだよな?コードを書いているとは思えないのだが。
お前らが全員消えればこのスレもずいぶんマシになると思うよ。
0147デフォルトの名無しさん (ワッチョイ fb5b-tq+X)
2016/09/13(火) 22:07:44.79ID:K8VetvZF0それは入れ子には出来ないから。
ただその辺も理解してないのなら、ここで質問するのではなくて、
入門書なり入門サイト(>>7のMDNとか)を読んだ方が早いからそうしろ。
0148デフォルトの名無しさん (アウアウ Sa09-GoLj)
2016/09/13(火) 22:33:06.41ID:2dH5xCXza>>116に関する発言については彼(◆SEdFBOkLSw)は特におかしなことは言ってないんだよな
(ワッチョイ fb5b-tq+X) は「おまえらはわかってない」系の人はいつも他人をこき下ろすだけで実のある話をしない
「煽ってなだめて情報を出させようとするのはウザイ」が実のある話をしない理由なら黙っているのが一番いい
0149デフォルトの名無しさん (ワッチョイ fb5b-tq+X)
2016/09/13(火) 22:49:09.99ID:K8VetvZF0> ◆SEdFBOkLSw (アウアウ Sa09 (>>134)
自演乙。
ここワッチョイありなんだが。
0150デフォルトの名無しさん (アウアウ Sa09-GoLj)
2016/09/13(火) 23:07:05.70ID:2dH5xCXza(アウアウ Sa09-j70e) と (アウアウ Sa09-GoLj) の見分けがつかない人?
0151デフォルトの名無しさん (ワッチョイ 93ce-tq+X)
2016/09/13(火) 23:21:40.34ID:mOQjacar0Sa09の部分が同じってことは、IPアドレスが同じ可能性が高いってことだ。
そして使ってるブラウザを変えたってことだ。
http://afi.click/browser/list/
j70e ・・・ Monazilla/1.00 (2chMate 0.8.9.6)
GoLj ・・・ Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36
0152デフォルトの名無しさん (ワッチョイ fb5b-tq+X)
2016/09/13(火) 23:27:43.68ID:K8VetvZF0いやワッチョイの仕組みをもうちょっと調べてから言えよ。
まあどちらの言い分を信じるかは各人の自由だが。
あと俺は「質問者」に対しては有効情報を返しているよ。
・118が正解
・121はキチガイ
・123は見当外れ
・◆SEdFBOkLSwもキチガイ
・そのレベルなら入門サイトでも読め
というか、ここは「質問スレ」なんだから、まずは「質問者」に対して回答するのが当然だ。
お前は何を勘違いしているのだ?
俺は「既に正解が出ているのにおかしな回答をするな」と言っているだけだ。
少なくともお前が主張する◆SEdFBOkLSwよりは「質問者」に対しては有効情報を返している。
お前が主張する◆SEdFBOkLSwの「質問者」に対する有効情報って何?
上記みたいに列挙しようとしてみてくれ。何もないのが分かるから。
そしてその何もしてない◆SEdFBOkLSwをお前が擁護する理由は何?
お前のやっている事って色々辻褄が合ってないって理解出来る?
0153デフォルトの名無しさん (ワッチョイ 93ce-tq+X)
2016/09/13(火) 23:28:40.93ID:mOQjacar00154デフォルトの名無しさん (アウアウ Sa09-GoLj)
2016/09/13(火) 23:37:28.38ID:2dH5xCXza> いやワッチョイの仕組みをもうちょっと調べてから言えよ。
俺 (アウアウ Sa09-GoLj) が ◆SEdFBOkLSw ではないから反論してるんだよ
可能性レベルの話で ◆SEdFBOkLSw 扱いされてたまるか
俺の主張は>>137で書いたから付け加える事はない
0155デフォルトの名無しさん (アウアウ Sa09-GoLj)
2016/09/13(火) 23:39:54.80ID:2dH5xCXza◆SEdFBOkLSw が近い場所に住んでるのかな、ぐらいは思うが、それだけで本人扱いされるとは思わなかったな
0156デフォルトの名無しさん (ワッチョイ 93ce-tq+X)
2016/09/13(火) 23:42:51.34ID:mOQjacar00157デフォルトの名無しさん (アウアウ Sa09-GoLj)
2016/09/13(火) 23:55:35.43ID:2dH5xCXza俺は9/12(月)から「(アウアウ Sa09-GoLj)」のまま変わってないんだがな
なりすましを成立する為には何度もリセッションをしなければならないじゃあないか
1. 「(アウアウ Sa09-j70e) のIP」と「(アウアウ Sa09-GoLj) のIP」を控える
2. ◆SEdFBOkLSw になりすます時には「(アウアウ Sa09-j70e) のIP」になるまでリセッションする
3. 俺になりすます時には「(アウアウ Sa09-GoLj) のIP」になるまでリセッションする
0158デフォルトの名無しさん (ワッチョイ fb5b-tq+X)
2016/09/13(火) 23:56:54.79ID:K8VetvZF0その件に関しては俺は勝手にしろという立場だ。(これを嫌っている奴もいるようだが)
ただ、やるにしても「正しい」方向に導くべきで、間違っている方向じゃ駄目だし、
その先の議論に関しては議論参加者だけでやるべきで、
無理矢理「質問者」を巻き込むべきではない。
121は明らかに間違った方に誘導している。そんな使い方は普通はしない。
123に関しては、正直なところ、普通のclassの使い方をすればあのコードになるから、
出してきた理由は分かるし、気持ちも分からんでもない。
ただ彼は前からそうだが日本語がイマイチで、今回もそうだが読み違いが多すぎる。
とはいえ彼はこの手の「勢力争い」には全く興味ないらしく、
あるいはこだわりがあるのはコードだけなのか、今回もそうだが引く時は本当にあっさり引く。
そしてID:2dH5xCXzaの主張する◆SEdFBOkLSwが
>>132の時点で俺に攻撃的に絡んでくる理由はない。てかお前何がしたいの?
普通は129を130で否定されたと受け取ったからとしか考えられないのだが。
0159デフォルトの名無しさん (アウアウ Sa09-GoLj)
2016/09/13(火) 23:58:12.39ID:2dH5xCXza0160デフォルトの名無しさん (アウアウ Sa09-GoLj)
2016/09/14(水) 00:13:44.46ID:vaFZ+3uqa基本>>137以上にいうことはないから
「明らかに間違った方」とか意味わからんし、クラス名を与えるなら classList.add で指定可能な文字列は許可されるのが厳密
「普通は使わない」ってのはあなたの固定観念で例外処理をさぼってるだけ
>>123のコードも「class名を引数に用いることはできないのでしょうか?」に対する解としては明らかに間違い
>>134 ◆SEdFBOkLSw の方が明らかにまともな事いってる
0161デフォルトの名無しさん (ワッチョイ 93ce-tq+X)
2016/09/14(水) 00:16:45.81ID:iN47TnGc0オマエ馬鹿かw
IPアドレスは「アウアウ Sa09」までだっつーのw
証拠見せてやろうか?
0162デフォルトの名無しさん (ワッチョイ 93ce-MXHb)
2016/09/14(水) 00:18:26.67ID:iN47TnGc00163デフォルトの名無しさん (ワッチョイ 93ce-j70e)
2016/09/14(水) 00:19:11.70ID:iN47TnGc00164デフォルトの名無しさん (ワッチョイ 93ce-GoLj)
2016/09/14(水) 00:19:48.23ID:iN47TnGc00165デフォルトの名無しさん (ワッチョイ 93ce-tq+X)
2016/09/14(水) 00:20:57.47ID:iN47TnGc00166デフォルトの名無しさん (ワッチョイ fb5b-tq+X)
2016/09/14(水) 00:31:16.83ID:55tYl/130まあどう言おうがそちらの自由だけど、どうとるかは各人の自由だよ。
しかし、常連が10人もいないこんなスレで、
いきなりIPが被って必死に同一人物の擁護とかねーよマジで。
そして、実際、
> ◆SEdFBOkLSw の方が明らかにまともな事いってる
の具体例を提示出来ないだろ?だって何も言ってないし。
都合が悪くなったら話題を逸らすのも◆SEdFBOkLSw = ID:2dH5xCXza = ID:vaFZ+3uqa
の共通点だよね。話し合いしたければちゃんと回答しろよ。
というか、そもそも121や123が噛み付いてくるのなら分かるのだが、
お前が俺に噛み付いてくる理由は何?
俺、WiMAXか、spmodeだから多分かぶり倒してると思うよ。
全然逸しても無いんだが、何故理解できないんだろう。
自分の理解を超えたら、逸らされてるって思うのかねえ。
もっとひど目の事言ってんのに。
人間、言われて怒る事って、割と図星だってことかねえ。
あれ、Promiseなんか俺誤解したままだったかな。
前スレで、なるほど俺が誤読してたすまん、と言った件意外?
0170デフォルトの名無しさん (ワッチョイ 93ce-tq+X)
2016/09/14(水) 01:15:51.77ID:iN47TnGc0日付変わってもかわらんからワッチョイなんじゃねえの?変わるんだっけ。
これwimax。
0172160@JavaScript ◆EpG1YCxoik (アウアウ Sa09-GoLj)
2016/09/14(水) 17:11:19.99ID:S1CZT+XFaとはいえ、(ワッチョイ fb5b-tq+X) と会話する気はもうない
>>169
>>41,48,52 の話がよくわからない
下記コードがあれば、理解できると思うんだが
・PromiseにsetTimeoutをかますと正常動作しなくなるコード
・setTimeoutでキュー管理して正常動作するコード
0173160@JavaScript ◆EpG1YCxoik (アウアウ Sa09-MXHb)
2016/09/14(水) 17:14:37.57ID:S1CZT+XFaああ、それか。
Promiseのポリフィルっぽいもののうち、非同期になってないもの、の話
>>48で言ってるように、ネイティブだったり、ちゃんとしてるものは非同期で動いてくれるから問題ないよ。そこは誤解を招いて申し訳ない。
setTimeoutを入れないと動かないもの、は
タグ作ってその中に文字列入れた、その幅が知りたい、とかそう言うの。
SVGのグラフ描くときに、描画しない列見出しを幅・高さから決めたいけど、メディアクエリは使えないとか、そういうやつ。
0175デフォルトの名無しさん (ワッチョイ 69ce-tq+X)
2016/09/14(水) 21:07:46.35ID:jzervOJ/0じゃなくて、具体的にライブラリ名を言ってよ。
何の話なのかさっぱりわからん。
まず話の前提をはっきりさせよう。
意味がわからん。
具体的なライブラリもなにも。探すのが面倒。
自分でPromise相当のオブジェクト書いてみれば一発で理解できると思うけど。
0177デフォルトの名無しさん (ワッチョイ 69ce-tq+X)
2016/09/14(水) 23:44:17.41ID:jzervOJ/0不具合があるライブラリを知らない=不具合があるライブラリが存在するという証拠がないのに、
なぜそのライブラリの不具合に対処するコードをを書こうとするのか。
0178デフォルトの名無しさん (ワッチョイ 69ce-tq+X)
2016/09/14(水) 23:46:21.44ID:jzervOJ/0自分が書いたPromise相当のオブジェクトが腐ってました?
素直にまともなライブラリを使いましょう。
自作なんてやめなさい。
>>178
いや、自分では書いてないけどね。納品物だよ。
納品物は直させるとして、当座、回避のパッチ入れないと困っただけ。
まともなライブラリを使う、とかそう言う低レベルな話してないから。
まともなライブラリを作るなら理解できるけど。
0180デフォルトの名無しさん (ワッチョイ 23ce-chWY)
2016/09/15(木) 00:04:05.31ID:Cxc2zChv0他の人に書けっていうんだ?馬鹿じゃないか?
0181デフォルトの名無しさん (ワッチョイ 23ce-chWY)
2016/09/15(木) 00:28:12.45ID:ydYpmdlY0ライブラリを作るほうが低レベルだろ。
現にバグで困ったんだから。
自分で作るなんて時間によるコスト増加と
品質の定価を無視すりゃ誰でもできる。
コストを減らして品質を高めるためには、作らない技術が必要。
だから、Promiseっぽいものだと最初に書いたのに。つまみ読み下手だな。
確固たる動く自分で検証したPromise使ってる自信があるならそれでいいけど、明らかにわかってない人への説明としては正しくないっしょ。
>>44が部分的に同意してくれてるような話。
>>181
何言ってるか全然わからん。
実際にバグたしたのはうちじゃないし、そのまま部分検収しかしたらなかったよ。そいつらをレベル低いと言うなら、全く同意だけど。
他社に他社の不具合改修させたら契約周りがクソめんどくさいので、そのへんは俺が見た。
コスト減らして品質を高めるには、作らない技術が必要、それは尤も。
うちが作らないから、札束でしばいて作るったり選定して検証して弁理士ときっちり擦り合わせて納品するのが下請けさんのお仕事。多分工数はそんなに減らないよ。こっちが要求するものを揃えたら。
お前は下請けの立場にすらなったこと無いの?
0183デフォルトの名無しさん (ワッチョイ 23ce-chWY)
2016/09/15(木) 02:30:06.70ID:AmHCeUDK0> 確固たる動く自分で検証したPromise使ってる自信があるならそれでいいけど、
意味がわからん。
そんなに不安なら自分でテストコード書けばいいだけだろ。
どうせ自分でPromiseを作るならそのテストコードも書くんだから、
それなら作らないでテストコードだけを書けばいい。
普通はテストコードついてるもんだけどな。
自分らで作ったような品質の低いものじゃない限りw
0184デフォルトの名無しさん (ワッチョイ 23ce-chWY)
2016/09/15(木) 02:31:19.16ID:AmHCeUDK0お前固有の問題に対応するためのコードを
ここに書くなって言ってる。
0185デフォルトの名無しさん (ワッチョイ 23ce-chWY)
2016/09/15(木) 02:32:55.17ID:AmHCeUDK0それは無いわw
自社でウェブサービス作ってるからな。
0186160@JavaScript ◆EpG1YCxoik (アウアウ Sa9f-UmMt)
2016/09/15(木) 07:06:22.28ID:FbcVefQGaそういう抽象的な説明では分からないからコードを出してほしい、といっているのだが…
Promiseはコールバック地獄の統合管理形態ぐらいにしか思ってないし、setTimeoutが必要な状況というのが全く思い至らない
それと、低品質Promise非互換ライブラリに対処する対策コードというなら、何らかの想定があって対処しているんだから
「想定する低品質Promise非互換ライブラリのコード」と「対策コード」を出せて当然だと思うのだが(全て記載しろとはいわんが、状況が分かる仮想コードぐらい出せるはず)
「低品質コードも対策コードもよく思い出せないけどとりあえず自分のコードで実装できてる」というなら「本当にそれは対策出来ているのか」と俺なら不安になる
0187160@JavaScript ◆EpG1YCxoik (アウアウ Sa9f-UmMt)
2016/09/15(木) 07:23:00.87ID:FbcVefQGa正直、◆SEdFBOkLSw の説明力にも問題があると思うが、話がずれてる
彼がいってるのは「A社が作成した低品質Promise非互換ライブラリコードの保守/改修を自社で引き受けた時にどうするか」で対策は大きく3通りある
1. 低品質Promise非互換ライブラリコードに対応したコードを書く
2. 低品質Promise非互換ライブラリコードを捨ててPromiseで書き直す
3. 低品質Promise非互換ライブラリコードを捨てて自社ライブラリで書き直す
◆SEdFBOkLSw は 1. を選択し、「setTimeoutでほげほげ」して対策した
だが、「setTimeouでほげほげ」が彼以外の人にはさっぱりわからない
そんな状況
1. を選択するなら低品質Promise非互換ライブラリのドキュメントを読んで該当ライブラリ独自の書き方で書くのが最良だと思うが、
それでは対応しきれなかったのか、ドキュメントがないから自力で対応したのか、何らかの理由かで「setTimeoutを使う」という解に終着したみたいね
かけるけど、スマートもしもしだから辛いんよね。コードうつの。
>>187
「A社が作成した、、保守改修を、自社で、、」ではないよ
A社に直させる。
特定パターンの実データ無いと再現させにくかったし、仕方ない。
A社に直させるのに、A社のソースにパッチ入れると割と面倒なの。
A社がそのパッチ取り込んだときの、俺の工数とか改修費の話になるけど。
0189160@JavaScript ◆EpG1YCxoik (アウアウ Sa9f-UmMt)
2016/09/15(木) 07:45:15.57ID:upPgTl6ca0190160@JavaScript ◆EpG1YCxoik (アウアウ Sa9f-UmMt)
2016/09/15(木) 07:56:24.23ID:upPgTl6ca◆SEdFBOkLSw とはIPレベルで同一ではなくてIP体系が同一レベルっぽい
>>188
> かけるけど、スマートもしもしだから辛いんよね。コードうつの。
WiMAXといっていたからモバイルルータだと思ったが、スマートフォンなのか
とりあえず、テザリングすればいいのでは?
コードが出ないなら机上の空論に過ぎないので、あなたの説明に説得力はないと思う
> 「A社が作成した、、保守改修を、自社で、、」ではないよ
> A社に直させる。
A社に直させるなら「自社で書くコードは何なの?」って話になると思うが
>>187の書き方が悪かったが、「A社が作成した低品質Promise非互換ライブラリを利用して書いたコードの保守/改修を自社で引き受けた時にどうするか」にすれば合ってるかね
やはり、あなたの説明力にも問題があると思うな(説明が端的でとても分かりづらい)
0191デフォルトの名無しさん (ワッチョイ 23ce-chWY)
2016/09/15(木) 09:32:51.25ID:AmHCeUDK0作り話を思いつきで作ってるから
矛盾が出てるだけw
0192デフォルトの名無しさん (ワッチョイ 23ce-chWY)
2016/09/15(木) 09:35:47.86ID:AmHCeUDK0単体テストをやる技術がない証拠だな。
やっぱりブラウザでポチポチやってそうw
スマホだよ。
家引っ越した時にネット回線契約すんのめんどくさくて、wimax置いてそのまま。
PCで2chはしないなぁ。
まぁ、空論と言われても。
休みの日にでも書いてみるわ。
自社で書くコードは、自社開発分じゃん。
もしくは講師と講座かなんかの形でウヤムヤにできるグループ会社かそのへん。
保守改修じゃないよ。コンポーネントで発注してるものを組み込んだ側の開発。
>>192
それは下請けに言っとくよ。工数増加を認めない形で。
0194デフォルトの名無しさん (ワッチョイ 23ce-chWY)
2016/09/15(木) 21:20:36.32ID:AmHCeUDK0何を言いたいのかさっぱりわからん。
誰も分かってないぞ
> それは下請けに言っとくよ。
下請けでもない俺にいわれてもなw
普通は言うもの。それが出来ない時点で駄目なんだわ。
検収やってんのか? やってるのなら問題でたなら突き返してるはずで、
>>182で以下のように言ってるってことは、それでOKだしたんだろ?
> 他社に他社の不具合改修させたら契約周りがクソめんどくさいので、そのへんは俺が見た。
それならお前の責任だよ。
> 工数増加を認めない形で。
それは契約で決めること。どうせいままでそれでOKって言ってきたんだろ?
自業自得だよ。工数をどうするかは話し合って決めろ。それがフェアってもんだ。
0195デフォルトの名無しさん (ワッチョイ 23ce-chWY)
2016/09/15(木) 21:22:11.12ID:AmHCeUDK0お前の下請けが作ったPromiseっぽいもの=Promiseではない物の
挙動に対応するためのsetTimeoutを、Promiseの話をしている所に
持ち込むなってことだ。
結局最初に指摘したとおり、setTimeoutは意味なかったじゃねーか。
何を問題とされてるかわからん。
何か悔しいことでもあんの?ずっと絡むけど。
指摘が間違ってるんだもの。
俺は最初から対象絞ってる。
それが読めなかったお前のミスだよ。
0198デフォルトの名無しさん (ワッチョイ 23ce-chWY)
2016/09/15(木) 22:11:54.19ID:AmHCeUDK0なら、その対象を絞っているとわかるという
レスを言ってみ。な?できないだろ?w
0199デフォルトの名無しさん (ワッチョイ 23ce-chWY)
2016/09/15(木) 22:14:48.03ID:AmHCeUDK0> 俺は残り回数渡して再帰すると思うわ。setTimeoutで包んで。
ここまでPromiseの話しかしていない。
Promiseでないものの話はしていない。
そして>>43ですぐに突っ込まれてる
> > setTimeoutで包んで。
>
> またなぁw 余計な一言。
> なんでsetTimeoutを含まなきゃならんのか。
> これも何も分かってない証拠よ。
0200デフォルトの名無しさん (JP 0H7f-9vqT)
2016/09/16(金) 10:52:56.75ID:HeaYZHP4H>>28プロミス使わない
>>41再帰する、ただsetTimeoutはかける
>>48プロミスかどうかわからんプロミスっぽいものへの言及
なんていうか、否定されたことが悔しくて仕方ないのかな。
無能なのに。
0202デフォルトの名無しさん (ワッチョイ 23ce-chWY)
2016/09/16(金) 23:13:36.20ID:90O68WAb0○ 下請けが作ったプロミスではないものへの言及
だったはずだが?
プロミスっぽいもの = プロミスではない。
だからPromiseの話題をしている所に、
お前の会社固有のPromiseではないものへの問題の
解決策を書いてどうするんだ?って話なんだが。
どこからどう見ても他の人にとって参考になる話じゃない。
どうしてPromiseとは違う自社固有の問題ですって言えないのかな?
そう書いてんじゃん。
プロミスっぽいもの、って。
自社固有と言うより、実装固有の話でしょ。
それがネイティブであろうが、ポリフィルであろうが、babelでトランスパイルされていようが。
少なくとも中がホワイトボックスになるまではさ。
だから、ずっと、実装の話してんだけど。
「プロミスとは違う」とは最初に言ってんじゃん。っぽい、って。
読解力ゼロなの?
0204デフォルトの名無しさん (ワッチョイ 23ce-chWY)
2016/09/17(土) 00:48:52.51ID:46oy45zx0> プロミスっぽいもの、って。
問題はそこじゃない。
それがプロミスでない以上、それは関係ないものの話だ。
Promiseの話をしているときに、お前は全く別のライブラリ
それも下請けに作らせたものの話を、何の説明もなく始めたんだよ。
オープンソースでもない、お前の会社でしか使われてない
ライブラリの問題点の解決策をするなって言ってる。
0205デフォルトの名無しさん (ワッチョイ 333c-eXu6)
2016/09/17(土) 13:14:09.94ID:q/Ue3ybd0それ以外の物を前提に話をされても周りは混乱するだけだから、その場合はライブラリ名を示すなり「下請けが作った独自実装で標準的でないPromiseっぽい物」と呼ぶなりして区別すべき
少なくともただ>>23としか聞いていない質問者に「下請けが作った独自実装で標準的でないPromiseっぽい物」の怪しい実装を前提にした答えを返すのは間違ってる
0206デフォルトの名無しさん (ワッチョイ 23ce-chWY)
2016/09/17(土) 13:31:39.53ID:5r5hyKhZ0つまりIEにも対応しないといけない以上ES5も使うしか無い。
babelは間に挟まってるから、使ったらいけない。
polyfillも信用してはいけない。
自社で作るのが最善の選択。
ただしコストがかかるから下請けに作らせる。
下請けは技術力がないからPromiseではなくPromiseっぽいものしか作れない。
Promiseっぽいものにはthenが非同期ではなく同期的にしてしまうバグが有るもの。
それが常識なのだから、そのバグに対応するコードを入れるのも常識。
他社に他社の不具合改修させたら契約周りがクソめんどくさいので、そのへんは俺が見た。
と◆SEが言っている。
一方俺は仕様どおりに作られているbabel(babel-polyfill)のPromiseを使った。
標準Promise+機能強化版のpolyfill、bluebirdもおすすめ
俺と同じ意見の人も居たわけだし。
ポリフィルで、ポリフィルで、babelで、でもまあ好きにすれば良いよ。
ただ、それらが提供するのは開発者側への作りやすさ、であって、
同じ動作に関しては、同じアウトプットを出すって事位なんだけどね。
全く同じパフォーマンスで動くわけでもないし、ボトルネックの箇所が同じでもないから、結局変なチューニング必要になるんだけど、
Webってそういうのには鈍感というか、許容力あるんだなって思う。
0208デフォルトの名無しさん (ワッチョイ 23ce-chWY)
2016/09/17(土) 14:07:27.46ID:5r5hyKhZ0同じ10倍でも、10秒が1秒なら早くなったと思うが、
0.1ミリ秒が0.01ミリ秒になっても同じ10倍でも違いはわからない。
人間がが違いがわからず、実用上の問題も発生してないならば何の問題もないんだが。
まず、あんたは「○○の可能性がある」ことへの対処をいまやろうなんて考えずに
問題が出てから、解決するようにした方がいいよ。
チューニングはパフォーマンス上の問題があることを証明してからやるもんだ。
Promiseだって同じ「バグが有る可能性がある」から対処する。なんてことをやるから
みんなから叩かれまくるわけで、まず最初に問題を明らかにしなさい。
(明らかにした結果、お前の会社特有の問題だったから、ほれみろって更に叩かれてるわけだがw)
0209デフォルトの名無しさん (ワッチョイ 23ce-chWY)
2016/09/17(土) 14:11:54.06ID:5r5hyKhZ0素早いリリースを行って、顧客への価値を提供することに敏感。
だからいろんなものを利用して、いろんなものを自動化する。
金はかかった分だけ顧客から請求すればいい。
だからいくら時間とコストがかかっても、自社で作ったほうがもうかる。
なんて甘い考えは許されないよ。そういう考えの方が鈍感だ。
0210デフォルトの名無しさん (ワッチョイ 23ce-chWY)
2016/09/17(土) 14:21:07.52ID:5r5hyKhZ0それはお前の会社特有のライブラリのバグだって
お前が言ってなかったから、勘違いしてだけだろw
そいつにもう一回聞いてみ?
賛同するやつはもういなくなったよな。
そこまで否定されたくないならコメント欄閉じたブログでもやれば?
0212デフォルトの名無しさん (オッペケ Sr1f-wJFc)
2016/09/17(土) 14:52:41.97ID:jsgB6gIBr0213デフォルトの名無しさん (ワッチョイ 23ce-chWY)
2016/09/17(土) 14:59:33.46ID:5r5hyKhZ0察しろwww
0214デフォルトの名無しさん (ワッチョイ 23ce-chWY)
2016/09/17(土) 15:03:49.07ID:5r5hyKhZ0否定とかいう話じゃなくて、
お前が認めろってこと。
お前の会社特有の問題でPromiseには必要がないコードをお前は書いた。
後出しでPromiseっぽい(=Promiseではない)ライブラリの話だって言い始めたが、
そのライブラリが何かを言わず、何度も指摘されてようやく言った答えが
「自分の会社の下請けに作らせたライブラリ」であり
このスレに関係がある人はまずいないので、何の意味もないコードだった。
なんで認められないかな?
0216デフォルトの名無しさん (ワッチョイ 23ce-chWY)
2016/09/17(土) 18:03:21.47ID:5r5hyKhZ0最初に言ってるというのなら、
それがどのレスか明確にできるはずだね。
やってみてよw
お前の会社特有の問題であり、正しい動きするPromise(もちろんpolyfill含む)を
使ってる人には関係ない話であると明確に言ってるレスはどれ?
0217デフォルトの名無しさん (ワッチョイ f3a1-wJFc)
2016/09/17(土) 18:03:58.06ID:HS1+a0Vc0ES6を意図して設計されたなら実装はともかくプロミスと呼べばいいじゃない
0218デフォルトの名無しさん (ワッチョイ 23ce-chWY)
2016/09/17(土) 18:20:19.47ID:5r5hyKhZ0PromiseにもPromiseっぽいものにも当てはまる話であれば
全然やってかまわないんだが、今の論点はsetTimeoutの必要性だからさ。
setTimeoutの必要がPromiseっぽいものだけに必要で、
そのPromiseっぽいものが自社の下請けが開発したもの、
つまりその他の人は入手不可能な話であれば、
それは「他の人には関係ない」(setTimeoutは必要ない)と
明確にいわないとだめでしょ。
明確に書いてあるのに読めないのはお前だよ。
読解力の無さを恨め。
0220デフォルトの名無しさん (ワッチョイ 23ce-chWY)
2016/09/17(土) 23:30:27.21ID:5r5hyKhZ0どれかを言えないのはなぜ?w
それにお前がPromiseではないものの話をしてるのなんて分かってる。
聞き出したからな。
その上で、Promiseじゃないもの(=お前の会社でしか使われてない
下請けに作らせた変なライブラリ)の話を、誰にも関係ない話を
ここでするなって言ってる。
聞き出さんでも、書いてたのに。
っぽい、って。
0222デフォルトの名無しさん (ワッチョイ 039d-/1gl)
2016/09/18(日) 09:56:55.58ID:7fymcmTA00223デフォルトの名無しさん (ワッチョイ 23ce-chWY)
2016/09/18(日) 11:12:24.51ID:8zKQ5/pX0ようやく認めたか。
「っぽい」が言ってるところだって。
それで"他の人"にこの言い合いの論点がはっきり見えるようになったなw
「っぽい」の一言でお前の会社独自の問題で、下請けが作ったライブラリの
話だってわかるわけがないだろ。これを「書いてない」って言ってるんだよ。
「っぽい」だけだともしかしたらどこかの有名なPolyfillライブラリの可能性がある。
だからsetTimeoutに意味がある可能性もある。
だが、お前独自の問題であるなら話は別だ。ブラウザネイティブのPromiseや
Promiseのpolyfillを使ってる人など他の人には問題がない。
他の人に問題がないお前独自の問題を、何の説明もなく
ここに書くなって言ってんの。
うん?ようやく認めたかというか、最初からそうとしか言ってないけど。
0225デフォルトの名無しさん (ワッチョイ 23ce-chWY)
2016/09/18(日) 13:34:06.17ID:8zKQ5/pX0(そうお前が認めた)
それが、自分の会社の下請けが作ったライブラリで
他の人には全く関係ない話だとは、指摘されるまで言ってない。
しつこいやつだな。
そう認めたというより、そう書いてあるでしょ。
書いてある事から導出できることは自明なんだからわざわざ解説しないでしょ、って言ってるの。
説明を求めるほうがみっともないって理解しなよって言ってんの。最初に書いたよね、って。
0227デフォルトの名無しさん (ワッチョイ 23ce-chWY)
2016/09/18(日) 14:01:00.72ID:8zKQ5/pX0だからそう認めたのはどの時点だって言ってるんだが?w
まず「っぽい」からは自社の会社特有で
このスレのほかの人には関係ない話であることがわかるわけがない。
他の人に、setTimeoutする必要はないですねって
わかるようになったお前の書き込みはどのレスかって
レス番を聞いてるんだが、それを答えてないよな?w
0228デフォルトの名無しさん (ササクッテロ Sp1f-eXu6)
2016/09/18(日) 14:16:51.35ID:0+yFEvXApその無能が延々と自己正当化と言い訳を繰り返してるのは痛々しい
無能が無能を晒してるのは面白いが質問スレとしては迷惑でしかないからいい加減黙れよと
0229デフォルトの名無しさん (ワッチョイ 039d-/1gl)
2016/09/18(日) 14:31:20.95ID:7fymcmTA00231デフォルトの名無しさん (ワッチョイ 5b5b-chWY)
2016/09/18(日) 17:58:25.20ID:EyfwcZsT0だからそうだけど。あのレスはバッドノウハウでしかないよ。
書いてないことを読む奴と、書いてあることが読めない奴、多いもんだな。
0233デフォルトの名無しさん (ワッチョイ 23ce-chWY)
2016/09/18(日) 22:58:17.63ID:8zKQ5/pX0> 元レス見ればわかる話なんだけど。
繰り返すが
まず「っぽい」からは自社の会社特有で
このスレのほかの人には関係ない話であることがわかるわけがない。
他の人に、setTimeoutする必要はないですねって
わかるようになったお前の書き込みはどのレスかって
レス番を聞いてるんだが、それを答えてないよな?w
0234デフォルトの名無しさん (ワッチョイ 23ce-chWY)
2016/09/18(日) 22:59:45.82ID:8zKQ5/pX0それがどのレスかを自分で言うことが出来ないんだよねw
>>233
わかるわけ無い
→お前がわからなかっただけだと思うけど。
読めないものが読める人間以外は、とりあえずPromiseでは無いもの、と読めると思うけど。
setTimeoutする必要は無い
→Promiseっぽいものであれば、必要な場合がある
→必要ない場合ではないのは、Promiseっぽいものではない場合(対偶)
→→Promiseの場合は必要ない
だよね。
馬鹿にはわからんのかもしれんけど。
0236デフォルトの名無しさん (ワッチョイ 23ce-chWY)
2016/09/18(日) 23:52:53.93ID:8zKQ5/pX0人の話をちゃんと聞け。Promiseでは無いものであることなんか最初っからわかってる。
↓ちゃんと読め
「っぽい」の一言でお前の会社独自の問題で、下請けが作ったライブラリの
話だってわかるわけがないだろ。これを「書いてない」って言ってるんだよ。
「っぽい」だけだともしかしたらどこかの有名なPolyfillライブラリの可能性がある。
だからsetTimeoutに意味がある可能性もある。
だが、お前独自の問題であるなら話は別だ。ブラウザネイティブのPromiseや
Promiseのpolyfillを使ってる人など他の人には問題がない。
他の人に問題がないお前独自の問題を、何の説明もなく
ここに書くなって言ってんの。
0237デフォルトの名無しさん (ワッチョイ 23ce-chWY)
2016/09/18(日) 23:54:00.62ID:8zKQ5/pX0> →Promiseっぽいものであれば、必要な場合がある
> →必要ない場合ではないのは、Promiseっぽいものではない場合(対偶)
> →→Promiseの場合は必要ない
ここでも、お前の会社特有の問題でお前以外に
setTimeoutは必要ないってことが書かれていない。
0238デフォルトの名無しさん (ワッチョイ 23ce-chWY)
2016/09/18(日) 23:55:01.93ID:8zKQ5/pX0setTimeoutの話をするなって
言ってるのが理解できんのかね?
別に俺の会社特有とか拡大解釈せんでも、一般論として必要ないと言ってるんだから、包含でしょ。。常識的に考えて。
読み取れなかったなら、そう認めりゃ良いのに。
最初から言ってたことまでここまで噛み砕いて理解できなければ重症。
>>238
自分が思った話の順番でないと許せないちょっと頭にハンディキャップがある人でもあるまいし。
するな、しろ、すべき、すべきでないの話では無いでしょ。
お前がそうではあるべきでないと思ってるだけでさ。
それがbabelなのかもしれんけど。
0241デフォルトの名無しさん (ワッチョイ 23ce-chWY)
2016/09/19(月) 00:10:08.37ID:Rfn/Judi0> 別に俺の会社特有とか拡大解釈せんでも、一般論として必要ないと言ってるんだから
言ってない。
お前が言ったのは「Promiseっぽい」ものには必要といっただけ。
「Promiseっぽい」ものは、他の人も使ってる可能性がある。
他の人は誰にも使えないものであることを言ってない。
俺が指摘してようやくお前は「Promiseっぽい」ものが
お前の会社特有で、他人は誰も使えないものだと言った。
Promiseっぽいものは「どこかの有名なポリフィルライブラリ」とも言ってないじゃんね。
書いてないことを認めさせるのと同時に、書いてないことを認めないのも変な話。
わかる訳がないも何も、Promiseではない、で充分なんだけど。
ブラウザネイティブや、正しいPromiseのポリフィルがなものが、Promiseでなく、Promiseっぽいものであるのであれば、中段の意味があるけど、そうじゃない事を主張してるならまるごと無意味な言いがかりじゃん。
ただの思い込みの補正を一所懸命に相手に責任転嫁してるだけだよ、それ。
何を守りたいのか全然わからん。
メンツが守りたいなら、あなたは素晴らしい人間だよ。書いてないことが読めるんだから。
0244デフォルトの名無しさん (ワッチョイ 23ce-chWY)
2016/09/19(月) 00:14:55.46ID:Rfn/Judi0だから、そのPromiseっぽいものが何かを
ずっと聞いたんだろ。
それがお前の会社特有のライブラリであることを言ったのは
そのずっと後だ。
0245デフォルトの名無しさん (ワッチョイ 23ce-chWY)
2016/09/19(月) 00:15:46.77ID:Rfn/Judi0ここでする意味が無いだろ。
後付で言い訳すんなよw
何であろうが、Promiseではない事が確かであればそれは必要十分なんだよ。
お前自分で言ったじゃん。
正しいPromiseのポリフィルは、Promiseそのものだ、と。
っぽいもの、はそうでないものだよ。
知らんがな。
0249デフォルトの名無しさん (ワッチョイ 23ce-chWY)
2016/09/19(月) 00:19:11.94ID:Rfn/Judi0だからPromiseでないことであることはわかってるって言ってるだろ。
問題は、そのPromiseでないものの対処方法(setTimeout)を
何レスもここでずっと話をしているかだ。
お前の会社特有の問題をここで話す意味が無いだろ。
どうして、setTimeoutの話なんかした?
0250デフォルトの名無しさん (ワッチョイ 23ce-chWY)
2016/09/19(月) 00:26:37.45ID:Rfn/Judi0関係ない話を始めるのも頭が悪い。
何レスも蒸し返してるのはお前だけだと思うけど。
わかってるなら、不要な話、対象方法の話すら意味なくて、お前にとっては無視に値する話だと思うんだけど。
どうして、と言われてもな。
何が気になるの?バッドノウハウでも、その意図が理解できなかった自分の無力さを、必要がないものだから俺は知らなくていいんだ、って開き直りたいの?
そうだね()
パフォーマンスなんてどうでもよくて()
結果が正しいければ良い()から、
babelに頼れば万事解決だ()
知らんがな。
最初に気づかんかった奴に言われても、もっと頭が悪いんだなとしか言えん。
俺は馬鹿だから説明しろ、としか読めん。
おやすみ。
0254デフォルトの名無しさん (ワッチョイ 23ce-chWY)
2016/09/19(月) 00:34:11.35ID:Rfn/Judi0それがどのレスか書いてない以上、
それを明らかにすることがお前に大きな
ダメージを与えるんだろうなw
0256デフォルトの名無しさん (ワッチョイ 23ce-chWY)
2016/09/19(月) 00:35:32.93ID:Rfn/Judi0だからPromiseでないことであることはわかってるって言ってる。
問題は、そのPromiseでないものの対処方法(setTimeout)を
何レスもここでずっと話をしているかだ。
お前の会社特有の問題をここで話す意味が無いだろ。
どうして、setTimeoutの話なんかした?
setTimeoutの話を始めた理由、
Promiseの話をしている所に関係ない話を始めた理由
これにも答えてないよな。
0257デフォルトの名無しさん (ワッチョイ 23ce-chWY)
2016/09/19(月) 00:36:05.33ID:Rfn/Judi0>>256
寝る前に言っとくが、俺の会社とかそういう問題でなく、
Promiseのポリフィル書くときには理解しておくべき話で、かつ、そのポリフィルが信頼できない場合には有用な話だよ。
なんで、setImmediateまで各ポリフィルが実装してるか理解してればイベントループわかるんじゃねえの?
これが説明。
お前あんま仕様仕様言いながら、言語仕様理解してないんじゃない?
0260デフォルトの名無しさん (ワッチョイ 23ce-chWY)
2016/09/19(月) 00:42:47.22ID:Rfn/Judi0自分の会社の特有の問題なのに
それをやっぱり認められないんだなw
また始めたじゃなくて。
お前の生き恥ばっか晒すなよ。
http://stackoverflow.com/questions/27647742/promise-resolve-then-vs-setimmediate-vs-nexttick
https://github.com/kriskowal/q/issues/342
https://github.com/then/promise/blob/master/src/done.js
https://github.com/YuzuJS/setImmediate/blob/master/setImmediate.js
さて何がかいてあるんだろうな。
馬鹿はそれだけで贖罪の道を歩むだけマシだな。
まともな事でも、最小限の言い方で説明すると、理解できない馬鹿なキチガイが発狂する。
死ぬまで治らないんだろうな。早く直してほしいけど。
0270デフォルトの名無しさん (ワッチョイ 23ce-chWY)
2016/09/19(月) 03:21:44.40ID:Rfn/Judi0せっかく説明してやった上に、ソースまで出してやったのにえらい言いようだな。
0273デフォルトの名無しさん (ワッチョイ 23ce-chWY)
2016/09/19(月) 11:47:30.33ID:Rfn/Judi0「っぽい」から他の人には関係ない話だとわからないと言ってる。
Promiseじゃないものっていうのはわかってるんだよ。
他人に関係ない話をするなって言ってる。
お前がすり替えたんじゃねえの?
setTimeoutの必要性に。
わからないのはお前が、Promiseっぽいものにはなぜそれが必要だったか理解出来てないからだと思うが。
現にお前以外の人にも、理解できてる人もいる始末なんだし。
他人、と拡大解釈をするんじゃなくて、なぜ「僕の理解できない話はしないでください」とか言えないのかな。
0275デフォルトの名無しさん (ワッチョイ 23ce-chWY)
2016/09/19(月) 14:05:16.18ID:Rfn/Judi0別のライブラリの話をするなってことなんだけど?
しかもそのライブラリはお前しか使えないようなものだし。
「自分が問題として提起していたものすべて言いがかりでした、
本当の目的は僕が考えている話の流れを乱されたくなかったんです」
と認めれば良いのにね。
この期に及んでまだそれとは哀れすぎるわ。
前世があるとしたら、カナブンかなんかだったんだろうな。
0277デフォルトの名無しさん (ワッチョイ 5bc9-Ex6f)
2016/09/20(火) 00:41:55.77ID:yINrKhu900278デフォルトの名無しさん (ワッチョイ 5bc9-Ex6f)
2016/09/20(火) 00:42:18.77ID:yINrKhu900279デフォルトの名無しさん (オッペケ Sr1f-wJFc)
2016/09/20(火) 01:05:22.83ID:J/hU/DKBrJavaScriptで隠したならJavaScriptで探すことも可能だろうな
0280デフォルトの名無しさん (ワッチョイ 5b5b-chWY)
2016/09/20(火) 01:21:46.93ID:XjntHf8Q0「ある」が多分答えになる。
>>279
> javascriptで隠された直リンクのURLを調べる方法ってある?
○ javascriptで、隠された直リンクのURLを調べる方法ってある?
△ javascriptで隠された、直リンクのURLを調べる方法ってある?
この質問の技術レベルから推測すると、単に display='none' に対しての検索だと思われる。
0281デフォルトの名無しさん (ワッチョイ 5bc9-Ex6f)
2016/09/20(火) 02:38:10.11ID:yINrKhu90例えばこういうサイトでスケジュールの日にち毎のURLを見つけたり
発売前のチケットのURLを探ったりできるものなの?
https://hlo.tohotheater.jp/net/schedule/043/TNPI2000J01.do
0282デフォルトの名無しさん (アウアウ Sa9f-UmMt)
2016/09/20(火) 10:41:34.59ID:zWY6BtDnadocument.getElementsByTagName('a')
0283160@JavaScript ◆EpG1YCxoik (アウアウ Sa9f-UmMt)
2016/09/20(火) 10:42:55.89ID:zWY6BtDna多分俺が許せないだけなんだろうけど、彼は。
0285160 ◆EpG1YCxoik (アウアウ Sa9f-UmMt)
2016/09/20(火) 12:47:16.08ID:zWY6BtDna彼があなたを許せない事と俺が◆SEdFBOkLSwと同一人物と思われることは別問題だけどな
あなたに同情はするが、あなたは複数のレスを繋ぎ合わせないと正解に辿りつけない書き方をしているようだし、半分ぐらいは自己責任だと思う
0286デフォルトの名無しさん (ワッチョイ ffa7-chWY)
2016/09/20(火) 12:54:12.23ID:5olMFzu200287デフォルトの名無しさん (ワッチョイ 5bc9-Ex6f)
2016/09/20(火) 13:01:26.27ID:yINrKhu90ソースにdocument.getElementsByTagNameがあるのを確認できたが
そこからどうすればいいんだ?
0288160 ◆EpG1YCxoik (アウアウ Sa9f-UmMt)
2016/09/20(火) 13:54:34.75ID:zWY6BtDna>>282で得たa要素ノード郡を for 文や forEach で回して a.href を参照するだけ
入門サイトで DOM の基本を学べばすぐに作れるレベルで全く難しくない
0289160 ◆EpG1YCxoik (アウアウ Sa9f-UmMt)
2016/09/20(火) 14:13:07.18ID:zWY6BtDna<a href='javascript:ScheduleUtils.purchaseTicket("20160920", "043", "013402", "0431", "03", "4")' class="wrapper">
↓
https://hlo.tohotheater.jp/responsive/js/utils/scheduleUtils.js
purchaseTicket は form にセットして post してるのでURL, postパラメータのリストしか得られない
ブラウザでURLを叩いて遷移するタイプじゃない
こんな感じでリンク元のa要素からコードを辿れば出来る
0290デフォルトの名無しさん (ワッチョイ 5bc9-Ex6f)
2016/09/20(火) 18:02:31.77ID:yINrKhu90ありがとう。でもちょいと俺には難しいな‥。
要するに直リンクのURLを絞り出すのは無理ってことでいいのかな?
0291160 ◆EpG1YCxoik (アウアウ Sa9f-UmMt)
2016/09/20(火) 19:16:06.94ID:zWY6BtDnaURLとパラメータはわかるのでPOSTメソッドを送信する仕組みがあるなら可能
この辺のキーワードで分からなければ諦めるべきかと
0292160 ◆EpG1YCxoik (アウアウ Sa9f-UmMt)
2016/09/20(火) 19:23:54.00ID:zWY6BtDnaサーバがGETパラメータも受け付けるようにしていれば可能と思って試してみたら出来た
ttps://hlo.tohotheater.jp/net/ticket/043/TNPI2040J03.do?site_cd=043&jyoei_date=20160921&gekijyo_cd=0431&screen_cd=03&sakuhin_cd=013402&pf_no=3&fnc=1&pageid=2000J01&enter_kbn=
URL生成が面倒だが、直リンクも出来なくはないな
JavaScriptコード解析が面倒だから制作代行までする気はないが
0293デフォルトの名無しさん (ワッチョイ 5bc9-Ex6f)
2016/09/20(火) 21:00:08.19ID:yINrKhu90おぉー、凄いっ!!
それは発売前の上映回のURLも抽出できますか?
もしできるなら俺みたいな素人でも使えるような仕様で作ってもらえませんか?
有償でも構いません。きちんとお礼はします。
半分と言わずほぼ自己責任かもしれんが、
複数のレスや、一つのレスからわかってる160 ◆EpG1YCxoikみたいな人が居る以上、そうでない奴は余計に哀れになるわ。
>>286
突かれとるんだよ。。
0295デフォルトの名無しさん (ワッチョイ 83ce-chWY)
2016/09/20(火) 21:04:38.25ID:fS5Ni7aU0不正は出来ないと言っておこう。
0296160 ◆EpG1YCxoik (アウアウ Sa9f-UmMt)
2016/09/20(火) 21:56:24.19ID:zWY6BtDna質問スレなんだからあなたが作る行為の手助けはしても制作代行はしないぞ(>>1のルール違反でもある)
それに2chのようなきちんとした担保のない場で有償の仕事を引き受ける気はない
適当な業者に費用を払ってお願いするのが筋
0297160 ◆EpG1YCxoik (アウアウ Sa9f-UmMt)
2016/09/20(火) 22:09:05.57ID:WhzcSu5aaいや、俺も過去の◆SEdFBOkLSwと他の人のやり取りを見てようやく理解できた(>187)と思ったらいろいろ突っ込みをもらった口だぞ
今でもあなたの考えを理解できない部分はあるが、面倒だから質問してないだけ(質問しても期待する程にははっきりした回答が得られない)
もし、◆SEdFBOkLSwが誰にも質問されていなかったら、今でもあなたの考えが全く分からなかったと思うよ
だから、◆SEdFBOkLSw に「初めから分かるように全部書け」な気持ちは少なからず持ってる
0298デフォルトの名無しさん (ワッチョイ 27a6-Q9AQ)
2016/09/20(火) 22:15:16.83ID:3dWZHagR00299160 ◆EpG1YCxoik (アウアウ Sa9f-UmMt)
2016/09/20(火) 22:39:51.58ID:WhzcSu5aahttps://developer.mozilla.org/ja/docs/Web/JavaScript のチュートリアル(リファレンスは辞書的に使う)
MDNを学び終えたら http://uhyohyo.net/javascript/
ある程度、学んだら仕様書は一通り読めるようになった方がいい
http://jtdan.com/spec/
0300デフォルトの名無しさん (ワッチョイ 5bc9-Ex6f)
2016/09/20(火) 23:13:10.04ID:yINrKhu90わかりました。ご丁寧にありがとうございました。
0301デフォルトの名無しさん (ワッチョイ 5b5b-chWY)
2016/09/21(水) 00:54:15.96ID:g4LO1Cu10既にプログラミングが出来る(JavaScriptの初心者=他言語で500行程度なら問題なく書ける)のならMDN。
299と同じだが>>7
プログラミング自体の初心者なら、多分C#とかJavaとかの方が上達が早いからそうした方がいい。
ソースはこのスレの馬鹿共。
Ruby on Railsの話だが、以下ページでとんでもない数のコメントがついているのを参考にすればいい。
http://blog.sumyapp.com/2013/07/no-recommend-rails/
なるほど、それはすこし驕ってたな。
気をつけるわ
0303デフォルトの名無しさん (ワッチョイ 177b-2wAQ)
2016/09/21(水) 11:25:46.75ID:Fil1hk+D0他人のサイトを解析して、所定の方法以外でアクセスすると、営業妨害で逮捕される
そのサイトが、アクセスを許可している、APIを提供していない場合、
ソースコードが公開されていても、ツールでアクセスしてはいけない
君にツールでのアクセス権は、許可されていない。
手作業で、通常のアクセスに限る。そうしないと営業妨害
自作ツールを作って、図書館に毎日、1万回以上アクセスしていた、男が有罪だった
0304160 ◆EpG1YCxoik (アウアウ Sa9f-UmMt)
2016/09/21(水) 13:00:32.28ID:/STonJJWa「不正アクセス禁止法」と「業務妨害罪」がごっちゃになってないか?
岡崎図書館事件では「1秒に1回の頻度でアクセスするクローラの動作」を業務妨害容疑として訴えられたもので不正アクセスは関係ない
技術者目線でみればこのクローラの挙動は常識的な範囲という意見が主流だと思う
https://ja.wikipedia.org/wiki/%E5%B2%A1%E5%B4%8E%E5%B8%82%E7%AB%8B%E4%B8%AD%E5%A4%AE%E5%9B%B3%E6%9B%B8%E9%A4%A8%E4%BA%8B%E4%BB%B6
http://takagi-hiromitsu.jp/diary/20100710.html
訴えられた方は最終的に「相手サーバのパフォーマンスを自分勝手に予測し、レスポンスに気を配らなかった」と折れているが
http://librahack.jp/okazaki-library-case/
あと、クローラは一般に認められる範疇で問題のある行為ではない
検索エンジンのbotも最近はJavaScriptを解釈してリンク先を辿るものがあるしね
気になるのは ttps://hlo.tohotheater.jp/net/ticket/043/TNPI2040J03.do
がPOSTパラメータを使っていて、GETパラメータでリクエストする事は考慮していなさそうな事だが
レスポンスは同じなので、「本来制限されているコンテンツを得る行為」には該当しない
とはいえ、GETパラメータのリクエストが制限される可能性はあるので、POSTパラメータを送っておく方が安心だけどね
0305デフォルトの名無しさん (ワッチョイ 83ce-chWY)
2016/09/21(水) 21:44:46.57ID:NGNffyIV0わかったか? 今度から気をつけな。
0306デフォルトの名無しさん (ワッチョイ 1c7b-hDf0)
2016/09/22(木) 06:51:12.63ID:esuUIiS60右クリックメニューが開かないように作っている
クローラーで解析すれば、こういうのもDLできてしまう。
DLされたくないから、わざわざこういうように作っているのに、
回避技術を使って、DLすれば営業妨害
たった1円でも、盗電・他人の水を使っただけでも、有罪になる
相手が被害届を出すのは自由。
エロサイトでもクロールしていて、刑事が会社に来れば、
それだけでも退社せざるを得ないw
人の尻馬に乗るなよ(笑)
0308デフォルトの名無しさん (ワッチョイ 3d9d-CmFv)
2016/09/22(木) 11:38:39.64ID:ufH1buhr0スレ違い
0309デフォルトの名無しさん (ワッチョイ ddce-5q76)
2016/09/22(木) 11:43:30.70ID:zXBENXMk0言葉が丁寧なだけで、俺と言っていることは同じなんだが?w
そう言う趣旨でこのスレ立てたんだったよな。面目ない。
>>309
なら、俺と同じく伝えるのが下手()なんじゃない?
とあまり嫌味言っても仕方ないが、相手になるほどと言わせられなかった奴が、なるほどと言わせられた奴に乗っかって「俺同じ事言ってたんだぜ」と言っても馬鹿にしか見えないわ。
0311デフォルトの名無しさん (ワッチョイ ddce-5q76)
2016/09/22(木) 13:28:52.43ID:zXBENXMk0俺の場合、わざとやってるからなぁw
でそんなことより、お前認めたよな?
自分の説明が下手だって。
0312デフォルトの名無しさん (スププ Sdb8-xdvH)
2016/09/22(木) 13:40:31.50ID:3pIcfs21d何を絡んでるかもうわからんわ。
嫌味だって書いたところで、それにマジ突っかかりされても。
ではコテハン捨ててだれを「呼ばわり」するか楽しみにする事にするわ。
んでは。
0313デフォルトの名無しさん (ワッチョイ ddce-5q76)
2016/09/22(木) 14:38:16.38ID:zXBENXMk0俺は内容に対して煽ってるだけだからなw
0314デフォルトの名無しさん (ワッチョイ 3d9d-CmFv)
2016/09/22(木) 14:51:45.59ID:ufH1buhr0どこかのチャットでやった方が効率良いんじゃないの?
0315160 ◆EpG1YCxoik (アウアウ Sa25-eLic)
2016/09/23(金) 21:13:22.19ID:SEw5gZaja> ではコテハン捨ててだれを「呼ばわり」するか楽しみにする事にするわ。
それをやられると、あなたの発言を俺と勘違いする奴が出てくるので勘弁してほしい
(ワッチョイ 23ce-chWY) との応酬はどちらかがレスを止めれば良かった
初めは違ったのかもしれないが、後半は意地の張り合いになっているから議論する意味は全くない
何にでも「切り上げ時」ってものがある
0316デフォルトの名無しさん (ワッチョイ ddce-5q76)
2016/09/23(金) 22:28:34.17ID:MCHe7LJO0なんで盛り上がってるときにやめないといけないの?って感じだよw
コテハン & レスを返してくる & スキがある内容 &
突かれて痛い点(何度聞いても答えない点)がはっきりしてる
遊ぶ相手には最適でしょw
0317デフォルトの名無しさん (オッペケ Src9-xdvH)
2016/09/23(金) 23:13:29.45ID:a1JqpWb9r確かに議論の余地はないな
0318デフォルトの名無しさん (アウアウ Saf6-xdvH)
2016/09/24(土) 02:20:31.69ID:bcRI8Hfya突かれて痛い点とかなんとか言うが、ちゃんと指摘してるのに、自分の理解が及ばないが故に「それは無効、言ってない、はいバリアー!」みたいな小学生みたいな真似されりゃ、諦めもするよ。
>>317
技術的もあるけど、概念的な話というか、実装に対しての反対側の話がしたいなら形而上学的な話になって仕方ないはずなんだが、こいつには理解できんらしいんよね。
俺は最初は無駄ではないと思ってたよ。
0319デフォルトの名無しさん (ワッチョイ 613c-Px3x)
2016/09/24(土) 15:19:34.43ID:qxCcVgpZ0無能と無能が喧嘩してるのは、普通に質問したい初学者にとって迷惑でしかないからやめろと
0320デフォルトの名無しさん (ワッチョイ ddce-5q76)
2016/09/24(土) 15:26:00.03ID:e4J3FKju0まあ単純に「Promiseっぽいもの」の一言で
そいつの会社独自のライブラリで他人には関係ないものの話を
しているなんてわかるわけないし、
そもそも他人に関係ない話であれば、ここでする意味はないし、
さらにいうならばPromiseの話題でPromiseではないものへの
対応コードを入れる意味は無いわけだ。
話をまとめるとこういうことだよ。
0321デフォルトの名無しさん (オッペケ Src9-xdvH)
2016/09/26(月) 08:56:44.88ID:vSvkRnqZr一方は痛い奴(と本人は思ってる)を叩いて遊び、一方はコードや技術概念を突き詰める
0322デフォルトの名無しさん (ワッチョイ bece-5q76)
2016/09/26(月) 09:13:32.77ID:juGwjv/D00323デフォルトの名無しさん (オッペケ Src9-xdvH)
2016/09/26(月) 09:33:17.87ID:vSvkRnqZr0324デフォルトの名無しさん (ワッチョイ bece-5q76)
2016/09/26(月) 09:37:43.74ID:juGwjv/D00325デフォルトの名無しさん (スフッ Sdb8-xdvH)
2016/09/26(月) 12:09:05.42ID:FLo6YfYTdある発言はある発言の対偶に等しいと理解できないんだよ。
0326デフォルトの名無しさん (オッペケ Src9-xdvH)
2016/09/26(月) 12:25:35.01ID:vSvkRnqZr煽って煽って相手が醜態を晒すのを手ぐすね引いて待っている
あの手この手でアプローチをかけてとんでもない彼が失態を晒して「ほら俺のいった通りだったでしょ?」という瞬間を心待ちにしてる
相手をからかって遊ぶのが目的だから話題に一貫性がなくても構わないし、技術的な話題もどうでもいい
そういう目的意識の差を感じる
0327デフォルトの名無しさん (オッペケ Src9-xdvH)
2016/09/26(月) 12:36:15.98ID:vSvkRnqZr彼は>>302で自分の過ちを認めているわけで死体に鞭打つような真似は大人気ないぞ
0328デフォルトの名無しさん (スフッ Sdb8-xdvH)
2016/09/26(月) 12:38:39.21ID:FLo6YfYTdどう批判されてるのか悩む。
醜態なんか晒すの待たなくても、既に醜態晒してるじゃん。
ずーっと俺は同じ事言ってたつもりなんだが、何度も何度も一つが倒れそうになったら、別の事を引っ張り出してきて一所懸命に的外れな事言われてたと思ってるよ。
たまに、それはそうだな、って納得すんのもあったけど。
0329デフォルトの名無しさん (スフッ Sdb8-xdvH)
2016/09/26(月) 12:41:41.95ID:FLo6YfYTd実例があった方がわかりやすいからな。
それに関してはなんぼでも鞭打てばいいと思うよ。
死体に鞭打って楽しいなら打つべきだと思うが。他人に迷惑かからんうえに相手も死んでだし。
0330デフォルトの名無しさん (ワッチョイ eaa7-5q76)
2016/09/26(月) 13:30:47.57ID:zwjJTZsm00331デフォルトの名無しさん (ササクッテロ Spc9-Px3x)
2016/09/26(月) 13:42:40.99ID:DOkGWhZ/p俺が>>228で◆SEを(setTimeoutというバッドノウハウをさも一般的なものの様に晒す)無能呼ばわりしたのに対して>>230でその通りと認めてるぞ?
まあ何か読み間違えてる気配がするがそれはそれで◆SEの無能っぷりが強調されるのだからそれで満足しとけよ
0332デフォルトの名無しさん (ワッチョイ abc9-rzru)
2016/10/05(水) 01:05:21.26ID:PmOsfWOQ00333デフォルトの名無しさん (ワッチョイ fbce-RPp1)
2016/10/05(水) 21:46:15.04ID:f4G2o0Wy00334デフォルトの名無しさん (ワッチョイ 7f5b-+y5M)
2016/10/05(水) 23:39:08.09ID:ocwKASsk0....
var packagePath = (0, _atomLinter.findCached)(fileDir, 'package.json');
こういう記述に出会ったのですが、これは関数呼び出しをしていると考えてよろしいのでしょうか?
もしそうならば、_atomLinter.findCached(fileDir, 'package.json') と違って (0, _atomLinter.findCached) は何を意味しているのでしょうか?
これだけではわからないかもしれませんが
0335デフォルトの名無しさん (アウアウ Sad9-lsIp)
2016/10/06(木) 05:27:31.88ID:UiyyjboBa(0, _atomLinter.findCached)はカンマ演算子によって左側が切り捨てられて(_atomLinter.findCached)になる
あとはただの関数呼び出し
0は何の役にも立ってない
0336デフォルトの名無しさん (ワッチョイ aa5b-892l)
2016/10/06(木) 10:06:25.24ID:vBPKLb6z0ありがとうございます。
カンマ演算子ですか。
演算子と意識していなかったので全然わかりませんでした。
ちょっとしたコードを書いて確かめてみました。
初期値を与えるのを意図しているようですが、おっしゃる通りに意味が無いようですね。
この人の書いたコードは、下記のようにnullやundefinedなどが入らないようにしっかりと値の判定をしているので似たように書いてしまったのかもしれませんね。
var prefixPath = config.globalNodePath || getNodePrefixPath();
0337デフォルトの名無しさん (アウアウ Sad9-lsIp)
2016/10/06(木) 10:48:53.61ID:UiyyjboBaごめん嘘
カンマ演算子を適用すると(findCached)になる
だからメソッドじゃなくて関数として呼び出されることになる
例)
var foo = 'outer';
var obj = {
foo: 'inner',
bar: function(){
console.log(this.foo);
}
};
obj.bar(); //innerと表示
(0, obj.bar)(); //outerと表示
0338デフォルトの名無しさん (ワッチョイ aa5b-892l)
2016/10/06(木) 13:05:39.65ID:vBPKLb6z0再度の回答、ありがとうございます
var hage = (0, ((hoge) => hoge)(1));
というコードしか確かめませんでしたので、違いがあるのが分かりませんでした。
提示いただいたコードを適当に動かしただけでは、thisがundefinedになるため動きませんでしたがthisが異なっているのは確認できました。
今のところthisを変えると言うか呼び出し元を変えるための構文と思っておくことにします。
開発者ツールが適用出来れば良いのですが、適用しづらいと言うか適用仕方が分からない構成になっています。
_atomLinter.findCached(fileDir, 'package.json');と変えても、正常に動いているように見えます。
もっとも細かい関数の動きを調べる必要はないので、今のところはこの程度の理解で済ませておきます
0339デフォルトの名無しさん (ワッチョイ f9ce-lsIp)
2016/10/06(木) 22:27:16.11ID:ki04Ecez0var o = {v: 1, foo: function() {console.log(this)}}
o.foo(); // => Object {v: 1}
(o.foo)(); // => Object {v: 1}
(0, o.foo)(); // => Window {...}
o.foo.call(null); // => Window {...}
これで何がやりたいかわかるやろ?
0340デフォルトの名無しさん (ワッチョイ 019d-psoB)
2016/10/08(土) 16:34:26.85ID:70hrlDpk0<input type="button" value="変更" id="btn" />
<div class="aaa bbb" id="box">文字列< /div>
#btnをクリックする度に#boxにクラス'ccc'を追加、
追加されている場合は削除という感じにしたいので
jQueryのtoggleClass()のような感じです
標準APIのみでシンプルにやる方法はないのでしょうか?
0341デフォルトの名無しさん (ワッチョイ 42a7-lsIp)
2016/10/08(土) 17:40:17.71ID:fCjDUJos0ほい
0342デフォルトの名無しさん (ワッチョイ f9ce-lsIp)
2016/10/10(月) 23:10:44.49ID:oCisyuHf0やっぱりjQueryをパクったのかな?
http://caniuse.com/#feat=classlist
Android 3以上じゃないと動かないし、
IEは10以上、Safariも5.1以上
サポートされたのは比較的最近だしね。
0343デフォルトの名無しさん (オッペケ Sr4d-xaNP)
2016/10/10(月) 23:22:01.29ID:cHikoA2wrclassListは返り値が配列に近いのが分かりやすくていいな
0344デフォルトの名無しさん (ワッチョイ eb90-ByRo)
2016/10/18(火) 20:45:08.01ID:IbB57MNR0$(function(){
// ここにプログラムを記述
});
呼び出し側からはどう呼んでいるのでしょうか?
0345デフォルトの名無しさん (ワッチョイ 1bce-8qPS)
2016/10/18(火) 21:39:46.91ID:2Y34d6Lk0foo(function() {
// ここにプログラムを記述
})
そしてこういう関数を作ればいいだけ。
function foo(func) {
func();
}
この手の処理をここまで直感的かつシンプルに書けるのは
JavaScriptが一番じゃないかな?
0346デフォルトの名無しさん (オッペケ Srd7-Oa01)
2016/10/18(火) 21:48:53.07ID:Vq083WMfrごく普通のコールバック関数
http://qiita.com/matsuby/items/3f635943f25e520b7c20
0347デフォルトの名無しさん (ワッチョイ 7b5b-Oa01)
2016/10/18(火) 23:13:36.51ID:TMbk3UjO0横からだけど参考になります
JSすごいわ
0348デフォルトの名無しさん (アウアウ Sac7-QR+e)
2016/10/19(水) 14:30:36.50ID:BuiU+rAjaいつ来るかわからないコードを延々と待ち続ける心情を理解出来ないわけではないと思うのだが
0350デフォルトの名無しさん (ワッチョイ 3f0f-AIfR)
2016/10/25(火) 01:39:10.58ID:UGDfYeLy0リンクにタブのカーソルがあるとき、エンターを押しっぱなしにすると連続でリクエストを送ってしまいます。
サーバに負担がかかるので、それをやめたいのですが、どういった実装が必要でしょうか?
0351デフォルトの名無しさん (ワッチョイ 6aa7-AIfR)
2016/10/25(火) 02:17:27.30ID:ptXLDz+K00352デフォルトの名無しさん (オッペケ Sr89-YT5Q)
2016/10/25(火) 12:17:41.58ID:ZMREunEJr一般にはkeyupしたときにsubmitが確定するが、そうなってないのでクリックハンドラ処理がおかしいのでは?
submitイベントハンドラにすると良い
0353デフォルトの名無しさん (ワッチョイ 6aa7-AIfR)
2016/10/25(火) 13:57:41.15ID:ptXLDz+K0二度目以降は止めたいなら単に自身をremoveEventListenerすればいいし
間隔が問題ならdebounce処理を間に挟んで間引くのが無難なやり方だよ
0354デフォルトの名無しさん (ワッチョイ fd9d-kL33)
2016/10/25(火) 14:29:29.67ID:9wvcs0ok0if (document.activeElement.id == this.id) { return; }
のようにタブのカーソルがあるときは実行しないようにしたら?
0355デフォルトの名無しさん (アウアウ Sae5-tZnL)
2016/10/25(火) 20:08:35.95ID:cZNQUySfaリンクをクリックしたらページ遷移が1回だけ発動するはずだが、どのようなコードになっているのか?
現象を再現可能なコードをjsfiddleにでもUP
何となく、a要素を <input tyoe=
0356デフォルトの名無しさん (ワッチョイ 17ce-AIfR)
2016/10/25(火) 21:50:19.14ID:2bCSgEUm00357デフォルトの名無しさん (アウアウ Sae5-tZnL)
2016/10/25(火) 23:27:28.69ID:hDtHd2Cdahttps://jsfiddle.net/noosyxrh/
上例はデフォルトアクションのタイミング制御しかしないので、やりたい処理に応じて上手いこと書き換える必要があるが
[Enter] キー押下で click が連続発火しなかったので、なにがしか処理方法に問題がある気がしないでもない
0358デフォルトの名無しさん (ササクッテロ Sp89-vevC)
2016/10/25(火) 23:46:36.30ID:TvY7V7/qp0359デフォルトの名無しさん (スプッッ Sdc8-YT5Q)
2016/10/26(水) 21:12:13.47ID:OgUHHQRXdjqueryで要素のstyleを変えるにはcss()メソッドを使えばいいと分かったのですが、
classのstyle等はどうやって変えるのでしょうか
クラスに属するひとつひとつの要素のstyleを変えたいのではなく、
chromeの検証のstyleタグを開くと一番上がelement.styleで、
その後適用が後のものから順にクラス等のcssが表示されていますが、それを変更したいのです
よろしくお願いいたします
0360デフォルトの名無しさん (ワッチョイ fd9d-kL33)
2016/10/26(水) 22:28:46.35ID:RGR5F2yC0変更なら elm.attr('class', hoge) で変更する
0361デフォルトの名無しさん (スプッッ Sdc8-YT5Q)
2016/10/26(水) 22:35:09.97ID:+ptKBLbQdすみません、要素のクラスを変えたいのではなく、
クラスのstyleを変えたいのです
0362デフォルトの名無しさん (アウアウ Sae5-tZnL)
2016/10/26(水) 22:38:40.25ID:pP2wLoL4adocument.styleSheets でぐぐるべし
0363デフォルトの名無しさん (ワッチョイ fd9d-kL33)
2016/10/26(水) 22:39:00.61ID:RGR5F2yC0Chromeならelement.stylesで要素を参照して
同じ名称でhead内にcssを差し込むしかないね
0364デフォルトの名無しさん (スプッッ Sdc8-YT5Q)
2016/10/26(水) 22:44:02.68ID:+ptKBLbQdありがとうございます!
調べてみます!
0365デフォルトの名無しさん (ワッチョイ 17ce-AIfR)
2016/10/26(水) 22:56:56.16ID:Tc/AxpVE0クラスのスタイルは変えてはいけません。
できたとしてもそれは最終手段であり、通常はやってはいけません。
0366デフォルトの名無しさん (ワッチョイ fd9d-kL33)
2016/10/26(水) 23:06:47.69ID:RGR5F2yC0window.addEventListener('load', function() {
var style = document.createElement('style');
style.setAttribute('type','text/css');
style.innerHTML = '' +
'.abc { color: red; }' +
'.def { color: green; }' +;
document.head.appendChild(style);
});
stylesheetで上書きする方が無難でいいと思うけど
0367デフォルトの名無しさん (アウアウ Sae5-tZnL)
2016/10/26(水) 23:54:56.21ID:pP2wLoL4aほとんどの場合は classList.add や setAttribute で属性追加してカスケード処理するのが有用だとは思うが、背景が伏せられているのでよくわからん
自己責任で好きなようにやればいい
0368デフォルトの名無しさん (ブーイモ MMff-O9pn)
2016/10/27(木) 08:15:00.86ID:RBAQUZqxM0369デフォルトの名無しさん (ワッチョイ 7bd4-0DI1)
2016/10/28(金) 20:30:06.56ID:FhhZb6Sy0ファイルに書いたjsファイルを特定のページに対して実行するのってどうすればいいんでしょうか
検索してもブックマークレットってURLに直接書くタイプのしかでてこなくて…
0370デフォルトの名無しさん (ワッチョイ 7fa7-0DI1)
2016/10/28(金) 22:11:50.22ID:3tZbr/Tc0開くたびに実行したいならブラウザ拡張機能にする
0371デフォルトの名無しさん (ワッチョイ f7d4-0DI1)
2016/10/29(土) 05:01:04.49ID:mzVDYMHP0また明日拡張機能探してみることにします
ありがとうございました
0372デフォルトの名無しさん (ワッチョイ fb5b-0DI1)
2016/10/29(土) 10:02:00.80ID:jtquJtCQ0つGreasemonkey
0373デフォルトの名無しさん (ワッチョイ fbd4-0DI1)
2016/10/29(土) 14:26:59.38ID:4L5uX2dN0javascriptや認証のあるページで最終表示結果のHTMLの中の
特定要素だけconsoleに書き出すみたいなことをやりたいんですけど
document.getElementsByClassName('クラス名');
だとみつからないみたいなんですけど
これでとれるのってjavascript実行前のソースなんですか?
右クリックページ保存やったときに保存されるみたいな最終表示結果を取得するのってどうしたらいいんでしょうか
0374デフォルトの名無しさん (ワッチョイ 639d-6yLz)
2016/10/29(土) 15:11:47.91ID:eSvC8hNl0script内で実行後に
console.log(document.getElementsByClassName('クラス名'););
0375デフォルトの名無しさん (ワッチョイ fbd4-0DI1)
2016/10/29(土) 15:28:25.26ID:4L5uX2dN0script内で実行後っていうのはどういうことなんでしょうか
chromeの拡張機能のこともいまいちわかってなくて
入門サイトみてmanifestをみようみまねでかいて
contents scriptに指定したjsファイルにこんな感じでかいてるだけなんですが
var elements = document.getElementsByClassName('クラス名');
if(elements.length <= 0) {
console.log("みつからない");
}
var text = '';
for (var i = 0, n = elements.length; i < n; i++) {
text += elements[i].innerHTML;
}
console.log(text);
みたいな感じでかくとみつからない表示になってしまいます
ソースを表示してみるとjavascriptで生成してるページでその中にはターゲットクラス名が含まれておらず
右クリック保存だとちゃんとターゲットクラス名が含まれたHTMLが保存できます
0376デフォルトの名無しさん (ワッチョイ 639d-6yLz)
2016/10/29(土) 15:45:31.59ID:eSvC8hNl0var elements = document.getElementsByClassName('クラス名'); が
scriptが読み込まれる前に生成されていないんだと思うが
0377デフォルトの名無しさん (ワッチョイ 7fa7-0DI1)
2016/10/29(土) 21:09:20.12ID:ZzJnDxi00それでもページのスクリプトより実行が早くなるならsetTimeoutで更に遅らせるなり
MutationObserver等を使って目当ての要素が挿入されるのを監視するのが無難
0378デフォルトの名無しさん (ワッチョイ fbd4-0DI1)
2016/10/29(土) 21:36:26.17ID:4L5uX2dN0ありがとうございます!
run_at のほうははじめから document_idle になってましたがダメで
setTimeOutを使ってみたら期待通りの動作しました
ほんとにありがとうございます
0379デフォルトの名無しさん (ワッチョイ fbd4-0DI1)
2016/10/29(土) 22:10:35.71ID:4L5uX2dN0ページを一定時間ごとに自動更新して特定のデータを取得し続けるみたいなことがしたいんですけど
今度は window.location.reload(); を読んでリロードすると
Consoleがリセットされてしまって過去のデータが残らないんですよね
さすがにローカルファイルに書き出すなんてセキュリティ上無理ですよね…
更新じゃなくて同じページに過去のデータをポストで送ってそれを取得し続けるみたいなことをやる必要があるんでしょうか
何かいい方法があればお知恵を借りたいんですけど…
0380デフォルトの名無しさん (ワッチョイ 639d-6yLz)
2016/10/29(土) 22:18:30.10ID:IiHCnPUJ0localStorageに保存すれば?
0381デフォルトの名無しさん (ワッチョイ 7fa7-0DI1)
2016/10/29(土) 22:20:38.86ID:ZzJnDxi00Chrome拡張機能APIで確かファイル書き出しもできたと思うが詳しくは知らない
0382デフォルトの名無しさん (ワッチョイ fbd4-0DI1)
2016/10/30(日) 00:47:15.90ID:wlHDuxDi0また明日調べてやってみます
何から何まで本当にありがとうございます
0383デフォルトの名無しさん (ワッチョイ e7d4-0DI1)
2016/10/30(日) 12:45:09.20ID:yceMF8Zl0おかげさまで目的の動作するプログラムになりました
1からいろいろ教えていただいて本当にありがとうございました
0384デフォルトの名無しさん (ワッチョイ 638f-ijxz)
2016/10/31(月) 13:05:19.08ID:zObjWshz0jsだとどうするんですか?
instance1.getClassName() === instance2.getClassName()
みたいな感じで比較できればいいんですが
0385デフォルトの名無しさん (ワッチョイ ef5b-d7wh)
2016/10/31(月) 13:18:31.69ID:zLbftr0J0instance1.constructor == instance2.constructor
0386デフォルトの名無しさん (オッペケ Sr7f-Jz20)
2016/10/31(月) 16:59:41.59ID:AB5WXEkbrObject.getPrototypeOf()
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Object/getPrototypeOf
0387デフォルトの名無しさん (オッペケ Sr7f-Jz20)
2016/10/31(月) 23:14:20.37ID:hNQh9muDr0388デフォルトの名無しさん (ワッチョイ 638f-ijxz)
2016/11/01(火) 09:28:16.69ID:BSBrE7zi0ありがとうございます。getPrototypeOf()を使えってことですね。
(constructorは書き換えられるかもしれんので)
0389デフォルトの名無しさん (ササクッテロラ Sp7f-QpRP)
2016/11/01(火) 15:25:48.55ID:5Vz9y2ecpChrome API関連のスレって無いのでしょうか?
0390デフォルトの名無しさん (ワッチョイ f7c9-0DI1)
2016/11/02(水) 12:57:38.86ID:A9UccZAb0残念だけど無いよ
0391デフォルトの名無しさん (ワッチョイ 6f3c-KT0d)
2016/11/11(金) 02:38:31.36ID:D2wQKa1/0久々に覗いたらスレいっぱいあるねえw
0392デフォルトの名無しさん (ワッチョイ 93d4-teht)
2016/11/12(土) 09:14:42.56ID:QNzqS1vq0みたいな記述があったんですが $("〜") どういう意味なんでしょうか
hjavascriptの基本文法だけ読んでみたんですがそれらしい記述がのってなかったので…
0393デフォルトの名無しさん (ワッチョイ 139d-8a14)
2016/11/12(土) 09:42:04.29ID:cH6osgXp0a = document.querySelectorAll("div.shosai a")[0];
0394デフォルトの名無しさん (ワッチョイ 93d4-teht)
2016/11/12(土) 10:09:59.48ID:QNzqS1vq0これってjavascriptじゃなくてjqueryっていうのの機能なんですか…
0395デフォルトの名無しさん (ワッチョイ 139d-8a14)
2016/11/12(土) 11:44:11.76ID:D+qxzNnY0> a=$("div.shosai a").get(0);
a=jQuery("div.shosai a").get(0);
0396デフォルトの名無しさん (ワッチョイ 93ce-teht)
2016/11/12(土) 13:32:53.02ID:/Oox7HNO0$はただの名前(関数名)。今の時代であれば普通はjQueryなはず。
Prototype.jsが使っていたり、似たような機能をもつ
何かが使っていたりしないことはないけれど。
jQueryはDOM操作を行うときに使われる有名なライブラリ
CSSセレクタを使って複数の要素を取得するのはjQueryでもjQueryを使わない場合でも同じだが
jQueryの場合はCSSのように複数の要素に対して一括で処理を適用できるから
ループが必要になるjQueryを使わないやり方よりも大幅にコード量を減らすことができる。
0397デフォルトの名無しさん (ワッチョイ 93d4-teht)
2016/11/12(土) 15:54:26.15ID:QNzqS1vq0なるほど関数名だっていわれれば納得しました
あともう1つ
var maturl="",nowstat;
みたいな記述があったんですけど
値をカンマで2つならべるってどういう意味なんでしょうか
0398デフォルトの名無しさん (ドコグロ MM5f-O45g)
2016/11/12(土) 15:57:17.48ID:ZMSwRqOtMそれは値を並べているのではなく、宣言を並べている。
var maturl="";
var nowstat;
と同じ。
0399デフォルトの名無しさん (オッペケ Sr2f-PwKp)
2016/11/12(土) 18:49:09.54ID:D2DhjDPcr変数宣言とカンマ演算子の混同はたまに聞く話だな
0400デフォルトの名無しさん (ワッチョイ 8376-9KU2)
2016/11/13(日) 21:19:30.49ID:wGLcmS8h0テキストファイルをdropboxからダウンロード、編集してアップロードするブックマークレットを作りたいのですが、難しいですか
リクエストヘッダを追加してHTTPリクエストを送信する方法が見つからず悩んでいます
0401デフォルトの名無しさん (ワッチョイ 033c-9MLS)
2016/11/13(日) 21:57:08.84ID:tmpnoiwb0つXMLHttpRequest.setRequestHeader()
詳細は↓
https://developer.mozilla.org/ja/docs/Web/API/XMLHttpRequest
0402デフォルトの名無しさん (ワッチョイ 8376-9KU2)
2016/11/13(日) 22:20:12.92ID:wGLcmS8h0それはクロスドメイン制約に引っかかると読んで諦めていました
今改めて調べてみるとlevel 2では大丈夫になっているようですね
もう少し自分でやってみようと思います
教えていただいてありがとうございます
0403デフォルトの名無しさん (ドコグロ MM2f-O45g)
2016/11/15(火) 13:44:11.62ID:ZSIymAkBM// a, b は適当な小数
a - b + b == a
これがfalseになることはありますか?
0404デフォルトの名無しさん (スフッ Sd1f-wOPQ)
2016/11/15(火) 14:28:43.57ID:7Oesxf9udinf寸前の時は?
0405デフォルトの名無しさん (ドコグロ MM2f-O45g)
2016/11/15(火) 15:47:05.64ID:ZSIymAkBMありがとうございます。確かにinfになれば==はfalseになりますね。
あといろいろ試したら、inf関係なくfalseになることも分かったので自己解決しました。
ありがとうございました。
0406デフォルトの名無しさん (ワッチョイ 93d4-teht)
2016/11/16(水) 10:48:52.80ID:/uklz8dZ00407デフォルトの名無しさん (オッペケ Sr2f-PwKp)
2016/11/16(水) 11:12:51.87ID:xwO+2HlPrIDEではないが、Atom
0408デフォルトの名無しさん (ワッチョイ bfa7-teht)
2016/11/16(水) 14:47:19.45ID:8IM8olFk0触って動かしてみるだけならクラウドIDEでググって出る適当なやつでいいんじゃね
0409デフォルトの名無しさん (ワッチョイ 138f-dJcJ)
2016/11/16(水) 19:16:28.12ID:k+C2KHSh0コレは圧倒的にVisualStudioCodeですわ。
TypeScriptに最適化されてはいるけどJSでも使える。
ESLintとの連携でリアルタイムでエラーを指摘してくれるしおすすめ
0410デフォルトの名無しさん (ワッチョイ 93d4-teht)
2016/11/16(水) 22:56:32.07ID:/uklz8dZ0ありがとうございました、参考にさせていただきます
0411デフォルトの名無しさん (アークセー Sxa9-2pau)
2016/11/17(木) 11:53:11.08ID:KoiSDC47x0412デフォルトの名無しさん (スッップ Sdb8-RUi6)
2016/11/18(金) 12:23:22.91ID:Fy1yogyndみたいなスペース区切りの文字列のスペースをタブに変換するために下記のようなソース作ったんですが、
ReplaceAll(´ ´, ´¥t´ );
この処理を6コラムまでで止めるにはどうしたらいいんでしょうか?
初めて質問するので分かりにくかったらすみません…
0413デフォルトの名無しさん (オッペケ Sra9-2XGH)
2016/11/18(金) 13:39:45.76ID:7aPQOtQur6コラムの意味が分からん上にRwplaceAllのコードが不明だが、行頭から6つ目の半角スペースをタブ文字に置換して7文字目以降の半角スペースは置換したくないという事か?
/^(?:[^ ]* ){}/ を String#replace で受けてコールバック関数で全置換してみては
0414デフォルトの名無しさん (JP 0H9a-2Ppy)
2016/11/18(金) 13:56:19.27ID:mP8U9SKKH6個目までを抜き出してからスペースをタブに変換するとか。
str.match(/(\w+) (\w+) (\w+) (\w+) (\w+) (\w+)/)[0].replace(/ /g, "\t")
0415デフォルトの名無しさん (スッップ Sdb8-RUi6)
2016/11/18(金) 14:17:06.92ID:Fy1yogynd>>414
7個目以降のスペースは変換しないというニュアンスで大丈夫です。
分かりずらくてすみませんでした…。
同じような文字列が複数行あるので一行なら楽なのにと考えてました。
ありがとうございます
0416デフォルトの名無しさん (オッペケ Sra9-2XGH)
2016/11/18(金) 18:48:52.51ID:UCIFFr37r正規表現がおかしかったので修正
/^(?:[^ ]* ){1,6}/
0417デフォルトの名無しさん (ワッチョイ 9fcf-RAPI)
2016/11/19(土) 04:34:43.26ID:S6bRHJ270初心者ですみません
0418デフォルトの名無しさん (ワッチョイ 9fcf-RAPI)
2016/11/19(土) 06:20:27.12ID:S6bRHJ2700419デフォルトの名無しさん (ワッチョイ 5625-UoMj)
2016/11/19(土) 08:10:18.58ID:HO2/nMyJ00420デフォルトの名無しさん (ワッチョイ 1d9d-d8X5)
2016/11/20(日) 13:38:34.89ID:LjxU80cI0(function(){
...
}());
(function(){
...
})();
これってどちらが正しいのでしょうか?
0421デフォルトの名無しさん (ワッチョイ 9e5b-S3Pk)
2016/11/20(日) 13:46:46.91ID:7MT4JQCz00422デフォルトの名無しさん (ワッチョイ 5625-UoMj)
2016/11/20(日) 13:48:44.62ID:kV+MseJx00423デフォルトの名無しさん (ワッチョイ 74c9-XpIe)
2016/11/22(火) 10:12:53.53ID:/Z/CfoTY00424デフォルトの名無しさん (アウアウウー Sa85-E+0+)
2016/11/22(火) 10:25:52.61ID:2KNYdR4wa連想配列はないが、オブジェクト初期化子がそれに近い
new Map はもっと近い
0425デフォルトの名無しさん (ワッチョイ c13c-rwfO)
2016/11/22(火) 10:39:27.46ID:GgHbx+0U0Objectで済む場合が殆どだがそれで不足なら、ES6ならMap、それ以前ならMapのPolyfillを使う
0426デフォルトの名無しさん (ワッチョイ 74c9-XpIe)
2016/11/22(火) 10:51:58.49ID:/Z/CfoTY00427デフォルトの名無しさん (ワッチョイ 9c7b-wMId)
2016/11/22(火) 12:02:19.09ID:9QZ/pTkg0オブジェクトを連想配列に使っていたら、ES3で、__proto__ でハマる
たまたま、__proto__ っていう属性を追加するとバグるから、
何か実行環境が絶対に使わないような、接頭辞を付けた方がよいかも
0428デフォルトの名無しさん (アウアウウー Sa85-E+0+)
2016/11/22(火) 12:08:14.83ID:2KNYdR4waオブジェクトを使うのなら Object#hasOwnProperty, Object.keys の使いこなしが必須(これらは __proto__ 上のプロパティを探さない)
他に Object.create や Object.defineProperty で列挙不可能なプロパティを定義する事もありうる
諸々の対策が煩わしく感じるようであれば、素直に ES6 の Map を使うのが安全で確実
0429デフォルトの名無しさん (アークセー Sxa9-2pau)
2016/11/22(火) 12:16:20.55ID:Df5HmFWpx0430デフォルトの名無しさん (ワッチョイ 9c7b-wMId)
2016/11/22(火) 12:29:17.27ID:9QZ/pTkg0varを付けると、その関数内だけのローカル変数になる。
varが無いと、グローバル変数になるから、すごく危険!
ソースコードに「use strict」と書いておけば、var の付け忘れを指摘してくれるから、安全
JavaScriptコード内で”use strict”宣言を使用すると、
そのコードは「strictモード(厳格モード)」で実行されるようになります
strictモードでは、より的確なエラーチェックが行われるため、
これまでエラーにならなかったような曖昧な実装がエラー扱いになります
0431デフォルトの名無しさん (ワッチョイ 1d8f-Th+s)
2016/11/22(火) 12:50:08.07ID:ibIuWkMx0本当に同期的な動作の関数を非同期化してasync awaitの仕組みに合わせて使いたいんですけどどうすればいいですかね。
Node.js上だったらスレッド作ってそっちに処理を投げるようにすればいいんでしょうけどブラウザで似たようなことをする方法ってないですかね?
Service Workerを使えば良さそうな気もするんですけど
0432デフォルトの名無しさん (アウアウウー Sa85-E+0+)
2016/11/22(火) 14:54:07.39ID:2KNYdR4wa> 本当に同期的な動作の関数を非同期化してasync awaitの仕組みに合わせて使いたいんですけどどうすればいいですかね。
一巡して同期処理に戻っているのでそのまま使えばいいのでは?
0433デフォルトの名無しさん (アウアウウー Sa85-E+0+)
2016/11/22(火) 15:00:55.37ID:2KNYdR4waあるいは、手段(awaitを使う事)が目的化しているのか
0434デフォルトの名無しさん (ワッチョイ 9cef-XpIe)
2016/11/22(火) 17:27:47.81ID:9V1XCmGO0動的に通信する必要がある案件がありまして、主流は何か教えてください
0435デフォルトの名無しさん (JP 0H9a-2Ppy)
2016/11/22(火) 18:08:33.97ID:P3uNoocwH今でもnode.js
0436デフォルトの名無しさん (ワッチョイ 1d8f-Th+s)
2016/11/22(火) 20:53:41.81ID:ibIuWkMx0いやいや。Promise.raceとか使ってタイムアウト処理を入れたりもできるんで
全く同じというわけでもないです。
ただ同じ大元の同期的関数だとそういうことが出来ないので。
0437デフォルトの名無しさん (ワッチョイ ff3c-tQqt)
2016/11/22(火) 21:07:02.41ID:Bvoc9IRC0自分で書いてる答えでok
>>432
ブロッキング
0438デフォルトの名無しさん (ワッチョイ 1d8f-Th+s)
2016/11/22(火) 21:56:25.81ID:ibIuWkMx0ありがとうございます。ついでにその辺を便利に自動化するようなライブラリってないですかね。
0439デフォルトの名無しさん (ワッチョイ bdce-XpIe)
2016/11/23(水) 01:05:57.96ID:5kjA5cYz0WebWorkerを使え。当然だが自動化はしてくれない。
0440デフォルトの名無しさん (ワッチョイ 4b8f-MM3T)
2016/11/25(金) 10:27:47.69ID:q/GFU+ZW0async/awaitはあくまで見かけ上同期的に見せかけているだけで
実際に同期処理として動くわけではないです。
つまり通常の同期処理だとイベントループを止めてしまうことに対して
awaitを使う場合はイベントループに処理を戻しています。
この点が違うわけですが、逆にasync awaitを使う場合、その辺を理解せずにつかうと
通常の同期処理を混ぜてしまうことになりイベントループを止めてしまうことになりかねません。
0441デフォルトの名無しさん (ワッチョイ 1fa7-lM3r)
2016/11/25(金) 15:03:36.49ID:CvsKfEOT00442デフォルトの名無しさん (ワッチョイ cf4e-PVnu)
2016/11/30(水) 01:47:39.83ID:V6Jz1e4H0node.js使えないのか?
しばらくこれが主流だぞ。
0443デフォルトの名無しさん (ワッチョイ b736-OPD4)
2016/11/30(水) 10:50:51.97ID:Sk/SQjO50PHPとJavaScriptでホームページ作っていますがJavaScriptの変数名の使い方で質問です
phpの場合
変数名 hoge1fuga hoge2fuga ……を使用する時変数iを使って
→ if(hoge'.$i.'fuga == 'abcd')
→ $h = 'hoge'
$f = 'fuga'
if($h$i$f == 'abcd')
のような書き方ができますがjavascriptの場合どう書けば良いのでしょうか。
var hoge = fuga1.checked
の時に var hoge = fuga + i + .checked の記述にするとエラーになってしいまい、変数名の使い方そのものに疑問が湧きました。
0444デフォルトの名無しさん (ワッチョイ 753c-XfGn)
2016/12/01(木) 13:58:29.23ID:oZ1ti8EX0ある期間を除外したいんですがどうすればよいでしょうか?
例えば11月1日から11月30日までの折れ線グラフで
土日のみを除外して(詰めて)表示したいんですが
サンプルでもよいのでどなたかご存知の方いたら教えてください
どうぞよろしくお願い致します
0445デフォルトの名無しさん (ワッチョイ fc7b-lw9A)
2016/12/01(木) 14:50:46.94ID:91ReGJeh0変数名は、動的に作れない
>>423-428
ここに書いてあるが、連想配列だろ
Objectで済む場合が殆どだがそれで不足なら、
ES6ならMap、それ以前ならMapのPolyfillを使う
var i = 1;
var prop = 'hoge' + i + 'fuga';
var obj = {};
obj[prop] = 'abcd';
console.log(prop, ' : ', obj[prop]);
普通は、オブジェクトのプロパティを、obj.prop と書くけど、
obj[prop] のようなブラケット記法でも書ける
ただし、オブジェクトのプロパティを連想配列として使った場合、
プロパティ名がたまたま、__proto__ と一致すると、エラーになる。
obj.__proto__ には、代入できないから
0446デフォルトの名無しさん (ワッチョイ fc7b-lw9A)
2016/12/01(木) 14:58:29.82ID:91ReGJeh0データセットと日付を対応させてみる
http://vesna-memo.com/?p=1140
d3.time.format()
0447444 (ワッチョイ 753c-XfGn)
2016/12/01(木) 15:06:58.72ID:oZ1ti8EX0データセットと日付はすでに対応付けられておりますが
土日のみをグラフ自体から切り取って平日のみをつなげて表示したいのです
そのような制御は難しいでしょうか?
0448デフォルトの名無しさん (JP 0H72-r6VC)
2016/12/01(木) 15:12:04.26ID:V0GR9lTFH元データから土日のデータを削除すればいいように思えるが。
0449デフォルトの名無しさん (ワッチョイ 753c-wK09)
2016/12/01(木) 15:26:10.57ID:oZ1ti8EX0はい、既に土日データは削除してます
ただグラフ上にある土日の期間は空欄で無駄なので省略して表示したいのです
0450デフォルトの名無しさん (ワッチョイ 865b-BMT5)
2016/12/01(木) 23:03:33.36ID:XIdZTeEF0http://qiita.com/ToshihiroGoto/items/36a4b355ba274ab25b46#proxy-%E3%81%A8%E5%85%B1%E3%81%AB%E4%BD%BF%E3%81%86
Proxyのhandlerの中で元のオブジェクトの機能をそのまま返す時に使うとのことですが、
return Reflect.has(target,name);
ではなく、素直に
return name in target;
と書けばいいだけですよね?
他のメソッドについても同じことが言えると思いますが、
それではReflectを有効に使えるのはどのような場面でしょうか?
0451デフォルトの名無しさん (ワッチョイ 52dd-2R1L)
2016/12/02(金) 03:23:30.85ID:cAbrvXmy0その例の proxy に対する in 演算子は proxy で定義された has を呼び出すので
その has 自身の定義の中では in は使えないことになる(再帰呼び出しになる)
ってことじゃない?
そのため、元々の in を表現するために Reflect が必要になると
0452デフォルトの名無しさん (ドコグロ MMf4-gqht)
2016/12/02(金) 13:09:59.88ID:1FE2fahvMありがとうございます。
targetは元のオブジェクト(obj)を指すので、再起呼び出しにはならないと思います。
実際に試しましたが、再起呼び出しにはなりませんでした。
もちろん、targetの代わりにproxyを使えば、inでもReflect.has()でも再起呼び出しでエラーになります。
やっぱりReflect.has()を使う意味が分かりません。
0453デフォルトの名無しさん (ワッチョイ 5a0d-J5J/)
2016/12/04(日) 04:59:14.28ID:cfKCrj340Uint8ArrayとUint32Arrayとか使ってスマートに実装できんだろうか?
0454デフォルトの名無しさん (オッペケ Sr8d-yaSi)
2016/12/04(日) 12:41:26.72ID:LcKQAqeVrなぜ Uint8Array が使えると思ったのか判らんが、現在のコードをさらしたら?
書いても「それは知ってる」と反応されるのは無駄だから
0455デフォルトの名無しさん (ワッチョイ 5c7b-yaSi)
2016/12/04(日) 12:49:36.96ID:sKFdzyUb00456デフォルトの名無しさん (ワッチョイ 39ce-NTgB)
2016/12/04(日) 12:56:48.83ID:ObsZQ3a00書き込みもないよなw
本人は知ったかぶりしてるようだが、全く理解してないってのがよくわかるw
0457デフォルトの名無しさん (オッペケ Sr8d-yaSi)
2016/12/04(日) 17:09:47.58ID:YTjaleeQr一応、書いたが、Uint8Array をどう活用しようと思ったのか判らんかった
https://jsfiddle.net/c6jhyume/
reduce を使った方がスマートだったかも知れん
0458デフォルトの名無しさん (ワッチョイ 39ce-NTgB)
2016/12/04(日) 20:55:45.10ID:ObsZQ3a00最初にそれに気づかない時点で終わってるよなw
0459デフォルトの名無しさん (オッペケ Sr8d-yaSi)
2016/12/04(日) 22:39:39.47ID:ZWOrjn1Erhttps://jsfiddle.net/c6jhyume/4/
なぜか制御構文を敬遠する人がいるようだが、取り立てて使いづらい訳でもない
0460デフォルトの名無しさん (ワッチョイ 39ce-NTgB)
2016/12/04(日) 22:58:03.32ID:ObsZQ3a00SyntaxError: missing = in const declaration
こうなるからつかわねーんだよw
0461デフォルトの名無しさん (オッペケ Sr8d-BMT5)
2016/12/04(日) 23:19:40.54ID:ZWOrjn1ErES7仕様上はFirefoxが正しいようだ
http://www.ecma-international.org/ecma-262/7.0/#sec-iteration-statements
「for-ofでconstが使えない」はfor-ofを使わない理由としては弱い気がするが
0462デフォルトの名無しさん (アウアウウー Sa19-BMT5)
2016/12/04(日) 23:45:43.13ID:Gn0FqIa6a各々の好みで選べば良い
for (let value of source) { push.apply(destination1, Array(4).fill(value)); }
const destination2 = source.reduce((destination, value) => (push.apply(destination, Array(4).fill(value)), destination), []);
0463デフォルトの名無しさん (ワッチョイ 865b-BMT5)
2016/12/04(日) 23:47:45.19ID:+YPrxJ8s0IterationStatement[Yield, Return]:
for(ForDeclaration[?Yield] of AssignmentExpression[In, ?Yield]) Statement[?Yield, ?Return]
他
ForDeclaration[Yield]:
LetOrConst ForBinding[?Yield]
LetOrConst:
let
const
ただ、現状 for-of と const の組み合わせに対応しているブラウザが少ない。(Edge14、GC49〜、SF10〜、iOS10〜)
http://kangax.github.io/compat-table/es6/#test-const
const > for-of loop iteration scope
0464デフォルトの名無しさん (ワッチョイ 39ce-NTgB)
2016/12/05(月) 00:13:18.04ID:PskkFbSl0babelっていうのはES6以上を今の(ちょっと前の)ブラウザで動くように変換してくれるもの。
もちろん>>463の一覧にも乗っていてきちんと対応している。
このようにブラウザ間の非互換性を吸収する機能も持っている。
babelをつかわなければ、この機能はこのブラウザで対応していたっけ?って
考える必要があるが、babelを使えばいくつもあるブラウザのことを考える必要はなくなり
たった一つ、babelで対応しているか?を考えるだけで良くなる。
0465デフォルトの名無しさん (オッペケ Sr8d-BMT5)
2016/12/05(月) 00:22:45.74ID:4g48wyMyr情報ありがとう
改めて見たらES7仕様にも書いてあった
よく読む必要があるな…
0466デフォルトの名無しさん (アウアウウー Sa19-BMT5)
2016/12/05(月) 00:30:43.63ID:nh5tVKvoaBabelを使うならSyntaxErrorが発生するはずがないが、SyntaxErrorが発生している(>460)
主張に一貫性がない
0467デフォルトの名無しさん (ワッチョイ 39ce-NTgB)
2016/12/05(月) 00:57:12.64ID:PskkFbSl0全てはお前らにブラウザ間の互換性問題の話をさせるための仕込み
俺の本当の目的はbabel布教
俺がいきなりbabel布教したって、他の人にはどれだけ問題があるか
わかりづらいだろ? 問題をお前らにさせることで問題があることを
事実だと他の人にわかりやすいようにしたのさ
0468デフォルトの名無しさん (オッペケ Sr8d-yaSi)
2016/12/05(月) 01:26:44.55ID:4g48wyMyrいずれは狼少年と同じ結末を迎える
0469デフォルトの名無しさん (ワッチョイ 39ce-NTgB)
2016/12/05(月) 01:30:18.08ID:PskkFbSl0それをBabelが解決するのも本当だよ。
0470デフォルトの名無しさん (オッペケ Sr8d-yaSi)
2016/12/05(月) 01:32:40.86ID:4g48wyMyr0471デフォルトの名無しさん (ワッチョイ 39ce-NTgB)
2016/12/05(月) 01:47:11.59ID:PskkFbSl0そこ重要?w
エラーが出るから実際につかわない人もいるだろ。
0472デフォルトの名無しさん (オッペケ Sr8d-yaSi)
2016/12/05(月) 02:01:37.33ID:4g48wyMyr(ワッチョイ 39ce-NTgB)は「>>467がポーズではないか」と疑われることは考えてないだろう?
不誠実な人は信用されない
0473デフォルトの名無しさん (ワッチョイ 39ce-NTgB)
2016/12/05(月) 03:11:18.59ID:PskkFbSl00474デフォルトの名無しさん (ドコグロ MMa9-gqht)
2016/12/05(月) 09:19:03.04ID:Gg0HaX53MBabelはそこそこ好きだけどね
0475デフォルトの名無しさん (アウアウウー Sa19-BMT5)
2016/12/05(月) 11:55:51.70ID:IVUF59c6a0476デフォルトの名無しさん (ワッチョイ c2a7-NTgB)
2016/12/05(月) 14:01:18.77ID:m8l4mHA+0黙ってNG突っ込んどけよ
0477デフォルトの名無しさん (ワッチョイ 34c9-NTgB)
2016/12/05(月) 14:17:29.39ID:py+X8wbm0関数内で使っているグローバル変数を明記するのは
どうやって書けばいいの?
0478デフォルトの名無しさん (ワッチョイ 39ce-NTgB)
2016/12/05(月) 21:45:42.89ID:PskkFbSl0そうすれば、誰も俺に反論(見えないからね)しなくなるので
助かるんだけどなぁw
0479デフォルトの名無しさん (ワッチョイ 39ce-NTgB)
2016/12/05(月) 21:46:49.92ID:PskkFbSl0そもそもグローバル変数はつかわない
0480デフォルトの名無しさん (ワッチョイ 53c3-drn7)
2016/12/11(日) 07:46:13.44ID:iSoJ1ckE0jsc.exeでJavascriptをコンパイルしてexeファイルを作りたいと思っています
いろいろ調べてWScriptを使うためにはActiveXObjectすればいいというのを見つけたのですが
var WScript = new ActiveXObject("WScript.Shell");
WScript.Run("notepad.exe", 1, 1);
はちゃんと動いたのですが、
var WScript = new ActiveXObject("WScript.Shell");
WScript.Echo("abc");
とするとハングアップしてしまって動きません
解決方法はありますか
0481デフォルトの名無しさん (ワッチョイ d35b-drn7)
2016/12/11(日) 11:33:12.05ID:+I+aM6eT0ggrks
http://language-and-engineering.hatenablog.jp/entry/20081024/1224781777
http://www.atmarkit.co.jp/fdotnet/special/dotnet_sdk/dotnetsdk07.html
0482デフォルトの名無しさん (ワッチョイ 53c3-drn7)
2016/12/11(日) 11:42:59.63ID:iSoJ1ckE0その辺は見ましたよ
わたしがやろうとしてるのは、jsc.exeでWScriptを使えないのかということ
http://stackoverflow.com/questions/9913845/converting-javascript-to-exe-wscript-has-not-been-declared
を見ると
var WScript = new ActiveXObject("WScript.Shell");
とやれば出来そうに書いてあるけど、基本的なEchoが出来ないのでなんでだろう?ということです
でも、Runが動く
0483デフォルトの名無しさん (ワッチョイ d35b-drn7)
2016/12/11(日) 12:41:13.74ID:+I+aM6eT0文盲には無理。お前のURLから辿れるところに答えが書いてある。
0484デフォルトの名無しさん (ワッチョイ 3736-maiv)
2016/12/11(日) 22:45:18.23ID:kg/mlddD0引数2つとも判定に使用していますが物凄く冗長になってしまいました。
function subをコールした時に処理を纏める方法はありますでしょうか。
//global変数
mein_hoge = {nenrei: 1, b:15, c: 30, d :40}
target1_hoge = {nenrei: 3, b:20, c: 25, d :10}
target2_hoge = {nenrei: 1, b:40, c: 13, d :30}
target3_hoge = {nenrei: 2, b:30, c: 32, d :21}
function sub(引数1,引数2){
引数1=1の時
引数2の値で10種類の計算(以下例)
//引数2=1の場合 main_hoge['b'] = Math.ceil(main_hoge['b'] * 1.1)
//引数2=2の場合 main_hoge['b'] = Math.ceil(main_hoge['b'] * 1.5)
main_hoge['c'] = Math.ceil(main_hoge['b'] * 2)
//引数2=3の場合 main_hoge['c'] = Math.ceil(main_hoge['c'] * 1.1)
…………
引数1=2の時
引数2の値で10種類の計算(違いは配列名だけ)
//引数2=1の場合 target1_hoge['b'] = Math.ceil(target1_hoge['b'] * 1.1)
(以下略)
引数1=3の時
(以下略)
}
0485デフォルトの名無しさん (スププ Sd2f-8ocn)
2016/12/11(日) 23:26:07.70ID:DSUXohxodtbl={
1:1.1
2:1.5
}
みたいなの渡せばいいんじゃないの?
配列が変わるなら、配列自体を渡せば?
使途がわからんから読みきれんけど。
0486デフォルトの名無しさん (ワッチョイ d35b-drn7)
2016/12/12(月) 00:02:42.32ID:x9ggXkxf0> 違いは配列名だけ
function sub(引数1,引数2, target_array) { // target_array は変更配列名
target_array['b'] = Math.ceil(target_array['b'] * 1.1);
ちなみに係数は>>485の形式で配列にしておきクロージャでスコープに入れ、引数2で引く。
var coeffs = [1.1, 1.5, 1.1];
function sub(引数1,引数2, target_array) {
target_array = Math.ceil(target_array['b'] * coeffs[引数2]);
おそらく 'b' や 'c' も同様に出来るのだろうからそれも。
上手く纏まらないのなら諦めてそのまま書くしかない。
あと、その手の場合はenumの値を直接扱うよりは名前で扱った方がいい。
その場合はcoeffsは配列ではなくオブジェクトになる。
(配列の方が速いが名前引きの方が後で分かりやすい。そこで速度が必要とも思えないし)
0487デフォルトの名無しさん (ワッチョイ 0bce-drn7)
2016/12/12(月) 02:01:34.20ID:l2OsM7Pl0まず第一に、グローバル変数は禁止だ。
そのグローバル変数をなくしないさい。
0488デフォルトの名無しさん (オッペケ Sr27-32/C)
2016/12/12(月) 12:35:36.33ID:VLaUejgQr次の二択
- switch 文を使う
- 配列を使う
引数2の処理は共通なので関数に逃がすか配列にしてコードを共通化するか
まあ、配列を使えばすっきりするだろうな
ところで、484はコードにすらなってないので制作依頼にも読めるんだが、自分でちゃんと書いてるんだよな?
0489デフォルトの名無しさん (ワッチョイ 53c3-drn7)
2016/12/12(月) 13:40:20.86ID:KHTlL8cv0var ExcelApp=new ActiveXObject( ”Excel.Application” )
ExcelApp.Visible=true
WScript.Sleep( 1000 )
var book=ExcelApp.Workbooks.Open( ”C¥¥Test.xls” )
var sheet=book.Worksheets( 1 )
としてエクセルファイルを開きますが、既に開かれているエクセルファイルを操作するには
どうしたらいいでしょうか
0490デフォルトの名無しさん (ワッチョイ 0bce-drn7)
2016/12/12(月) 22:35:56.90ID:l2OsM7Pl0switch文はコードを複雑にするだけだよ。
0491デフォルトの名無しさん (ワッチョイ d35b-drn7)
2016/12/13(火) 00:59:35.94ID:uBZRzWX90知らんが、そのまま開くだけじゃないか?要するに普通に2つ開くのと同じ。
一般的に考えて同期してくれるとは思えないが、最近のExcelならもしかして?
つか、そんなんでExcel開ける方がびっくりだわ。
大昔からやってる人には常識なのかもしれんが。
ActiveXでIE縛りから逃れられないってこれのことだったのか?
ついでに言っておくと、もしかして>>480って
「ダブルクリックで起動したときにEcho出力が見えません」ってオチじゃないだろうな?
それは「ハングアップ」とは言わないぞ。
0492デフォルトの名無しさん (ワッチョイ 0bce-drn7)
2016/12/13(火) 02:18:34.59ID:MvIBvV300> つか、そんなんでExcel開ける方がびっくりだわ。
> 大昔からやってる人には常識なのかもしれんが。
> ActiveXでIE縛りから逃れられないってこれのことだったのか?
大昔からっていうか、単にお前がWindowsのプログラミングを知らないだけだよ。
Windowsではな、GUIのアプリ同士が連携できる。
あるアプリの中に別のアプリを埋め込むことができる。
パイプによる連携だけじゃなくて、あるアプリをそのアプリが公開している
APIを使って操作するための共通の連携の仕組みがあるんだよ。
逆にこれがないなら、どうやってGUIアプリと連携させるんだ?
もちろんIEだけじゃなくて、Windowsで動くいろんな言語、
例えばRubyやJavaScript(node)はこの仕組をサポートしてる。
だからどんな言語であれExcelをAPI経由で操作できるんだよ。
例えばRubyのコード。言語が違うだけでそのJScriptと同じAPIがつかわれている。
http://qiita.com/z_yuki/items/47f05cb4694489228e0f
0493デフォルトの名無しさん (ワッチョイ d35b-drn7)
2016/12/13(火) 19:45:11.10ID:uBZRzWX90× Windowsのプログラミング
○ Officeのプログラミング
だろ。まあいいが。
ただ、Excel文書を共有したいって業務がらみか?
だったら隣の席の奴に聞いた方がいいと思うし、普通はVBAだと思うが。
> 逆にこれがないなら、どうやってGUIアプリと連携させるんだ?
そんな連携は要らないというのがUnixの思想じゃないか?
普通にCSVを吐いてCSVを読み込む、ファイル経由での粗結合で十分ということだろう。
実際、これで困ることはないわけでね。
(出来ること自体は選択肢が増えていいことではあるが。)
そもそもこの辺のアーキに関わることを>>480程度の知識でやるのはかなり危険、
本人は自覚してないだろうから具体的に言っておくと、下手すれば全部作り直しになる。
だからよく分からないのなら普通は粗結合側を選ばないとまずい。
まあそれも含めて学習といえばそうだが、個人のプロジェクトならさておき、
業務だと他の連中もデスマーチに付き合わせることになり、恨まれる。
とりあえず他の連中とも話し合った方がいい。
密結合するメリットがあるのならやればいいが、その辺を議論出来る感じとも思えないし。
0494デフォルトの名無しさん (ワッチョイ 0bce-drn7)
2016/12/13(火) 21:06:06.64ID:iAtvyUgt0> × Windowsのプログラミング
> ○ Officeのプログラミング
>
> だろ。
違う。Windows標準のやり方だから
同じ方法を使ってVBAでIEを自動制御だってできる。
0495デフォルトの名無しさん (ワッチョイ d35b-drn7)
2016/12/13(火) 23:20:10.98ID:uBZRzWX90では非マイクロソフト製品、例えばChromeやFireFoxの制御は出来るのか?
それが出来れば「Windowsのプログラミング」と言える。
出来ないのなら、「Microsoftのプログラミング」だね。
いずれにしても、MicrosoftがそういうAPIを用意していたこと自体はいいことだ。
ただそれを使うのがいいかどうかはまた別の話だ。
0496デフォルトの名無しさん (アウアウイー Sa37-8ocn)
2016/12/13(火) 23:42:46.23ID:cZJz/amWa出来るとは思うけど。
ある程度はsendkeys経由になるとは思うけど。
まぁ、順当に考えてちょっと面倒な話はおいとくけど、
ActiveXコンポーネントとして存在すれば呼び出せるよ。Officeに限らず。
VB6とかの頃の話だから、若い人は知らんのかな。
0497デフォルトの名無しさん (ワッチョイ 0bce-drn7)
2016/12/13(火) 23:48:44.55ID:iAtvyUgt0OSが用意している機能なのか?と質問されれば
YESとしか答えようがないからな。
0498デフォルトの名無しさん (アウアウイー Sa37-8ocn)
2016/12/13(火) 23:55:28.13ID:cZJz/amWaむしろそこが美味しい所だしね。
ActiveX縛りでIEから云々は的外れで、Webで使うにはあまりに何でもできるよね、まずいよね、
ってところから、IEから自由に使えなくなった過去があるレベル。
普通はVBAですらない。vbs。
csvが完璧に書式も持てるならcsvからcsv吐けばいいけど、
書式活かしたい、計算式活かしたいとなると充分どころか最低限すら満たさん。
ドヤ顔で「実際これで困ることはないわけでね」とか言って、アーキに口出しするなと言ってる自分がらもっとアーキに口出しすべきでない人間だとは皮肉なもんだな。
0499デフォルトの名無しさん (ワッチョイ d35b-drn7)
2016/12/14(水) 00:05:01.01ID:bj02pMPP0> ある程度はsendkeys経由になるとは思うけど。
それは「出来る」とは言わないだろ。というか屁理屈になってるぞ。
そもそもWin32APIははキーボード/マウスイベントを生成して打ち込むことが出来るから、
それで「出来る」というのならそれ以前から何でも「出来る」ことになる。
そしてそれはunixではもっと簡単に出来る。/dev/inputにリダイレクトするだけ。(やったことはないが)
だからそれで「出来る」というのなら、unixならもっと簡単に「出来る」ことになる。
そうではなくて、Excel側が共通の仕組み(ActiveXか?)からAPIを呼び出せるように整備されているだけでしょ。
だからchrome側からAPIをActiveX向けに提供してないと呼び出せない。
FireFoxはプラグインがあるみたいで、それを使えばいけるようだが。(Wikiによると)
それを「俺は昔からやってるんだから詳しいんだ」というのならただの老害だぞ。
まあそれもそちらの自由ではあるが。
0500デフォルトの名無しさん (アウアウイー Sa37-8ocn)
2016/12/14(水) 00:18:56.09ID:BIWUg/7Yadev/inputに流し込むって一般ユーザでできるっけ?
普通に間かました方が楽だと思うけど。それこそstdinでもらっちゃえばパイプしほうだいなんだし。
どう話を持っていきたいのかわからんが、非マイクロソフト製品、例えばAcrobatなんかはほぼフル機能が呼び出せるし、なんだかんだ、お前が思ってる以上に色々できると思うよ。
マイクロソフトのプログラミングでは決して無い。
APIという概念より更に上の、「オブジェクト」だよ。
昔からやってるから詳しいんじゃなくて、オブラートを取ると、お前が無知すぎるって言ってんの。
0501デフォルトの名無しさん (ワッチョイ d35b-drn7)
2016/12/14(水) 00:32:35.59ID:bj02pMPP0> 書式活かしたい、計算式活かしたいとなると充分どころか最低限すら満たさん。
Excel側にデータと書式を混ぜておいているのがいけない。
だってWebで同様の物を作ろうとしたら、データと書式は分離して、計算式もまた別に持つだろ。
データは鯖上のDB、書式はHTML+CSS、計算式はPHP+JavaScriptになる。
最初から全部別であることを強制される為、システムが小さい場合は確かにウザイが、
大きいシステムでも問題なく対応出来るし、変更に強い。
一言で言えば、「正しい」やり方ではある。
Excelでやるにしても、データシート(csv読み込み)と表示用シート(レイアウト済み)は別にして、
データシートの値を引っ張ってきて表示すればいいだけだし、それで全く問題ないだろ。
そもそも「データ」と「表示用書式」を混ぜる意味なんて全くないと思うし、
それ以前に「書式」をcsvから読ませようと思ったことがないんだが。
だってそれはWYSIWYGとじゃないと辛いし、必要ならExcelで作業するだろ。
まあ俺が言っているのはそれ以前で、
WScriptから直接Excelをいじるのはあまりよくないのではないかな、ということなんだが。
まあ本人が考えればいいだけのことではあるが。
0502デフォルトの名無しさん (ワッチョイ d35b-drn7)
2016/12/14(水) 00:45:54.95ID:bj02pMPP0まあ俺が無知なのは事実として、お前も相当馬鹿だと思うぞ。
何で「データ」と「書式」を混在させる必要があるのか、理由が言えるか?
/dev/inputは直接はスーパーユーザーからしか使えないとは思うけど、
スーパーユーザー権限でそこにリダイレクトするパイプなりを作っておいて、
それをユーザーに開放しておけいいだけの話だろ。
まあこれはもういいが。
> 例えばAcrobatなんかはほぼフル機能が呼び出せる
まあ分かった。
おそらくWindows上ではActiveXが使えることはすごく便利で、
一昔前、或いは今もActiveXから使えるように整備しておくことが一般的で、
これさえやっておけばスクリプトでバッチ処理を書けるようになると。
で、俺はそれを知らなかった、そういうことだな。
0503デフォルトの名無しさん (ワッチョイ 0bce-drn7)
2016/12/14(水) 00:57:08.74ID:rsGVtDKV0> そうではなくて、Excel側が共通の仕組み(ActiveXか?)からAPIを呼び出せるように整備されているだけでしょ。
だからExcelというアプリがOSが用意しているActiveXという仕組みをサポートしてるって話。
OSが規格化してるんだよ。アプリケーション間の共通のインターフェースの仕組みを
0504デフォルトの名無しさん (ワッチョイ 0bce-drn7)
2016/12/14(水) 00:58:11.16ID:rsGVtDKV0> 一昔前、或いは今もActiveXから使えるように整備しておくことが一般的で、
アプリケーション間のインターフェースだからな。
今はそれがセキュアになって、.NET(の一部)になっている。
0505デフォルトの名無しさん (ワッチョイ d35b-drn7)
2016/12/14(水) 01:08:20.03ID:bj02pMPP0> 今はそれがセキュアになって、.NET(の一部)になっている。
お?スレチだがちょっと教えてくれ。
これって.NETアプリは全部同様にスクリプトから触れるって事か?
例えば.NET(フォーム)のControlクラスがActiveX対応済みで
JScript等のスクリプトから値が取れたり設定出来たりするとか。
これならすごいなと思うが。
ただちょっと調べた限り、フォームコントロールとActiveXコントロールは別物みたいだが。
0506デフォルトの名無しさん (アウアウイー Sa37-8ocn)
2016/12/14(水) 01:40:45.54ID:BIWUg/7Ya混ぜておいてて良いよ…
ユーザ開放できないじゃん。
Webで同様のものは作らないよ。。
雛形のExcelファイルと、それに流し込まれるデータと、流し込むスクリプトだよ。
それがJSなだけ。
計算式はphpとかjsにしない。
一言で言えば、正しいなんて無いんよ。
データシートとレイアウトシートはもちろん分けるけど…どこから混ぜるって話出てきたの?
そこで、データシートとレイアウトシートをセットで管理できるExcelなんじゃん。
書式を触りたくないし、WYSIWYGでやりたいから、エクセルがそのまま読み込めてエクセルとして出したいんでしょ…?
お前業務系やったことないの?
>>502
そんなもんユーザ開放するな。
多分わかってないよ。使えることはすごく便利、じゃなくて、当たり前だったの。
>>505
触れる。
.NetのフォームはActiveXではなく、.Netのコントロールだけど、自分のappDomain中でインスタンス化してリフレクションで触ってもよし、Managed Spyでそのまま触ってもよし。
何か間に噛ませたほうが楽だとは思うけど。
0507デフォルトの名無しさん (ワッチョイ 4fe1-cKcd)
2016/12/14(水) 02:05:18.02ID:ruWVQ7Ya0UI Automationで大体のことはできるよ
Chromeとかの操作ならSeleniumが有力かな。これはwindows限定ではないけど
ちなみに、Excelはただデータを表示するだけのソフトじゃなくて、意味不明なほど高機能
xlsxの仕様は数千ページに及んでる
POIとかClosedXml見たいなライブラリで大体はxlsxファイルを処理できるけど、結局COMでExcelを操作するのが安定の場合もあるので何とも言えない
エクセル操作するなは、Webで言うならブラウザ使用禁止ぐらいの縛りプレイな場合もある
0508デフォルトの名無しさん (ワッチョイ d35b-drn7)
2016/12/14(水) 03:08:56.38ID:bj02pMPP0いやお前はだいぶずれていると思うがな。
まあ水掛け論にしかなりそうにないから終わりでいいが。
> データシートとレイアウトシートはもちろん分けるけど…どこから混ぜるって話出てきたの?
分けるんならデータだけcsvで読み込む分に何も問題ないだろ。
君の主張は
> 書式活かしたい、計算式活かしたいとなると充分どころか最低限すら満たさん。(>>498)
つまり書式も計算式も「読み込みたい」って事なんだろ。
俺はその用途は無い、読み込むのはデータだけでいいだろ、って言ってるだけ。
> 自分のappDomain中でインスタンス化してリフレクションで触ってもよし、
ここのところは正直どれほど見えるのか分からないが、
もしC#のフォームアプリを作るのと同レベルの「リフレクション」なら、それは「触れる」とは言わない。
それは「やれなくはない」と言う。
WScript等でExcelをいじる分には、セルの内容をそのまま単純に書けるので、「触れる」と言っていい。
0509デフォルトの名無しさん (ワッチョイ d35b-drn7)
2016/12/14(水) 03:28:55.97ID:bj02pMPP0> Selenium
見たところ、こいつもドライバでActiveXモドキを用意する感じか。
しかしこれなら最初からActiveX用パッチをchromeに用意した方が妥当だったように感じるが、
そうならなかったのは何故なんだ?
そちらの意見を聞く限り、ActiveXワールドが既に出来上がっている時点で、
Seleniumワールドを新たに構築する意味はないように思える。
というか、いちいちアプリごとにドライバを用意する必要があるseleniumよりも、
OSが主導して提供しているActiveXの方が断然筋がいい。
> Excelはただデータを表示するだけのソフトじゃなくて、意味不明なほど高機能
ああ、ギャラガが出来るとかは知ってる。
てか、既に開いてあるExcelの画面を操作したいとか、対戦ぷよぷよでも作るつもりか?とか思ったね。
というか、逆に何でも出来てしまうからそこにトラップされてしまうのだと思うね。
通常のファイルなら先に開いている人が居たらロックされて後の人は改変出来ない。
だから多人数から同時に開いて同時に編集したいのならDBにすべき案件なのに、
それを無理矢理Excelでやれば出来てしまうんだろ。多分。
だからっていつまでもExcelで行けるはずもないわけで。
0510デフォルトの名無しさん (スププ Sd2f-8ocn)
2016/12/14(水) 08:46:52.07ID:P0N0TYuodも、じゃない。2ファイルが許されんの。
フォームアプリ作るレベルじゃねえじゃん、俺が書いた内容。
無能な上に調べる事もできんのならもう生きてる価値ねえんじゃねえの?
0511デフォルトの名無しさん (スププ Sd2f-8ocn)
2016/12/14(水) 08:50:39.19ID:P0N0TYuodだから、生成されるファイルは別個のエクセルでしかるべきだよね。
CSV読み込むVBAじゃなくて。
意味不明なほど高機能、は
統計関数が結構イケてる
グラフが描ける、それも方対数、両対数も
真面目に作った帳票は印字に耐える
非エンジニアやユーザがレイアウト変えられる
ってところじゃないの?
0512デフォルトの名無しさん (ワッチョイ 56e1-NX/j)
2016/12/15(木) 00:15:53.99ID:rhfez4B40適当に上げてみると
・COMは基本Microsoftプラットフォームに依存するので、マルチプラットフォームに反する
・実装コストが高い。内部処理を適切に公開する必要があり、その実装の手間はもちろん、高速化や仕様変更の邪魔にもなりうる
・セキュリティ面。Flashとかと同様に、外部のプログラムは存在自体が脆弱性の原因になり得る
とかかな
Excelが高機能っていうのは、例えばOLEの埋め込みとか、関数の解釈、グラフなどなどをすべて外部で再現するのが難しいということ。
これはブラウザにも言えて、スクレイピングしたい時にCookieやリクエスト管理、JavaScriptの実行などを自力で対応するはかなり手間。
そういうときにIEコンポネとかPhantomJSみたいなブラウザ制御を利用すると非常に簡単にできる。
Excelはお手軽に、パソコン苦手な人でも扱えるUIを簡単に構築する時に手っ取り早いことが多い
しかも、COMだとVBSやJScriptはもちろん、C#やC++からもフルで機能が利用できるので使い勝手がよい。
0513デフォルトの名無しさん (ワッチョイ bf5b-0G5/)
2016/12/15(木) 01:05:38.27ID:WvsXoMFQ0一応調べたんだがイマイチ見えないから教えて欲しいんだが、
COM/DCOM/OLE/ActiveXってのは結局の所親戚で、
「外部からの操作も可能にしようとした」って事なのかな?
ActiveXに関しては「外部からダウンロードしたプログラムを動作させる」という
見た目は異なる物になっているが、OLEの後継ということらしいし。
> http://e-words.jp/w/COM.html
ただCOMとかの説明を読む限り、また君の文面からも、
要するに「アプリの共通コンポーネント(COM)を公開」していて、それらは普通にアプリに組み込め、
ついでにそれらに対するアクセスをOS側が提供することによって、
結果的にそれらを組み込んだアプリは外部からの操作も可能になるということなのか?
たとえば、ActiveXObjectとして見える物はそれぞれのCOMそのものであり、それを操作出来るとか。
ただいずれにしても筋はActiveXの方がいいように見える。(Seleniumより)
APIではなく直接オブジェクトが見えるのは、弄れすぎだし密結合だが、悪い解でもない。
Excelで組むこと自体は悪いことではないよ。
ただ、システムのアップグレードをするべきタイミングを逃すと、
後でアップグレードする時にはもっと大変なことになる。
結果、ずるずると引き延ばされ続け、酷いことになる。俺が言っているのはこれ。
とはいえExcelは結局の所何とでも出来るから押しが利くのも事実だとも思うが。
後イマイチそちらが言っていることがピンとこないのだが、
Excel上にCOMとしてIEコンポーネントを貼り付け、それらをC#やVBSで叩いてデータを取得させ、
ついでにそこにグラフをExcelの機能で描いてしまえ、とかいうケースか?
個人的にはそこまでしてExcelでやらんでも、とは思うが。
0514デフォルトの名無しさん (ワッチョイ 35ce-0G5/)
2016/12/15(木) 02:04:54.27ID:B8ikKJQd0少しだけ教えてやるわ。
COM(ActiveX)はバイナリが異なれば違うバージョンとして扱われる。
そして全てのバージョンを共存することができる。
だからズルズルと引き伸ばされるなんてことはありえない。
その点は.NETと思想が同じだが、COMは当時主流の
C言語からも使えるように考慮する必要があったから
なんちゃってオブジェクト指向(コンポーネント指向)
.NETではJavaを参考にオブジェクト指向ベースになってるからより使いやすい。
0515デフォルトの名無しさん (ワッチョイ 80d2-AUQK)
2016/12/15(木) 06:17:42.41ID:HK/hXnKv00516デフォルトの名無しさん (アウアウイー Sa87-BM5A)
2016/12/15(木) 07:12:51.70ID:BawVZm9baだいたいそうだけど、密結合ってわけでもない。
ActiveXオブジェクトとして、変えないインターフェイスを提供するタイプもある。
ExcelにCOMで貼り付けるんじゃなくて、
c#やらvbsで、ExcelのインスタンスをCreateObjectで立てて、excelファイル開いて、シートにc#やらvbsの出力を書いていく。
もともと数式やグラフ域はあるので、スクリプトから何もせずとも、再計算すれば合計、ピボット、グラフが出来上がってる。
グラフ、excelのは見た目がショボいけど、できる事は割とすごいよ。
0517489 (ワッチョイ 1fc6-0G5/)
2016/12/15(木) 11:52:06.70ID:hDru1IJ90JScriptでエクセルを扱うとき、既に開かれているエクセルファイルを操作することは可能ですか
0518デフォルトの名無しさん (ワッチョイ 74c9-0G5/)
2016/12/15(木) 11:59:37.24ID:ZjiCD7fs0可能だよ
シート検索して開いて数字書いて計算結果印刷させる
くらいならなんぼでもできる
0519デフォルトの名無しさん (スププ Sdb8-BM5A)
2016/12/15(木) 12:08:36.91ID:ef5qYk7Xdダイアログ出るから止まるかと。
workbooks.Open呼んでると思うけど、ReadOnly=trueで読み込んだら良いんじゃ?
そうじゃなくて、開いてるやつを操作したいとなると、
GetObjectでExcel.Application取って、その中のWorkbooksからpathとNameが一致するやつ探したような記憶がある。
0520デフォルトの名無しさん (ワッチョイ 1fc6-0G5/)
2016/12/15(木) 12:45:24.66ID:hDru1IJ90ありがとう。GetObjectで取れるのなら出来そうですね
0521デフォルトの名無しさん (ワッチョイ 1fc6-0G5/)
2016/12/15(木) 13:34:25.89ID:hDru1IJ90やってみたところ成功しました。ありがとうございました
0522デフォルトの名無しさん (スププ Sdb8-BM5A)
2016/12/15(木) 14:56:07.03ID:ef5qYk7Xdなんぼでも出来る、と言うなら>>518も書けばよかったのに。
0523デフォルトの名無しさん (ワッチョイ 74c9-0G5/)
2016/12/15(木) 18:57:27.31ID:ZjiCD7fs0「可能ですか」 とあったから、Yes/No だけ聞きたいのかと思った。
最低限のヒントだけもらってあとは自力で頑張る、成長性あるタイプかと
勝手に思い込んでいたわ。 すまん
0524デフォルトの名無しさん (ドコグロ MM7f-KNaT)
2016/12/15(木) 19:50:55.57ID:IqUdevKXM0525デフォルトの名無しさん (アウアウイー Sa87-BM5A)
2016/12/15(木) 21:16:53.03ID:BawVZm9baそうなのか、てっきり昨日の続きの奴が、できるはずは無い、なぜならなんとかかんとか、
と思って、どうせできるはずが無いから確認もせず煽ったれと真似して
「なんぼでもできる」
と言ったのかと思ったよ。
嫌味言ってすまんな。
0526デフォルトの名無しさん (ワッチョイ bf5b-0G5/)
2016/12/16(金) 00:13:00.17ID:J/eqkCwi0逆か。つまりC#からExcelをグラフ描画/表計算用ライブラリとして使うと。
その使い方は俺はありだと思うぞ。
自前でやるのは死ねるだけだし、
一応Chartコントロールってのがあるみたいだがどう考えてもExcelより機能はショボイし。
それは使い捨てのフロントエンドとして使っており、自前でやる意味はない。
ある物を有効活用すべきだし、Excelが既に使える状況ならそれでいい。
問題は>>489はバックエンドのDBとしてExcelを使っている点だ。
君の使い方なら「同時に開いて操作」なんてあり得ないだろ。
>>480,489はあのレベルなのでかなり怪しいけど、
もしそれが本当に必要なら、バックエンド部分はDBに移行すべきタイミングだということ。
多分今回を逃すともっと悲惨なことになる。
フロントエンド部分をExcel側に残すのは問題なくて、(これは永久にExcelでもいい)
C#でDBを叩いてデータを取得し、グラフは面倒だからExcelで、となると>>516になる。
>>480,489は初心者過ぎてやりもしなくていいことをやろうとしているか、
或いは本来は大改修が必要なのに人員が確保出来ずおかしな事になっているかだと思う。
まあ通常は前者だから隣の席の奴に確認してみろ、というわけでね。
それこそ業務なら>>516みたいな前例があるはず。
その場合はそれを改修する方が早いし、ユーザーにも混乱がない。
見る限りスクラッチから作ろうとしているわけだが、そりゃ違うだろ、ってことでね。
もし本当にシステム自体をスクラッチから作るのなら、最初からDBで行けって話だし。
まあ俺の回答はお気に召さないようだが。
0527デフォルトの名無しさん (ワッチョイ bf5b-0G5/)
2016/12/16(金) 00:14:30.02ID:J/eqkCwi0だからそれぞれが質問者の状況を想像し、仮定して回答している。
回答は結局の所、「読みとり専用」で済む範囲なら単純に新たに開くだけでいいし、
同一PC上の別Excelを「掴む」だけなら一覧からハンドルを取得すればいいが当然管理者権限が必要、
(つまり業務PCで管理者権限を与えられていない場合は動かない)
それ以上の同時変更/更新とかなら、それをここで聞いている時点で無理。
だから>>518だって不思議な回答ではないし、俺もその仮定だから単に開けと回答した。
既存ファイルをテンプレとして用い、データだけ差し替えてプレビューしたいのならこれなんだよ。
(ベースはC#だが>>516もこの使い方。)
回答者側が質問者の日本語が不自由な点をフォローして複数回答したのが>>519になる。
ただいずれにしても、俺は同僚に確認した方がいいと思うぞ。これは本当に。
何らかの理由で同僚に聞けない状況なのであれば、それはお前が原因だし、地道に改善するしかない。
仮にそれをここで聞いた内容で独断で実装したとしても、余計に評判を落とすだけだ。
だって、その方法だと、そのExcelファイルに列を1列挿入しただけで君のスクリプトは使えなくなるだろう?
そこまで密結合させると全く融通が利かなくなるんだよ。
それに対して君は「今後一切、行も列も挿入/追加するな」と言えるのかい?普通は無理だよね。
ではいちいちそのExcel表が変更されるたびに君はメンテナンスするのかい?全くの無駄だよね。
君がやろうとしているのは「勤勉な無能は余計に迷惑」でしかない。
ホウレンソウするべき典型的なケースだよ。
再度言うが、それを独断専行したら仮に実装出来たとしても余計に評判を落とすから、
マジで相談しておけ。相談して悪いことは普通はない。
プログラミングの歴史もそんなに浅くはないし、そこそここなれて来つつある。
典型的な問題に対する対処は大体先例があるし、当然サンプルコード等も出てくる。
初心者なのに何も検索でヒットしないのなら、まず、やり方が間違っていることを疑った方がいい。
既にあるプロセスにアタッチするというのは、デバッグ以外ではほぼ必要ない。
0528デフォルトの名無しさん (ワッチョイ 35ce-0G5/)
2016/12/16(金) 03:02:12.53ID:V1m5PHBA0あっちのやつと同じかな
0529デフォルトの名無しさん (ワッチョイ 56e1-wzhw)
2016/12/16(金) 06:16:19.32ID:loc8suhW0データベースだって列を一つ追加されたら動かなくなるし
誰も行ってないことを言ってるし、幻覚の症状でもあるのかな
0530デフォルトの名無しさん (アウアウイー Sa87-BM5A)
2016/12/16(金) 07:46:01.15ID:kU7foGc8a書き込み対象のエクセルを開けること自体が、そのファイルに権限ないと出来ないし、大体の資産管理で監査にきれいに乗った「文書ファイルを開く」ってエントリになるし。
開いてる(≒開けている)ファイルに書き込む、は結構アリだよ。
ちなみに俺がそのバッチ書いたのはvbsとjsの時代。
0531デフォルトの名無しさん (ワッチョイ bf5b-0G5/)
2016/12/16(金) 20:48:56.98ID:J/eqkCwi0> 開いてる(≒開けている)ファイルに書き込む、は結構アリだよ。
そうか?俺は聞いたことがないぞ。
普通ならVBAで実装すればいいだけだ。
というかその言い方が正しく表現されたものなら大体状況は想像つくが、
分かっている奴がやるのならまだしも、
初心者にそれをアドバイスするのはどうなのよ?
それが普通だと勘違いされても、本人も周りも不幸だろ。
0532デフォルトの名無しさん (スププ Sdb8-BM5A)
2016/12/16(金) 21:52:28.50ID:PNCZZxG5dお前の経験不足じゃねえの?
VBAで実装したら、excelがマクロ入りになるか、マクロ入れたブックを撒かなきゃならんでしょ。
エクセル上では極力、マクロを有効にはしてほしくないってのはごく当然の発想。
かつ、開いている≒開くことができる、だし、
保存できる≒排他制御もかかってる、
なんだよ。
バージョン管理しづらいしね。手で記入する項目があるブックならなおさら。
そのうち新旧入り混じったexcelが出回るし、ホントにマクロウィルス食べる羽目になる。
0533デフォルトの名無しさん (アウアウイー Sa87-BM5A)
2016/12/17(土) 02:48:33.24ID:6d7oASpMa特定のセルにログインユーザとか何か入れる
画像を整形して貼り付ける
電子印を埋める
CSVファイルを今触ってる場所に差し込む
った感じの操作が大半。
0534デフォルトの名無しさん (ワッチョイ bf5b-0G5/)
2016/12/17(土) 13:08:39.42ID:Wdpe3c7P0結局、スププ Sdb8-BM5A==アウアウイー Sa87-BM5Aってことでいいのか?
若干微妙なんだが。
533については大して問題ないとは思う。
そしてそれが君の489に対する解釈という訳だな。
0535デフォルトの名無しさん (スププ Sdb8-BM5A)
2016/12/17(土) 13:33:13.56ID:BIK6AFf7dそうだよ。
そして解釈もその通り。
0536デフォルトの名無しさん (ワッチョイ 74c9-0G5/)
2016/12/20(火) 16:58:59.60ID:MoWCkeVm00537デフォルトの名無しさん (ワッチョイ bf5b-0G5/)
2016/12/20(火) 19:12:40.90ID:NtfNTPKt0https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Function/name
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Function/prototype
0538デフォルトの名無しさん (スフッ Sdb8-BM5A)
2016/12/20(火) 19:14:58.08ID:N26jdoYed予約語じゃないけど、arguments.calleeが一番近いかな。
0539デフォルトの名無しさん (オイコラミネオ MM34-HDbE)
2016/12/21(水) 14:37:12.13ID:oy8jDEoqMなので、第一引数を省略したバージョンをFunction.prototypeに追加したいのですが可能でしょうか?
var obj = {msg: "hoge", print: function(a,b){console.log(a+this.msg+b);}};
obj.print.apply(obj, ["(", ")"]); // -> “(hoge)” …正直二度手間
Function.prototype.my_apply = function(){ほにゃらら};
obj.print.my_apply(["(", ")"]); // -> “(hoge)” は実現可能?
0540デフォルトの名無しさん (ワッチョイ aaa7-0G5/)
2016/12/21(水) 16:19:11.24ID:9bUmnUNT0事前にprintのthisをobjに拘束しないと無理で結局二度手間になるかな
0541デフォルトの名無しさん (ワッチョイ 9e5b-uX3G)
2016/12/21(水) 18:09:50.73ID:jqWPOGNm0spread operatorを使っていいなら簡単なんだけどなあ
obj.print(...[
0542デフォルトの名無しさん (ワッチョイ 9e5b-uX3G)
2016/12/21(水) 18:10:12.94ID:jqWPOGNm0>>539
spread operatorを使っていいなら簡単なんだけどなあ
obj.print(...["(", ")"]); // -> “(hoge)”
苦肉の策で、Object.prototype に my_apply を設定するのはどうだろう。
関数名は引数で文字列として渡す形になるけど。
Object.defineProperty(Object.prototype, "my_apply", {
value: function(funcname, args){
this[funcname].apply(this, args);
}
});
var obj = {msg: "hoge", print: function(a,b){console.log(a+this.msg+b);}};
obj.my_apply("print", ["(", ")"]); // -> “(hoge)”
0543デフォルトの名無しさん (アウアウウー Sa05-uX3G)
2016/12/21(水) 20:34:30.60ID:HG47hG4navar obj = {msg: "hoge", print: function(a,b){console.log(a+this.msg+b);}};
obj.print.myApply = Function.prototype.apply.bind(obj.print, obj);
obj.print.myApply(['a-','-b']); // a-hoge-b
0544デフォルトの名無しさん (アウアウウー Sa05-uX3G)
2016/12/21(水) 20:36:41.27ID:HG47hG4na0545デフォルトの名無しさん (スフッ Sdb8-BM5A)
2016/12/21(水) 21:18:43.29ID:yT8Lkx8edそんなに評価がほしいかw
0546デフォルトの名無しさん (ワッチョイ bf5b-0G5/)
2016/12/21(水) 21:44:46.35ID:gv2AAeV40レス乞食乙。
544は俺ではないし、むしろ評価を欲しがっているのはお前だろ。
池沼にはこの辺のことが分からないのだとは理解するが。
0547デフォルトの名無しさん (アウアウウー Sa05-uX3G)
2016/12/21(水) 22:03:23.02ID:HG47hG4na知の共有に興味がない奴には「質問者に伝わればどうでもいいだろ」ぐらいにしか思ってないのだろうが
あと、>>536は質問が漠然としていてもっと具体的に質問してほしい感はある
俺でもFunctoin#nameで回答するだろうが、Function#nameもarguments.calleeも「予約語」ではないからな
関数名を取得するのに「予約語」は不要なはずだが、何をもって質問者が「予約語」が必要と思っているのか、興味深いところだ
0548デフォルトの名無しさん (スフッ Sdb8-BM5A)
2016/12/21(水) 22:04:04.73ID:yT8Lkx8edなんだそりゃ。
車掌の案内に反射的に反応しないと気が済まない電車の中の池沼でもあるまいし。
立て逃げ、という単語が出た時点で、踏み逃げ厳禁って言ってるmixiのメンヘラレベルじゃんww
0549デフォルトの名無しさん (スフッ Sdb8-BM5A)
2016/12/21(水) 22:06:02.62ID:yT8Lkx8ed知の共有と相手の同意には全く関係性は無い。
相手がテディベアでも、それに対して演説した内容は共有すべきかもしれないし、その内容は現に見えてる。
質問内容と回答は関連するようで、全く別個の存在だよ。
0550デフォルトの名無しさん (アウアウウー Sa05-uX3G)
2016/12/21(水) 22:09:41.80ID:HG47hG4na漠然とした質問に合っているか間違っているか不明な回答をしても共有すべき知はない
質問者から反応がなければそれはゴミデータとなる
そういう事だ
0551デフォルトの名無しさん (スフッ Sdb8-BM5A)
2016/12/21(水) 22:40:00.20ID:yT8Lkx8ed合っているか間違っているか、そんなものは瑣末な差だよ。
データには全て意味があり、加えて、合っているか間違っているか、正確に言うならば「より原義的には合っているが全てにおいて合ってはいない」なんて事すらあり得るし、その正誤正確さ自体も一つのデータ。
古典力学を「厳密には正しく無い」と言って意味があるのかないのかって話。
0552デフォルトの名無しさん (アウアウウー Sa05-uX3G)
2016/12/21(水) 22:48:54.44ID:HG47hG4na> 「より原義的には合っているが全てにおいて合ってはいない」
今回のケースに当てはまらなければ何を話しても仕方ない
今回、俺はそこまで高尚な知は得られていないと思うが、あなたの中では今回何か得るものがあったのかね
0553539 (オイコラミネオ MM34-HDbE)
2016/12/21(水) 23:46:48.87ID:oy8jDEoqM>>540
やはり何らかの方法でインスタンスを渡さないと、直接呼ばなかったメソッド内からの取得はできないんですね
>>542
配列を分解する記法が追加されてたとは知りませんでした。
環境を書いていなく申し訳ないのですが、nodejs v4.1.2でも--harmonyオプションで使用できました。
my_apply(obj, “print”)([“(”, “)”])のような方法は私も考えていましたがObjectにメソッドを追加できるんですね
文字列で与えたメソッドにthisをbindして返すメソッドを追加するとFunctionに追加したmy_applyにそのまま渡せたり、
他にも関数を様々な形にラップするような処理で応用が効きそうです
obj.my_method(“print”).my_reverse(“(”, “)”); // -> ”)hoge(” 二度手間は無いけどちょっと長いかな
>>543
出来れば全ての関数とメソッドに適用したいのですが、影響範囲を考えますと使用するメソッド毎に追加するのがまっとうでしょうか
Functionインスタンスの方に追加することで理想の記法になってることが目から鱗です
0554デフォルトの名無しさん (ワッチョイ bf5b-0G5/)
2016/12/21(水) 23:53:47.70ID:gv2AAeV40> 立て逃げ、という単語が出た時点で、踏み逃げ厳禁って言ってるmixiのメンヘラレベルじゃんww
お前は本当に池沼だな。
お前がそうだからお前の周りにはそういう奴しかいない、だからお前は自分が池沼であることに気づけない。
池沼の無限ループだね。
>>544は要するに、
最低限の返事位しろ、それがお互いの為になる、と言っているだけ。
お前はそれすら分からないから無駄に噛み付いているわけだけども、
それ自体がお前にとっても有害なことに気づけ。
というかなんでゆとりってこんなにおかしくなっちゃってるんだ?
コミュニケーションというのは、「○○禁止」とかで単純にくくれるものではなく、
その場その場で最適な方法を選ばないといけない。
お前らにはこれがなく、超画一的な反応をするよね。
ただ俺みたいにいちいち説明するのは面倒だから、通常「少し黙ってろ」としか言われないと思うが、
その時は「何でそんなことを言われたのか」を考えないといけない。
その上で、上司の方が間違っていたら馬鹿にするのは自由だ。
今回に関しては、>>547以降彼は十分な説明をしているわけで、まあ奇特な方と言える。
それについていちいち噛み付く必要もないし、
意味不明な屁理屈を述べる必要もないと思うがな。
一体お前は何がやりたいんだ?
0555デフォルトの名無しさん (ワッチョイ 8b5b-i5Qz)
2016/12/22(木) 00:14:05.25ID:tlGoJkkG0正直、君はクラスの使い方を間違っていると思うから、そこを学び直した方がいいと思うぞ。
JavaScriptの連中はどうにもそういう妙な点をこねくり回すことが大好きなようだが。
普通はその場合、ラップ関数を呼ぶか、
print内部で切り分けを行い、apply無しで直接呼べるようにするか、(Array.isArray(a)やb===undefined)
print自体をargumentsで記述し、直接呼べるようにするか。
また、クラスとして使うのなら、Function.prototoyeではなく、obj.__proto__に追加することになる。
0556デフォルトの名無しさん (ワッチョイ 0f7b-SerI)
2016/12/22(木) 00:22:50.49ID:nyvvUxi302chのバグだろう
書き込み確認画面が出る際、" を使うと、そこで文字列の終了とみなされる。
" の代わりに、\" とエスケープすれば、どうだろう?
それか、書き込み確認画面が出たら、1度キャンセルすれば、確認画面は出ないようになった
0557デフォルトの名無しさん (スフッ Sd9f-lG7u)
2016/12/22(木) 00:25:51.87ID:+dxu+Nr9d長文、君、彼、か。
芸風変わらんなぁ、babel君は。
0558デフォルトの名無しさん (ワッチョイ 0f7b-SerI)
2016/12/22(木) 00:26:02.57ID:nyvvUxi30apply, let, run, with
with(obj){
ここでは、thisが、objに変わる
}
0559デフォルトの名無しさん (ドコグロ MMbf-do8S)
2016/12/22(木) 04:05:51.09ID:HervFLYwMあれやりたいな→ぐぐる→できた!ってやってると
困ってはぐぐるの繰り返しでこれじゃ理屈が伴ってなくて良くないなあと思うのですが
0560デフォルトの名無しさん (ワッチョイ cf17-W2u1)
2016/12/22(木) 05:54:28.89ID:JoGOA/Np00561デフォルトの名無しさん (ワッチョイ 3fc9-i5Qz)
2016/12/22(木) 14:58:32.87ID:KMOUtJeW0ありがとう
arguments.callee って非推奨なんだな
関数のプロパティをいじろうと思ったんだけど
名前だけわかってもちょっと難しいな
0562デフォルトの名無しさん (スフッ Sddf-lG7u)
2016/12/22(木) 16:19:23.51ID:rwisZIJ0darguments.calleeは非推奨じゃないよ。
Functionにひっついてる方が非推奨。
0563デフォルトの名無しさん (オッペケ Srdf-Esd/)
2016/12/22(木) 16:44:36.23ID:TVwdcP1Cr名前付き関数式にすれば安全に関数を参照できる
arguments.callee はStrict Modeで使えないだけ
0564デフォルトの名無しさん (ワッチョイ 3fc9-i5Qz)
2016/12/22(木) 17:28:44.13ID:KMOUtJeW0Cとかで言うstatic変数的なのを関数のプロパティで
function unko(){
if( typeof(unko.chinko)=="undefined" ) unko.chinko=0;
return unko.chinko++;
}
みたいなクソコードでやってんだけど、関数内での関数名unkoを
定義済み定数みたいなので置き換えたかっただけなので
まあどうでもいい話ですわ。 メリークリスマス!
0565デフォルトの名無しさん (ワッチョイ 8b5b-i5Qz)
2016/12/22(木) 20:24:57.62ID:tlGoJkkG0正直、JavaScriptでは上達しない(しづらい)のだと思うので、他言語である程度やってからにしたほうがいい。
ソースはこのスレの馬鹿共。
とはいえ、JavaScript自体が悪いわけではないのだが。
他言語スレを見れば分かると思うが、間違った回答が感謝され、
それがあたかも正しいものとして扱われるような茶番的展開はJavaScriptスレだけだ。
しかも一度や二度ではない。
さすがにこんな所で自演する意味はないし、ガチで分かってないんだと思う。
ただ、質問者が分かってないのは仕方ないとして、回答者が分かってないのは駄目だよ。
結果的に馬鹿が再生産されてしまっている。
馬鹿が馬鹿を、ゆとりがゆとりを、さも知ったかぶりして教えているからこうなる。
このスレは回答者はそこそこいるのだから、回答の出方を見つつ、よりよい方向に協力しないといけない。
ゆとりにはこの感覚が皆無で、基本的に焼畑をしやがるので上の世代はいらついている。
(とはいえこれは若いからであり、正直、ポストゆとりも同じ事になるとは思うが)
>>544はそれに対して注意しただけ。それに噛み付く必要なんてない。
お前らはもうちょっと、もっと大きな「流れ」について気を配り、
お互いに利益があるように振る舞わなくてはならない。
それを怠っている結果、自分にも不利益が生じていることに気づいた方がいい。
結果的に、JavaScriptの連中は馬鹿ばかりになっている。
0566デフォルトの名無しさん (ワッチョイ 8b5b-i5Qz)
2016/12/22(木) 20:26:42.36ID:tlGoJkkG0542は話が余計に複雑になっている。
543と>>540は言っていることは同じなのだが、質問者は別物だと思っているらしい。
ただ、方向性が明らかに間違っている回答には「間違っている」だけで済ますべきで、コードを書いては駄目だ。
結果、その初心者は543を有り難がってしまっている。
質問者は「apply使ってる俺カッケー」「prototypeいじってる俺カッケー」な訳だが、これ自体が間違い。
ただ、このことを理解出来てない馬鹿が多いのもJavaScriptの特徴だ。
しかしこの嘘に流されているようでは上達しない。
この場合、普通は関数オーバーロードを行う。
要求: obj.print.apply(obj, args); とobjを2回書くのが面倒
質問者: obj.print.apply(args); と書きたい
>>542: obj.my_apply("print", args);
>>543: obj.print.myApply(args);
関数オーバーロード: obj.print(args);
どう見てもオーバーロードが一番簡単だろ。
オーバーロード自体はC++/C#/Javaでは簡単で、
今ある obj.print(String,String) に加えて、 obj.print(Array) を定義すればいいだけ。
ただしJavaScriptにはオーバーロードは無く、そのままだと上書きされてしまうので、
関数名を変えるか、(結果的にラップ関数になることが多い)
自前でやるか。自前でやる場合は道具は揃っていて、>>555に書いたとおり。
0567デフォルトの名無しさん (ワッチョイ 8b5b-i5Qz)
2016/12/22(木) 20:27:47.25ID:tlGoJkkG0結果、質問者は間違った方法を正しいと勘違いし、そして馬鹿が再生産されてしまう。その結果がお前らだ。
とはいえ、オーバーロードは他言語ではごく普通のことなので、何でそうなるのか本当に謎なんだが。
(エアプしかいないだけか?)
prototypeの変更は、つまり「定義」の変更であり、ソースの変更無しに動作を変更する時に用いる。
ただ、初心者には上文の意味が分からないだろうし、やらなくていい。
しかし、これができるのはJavaScriptの特徴であり、どうにもそこに惹かれてしまうらしく、
無理にその機能を使って解決しようとする馬鹿が大量発生するようだ。
結果的にそれは上達の速度を落としている。
JavaScript以外の言語ではこの手の解決が出来ないので、まっとうな方法で解決することを強いられる。
結果、おかしな寄り道をせずに済み、普通に上達していく。
柔軟性が高く、どんな構造でもさらっと記述出来てしまうJavaScriptは、
本来は上達しやすい言語であってもおかしくないのだが、どうにも初心者がトラップされる場所が多すぎるようだ。
例えばセミコロンの打ち方とか。そんなところを極めても何にもならない。
結果、馬鹿ばかりになってしまっている。ソースはこのスレの馬鹿共。
例えば、>>564なんてクロージャを使えばいいだけの案件だ。
ただ、Cだと長らくクロージャがなかったので、彼はそれを選択出来ない。(知らないから思考外)
だから言語自体に「記述能力」があることは上達には不可欠なんだ。
Cは別の意味で柔軟性が高い(何でもあり)のだが、JavaScriptもかなり高い。
ただ初心者にはC#とか、もっと絞ったJavaとかの方がいいように思える。
あっちのスレの初心者は着実に上達している感じはある。
JavaScriptは初心者にはフリーダムすぎるようだ。
0568デフォルトの名無しさん (ドコグロ MMbf-Vzqx)
2016/12/22(木) 21:50:01.72ID:noqYDqw/M質問者は1つのメソッドだけじゃなくたくさんの関数やメソッドで同じことをしたいみたいだよ。
0569デフォルトの名無しさん (ワッチョイ 73ce-AnbU)
2016/12/22(木) 23:10:38.19ID:0Dv4mOXn0> 芸風変わらんなぁ、babel君は。
babel君は俺だよw
お前間違ってるじゃんか。
はっきり言っておかないと「俺はいつだって見抜ける」って
勘違い君になっちゃうからな。
はっきり言おう、お前はただ長文があったらbabel君って
いいたいだけのガキだよ。
0570デフォルトの名無しさん (ワッチョイ 8b5b-i5Qz)
2016/12/22(木) 23:13:44.40ID:tlGoJkkG0そういう事はそもそも無いんだよ。
もしそうなっているのなら、それは制御構造の組み方がおかしいだけ。
逆に考えてみても、仮にそういうapplyが頻繁に必要なら、
当然の如くそのapplyが標準APIにないとおかしいでしょ。
ていうか、ゆとり全般に言えるが、もうちょっと物事の辻褄を考えてくれ。
JavaScriptは糞だ糞だと言われているが、そんなに酷くもない。
その手の便利メソッドが充実しているのはRubyとlodashか?
詳しい奴はこのスレにも居たよな?あるかどうか教えてくれ。
そこにもないのなら、普通は要らないって事だよ。
あるんだったら、多少は使うって事でいい。
所で、お前は>>542,543のどっち?第三者か?
0571デフォルトの名無しさん (ドコグロ MMbf-Vzqx)
2016/12/22(木) 23:21:00.67ID:noqYDqw/M俺は第三者。
質問の意図を誤解して他人の回答を罵倒しているみたいだったので指摘したまで。
俺もお前の新しい意見(>>570)なら同意。
0572デフォルトの名無しさん (ワッチョイ 8b5b-i5Qz)
2016/12/22(木) 23:52:58.57ID:tlGoJkkG0俺は相手にとって実になる回答をしろと言っているだけ。
それが罵倒になったとしても意見としてそのまま言う。
お前らがこれに対して文句を言うのも自由だ。
駄目な物ははっきり駄目だと指摘される、これが匿名掲示板のいいところだ。
意見があるのなら言えばいいんだよ。
補足すると、俺的には、
540「それじゃ駄目だから考え直せ」←とりあえず正しい方向へ向かうのでOK
542「Object.prototypeを変更しろ」←最悪のことをさらっと言うなボケ
543「たとえばこう」←親切のつもりだろうが質問者が結果的に間違った方向に向かうので駄目
ってなところだ。
ただ、542も543も上記の事なんて分かっていると思うんだ。
だから、お前らには「後先考えてレスしろ」と言いたい。
542の回答をしたいのならば、クラスとして定義し、クラスのメソッドに追加するのならよかった。
543については、そもそも質問者の例がおかしいんだが、単発関数でいちいちbindってのは無いんだよ。
その場合は通常クロージャで捕捉する。だから同階層にmsgとprintがあること自体がおかしくて、
別階層においてクラスとして使うか、単発ならクロージャ、ってことを言えばよかった。
質問者が色々おかしいのは仕方ないとして、
それを尊重しておかしなままで進めるから余計におかしくなっているわけで、
質問者には「それはおかしい」と言ってやらないと駄目だろ。
だから俺は540の回答が今回は正しいと思う。
他は親切のつもりが結果的に足を引っ張っていることに気づいていない。これは不幸なことだよ。
逆に、お前らが明らかに変な質問した時に、それを尊重されておかしな回答されても困るだろ。
少し考えれば分かることだよ。
JavaScriptスレのレス数は他言語スレよりもかなり多い。
それでも低空飛行を続けているのは、お前らが後先考えずにレスしてるからだよ。
0573デフォルトの名無しさん (ドコグロ MMbf-Vzqx)
2016/12/23(金) 00:08:00.89ID:w5xRjMfxM突っかかって悪かった
0574デフォルトの名無しさん (ワッチョイ 8b3c-Jkes)
2016/12/23(金) 00:18:59.00ID:Z9nj1KlQ0http://newsoku.blog/archives/12673
ここのサイトのこの記事だけadblock有効にした状態でアクセスすると広告ブロックの無限ループでPC固まるんですが、原因は何なんですかね?
chromeの開発者ツールのどこを見ればいいのかさっぱり分かりません。皆さんはJavascriptの挙動がおかしいと思ったら開発者ツールのどういうところ見ます?
0575デフォルトの名無しさん (ワッチョイ 8b5b-i5Qz)
2016/12/23(金) 00:29:14.11ID:5x0GRUiO0いや、俺は君に対して怒っているわけではない。
JavaScriptのスレはかなり奇妙なんだよ。
単に年齢構成が違うのだと思うが、匿名掲示板の距離感を掴めていない奴が多い。
常に優しい言葉だけを使って回答して欲しいのならID制の所に行けばいい。
匿名掲示板はどうしてもノイズが多くなる。
それでも匿名であり続けるのはそれなりの理由があるから。
だからそれをちゃんと生かせ、無理ならID制の所に行けってこと。
0576デフォルトの名無しさん (ワッチョイ 8fa7-i5Qz)
2016/12/23(金) 01:16:35.93ID:yYk3c3EB0まさに「それはおかしい」で留めておけばいいじゃない
0577デフォルトの名無しさん (ワッチョイ cf17-W2u1)
2016/12/23(金) 01:45:10.57ID:wlAJlu3s0途端にスレ読むの面倒になってしばらく読めなくなる
ブログでやってろボケ
0578デフォルトの名無しさん (スフッ Sddf-lG7u)
2016/12/23(金) 01:45:43.60ID:zYIMLsrEd0579539 (オイコラミネオ MM7f-mf62)
2016/12/23(金) 02:20:25.33ID:lOZdmC9zM本当にやりたい事はnodejsで全ての任意の非同期関数及びメソッドをcoで扱えるようにラップする事でしたが、
関係ない部分の説明が必要ないようapplyの話に単純化して質問してしまった為に、他の手段で簡単に解決できてしまい、混乱させてしまいました。
また、Functionのprototypeへの追加が危険なのは承知の上でしたが、このスレで学ばれている方が気軽に真似してしまう可能性を考慮しなかったことをお詫びします。
基本的にものぐさなので以下のような考えです
co(function*(){
var readFileSync = thunkify(fs.readFile);
var ret = yield readFileSync(‘test.json’); //全ての非同期関数毎に別名の変数を用意するのは面倒
var ret = yield thunkify(fs.readFile)(‘test.json’); //関数で囲うのは修正の際カーソル移動が面倒
Function.prototype.thunkify = 省略
var ret = yield fs.readFile.thunkify(‘test.json’); //保守性と記述性のトレードオフ
var obj = {msg: ’hoge’, print: function(callback){callback(null, this.msg);}};
var ret = yield obj.print.thunkify.call(obj); //メソッド内でthisにアクセスするモジュール等の場合、bindかcallでobjを渡す必要があるので、なんとか関数の場合と同じ形に出来ないかな?
//アドバイスを参考に考えた結果、メソッドを全て列挙しthisをバインドしたものを集めたオブジェクトを返すメソッドをObjectに追加しました
var ret = yield obj.my_bind_method().print.thunkify(); //どうせ非同期処理なので呼び出しコストは気にしない
var ret = yield thunkify(my_bind_method(obj).print)(); //メソッド名バッティングの危険性を考慮するならこちらの方がいいかもしれません
});
0580デフォルトの名無しさん (スフッ Sddf-lG7u)
2016/12/23(金) 02:21:57.93ID:zYIMLsrEdいつもこの程度だから気にしなくていいよ。
0581デフォルトの名無しさん (ワッチョイ 0f7b-SerI)
2016/12/23(金) 06:02:18.34ID:jiSEHcxr0他の方法は、面倒と書いているけど、影響範囲・スコープが限られているじゃん
一方、Function.prototypeに追加するのは、すべてのソースコードに影響があるから、
全部の範囲をチェックするのは無理。
影響範囲が無限大
Date・配列クラスに、独自関数を追加している、Rails とか、ああゆうプロだけがやること。
こんな事を思いつくとは、君は、開発したこと無いだろ?
0582543 (アウアウウー Sa5f-t+3N)
2016/12/23(金) 07:21:32.58ID:VeLH/y/daES6ではspread operatorという答えが出ていたので質問者が自己判断できる範疇と考えていた
>>553,579
ES5では無理、ES6ならすでに提案されているようにspread operatorを利用可能
ただし、Function.prototype 上に関数を置くと呼び出し元関数(print)の this 値が変化してしまう
Object.defineProperty(Function.prototype, 'spread', {
configurable: true,
enumerable: false,
writable: true,
value: function spread (args) { this(...args); }
});
var obj = {msg: "hoge", print: function(a,b){console.log(a+this.msg+b);}};
obj.print.spread(["(", ")"]); // (undefined)
this 値を渡す方法がないのであなたの要件は実装不可能
素直に呼び出し側で spread operator を使うべき
# ちなみに、Object.prototype, Function.prototype を拡張するのがデメリットを享受したうえで使うなら止めようとは思わない
# 俺は拡張しようとは思わないが、デメリットを承知の上で使う事情があるならそれもまた良いだろう(勿論、チーム内で合意を取る必要はある)
0583543 (アウアウウー Sa5f-t+3N)
2016/12/23(金) 07:41:04.49ID:VeLH/y/da一応、書いておく
var obj = {msg: "hoge", print: function(a,b){console.log(a+this.msg+b);}};
obj.print(...["(", ")"]); // "(hoge)"
0584デフォルトの名無しさん (ワッチョイ 3fc9-i5Qz)
2016/12/23(金) 11:59:58.59ID:3Ssmhylk0この程度のことでクロージャは使いたくないよ
コード量も倍以上に膨れ上がるしな
0585デフォルトの名無しさん (ワッチョイ 73ce-AnbU)
2016/12/23(金) 12:32:39.19ID:L8VrAqOy0> Date・配列クラスに、独自関数を追加している、Rails とか、ああゆうプロだけがやること。
> こんな事を思いつくとは、君は、開発したこと無いだろ?
Railsと一緒にするとは、お前は思慮がたりねぇなぁ。
大きな違いがはRailsがサーバーサイドで動くものだってことだよ。
つまり、Railsアプリを開発・テストした環境で動けば、動作は保障される。
だけどブラウザで動かすJavaScriptは違う。
動作する環境がバラバラ。一度動作を確認したとしても
勝手に実行環境がバージョンアップしてしまう。
そのせいでPrototype.jsでは開発した当時、どのブラウザでも搭載されていなかったreduceメソッドが
ブラウザのバージョンアップで標準で追加されて、標準のreduceメソッドと互換性がなくて
問題になったんだろ。
お前、こんな事を思いつく俺のような奴と、君は、開発した事ないだろw
0586デフォルトの名無しさん (アウアウイー Sa4f-lG7u)
2016/12/23(金) 17:57:29.78ID:hTDeYr00arailsはcrubyといくばくかの実行環境に限られてるだけでしょ。
勝手に実行環境が、ってのは、本来はサーバでも話は変わらん。
RailsがRubyを縛ってるだけ。要は「IE専用のページ」とレベルがかわらん。
0587デフォルトの名無しさん (ワッチョイ 9bce-AnbU)
2016/12/23(金) 22:29:11.98ID:ZeK4/Bhm0お前意味わかってないねw
ブラウザで動くJavaScriptコードを書きました。
サイトは不特定の人が見れます。
さてどのバージョンのJavaScript実行環境で動くのでしょうか?
サーバーで動かすRailsだと、不特定の人がアクセスしたからって
動く環境は同一。Rubyのバージョンもライブラリも
意図的に上げない限り一緒。
ブラウザで動かすJavaScriptとは根本的に違うんだよ。
0588デフォルトの名無しさん (ワッチョイ 0f7b-SerI)
2016/12/23(金) 23:28:59.41ID:jiSEHcxr0Groovy, Kotlin でも、Javaに便利な独自関数を追加している
ただ、開発体制が数年以上、持続できて、プロ中のプロがやる分には良いけど、
作ってほったらかしにすると、後で問題になる
数年後に、ソースコードを見た人が、どうしてこいつは、
たったこれだけのために、こんなややこしい事をしていたのか? と問題になる
0589デフォルトの名無しさん (ワッチョイ 9bce-g1cW)
2016/12/24(土) 01:06:18.56ID:RsVu32Ub0あぁ、オレオレでライブラリっぽいのを作ったりしてな。
有名所のを使っていれば、あとで見たときも情報があるが
オレオレなものがネットに情報あるわけもなし
0590デフォルトの名無しさん (ラクッペ MMdf-W3gD)
2016/12/24(土) 01:37:33.92ID:1blwq6VQMそれなりに念入りにコメント書いたりドキュメント残したりしないの?
0591デフォルトの名無しさん (アウアウイー Sa4f-lG7u)
2016/12/24(土) 02:43:45.75ID:zFhkiAWLaアホか。そういう事言ってんじゃないよ。
サーバがwindowsでもlinuxでもBSDでも、rubyがどのバージョンでも動くかって話と、そう変わらん、と。
rubiestはこれだから馬鹿なんだよ、ホント。
0592デフォルトの名無しさん (ワッチョイ 9bce-g1cW)
2016/12/24(土) 07:27:47.27ID:RsVu32Ub0Rubyがどのバージョンで動くかなんて
アプリが決めたバージョンだけだろ。
アプリが2.3.3で動くことを確かめて
2.3.3で動かせばそれでいい。
他のバージョンのことなんか考える必要はない。
だがブラウザで動かすJavaScriptは違う。
こっちがChromeで動くと言っていても
相手は何を使うかわからない。
ずっと古いブラウザを使い続けるかもしれない
0593デフォルトの名無しさん (オッペケ Sr6f-Esd/)
2016/12/24(土) 08:42:22.62ID:Q1UBjc7Grビルトインオブジェクトのprototype拡張は影響範囲が大きいから習熟してないなら避けるのが望ましい
どうしても書くなら>>590、で終わる話
0594デフォルトの名無しさん (オッペケ Sr6f-Esd/)
2016/12/24(土) 08:47:40.57ID:Q1UBjc7Gr>>564は将来的にFunction.prototypeに同名プロパティが拡張された時に衝突する恐れがある
コードを少し書き足すだけでリスクをなくせるなら安いコストだ
短く書きたいなら、まだコードに工夫する余地はあるだろう
'use strict';
var foo = function foo () {
return this++; // ES5非対応ブラウザをサポートするなら this.i++;
}.bind(0); // 同上。{i: 0}
0595デフォルトの名無しさん (ワッチョイ 3f5b-t+3N)
2016/12/24(土) 09:48:48.80ID:JKkRXMHl0bind して this.i++; はいいね。今後使わせてもらうわ。
this++; はES5でもES6でも動かない気がするけど。
0596デフォルトの名無しさん (ワッチョイ 9bce-g1cW)
2016/12/24(土) 10:43:11.38ID:RsVu32Ub0コメントがなければ意味がわからないようなコードを書かないでください
可読性が悪すぎます。
0597デフォルトの名無しさん (ワッチョイ 375b-gDR1)
2016/12/24(土) 13:28:03.30ID:IXC75mXH0bindとか知らなかったので勉強してくる
0598デフォルトの名無しさん (ワッチョイ 9bce-g1cW)
2016/12/24(土) 13:34:07.48ID:RsVu32Ub0勉強するのはいいけど594は間違った使い方だから
読み解ことうと思わないようにw
0599デフォルトの名無しさん (ワッチョイ a78f-Jkes)
2016/12/24(土) 18:01:50.08ID:Zb/gh1a90トランスパイラが出回ってるからそっちを使っていれば
ブラウザの互換性は担保できるのではないかと思うが。
0600デフォルトの名無しさん (アウアウウー Sa5f-t+3N)
2016/12/24(土) 22:11:35.72ID:7wbeR67yaごめん、ミスってた
this 値を直接書き換える事は出来ないから this.i++ が正解だな
>>596
2回同じコードを書くのが面倒だったからコメントを書いただけでコメントが必要な場面ではない
可読性が悪いと感じるならそれは慣れてないだけかと
0601デフォルトの名無しさん (アウアウイー Sa4f-lG7u)
2016/12/25(日) 00:43:48.56ID:Sdmy2dzNa見た目の互換性は上がるけど、見た目だけだよ。
最初から最低限でやりゃ良いんよ。
きちんとした仕様が決まってるなら昔懐かしのASP.netの部分更新みたいにサーバでDOM書いて送ったって良いんだし。
何故かReactやらそんな時代に、
まさに同じ事を「SSR」とか名前つけて有難がってるRoR+トランスパイル言語連中が馬鹿に見える位。
0602デフォルトの名無しさん (ワッチョイ 9bce-g1cW)
2016/12/25(日) 01:02:21.91ID:AjYaRi9b0ん? React使ってるサイトって全体のどれくらいですかね?
Reactが必要だって言えるようなサイトはどれくらいありっますかね?
俺からすりゃReactをありがたがってる連中が
馬鹿に見えてるんだが。
0603デフォルトの名無しさん (アウアウイー Sa4f-lG7u)
2016/12/25(日) 01:07:11.87ID:Sdmy2dzNa俺もまとめて否定してんだよ。
カッチカチが良いなら全部サーバで書きゃいいって言ってんのに。
それも、Rubyなんてクソ言語じゃなくてもうちょいまともな型のある言語か、いっそハブラシPHPで書きゃいい。
お前ほんとに頭おかしいの?読解力ゼロなの?
0604デフォルトの名無しさん (ワッチョイ 9bce-g1cW)
2016/12/25(日) 01:19:52.54ID:AjYaRi9b0重要なのはカチカチかどうかじゃなくて
どれだけ早く価値を作れるかだと思うんだが?
0605デフォルトの名無しさん (アウアウイー Sa4f-lG7u)
2016/12/25(日) 01:50:23.74ID:Sdmy2dzNaうまいこと言ったつもりだろうが、堅いことが価値だったり、作るのが早いことが価値だったり、あとから直しやすいのが価値だったり、動くものが速い事が価値だったり
価値なんかバラバラでしょ。
0606デフォルトの名無しさん (ワッチョイ 9f8f-O/vA)
2016/12/30(金) 22:56:35.53ID:b7WBl9TI0結構魅力的だと思ったんだけど実際に使うといまいちだったりするのかな?
どっちかというとAngularとかのほうが複雑すぎて絶望した。
0607デフォルトの名無しさん (ワッチョイ ca98-Sa8B)
2016/12/31(土) 15:42:29.63ID:nUjD4DbZ0「WebAssembly」がITの未来に変革もたらす|Google、Apple、Microsoft、Mozillaが共同で開発した新概念
「WebAssembly」がWebブラウザに変革をもたらします。
Webブラウザは、もともとただテキストを表示するだけのところから始まりました。その出発点から、現在ではコミュニケーションやゲームまで幅広い表現を可能にしています。
そして今回、「Webブラウザ」に新しい概念が加わわることになりました。
それをもたらしたのが、ブラウザに関わりの深い世界規模の4社「Google」「Apple」「Microsoft」「Mozilla」が共同開発した、Webのためのバイナリーフォーマット「WebAssembly」です。
今回はその「WebAssembly」について、「スゴイところって何?」「何が起きるの?」をご紹介していきます。
WebAssemblyは「JS不要。コンパイラ言語だけで動的アプリが作れる」「どの言語でもWebブラウザ上にアプリを作ることができる」
WebAssemblyによってもたらされるスゴイところは次の4つ。
コンパイラ言語だけで、Webブラウザ上に動的なアプリが作れる
ほぼ機械言語にコンパイルされるからヌルヌル動く
OSを一切気にする必要がなくなる。気にするのはブラウザのみ
C,C 以外の言語でもWebAssemblyにコンパイルされる「クロスコンパイラ」の可能性が高まった
これまでWebブラウザで、ユーザからの入力情報を元に、動的なアプリケーションを実現するためには「JavaScript」が必須でした。
「インタプリター言語」であるJavaScriptは、その都度ソースコードを機械語に翻訳する必要があるため、予め機械語に近くコンパイルされる「コンパイラ言語」と比較すると動作が遅いという特徴があります(※)。
もしコンパイル後の機械語に近い形で、Webブラウザ上でコードが実行されたら。
JavaScript以上にヌルヌルに動き、しかもJavaScriptを気にする必要がなくなります。
それを実現したのがこの「WebAssembly」です。
https://mayonez.jp/1690
0608デフォルトの名無しさん (ワッチョイ eb7b-qQw5)
2017/01/02(月) 21:09:29.84ID:NK7pnDgB00609デフォルトの名無しさん (アークセー Sxa3-Eko0)
2017/01/04(水) 16:28:28.34ID:A1xSFH10xJavascriptフレームワーク、主にAngular.jsとReact.jsを触ってみたいと思っている。
これまでJavascriptフレームワークの経験ナシ。JQueryだけ。
そこで相談だけど、「とりあえず使い方とメリットを知りたい」
という場合、どんなものを作るといいんだろう?
例えばサーバサイドフレームワークなら、
DBも用意して、入力チェックのある掲示板を作ってみれば、大体のノリはつかめると思うんだけど
そんな感じで、「こんなものを作ってみろ」
というお勧めを教えてください。
0610デフォルトの名無しさん (JP 0H56-7auN)
2017/01/04(水) 17:05:10.17ID:mEkZwZd0Hhttp://todomvc.com/
0611デフォルトの名無しさん (ワッチョイ 1f8c-+flj)
2017/01/08(日) 12:09:11.44ID:hH2LQLuG0Reactやっとけばいいよ
0612デフォルトの名無しさん (ワッチョイ 0bce-pn3f)
2017/01/08(日) 16:00:23.16ID:xMVs4RXt0まずはボタンを押すとカウントアップするようなものをReactで書いてみるといいよ。
jQueryで書くならば、こんなの
<html><body><span></span><button>btn</button></body></html>
$(function() {
var i = 0;
$('button').click(function() {
$('span').text(i++);
})
});
これをReactで書いてみれば、Reactのデメリットが見えてくるだろうw
0613デフォルトの名無しさん (ワッチョイ df98-HvS5)
2017/01/08(日) 16:34:40.53ID:oWytpAF00書いて見せてよ
0614デフォルトの名無しさん (ワッチョイ 0bce-pn3f)
2017/01/08(日) 16:47:29.40ID:xMVs4RXt0俺に答えを言わせる気かw
Reactめんどくせーよ。
0615デフォルトの名無しさん (ワンミングク MMff-+flj)
2017/01/08(日) 17:24:39.20ID:XDbKIsfAMこういうコード
サンプルスニペットならいいけど
複雑な業務だと何やってるかわからなくなるからやめて
0616デフォルトの名無しさん (ワッチョイ 0bce-pn3f)
2017/01/08(日) 18:04:30.88ID:xMVs4RXt0それは作り方が悪いだけ
そもそも複雑な業務というのは
サーバー側が複雑なのであってJavaScriptは
殆ど使わない
0617デフォルトの名無しさん (ワッチョイ 8b19-+flj)
2017/01/08(日) 21:24:18.58ID:l+lFPzQR00618デフォルトの名無しさん (ワッチョイ 0bce-pn3f)
2017/01/08(日) 22:52:00.94ID:xMVs4RXt0ステップ数が少なければ正義だよ
0619デフォルトの名無しさん (ワッチョイ 9ba1-Vje5)
2017/01/08(日) 23:34:23.55ID:U62MbfoD00620デフォルトの名無しさん (ワンミングク MMff-+flj)
2017/01/08(日) 23:37:15.12ID:XDbKIsfAM0621デフォルトの名無しさん (ワッチョイ 0bce-pn3f)
2017/01/09(月) 04:08:11.18ID:QmwK1Z6K0たまにステップ数が短ければ正義。の反論として
極端に短くした変数名を持ってきたりするが、
重要なのはステップ数なのでわかり易い名前にすればいいだけ。
0622デフォルトの名無しさん (ワンミングク MMff-+flj)
2017/01/09(月) 09:23:11.98ID:4NqOEoqDMステートメント数?
0623デフォルトの名無しさん (ワッチョイ df98-HvS5)
2017/01/09(月) 18:16:00.34ID:EaR/gEc60Reactやりはじめたいんだけど、
全然わかんないからみせてよ!!!!!!
0624デフォルトの名無しさん (ワッチョイ 0bce-pn3f)
2017/01/09(月) 18:27:16.49ID:qGJTtvd50どこから? JSXのコンパイルはできるようになった?
それともnodeのインストールから?
0625デフォルトの名無しさん (ワッチョイ 8b19-+flj)
2017/01/09(月) 20:04:40.49ID:lLMrzoyO00627デフォルトの名無しさん (アークセー Sx37-YL17)
2017/01/16(月) 16:48:39.02ID:vlGMO2A0xレスありがとうございました!
>>610のサイト、最初はサイトの画面の意味もわからなかったのですが
追加ボタンを押すとアイテムが増えていくという画面なのを把握&
Angular.jsは、ドットインストールを思い出してそちらで入門を読んでみて
JQueryとの違いと言うか、考え方がどう違うかという基本はわかりました。
業務でちょっと立て込んでしまったので、しばらく手が動かせないのですが
次は>>612やってみます。
0628デフォルトの名無しさん (ワッチョイ 67ce-q48i)
2017/01/16(月) 23:02:56.26ID:0nV0x3iS0jQueryというかDOM操作ライブラリとの違いね
ブラウザ標準のDOM APIともぜんぜん違うでしょ?
グループ分けするなら
・DOM操作系(jQuery、DOM API)
・データバインディング系(Angular、Vue)
・仮想DOM系(React)
0629デフォルトの名無しさん (ワッチョイ ffce-SmTw)
2017/01/21(土) 23:28:36.95ID:sMDuy5hJ0http://tamae.2ch.net/test/read.cgi/prog/1485008061/
0630デフォルトの名無しさん (ワッチョイ a3bc-1yXr)
2017/01/22(日) 04:51:43.75ID:A/ZA38Cw00631デフォルトの名無しさん (ワッチョイ ffce-SmTw)
2017/01/22(日) 05:41:00.88ID:etjPL+qg0CreateJS(canvasを使うライブラリ)でよければどうぞ
canvas要素を使うのは昔やったけど
手間がかかるだけなのでもうやっていません
0632デフォルトの名無しさん (ワッチョイ ea98-Y1AZ)
2017/01/29(日) 15:32:31.23ID:CHlx9RpS0https://risingstars2016.js.org/ja/
JavaScriptコミュニティは日々進化しています。今日のトレンドも数か月後には陳腐化しているなんてことは日常茶飯事です。
2016年は終わってしまいましたが、何か重要なことを見逃したのではないかと感じているそこのあなた! 2016年の主要なトレンドをおさらいして、そんな不安を払拭しちゃいましょう。
過去12か月に獲得された Github のスター数を比較して、2016年に支持を集めたプロジェクトを数値に基づいて評価していきます。
2015年はなんといっても React でした。そして、Flux 実装を席巻したのは Redux でしたね。 2016年、JavaScript の人気プロジェクトはどのようなものだったのでしょうか?
0633デフォルトの名無しさん (オッペケ Sr13-wtXX)
2017/01/29(日) 17:23:53.48ID:MoCVqVidrあっちにもワッチョイが導入されればいいのに。
0634デフォルトの名無しさん (ワッチョイ bb4a-Y1AZ)
2017/01/29(日) 18:26:37.78ID:tEr1J88h0ワッチョイ付きなので荒らしの区別が付きやすいと思われます。
JavaScript の質問用スレッド vol.132 [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/hp/1485265364/
0635デフォルトの名無しさん (オッペケ Sr13-wtXX)
2017/01/29(日) 22:06:52.93ID:MoCVqVidrワッチョイ付いてないよ?
0636デフォルトの名無しさん (ワッチョイ a6a7-AZYz)
2017/01/29(日) 22:45:11.28ID:IWUOXBQT00637デフォルトの名無しさん (ワッチョイ ea98-Y1AZ)
2017/01/30(月) 00:50:26.53ID:UteNnrEq00638デフォルトの名無しさん (オッペケ Sr13-wtXX)
2017/01/30(月) 12:23:30.70ID:GF8hSJkSrある、Web制作板はワッチョイ未導入
0639デフォルトの名無しさん (ワンミングク MM1a-bF0B)
2017/01/30(月) 23:53:44.29ID:pve8veDdMオープンなコミュニティで実名でワイワイやればいいじゃん?
0640デフォルトの名無しさん (アウアウウー Sa7f-Q0kd)
2017/01/31(火) 16:57:16.78ID:RySlSGrka「煽りを楽しみにきてるのに何を真面目に回答しちゃってるの?」と返すのが当たり前になって質問スレとしては機能しない
0641デフォルトの名無しさん (ワッチョイ 5b5b-AZYz)
2017/02/01(水) 00:18:27.87ID:KFM30q9x0とはいえゆとり汚染の酷い2chは使えないのも事実。
いいとこあったら紹介してくれよ。見てみるから。
0642デフォルトの名無しさん (アウアウウー Sa7f-Q0kd)
2017/02/01(水) 01:33:43.68ID:TDICbD4zahttp://stackoverflow.com/questions/tagged/javascript
http://ja.stackoverflow.com/questions/tagged/javascript
https://teratail.com/tags/JavaScript
0643デフォルトの名無しさん (ワントンキン MM1a-bF0B)
2017/02/01(水) 07:32:14.32ID:QtOB6vhPM0644デフォルトの名無しさん (ワッチョイ 5b5b-AZYz)
2017/02/01(水) 19:32:56.21ID:KFM30q9x0何故ゆとりは「まず質問しよう」とするのか分からん。
teratail: 同上、そして宣伝文句がいちいち頭に来たので今後とも相手にする気はない。
結局本家stackoverflowしかないのか?
あそこはTips集としてはまあまあだが、しかし話す場所じゃない。
質問したいわけではなくて、知っている奴と話したいだけなんだが。
(身の程をわきまえていない初心者は要らない。
つか普通にやれば実装出来る件をいちいち質問するな。
その点本家stackoverflowはグーパン食らわせるらしいので、
結果的にずいぶん質問がまともになっているように見える)
0645デフォルトの名無しさん (アウアウウー Sa7f-Q0kd)
2017/02/01(水) 21:46:44.25ID:ZhA7/VZ0a質問をしなくてよくて初心者お断りな情報交換サイトを求めるならQ&Aサイトに行くのが間違ってる
見知った人とtwitter等のSNSサイトで情報交換すべき
0646デフォルトの名無しさん (ワッチョイ 33a1-fMLr)
2017/02/01(水) 22:05:02.95ID:lpyRA1Jp0これでさよならって事で良いんじゃない?
0647デフォルトの名無しさん (ワッチョイ 5b5b-AZYz)
2017/02/01(水) 23:32:49.62ID:KFM30q9x0なるほどご指摘はごもっとも。
しかし問題なのは見知った人が居ないことだ。本業の言語ではないので。
とはいえ逆に言えば、それが出来る人達は最早2chを使う必要はないわけだから、
ここで待っていても芽がないのかもしれんね。
0648デフォルトの名無しさん (ワッチョイ ffe1-MPVQ)
2017/02/03(金) 02:11:34.67ID:KVEM3lJ90初心者お断りでそこそこ人がいるコミュニティは(初心者が手を出さないジャンル除いて)成立しないでしょ
初心者叩きで環境が悪くなって人が減るか、中級者すら入れないガチ勢のコミュニティになるか
0649デフォルトの名無しさん (ワントンキン MM1f-4SR0)
2017/02/03(金) 21:35:46.61ID:LN7efSZ0Mこれ以上ITインフラを初心者に破壊されたらもう日本はもたない
0650デフォルトの名無しさん (ワッチョイ c35b-0MWP)
2017/02/03(金) 23:16:19.84ID:CYbB7nGp0ゆとりは死ね。
まあお前らはそうやってコミュニティを破壊してきたんだろうし、今後もそうするのだろうけどね。
ちなみに
> 中級者すら入れないガチ勢のコミュニティ
これを知っているのなら教えてくれ。見てみるから。
0651デフォルトの名無しさん (アウアウイー Saa7-qrch)
2017/02/03(金) 23:26:15.16ID:+w29p6mxababel君は省みないから意味ないかもよ
0652デフォルトの名無しさん (ワッチョイ 7fba-yGjQ)
2017/02/08(水) 13:26:00.81ID:ViRk+dgw0この海外通販サイトであるメーカーの品を買いたいのはですが、そのメーカーの品は日本の代理店が圧力かけてカートに入れることが出来ません。
スマホからChromeを立ち上げて、
発送先(国旗のマーク)を他国にし、カートに掘りこんで放置。
他のサイトを色々見たあともう一度放置したタブを見ると(再読み込みしてた)
発送先が日本で目当ての品もカートから消えずに残ってた事が数回ありました。
一度発送先日本でカートに入れられた物は買うことができます。
その方法で数点買うことができました。
しかし、毎回出来るわけではなく、できる方が少なく困っています。
何か法則があるのでしょうか?
または、スタイルシートなどでそれを解除することは可能でしょうか?
教えてクレクレは重々承知ですがお願いします。
0653デフォルトの名無しさん (ワッチョイ 7fba-yGjQ)
2017/02/08(水) 13:27:04.69ID:ViRk+dgw0ttps://www.trekkinn.com/
0654デフォルトの名無しさん (ワッチョイ d319-kMoN)
2017/02/08(水) 13:28:31.02ID:EzKDTKh800655デフォルトの名無しさん (ワッチョイ 7fba-yGjQ)
2017/02/08(水) 13:31:57.30ID:ViRk+dgw0他にもあるのですが、代表的なカートに入らないメーカーGregoryです。
0656デフォルトの名無しさん (ワッチョイ 5317-wVGn)
2017/02/08(水) 16:25:27.72ID:ekjB8NPA0発送先変えようが串刺そうがブラウザ設定言語変えようがcookie消そうがそもそも
ttps://www.trekkinn.com/outdoor-mountain/gregory/1010/m
が表示されない
表示される機会自体が限定的なんじゃねーの
googleキャッシュからなら一応見れるけど
つーかJavascriptで制御してることはまずない
それだったらJavascript切れば済む話
0657デフォルトの名無しさん (ワッチョイ 037b-AtEE)
2017/02/08(水) 16:52:40.63ID:OCW6swXT0ここが
> この板はプログラムを作る人のための板です。
という事を知っていると言う前提で回答
そういうプログラムを作って欲しいという依頼ならばこの板は板違い
ランサーズとかで10-30万円くらいで募集かければ作ってくれるだろう
自作したいから教えろと言う意図ならば、全くの素人が今すぐ自作するのは無理と答えておく
0658デフォルトの名無しさん (アウアウカー Sae7-yGjQ)
2017/02/08(水) 17:37:55.35ID:k6/0uGHAaすいません。
発送先をalbania で表示できてます。
そのままカートに入れて、発送先を日本に変えるとカートは0
また発送先変えるとカート内は復活します。
私はスクリプトのタイムラグで希に日本にしてもカート内に表示されるのだと憶測したのですが。
>>652
すいません、板違いですね。
理屈がわかれば退散しますので、解明してもらえたら嬉しいです。
0659デフォルトの名無しさん (アウアウカー Sae7-yGjQ)
2017/02/08(水) 17:53:00.49ID:k6/0uGHAaはじめから実装されておらず、買えなくなったのはかこ最近。
(後からスクリプトを書き足した?)
一度やけくそで発送国変えてカートに十数個掘りこんで、日本に変えたらそのままカートに残ってた事があった。
0660デフォルトの名無しさん (ワッチョイ 037b-AtEE)
2017/02/08(水) 18:04:00.30ID:OCW6swXT0板違いがわかったならとっとと立ち去れ
自分だけは許されると思うな カス
0661デフォルトの名無しさん (ワッチョイ 767b-Hg1I)
2017/02/09(木) 03:27:01.86ID:9cVHqnIp0それで、色々とデバッグしたりするけど、他人が作ったサイトを分析するのは、
自分が作ったサイトよりも、はるかに難しい
なぜかと言うと、相手はアプリの仕様を知っているけど、我々には分からないから
JavaScriptでは、後からデータを読み込んだりもするから、
ネット回線の都合で、数分後にはデータが読み込まれて、サイトの表示内容が変わる
しばらくサイトを放置して、再読み込みされた後に、状況が変わるのはそのせい
どの道、プロでも他人の作ったサイトを、仕様書無しで分析することは、まず無理。
しかも決済機能があるサイトを、どのようにいじくり回しても、どこかでエラーが起きるし、
営業妨害・破壊工作とみなされて逮捕される
0662デフォルトの名無しさん (ワッチョイ eb5b-BJNc)
2017/03/03(金) 02:58:29.43ID:ljnBJEQ70用途:文字の装飾。func内で<s>$1</s>とか。デリミタは頭尾共**。
(**と**で囲まれた文字を装飾するために置換する。今は上手くヒットしない)
入力例: 'a**b*c**d*e**fg**h' に対し、b*c と fg をヒットさせたい。
var str = 'a**b*c**d*e**fg**h'; // a@d*e@h を得たい。
str.replace(/\*\*(.*)\*\*/g,'@') // a@h でNG。最長を取るため。
str.replace(/\*\*([^(\*\*)]*)\*\*/g,'@') // a**b*c**d*e@h でNG。[]内に()を使えないため。
複数文字でのデリミタって単純には無理?
0663デフォルトの名無しさん (ワッチョイ 1f3c-dv7B)
2017/03/03(金) 03:17:09.68ID:GTe30Tvn00664デフォルトの名無しさん (ワッチョイ 1f3c-dv7B)
2017/03/03(金) 03:21:53.99ID:GTe30Tvn00665デフォルトの名無しさん (フリッテル MM7f-hS1q)
2017/03/03(金) 08:24:44.98ID:+Iu6j6ikMあなたが期待しているのは non-greedyではなく、否定先読み (^**)
最長一致のままでバックトラックを最小限に抑えて書く事は出来る
更に発展させれば、先読みすら使わなくても書ける
** の固まりで考えずに * と [^*] に分けて文字列パターンを考えるといいだろう
0666デフォルトの名無しさん (ワッチョイ 1f3c-dv7B)
2017/03/03(金) 15:34:12.20ID:GTe30Tvn0このケースでnon-greedyよりも効率のいい否定先読みの表現があるならちゃんと示してよ
0667デフォルトの名無しさん (ワッチョイ eb5b-BJNc)
2017/03/03(金) 19:13:40.68ID:ljnBJEQ70ありがとう。non-greedyが出来ると知らなかった。
>>665
いや、分けた時点で駄目だよな?
デリミタが**で、その間は任意の文字列が許容されている。例えば、
var str = 'i**j*k*l*m*n**o'; // i@o を得たい
途中に\*と[^*]がどういう順番で何個あってもそれは無視して、**という塊が来たときに終端する。
non-greedyで速度含めて問題無いように見えるし、(アルゴリズム的には最長一致より速いはず)
無理に最長一致で書く必然性は無いと思うがどうか。
(それ以前に俺は書けないが)
0668デフォルトの名無しさん (ワッチョイ 1f3c-3wiD)
2017/03/03(金) 20:52:02.35ID:GTe30Tvn0否定先読みはこんな感じ
これならnon-greedyのほうが効率いい
0669デフォルトの名無しさん (フリッテル MM7f-fLnF)
2017/03/03(金) 20:55:57.43ID:+Iu6j6ikMあなたは「バックトラック」について学ぶべきだな (ぐぐるなり、『詳説 正規表現 第3版』を購入して読んでみるなりすべき)
non-greedy は最長一致させてからバックトラック(前に戻る)して最短一致させている
例えば、'**aaa**bbb**ccc**ddd**'.match(/\*\*.*?\*\*/g);
は初めに全ての文字列「**aaa**bbb**ccc**ddd**」を消費してからバックトラックする事で最短一致する事になる為、** の後続に非常に長い文字列が存在するとパフォーマンスが著しく低下する
デリミタが ** なら素直に書けば、こう
'a**b*c**d*e**fg**h'.match(/\*\*(?:(?!\*\*)[\s\S])+\*\*/g); // ["**b*c**", "**fg**"]
先読みを使わなければ、こう
'a**b*c**d*e**fg**h'.match(/\*\*(?:[^*]+\*)*[^*]+\*\*/g); // ["**b*c**", "**fg**"]
これらは「**」を飛び越えて消費する事が不可能なので無駄なバックトラックが発生しない
0670デフォルトの名無しさん (ワッチョイ 1f3c-dv7B)
2017/03/03(金) 21:41:53.09ID:GTe30Tvn0知ったか君かと思ってたけどJSじゃないだけで
フクロウ本を読んでるちゃんとした人だったのね
0671デフォルトの名無しさん (ワッチョイ eb5b-BJNc)
2017/03/03(金) 23:56:21.24ID:ljnBJEQ70否定先読みも知らなかった。ありがとう。
ただ、俺が言うのもおかしいが、
> non-greedy は最長一致させてからバックトラック(前に戻る)して最短一致させている (>>669)
これは多分違う。明らかに実装依存だし、MDNはそちらの想定とは異なることを示唆している。
> x?
> *、+、?、{} といった量指定子の直後に使用した場合は、非欲張り (non-greedy)量指定子(最小回数にマッチ【訳注: スキップ優先】)となります。
> これはデフォルトのそれらとは逆であり、デフォルトのそれらは、貪欲 (greedy)量指定子(最大回数にマッチ【訳注: 繰り返し優先】)です。
> https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/RegExp
greedyの結果は必ずnon-greedyの結果を内包する為、そちらの言うとおりの実装も可能だが、
それはあくまで既存のgreedy専用ルーチンにnon-greedyを後付した場合だ。
最初から両方とも実装する気なら、入力文字列/正規表現文字列での2重ループで、
内外を入れ替えられるように構成すればいいだけ。(実際は別に作ってif文だと思うが)
この場合、「スキップ」が正規表現文字列の進行、「繰り返し」が入力文字列の進行を表している。
「スキップ」が内側ならnon-greedy、「繰り返し」が内側ならgreedyになる。
実際にどうかはコード見るしかないが。
この仮定どおりだと、今回に関してはnon-greedyが一番効率がいい。
正規表現検索が遅くなる理由は、内部のマッチング候補が無限に膨らんでいくからだ。
str.match(/\*\*(.*?)\*\*/g,'@') だとまず終端**であるか確認し、
駄目なら一つ進めてまた終端かどうか試すわけで、内部候補は最小の状態で保てる。
理屈上は線形時間*2で済む。(この場合は*3になるのか?)
話を総合すると、PCREは669の言うとおり、JSは多分違って670の言うとおり、ということなのかな?
まあ今回の部分はパフォーマンスは必要ないところなので、どちらでもいいんだが。
なお余談だが.NETではバックトラッキングを制御するための構文もあるようだ。
> 非バックトラッキング部分式、後読みアサーション、および先読みアサーション
> https://msdn.microsoft.com/ja-jp/library/dsy130b4(v=vs.110).aspx
0672デフォルトの名無しさん (ワッチョイ 1f3c-dv7B)
2017/03/04(土) 01:24:10.21ID:NAI/204b0**で囲まれた文字列が長くなるにつれ差が出る
JavaScriptでもPCREでも結果は同じだったよ
“a**b*c**d*e**fg**h”の場合
http://i.imgur.com/vSin3OI.png
“a**bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb*c**d*e**fg**h”の場合
http://i.imgur.com/kkSEjXb.png
0673デフォルトの名無しさん (ワッチョイ 1f3c-dv7B)
2017/03/04(土) 01:55:33.59ID:NAI/204b0https://regex101.com/
JavaScriptはstep数が表示されないけどPCREなら表示される
0674デフォルトの名無しさん (ワッチョイ eb5b-BJNc)
2017/03/04(土) 02:09:58.23ID:w0C/5a4w0ご苦労様だがそれはバグってるぞ。(間違えているのは君ではなくRegexBuddyの作者)
正確に言うと仕様を間違えている。最上位しかカウントできてない。
だから「backtrackを最小にするような正規表現」を考えるのにはいいが、
「最高速の正規表現」の評価には使えない。(元々これが仕様なのかもしれんが)
実装を考えれば分かる。
var i = 0; // 文字列位置、参考用
var str = 'a**b*c**d*e**fg**h'; // とする。
/\*\*(.*?)\*\*/gの場合、
まず**を探す、これは線形だから省略する。
問題はそれがマッチした後、つまり今 str[2] まで来ているとして、(今はi=2)
1. if (str[i]==='*') // 終端1文字目 ←これしかカウントしてない
2. if (str[i+1]==='*') // 終端2文字目
3. if (str[i]===何でもいい) // .* とマッチ
で、1.しかカウントしてないだろ。2と3を本当はカウントしなければならない。
だから/\*\*(?:[^*]+\*)*[^*]+\*\*/gの場合、
君が広げているところで
**bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
が1カウントでいきなり出てるだろ。
それは本当は [^*]+ にマッチしているかどうかを確かめながら進行してるんだから、
if (str[i]!=='*')
を毎回やってる。ところが、それがカウントされてない。
本来はそこで文字列長さ分だけカウントされてないと駄目。
0675デフォルトの名無しさん (ワッチョイ eb5b-BJNc)
2017/03/04(土) 02:10:24.99ID:w0C/5a4w0最適化がかかっていれば以下。
1. if (str[i]==='*' && str[i+1]==='*') // 終端
else { .* に常にマッチ }
だからマッチ回数は「**内文字列長さ+**内の*の個数」となる。
結論としては、両方ともほぼ同じだが、
/\*\*(?:[^*]+\*)*[^*]+\*\*/gの場合、途中に*を混ぜられたら
そこでいちいちバックトラックするだろ。
/\*\*(.*?)\*\*/gの場合はそれがない。だからこっちの方が速いと思うよ。
0676デフォルトの名無しさん (ワッチョイ eb5b-BJNc)
2017/03/04(土) 02:22:51.10ID:w0C/5a4w0つかこれ、JavaScriptはそのまま実行してるだけの気が、、、
それ以外はエミュしているからstep数出せるのだろうし。
ただPCREは中間コードを吐いて実行させるらしいから、
[^*]+の展開と他の比較に明確な速度差があって、
最上位だけカウントすればいいのかもしれない。
V8のは直接nativeを吐くらしいし、
俺の実装仮定はC言語的にnativeで、[^*]+の展開と他の比較も同速だから、
この見積もり方法だとPCREだとフィットしないのかも。
0677デフォルトの名無しさん (フリッテル MM7f-hS1q)
2017/03/04(土) 14:14:02.07ID:GYl4MmX4M> /\*\*(?:[^*]+\*)*[^*]+\*\*/gの場合、途中に*を混ぜられたら
> そこでいちいちバックトラックするだろ。
バックトラックは ** が出現した時だけだと思うが、* が出現するとどういう原理でバックトラックする?
とはいえ、**aaa** でもバックトラックしてしまうのは問題なので /\*\*[^*]+(?:\*[^*]+)*\*\*/g にすべきだったな
0678デフォルトの名無しさん (ワッチョイ eb5b-BJNc)
2017/03/04(土) 15:27:38.88ID:w0C/5a4w0> バックトラックは ** が出現した時だけだと思うが、* が出現するとどういう原理でバックトラックする?
これは俺の間違いだった。
>>672見て後ろ [^*]+ から探索しているのが不思議だったんだが、
それが俺の勘違いで、あれは前側をgreedyで取りきった残りカスだった。
ただそれならそちらも気づいたとおり、デフォで1回バックトラックするよな。
/\*\*[^*]+(?:\*[^*]+)*\*\*/は微妙に仕様が異なる。(現実的には問題ない)
ただこれもそちらの定義のバックトラックではないが、もう一段低いバックトラックはしてるだろ。
*が出現した場合、次の文字を検査し、(?:\*[^*]+)に該当するか、 --- (A)
駄目なら**になるか、の検査をしている。 ---(B)
(A)があるだけ/\*\*(.*?)\*\*/gより遅い。こちらはBしかしないから。
(ただし「A=!B」の最適化をかけられれば同速になる)
そもそもバックトラックのあり/なしで考えるのが時代遅れなのだと思うよ。
そこは本質ではない。wiki見りゃ分かるが、
バックトラックなし(そもそもアルゴリズムが違う)の正規表現探索ルーチンもあるし、
V8も今はIrregexpでChrome57からCodeStubAssemblerなんだっけ?
Perl互換である必要が無ければ、PCREを使う必要も無くて、
機能が少ないのなら、その分高速なルーチンを作成できるのも当然だし。
本質的には探索木が分岐しないことでしょ。
/\*\*(.*?)\*\*/gは全く分岐しないんだよ。
だからnon-greedyを正しく実装していれば最速になる。
(?:\*[^*]+)も完全に最適化されれば同じだけど、
(?:\*[^*]+)*\*\*と頭側の\*が2回別に書かれている点が最適化しづらい。
(まあこの程度なら最適化されるのかもしれないが)
0679デフォルトの名無しさん (ワッチョイ 1fce-NqFr)
2017/03/04(土) 16:39:44.96ID:fiOXClU60正規表現というのは文字列(単語)を認識するものであって
文字列と文字列の関係(構文)を認識するものではない
なんでも正規表現でやろうとするやつは馬鹿がすることだ。
正規表現以外の方法を知らない愚か者だ
0680デフォルトの名無しさん (ワッチョイ eb5b-BJNc)
2017/03/04(土) 17:11:29.26ID:w0C/5a4w0この場合は正規表現が最適だろ。
str = str.replace(/\*\*(.*?)\*\*/g,'<s>$1<\s>');
0681デフォルトの名無しさん (ワッチョイ 1f3c-dv7B)
2017/03/04(土) 17:21:07.94ID:NAI/204b0やっぱChromeだけちょっと特性が違う
https://jsperf.com/non-greedy-vs-negative-look-ahead-vs-negate
https://jsperf.com/non-greedy-vs-negative-look-ahead-vs-negate-2
https://jsperf.com/non-greedy-vs-negative-look-ahead-vs-negate-3
>>674
カウントの仕方は今度作者に聞いてみるわ
0682デフォルトの名無しさん (ワッチョイ eb5b-BJNc)
2017/03/04(土) 17:33:12.13ID:w0C/5a4w0ちなみに正規表現の濫用が指摘されだしたのはPerlからだろ。
JavaScriptの正規表現ってそこまで機能ないし、濫用できないと思うが。
多分なあ、バックトラックとかの調整をユーザーが意識しだした段階でそろそろやりすぎなんだよ。
今回もそうだが、大半のケースで自前でループまわした方が速かったりするし。
さらっと書いて遅かったら手で回す、位でいいと思うが。
0683デフォルトの名無しさん (ワッチョイ c3a0-Dx6a)
2017/03/18(土) 21:27:33.25ID:sZCCfY8g0画面右でクリックされたらAの処理
画面左でクリックされたらBの処理
ってやりたいのだけどこの場合どうすればいい?
0684デフォルトの名無しさん (ワッチョイ f35b-tpgq)
2017/03/18(土) 22:47:45.17ID:waR+gchT0onclickイベント関数の引き数eにclientXが格納されているからそれを見る。
https://developer.mozilla.org/en-US/docs/Web/Events/click
https://developer.mozilla.org/en-US/docs/Web/Events
以下で試してみ。
document.getElementsByTagName('body')[0].onclick = function(e){console.log(e.clientX);};
0685デフォルトの名無しさん (ワッチョイ bf3c-y/cv)
2017/03/18(土) 22:48:01.74ID:vBdYmHk500686デフォルトの名無しさん (ワッチョイ c3a0-Dx6a)
2017/03/18(土) 23:33:51.54ID:sZCCfY8g0>>684
ありがとうございます。
やってみます。
0687デフォルトの名無しさん (ワッチョイ c3a0-Dx6a)
2017/03/19(日) 15:22:00.36ID:L+LO5eNf0画像がdiv枠内からはみ出さず且つ画像サイズが最大になるように
画像のサイズを調整したいのですがどうするといいでしょうか?
イメージ的にはこんな感じです。
http://bashalog.c-brains.jp/images/150810_fujimori_01.png
0688デフォルトの名無しさん (ワッチョイ bf3c-y/cv)
2017/03/19(日) 21:45:28.77ID:Lj5IhMr80CSSじゃなくてJavaScriptでやりたいの?
0689デフォルトの名無しさん (フリッテル MM7f-EJeZ)
2017/03/19(日) 21:49:48.67ID:DAQ4XfnCMCSSで解決出来ると思って別スレで質問したが、思った回答が得られなかったのでこっそりマルチポストしてるのだろう
http://echo.2ch.net/test/read.cgi/hp/1488192984/384-
0690デフォルトの名無しさん (ワッチョイ bf3c-y/cv)
2017/03/19(日) 21:58:04.92ID:Lj5IhMr80>>687
CSSで出来るよ
0691デフォルトの名無しさん (ワッチョイ c3a0-Dx6a)
2017/03/19(日) 21:59:01.69ID:L+LO5eNf0>>690
できました。
ホントのホントにありがとうございます。
0692デフォルトの名無しさん (ワッチョイ a30e-qdcG)
2017/03/20(月) 00:12:43.52ID:UPidTP050Number(px); //123.45
parseFloat(px); // 123.45
px = '123';
parseInt(px, 10); // 123
javascriptの型変換について、
どれを使うべきってあるのでしょうか?
私は、次の3つのうちどれかを使えばokって認識なのですが、
一般的にとか、このスレ的に推奨とか、〜の理由でこれを使うべき
とかってありますか?
parseFloat
Number
parseInt
0693デフォルトの名無しさん (ワッチョイ bf3c-y/cv)
2017/03/20(月) 00:52:54.32ID:G9+XvfW+0の時にどうしたいかで使い分ける
0694デフォルトの名無しさん (ワッチョイ a30e-qdcG)
2017/03/20(月) 01:35:56.30ID:UPidTP050なるほど。
ところで皆さん、自分の過去に作ったコード読んで意味不明とか
何で動いてるか分からないってありますが?
私は、結構そんなコードあるんですが、
やっぱり処理フローとか資料とか作っといたらいいのでしょうか?
0695デフォルトの名無しさん (ワッチョイ 53ee-RygQ)
2017/03/20(月) 04:59:35.86ID:jSqJf+ps0parse系は単位付きの文字列から変換する時か、基数を変える必要があるときのみ
一番いいのは+演算子、次点でNumberや数値で取得するメソッドを使うこと
◎ val = +elm.value
○ val = Number(elm.value)
○ val = elm.valueAsNumber
>>694
資料までは要らないが、コメントは最低限必要
でもコメントを残しとかないといけないような所はできるだけ少なくしたいもの
まあ上達してくれば徐々に減る
0696デフォルトの名無しさん (ワンミングク MM5f-PRkG)
2017/03/20(月) 05:22:32.26ID:9l8mop6tM一番上は暗黙の型変換だからおれは勧めないな
時代に即さない
0697デフォルトの名無しさん (ワッチョイ bf7d-tpgq)
2017/03/20(月) 06:29:26.82ID:b6MPn9SR0どちらの書き方が好ましいんでしょうか?
0698デフォルトの名無しさん (ワンミングク MM5f-PRkG)
2017/03/20(月) 06:36:41.80ID:9l8mop6tM変数に入れる理由がわからないうちは普通にfunctionで書く方がいいよ
0699デフォルトの名無しさん (ワッチョイ bf7d-tpgq)
2017/03/20(月) 06:41:44.71ID:b6MPn9SR0こんな時間に即レス感謝です。変数に入れる理由って、引数で関数渡す場合ですかね?
前者の表記の場合、関数ポインタ分メモリを余計に消費してしまうって言う理解で正しいですか?
0700デフォルトの名無しさん (ワンミングク MM5f-PRkG)
2017/03/20(月) 06:54:28.26ID:9l8mop6tM引数で関数渡すときに変数に入ってるかどうかは関係ないよ
function構文でも同様に渡せる
メモリ云々は考えない方がいい
どうせ意味のないレベルだし内部実装がどうなっているかによる
無名関数を変数に入れるということは途中でそれを破棄する事も出来る
GCが走れば当然メモリは解放される
これも微々たるもので千個万個定義するとかじゃないかぎりほとんど意味はない
まず、javascriptのプロとタイプについて調べ、なぜ無名関数が必要なのか、どう使うのかを勉強したらいいよ
きっと今のレベルであれこれ考えても意味がないよ
あと、他の言語の知識はいったん全部忘れるほうがいい
他の言語の知識ありでJSをとらえようとすると余計なフィルターがかかって本質がいつまでもたっても見えないとおもう
ぶっちゃけ、javascriptは他の言語とは比較にならないレベルで難解だよ
やるなら書籍買い込んで本気で基礎からやったほうがいい
0701デフォルトの名無しさん (アウアウウー Sa37-Rmg3)
2017/03/20(月) 10:41:29.41ID:dCGuhToEa0702デフォルトの名無しさん (ワッチョイ f35b-tpgq)
2017/03/20(月) 10:42:58.03ID:5J3+8zMD0こんなのはJavaScriptのスレだけなのだけどね。
0703デフォルトの名無しさん (フリッテル MM7f-EJeZ)
2017/03/20(月) 12:34:37.78ID:RyskYj8DM対象の変数値によって最適解が異なる。
// ToNumber 系
Number(px);
+px;
// 文字列パース系
parseInt(px);
parseFloat(px);
// DOM API 系
element.valueAsNumber
ToNumber 系は Number 型への変換だけを行い、文字列パース系は Strimg 型に変換してから、文字列の前方にある数値文字列を対象に Number 型へ変換する(数値文字列の後続文字列は読み飛ばす)。
単純なNumber型への変換を求めるなら ToNumber 系で十分であり、文字列パース系は数値以外が混在する String 型が適する。
element.valueAsNumber は対象ブラウザが許すなら使える。
http://caniuse.com/#feat=input-number
0704デフォルトの名無しさん (フリッテル MM7f-EJeZ)
2017/03/20(月) 12:42:39.52ID:RyskYj8DM変数の巻き上げ(hoisting)を望まないなら変数宣言を行い、そうでないなら関数宣言を使用すれば良い。
>>6のJavaScript Gardenを参照する事を推奨する。
巻き上げを望まないなら const, let を使いたくなるだろうが、対応ブラウザの関係でトランスコンパイラなしでは扱いにくいところがあるので、要求パフォーマンス及び対象ブラウザ次第といえる。
0705デフォルトの名無しさん (アウアウカー Sa57-Rmg3)
2017/03/20(月) 13:30:33.76ID:1qi4KoAma少なくとも9割はconstにしたい
0706デフォルトの名無しさん (フリッテル MM7f-pqpN)
2017/03/20(月) 13:52:50.29ID:cId9IEOYM0707デフォルトの名無しさん (ワッチョイ bf5b-YDOq)
2017/03/20(月) 13:56:00.98ID:+zI9Fl+i00708デフォルトの名無しさん (アウアウカー Sa57-4frl)
2017/03/20(月) 14:06:55.06ID:OAxC6OTFa0709デフォルトの名無しさん (ワッチョイ f35b-tpgq)
2017/03/20(月) 14:15:35.01ID:5J3+8zMD0> 私は、結構そんなコードあるんですが、
一応ヒントだけ言っておくと、
> 私は、次の3つのうちどれかを使えばokって認識なのですが、(>>692)
この認識が間違い。
> 一般的にとか、このスレ的に推奨とか、〜の理由でこれを使うべき
一般的に〜の理由でこれを使うべきというのはあって、それはMDNを読めば分かる。
資料やコメントも重要なのだけど、それ以前に、
資料やコメントが無くても分かるコードを目指さないといけない。君はそれができてない。
分かってないやつが書いた資料やコメントなんて使い物にならない。今の君がそう。
だから繰り返しになるが、今はまず、何故そのコードなのかを明確にするように書け。
そして「本来は○○を使うべきだが△△の理由で□□を使っている」場合にそこにコメントつけるんだよ。
そうすれば、自分流のスタイルは統一され、自分のコードが読めないことはなくなる。
次に、他人のコードが読みにくいというのが発生するが、これは上記、
「自分流」と「他人流」が違うから。
ただそれも、だんだん「自分流→他人流」の変換テーブルが出来るから読めるようになる。
その上で、この変換テーブルの作成コストを下げたいというのなら、
「自分流」を世の中の「多数派」に合わせることが必要で、
それは自分であちこちのサイトを巡ってF12押して確認しろ。
ここはマジでデタラメばかり言うやつが多すぎる。
0710デフォルトの名無しさん (アウアウカー Sa57-4frl)
2017/03/20(月) 14:39:28.75ID:mV22Zu+/aこいつの言ってることが既にデタラメだからな
0711デフォルトの名無しさん (ワッチョイ bf3c-y/cv)
2017/03/20(月) 17:01:21.30ID:G9+XvfW+0でも関数宣言より関数式を使うほうが一般的なんかね?
http://airbnb.io/javascript/#functions
https://medium.com/@ryanflorence/functions-without-function-bc356ed34a2f
Airbnbなんかは関数宣言使うと可読性とメンテナンス性が落ちるって書いてるけど
関数式使ってるのほうが可読性が低いと感じるコードが多いと思ってる
0712デフォルトの名無しさん (ワッチョイ bf3c-y/cv)
2017/03/20(月) 17:04:42.33ID:G9+XvfW+0基数指定が不要で可読性が高いから
parseInt使うのは特別なケース
仕事のコードなら規約に従うけどね
0713デフォルトの名無しさん (フリッテル MM7f-EJeZ)
2017/03/20(月) 17:07:48.80ID:RyskYj8DMわけも分からず、多数派に合わせるのはお勧めしない。
自分の中で納得できる理屈を確立できるまで突き詰める探求心こそが必要。
流行次第で変化する多数派に合わせることはそれ程重要ではない。
観測範囲によっても多数派は変わるだろうしな。
0714デフォルトの名無しさん (フリッテル MM7f-EJeZ)
2017/03/20(月) 17:22:11.55ID:RyskYj8DM一般的かどうかは分からないが、関数式を使う人の心理としては「関数定義後に関数呼び出しする原則」を徹底したいのだと思う。
関数宣言では宣言の記述前に関数呼び出しする事が出来てしまう。
勿論、コーディング規約やポリシーで制限することは出来るのだが、宣言前に呼び出したらエラーになる強制力が欲しいと感じるのだろう。
> 関数式使ってるのほうが可読性が低いと感じるコードが多いと思ってる
個人的には同意なのだが、
所詮、可読性は主観的な評価なので慣れてしまえば、どちらでも大した違いはないと思う。
「どちらが可読性が高いか」ではなくて「どちらが自分にとってしっくりくるか」という感覚的なもの。
可読性でいうならアロー関数は可読性が低いと感じるが、新しいもの好きやショートコーダの人は平気で書くだろう。
それは「可読性を落としてでも書くメリットがある」か「自分自身の目を養って自分の可読性能を上げよう度努力した(慣らした)」のだと思う。
その辺のバランス感覚は人それぞれなので自分の中で完結するのは良しとしても、他人に可読性が云々という人を見ると「あなたの個人的な感想では?」と感じることはある。
(あなたがそうといっているわけではないが、このスレでも比較的そういう人を見かけるな)
0715デフォルトの名無しさん (アウアウウー Sa37-Rmg3)
2017/03/20(月) 17:50:30.15ID:9zw9z92Zavar、let、と来てるんだからconでいいのに
0716デフォルトの名無しさん (ワッチョイ f35b-tpgq)
2017/03/20(月) 18:23:45.84ID:5J3+8zMD0> Why?
> Function declarations are hoisted, which means that it’s easy - too easy - to reference the function before it is defined in the file.
> This harms readability and maintainability.
> If you find that a function’s definition is large or complex enough that it is interfering with understanding the rest of the file,
> then perhaps it’s time to extract it to its own module!
> Don’t forget to name the expression - anonymous functions can make it harder to locate the problem in an Error's call stack.
> ([Discussion](https://github.com/airbnb/javascript/issues/794))
まずこれが嘘だろ。
関数宣言はどこにでも置けるのだから、関数式を置いている場所においても動作は問題ない。
遠くに置いて見にくくなるのなら、近くに置けばいいだけの話。
結局のところ、訳の分からない場所に置く馬鹿がいることが問題なんだよ。
関数式で前方宣言を強制することは出来る。
しかし、前方宣言が文法的に強制されているCに於いては、糞だと言う人のほうが多い。
だからそれ以降の言語、おそらく全部で、この仕様は捨てられているわけでね。
どこにでも置けるという、より自由度が高い方法を適切に使いこなした場合、
より自由度が低い方法でそれを超えることは出来ないのは当然。
それを馬鹿に合わせてどうするんだ、って話。
ただまあ、JavaScriptにおいては、このスレに限らず、Web上にもこの手のトンデモ情報が多すぎる。
ホームグラウンドだってこともあるのだろう、未熟者がお気軽に情報発信してしまいすぎている。
だから余計におかしくなる。
ただし、実はメンテ性は少し落ちる。
何らかの変更でポインタが必要になった場合、関数宣言→関数式に変えるが、
前方宣言強制になるので、理想的には、最初から関数式で書いた場合に置いたであろう場所 ---(A)
に移動させることになる。ところが、2段階とかで呼んでいる場合、それが分かりにくいので、
機械的にやってしまうのなら、関数内の頭に持っていく ---(B)
しかなくなる。で、(B)が嫌いなら残念なことになる。気にしないのなら大して問題はない。
0717デフォルトの名無しさん (ワッチョイ f35b-tpgq)
2017/03/20(月) 18:25:08.33ID:5J3+8zMD0Pythonはそうじゃないから、彼らは上記を読んだら発狂するのかもしれないが。
ただ、JavaScriptは「何でも出来る系」の言語なんだけどね。
0718デフォルトの名無しさん (ワッチョイ f35b-tpgq)
2017/03/20(月) 19:17:45.58ID:5J3+8zMD0Pythonは前方参照禁止なんだな。驚きだわ。
Cで糞々と言われる前方参照禁止を採用←Python
COBOL以来(多分)の文法的インデントを採用←Python
Pythonはかなりクレイジーだな。
そしてJavaScriptをPython流にすると関数式強制になるのかもしれん。
なお改行については以下参照
> A Python programmer attempting Java
> https://i.imgur.com/wG51k7v.png
諸悪の根元はPythonerか?
0719デフォルトの名無しさん (アウアウカー Sa57-4frl)
2017/03/20(月) 19:37:09.70ID:86KGYLzra括弧が気持ち悪すぎる
0720デフォルトの名無しさん (ワッチョイ 53ee-RygQ)
2017/03/20(月) 20:54:11.25ID:jSqJf+ps0そもそも変数とはスコープ内で有効になるものなのだから、
スコープ内のどこで宣言されても変数として巻き上げされるのは当たり前
巻き上げされないのは変数自体ではなくて変数の初期化(利用可能化処置)
初期化句以前では初期化以外での参照不可状態に設定されているだけ
このエリアを通称TDZと言う
0721デフォルトの名無しさん (ワッチョイ f35b-tpgq)
2017/03/20(月) 20:58:49.82ID:5J3+8zMD0すまん、改行じゃなくて括弧だったわ。(まあ改行もだが)
俺は初めて見た時には一瞬フリーズした。
そしてその後、波括弧がうぜーってのはこういうことかーと思った。
>>711
追加。
> でも関数宣言より関数式を使うほうが一般的なんかね?
俺は専門ではないが、少なくとも俺は全面的に関数式のソースは見たことがない。
今数サイト見てみたが、普通に関数宣言が使われている。
そして多分今後とも「全面的に関数式」にはならないと思う。
他言語(C/C++/Java/C#)から来た連中が「全面的に関数式」で書くはずがないし。
なお日本語ページは逆となっている
> 7.1 関数式より関数宣言を利用してください。
> https://github.com/mitsuruog/javascript-style-guide#関数functions
状況からすると改訂されたのだろう、おそらく以下。
const foo = function () {}; // ×
function foo() {} // △
const foo = function bar() {}; // ○
いずれにしてもAirbnb自体は有名らしい。
一体こいつらがどんなコードを書いているのかと思って探してみたが、
リーダーは確かにこの通り書いているね。
https://github.com/ljharb
個人的には余計に見にくくなっていると感じるが、この辺は所詮慣れだからねえ。
0722デフォルトの名無しさん (ワッチョイ bf3c-y/cv)
2017/03/20(月) 21:43:46.42ID:G9+XvfW+0おお改訂されてるね
改訂した理由をいくつかのコード例とともに語られてると参考になるんだけど残念ながらそういうのはないね
0723デフォルトの名無しさん (ササクッテロロ Sp97-DSCq)
2017/03/20(月) 22:50:20.09ID:jJoyVxl9pよくプログラミング初心者にjavascript勧めるやついるけど、とんでもないよ
JavaやPHPの方が簡単
フロントPGが少ないのよく分かるわ
だって難いもん
サーバサイドと違ってHTMLやCSSをブラウザー毎の動きまで踏まえて完璧に読み書き出来ないとダメだし、少し現場から離れるとすぐわかんなくなるし大変だわ
0724デフォルトの名無しさん (ワッチョイ f35b-tpgq)
2017/03/20(月) 23:02:03.61ID:5J3+8zMD0一応ここはWeb上の議論で改訂されてるらしいから、漁れば出てくるはずだけど、
俺はGit慣れしてないから無理だ。試しに数個ポチって見たが出てこない。
Git慣れしてるんならクローンしてローカルで検索出来るんじゃねーの?知らんけど。
https://git-scm.com/book/ja/v1/Git-%E3%81%AE%E5%9F%BA%E6%9C%AC-%E3%82%B3%E3%83%9F%E3%83%83%E3%83%88%E5%B1%A5%E6%AD%B4%E3%81%AE%E9%96%B2%E8%A6%A7
0725デフォルトの名無しさん (ワッチョイ bf3c-y/cv)
2017/03/20(月) 23:24:59.75ID:G9+XvfW+0改訂されたコミットみても具体例とか書いてないのよ
https://github.com/airbnb/javascript/issues/1008
0726デフォルトの名無しさん (ワッチョイ f35b-tpgq)
2017/03/20(月) 23:41:37.98ID:5J3+8zMD0これちなみにGitHub上で検索した?やっぱローカルクローンから?
なお、見た目は7.11に合わせる為に間違えて修正してしまったようにも見える。
0727デフォルトの名無しさん (ワッチョイ 5370-RygQ)
2017/03/21(火) 14:00:12.05ID:utcvU+/f0const foo = function () {}
が×なんだろうな
ES2015からこの書き方でもnameが付くようになったでしょ?
0728デフォルトの名無しさん (ワンミングク MM5f-PRkG)
2017/03/21(火) 14:11:53.03ID:AW7YBj5fMそれ普通にfunctionでいいじゃんw
0729デフォルトの名無しさん (アウアウウー Sa37-pJ3D)
2017/03/21(火) 14:22:36.92ID:XvUQo6M0a後方互換性を考慮しているのでは?
http://kangax.github.io/compat-table/es6/#test-function_name_property_variables_(function)
0730デフォルトの名無しさん (アウアウウー Sa37-pJ3D)
2017/03/21(火) 14:27:20.25ID:XvUQo6M0aEdge 15 でさえ about:flags で設定しなければ使えないので、後方互換性以前の問題か
0731デフォルトの名無しさん (アウアウカー Sa57-4frl)
2017/03/21(火) 14:33:49.62ID:saxGm3bOa0732デフォルトの名無しさん (ワッチョイ ef61-tpgq)
2017/03/21(火) 14:50:17.24ID:SBixdYhr00733デフォルトの名無しさん (ワッチョイ 5370-RygQ)
2017/03/21(火) 16:04:16.05ID:utcvU+/f0EventはObsevableもといasync generator functionが使えるまで要る
0734デフォルトの名無しさん (ワッチョイ ef61-tpgq)
2017/03/21(火) 16:25:45.91ID:SBixdYhr0うう難しいですね・・・
CちょっとできるようになってC++やろうとしたら挫折した時に似てます
0735デフォルトの名無しさん (アウアウカー Sa57-Rmg3)
2017/03/21(火) 17:18:19.13ID:iOlRfwaHa全部アローで書けばいい
IE?知らん
0736デフォルトの名無しさん (ワッチョイ bf3c-y/cv)
2017/03/21(火) 17:34:23.19ID:jV0Y+t/Y0cloneしてgit log -L
オプションはgit help logで確認して
0737デフォルトの名無しさん (ワッチョイ bfc8-YDOq)
2017/03/21(火) 18:38:55.47ID:XDBsAYay0Array#mapの引数とか必ず関数が来るところならまだしも、let f = e => {};とか書かれるとちょっと混乱する
俺が慣れてないだけかもしれないけど
0738デフォルトの名無しさん (ワッチョイ efa7-tpgq)
2017/03/21(火) 18:56:16.04ID:cCTalgi30俺はなるべく引数に()付けたりブロック部分を改行したり
return端折らずに関数っぽく見える程度の形にしてる
0739デフォルトの名無しさん (アウアウウー Sa37-Rmg3)
2017/03/21(火) 20:16:43.13ID:bmlZ4oTAa慣れもそうだけどアローは関数型プログラミングの流れを汲んだ記法だから、
そこら辺に慣れてないと違和感あるかもね
その関数が参照透過かつ副作用がなければアローは本当にただの矢印というか、
引数に対して何か手を加えて返すだけの数学ちっくな関数になるからアローも
しっくり来ると思う
逆に可読性のために処理をまとめて詰め込んだだけの関数ならそれはもう
関数というかプロシージャだから、アローも単にタイプ数が少なくなる程度の
意味しか持たないし違和感を覚えるのもおかしくない
0740デフォルトの名無しさん (ワッチョイ f3c8-tpgq)
2017/03/21(火) 20:20:20.88ID:T5U7WLBb0つかAirbnbが馬鹿だから、の結論でいいと思うよ。
>>725の議論でいきなり7.1を変更して内容が残ってない時点でアウトでしょ。
「議論してまーす」のフリをしているだけだよね。最近こういうのも多いけど。
なおgoogleはそんなことは言ってない。強いて言えば以下。
> ブロックの中での関数宣言
> してはいけない.
>
> if (x) {
> function foo() {}
> }
> ブロック内での関数宣言は多くのスクリプトエンジンでサポートされていますが,
> これは ECMAScript で標準化されていません (ECMA-262 の 13, 14 節を参照してください).
> よって各実装や将来の ECMAScript 標準との間での一貫性がとれなくなります.
> ECMAScript での関数宣言は, スクリプトのルート部分か関数内で許可されています.
> ブロック内では関数宣言の代わりに関数式を用いてください:
>
> if (x) {
> var foo = function() {};
> }
> http://cou929.nu/data/google_javascript_style_guide/#id14
最後の1行の後半部分だけは一致する。海外にも文盲が増えただけの話だろ。
Nodeは余裕で関数宣言使ってる。jQueryには言及自体がない。
> https://github.com/felixge/node-style-guide#functions-1
> https://contribute.jquery.org/style-guide/js/
JavaScripterはこういうところで変に悩んで時間を浪費してる分、上達が遅くなっている。
どっちでもいいから自分なりに決めてガシガシ書かないと上達しない。
それでイマイチだったなら後で変更すればいいだけ。
最初から文法/スタイルに異常にこだわる奴が多すぎるのもJavaScripterの特徴だよ。
0741デフォルトの名無しさん (ワッチョイ f3c8-tpgq)
2017/03/21(火) 20:28:08.78ID:T5U7WLBb0つまりアロー関数はクロージャ無し、ついでにthisの使用も禁止にすれば美しかった、ってことだろ。
俺もそう思うね。
まあこれに限らず「何でこんな仕様なの?」ってのは多いけどね。
0742デフォルトの名無しさん (ワッチョイ cf75-vzQh)
2017/03/21(火) 20:59:01.05ID:wMSmjxpw0関数式は、あくまでも式・オブジェクトだから、書いた順序に依存する。
関数を下の方に書けないから、分離度が低い
関数式は1級オブジェクトだから、他の関数に、コールバック用引数として渡すなど、
関数をオブジェクトとして使う、用途に適している
関数宣言(文)は、オブジェクトとして使わない、単なるutility関数として使う場合
0743デフォルトの名無しさん (ワッチョイ bf3c-y/cv)
2017/03/21(火) 21:01:44.99ID:jV0Y+t/Y0>>740
そっちのほうはDiscussionでリンクしてるIssueでちゃんと説明してるやん
https://github.com/airbnb/javascript/issues/794
0744デフォルトの名無しさん (ワッチョイ 538c-u6wT)
2017/03/21(火) 21:06:36.94ID:KGQ11aI90> ES2015からこの書き方でもnameが付くようになったでしょ?
あんたにわかりやすく理由を説明するならばこうだよ
「仕様上はnameがつくようになりましたが、これはサポートしていないブラウザが
多いという問題があります。現実的に問題があるため推奨しません」
コーディング規約というものはそもそも「罠」を回避するためにある。
あるブラウザでは動くが、他のブラウザでは動かない。
これこそ「罠」でしょ?
0745デフォルトの名無しさん (ワッチョイ 538c-u6wT)
2017/03/21(火) 21:10:57.81ID:KGQ11aI90> JavaScripterはこういうところで変に悩んで時間を浪費してる分、上達が遅くなっている。
JavaScrptに限らない
> どっちでもいいから自分なりに決めてガシガシ書かないと上達しない。
決めるためには深く理解しなきゃいけないだろ
自分で決めるから時間がかかるんだよ。
こういうのは有名なスタイルガイド(Airbnb等)を採用して
そのデフォルト設定でガシガシ書くのが上達の近道
理由は後から理解すればいい。まず手を動かすことが大事
自分でルールを考え込んで無駄な時間をかけないようにしろ
0746デフォルトの名無しさん (ワッチョイ f3c8-tpgq)
2017/03/21(火) 21:24:13.49ID:T5U7WLBb0いや、無いよな?
確認だが、以下の理由と、そのコード例が知りたいんだよな?
(少なくとも、俺が言っているのは以下件についてだ)
> 変更前:
> Use function declarations instead of function expressions.
> Why? Function declarations are named, so they're easier to identify in call stacks.
> 変更後:
> Use named function expressions instead of function declarations.
> Why? Function declarations are hoisted, which means that it’s easy - too easy - to reference the function before it
> https://github.com/auth0/javascript/commit/3bce8154a02e44dade7a9da95a188966b0a1d523
見た目、不整合があるから整合させましたー、と見える。それはいい。
ただそのついでにこの変更はなしだろ、と思う。
0747デフォルトの名無しさん (ワッチョイ 538c-u6wT)
2017/03/21(火) 21:35:13.01ID:KGQ11aI90そのコミットは、 Fixes #1008. に対する修正だけど?
0748デフォルトの名無しさん (ワッチョイ f3c8-tpgq)
2017/03/21(火) 21:48:52.92ID:T5U7WLBb0全般的には同意だが、細かい点は以下。
> こういうのは有名なスタイルガイド(Airbnb等)を採用して
いや常識的にはgoogleだろ。
google: 関数宣言?問題ないよ。
Node: 関数宣言?問題ないよ。
jQuery: …
Airbnb:関数宣言は駄目。全部関数式にしろ。
誰を信じるかだが、google は巨人だろ。
おそらく世界最高レベルのJavaScriptエンジニアを多数揃えている。
Nodeの連中も同様、JavaScriptに深く関わっている。
jQueryも老舗の良店舗だろ。Nodeより信頼出来るかもしれない。
AirbnbってただのGitHub上の寄せ集めで、誰がやっているかも分からない。
そこでリーダーのリポジトリを見てみたが、バージョン管理システムとかだし。
これでAirbnbを信じるという選択になるのはアホだろ。
まあそれでも選択するのは個人の自由だが。
俺だったらgoogleを読んで、
おや?っと思う点だけは他も確認して、というアプローチにするけど。
そもそも、それ以前に、俺は偶には閲覧中のサイトのコードも覗くようにしてるけど、
全面関数式のコードには遭遇したことがないし。
> JavaScrptに限らない
他言語はこの手の「同じ事が出来る書き方」が何種類も用意されてないんだよ。
だからいちいち迷うことはないんだ。
迷うのはその上の段階の「データ構造」「制御構造」「オブジェクト指向」であり、
これは迷う価値があるから迷えばいいんだよ。
0749デフォルトの名無しさん (ワッチョイ 538c-u6wT)
2017/03/21(火) 22:01:42.18ID:KGQ11aI90等って書いたろ。どれでもいいんだよ。
そんなのにこだわってるから無駄な時間が過ぎていく
0750デフォルトの名無しさん (ワッチョイ 538c-u6wT)
2017/03/21(火) 22:04:36.39ID:KGQ11aI90Airbnbの考察とかしてるんだろうか。
「Airbnbは人気があるものの一つ」で
選択肢として扱うのに十分なんだが。
といったら、あーだこーだ
Airbnbの考察を語るんだろうなw
時間の無駄。
0751デフォルトの名無しさん (ワッチョイ 538c-u6wT)
2017/03/21(火) 22:05:09.76ID:KGQ11aI90用意されている
0752デフォルトの名無しさん (ワッチョイ 83f5-JN/B)
2017/03/21(火) 22:48:54.14ID:EYWrpp4i0Fontを変えれば結構目立つようにできるよ。
FiraCodeとか
0753デフォルトの名無しさん (ワッチョイ 5370-RygQ)
2017/03/21(火) 22:50:00.78ID:utcvU+/f0難しくないよ
function
は同期的に一度しか値を返せないのに対して
generator function
は同期的に何度も値を返せる
なら非同期に一度しか値を返せない
async function <-> promise
に対して非同期に何度も値を返せる
async generator function <-> observable
が考えられるでしょってこと
promiseがthenで繋げるように
observableもforEachとかいろんなメソッドで繋いで使う
0754デフォルトの名無しさん (ワッチョイ 436e-tpgq)
2017/03/22(水) 23:08:09.38ID:CHjgGlMW00755デフォルトの名無しさん (ワッチョイ bf3c-y/cv)
2017/03/22(水) 23:14:17.83ID:vhfzvoEm00756デフォルトの名無しさん (ワッチョイ bfc8-YDOq)
2017/03/22(水) 23:15:01.33ID:l60EFEPW0js側でのチェックは任意だが、あれば便利(UIの向上、サーバー負荷の軽減)
0757デフォルトの名無しさん (エムゾネ FF4a-rk0g)
2017/03/23(木) 02:37:56.05ID:MXxg54fBF場合によるが、両方にチェックは必要でも、同じチェックをする必要はない。
クライアント側では意味的なチェック、サーバー側では量的なチェック、のように分けてすると良い。
0758デフォルトの名無しさん (ワントンキン MM9a-0Bqe)
2017/03/23(木) 02:41:02.62ID:M7xdd4U/Mおいおい、分けちゃだめだろ
ザーバー側はクライアント側を含むチェックしないと
0759デフォルトの名無しさん (ワッチョイ ea3c-EscV)
2017/03/23(木) 03:26:49.22ID:mxf1LURC0>>757 Bad (意味的チェック量的チェックの意味がわからない 内容によっては同じチェックが必要)
>>758 Bad (クライアント側を含む必要は必ずしもない)
0760デフォルトの名無しさん (ワントンキン MM9a-0Bqe)
2017/03/23(木) 03:33:52.14ID:M7xdd4U/Mクライアント側を含まない一般的な例を挙げてもらえるかな?ん?
0761デフォルトの名無しさん (ワッチョイ ea3c-EscV)
2017/03/23(木) 03:57:17.62ID:mxf1LURC0パスワード設定時に2度入力してもらったパスワードが同じかどうかを確認する場合
参照系処理で入力値のチェックディジットを確認する場合
0762デフォルトの名無しさん (ワントンキン MM9a-0Bqe)
2017/03/23(木) 04:20:42.76ID:M7xdd4U/Mなんだただの屁理屈か
チェックを分けるという757に対し、クライアントチェックとザーバーチェックの一般的包含関係を指摘した758を "BAD" と言う位だから面白い話でも聞けるとおもったんだが残念
0763デフォルトの名無しさん (エムゾネ FF4a-rk0g)
2017/03/23(木) 06:24:22.37ID:MXxg54fBFその必要はない
例えば電話番号を入力するフォームがあったとして、
0-00-000をクライアントサイドで弾くのはユーザー補助として正しい。
でもこれを(量の問題を抜きにすると)サーバーサイドで弾く必要はない。
なぜならそもそもユーザーが他所様の電話番号を使っても分からないからだ。
だから何らかのハックでJSのバリデーションを抜けてくるもののうち、そんな所に着目しても仕方がない。それは実際には何の安全も得られない蛇足。
そうではなく、できるだけシンプルに絶対に防がねばならない所に集中して、そこで抜けが無いようにすべきなのだよ。
0764デフォルトの名無しさん (ワッチョイ 9370-g1YJ)
2017/03/23(木) 06:57:22.16ID:52peJ7Lk0それぞれがそれぞれの目的に会ったチェックをするのは自然だろうよ
しかし実際はサーバありきでその補助としてクライアントを作る方が一般的だから
正しいか正しくないかというよりその場合不自然になるだろうよ
0765デフォルトの名無しさん (JP 0Hb6-aw5l)
2017/03/23(木) 12:59:49.72ID:1Qddb7ZOH> でもこれを(量の問題を抜きにすると)サーバーサイドで弾く必要はない。
あるでしょ。
> だから何らかのハックでJSのバリデーションを抜けてくるもののうち
別にハックじゃなくても普通に別経路でリクエストを受け付ける場合もあるし、アタックを受ける場合もある。
> 絶対に防がねばならない所
それには、普通クライアントサイドで行うような形式的なバリデーションも含む。
例えば、形式的にvalidな電話番号かどうかとか、email addressかどうかとか。
0766デフォルトの名無しさん (ワッチョイ ea3c-EscV)
2017/03/23(木) 17:59:22.63ID:mxf1LURC0>>763 Good 説明はわかりにくいが基本は理解してる風
>>764 OK 補助としてクライアントを作るのが一般的と言える時代ではない
>>765 Bad チェックの種類・目的をよく理解できてない
0767デフォルトの名無しさん (ワッチョイ 1bcd-0Bqe)
2017/03/23(木) 18:01:04.57ID:y1JVgYTX00768デフォルトの名無しさん (ササクッテロリ Spd3-1VOV)
2017/03/23(木) 20:14:00.33ID:jk0vnrUUpよって渡される入力の正しさを保証するためにクライアントサイドのバリデーションを使ってはならない
せいぜい誤入力を事前検知して無駄な通信を減らしユーザビリティを向上させるぐらいのものだ
サーバサイドでの入力チェックはサーバサイドでの処理の要件に合わせて行われるべきで、クライアントサイドを気にする必要は全くない
鯖蔵両方で同じチェックを行うことを忌避する理由はないし、蔵でチェックした物全てを鯖で再検証しなければならない理由もない
この2者は目的が違うため個別に考えるべき物なのに、関連するものの様に扱うから混乱するんだろ
0769デフォルトの名無しさん (エムゾネ FF4a-rk0g)
2017/03/23(木) 21:06:04.79ID:g5+n7phXFだよな。
こんな簡単な事がどうして理解できない奴が居るのかね?
0770デフォルトの名無しさん (ワッチョイ ea3c-EscV)
2017/03/23(木) 23:03:37.05ID:mxf1LURC0クライアント側では以下のようなチェックを実施
必須チェック:入力されてるかどうか
長さチェック:4桁かどうか
形式チェック:数字かどうか(このケースは型チェックと呼ぶ場合も)
範囲チェック:1000〜5000の間かどうか
サーバー側でも同じチェックをする場合もあるが
範囲外の値が入力されても結果が見つからないだけなので範囲チェックはやらない場合がよくある
参照系の場合は論理チェックなんかもクライアント側のみで実施するケースがよくある(更新系の場合は別)
>>756や>>768が書いてるようにクライアント側チェックは基本的にUX向上のためで
データの妥当性や整合性を保証するためのものじゃない
0771デフォルトの名無しさん (オッペケ Srd3-GcFy)
2017/03/24(金) 00:19:03.16ID:q+ZUh23Rrほんとこれ
0772デフォルトの名無しさん (ワッチョイ 6661-VHv+)
2017/03/24(金) 00:26:15.54ID:kUuIMYYH00773デフォルトの名無しさん (ワッチョイ 1bcd-0Bqe)
2017/03/24(金) 03:14:23.52ID:rALN4Wgi0頭堅すぎ
0774デフォルトの名無しさん (ワッチョイ 9370-g1YJ)
2017/03/24(金) 09:07:59.43ID:ABrn3clB0それはDB側のAPIの問題だと思うが
DBなんて何時例外吐くか分からんのだし、参照時は何でもDBの例外として扱えば問題ないでしょ
0775デフォルトの名無しさん (JP 0Hb6-aw5l)
2017/03/24(金) 11:14:10.55ID:ocF0oGY1H> サーバー側でも同じチェックをする場合もあるが
> 範囲外の値が入力されても結果が見つからないだけなので範囲チェックはやらない場合がよくある
脆弱性の温床ですな。
サーバが受け取るデータは全てチェックしなければならない(MUST)。
UXを無視すれば、サーバ側で全てのチェックを行いクライアント側では一切しないという選択もなくはない。
0776デフォルトの名無しさん (JP 0Hb6-aw5l)
2017/03/24(金) 11:23:49.40ID:ocF0oGY1Hあ、サーバ側では上の3つはやるが範囲チェックのみしない場合があるということか。
それなら同意。
0777デフォルトの名無しさん (エムゾネ FF4a-rk0g)
2017/03/24(金) 12:52:17.72ID:BP9qUPyxF簡単に言うとそれこそ脆弱性になるような物だけサーバでチェックするってことでしょ
つまりサーバのチェックは引っかかったら処理を全て破棄してログに記録することだけやる
一方ユーザーにおかしいですよとやり直しさせるような事に絞ってクライアントでチェックするということでしょ
0778デフォルトの名無しさん (ワッチョイ dfa1-tY0+)
2017/03/24(金) 15:22:53.73ID:pB18Cl9S0フルスクリーンの解除ってどうすればいいでしょう?
flag = false;
function toggle(){
flag = !flag;
if(flag == true){
if(document.body.webkitRequestFullScreen) {
document.body.onwebkitfullscreenchange = function(e) {
document.body.style.width = window.innerWidth + 'px';
document.body.style.height = window.innerHeight + 'px';
document.body.onwebkitfullscreenchange = function() {
};
};
document.body.webkitRequestFullScreen();
}
// mozilla
if(document.body.mozRequestFullScreen) {
document.body.mozRequestFullScreen();
}
document.getElementById("botan").value = "フルスクリーンオフ";
} else {
document.getElementById("botan").value = "フルスクリーンオン";
}
}
0779デフォルトの名無しさん (JP 0Hb6-aw5l)
2017/03/24(金) 16:20:54.61ID:ocF0oGY1H> 簡単に言うとそれこそ脆弱性になるような物だけサーバでチェックするってことでしょ
簡単に言ってますがな。
> サーバが受け取るデータは全てチェックしなければならない(MUST)。
0780デフォルトの名無しさん (ササクッテロリ Spd3-1VOV)
2017/03/24(金) 16:55:23.56ID:xJa3HsICphttps://developer.mozilla.org/ja/docs/Web/Guide/DOM/Using_full_screen_mode
ベンダープレフィックスはよしなに
0781デフォルトの名無しさん (ワッチョイ feef-VHv+)
2017/03/24(金) 18:27:41.34ID:OKRbra2j00782デフォルトの名無しさん (ワッチョイ ea3c-EscV)
2017/03/24(金) 18:50:10.68ID:suDsBIm10無理
バックグラウンド処理はJavaScriptと関係ないので各スマホのスレに行って
0783デフォルトの名無しさん (ワッチョイ 7bd4-O03j)
2017/03/25(土) 00:52:37.97ID:is8OgtpR0javascriptの時は配列で代用してるわ
switch (weather){
case "快晴":
return "f.png";
case "晴れ":
return "f.png";
case "くもり":
return "c.png";
case "雨":
return "r.png";
これより
Select =[
"快晴" : f.png,
"晴れ" : f.png,
"くもり" : c.png,
"雨" : r.png
]
Select(weather);
の方が見やすいやん
0784デフォルトの名無しさん (ワッチョイ 7bd4-O03j)
2017/03/25(土) 00:53:00.15ID:is8OgtpR0javascript連想配列でデフオルト値設定する時は
if(hoge[x]===undefined)一文を付け加えるだでオケ
あと、普通はswitch case文でやりそうな
hoge = [
"快晴" : function(){ 処理1 },
"晴れ" : function(){ 処理2 },
"くもり" : function(){ 処理3 },
"雨" : function(){ 処理4 }
]
hoge[weather]();
みたいのもよくやるわ
それくらいswitch case使いたくない
0785デフォルトの名無しさん (ワッチョイ 938c-5sBS)
2017/03/25(土) 04:04:59.05ID:Gy0JTtQc0あー、うん。俺にとっては当たり前なので
そんなに言うことはないなw
コードが長くなければ、ここまでまとめたコードを書くこともある。
const name = {
"快晴": "f.png",
"晴れ": "f.png",
"くもり": "c.png",
"雨": "r.png"
}[weather] || 'unknown.png";
最後の行がdefault相当の書き方な。厳密に言えば値が
falsyの場合に使えないんだけどそれが必要になることはまずない。
0786デフォルトの名無しさん (ワッチョイ 9370-g1YJ)
2017/03/25(土) 05:31:01.91ID:KmJBzYaF0君勘違いしてるね
どのデータをチェックするかではなくて
データに対しどういうチェックするかがずっと話されてきてるのよ
データの数=チェックの数 じゃないでしょ
0787デフォルトの名無しさん (ワッチョイ 2a11-VHv+)
2017/03/25(土) 10:16:51.24ID:UemXv0vo0間違えすぎてて笑う
0788デフォルトの名無しさん (ワッチョイ 1bcd-0Bqe)
2017/03/25(土) 12:26:39.27ID:LvHBs4Hr0そこまで毛嫌いする意味がよくわからんけど
0789デフォルトの名無しさん (アウアウウー Sa3f-h7Mr)
2017/03/25(土) 16:15:36.45ID:uPRT5zaYa0790デフォルトの名無しさん (ワッチョイ f36e-Og2M)
2017/03/25(土) 16:16:26.85ID:ITKyI3zl00791デフォルトの名無しさん (ワッチョイ aa31-UOdH)
2017/03/25(土) 17:01:23.73ID:X4L1f9kG0ブラウザでホームページ開いて実行するユーザーサイドのjavascriptコードで、実行中の変数の内容を表示したいのですが、どうするのが良いでしょうか。
例えば、FireFixのWeb開発ツールを開いてみたのですが、今ひとつ解りません。
0792デフォルトの名無しさん (ワッチョイ 4ad6-Og2M)
2017/03/25(土) 17:03:53.11ID:HbZGgLUg0console.log(変数);
でいいと思う
0793デフォルトの名無しさん (ワッチョイ aa31-UOdH)
2017/03/25(土) 18:51:13.28ID:X4L1f9kG0function send_noti() {
if($('#user_mail').val()) {
var user_mail = $('#user_mail').val();
$.ajax({
url: 'send_noti.php',
type: 'post',
data: {user_mail: user_mail},
success: function(response) {
}
});
}
}
0794デフォルトの名無しさん (ワッチョイ ea3c-EscV)
2017/03/25(土) 20:53:12.20ID:WyZVpsBF0>>792
0795デフォルトの名無しさん (ワッチョイ 4ad6-Og2M)
2017/03/25(土) 21:22:28.87ID:HbZGgLUg0普通にいけると思うけど…
変数の中身表示したいところで
console.log(user_mail);
ってしたら
デバッグツールのコンソールに出力されるよ
0796デフォルトの名無しさん (ワッチョイ aa31-UOdH)
2017/03/25(土) 22:57:24.73ID:X4L1f9kG0できました。
ありがとうございました!
0797デフォルトの名無しさん (ワッチョイ 2a13-VHv+)
2017/03/26(日) 13:04:41.02ID:B6TaWqnz0見たいなページにjavascriptで遷移させたいのですが
普通にlocation.pathnameに入力しても?が%3Fにエスケープされてしまい、
location.pathname = "/home/index.php"
location.search = "a=1&b=2
としてもうまく動作しません。
どうすればいいのでしょうか?
0798デフォルトの名無しさん (ドコグロ MMe2-YDnS)
2017/03/26(日) 13:15:49.40ID:6ED+2C9oM0799デフォルトの名無しさん (ワッチョイ 1bcd-0Bqe)
2017/03/26(日) 13:26:12.08ID:nGHK8C/50pathnameはフラグメントを変更する機能無いだろ
href使いなさい
0800デフォルトの名無しさん (ワッチョイ 2a13-VHv+)
2017/03/26(日) 13:26:59.44ID:B6TaWqnz0上手くいきました。ありがとう御座いますm(_ _)m
0801デフォルトの名無しさん (ワッチョイ fee2-xnBe)
2017/03/27(月) 03:16:39.88ID:zKTOvwxl0やりたいこと: Androidタブレットの外付けマイクで音を拾ってその音量レベルを数値化したい
PC: Win7-Pro,FirefoxかChrome
Android: ver.4.4.2, ASUS MeMO Pad 7 (ME176C)
Android 音 取得 マイク JavaScript getUserMedia
でググりましたが、やりかたのヒントも分かりません。
とりあえず、 http://150217-html5sound.fnobi.com/ の
「Stream API」項の「Web Audio APIが使えるか確認しつつ、contextをつくる」
をマイクを付けたPCでやったところ、一応波形は変化しましたが、console.logはエラーだらけで
音のグラフ振幅もわずかでした。
また http://saku-na63.hatenablog.com/entry/2014/01/16/220011
のコードをタブレットで試しましたが、スピーカーからは何も聞こえませんでした。
※そもそもタブの画面左上にマイクのマークが出なかった
とりあえず、マイクで「アッーーーー!」と言ってるときに、画面上の何かのボタンを押して
alert ( "音量は " + xxx ); とかで参照したいです。
何か手立てはありますか?
0802デフォルトの名無しさん (ワッチョイ 6661-VHv+)
2017/03/27(月) 03:50:19.90ID:u3G31U+S00803デフォルトの名無しさん (ワッチョイ 9370-rs77)
2017/03/27(月) 05:04:50.71ID:PxWmWqFB0後はフラグの設定
0804デフォルトの名無しさん (ワッチョイ 6661-VHv+)
2017/03/27(月) 10:37:00.38ID:u3G31U+S0なるほど! ありがとうございましたm(__)m
0805デフォルトの名無しさん (エムゾネ FF4a-rk0g)
2017/03/27(月) 11:43:02.69ID:k65uzCD6FWebは常に変化している
そういうHTML5時代の枯れたAPIでも、できれば4ヶ月(3つブラウザバージョンが進む)以内、最悪でも8ヶ月(5つブラウザバージョンが進む)以内の情報に頼ること。
0806デフォルトの名無しさん (ワッチョイ 938c-5sBS)
2017/03/27(月) 11:49:50.85ID:LarKYmAi00807デフォルトの名無しさん (ワントンキン MM9a-0Bqe)
2017/03/27(月) 12:32:49.34ID:XA28lmPGM諦めろ
音声が拾えてもそれをバイナリレベルで解析するプログラム書けない限り無理
作れないならそういう便利なAPIが登場するまで待つしかない
0808デフォルトの名無しさん (アウアウカー Sa1b-/JR2)
2017/03/27(月) 13:12:47.32ID:6PFfEo7ya0809デフォルトの名無しさん (エムゾネ FF4a-rk0g)
2017/03/27(月) 13:25:31.65ID:k65uzCD6Fつうかバイナリ解析とか大げさな
音量と周波数がabで取れるからそれ見ればいいだけ
0810デフォルトの名無しさん (アウアウカー Sa1b-/JR2)
2017/03/27(月) 13:37:27.00ID:6PFfEo7ya通りで俺の環境で動かんわけだ
>>801
最新のブラウザでgetUserMediaを使うにはSSL導入してhttpsにする必要があるんだぜ(ドヤァ
0811デフォルトの名無しさん (ワントンキン MM9a-0Bqe)
2017/03/27(月) 13:49:48.81ID:XA28lmPGMlocalhostなら回避できるはずじゃ?
0812デフォルトの名無しさん (ワッチョイ 7bd4-O03j)
2017/03/27(月) 14:50:47.43ID:eaJfSyiy0こんなやつが同じプロジェクトにいたら困るわやめろや
0813デフォルトの名無しさん (ワッチョイ 938c-5sBS)
2017/03/27(月) 14:58:13.15ID:LarKYmAi0どうした? 言い返さないのか?w
0814801 (ワッチョイ fee2-xnBe)
2017/03/27(月) 19:16:02.99ID:zKTOvwxl0>>809 音量と周波数がabで取れるから
abって何ですか?
0815デフォルトの名無しさん (ワッチョイ fe75-i4+Q)
2017/03/27(月) 23:32:45.29ID:cGqqXL2J0JavaScriptから、スマホ・タブレットのネイティブ機能を使うのなら、
Monaca から、Cordova/PhoneGap の機能を使って、アクセスする
0816デフォルトの名無しさん (アウアウウー Sa3f-h7Mr)
2017/03/28(火) 00:06:12.68ID:RtCyVUYLaようなまとまりを使って遅延評価
するのは関数型の流れを汲むJSとしてはある意味当然でしょう
0817デフォルトの名無しさん (ワッチョイ 1bc8-VHv+)
2017/03/28(火) 00:21:46.80ID:x/Tih9w50意識高いだけで「中身がない」から嫌われてると分かってるか?
意識も高くて中身もあれば、「すごい人」になるんだよ。
とりあえずお前は遅延評価の定義を確認しろ。
そしてWeb系の連中はWeb板でやってくれねーかな?
0818デフォルトの名無しさん (ワッチョイ 2f67-gQ4j)
2017/03/28(火) 00:25:49.52ID:idISHk3E00819デフォルトの名無しさん (ワッチョイ 938c-TFxs)
2017/03/28(火) 00:51:57.88ID:xO0UHaSB0クライアントアプリじゃね?
例えばテキストエディタのatomとか
あれはElectronを使って作られている
少しでもネットにアクセスするとウェブ系というのなら
JavaScriptにかぎらずほとんどのアプリがウェブ系になるし
ゲーム系や業務系もウェブ系になってしまうから
そういうことじゃないよね?
0820デフォルトの名無しさん (ワッチョイ 2f67-gQ4j)
2017/03/28(火) 00:56:55.22ID:idISHk3E0ElectronなんてHTML5とCSS3とJavaScriptで、まんまWeb系の技術だと思うんだよな
マジでわからんね
0821デフォルトの名無しさん (ワッチョイ 938c-TFxs)
2017/03/28(火) 01:06:49.15ID:xO0UHaSB0じゃあサーバーサイドJavaScriptは
ウェブ系の技術じゃないよね
HTML5もCSS3も使わない
0822デフォルトの名無しさん (ワッチョイ 2f67-gQ4j)
2017/03/28(火) 01:08:26.59ID:idISHk3E00823デフォルトの名無しさん (ワッチョイ 1bc8-VHv+)
2017/03/28(火) 02:50:18.53ID:x/Tih9w50あーいや、まともな連中がうんざりしてこっちに移住するのは当然だと思うが、
現実的におかしな奴も結局こっちに混ざっちゃうわけでね。>>783とか>>816とか。
ここは「自分が書く時にどうすればいいか」を質問する場所であって、
「他人にこう書け」と布教する場所じゃない。
実際、783も816もそれぞれ得失あって使い分けるものだから、
「何言ってんだこの馬鹿は」でしかないだろ。
それでも、そういう話がしたい奴用に、JavaScript雑談スレがあっても良いんだよ。
実際Web板のはそれに近かっただろ。
そして彼等で回答出来る範囲なら、彼等に任せていいんだよ。
そこで喧々諤々議論をするのも悪いことではない。
間違いが含まれても、それは仕方ないし、仕様だし、どうせそれ以上の物も提供出来ないんだ。
ここは匿名だから、回答者のスキルを区別する方法が無い。(回答者にポイントが付いていない)
だから質問者は、どの回答が正しいのか分からない。
俺たちが出来るのは、正解が含まれるように努めるだけ。
現実的にスキルの差は発生し、どの界隈でも上級者は中級者より少ない。
結果的に、中級者が十分答えられる簡単な質問なら多数決でいいが、
上級者しか答えられない難しい質問の場合は少数意見がベストの時もあるわけでね。
初級質問者は自分の質問のレベルなんて分かってないし、区別出来ないんだ。
0824デフォルトの名無しさん (ワッチョイ 1bc8-VHv+)
2017/03/28(火) 02:51:02.73ID:x/Tih9w50簡単な質問はみんな回答出来るし、実際チャキチャキ回答が来た方がいいだろ。
難しい質問はそもそも早い回答が必要ないことが多いんだよ。
話したい奴は速い方に集うし、レベル低すぎてつまんねーって奴は遅いほうに流れてくる。
結果的に回答者も上手く棲み分け出来るんだよ。
だからWeb板の質問スレ、お前らにとっては不要だという結論でこちらに統合されたようだが、
それでも上記の通り「棲み分けスレ」としては機能してたんだよ。
そしてそれをここと混ぜるのは、お前らにとっても得策ではないんだよ。
だって、選択肢が減ってしまうだろ。
遅いスレには俺みたいな奴も住んでいて、無駄に衝突してしまうんだから。
つーかね、お前らは一体どんなスレが欲しくて、何がしたいのかをちゃんと考えろ。
そして、どういうレスをすればそうなっていくかを考えてレスしないといけないんだよ。
上記の通り、「表面的な棲み分け」が完了すると、
次のステップは、「住人の棲み分けの加速」なんだよ。
だから俺は遅いスレで馬鹿な回答をした奴には「死ね」とレスを付けていく。
そもそも正答率を高める為には、「自信が無いのなら回答しない」のが鉄則なのだけど、
構ってちゃん、構ってあげたいちゃん、キャピキャピしたいちゃんはそうじゃないから。
でもね、いくら死ね死ね言っても、彼等が出て行ってくれないとどうにもならないんだよ。
このときに、彼等にとってより魅力的なスレが必要で、
それは「速いスレ」であり、技術的には高くなくていいんだよ。つまり、Web板のスレがそうだった。
お前らの見方は、「Web板では機能しなかった。技術板では機能しているのでそこに統合」かもしれんが、
実際は、混ぜたらこっちもおかしくなるんだよ。その兆候は出てるだろ。
対立していたわけではなくて、実際は表裏一体なんだよ。
0825デフォルトの名無しさん (ワッチョイ 1bc8-VHv+)
2017/03/28(火) 02:51:35.69ID:x/Tih9w50俺は何度もこれを言ってきてるわけだが。
色々やること自体は良いことなんだが、結果的にスレッドクラッシャーになってる。
それでお前ら自身も確実に損をしている。
Web板見たところ、そんなに酷いとも思えないが、回答者ではなく質問者が酷かったのかな?
いずれにしても、お前らの判断でID/ワッチョイが必要だというのならそれは尊重されるべきだ。
が、単純にここに混ざったら共倒れになるだけなのはちゃんと理解しろ。マジで。
見た目多分お前らが欲しいのは、ID/ワッチョイ付きで、俺みたいな面倒な奴がいないスレだろ。
だったらおそらく、
・JavaScript質問雑談スレ(高速、初級〜中級の質問、例:○○のやり方が分からない)
・JavaScript技術質問スレ(低速、中級〜上級の質問、例:○○はどう実装すべきか)
という感じで棲み分けした方がいい気はする。
主張したい奴は雑談スレ側で存分にやれ。JavaScript談義もどうぞご自由に。
アホな主張を技術スレでやる奴は死ね。
質問者は好きな方を選べ。
てなところじゃないか?
まあ丁度800+だし、お前らは上記のことを理解した上でどうしたいか話し合えよ。
今は「複数の」機能しているスレが存在することが重要なんだよ。
一つに纏められる状態じゃない。
その上で、落ちない程度、死なない程度に棲み分け出来れば、
駄目な方を地道に改善していけば、最終的に両方とも交互に改善されていくだろ。
C#がその方法を採ってる。(相談室とふらっと)
0826デフォルトの名無しさん (ワッチョイ aa8c-TFxs)
2017/03/28(火) 02:57:25.06ID:8XEqMjkn0「うっっざー」
0827デフォルトの名無しさん (ワッチョイ 26a7-VHv+)
2017/03/28(火) 03:05:24.63ID:1m8Q31SZ0もう掻き回さなくていいよ
0828デフォルトの名無しさん (ワッチョイ 1bc8-VHv+)
2017/03/28(火) 03:07:52.18ID:x/Tih9w50背乗り朝鮮人死ね
というかWeb板から来た奴には俺をウザイと言う権利はないんだよ。
俺はずっとここにいたし、Web板には行ってないんだから。
その上でWeb板が諦められた理由はおそらく質問者側の問題だろう。
回答者は割とまともだし、今でもWeb板のID無しスレでしか質問しないキチガイも多いし。
多分826みたいな、
無駄に煽って回答を得ようとするキチガイが多くてうんざりしたのだろうとは思う。
とはいえキチガイもここでは排除する方法がない。それも含めて考えろ。
0829デフォルトの名無しさん (ワッチョイ 1bc8-VHv+)
2017/03/28(火) 03:09:35.99ID:x/Tih9w50「1つ」になるとマズいんだ。
今は機能しているスレが「2つ」ないといけない。
他があれば良いんだけど、この様子だと、多分無いからこの状態になってる。
0830デフォルトの名無しさん (ワッチョイ aa8c-TFxs)
2017/03/28(火) 03:20:03.81ID:8XEqMjkn0俺がうざいということを止めることなんか出来やしないのに
言う権利がないとか言って、何の意味があんの?w
何度でも言えちゃうよ?
うざいうざい
0831デフォルトの名無しさん (ワッチョイ 2f67-gQ4j)
2017/03/28(火) 03:27:29.29ID:idISHk3E0怖いし帰る
0832デフォルトの名無しさん (ワッチョイ 1bc8-VHv+)
2017/03/28(火) 03:35:15.77ID:x/Tih9w50死んでもらう為にはスレが「遅い」必要がある。
逆に言えば、彼等にとって魅力的な「速い」別スレが必要だということ。
Web板を諦めてこのスレに来るのは自由だけど、それはつまり、
技術板スレ>Web板スレ と判断したことになる。
だけど、Web板スレの方が人数(レス数)は多いんだから、
全員がここに一度に来ると、結果的にこのスレを乗っ取ってしまう。
それは、Web板スレよりもマシだったこのスレを破棄することになる。
JavaScriptのスレがダントツで糞なのは、この、
「良い方のスレを壊して悪い方に統合する」を繰り返しているから。
やってることが逆なんだよ。
お前らは本当に若すぎる。
だけど、俺が何を言っているかを理解して、もうちょっと賢くならないといけない。
0833デフォルトの名無しさん (ワッチョイ ea3c-EscV)
2017/03/28(火) 03:39:12.42ID:5RUVNWwS0長文すぎんよ
0834デフォルトの名無しさん (ワッチョイ aa8c-TFxs)
2017/03/28(火) 03:39:39.72ID:8XEqMjkn0かまってほしいんだろ?
0835デフォルトの名無しさん (ワッチョイ aa8c-TFxs)
2017/03/28(火) 03:40:56.25ID:8XEqMjkn0スレと関係ある話を流すことが
スレを壊すことだって理解してないのか?
0836デフォルトの名無しさん (ワッチョイ a672-sIi0)
2017/03/28(火) 04:00:31.42ID:88QQOgd100837デフォルトの名無しさん (ワッチョイ 6fce-qnvg)
2017/03/28(火) 04:55:21.43ID:1e56qEba0どちらかで回答が得られば結構です。
win7ie11,鯖缶なし(外部ファイル一切使用しない。)
はじめまして、初心者ですみませんが
二次元配列と連想配列で混乱していてうまく作れずに悩んでいます。
どなたかご教授下さいませ。えっと、とりあえず
文字列と色値をペアで格納して色値をソートや計算できて、
結果を文字列でリターンしたいです。
0838837 (ワッチョイ 6fce-qnvg)
2017/03/28(火) 05:07:25.51ID:1e56qEba0http://rio2016.2ch.net/test/read.cgi/future/1476229483/375-378
の文字列と色値をペアにしたいです。
0839837-838 (ワッチョイ 6fce-ZYFz)
2017/03/28(火) 13:31:34.78ID:1e56qEba0オブジェクトとして扱う方法を理解できていませんでした。
ありがとうございました。
0840デフォルトの名無しさん (ワッチョイ eba8-ZYFz)
2017/03/28(火) 17:50:29.62ID:pnMbSu0j0Angularのチュートリ始める前にgulpだのnodeだのnpmだのwebpackだの依存ライブラリがモジャモジャエラーが山盛り
わけわかんねえ
JavaScriptって簡単に書き始められるのが利点じゃなかったのか?
パッケ管理がメチャクチャでJavaその他より遙かに酷い
0841801 (ワッチョイ fee2-xnBe)
2017/03/28(火) 17:59:50.67ID:gIqFK2Qm0「ab」の意味が分かりません。何かの頭文字ですか?
0842デフォルトの名無しさん (ワントンキン MM9a-0Bqe)
2017/03/28(火) 18:11:56.60ID:qwv7MmmJMJS自体が今この世にあるメジャー言語の中で群を抜いて難しいとおもうよ
簡単に始められる=簡単に極められるじゃないからなあ
俺はjavaも.netもphpも一通り経験したがjsの難しさは半端無いぞ
たとえばc系とかjavaならまじめに勉強すれば誰でも有る程度までは行けるが、jsはそれらよりセンスが要ると感じてる
圧倒的に難解な変わりに一番おもしろい言語だけどね
AnglurとかtypeScript使う"普通の"アプリなら覚える事は大量でもそんなにセンスは必要なくなるとおもう
これからはマジでjavascript一強時代になるから早い段階で勉強する機会がもてるのは良いことだと思う
0843デフォルトの名無しさん (JP 0Hb6-aw5l)
2017/03/28(火) 18:17:56.03ID:uzRike2THnpm iしてAngualr 2のHello World!を書くところまで【改】
http://qiita.com/armorik83/items/ae737ab584012a0f5876
0844デフォルトの名無しさん (ワントンキン MM9a-0Bqe)
2017/03/28(火) 18:27:02.47ID:qwv7MmmJMしかも枯れてないから一年足らずで別物になったりするからなぁ
MV系のフレームワーク追いかけるとほんと苦労するとおもう
覚えれば効率的なんだが覚えるコストがかなりかかるから元取るには長期で数多く作らないといけないのに数年でゴミになったりする悲しさ
JS(フロント系)はほんと茨の道だよな
0845デフォルトの名無しさん (ワッチョイ 6661-VHv+)
2017/03/28(火) 19:28:25.42ID:IDgC7lyA0こう書いたら "hoge => 9 && hoge <= 15" が返ってきてて小一時間迷ったわ
0846デフォルトの名無しさん (ワッチョイ 6661-VHv+)
2017/03/28(火) 19:28:55.88ID:IDgC7lyA00847デフォルトの名無しさん (ワッチョイ 1bc8-VHv+)
2017/03/28(火) 20:39:12.68ID:x/Tih9w50ゆとり死ね
0848デフォルトの名無しさん (ササクッテロル Spd3-1VxM)
2017/03/28(火) 21:10:46.27ID:/7emtguUpマジで使えるフロントエンドエンジニアはかなり少ない
どこもエンジニアを囲い込んでいて人を調達しようとしても、ベテランの凄腕がいない
バックエンドなら腐る程いるがフロントがいない
0849デフォルトの名無しさん (ワッチョイ aa8c-TFxs)
2017/03/28(火) 21:14:51.30ID:8XEqMjkn0せめてこっちを書こうか?
http://qiita.com/kitfactory/items/c95ca84371670b21f4ac
>>884
> しかも枯れてないから一年足らずで別物になったりするからなぁ
そう。だからangular-cliという便利なものができてる。
あっという間に別物(簡単)になった
Hello Worldまでこれだけ
npm install -g angular-cli
ng new MyApp
cd MyApp
ng serve
0850デフォルトの名無しさん (ワッチョイ aa8c-TFxs)
2017/03/28(火) 21:25:00.60ID:8XEqMjkn0別にJavaScriptが難しいんじゃない
フレームワークの問題
今まではフレームワークがライブラリの延長になっていて
開発環境を提供していなかった。
開発環境とは具体的に言うとCLIツール。
Railsだったらrailsコマンドとか、開発用のウェブサーバーとか
テスティングフレームワークとかそういったもの
こういったCLIツールをフレームワーク"公式で" 用意すべきだが
それがなかった。(非公式は最新版に追従できない)
でもReactやAngularはフレームワーク公式でそういった開発環境
一式を用意してくれてるんで今までよりも遥かに簡単になってる。
0851デフォルトの名無しさん (ワントンキン MM9a-0Bqe)
2017/03/28(火) 21:41:03.44ID:qwv7MmmJMそのレベルの開発なら簡単だろうね
凡人でも努力でなんとかなるとおもうよ
0852デフォルトの名無しさん (ワッチョイ aa8c-TFxs)
2017/03/28(火) 21:44:33.52ID:8XEqMjkn0そのレベルってどういうこと?
そして、そのレベルじゃないのはどういうこと?
適当なこと言ってるようなレスは、ちゃんと説明してもらうよ。
あんたが分かっていて言ってるかどうかを判断するために
0853デフォルトの名無しさん (ワッチョイ cff5-8Nj6)
2017/03/28(火) 21:46:37.97ID:tuc8YiCB0zaifというとこのapiについて
https://corp.zaif.jp/api-docs/
ws://ws.zaif.jp:8888/stream?currency_pair=btc_jpy
上記urlに対してchromeのwebsocket apiで取得に行こうとすると
WebSocket connection to 'ws://ws.zaif.jp:8888/stream?currency_pair=btc_jpy' failed: Error during WebSocket handshake: net::ERR_CONNECTION_RESET
というエラーが出てしまいます。
どうすれば接続できるようになりますか?
0854デフォルトの名無しさん (ワントンキン MM9a-0Bqe)
2017/03/28(火) 22:01:36.21ID:qwv7MmmJM842に書いてるじゃないか
高度なMVフレームワークに頼るような普通のアプリならセンスはさほど必要ないと
0855デフォルトの名無しさん (ワントンキン MM9a-0Bqe)
2017/03/28(火) 22:03:37.20ID:qwv7MmmJMそれがAnglur等のフレームワーク
railsとかと同じだよ
あれを有り難がるレベルの開発なら難しくはない
単に大変なだけ
0856デフォルトの名無しさん (ワッチョイ eba8-ZYFz)
2017/03/28(火) 22:24:39.90ID:pnMbSu0j0>これだけ
「これだけ」「これだけ」、まーた「これだけ」
「これだけ」がいったいいくつあるんだよっていう
でも、ありがとう
しかしもうAngularを勉強するという目的からあまりに掛け離れて時間無駄にしたから
scriptタグ直読込でToDoアプリ作るわ
あとは業務で何とかなぁれ笑
gulpとかwebpackとかnpmとかbowerとかtask.jsonとか、もう見たくない
js界隈の奴らは頭おかしちゃうか
0857デフォルトの名無しさん (ワッチョイ cff5-8Nj6)
2017/03/28(火) 22:29:53.10ID:tuc8YiCB0まぁこれでいいんじゃない。
開発環境は代替有識者が整備してくれるからAngularだけに集中すればいい。
0858デフォルトの名無しさん (ワッチョイ eba8-ZYFz)
2017/03/28(火) 22:32:05.60ID:pnMbSu0j0はぁ またグローバルに汚物がぶち撒けられる
バージョンなんてゴチャメチャウンコのゲロ混ぜ
正気じゃねえよ
0859デフォルトの名無しさん (ワッチョイ ea3c-EscV)
2017/03/28(火) 22:36:36.34ID:5RUVNWwS0webpackはフレームワークや開発スタイルによる
0860デフォルトの名無しさん (アウアウカー Sa1b-/JR2)
2017/03/28(火) 22:37:39.54ID:qmA1HLlra地味にうざいんだけど
0861デフォルトの名無しさん (ワントンキン MM9a-0Bqe)
2017/03/28(火) 22:40:23.43ID:qwv7MmmJM悪い意味で意識高い連中が多いんだよ
何か新しい技術出れば、それを使わないなんて考えられない!とばかりに他に強要したがる
そのくせやってることは最新技術を"使う"為の努力ばかりで肝心のクリエイティブ能力はいつまでたっても凡庸と
流行物に精通することが目的みたいになってるやつ結構多いと思うよ
ていうか、日本のIT業界って能力無くても平気でやっていけるからそんなんばっかじゃん
(全体のレベルが低すぎるという意味ね)
0862デフォルトの名無しさん (ワッチョイ aa8c-TFxs)
2017/03/28(火) 22:57:45.67ID:8XEqMjkn0大掛かりなものが必要ないなら、
jQueryぐらいがちょうどいいんだよ
0863デフォルトの名無しさん (ワントンキン MM9a-0Bqe)
2017/03/28(火) 23:06:18.47ID:qwv7MmmJMおれはそっち派だね
オンラインゲーム作りだからjqueryの他に、socketio、createjs、threejsとかは使うけどそれらはフレームワークじゃなくてライブラリーなわけだ
フレームワークは専用の物を自分でつくるしAnglurとかのフレームワークは極力つかわない派
0864デフォルトの名無しさん (ワッチョイ 1bc8-VHv+)
2017/03/28(火) 23:44:07.89ID:x/Tih9w50イナゴ行為をするな。他スレ立てろ。
で通じるほどの知能はこいつらにはないんだよ。だからこんな事を繰り返してる。
相手が馬鹿であるからこそ長文の説明を必要とするが、
馬鹿であるから故に長文を読めずに意味が分からないという、無限ループだね。
ただそれでも、長文を落とすことには意味があるのさ。
事実として、他の死んでたスレに移動して地ならしし始めた奴もいるだろ。
死ね死ねいうのも長文を落としまくるのも、焦土作戦としては機能するんだよ。
俺はそこら辺まで計算してレスしてる。
(ワッチョイ付だと困る奴が既存IDスレを再利用し始めるのは自然。それならそれでいい)
そもそもこの程度の長文に苦労する奴なんて向いてないのさ。
MDNでもMSDNでも、或いは他技術文書でも、もっともっと長い。
つまり
ゆとり、ダメ、絶対
なんだよ。
だから「おっさんスレ」と「ゆとり+学生スレ」に分けるのも一つの手なのさ。
そしてお互いが良くなるように競争すべきで、
過疎って落ちるのならそれは淘汰されたと受け止めるべきでね。
ゆとりみたいにイナゴ行為で良スレを順に潰しているようじゃダメなんだ。
もっとも奴らはそれをイナゴ行為だとすら認識出来てないからこそのゆとりなんだが。
ということで俺の言いたいことは以下。
Web板のスレは機能していたのだから、移住するならここではなく別スレに行け。
平和に棲み分けしたいのなら、「JavaScriptの質問スレッド(初心者用)」とかにしとけ。
Web板そのままの雰囲気でIDとワッチョイだけ付けたいのなら、それで別スレを立てろ。
ただしそれ以前にお前ら同士で話し合え。
0865デフォルトの名無しさん (ワッチョイ 1bc8-VHv+)
2017/03/28(火) 23:55:03.96ID:x/Tih9w50俺はこのスレと何も変えずに次スレ立てるぞ。
その上でさらにイナゴするのを俺は止めようがないけども、
それは誰にとっても利益がないことを理解して、自粛してくれないかな。
お前らが韓国人みたいなゴミでないのならね。
良くも悪くも日本はそういうシステムで、
日本人ならそれはやらないよね、という前提で回ってる。
だからモラルが欠如した相手に対して防御する手段は一般的に用意されていない。
それはここ2chでもね。
海外の掲示板はこれに対して、基本的にBANを行っている。
だからゆとりがここで暴れると、2chでもBANが必要になってきてしまう。
或いはBANが為される「荒れない」掲示板にみんなが移住することになる。
それはあるべき未来ではないだろ。
0866デフォルトの名無しさん (ワイエディ MMe2-/8X1)
2017/03/29(水) 00:53:34.80ID:NT0rIhS8M0867デフォルトの名無しさん (ワッチョイ ea3c-EscV)
2017/03/29(水) 00:58:36.92ID:ZwfTQ2HH00868デフォルトの名無しさん (ワッチョイ 9370-bLop)
2017/03/29(水) 10:21:22.70ID:2ON16iHC0ArrayBufferだろう
別のコンテキストだとAudioBufferのこともある
0870デフォルトの名無しさん (ワッチョイ 9370-bLop)
2017/03/29(水) 19:04:59.56ID:2ON16iHC0少しはAPI調べてる???
0871デフォルトの名無しさん (ワッチョイ 73c8-agmj)
2017/03/30(木) 00:42:08.74ID:E08Q6Oy40C#のスレで見かけた気がするが。Haskellもやってる奴だよな?
内容は8割同意。
> JS自体が今この世にあるメジャー言語の中で群を抜いて難しいとおもうよ
> 簡単に始められる=簡単に極められるじゃないからなあ
このスレの連中が「JSは難しい」と主張しているのはこの意味ではなく、
> 悪い意味で意識高い連中が多いんだよ (>>861)
こちらで、「難しい言語出来る俺カッケー」と思いたいだけだ。
「極める」という意味ならそれは「プログラミングを」であり、言語には依存しない。
しかし、JavaScriptは文法が極めて簡単な分、
学習開始から「極める」フェーズに到達するのが極めて速い。
このため、「次のステップ」を常に求めるタイプには「難しい」と見えるのも納得出来る。
だからセンスがある奴がこれで学べば上達速度は爆発的に速いはず。
上級者のソースも見放題だし。
しかし現実はヌーディストビーチ状態なのが災いして、
初心者のくせにソースを美しくする事にこだわりすぎている。
とにかく書くことが重要なそのフェーズで手を止めてしまった結果、
馬鹿が量産されてしまっている。それがこのスレだ。また、
> そのレベルの開発なら簡単だろうね (>>851)
これが多く、大半の状況でセンスや技量を必要としないことも大きい。
> 流行物に精通することが目的みたいになってるやつ結構多いと思うよ (>>861)
ネットだけの観測なら、これはものすごく感じる。他言語と比べても顕著だ。
0872デフォルトの名無しさん (ワッチョイ 73c8-agmj)
2017/03/30(木) 00:44:13.22ID:E08Q6Oy40ところでRubyとHaskellはどう思う?
俺は両方ともやってない。
Rubyは便利っぽいが、便利なだけっぽいからいいやって感じになってる。
Haskellは入門サイトからして意識高すぎて付いていけない。
それで具体的に便利そうな「遅延評価」だけ確認して放置した。
他に学んでおくべき概念ってあるか?
なお完全にスレチなので回答は以下スレでもいい。
http://echo.2ch.net/test/read.cgi/tech/1449440793/
JavaScriptを使える「プログラミング」上級者が現れなかったので開店休業状態になってる。
君にはその臭いを感じる。
0873デフォルトの名無しさん (エムゾネ FFdf-NVAl)
2017/03/30(木) 02:22:38.23ID:AhVejwmhF型変換、スコープチェーン、プロトタイプチェーン、クラスシステムさえ抑えれば怖いものないでしょ
0874デフォルトの名無しさん (ワッチョイ bf3c-Qc7F)
2017/03/30(木) 02:54:06.55ID:LEwdK5Fw00875デフォルトの名無しさん (ワッチョイ ef72-FZ2J)
2017/03/30(木) 03:33:12.46ID:S0ykF3En00876デフォルトの名無しさん (アウアウカー Sad7-LTAN)
2017/03/30(木) 03:36:46.25ID:XlZmlnHpa300kbくらいのライブラリ組むと何この糞言語ってなる不思議
0877デフォルトの名無しさん (エムゾネ FFdf-NVAl)
2017/03/30(木) 06:29:44.64ID:AhVejwmhFでもそこが貧弱だからこそ、互換性命のWebにおいて未来がある事も事実。
0878デフォルトの名無しさん (ササクッテロル Sp17-59Pd)
2017/03/30(木) 08:44:45.90ID:TqURK27Wp文法とかじゃなくて、webやHTMLという仕組みがそもそもグチャグチャで、それを中心に扱うからだね
サーバサイドやってた時の方がシンプルで楽だったわ
0879デフォルトの名無しさん (ワッチョイ 238c-U/Pn)
2017/03/30(木) 09:22:44.95ID:gGp/SYAm00880デフォルトの名無しさん (ワントンキン MM5f-q8gt)
2017/03/30(木) 09:39:03.35ID:BGqaQgGsMそれは確かにあるね
webのフロント自体が難解でそれを扱えるほぼ唯一の言語だから、結局JSの難しさに加えてwebの難しさが加わることになる
しかしJSはほんと面白いわ無名関数とコンテキストの奥の深さはほんとすごい
0881デフォルトの名無しさん (ワッチョイ ef61-agmj)
2017/03/30(木) 09:41:30.69ID:2CgcUj6s00882デフォルトの名無しさん (ワッチョイ 238c-U/Pn)
2017/03/30(木) 09:43:56.26ID:gGp/SYAm0それやな。
結局のところ、webのフロント自体が難解なだけで
JavaScriptが難しいわけじゃないんだが、
他の言語ではほぼ出来ないに等しいから
JavaScriptのせいだって勘違いが起きてる。
だからDOM APIとJavaScriptは切り離して考えるべきなんだが
どうもそれが出来ない人が多いw
0883デフォルトの名無しさん (ワントンキン MM5f-q8gt)
2017/03/30(木) 09:44:24.59ID:BGqaQgGsM>初心者のくせにソースを美しくする事にこだわりすぎている。
とにかく書くことが重要なそのフェーズで手を止めてしまった結果、
馬鹿が量産されてしまっている。
同意だね
結局、プログラムを学校の"おべんきょう"みたいな感じでやってるやつが多いんだよ
本来は何かを作りたい表現したい、そういう衝動があってそれを実現するツールにすぎない
とにかく作らないとだめ
そうやって経験を重ねるうちに最適解や効率化、わかりやすさなんかが見えてくる昔はプログラマーイコール表現者だったんだよ
本当に好きな奴しかやってなかった
今はただの仕事になってしまってるもんなぁ
これだけインターネットやら情報に恵まれてても凄腕のプログラマーが多数沸いてこないってどう言うこと?って思う
0884デフォルトの名無しさん (ワントンキン MM5f-q8gt)
2017/03/30(木) 09:57:27.44ID:BGqaQgGsM>RubyとHaskellはどう思う?
一言で言えば、個人的には興味ない
言語は手段であってそれ自体を楽しむようなものじゃないからね
現状JSでほぼすべてまかなえる時代になってるのにあえて横道それるのは時間の無駄だとおもってる
とはいえ、nodeを動かせないレンサバ案件もあるのでphpはまだ懐刀で残してる
あとrailsやanglur系のMVフレームワークってあまりすきじゃないんだよね
使うとしてもphpのsmarty的なライブラリー感覚で使って組み込めるものだけだね
0885デフォルトの名無しさん (ワッチョイ b3a8-/Gsh)
2017/03/30(木) 09:58:10.79ID:7nYsYOYk00886デフォルトの名無しさん (ワントンキン MM5f-q8gt)
2017/03/30(木) 10:05:00.03ID:BGqaQgGsMgoogleが牽引してネットワーク通信関連が超充実
flashが死んだ関係でas関連のグラフィックや物理演算ライブラリーがjsに多数移植されて本当に豪華な環境
言語自体はフリーダムで使いこなせれば最強の自由度
そして、昨今のアプリのweb化
JS以外の選択肢なんか無いだろとおもってしまう
エンタープライズの領域だとまだjavaや.netなんだけどそれらにもフロントとしてJSは必須だしな
なんでみんなもっと本気でやらないの?と思ってしまう
0887デフォルトの名無しさん (ワッチョイ b3a8-/Gsh)
2017/03/30(木) 10:10:02.57ID:7nYsYOYk00888デフォルトの名無しさん (ワントンキン MM5f-q8gt)
2017/03/30(木) 10:18:20.31ID:BGqaQgGsMそれね、半分賛成だけど半分反対な気分
TSの価値は分かるけど、そのせいでJS自体の自由度が下がって劣化C#みないになってしまわないか心配
しっかり浸透して枯れてくれるならまだ良いとして未だにどんどんコンパイラ仕様が変わっている今はまだ使いたくないってのが本音
要するに自転車の補助輪なんだよ
自転車普通に乗れる人間にとってはさほど価値を感じない
0889デフォルトの名無しさん (ワッチョイ b3a8-/Gsh)
2017/03/30(木) 10:49:10.05ID:7nYsYOYk0それは「俺はエスパーだからLintは要らん」と言ってるのと同義だよ
複数人で漕ぐ自転車なのだから補助輪は付けるだけ付けるべき
0890デフォルトの名無しさん (ワントンキン MM5f-q8gt)
2017/03/30(木) 10:58:47.34ID:BGqaQgGsMあくまで個人的な感想ね
lint的な構文チェックは歓迎だけどJSのclass構文化と型文化がデメリットもあるんじゃないかと思うだけだよ
複数人で開発するときのガイドラインという意味ではその価値は分かってるよ
コーデイング規約しかり
ただ、今折角面白くてエキサイティングなJSががんじがらめのつまらない方向に行きそうな予感もすこしあるんだよね
バックエンドやってる人間をフロントに流用したいという流れなんだろうけどね
0891デフォルトの名無しさん (ワントンキン MM5f-q8gt)
2017/03/30(木) 11:11:43.02ID:BGqaQgGsM何が悲惨かというと、あれってwindowsフォームアプリの技術者をwebアプリ開発に転用しようと画策したフレームワークでしょ?
実際蓋を開けてみると、クラサバvbしかしたことがない普通の技術者、もしくは畑違いのjava技術者しか集まらず
大抵のプロジェクトは頓挫
いくらキーマンががんばってカスタムコントロールやら規約つくっても、作業員が肝心のことを何もしらなさすぎてまともなものは出来上がってこなかったよ
物事を簡単にする技術はそれを理解している者が楽をするために有るべきで、何もしらない連中でも使える技術にしてしまうと敷居がさがるだけで最終的にはほとんど実りはないのよ
組み立て工員だけでプロジェクトが無事終わるほど甘くはない
トラブルもおこるし品質上げるための工夫も必要
お仕着せフレームワークはそういうフェーズでむしろ手間が数倍に膨らむケース多いんだよ
asp.netでほんとうに懲りた
だから個人的にanglurにも懐疑的なんだよな
0892デフォルトの名無しさん (ワントンキン MM5f-q8gt)
2017/03/30(木) 11:16:42.80ID:BGqaQgGsMJSのライブラリやフレームワークも大いに結構だけど、内部でどんなことが起こってるかすら分からないレベルではいつまでたっても成長できない
自分で工夫して構築するという大事な成長フェーズを捨てているようなものだからね
他の言語からJSに来る人間も同様
まずはJS独自の難解な仕様を学習して理解して、そのうえでシンタックスシュガーで楽しなさいと
0893デフォルトの名無しさん (ワントンキン MM5f-q8gt)
2017/03/30(木) 11:25:56.82ID:BGqaQgGsMあんなものはおもちゃだという風に
でも実際は逆なんだよね
補助輪ついてる方がレベル高くて、ついてない方がレベル低いとでも思ってるのかと
言語仕様としてもJSは本当に複雑怪奇だしwebフロント系を扱う為の追加知識の量もハンパない
ぶっちゃけ、.netやjavaより遙かに勉強量必要だとおもうな
実際経験してきてほんとそう思う
JS舐めてたらダメだよ
webブラウザーで動くものを作る以上はここをさて避けては通れない
でも今更JSなんて本気でやるきが起きない
これが今の日本のweb界隈のレベルの低さの原因
なのに根本的解決をしようとせずフレームワークに逃げるんじゃいつまでたっても埒あかないよ
0894デフォルトの名無しさん (JP 0H97-jsM4)
2017/03/30(木) 12:06:41.84ID:MPU3+nXPH0895デフォルトの名無しさん (ササクッテロル Sp17-59Pd)
2017/03/30(木) 12:29:18.27ID:TqURK27Wpやたらとweb(笑)とか見下してくるやついて、まぁ多分組み込み系なんだろうけど、彼らにフロントエンドができるとはとても思えないんだよね
何を根拠に意味不明な優越感を抱いてるのか不思議で仕方がない
自分らには工学的基礎があるとでも言いたいんだろうか?
学歴主義者なのかな?
フロントエンドのPGも情報工学や外国語なんか普通に学んでる人多いし、学歴も組み込み系に劣ってないと思うんだがな
0896デフォルトの名無しさん (アウアウウー Sab7-19VF)
2017/03/30(木) 12:35:41.54ID:M+A/xxaCa0897デフォルトの名無しさん (ワントンキン MM5f-q8gt)
2017/03/30(木) 12:44:12.85ID:BGqaQgGsMフロントは基本的に臨機応変なセンスが必須なのよ
それを嫌う(脳構造が違う)人種が多くてJS嫌いな風潮があるんだとおもう
一つ一つブロックを切り出してブロック塀を積み上げていくだけが開発じゃないからねえ
たとえるならフロントは木登りができないと厳しい感じ
それをフレームワークで木の高さまで塀を作ろうとしてる人(企業)が多いんだよ
木登り得意なやつ集めて登らせて上からロープ垂らすほうがよっぽどいいのに
0898デフォルトの名無しさん (ワッチョイ b3a8-/Gsh)
2017/03/30(木) 12:44:36.87ID:7nYsYOYk00899デフォルトの名無しさん (ワッチョイ d370-Qufn)
2017/03/30(木) 13:39:53.83ID:yb0xbTZQ0Nodeでもずっとやってればネイティブモジュールはほぼ避けられないからね
0900デフォルトの名無しさん (ワッチョイ b392-AsIq)
2017/03/30(木) 14:22:30.96ID:9cHNN/bR0いや、やって見て、圧倒的に楽勝だからナメプしてる
0901デフォルトの名無しさん (ササクッテロル Sp17-59Pd)
2017/03/30(木) 14:44:18.97ID:TqURK27WpちゃんとHTMLやcssは自分で書き起こしたか?
ある程度は仕方ないが、まさか最初から最後まで全部人に書いてもらって楽勝とか言ってないだろうな
jsしかやりません、デザインは100%ガン無視とか周りから嫌われる奴の典型だからな
0902デフォルトの名無しさん (ワントンキン MM5f-q8gt)
2017/03/30(木) 15:39:15.87ID:BGqaQgGsMフロントといってもピンキリだしねえ
どのレベルでの話をしているのか分からないけど
0903デフォルトの名無しさん (ワッチョイ 238c-U/Pn)
2017/03/30(木) 20:51:24.72ID:gGp/SYAm0>初心者のくせにソースを美しくする事にこだわりすぎている。
それは言い方の問題だなw
あんたは「美しくする」という言葉を使うことで
「美しくする」に意味はないという結論を出そうとしてる。
そこが間違い。
ソースの「開発コストを減らす」事にこだわりすぎている
と言い換えたらどう思うか?
初心者がソースの開発コストを減らす事にこだわるのは悪いことなのか答えてくれ
(もちろん優先順位を無視してまでやることではないのは当たり前)
0904デフォルトの名無しさん (エムゾネ FFdf-NVAl)
2017/03/30(木) 21:14:35.19ID:pC1kU3TdF0905デフォルトの名無しさん (ワッチョイ 238c-U/Pn)
2017/03/30(木) 22:48:32.56ID:gGp/SYAm0そっちのほうが良いと思うよw
0906デフォルトの名無しさん (ワッチョイ 238c-U/Pn)
2017/03/30(木) 22:54:00.98ID:gGp/SYAm0初心者がソースの開発コストを減らす事にこだわるのは良いことである
(反論はまだ出てない)
初心者にその能力がないのであれば、回りにいる上級者が教えればいいだけのこと
だから、ソースの開発コストを減らす行為を否定することにはならない。
回りにいる上級者がソースの開発コストを減らす事ができないのであれば
それは不幸なことだが、その場合は、あんた(回りにいる人)も能力がないんだ。
能力がないがソースの開発コストを減らそうとしている初心者のやる気をそいではいけない。
それは足を引っ張る行為だ。
0907デフォルトの名無しさん (ワッチョイ 73c8-agmj)
2017/03/30(木) 23:41:20.59ID:E08Q6Oy40本日分の書き込みについても8割同意。
どうも俺と同じタイプの臭いがする。
> しかしJSはほんと面白いわ無名関数とコンテキストの奥の深さはほんとすごい (>>880)
無名関数については実はレキシカルスコープとクロージャの相性が良いのだと思う。
下側クロージャからも上側クロージャを自由に触れるが、
これはC#やC++のクロージャでは出来ない。
コンテキストってのはthis渡しのダックタイピングのことか?これも面白いのは同意。
> 言語自体はフリーダムで使いこなせれば最強の自由度 (>>886)
これはその通りで、上記以外にも他言語では無理な構造を容易に既述出来たりする。
プログラミングマニアにとっては極めて面白い言語だ。
文法も標準ライブラリもスカスカで、当初は「え?これだけ?」と思ったが、
これで十分であるのを理解すると、C++みたいにゴリゴリ書くのがばからしく思えてしまう。
> なんでみんなもっと本気でやらないの?と思ってしまう
これについては職場環境が酷すぎるからだと思う。
見りゃ分かるが求人が糞過ぎる。Webデザイナの下請けしかない。
だからjQueryでささっと弄れるだけ、或いはブラウザの互換性を知っているだけの
文系プログラマが幅を利かせているのだと思う。このスレもそんな感じでしょ。
本来のプログラミングの腕前を発揮できる仕事がない。
だから凄腕プログラマは馬鹿臭くて寄りつかないという悪循環だね。
その結果、リッチクライアントにも出来ずに糞なWebページのままってとこも多いでしょ。
典型的なのはここ2chだが。
とはいえサーバーサイドやデスクトップアプリで使われだしたのは良いこと。
プログラマの腕が発揮出来る仕事が増えれば、状況は一瞬で改善する可能性がある。
JavaScriptは仕様が軽いから、
他言語を完全に使いこなしているプログラマ上級者にとっての学習コストは恐ろしく低い。
そしてこの民族大移動は発生するというのがそちらの見方、
> これからはマジでjavascript一強時代になる (>>842)
なのだと思うが、俺はこれは無いと見ているんだがな。
0908デフォルトの名無しさん (ワッチョイ 73c8-agmj)
2017/03/30(木) 23:43:52.47ID:E08Q6Oy40日本のプログラミング界隈の問題は、新技術を「下側」に向けて適用すること。
つまり、新技術でこれまでより簡単に同じ事が出来るようになった結果、
・同じ人材でもっと高みを目指そう←アメリカ流
・より安い人材で同じ物を作ろう←日本流
で決定的な差が付いている。
人月単価を下げることしか目指さなかった結果、
クリエイティブさは求められず、馬鹿プログラマがのさばる、悲惨な状況となってる。
で、angularについて言うと、間違いなくゴミだ。
マメに更新されている事自体がゴミだということを証明しているのだが、
これを理解出来ない馬鹿が飛びつき、意識だけは高いから、余計におかしな事になっている。
・angularを学んで使う←最悪
・自分でやるのは面倒、誰かやってないかとググってヒット、じゃあ使うか←これが正しい
0909デフォルトの名無しさん (ワッチョイ 73c8-agmj)
2017/03/30(木) 23:48:02.70ID:E08Q6Oy40Web系が馬鹿にされているのは、既に書いたとおり、
現状では「本質的なプログラミング」の腕前が必要とされない仕事ばかりだから。
実際、馬鹿プログラマでもそれなりに回るだろ。
今現在他言語やサーバでやっているような事は、
ある程度以上の規模になると、馬鹿がやったら収拾つかなくなる。
だから一定以下の馬鹿は淘汰されてる。
JavaScriptは「ページ単位で捨てられる」のが基本的な使われ方だったから、これがない。
つまり、本来のプログラミングの難しさ、
「大規模なコードを矛盾なく無駄なく簡潔に書ききる」事を要求されない。
(これは本当は革命的なことなんだが、、、)
その結果、jQuery等を使ってDOMを修飾出来るだけの馬鹿がのさばることになる。
だから今のJavaScript技術者の「プログラマ」としての平均水準が低いのは事実だよ。
それはこのスレ見てても分かるだろ。
ただこれも、今後は変わっていくとは思う。
それと共に、JavaScriptを馬鹿にする奴にもかなり問題があることは多い。
本来、プログラミングの腕前と使用言語は別の話なんだが、混同している奴が多い。
とはいえ、JavaScriptは初心者にとっては上達の障害が多すぎるのも事実。
結果的に同年卒の新人の成長を比較した場合、平均的には他言語より悪いと思うよ。
例えば、初心者が「セミコロンをどこに打つべきか」とか全く意味無いんだが、
「コードを美しくすること」が目的になっていて、この手の無駄努力をしているケースが目立つ。
(ただこれは指導者が正しい見識を持っていれば回避出来るが、
ネットを観測する限り、そもそも指導出来るレベルの奴がいなそう)
0910デフォルトの名無しさん (ワッチョイ b392-AsIq)
2017/03/31(金) 00:14:37.42ID:9p335Pu80ぷぷぷ HTMLとCSS W それはデザイナーの領分
フロント屋のいつもの言い訳だな
>>902
>>986に言ってやってくれ
0911デフォルトの名無しさん (ワッチョイ b3a8-/Gsh)
2017/03/31(金) 00:38:58.01ID:S+dmZ2B600912デフォルトの名無しさん (ワッチョイ bf3c-Qc7F)
2017/03/31(金) 00:47:59.45ID:WzS7AZAh0しかも二人とも大したレベルじゃないというオチ
0913デフォルトの名無しさん (ワントンキン MM5f-q8gt)
2017/03/31(金) 01:13:39.40ID:WLq382qYM>プログラミングマニアにとっては極めて面白い言語だ。 プログラミングマニアにとっては極めて面白い言語だ。
JSは基本的にコードが隠せない
そしてクラスでプライベートメソッドも作れない(実際は工夫て可能だがそんなもの誰も使ってない)
外部ライブラリを使ってるとき無い機能や足らないオプションを追加したくなった場合簡単にパッチを当てることが可能
メソッドが外部からオーバーライドもなんもかも自由自在だから元ソースを読んでみようという気にもなる
ほんとに良い環境だとおもうよ
がんじがらめのコンパイル言語とかにはないオープンな世界がそこにあるんだよ
0914デフォルトの名無しさん (ワッチョイ b3a8-/Gsh)
2017/03/31(金) 01:28:38.63ID:S+dmZ2B600915デフォルトの名無しさん (ワッチョイ cf75-z7oQ)
2017/03/31(金) 01:54:46.53ID:hT0rQPiY0カプセル化できない・大規模開発しにくい
Googleなど、できるプログラマーの本棚には必ず、
David Flanagan の「JavaScript 第6版」(通称「サイ本」)がある。
しかも、規格が新しくなる度に、この本を買い替える
常に買い替えるということは、普遍的な本じゃないと言う事。
学問の本じゃない。
場当たり的に、バグを避けるというだけの本
この本には学問として、役に立つような事は書いていない
0916デフォルトの名無しさん (ワッチョイ bf3c-Qc7F)
2017/03/31(金) 02:04:55.38ID:WzS7AZAh0辞書の版が上がって買いかえるのと同じこと
学問??
0917デフォルトの名無しさん (ワッチョイ 238c-U/Pn)
2017/03/31(金) 02:05:09.75ID:dseKSPuY0Rubyでは仕方なくブロックスコープになってしまうってだけで
ブロックスコープは必要ないものだろう
0918デフォルトの名無しさん (ワッチョイ 238c-U/Pn)
2017/03/31(金) 02:05:51.45ID:dseKSPuY0> 常に買い替えるということは、普遍的な本じゃないと言う事。
俺買い替えてないけど?
0919デフォルトの名無しさん (ワントンキン MM5f-q8gt)
2017/03/31(金) 02:21:47.87ID:WLq382qYMというか関数内でスコープ作りたければ無名関数、即時関数なりいろいろできる
JSは自由度が桁違いなんだけどね
これらの使いこなしも分からないレベルの人間は束縛された補助輪世界こそが正しいと言い続ける
0920デフォルトの名無しさん (ワッチョイ b3a8-/Gsh)
2017/03/31(金) 02:34:16.81ID:S+dmZ2B60それだけ意識が低いということだろう
0921デフォルトの名無しさん (ワッチョイ 238c-U/Pn)
2017/03/31(金) 02:37:42.45ID:dseKSPuY0意識の話はしてないよ。
本の内容が普遍的かどうかって話。
買い換えると普遍的ではない
買い換えないなら普遍的
いまこういう定義をしたの
0922デフォルトの名無しさん (ワッチョイ b3a8-/Gsh)
2017/03/31(金) 02:48:16.02ID:S+dmZ2B60頭がes3で止まっちゃった系おじさんかな?
0923デフォルトの名無しさん (ワッチョイ 1347-VHDh)
2017/03/31(金) 03:00:34.90ID:52wIFoBq00924デフォルトの名無しさん (アウアウカー Sad7-LTAN)
2017/03/31(金) 03:01:29.75ID:9i/PVhMGa0925デフォルトの名無しさん (ワッチョイ 73c8-agmj)
2017/03/31(金) 03:20:54.52ID:qHVwMUTA0実はC++等で一生懸命書いている「型」や「文法」(privateとか)は、
全て「制限」する方向の努力でしかないんだよな。
それに対してJavaScriptは基本的に「制限」することが出来ないから、
結果的に何でもありになってしまうという。ソースも見放題だし。
現実的にどっちが生産性が良いかは微妙だが、
「制限」は可能性を閉ざす方向だから、面白みはない。
「何でもあり」はやっぱり面白い。
実感としては、型無しでも大して苦労しないので、
C++等でいちいち書くのが面倒になってきた。
あとはタイプミスだけソース上で検出出来ればなぁ、って感じ。
0926デフォルトの名無しさん (ワッチョイ 8367-/BKC)
2017/03/31(金) 03:32:08.09ID:XrX79+I10古い情報も嫌だけど、体系付けられてない大量の情報から自分で知識体系を構築していくのは骨が折れる
0927デフォルトの名無しさん (ワッチョイ cf75-z7oQ)
2017/03/31(金) 03:45:57.85ID:hT0rQPiY0Haxe, Kotlin を見れば、動的言語のどこが悪いか、すぐにわかる
0928デフォルトの名無しさん (ワッチョイ d370-Qufn)
2017/03/31(金) 09:10:22.45ID:rJ4mWsQi0静的言語の色々な問題点を批判するために動的になったわけでもないけどな
まず大前提として、それが何かはハッキリとは分からないが、
とにかく何かと何かの間に入るスクリプト言語としては動的であることは必然だろう
接着剤をメインに使って大きなものを形作るのは大変だというだけのこと
今のWebではJSも型付きaltJSも等しく必要
0929デフォルトの名無しさん (ワッチョイ 8392-UnGZ)
2017/03/31(金) 11:17:57.92ID:FQVbcTCx0あれって、CDN提供元のサーバーが落ちたりDNSが名前解決できなくなったりしたら
どうなるんですか?
昔、画像とかに「直リンク禁止!!」とかよくみかけましたけど
あんな大量に直リンクして負担は大丈夫なのですか?
多分大丈夫なのだろうけど。
0930デフォルトの名無しさん (アウアウカー Sad7-19VF)
2017/03/31(金) 12:28:10.39ID:KHGxa0VRa0931デフォルトの名無しさん (ワッチョイ 8ff3-agmj)
2017/03/31(金) 12:34:57.75ID:xItn/dk+0for( var i=0;
みたいなfor文を2回書けないってこと
varじゃなくてlet使えということになるが
letはIE11じゃないと使えないしな
0932デフォルトの名無しさん (ワッチョイ b3a8-/Gsh)
2017/03/31(金) 12:55:21.14ID:S+dmZ2B60説明が糞すぎてワロス
これがes3脳か
0933デフォルトの名無しさん (アウアウカー Sad7-19VF)
2017/03/31(金) 12:56:14.65ID:KHGxa0VRaああvarのこと言ってるのね
どうせ今後はletに変わってくのにね
0934デフォルトの名無しさん (ワッチョイ 1347-VHDh)
2017/03/31(金) 13:16:28.37ID:52wIFoBq0もちろん、落ちたら読み込めなくなる
落ちなくてもユーザーのアドブロックとかに引っかかる可能性もある
どうでもいい部分をのぞいて、読み込めない場合は自鯖のファイルにフォールバックするか、コンパイル時に埋め込むのが基本
0935デフォルトの名無しさん (エムゾネ FFdf-NVAl)
2017/03/31(金) 13:27:14.01ID:0K0Hhkt3F0936デフォルトの名無しさん (ワッチョイ d368-f8Iv)
2017/03/31(金) 13:29:42.43ID:NTsg82nU0歴史遺産レベルの古いJS解説サイトが足を引っ張って、結局広まらなさそうな気もする
俺は積極的に使うつもりだけど
0937デフォルトの名無しさん (ササクッテロル Sp17-59Pd)
2017/03/31(金) 13:44:40.56ID:J6gnUPAfpX68000とかPC98とか小学生の頃にやってBASICでlet文使ったな
一回転して元に戻ったような気分
0938デフォルトの名無しさん (アウアウカー Sad7-LTAN)
2017/03/31(金) 13:50:15.16ID:IXWOdY7+a初期化式で指定したlet iを変化式でインクリメントしてるはずなのに、何故か毎ループ違うlet iが宣言されてる
0939デフォルトの名無しさん (ワッチョイ d370-Qufn)
2017/03/31(金) 17:13:08.33ID:rJ4mWsQi0そっちの方がクロージャと合わせた時に都合がいいでしょ
0940デフォルトの名無しさん (ワッチョイ d368-ouAK)
2017/03/31(金) 18:16:00.41ID:NTsg82nU0for(let i=0; i<10; i++){コード;}
↓
{let i=0;コード;}
{let i=1;コード;}
...
{let i=9;コード;}
って思うとちょっとは納得いくと思う。
("コード"内でiの値を変える可能性を考えるともっと複雑だけど)
0941デフォルトの名無しさん (アウアウカー Sad7-LTAN)
2017/03/31(金) 18:42:34.41ID:VQDku9aBa0942デフォルトの名無しさん (ワッチョイ d370-Qufn)
2017/03/31(金) 18:52:00.48ID:rJ4mWsQi00943デフォルトの名無しさん (ワッチョイ 238c-U/Pn)
2017/03/31(金) 21:11:47.00ID:dseKSPuY0> letどこまで広がるかねえ
letは広がる前に消すべき
constを使え。letなんて殆ど使わない。
0944デフォルトの名無しさん (ワッチョイ d370-Qufn)
2017/03/31(金) 21:19:10.38ID:rJ4mWsQi0concurrencyが未熟だからそれはできない
それに重要なのはconstかletかでなく書き方の意識
0945デフォルトの名無しさん (ワッチョイ 238c-U/Pn)
2017/03/31(金) 21:24:38.14ID:dseKSPuY0どういう理由で何が出来ないって?
> それに重要なのはconstかletかでなく書き方の意識
重要なのは可読性。本人に意識があったって
他人には書いてないと伝わらない。
0946デフォルトの名無しさん (スププ Sddf-NVAl)
2017/03/31(金) 22:57:23.96ID:jmnv802Md何故なら文字数が多いので、どうしても特別な場所だけで使うとした方が自然だから
泣こうが喚こうがこの事実は曲げられない
以上
0947デフォルトの名無しさん (ワッチョイ b3a8-/Gsh)
2017/03/31(金) 23:03:25.44ID:S+dmZ2B60ガイジかな
単語の省略形とか好きそう
それで後から読んでわからなくなってそう
0948デフォルトの名無しさん (ワッチョイ 238c-U/Pn)
2017/03/31(金) 23:20:49.77ID:dseKSPuY0constにした所で可読性に影響はないよw
「この ぶんょしう は いりぎす のケブンッリジ だがいく の
けゅきんう の けっか にんんげは もじ を にしんき する
とき その さしいょ と さいご の もさじえ あいてっれば
じばんゅん は めくちちゃゃ でも ちんゃと よめる という
けゅきんう に もづいとて わざと もじの じんばゅん を
いかれえて あまりす」
0949デフォルトの名無しさん (ワッチョイ b357-6bLq)
2017/04/01(土) 05:34:42.16ID:5/77AQ200var
let
const
でconstだけ5文字っていう
0950デフォルトの名無しさん (ワッチョイ b392-/miL)
2017/04/01(土) 09:06:25.66ID:PGhuuwXo0そういう理解なら
for(const i=0; i<10; i++){コード;}
↓
{const i=0;コード;}
もありになるぞ
0951940 (ドコグロ MM1f-f8Iv)
2017/04/01(土) 09:33:04.06ID:+oJMyNASM939以前ではfor-letの話しかしてなかったから、for-let限定でレスしたつもりだった
確かにfor-constだとまた話は違う(というか動かない)ね
0952デフォルトの名無しさん (エムゾネ FFdf-NVAl)
2017/04/01(土) 11:37:32.19ID:XAMnGxj+Fもしletが5文字ならvarに勝てないだろうし、
そこでconstが3文字だったのなら自然とletより使われるのは多くなるのは間違いないでしょ
0953デフォルトの名無しさん (アウアウウー Sab7-19VF)
2017/04/01(土) 12:26:12.44ID:dymFNcqGa意味は全然違うけど文字数が2文字少ないのでそっち使いますってどんな理論だよ例えletがletxxでconstがconでもそれでconstが増えたりはしないよ
書くときにスタンスとして再代入をなるべくしないと考えているかどうかと、
読むときに定義だけ読めばいいんだよと教えてあげようと思っているかどうかだ
0954デフォルトの名無しさん (ワッチョイ d370-FuqK)
2017/04/01(土) 16:36:41.70ID:nYzGzhmV0どんな理論って、それが普通の人間の感覚なんだよ
もっと言えば理屈じゃないの
アルゴリズムは理屈で書くが、殆どの人がコードを理屈で書いてるわけじゃないからね
言語なんだから書きやすいように自然に書いている
頻繁に使うものに関して文字数が3か5かっていうのは自然度合いに明らかな差があるんだよ
何を言おうが間違いなくそれが全constの普及を妨げている最大の理由だよ
0955デフォルトの名無しさん (ワッチョイ 1367-/BKC)
2017/04/01(土) 16:40:33.13ID:5slG0t9U0なんかそういうデータあるんですか?
0956デフォルトの名無しさん (ワッチョイ 2392-IDtH)
2017/04/01(土) 16:52:42.67ID:W7IGfgKJ0まあ const は設定値に使う変数には分かりやすいとは思うが、let, const でエラーになるブラウザがある間はまだ var が無難かな
0957デフォルトの名無しさん (ワッチョイ b3a8-/Gsh)
2017/04/01(土) 16:59:48.48ID:Xk39Ujbl0糞コードは永久になくならない
0958デフォルトの名無しさん (アウアウウー Sab7-19VF)
2017/04/01(土) 17:05:58.81ID:dymFNcqGaまぁJSがWebと切ってもきれない関係である以上そこは仕方ないね
Edgeが今のIE6くらいの化石になった頃には何とかなるでしょう
その頃JSが使われてるのかは知らんが
0959デフォルトの名無しさん (ワッチョイ d370-FuqK)
2017/04/01(土) 18:01:19.17ID:nYzGzhmV0じゃあなに?
君はフルconstがletより流行らない理由は皆アホだからとでも思ってるの?
constが3文字でletが5文字なら、間違いなくletよりconst推す人がずっと増えるでしょ?
そう思わない?
0960デフォルトの名無しさん (ワンミングク MM5f-q8gt)
2017/04/01(土) 18:12:47.66ID:xu8z9jrwM荒れる原因ってこいつらだろ
0961デフォルトの名無しさん (ワッチョイ bf67-/BKC)
2017/04/01(土) 18:12:54.06ID:aApsaYHH00962デフォルトの名無しさん (アウアウウー Sab7-19VF)
2017/04/01(土) 18:45:51.19ID:dymFNcqGaletが5文字の場合(letxxとする)
letxx foo = 1;
foo = 2;
foo = 3;
constが3文字の場合(conとする)
con foo = 1;
con bar = 2;
con hoge = 3;
どっちが文字数少ないって?
0963デフォルトの名無しさん (ワッチョイ b392-/miL)
2017/04/01(土) 20:01:59.47ID:PGhuuwXo0普通コンプリーションする
0964デフォルトの名無しさん (ワッチョイ 238c-U/Pn)
2017/04/01(土) 20:15:49.03ID:DrbHkd9R0書く時(タイプ数)なんてどうでもいい。
なぜなら俺はブラインドタッチができるからだ
0965デフォルトの名無しさん (ワッチョイ b3a8-/Gsh)
2017/04/01(土) 22:31:23.70ID:Xk39Ujbl0こういう信じがたいほど想像の斜め下をいく発想の持ち主が
新しい機能の流行を阻むのは理解できた
0966デフォルトの名無しさん (ワッチョイ 238c-U/Pn)
2017/04/01(土) 23:01:34.57ID:9Eckjtd/0コードが読めない人ほど、タイプ数を気にする
0967デフォルトの名無しさん (ワッチョイ 03bc-+5It)
2017/04/01(土) 23:21:16.94ID:oT1fsmzO0大半はエディターの補完機能なんだが
0968デフォルトの名無しさん (ワッチョイ b392-C+VN)
2017/04/01(土) 23:43:53.46ID:DstJGvws0定数か変数かで区別するだけだと、問題有るのかな?
0969デフォルトの名無しさん (ワッチョイ 238c-U/Pn)
2017/04/02(日) 00:43:16.56ID:n7h/bBRg0constといいう名前からして悪いんだけど、定数という名前が
数学的な定数と一緒で広い範囲で使われてる定められた数という
印象を与えてしまうんだよな。
この点はScalaのvarとvalみたいな名前のほうが良かったと思うね。
定数か変数かで区別するという考え方だと、
定められた数でなければ全部letになってしまう。
そうじゃなくて定義とともに代入して、変えてはならないという
基本原則なんだよ。区別するんじゃなくて意図的にそうなるように持っていく。
constはローカルスコープでも普通に使うもの。かつてvarやletであったものは
すべてconstに置き換えるぐらいの心構えでいくべき
0970デフォルトの名無しさん (ワッチョイ 8fc8-/BKC)
2017/04/02(日) 00:46:42.77ID:QJM914RD00971デフォルトの名無しさん (ワッチョイ d370-FuqK)
2017/04/02(日) 04:37:29.62ID:AOa6ZDoH0実際はJSでは与えられたものは多く使って表現豊かに書いた方が俺は好きだけどな。
そんなに制限するなら関数型AltJSでも使った方が確実だし。
0972デフォルトの名無しさん (ワッチョイ 238c-U/Pn)
2017/04/02(日) 04:46:41.76ID:n7h/bBRg0それとはぜんぜん違うなw
classができてnewは昔以上に普通に使われるようになった。
0973デフォルトの名無しさん (ワッチョイ 238c-U/Pn)
2017/04/02(日) 04:48:20.07ID:n7h/bBRg0TypeScriptがMicrosoftという大きなバックがあるから
かろうじて候補になるレベル
0974デフォルトの名無しさん (ワッチョイ b3a8-/Gsh)
2017/04/02(日) 08:40:53.12ID:rRNjOjm50RoRにまでねじ込みやがって、作者は首吊って死ねレベル
0975デフォルトの名無しさん (ワッチョイ d370-QovO)
2017/04/02(日) 21:36:49.49ID:ErqynUDU00976デフォルトの名無しさん (ワッチョイ 733c-3+/Q)
2017/04/02(日) 21:47:14.29ID:PqHJO9yF0具体的には
export default function sample() {
console.log('sample');
}
これをbabelでコンパイルしたファイルをhtmlで読み込み、他のjsからsample()で呼び出そうとするとnot definedになります。
0977デフォルトの名無しさん (ワッチョイ bf01-y2WR)
2017/04/02(日) 22:13:35.00ID:C3VJqOAO0webpackかrollup使え
0978デフォルトの名無しさん (ワッチョイ 73c8-agmj)
2017/04/02(日) 23:11:43.46ID:W2z98tOP0テンプレ変更無し、ワッチョイありです。(このスレと同じ)
何かあればよろしく。
0979950 (ワッチョイ efff-U/Pn)
2017/04/02(日) 23:35:40.15ID:1OFv5oH00+ JavaScript の質問用スレッド vol.123 + [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/tech/1491143438/
0980デフォルトの名無しさん (ワッチョイ 73c8-agmj)
2017/04/03(月) 00:44:09.44ID:82yaJsi70JavaScript の質問用スレッド vol.123
http://echo.2ch.net/test/read.cgi/tech/1491147085/
テンプレは「前スレ」以外は変更無しです。
荒らしがいなければ順番が入れ替わっているのを修正するつもりでしたが、
この状況では紛らわしいので止めました。
ゆとり死ね。Web板民死ね。
てかお前らマジで他スレ立てろ。乗っ取るんじゃなくてね。
0981デフォルトの名無しさん (ワッチョイ efa7-agmj)
2017/04/03(月) 14:46:34.64ID:iEMCb3Wm0ゆとり死ねとかそういう属性でレッテル貼って叩くのは本当にやめなよ
上にもチョンだの韓国人だの言ってるのいたし最近たち悪いの湧きすぎ
0982デフォルトの名無しさん (ササクッテロラ Sp17-59Pd)
2017/04/03(月) 16:21:46.28ID:+GLMxqCnpネトウヨみたいなのが在日差別してるような発言が目立つ
ITは国境の壁のない世界なのに、何の根拠もなく在日を見下して酷いレスをしたり、本当にムカつくわ
ジャップと言い返したいが、バカは無視しなければとじっと耐えている
0983デフォルトの名無しさん (ワッチョイ bf72-aC9I)
2017/04/03(月) 18:19:57.56ID:Yz8joenH00984デフォルトの名無しさん (ワッチョイ 73c8-agmj)
2017/04/03(月) 22:14:04.19ID:82yaJsi70ゆとり死ね
>>982
韓国人死ね
いやなら出て行ってくれよ。マジで。
文句しか言わず邪魔ばかり、でも居座るとか、まさにゆとり=在日韓国人だろ。
同レベルの知能とモラルしかないんだよ。それを自覚して両方とも死ね。
ゆとりは勘違いしているが「○○してはいけない」ってのは子供の考え方なんだよ。
大人はただ、何をやってもそういう人だと受け取られるだけ。つまり責任を取らされる。
この状況でも、ゆとり死ね、韓国人死ねって言わない人なら、そういう人だと取られる。
俺はこの状況なら、言う方を選ぶ。それだけ。
それをお前らがどう取るかはお前らの自由。
同様に、お前らがどういう行動を取ったとしても、それをどう思うかは俺の自由。
重ねて言う。
ゆとり死ね。韓国人死ね。Web板民死ね。
つかね、まともなモラルがあれば、スレ立てた奴(979)はそれを使うべきだし、
継続スレ立てを邪魔した奴(テンプレの最中にどかどか落としてきた馬鹿共)は、
979を使うか、新しく自分達でスレ立ててそこで頑張るのが筋だろ。
ゆとりと韓国人は筋を理解出来る知能がないから会話が成立しない。
そして邪魔することが目的になってるクズだから嫌われるんだよ。
韓国人や民進党が嫌われている理由はそれなんだよ。奴ら分かってないけど。
そしてそれをパヨクは差別にすり替えてきた。だから世界的に反PCなんだよ。
というか、顔も見えないネット上で特定されてしまうことが異常だと気付け。
お前らは非ゆとり世代の常識ではあり得ないことを色々やらかしてる。
ホントマジで死んでくれ。
0985デフォルトの名無しさん (ワッチョイ efa7-agmj)
2017/04/04(火) 00:19:23.84ID:Up7pI+Y400986デフォルトの名無しさん (アウアウウー Sab7-ZBiq)
2017/04/04(火) 01:04:19.40ID:/h6/1A+aaこの人は前から一部の荒らしを忌み嫌っていてそれは共感出来るものだが、一部を全と誤認する癖があって、「お前ら」と一括りにして無関係な人にまで誰彼かまわず噛みつく。
こういう人がいつまでも残ってるから荒らしがいなくならない。
0987デフォルトの名無しさん (ワッチョイ bf72-FZ2J)
2017/04/04(火) 03:11:39.99ID:G9pF4v7500988デフォルトの名無しさん (ワッチョイ 8ff3-agmj)
2017/04/04(火) 10:22:09.13ID:PLaqQ/3x0これってエラーになるか警告吐いて無限ループするよね
0989デフォルトの名無しさん (ワッチョイ d370-Mfrl)
2017/04/04(火) 16:16:27.33ID:EdxJPPSV00990デフォルトの名無しさん (アウアウウー Sab7-19VF)
2017/04/04(火) 17:50:41.14ID:0Y6YQxI1aこれでもエラーになるかな?
帰ったら試してみるか
0991デフォルトの名無しさん (JP 0H7f-aCII)
2017/04/04(火) 17:54:25.25ID:pyoNKlrCHfor( const i=0; i<1; i++ ){}
Chrome:
Uncaught TypeError: Assignment to constant variable.
at <anonymous>:1:23
0992デフォルトの名無しさん (アウアウウー Sab7-19VF)
2017/04/04(火) 18:14:32.27ID:0Y6YQxI1aありがとう
そりゃそうか
先にインクリメントしないことには次に行くかどうかの評価も出来ないもんね
失念してた
0993デフォルトの名無しさん (アウアウカー Sa7f-ajVR)
2017/04/07(金) 17:48:47.95ID:WUk4T3iPaと
return hoge() && piyo() ;
ってやってること同じですか?
0994デフォルトの名無しさん (ワンミングク MMa2-+hGL)
2017/04/07(金) 17:53:38.36ID:IIm1rFGkMちがうだろw
0995デフォルトの名無しさん (ワッチョイ 720f-r5Aa)
2017/04/07(金) 19:11:15.38ID:APzAZxi90hoge()が0や""を返す場合を考えるといい
0996デフォルトの名無しさん (アウアウカー Sa7f-ajVR)
2017/04/07(金) 19:27:57.26ID:WUk4T3iPaあっ、すみません
hoge()がtrueかfalseを返す関数ということを書き忘れてました
これじゃ意味が全然違いますね
0997デフォルトの名無しさん (ワッチョイ bf92-R2Im)
2017/04/07(金) 20:22:15.76ID:ELRS5w/500998デフォルトの名無しさん (ワッチョイ 0770-/mV7)
2017/04/07(金) 22:01:28.99ID:W6kcLwca00999デフォルトの名無しさん (ワンミングク MMa2-+hGL)
2017/04/07(金) 22:54:37.43ID:IIm1rFGkMそれだとhogeがfalseのときに上は何も返さないじゃないか
1000デフォルトの名無しさん (ワッチョイ e6c8-mfmJ)
2017/04/07(金) 23:02:52.10ID:sd61oNHw0とにかくわかりやすく
if ( ) {
} else {
}
って感じで書いとけばいいと思う……
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
life time: 221日 14時間 41分 30秒
10021002
Over 1000Thread運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 2ちゃんねる専用ブラウザからの広告除去
★ 2ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.2ch.net/
▼ 浪人ログインはこちら ▼
https://login.2ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。