5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

JavaScript の質問用スレッド vol.123 [無断転載禁止]©2ch.net

1 :デフォルトの名無しさん 転載ダメ©2ch.net (ワッチョイ 73c8-oPzN):2017/04/03(月) 00:31:25.68 ID:82yaJsi70
JavaScript を自ら学ぶ人のための質問スレッドです。
>>2-6のテンプレを読んだ上で質問してください。次スレは>>950>>2のテンプレ案(本スレで改善案があれば考慮)を元に立ててください

■質問を書く上で
(1) 煽り、コード制作依頼等、人を不快にさせる投稿はご遠慮下さい。公序良俗を守った応対を心がけてください。
(2) 他の人に迷惑をかけるスクリプトの質問はご遠慮ください。
  (ブラクラ、[戻る], [閉じる], [クリック] の妨害、画面占有など)
(3) 質問者及び議論を行う人はメール欄を空欄にし、名前にレス番を入れることを強く推奨します。回答者はなりすましを判断できませんので、なりすましが現れても自己責任となります。
(4) 常に自発的に調べる心構えを持ってください。
  具体的には「自分で調べてから質問する」「回答をもらってわからない単語があればGoogle検索してみる」など。
  わからない内容を代わりに調べてくれる回答者をお望みの方は余所で質問してください。
(5) 出来るだけ一般的な用語を使用してください。脳内オレオレ用語は混乱の元です。
(6) 出来るだけサンプルコードを掲示してください。言葉による説明は行き違いが生まれる場合があります。
  ※必ず「問題の事象が再現されること」を確認してください。
   必要な部分だけ切り出したつもりで現象が再現できていなかったケアレスミスがしばしば見られます。
(7) サンプルコードに HTML が含まれる場合は http://validator.w3.org/ で [Check] してみてください。
(8) 質問を具体的かつ詳細に書くと回答を得られやすいです。>>2の質問テンプレートを活用してみてください。
(9) ライブラリ関連の質問は禁止です。関連スレにあるライブラリ質問スレで質問して下さい。
(10) 時にはあなたが望む「答え」だけでなく、「意見」などが寄せられる場合もあります。
※前スレ
JavaScript の質問用スレッド vol.122
http://echo.2ch.net/test/read.cgi/tech/1472426483/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured

2 :デフォルトの名無しさん (ワッチョイ b38c-U/Pn):2017/04/03(月) 00:32:46.51 ID:HcTbpYfB0
本スレはこっち

+ JavaScript の質問用スレッド vol.123 + [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/tech/1491143438/

3 :デフォルトの名無しさん (ワッチョイ efff-U/Pn):2017/04/03(月) 00:33:38.69 ID:bzwlUbZO0
ワッチョイとは
BBS_SLIP
http://info.2ch.net/index.php/BBS_SLIP
スレ立て主が設定する事で、レスした人のIPアドレスからIDを変換して名前欄の横に表示が出ます。
荒らし対策という名目で広がったのですが、一言でいえば強制固定ハンドルネームのようなものです。
中段あたりに解説がありますが、浪人という名前の有料専用ブラウザを導入すれば、ワッチョイ表示なしで書き込む事も出来るようになります。

●注意点
ワッチョイ(SLIP)の変換は全板共通です。
IPアドレスから特定の法則で文字列に変換しているだけなので、IPアドレスが変わらない限り全部同じになります。
ですので、漫画板のワッチョイスレで○○かわえー、なんてレスした後、他のお硬い板のワッチョイスレで大議論になったり
なんかしてて議論相手にあなたのワッチョイのIDググられれば普通に他の板の書き込みがヒットします、
全く関係ないスレで別のスレの恥ずかしいレスを相手に突っ込まれたりする可能性があったりします。
これらを自覚してレスをしていないと、あるスレで下の名前をレスして、別の板のスレで苗字をレスして、
と...実は自分から身バレをしていたという可能性も無い訳ではありません。何万人もレスしてますからね、誰かがそういうポカをする事だってあり得ます。

変換自体は一週間でまた変わるので一生同じIDという訳ではないですが、注意しなければならないのはIPアドレスそれ自体が表示されているSLIPスレ。

IPアドレスは固定アドレスにしない限り変動すると思いがちですが、今は変動アドレスでも
殆ど固定と変わらない事が多いのです。下手をすればプロバイダ解約するまで同じIPアドレス。
IPアドレス表示されるスレに一度でもレスすれば、ワッチョイ=IPアドレスの関係がバレてしまうので
他のワッチョイスレでもIP表示で書き込んでる事と実質同じになってしまいます。
2週に渡ってIPアドレス表示のスレに書き込めば、ワッチョイIDは変わってますがIPは同じなので週を
跨いでも同じ人というのがバレますね。同じIPの過去のワッチョイIDをググればいくらでも過去に遡れる事になります。

4 :デフォルトの名無しさん (ワッチョイ efff-U/Pn):2017/04/03(月) 00:33:57.32 ID:bzwlUbZO0
掲示板を見れば閲覧者のIPアドレスは管理者にわかるので日常的に第三者に渡っている情報ですが、
2chのレスでIPが残る(Googleの検索に引っ掛かる)となると少し意味が違ってきます。
IPアドレスからは接続地域と回線種類くらいしかわかりません。それぞれが情報を持っていても
外に開示している情報ではないので個々の情報では価値が薄いのですが、2chにレスがあれば情報を共有できます。一つ一つは薄い情報でも繋げれば意味が出てきます。

また、IPアドレスと本名住所を元々知っている相手にはどうでしょうか?
まず普通に家族が家のIPをググったら2chのレスを見られますね。
あなたの2chの書き込みが全てわかる訳です。趣味嗜好、悩み等を書き込んでいれば筒抜け。
あなたの知り合いがふざけてこのIPの奴○○って奴だよ、と書き込む事だってあるかもしれません。
例えば本名IP掴んでる通販業者が2chググってレス見て病気で悩んでいたのが知れたらその情報を心霊治療の業者に流されたりする可能性だってあります。

まぁそういう可能性も無いとは言えないのでIP表示のスレだけは気をつけて下さい。
先にその危険性を知っていればレスの内容も気をつけるでしょうけど、現状はその危険性をそもそも全く知らずに呑気に匿名だと思ってレスしている人が大半なのです。

5 :デフォルトの名無しさん (ワッチョイ 73c8-agmj):2017/04/03(月) 00:34:49.92 ID:82yaJsi70
■質問テンプレート
【環境】OS, ブラウザをバージョンと共に記入してください。(ex: IE8, Firefox4)
【何をしたのか】何をしたら問題の現象が発生するのか。再現手順を具体的に書いてください。
【エラーメッセージ】エラーメッセージがあれば正確に書き写してください。(Windows なら「コピット」を活用)
【期待する結果】最終的にどういう結果を望んでいるのか、を書いてください。
【サンプルコード】現象を再現可能な最小限のコードを書いてください。
 1レスに収まらないならコード投稿サイトを利用してください。
 http://jsdo.it/ http://jsbin.com/ http://jsfiddle.net/ http://ideone.com/

■過去スレ全集
http://www2.atpages.jp/mirror/2ch/javascript/
http://usamimi.info/~mirrorhenkan/2ch/javascript/ (閲覧のみ)

■テンプレ案
https://fiddle.jshell.net/6018r9tu/1/show/light/

■関連スレ
JavaScript ライブラリ総合質問所 vol.5 [無断転載禁止]c2ch.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/

6 :デフォルトの名無しさん (ワッチョイ 73c8-agmj):2017/04/03(月) 00:35:29.98 ID:82yaJsi70
■FAQ
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プロパティの算出値を表示(

7 :デフォルトの名無しさん (ワッチョイ 238c-U/Pn):2017/04/03(月) 00:35:44.14 ID:MrxLrKt60
前:Name_Not_Found[sage] 投稿日:2016/02/24(水) 00:48:54.16 ID:???
■JavaScript主要ライブラリ・フレームワーク

jQuery
http://jquery.com/
jQuery UI
http://jqueryui.com/
jQuery Mobile
http://jquerymobile.com/
Lo-Dash
https://lodash.com/
Backbone.js
http://backbonejs.org/
Underscore.js
http://underscorejs.org/
AngularJS
https://angularjs.org/
Knockoutjs
http://knockoutjs.com/
RequireJS
http://requirejs.org/
D3.js
http://d3js.org/
threejs
http://threejs.org/

8 :デフォルトの名無しさん (ワッチョイ 73c8-agmj):2017/04/03(月) 00:35:51.98 ID:82yaJsi70
■FAQ(続き)
◆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 和訳)

9 :デフォルトの名無しさん (ワッチョイ 73c8-agmj):2017/04/03(月) 00:36:21.03 ID:82yaJsi70
■FAQ
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プロパティの算出値を表示(

10 :デフォルトの名無しさん (ワッチョイ 238c-MCV6):2017/04/03(月) 00:36:27.84 ID:MrxLrKt60
テンプレここまで

-----------------------------------------------

11 :デフォルトの名無しさん (ワッチョイ 73c8-agmj):2017/04/03(月) 00:36:42.76 ID:82yaJsi70
■各種仕様 (続き)
◆ 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

12 :デフォルトの名無しさん (ワッチョイ 73c8-agmj):2017/04/03(月) 00:37:03.06 ID:82yaJsi70
■各種仕様 (続き)
◆ 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

13 :デフォルトの名無しさん (ワッチョイ 238c-MCV6):2017/04/03(月) 00:37:21.41 ID:MrxLrKt60
■JavaScript主要ライブラリ・フレームワーク

jQuery
http://jquery.com/
jQuery UI
http://jqueryui.com/
jQuery Mobile
http://jquerymobile.com/
Lo-Dash
https://lodash.com/
Backbone.js
http://backbonejs.org/
Underscore.js
http://underscorejs.org/
AngularJS
https://angularjs.org/
Knockoutjs
http://knockoutjs.com/
RequireJS
http://requirejs.org/
D3.js
http://d3js.org/
threejs
http://threejs.org/

14 :デフォルトの名無しさん (ワッチョイ 73c8-agmj):2017/04/03(月) 00:39:41.45 ID:82yaJsi70
■諸注意
vol.115でlodashを不必要に推奨して啓蒙する行為が多く確認されており、ライブラリ系の質問はvol.116から禁止されました。
vol.115,116ではライブラリ禁止する発言が見られた直後にライブラリを許可する意図で次スレを立てる行為が確認されています。
本スレッドでライブラリ許可を求める発言が確認された場合は不要な争いを避ける為、スルーすることを推奨します。
ライブラリの質問はライブラリスレへ誘導し、誘導行為への反論はスルーしてください。

-----ここまでテンプレ-----
テンプレは >>1,5,6,8,9,11,12 および本レス

15 :デフォルトの名無しさん (ワッチョイ 73c8-agmj):2017/04/03(月) 00:41:25.92 ID:82yaJsi70
テンプレは ID:82yaJsi70 投下分です。
見れば分かりますが荒らしが常駐しておりますのでご注意下さい。

16 :デフォルトの名無しさん (ワッチョイ 238c-MCV6):2017/04/03(月) 00:41:55.25 ID:MrxLrKt60
またあらされるだろうが
ワッチョイを弱くするんじゃねーよ

+ JavaScript の質問用スレッド vol.123 + [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/tech/1491143438/

17 :デフォルトの名無しさん (ワッチョイ 73c8-agmj):2017/04/03(月) 00:50:35.05 ID:82yaJsi70
お前ら本当に息を吐くように嘘をつくのな

18 :デフォルトの名無しさん (ワッチョイ e3a1-ApgU):2017/04/09(日) 00:11:28.55 ID:fJb/P0a60
Web上の画像からMD5ハッシュを作りたい。
PHPでは

$file = 'http://tokai-tv.com/aonoumi/common/img/bg02.jpg';
echo md5_file($file);

結果:ccfc83e6c92e7571f266215458776bbf

こんな感じで作れるのだが、javaScriptでの作り方がわからない

19 :デフォルトの名無しさん (ワッチョイ e6c8-mfmJ):2017/04/09(日) 07:45:08.98 ID:UMSN5A0G0
>>18
どの部分がわからないのさ

20 :デフォルトの名無しさん (ワッチョイ e3a1-ApgU):2017/04/09(日) 09:06:06.81 ID:fJb/P0a60
この部分
md5_file($file)

21 :デフォルトの名無しさん (ワッチョイ e3a1-ApgU):2017/04/09(日) 12:26:46.60 ID:fJb/P0a60
やっぱりよくわからない
別の方法探してみるわ…

22 :デフォルトの名無しさん (JP 0Hbe-4iQ7):2017/04/09(日) 12:48:09.41 ID:bUVSS9K7H
同等の関数を実装する

23 :デフォルトの名無しさん (アウアウウー Sa93-ajVR):2017/04/09(日) 13:00:55.24 ID:c0gwQMp6a
まずその関数の中身は見たのか?

24 :デフォルトの名無しさん (ワッチョイ 6b7b-HE/W):2017/04/15(土) 15:21:52.52 ID:9YbSLxnA0
文字列中にバックスラッシュをエスケープせずに記述したくてString.rawを使ったのですが、
\ + 数字が含まれていると8進数に解釈しようとするのか Octal literal in strict mode という
エラーになります。

module.exports = {
path: String.raw`C:\Data\123`,
};

8進数に解釈しようとするのを回避する方法ってないんですかね?

25 :デフォルトの名無しさん (ワッチョイ 1bc8-7DHh):2017/04/15(土) 16:59:13.00 ID:+c21o4AH0
>>24
調べてみたがないっぽいな
http://2ality.com/2016/09/template-literal-revision.html

26 :デフォルトの名無しさん (ワッチョイ 6b7b-HE/W):2017/04/15(土) 18:35:44.54 ID:9YbSLxnA0
なるほど、ありがとうございます。解決できのは早くてES2018ですか。
TypeScriptでさっさと取り込んでくれないかなぁ。

27 :デフォルトの名無しさん (エーイモ SE2f-pVHc):2017/04/17(月) 11:13:56.79 ID:EyfSFiB8E
const F = function fun() {
this.age = 1;
};

F.prototype.getage = function getage() {
'use strict';

console.log(this.age);
};

const f = new F();
f.getage(); // 1

28 :デフォルトの名無しさん (エーイモ SE2f-pVHc):2017/04/17(月) 11:15:00.74 ID:EyfSFiB8E
const F = () => {
this.age = 1;
};

F.prototype.getage = function getage() {
'use strict';

console.log(this.age);
};

const f = new F();
f.getage();

これはTypeError: Cannot set property 'getage' of undefined

29 :デフォルトの名無しさん (エーイモ SE2f-pVHc):2017/04/17(月) 11:15:25.44 ID:EyfSFiB8E
const F = () => {
this.age = 1;
};

F.prototype.getage = () => {
'use strict';

console.log(this.age);
};

const f = new F();
f.getage();

これもTypeError: Cannot set property 'getage' of undefined

30 :デフォルトの名無しさん (エーイモ SE2f-pVHc):2017/04/17(月) 11:15:59.76 ID:EyfSFiB8E
const F = function F() {
this.age = 1;
};

F.prototype.getage = () => {
'use strict';

console.log(this.age);
};

const f = new F();
f.getage(); // undefined

31 :デフォルトの名無しさん (エーイモ SE2f-pVHc):2017/04/17(月) 11:16:39.84 ID:EyfSFiB8E
>>27
>>28
>>29
>>30
の4つのコードの結果が何故こうなったのか理由を教えてください

32 :デフォルトの名無しさん (アウアウカー Saef-Sirm):2017/04/17(月) 12:35:49.92 ID:nxPRGvnHa
インスタンス化したときじゃなくアロー使った時点でthisが束縛されてるから

33 :デフォルトの名無しさん (ワッチョイ 0bca-n2Cn):2017/04/18(火) 16:19:41.63 ID:owHPt2Un0
generator-chrome-extension-kickstart を使ってchrome-extension作っているんです。
これ自体はすごく便利なんですが修正するたびにコンパイルが入ってリロードするため、
chromeが「この拡張機能は、自身により頻繁に再読み込みされています。」と、
開発中のプラグインを無効化してしまいます。
これが面倒なので警告を無効化する方法を教えていただけないでしょうか?

34 :デフォルトの名無しさん (ワッチョイ 0b70-Pi+M):2017/04/19(水) 09:59:50.06 ID:NBkpFfOk0
手動で更新すればいい

35 :デフォルトの名無しさん (エーイモ SE3f-pVHc):2017/04/19(水) 19:05:12.62 ID:l7QdfMBTE
>>32
理解しました
function()を無理にアロー演算子に書き換える必要はなさそうですね
先輩ありがとうございます

36 :デフォルトの名無しさん (アウアウウー Saaf-Sirm):2017/04/19(水) 19:18:09.01 ID:hZKuXyWEa
>>35
アローは関数型プログラミングの流れを汲んでるから今回みたくオブジェクト指向で使おうとすると相性悪い

37 :デフォルトの名無しさん (ワッチョイ a370-kG10):2017/04/21(金) 21:06:23.20 ID:Z8gqe29s0
関数型の流れを組んでるからとか、どうしたらそんな頭の悪いこと思いつくんだ?
そもそもオブジェクト指向と相性悪いと言うこともないし。
ただ単に既存のthisを利用したクラスベースもどきクラスシステムと相性悪いというだけで、
オブジェクト指向はプロトタイプベースでも、別のクラスベースもどきでもいくらでもできる。

38 :デフォルトの名無しさん (ワッチョイ 0a8c-m8Mb):2017/04/21(金) 21:53:18.77 ID:TFy/T03e0
関数型っていうのは、ロジックを記述するもの。
オブジェクト指向っていうのは、そのロジックを持った構造を作るもの

住み分けがしっかりしてるから、オブジェクト指向+関数型で
プログラミングするのが今のトレンド

39 :デフォルトの名無しさん (ワッチョイ 0a8c-m8Mb):2017/04/21(金) 21:58:57.35 ID:TFy/T03e0
>>37
> ただ単に既存のthisを利用したクラスベースもどきクラスシステムと相性悪いというだけで、

それは違う。逆にクラスベースのJavaScriptと相性がいい。

例えばこんな感じな

class Foo {
  func() {
    lib.sort(function() { thisはなんになる? })
    lib.sort(() => { thisは当然Fooのインスタンス })
  }
}

今まではthisが何になるかは、lib.sort() の仕様によって決まるから、
他の言語のように
「クラスの中のコードでthisといったらインスタンス自身に決まってるだろJK」
と言うことができなかった。

アロー関数を使って(言い換えるとfunctionキーワードなしで)JavaScriptをかけば
クラスの中でthisを使えば、どこで使ってもそのクラスのインスタンスとなり、
他の言語と同じように考えることができる。

40 :デフォルトの名無しさん (アウアウウー Sacf-41eg):2017/04/21(金) 22:51:06.77 ID:36WFQ6u4a
ラムダ式に引数を与えないなんてとんでもない!

41 :デフォルトの名無しさん (ワッチョイ 0a8c-m8Mb):2017/04/21(金) 23:22:22.43 ID:TFy/T03e0
>>40
そこは本質的なところじゃない自分でかってに補完しろ

42 :デフォルトの名無しさん (ワッチョイ a370-kG10):2017/04/24(月) 05:00:01.27 ID:UsTW2ezt0
>>39
屁理屈だな
メソッドにできないということが表の相性とすればそれは裏の相性だよ

43 :デフォルトの名無しさん (ワッチョイ bb8c-m8Mb):2017/04/24(月) 23:04:59.41 ID:39Q41QHF0
>>42
それは↓に言うべきことだね

>>37
> ただ単に既存のthisを利用したクラスベースもどきクラスシステムと相性悪いというだけで、

相性悪いが裏の相性(?)ということなら、>>39が書いたとおり相性が良いってことだろう。

それにそういうどうでもいいことしか言えないってことは、
>>39の内容には何も意見できないってみなすしかないねw

44 :デフォルトの名無しさん (アウアウウー Sacf-41eg):2017/04/24(月) 23:16:12.81 ID:F4BuIEVAa
JS使いには性格悪い人しかいないんですかね?

45 :デフォルトの名無しさん (ワッチョイ bb8c-m8Mb):2017/04/24(月) 23:17:09.83 ID:39Q41QHF0
>>44
お前性格悪いなw

46 :デフォルトの名無しさん (アウアウエー Sa82-Xafy):2017/04/25(火) 06:10:59.30 ID:X14wy5zca
ブラウザさえあれば入門出来るから、いろんな人はいるだろね。

47 :デフォルトの名無しさん (ワッチョイ a370-Od9D):2017/04/25(火) 08:59:18.77 ID:VRx9SYaG0
>>43
だからさあ、本当に言わないと分かんない?
コンテキストが違うでしょ?
そこまでずっとアロー関数を通常の関数のようにメソッドとして使えないという話をしてて、
その流れでの相性の話題なのよ

そしてそこでは君の言ったことは、(もっと広い視野で見て)「オブジェクト指向とは相性悪くない」
に含まれるのよ
君は数レスどころか1レスもまともに読めてない
あまりに視野が狭すぎだよ

48 :デフォルトの名無しさん (ワッチョイ 8692-F77J):2017/04/25(火) 09:57:49.62 ID:t+yXw+A30
>>47
頭悪いぞお前、コンテキストは>>36のアウアウな発言

>アローは関数型プログラミングの流れを汲んでるから今回みたくオブジェクト指向で使おうとすると相性悪い

functionはOOスタイルプログラミングでクソって書いてあるのに
https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Functions/Arrow_functions

Until arrow functions, every new function defined its own this value (a new object in the case of a constructor,
undefined in strict mode function calls, the context object if the function is called as an "object method", etc.).
This proved to be annoying with an object-oriented style of programming.

49 :デフォルトの名無しさん (ワッチョイ a370-Od9D):2017/04/25(火) 14:18:09.68 ID:VRx9SYaG0
>>48
だからそれに君と同じように批判してるのが>>37だっていう話をしてるんだが
オブジェクト指向とは相性悪くないってはっきり言ってるでしょ
頭大丈夫か?

50 :デフォルトの名無しさん (ワッチョイ 1fbc-m8Mb):2017/04/25(火) 16:19:31.03 ID:x5rQ36LO0
オブジェクトを理解できていないのがドヤ顔でなんか言ってるわw

51 :デフォルトの名無しさん (JP 0Hcf-41eg):2017/04/25(火) 18:42:15.58 ID:zu/PEsNlH
constとfreezeがデフォルトになる時代を待ってます
2020くらいまでにおねしゃす

52 :デフォルトの名無しさん (ワッチョイ bb8c-m8Mb):2017/04/25(火) 23:00:57.97 ID:dVF0/yIG0
>>47
お前が言ってるのは、オブジェクト指向との相性じゃなくて、
古いやり方、prototypeを使ってメソッドを追加する時限定の話じゃん。

オブジェクト指向の話でいうならば、お前が狭いんだよ。

53 :デフォルトの名無しさん (ワッチョイ a370-mNJJ):2017/04/26(水) 10:54:04.97 ID:AO7c3nBd0
>>52
だから最初からその狭い範囲限定で話をしてるでしょ
で、広い範囲では違うよと書いてるでしょ
レスをちゃんと読めって言ってるのよ……
まだ分かんない?

54 :デフォルトの名無しさん (ワッチョイ 8692-F77J):2017/04/26(水) 12:16:56.72 ID:bDIzZfBu0
>>53

>アローは関数型プログラミングの流れを汲んでるから今回みたくオブジェクト指向で使おうとすると相性悪い

これは狭い範囲に限定した発言じゃ無いと思うが
そんな必死になってこのアウアウを擁護する理由は?

55 :デフォルトの名無しさん (ワッチョイ 878c-m8Mb):2017/04/26(水) 21:05:53.95 ID:d/1p1duw0
>>53
だからこうですよね?

限定した狭い意味
「アローはprotptypeを使ってメソッドを作成するときには使えない」

大幅に範囲拡大した場合
「アローはオブジェクト指向で使おうとすると相性が悪い」
※注意 オブジェクト指向でアロー関数が相性がいい理由は上で説明済みです

56 :デフォルトの名無しさん (ワッチョイ 2770-eyom):2017/05/04(木) 14:53:39.23 ID:hUmLVofu0
メソッドを作成するときに直接使えないよりも
メソッド中で別の関数を定義するときに便利な時があるという方が
よっぽど視野が狭いんだよなぁ
オブジェクト指向と相性が良い!とか笑える

57 :デフォルトの名無しさん (ワッチョイ df7d-DCsn):2017/05/04(木) 18:20:15.83 ID:fttt3bQF0
視野が狭い 笑い
>>56
> This proved to be annoying with an object-oriented style of programming.
こう言ってアロー関数の動作を変更した奴に言え

58 :デフォルトの名無しさん (アウアウイー Sa37-Hpsk):2017/05/04(木) 18:56:55.88 ID:K3H/sXb3a
javascriptの勉強する時ってフロントエンドやるよりnodeから始めた方が良いの?

59 :デフォルトの名無しさん (ワッチョイ b3f5-BeWO):2017/05/04(木) 19:05:34.12 ID:WT3deWtz0
今時はフロントエンドでもnpm使うから明確な区切りはないかと。
いきなりtypescriptオススメ。
補完効くからめっちゃ捗る。

60 :デフォルトの名無しさん (アウアウイー Sa37-Hpsk):2017/05/04(木) 21:01:14.87 ID:K3H/sXb3a
>>59
そうですか:-)

61 :デフォルトの名無しさん (エーイモ SEab-pbrx):2017/05/05(金) 12:57:26.72 ID:3EPl9jlWE
typescriptの補完はjavascriptの補完として使うことも出来ますか?
ternjsでライブラリなどの補完がしたいんですが対応してないみたいで

62 :デフォルトの名無しさん (アウアウウー Sab3-W+y+):2017/05/05(金) 21:24:46.13 ID:af5cZQ8Za
javascriptでaddEventListenerによりイベント登録したときって実際どこに登録されてるの?

例えばpにclickを登録してconsole.dirしてみてもどこにも何か登録されたような状況が見当たりません・・・

63 :デフォルトの名無しさん (ワッチョイ 7ea7-Ogwz):2017/05/05(金) 22:27:05.74 ID:cBR5XKLX0
参照する手段がないだけでP要素自身に紐付けられてる
EventEmitterだと登録済みのリスナー関数を取得できたりする

64 :62 (アウアウウー Sab3-W+y+):2017/05/05(金) 23:23:40.21 ID:af5cZQ8Za
イベントリスナ関数に適当な引数セットして関数内で引数をdirしてみたら
なんとなくイベントオブジェクト?的なものを見られましたわ

>>63
ありがうございました

65 :デフォルトの名無しさん (ワッチョイ f23c-q6do):2017/05/05(金) 23:26:56.16 ID:TDjvniVu0
Firefox
https://developer.mozilla.org/en-US/docs/Tools/Page_Inspector/How_to/Examine_event_listeners

Chrome
https://developers.google.com/web/tools/chrome-devtools/console/command-line-reference#geteventlistenersobject

66 :62 (アウアウウー Sab3-W+y+):2017/05/05(金) 23:39:07.79 ID:af5cZQ8Za
>>65
なにこれすごい便利
ありがとうございます!

67 :デフォルトの名無しさん (ワッチョイ 7bfc-xh+C):2017/05/05(金) 23:50:55.73 ID:N/fwwBaZ0
<form name="form_gp">
<input type="text" name="form_name">
</form>

document.forms["form_gp"].elements["form_name"]という書き方で
フォームが存在しているかどうかを調べることはできますか?
IDをつけてgetelementbyIDとかいうのを使わないとダメですか?
できたらそうやればいいんですか?

68 :デフォルトの名無しさん (ワッチョイ 7675-YW+0):2017/05/06(土) 02:31:13.69 ID:feNHzNcv0
プログラム板のこのスレよりも、
web制作管理板の、JavaScriptのスレに書き込んだ方がいい

あっちの方が、人が多い

69 :デフォルトの名無しさん (アウアウウー Sab3-UAmY):2017/05/06(土) 04:02:27.19 ID:CFxIJcFza
>>67
<form name="form_gp"> が増えないのなら、そのコードは期待通りに動作するが、増えることも考慮すると、for文で繰り返し処理する方が安全
idなら <form id="form_gp"> が増やせない(一応、増えても期待通りに動作する)
というわけで役割が違うので、比較対象にならない

とはいえ、id, class があれば、nameを積極的に使う理由がないのも確か
古いAPIなので、今では(初心者を除いて)ほとんど見ない書き方だな
古いAPIだからいけないわけでもないし、「新しいAPIだから」とか「トレンドだから」等の非合理的な理由で決めるべきものでもないが

70 :デフォルトの名無しさん (アウアウウー Sab3-4Jvy):2017/05/06(土) 10:24:39.94 ID:CFxIJcFza
すまん、>>69は忘れてくれ。
仕様では form[name] は「formsコレクションのform要素の中で一意でなければならない」とあるので、getElementByIdと同じ感覚で扱えるようだ。
https://momdo.github.io/html/forms.html#attr-form-name
idが良く推奨されるのはフラグメント識別子としても扱える利便性にあると思われる。

71 :デフォルトの名無しさん (アウアウウー Sab3-4Jvy):2017/05/06(土) 10:37:34.28 ID:CFxIJcFza
HTML4.01ではname属性は後方互換性のために規定とあり、id属性を推奨されているな。
http://www.asahi-net.or.jp/~sd5a-ucd/rec-html401j/interact/forms.html#adef-name-FORM
XHTML1.0ではname属性が廃止されている。
http://www.y-adagio.com/public/standards/tr_xhtml_mod/abstract_modules.html#s_forms
HTML5では逆行しているが、この辺りがid属性が推奨される理由なのだろう。

72 :デフォルトの名無しさん (ワッチョイ 0fc8-Ogwz):2017/05/06(土) 11:30:21.16 ID:eZg+uQSL0
>>70
不使用を推奨されているのはその辺が分かりにくい(一貫性がない)からでしょ。
例えばそのURL内(すぐ下のNote内)
> 一度要素が特定の名前を使用して参照されると、
> たとえ要素の実際のIDまたはnameを変更しても、要素がツリーに残る限り、
> その名前は、この方法でその要素を参照する方法として利用され続ける。
オイオイ!
JavaScriptから始めた人間としては、なんだこの糞仕様死ね、としか思えない。

>>67
ただ、その手の「○○はどっちを選ぶべきですか?」という質問については、
とりあえずどこか君から見てカッコイイサイトを探して、(2-3箇所ね)
その人達がどうしているかF12で見て、真似するのが一番いいと思うよ。
明らかにこっちの方がいいという場合はみんなそっちを使ってる。
どっちでもいい場合はばらけるけど、その場合はどっちでもいいので問題ない。

ここで聞いても「俺はこう思う」しか出てこない。デタラメを主張する奴もいるし。
67なんてきちんと訂正もして正しい回答を目指しているのでかなりまとも。
でも今の君には正直、「誰が正しいのか」を判断する目もないでしょ。
君のレベルなら多分、回答者がID制のところの方がいいと思うよ。

まあそもそも、フォームを探すこと自体が奇妙ではあるんだがね。
フォームがあったり無かったりってことがまず無い。
そういう場合は通常はdisplay:noneを使った方が効率がいいから、まともなサイトならそうしてる。
(今君が書いているコードが丸々不要になるだろ)
といっても俺はWeb屋ではないからここら辺の話は他の奴を信頼した方がいいとは思うが。

73 :デフォルトの名無しさん (アウアウウー Sab3-4Jvy):2017/05/06(土) 11:53:54.14 ID:CFxIJcFza
>>72
> JavaScriptから始めた人間としては、なんだこの糞仕様死ね、としか思えない。
>>67が使用しているコードでは RadioNodeList は使っていないように読めるので、それは別の話。

「他人のコードに倣っておけばOK」は参考にしたサイトがダメだと意味がないし、本当の意味で理解したとは言えないので個人的にはお勧めはしない。
客観的な評価としては、仕様書と回答内容を比較して正誤を判断するのが確実かね…。
少なくとも、模範となる信頼性の高いサイトが一つ二つないと初心者は間違いなく、はまる。

74 :デフォルトの名無しさん (フリッテル MM4e-UAmY):2017/05/06(土) 12:42:20.62 ID:0ciTmY36M
経験上、「どっちがいいですか」系の質問は「判断する目がない」もそうだが、「自分から学ぶ意志がない」がほとんどだな
自分から学ぶ意志がない質問は次のどちらかになる

- 質問文に自分の考えが皆無で回答者に判断を完全に委ねている質問
- 自分の考えがあっても、まともな基礎勉強してないことが丸分かりで、質問内容が広範、基礎から全部教えないと理解できないと思われる質問

後者は学ぶ意志はあるが、独学が苦手で熟練者に手取り足取り教えて貰う方が早いと思っているタイプ
まともな回答は豚に真珠なので、痛い目を見るまで間違い続けるのを見守るのも優しさかと思う

75 :デフォルトの名無しさん (ワッチョイ 0fc8-Ogwz):2017/05/06(土) 13:16:30.69 ID:eZg+uQSL0
>>73
いや多分あの書き方だと、「一度捕まれたら名前は消えない」という仕様は、
RadioNodeList以外にも適用されてるぞ。
もっとも、同じ名前のフォームを使う場合がradioButton以外にはほぼないので、
自動脳内補完したのだとも思えるが。そもそも名前も変えないしね。

> 模範となる信頼性の高いサイトが一つ二つないと
まあ俺らはこれを提示すべきかもな。
つってもgoogleやYahooとか、いわゆる大手どころ
(Webサイトにも金を掛けて居るであろう所)
を見ればそんなに大外れはないとは思うが。

> 本当の意味で理解したとは言えないので個人的にはお勧めはしない
ちなみに俺は習うより慣れろ派。
初心者の時点ではどっちがいいなんて分からないよ。
そこで踏みとどまってしまってコードを書かないから上達しない。
だからどっちでもいいからとにかく書け、迷うなら適当に他人を参考にしろ、だね。
理想的には理解して書いた方がいいけど、それが出来る奴はあんな質問しないよ。
「どっちがいいですか」ではなく、「どこがどう違うんですか」になる。

>>74
初心者に要領を得た質問をしろというのはそもそも無理だ。

ただ一般論としては、同じようなAPIがあるのなら、とりあえず新しい方使っとけ、かな。
大体は古いのに問題があったから更新されてるもわけでね。
偶に「新しいことこそが正義」みたいな馬鹿も沸くけど、
それはここではある程度どうしようもない。

76 :デフォルトの名無しさん (フリッテル MM4e-UAmY):2017/05/06(土) 17:36:04.74 ID:JJUjh6I6M
>>75
> 初心者に要領を得た質問をしろというのはそもそも無理だ。
「質問の初心者」と「JavaScriptの初心者」は等価ではないと俺は思う
そもそも、俺は要領を得た質問を求めているわけではない
(勿論、最終的にはそうなるのが理想だが)

俺が指摘しているのは「学ぶ姿勢」で受動的な学習しかしない人は伸びないのだよ
分からないなりに調べて、分からないなりに調べた結果を書いて、それで要領を得ない質問になったとしても、調べた経験は無駄にならない
回答者は質問者の知識レベルを踏まえた回答が出来るというメリットもある
それは回答を貰って「自分には難しすぎる」と匙を投げるか、出来る限り理解しようと努力するか、の違いでもある

自分から何も調べず、回答者に完璧な回答を求めて、回答を貰って満足するタイプは自分で調べる事をしないから、いつまでたっても他人に質問して問題解決を図ろうとする
そういう人は独り立ち出来ず、いつまでも「初心者」のままだ
実際、某Q&Aサイトでも名前を何度も変えては同じような質問を繰り返して、詳しい回答を貰うと「初心者なので分からないです」と返信する人がいるよ

77 :デフォルトの名無しさん (フリッテル MM4e-UAmY):2017/05/06(土) 17:42:11.82 ID:JJUjh6I6M
>>75
> ただ一般論としては、同じようなAPIがあるのなら、とりあえず新しい方使っとけ、かな。
対象ブラウザによっては新旧APIを併用するか、旧APIを使用する事もある
PromiseとかFetchとか、IE11で実装されてないことを踏まえれば、「とりあえず、新しいAPIを使っとけ」という判断にはならない事もあるだろう

78 :デフォルトの名無しさん (ワッチョイ 0fc8-Ogwz):2017/05/06(土) 19:31:13.08 ID:eZg+uQSL0
>>76
質問をするスキルか。確かに今の時代だとそれが必要なのかもしれないね。
初心者にも分かるように言うと、とにかく全部ダンプしろって事だな。
何をやろうとしていて、どこで引っかかっていて、何を迷っているか。
長文が〜っていう奴はゴミだから無視でいい。
というかやってりゃ分かるはずだけど、
MDNでも仕様書でもここの「長文」どころじゃない。
三行越えたら長文だ〜みたいな奴はプログラマに向いてない。

>>77
そういやJavaScriptはこれがあるんだった。
初心者にも分かる結論としては、
「新しめのAPIの方がいいが、新しすぎるのは駄目」ってところか。

79 :デフォルトの名無しさん (ワッチョイ b3bc-7zcB):2017/05/06(土) 22:35:31.96 ID:+G79tDXD0
いくら新しいAPIの知識はあっても
現状の実装をいかに把握するかだけ
これだけ

80 :デフォルトの名無しさん (アウアウウー Sab3-FJfx):2017/05/06(土) 23:59:40.05 ID:liyf1SfOa
>>75
> いや多分あの書き方だと、「一度捕まれたら名前は消えない」という仕様は、
> RadioNodeList以外にも適用されてるぞ。
どうして「同じ」と解釈したのか、理解できなかったので、仕様のどの文章をどう解釈したのか、説明が欲しい。

document.forms は HTMLCollection を返すので live
https://momdo.github.io/html/dom.html#dom-document-forms
form[name] は RadioNodeList (NodeList を継承している) を返すので not live
form.elements は HTMLFormControlsCollection を返すが、HTMLCollection を継承するのでこちらも live
https://momdo.github.io/html/forms.html#the-form-element:dom-form-elements-2

Google Chrome 58.0.3029.96 で再現出来なかったので、現象を再現可能なコードも欲しい。
https://jsfiddle.net/3duzojn3/1/

81 :デフォルトの名無しさん (ワッチョイ 0fc8-Ogwz):2017/05/07(日) 00:55:55.42 ID:nVVEnA7X0
>>80
こちらも動作を確認したがそちらと同じ。
英語の仕様書も確認したが確かにそう書いてある。
しかし動作はそうなってないね。

> 一度要素が特定の名前を使用して参照されると、
> たとえ要素の実際のIDまたはnameを変更しても、要素がツリーに残る限り、
> その名前は、この方法でその要素を参照する方法として利用され続ける。
これはつまり、ブラウザ内部に名前引き用のキャッシュを持っていて、
ヒットした場合はそれを使い、ミスなら新規登録、
ノードが取り除かれる時にエントリから消し、
DOMノードの属性変更ではエントリを確認してないと言っている。
(更新はしないので一旦登録されたら名前が残ったままになる)
高速化では定番の方法だし、実際に名前を変える必要があることは無いので、
内々で使う場合の仕様としてはこれもありだろう。
ただし外面仕様として出す場合はこれは無理だ。知識的に粗結合化出来てない。
(このAPIを使う場合に例外ケースを把握してないと使えない)

だからこの仕様を外面仕様としている場合は間違いなく糞だ。
ただし、実際の動作はそうなってない。
どっちが正しいのかは俺には分からん。

仕様として美しいのは間違いなく今のブラウザの動作だ。
だから推測するなら、
元々マクロ用だった為の奇妙な(ただし知っていると便利な)DOM周りの旧仕様を
一般的なプログラミング向けの仕様(直感的、統一的、一貫性重視)に
変更している最中といったところか。
俺が仕様について裁定する権限があるのなら、
上記引用部分を削除して終わりだね。(ブラウザの動作に合わせる)

82 :デフォルトの名無しさん (ワッチョイ 2770-eyom):2017/05/07(日) 05:32:07.74 ID:oHRRm09Q0
そういうのはDOM Lv0といって昔のデファクトを文章にしただけのものだから
ベンダー間でこうしていきましょうねと合意が取れてるものとは違うぞ
Webは生き物だから正しいも正しくないもない
神様も居ない

83 :デフォルトの名無しさん (ワッチョイ 0fc8-Ogwz):2017/05/07(日) 09:10:15.71 ID:nVVEnA7X0
まあしかし、仕様書と実装の同期は取っておくべきだろ。
それが>>80の意図だろ多分。

こちらで試した限りではFireFoxでも同じだった。
80が仕様について何かやっている人なら頑張れとしか。

84 :デフォルトの名無しさん (アウアウウー Sab3-FJfx):2017/05/07(日) 09:41:57.10 ID:CzdP8WPaa
>>81
伝わってないようだが、「その3行の意味が理解できないから説明してくれ」や「その仕様が糞である理由を説明してくれ」ではない。
RadioNodeList 以外にも「たとえ要素の実際のIDまたはnameを変更しても、要素がツリーに残る限り、その名前は、この方法でその要素を参照する方法として利用され続ける」が適用されると判断した「仕様の文章」を引用して「あなたの解釈」を説明してくれ。

85 :デフォルトの名無しさん (ワッチョイ 0fc8-Ogwz):2017/05/07(日) 09:51:22.86 ID:nVVEnA7X0
>>84
いやそれは文章そのものだろ。
和文も英文も、あの書き方ならRadioNodeList以外も含むとしか取れないが。
てかお前、日本語も英文も読めない人?

86 :デフォルトの名無しさん (アウアウウー Sab3-FJfx):2017/05/07(日) 09:57:53.45 ID:CzdP8WPaa
HTML Standard や DOM Standard には「後方互換性の為に標準化した旧来の仕様」が多数存在する。
(>>82のいう DOM Level 0がそれだが、子の表記はMDNでしか見たことがないな)
XHTML2.0での失敗、IE6がいつまでも現役時代だった失敗を経て、HTML5 では既存のブラウザで動く事を重視して標準化しているからだ。
それが彼(>81)の言う「糞な仕様」だが、そうする事で旧来の古いブラウザの独自拡張で書いたコードも全てのブラウザで動くことが保証される。
「美しい仕様」よりも「動く仕様」を重視しているので、>>81とは目指すべき方向が違う。

87 :デフォルトの名無しさん (アウアウウー Sab3-FJfx):2017/05/07(日) 10:05:18.25 ID:CzdP8WPaa
>>85
そこまで否定される筋合いはないんだが、なぜそう挑発的なんだ?

> 指定したIDまたはname(歴史的な理由でイメージボタンを除く)をもつフォームでフォームコントロール(または複数存在する場合、フォームコントロールのRadioNodeList)を返す。または、いずれも存在しない場合、与えられたIDとともにimg要素を返す。
> 一度要素が特定の名前を使用して参照されると、たとえ要素の実際のIDまたはnameを変更しても、要素がツリーに残る限り、その名前は、この方法でその要素を参照する方法として利用され続ける。
> 複数のマッチするアイテムが存在する場合、それらの要素すべてを含むRadioNodeListオブジェクトが返される。

この文章は form[name] に書かれたもの。
文章内で「form.elements や document.forms にも適用される」とはない。
返り値の Interface も RadioNodeList と HTMLCollection で全く違う。
どう解釈したら「form.elements や document.forms にも適用される」となるのか日本語を読めない俺に説明してくれ。

88 :デフォルトの名無しさん (ワッチョイ 0fc8-Ogwz):2017/05/07(日) 10:48:18.68 ID:nVVEnA7X0
>>87
> 日本語を読めない俺に説明してくれ。
それは無理。

ここで国語の授業をするのは原理的に無理なんだよ。
俺が日本語でいくら説明しても、君はそれを俺が意図した通りに読めないことを意味する。
君がいくら反論してきても、それは俺には君が意図したとおりには伝わらないことを意味する。
だから片方の言語が不自由な時点で、「文章での」議論は空転する。
だからこそ韓国人はここではものすごく嫌われているわけでね。

俺には和文も英文もそうとしか取れないし、
仮にそれが俺の間違いなら、俺がそれを君に俺の文章で説明することは不可能なんだよ。
だから原理的に無理。

89 :デフォルトの名無しさん (アウアウウー Sab3-FJfx):2017/05/07(日) 10:57:46.04 ID:CzdP8WPaa
>>88
そうか。日本語を日本語で説明できないとは謎理論だが、あなたの中ではそうなんだな。
>>87では「日本語が読めない」と書いたが、それは言葉の綾で俺は日本語を読めると思っている。
>>88の中では RadioNodeList 以外にも適用されると解釈したんだな」ぐらいに思っておくことにする。
俺はあなたの根拠なき主張を信じないがね。

90 :デフォルトの名無しさん (アウアウウー Sab3-W+y+):2017/05/07(日) 11:16:41.63 ID:6eyY7xjMa
なぜいつもこうなるのか

91 :デフォルトの名無しさん (ワッチョイ 0fc8-Ogwz):2017/05/07(日) 12:08:47.12 ID:nVVEnA7X0
韓国人が紛れ込んでいるからだろ。
2chにおける典型的なスレ崩壊パターンだよ。
だから彼等は嫌われる。

実を言うと80の時点で意味不明だった。
そもそも俺が噛み付かれる理由がないし、
文章自体も直接的に俺に向けた物とも思えなかった。(話が噛み合っていない)
ただ俺はこういう馬鹿も見飽きてるし、コードが上がっているので試しに見てみたら、
ああなるほど彼はこれが言いたかったのか?と思って81を書いた。
それが伝わっていないというのなら、俺にはどうしようもない。あれで精一杯だ。

ちなみに俺はゆとりに対しても同様に怒っているが、
ゆとりに関しては日本人だから俺らにも教育責任はあるとも思う。
ただ韓国人については死ねとしか思わないね。

92 :デフォルトの名無しさん (フリッテル MM4e-UAmY):2017/05/07(日) 12:18:54.29 ID:oXR95zrtM
ID:nVVEnA7X0 が感情的になって無駄に煽るから、こうなる
どちらかが間違っている事ご分かっていて、「日本語も英文も読めない人?」といわれたら、カチンとくるのは当然
>>80はそれでも我慢した方だと思う

93 :デフォルトの名無しさん (ワッチョイ 7ea7-Ogwz):2017/05/07(日) 12:23:58.61 ID:MBvQ9mQY0
支離滅裂すぎる
全然関係ないこのスレに人種差別持ち込むなよ

94 :デフォルトの名無しさん (ワッチョイ 0fc8-Ogwz):2017/05/07(日) 12:39:51.32 ID:nVVEnA7X0
>>92
逆ギレ止めーや。
つか最近そういう奴も増えたけどね。
基本的価値観として、まともな日本人なら、「間違っている奴が悪い」なんだよ。

既に書いたが、和文も英文も俺にはそうとしか読めないし、
それで間違っているというのなら、俺がそれを説明する能力なんて原理的にないのさ。
だからその説明を俺に求めるのも論理的に矛盾してる。
お前らは馬鹿すぎてこのことが理解出来ないようだが。

95 :デフォルトの名無しさん (ワッチョイ 0fc8-Ogwz):2017/05/07(日) 13:22:06.98 ID:nVVEnA7X0
>>93
そうやって正統な批判を全部人種差別にすり替えるのが韓国人の汚い手口だよ。
だから今後とも嫌韓は収まらない。

そもそもここで韓国人呼ばわりされることがおかしいだろ。
顔も見えない、性別も分からない、見えるのは書き込みだけなのに。
それでも嫌われるのはそういうことをやり続けてるからだよ。
今回の例で言えば、

仕様書「RadioNodeListを含みます」
俺「『含みます』って書いてあると思うけど」
韓国人「いやそうは書いてない。書いているという証拠を示せ」
俺(どうしろと)

俺が間違っているというのなら、お前らが代わりに説明してやればいいだけ。
それも出来ないのなら、お前らは批判の為の批判をしているだけ。
それは韓国人やヤクザの手口だよ。だから彼等は嫌われる。
そういうゴミを嫌う権利は誰にでもある。ここら辺をパヨクは間違っている。
もちろん、俺を嫌う権利はお前らにもある。
だから俺はWeb板のスレには行かない。俺が嫌いならあっちで頑張れ。
あっちはあっちで機能しているし。

こうやって複数のスレで競争しないと、
今のJavaScriptのスレの面子では状態を改善出来ないんだ。
だから俺が強硬に並立を主張したわけでね。

96 :デフォルトの名無しさん (ワッチョイ 0fc8-Ogwz):2017/05/07(日) 13:30:47.09 ID:nVVEnA7X0
ああすまん、ミスってた。
無駄に喧嘩になっても仕方ないので一応投稿し直す。

仕様書「RadioNodeList以外も含みます」
俺「『含みます』って書いてあると思うけど」
韓国人「いやそうは書いてない。書いているという証拠を示せ」
俺(どうしろと)

とにかく、俺には含みますと書いてあるとしか見えない。
それが俺の間違いだというのなら、君らがそれを指摘してくれればいい。
俺にはこれ以上どうすることも出来ないのさ。

97 :デフォルトの名無しさん (ワッチョイ feff-W+y+):2017/05/07(日) 13:37:00.76 ID:oYGQiupR0
┐(´∀`)┌

98 :デフォルトの名無しさん (オイコラミネオ MM4e-PS/A):2017/05/07(日) 13:42:44.84 ID:08drzkS6M
典型的なネット右翼やな

99 :デフォルトの名無しさん (ササクッテロレ Spf7-pKhs):2017/05/07(日) 14:22:41.48 ID:TbpBAUHmp
空気を読まずに蒸し返してみる

ある事の証明は存在をひとつ示せばいい
ない事の証明は全てを網羅しなければならない
この2つの証明はは等価ではなく後者の方が圧倒的に困難である
よって、ないことを証明しろ、それが出来ないならあるのだという論法は典型的な詭弁の手法として用いられる

ある事が分かっているならば当該箇所を示せばその時点で論破()できるのに、それをせずに相手に悪魔の証明を求めるのは、あるという証拠の1つすら示せないからに他ならない

100 :デフォルトの名無しさん (ワッチョイ 0fc8-Ogwz):2017/05/07(日) 14:55:04.57 ID:nVVEnA7X0
つか、何度も言っているが、
俺が間違っているというのなら、お前らが説明してやれよ。
マジでお前らヤクザのやり方を地で行ってるぞ。

仕様書の該当部分は既に明示されているし、
そこにはそう書いてある(と俺には読める)
これ以上俺が出来ることはないんだよ。

お前らって、内容を読まずに批判する為の批判を繰り返すよね。
そして相手が悪いという事に無理矢理持っていこうとする。
これはゆとりに多いパターンだけど。

101 :(アウアウイー Sa37-gZQE):2017/05/07(日) 15:04:07.44 ID:tachXp58a
イデオロギーと主張と日本語が読めないと言うのは互いに疎だろうから、ちょっとこうなると話が終わらなくなるな。

>>95
正当か正当でないかは主観だから言い換えるとして「正当かもしれない批判を全部人種差別にすり替える」を技を
>>95という批難のレスが自己言及を起こしてるから、根拠を足すか別の表現で説明して。
批判のための批判ではなくて、論理的に正しい批判が読みたいな、俺は。

102 :デフォルトの名無しさん (ワッチョイ 0fc8-Ogwz):2017/05/07(日) 15:38:18.75 ID:nVVEnA7X0
>>101
日本語でおk

103 :デフォルトの名無しさん (ササクッテロレ Spf7-pKhs):2017/05/07(日) 16:22:44.83 ID:TbpBAUHmp
ヤクザ、ゆとり、韓国人、これらはすべて論理的な議論において無用なレッテル貼りでありこれまた詭弁の典型例である
発言者が馬鹿だと論旨の正否に関わらず批判を受けるという好例だわ

104 :デフォルトの名無しさん (フリッテル MM4e-UAmY):2017/05/07(日) 16:58:46.44 ID:oXR95zrtM
>>80は真っ当なものだし、正しいと俺は思う
根拠(URL)も十分に出てるし、補足することは何もない

対して彼の返答は「そうとしか読めない」しかなく、具体的なところは何もない
信じてもらえなくて当然だと思う

105 :デフォルトの名無しさん (フリッテル MM4e-UAmY):2017/05/07(日) 17:24:34.96 ID:oXR95zrtM
>>96
少なくとも彼は>>80>>87で自分の正当性を説明出来ているけどね
君はなぜか完全スルーの構えでそこに触れてないが
仕様は変わらないのだから、仕様の解釈を説明するしかないのに、それが出来ないのは君に説明能力がないとしか思えない

あと、君の発言は段々、暴論になってきているから気を付けた方がいい
人格否定や差別的発言は明らかに君が間違ってる(君の論にてらせば、君が悪い)
いっちゃ悪いが、自分の発言が認められなくてだだをこねている子供のようだ

106 :デフォルトの名無しさん (ワッチョイ 0fc8-Ogwz):2017/05/07(日) 19:09:24.78 ID:nVVEnA7X0
というかこの手の「ゆとりスクラム」、最近割と良く遭遇するようになったが、何がしたいんだ?

俺に説明能力がないというのなら、俺に説明を求めること自体がおかしいし、
説明能力があるゆとり君が代わって説明すればいいだけ。
俺が文章を読めてないというのなら、俺にそれを文章で説明しろというのは無理な話。
俺を信じれないというのなら、ああそうですかでしかない。そもそもそういう話ではないし。

ゆとりって基本的に他人に文句は言うけど、自分で改善しようとは全くしないよね。
今の現実世界はそれまでの大人達が少しずつ改善を重ねてきた結果だというのに。

俺は2chしかほぼ見てないから
> 実際、某Q&Aサイトでも名前を何度も変えては同じような質問を繰り返して、
> 詳しい回答を貰うと「初心者なので分からないです」と返信する人がいるよ (>>76)
には遭遇したことがないけど、(というより遭遇しても気づくほど見てない)
この手の「無理矢理○○って事にしたい」ってのは最近すごく遭遇するんだが。

107 :デフォルトの名無しさん (アウアウウー Sab3-W+y+):2017/05/07(日) 20:11:06.03 ID:6eyY7xjMa
わかったから他所でやってや
ゆとりでもそうでなくてもどうでもいいが、スレタイぐらいは読めるやろ

108 :(アウアウイー Sa37-gZQE):2017/05/07(日) 20:31:31.21 ID:tachXp58a
>>102
日本語読めないんだ。

109 :(アウアウイー Sa37-gZQE):2017/05/07(日) 20:36:30.42 ID:tachXp58a
>>106
破綻しとる。
自説を説明する能力がある人間でも、代わって「おまえの理論」の説明はできまい。
説明能力が無いなら説明を求めるのがおかしいって無茶苦茶じゃん。
説明能力がある奴に、説明を求めるのは無意味だろ。
だって説明能力があるならば、求めるより前に説明してるはずじゃん。
説明能力か無いからこそ、説明しろと要求されていると思えよ。
論理的にやろう。ゆとりも、非ゆとりもな。

110 :デフォルトの名無しさん (ワッチョイ 7b8c-7zcB):2017/05/07(日) 21:20:48.44 ID:7pYr0TYR0
> 俺に説明能力がないというのなら、俺に説明を求めること自体がおかしいし、

書いてあんだろ?

「俺に説明能力がない」だ
説明が足りないじゃない。
説明する能力がないのだ。


感情を表現する能力がないやつに
感情を表現しろと言っても無理だろ?
計算する能力がないやつに計算しろと言っても無理だろ?
説明する能力がないやつに説明しろって言っても無理だろ?

111 :デフォルトの名無しさん (ワッチョイ 0fc8-Ogwz):2017/05/07(日) 21:34:41.49 ID:nVVEnA7X0
つまり結局こうだろ

>>109
日本語でおk

112 :デフォルトの名無しさん (ワッチョイ 7b8c-7zcB):2017/05/07(日) 21:46:16.89 ID:7pYr0TYR0
要するに「無能」が正しいと認めているわけだから、
「無能」に聞いても、能力がないやつには答えられないということ

113 :(スフッ Sd52-gZQE):2017/05/08(月) 06:06:52.81 ID:FkyLZnezd
>>112
違う違う。
無能だからこそ、説明を求められるんだ、と。
能力が無いならば、最初から説明しようとすらするはずが無いんだよ。
全くできない事をしようとする事はあり得ないんだし。
空が飛べないのに空を飛んで見せるのが、全くできない事をするって言うことだよ。

相手の言葉をうまく摘んで「無い」の定義を適当に用意してはいかん。ただの逃避だよ。
それこそ自分が揶揄してるやつ。
吐いた唾は飲もう。

114 :デフォルトの名無しさん (ワッチョイ 3e92-DCsn):2017/05/08(月) 09:35:49.25 ID:5zWKRhzL0
無能なほど意味不明な説明をしたがる

115 :デフォルトの名無しさん (フリッテル MM4e-UAmY):2017/05/08(月) 11:29:12.00 ID:tZFlTACxM
自らの正当性を主張する人が自己完結していないわけがなので、ID:nVVEnA7X0も俺も自己完結している点では同じ
見解の相違で衝突した場合、お互いに根拠を出しながら意見を出すのが普通
相手の論理を崩すには「相手が出した根拠が間違っている証拠」をだしたり、「根拠の解釈が間違っている論理的矛盾」をだしたり、と論理的に話をする

ところが、ID:nVVEnA7X0 は「いや多分あの書き方だと(>>75)」「そうとしか取れない(>>88)」と恣意的な感想を述べるばかりで根拠も論理展開も何もなければ、相手の論理的矛盾に言及するわけでもない
根拠や意見を掲示するのは>>80だけ
説明出来ないというが、「そうとしか取れない」理由を具体化すれば説明可能なはず
具体的な何をすれば良いかは>>84で補足要求してくれているのに無反応
この状況で説明能力がないといわれるのは仕方がないし、何も反論出来ないのなら説明能力がないと認めているも同義だと思うがね

116 :デフォルトの名無しさん (スププ Sd52-Cmji):2017/05/08(月) 11:29:40.46 ID:NT22crifd
人間なんてみんな無能だよ
協力し合わないとなにも為せないんだよ
そのことを忘れちゃだめ

117 :デフォルトの名無しさん (ワッチョイ b3f5-BeWO):2017/05/08(月) 13:25:26.02 ID:Bf5KwLeX0
とりあえずスレ違いだからツイッターあたりでバトってもらっていいかな?

118 :デフォルトの名無しさん (ワッチョイ b3bc-7zcB):2017/05/08(月) 14:07:05.92 ID:IYxMOUu+0
一体何と闘ってるの?w

119 :デフォルトの名無しさん (ワッチョイ 7b8c-7zcB):2017/05/08(月) 21:44:07.20 ID:tJDemEgX0
そりゃレスした相手とじゃね?

120 :デフォルトの名無しさん (ワッチョイ c311-AQGr):2017/05/11(木) 22:25:00.55 ID:D3pDarkB0
window.fetchでshift-jisのデータをダウンロードしてresponse.text()で文字列にすると文字化けしてしまうのですがどのようにすれば文字化けしないようにできますか?

121 :デフォルトの名無しさん (フリッテル MMff-aLXf):2017/05/12(金) 08:25:26.77 ID:R/plUqDZM
>>120
サーバ側で正しい文字コード(Shift_JIS)を指定する
https://www.google.co.jp/search?q=htaccess+charset

122 :デフォルトの名無しさん (ワッチョイ c311-AQGr):2017/05/12(金) 08:36:44.00 ID:C/LqUOBj0
>>121
外部サーバーなので出来ないです(´;ω;`)

123 :デフォルトの名無しさん (ワッチョイ 2370-NgNF):2017/05/12(金) 09:15:45.68 ID:mYSraKh80
メッセージングの手段とかないの?
まあ例えばC#アプリとやり取りするときとか、最も汎用的な方法はローカルWebSocketだよ

124 :デフォルトの名無しさん (ワッチョイ cf75-yoyE):2017/05/12(金) 09:40:01.01 ID:lh1VWFPT0
2chも、shift-jisだから、JSで扱えない

でも、YQL(Yahoo Query Language)を通して取得したら、UTF-8になってる。
文字コードを推測して、変換しているのかね?

この板よりも、web制作管理板で質問した方がよいかも。
そっちの方が、人が多いから

125 :デフォルトの名無しさん (ワッチョイ 238c-O3YC):2017/05/12(金) 09:46:56.13 ID:+AK5iqTC0
> 2chも、shift-jisだから、JSで扱えない

そんなわけねーだろw
文字コードを変換すればいいだけ

126 :デフォルトの名無しさん (ワッチョイ 238c-O3YC):2017/05/12(金) 09:48:05.24 ID:+AK5iqTC0
もしくは適切にパラメータ与えれば
ブラウザが勝手にやってくれる

127 :124 (ワッチョイ cf75-yoyE):2017/05/12(金) 10:15:34.52 ID:lh1VWFPT0
iframe に読み込ませれば、ブラウザが自動変換するから、文字化けしないけど、
自分で、JSで、2chのHTMLを取得しようとすると、shift-jis のままじゃないの?

つまり、ブラウザを通せば、変換されるけど

128 :デフォルトの名無しさん (フリッテル MMff-aLXf):2017/05/12(金) 13:33:42.65 ID:R/plUqDZM
Fetch APIにはContent-Typeを上書きする機構はないのかな

>>122
外部サーバならクロスドメインを許可してる事になるという事?
それなら、そのサーバ管理者に相談してみては?

129 :デフォルトの名無しさん (フリッテル MMff-aLXf):2017/05/12(金) 13:46:56.99 ID:R/plUqDZM
http://echo.2ch.net/test/read.cgi/hp/1456242505/392
「移動を勧められたので、移動しました」と言い訳しそうだが、質問をクローズせずに並行質問する行為はマルチポストという
人が多いとノイズも多くなるので、俺はWeb制作板をお勧めしないな

130 :デフォルトの名無しさん (フリッテル MMff-aLXf):2017/05/12(金) 13:55:16.77 ID:R/plUqDZM
new Headers で XMLHttpRequest#overrideMimeType 相当の機能が実装できそうだが
https://sbfl.net/blog/2017/01/29/fetch-api/#i-3

131 :デフォルトの名無しさん (ガックシ 067f-AQGr):2017/05/12(金) 14:55:20.81 ID:5Al+NPqt6
>>130
リクエスト時のヘッダーにコンテンツタイプを指定するってことですよね?やったんですが出来ませんでした。

132 :デフォルトの名無しさん (ガックシ 067f-AQGr):2017/05/12(金) 14:56:27.27 ID:5Al+NPqt6
>>28
相手は2ちゃんのサーバーです

133 :デフォルトの名無しさん (ガックシ 067f-AQGr):2017/05/12(金) 15:00:29.58 ID:5Al+NPqt6
fetchにはオーバーライドマイムヘッダーはないというとこですか?
文字コードを変換することは出来ませんか?
実行環境はelectronのrenderer processです
出来ればnode.js特有のモジュールを使わない方法がいいですが...

134 :sage (ワッチョイ b3d1-Y6YN):2017/05/12(金) 22:45:38.02 ID:LHrmkeU40
setTimeoutとseIntervalって使い分けってどうやるんやるんですか?
なんか参考にするコード教えてください

135 :デフォルトの名無しさん (アウアウカー Sa67-n/2N):2017/05/12(金) 22:52:47.26 ID:QfK6Pl49a
そのまんま、一定間隔で実行を繰り返したいか一回だけ呼びたいかの違い

136 :デフォルトの名無しさん (ワッチョイ cf75-yoyE):2017/05/13(土) 02:16:56.42 ID:nrviLaTM0
>>132
2chは、文字コードを指定していないから、やっかい。
JSでは、UTF-8 と扱われて文字化けする

結局、jQueryから、YQL (Yahoo! Query Language)のサービスを使って、
2chのHTMLを取得できた。
YQLで、shift-jis からUTF-8へ、文字コードを自動変換しているのかな?

jQuery → YQL → 2ch

VBScriptについて必死に話し合うスレ
http://echo.2ch.net/test/read.cgi/tech/1416826139/924

137 :デフォルトの名無しさん (アウアウウー Sa87-W2zR):2017/05/13(土) 03:58:22.44 ID:c8FuYpqba
>>134
一定周期動作をさせるなら、処理完了後からIntervalを取るか、処理開始時からIntervalを取るか
例外でタイマーを止めるか、一定周期で例外を出力し続けても止めないか

138 :デフォルトの名無しさん (ワッチョイ cf75-yoyE):2017/05/13(土) 06:43:23.71 ID:nrviLaTM0
「settimeout setinterval 違い」で検索!

139 :デフォルトの名無しさん (ワッチョイ 433c-tBO/):2017/05/13(土) 10:44:28.39 ID:OFQbtHdZ0
HTMLのテキストボックスへ日本語を入力中に、
強制的に確定(Enterを押した場合と同じこと)
もしくは入力をキャンセルさせる(ESCを2回押したような処理)ことは可能ですか?

140 :デフォルトの名無しさん (エムゾネ FF9f-PEl/):2017/05/13(土) 11:20:23.82 ID:XNXAvzoIF
IMEイベントを上手く利用すれば可能

141 :デフォルトの名無しさん (ワッチョイ 8392-287W):2017/05/13(土) 11:42:20.94 ID:7pndE6Ym0
それができるなら、利用者の性癖を盗みとる事ができそうだな

142 :デフォルトの名無しさん (ワッチョイ 43c8-SU9n):2017/05/13(土) 20:35:36.55 ID:BFgjnkHK0
カンマ演算子を積極的に使っているコードを知らないか?
この際、他言語でも構わない。

三項演算子を使って宣言的(という言い方が正しいかは微妙だが)に記述すると、
var somevalue = (caseA)? valueA : (caseB)? valueB : valueC;
という形になってくるのだけど、
この際単純な式だけでは無理な時があって、カンマ演算子を使いたくなってくる。

とはいえCの世界ではほぼ完全に禁止に近くて、推奨とか積極使用とかは聞いたことがない。
おそらく何らかの問題をはらんでいるからだと思う。
元々Cは手続き的だし、限界までチューニングするので、相性も悪い。

そこで、わりと好き勝手やっているJavaScriptの世界なら誰かしら使っているかもしれんし、
ソースも見えて助かるので、どこか積極使用しているところとか知らないか?
推測だが、他の「宣言型」と言われる言語も
本当に宣言的に記述するのなら大量使用しているはず。
ソースが公開されていて、何をやっているか分かり、
相手の技量も分かる状況なら他言語でも構わないのでよろしく。
さらっと調べてはみたんだが、
そもそも使ってない言語の検索では要領を得ず、いいのが出てこない。

Scala使っているやつ居たよな?そっちではどうとか、あればよろしく。

143 :(スププ Sd9f-4rj3):2017/05/13(土) 20:52:18.30 ID:l2RlSRsKd
>>142
google closure compilerが割と積極的に,使ってくるよ。

問題と言えば、代入だったら実際に代入される値から遠いとか、そもそも分けて書けよとか、アトミックである保証がある場合とない場合があるとか、色々ある。

144 :デフォルトの名無しさん (ワッチョイ 43c8-SU9n):2017/05/13(土) 21:35:25.83 ID:BFgjnkHK0
つかClosureCompiler遣い居たのか。
それってコンパイル後のコードって読まないでしょ?
(なんで君が読んでいるのかは知らんが。
さすがにミニファイは読めないから信じるしかなくて、
通常ClosureCompilerもそれに近い扱いだと(勝手に)思っているが)

おそらく問題は「可読性」だけなんだと思っている。
だからコンパイラやトランスパイラが使うのは全く問題なくて、
逆に言えば、使うメリットがあるからコンパイラが使っているとも言える。

可読性の問題はおそらく「色々な書き方が出来ること」「読む方が不慣れなこと」に尽きる。
だから「コンマ演算子が多用されている『世界』」があれば、
彼等はなんとかしているのだとも思っている。だからそれを確認したい。
googleのコーディングルールでは、
C++もJavaScriptもカンマ演算子を明確には禁止にしていない。多分グレーゾーンだ。

> アトミックである保証がある場合とない場合があるとか
カンマ演算子でアトミックに出来るか?
というかいわゆるマルチスレッド環境で言う「アトミック」はJavaScriptにはないはずだが、
それ以前にシングルスレッドだからアトミックとか要らんわけだが。

145 :デフォルトの名無しさん (ワッチョイ 9321-n/2N):2017/05/13(土) 21:37:14.85 ID:qMDptb/r0
カンマ演算子みたいな副作用前提のものを宣言型プログラミングで積極的に使うなんてことあるかぁ?
ただ一文になってるってだけじゃん
普通は関数化して処理部分は関数内に隠蔽するでしょ

146 :デフォルトの名無しさん (ワッチョイ 43c8-SU9n):2017/05/13(土) 21:58:34.66 ID:BFgjnkHK0
いやその関数を2回呼びたくない時にどうするかだよ。

副作用無しの関数なら、先に呼んでしまって一時変数化するというのが通常の解法。
でも最初の分枝、142の例で言うとcaseAに当たった場合にこれは不要なら、
関数呼ぶだけ無駄でしょ。

関数に副作用がある場合は一時変数化も出来なくて、
if文でしこしこ書くことになる。

とはいえ関数型の場合は副作用無しにして何度でも呼んでしまえ、が正義なのかもね。

なお俺が使おうとしている状況は、、、と詳細に説明しようとしたが、
JavaScriptの場合は型無しなので、 || と && 上手く使ったら
カンマ演算子無しで書けそうな気もしてきたorz

147 :デフォルトの名無しさん (ワッチョイ 9321-n/2N):2017/05/13(土) 22:15:31.25 ID:qMDptb/r0
??
関数を2回呼ぶとか一時変数にしないといけないってのがよくわからん
必要ないと思うけど…まぁ本人が自己解決できそうならいいか

148 :デフォルトの名無しさん (ワッチョイ cf75-yoyE):2017/05/13(土) 22:23:27.64 ID:nrviLaTM0
どの言語でもそうだけど、

コロンで区切れば、独立した文だから、安全

カンマでは、独立した文にならないから、
副作用・評価順序などを勘違いしやすく、バグが多くなる。
だから、カンマは使わない方がよい

短絡評価も、後ろの式が実行されるかどうか、分かりにくいので、
使わない方がよいと言われる

149 :デフォルトの名無しさん (ワッチョイ 8392-287W):2017/05/13(土) 22:26:02.59 ID:7pndE6Ym0
とりあえず、文と式の区別がつくようになってから出直しなさい

150 :デフォルトの名無しさん (アウアウカー Sa67-n/2N):2017/05/13(土) 22:35:08.66 ID:aLhAg7Rda
プログラマーたるもの言語仕様に依存せず、型を強く意識し型に対してプログラミングしましょう

151 :デフォルトの名無しさん (ワッチョイ 43c8-SU9n):2017/05/13(土) 22:35:17.69 ID:BFgjnkHK0
>>147
あ、いや、やっぱ多分無理だ。こんな感じ。
(カンマ演算子は使ったこと無いから文法が怪しいが、多分これであってると思う)

var result = (sel==='ALL')? query_set(name, 'ALL') :
(var tgts = get_tgts(name), (tgts)? query_set(name, tgts) : obj[name]);

sel==='ALL'の時にはquery_setを呼び出す。
それ以外の時にはget_tgtsでリストを確認し、該当した場合はquery_setを呼び出す。
該当無しの場合は単にobjを名前で引く。

query_setは何度呼んでもいいが、
初めて呼ぶ場合には obj[name] に色々初期化した物を作成して登録する。
登録されている物はobj[name]で確認出来るし、
2回目以降(既にobj[name]が存在した場合)にはobj[name]が返される。
だから上記は、
sel==='ALL'の時は常にobj[name]を引き、無ければ登録してそれを返す、
それ以外の場合は、新規登録リストget_tgtsにあれば新規登録してそれを返す、
なければ既に登録されていればそれを返す、となる。
ここで get_tgtsは何度呼んでもいいから上記は

var result = (sel==='ALL')? query_set(name, 'ALL') :
(get_tgts(name))? query_set(name, get_tgts(name)) : obj[name];

とすることも可能だが、 get_tgts(name)は重くなる可能性があるので
必要な時にのみ一度引くようにしたい。
逆に obj[name]は1回引いて終わりだし、こちらも何度引いてもいいので、

var result = (sel==='ALL')? query_set(name, 'ALL') :
(obj[name])? obj[name] : (var tgts = get_tgts(name), (tgts)? query_set(name, tgts) : null);

とも出来る。

152 :デフォルトの名無しさん (ワッチョイ cf75-yoyE):2017/05/13(土) 22:35:19.85 ID:nrviLaTM0
これだと、fが1回呼ばれるのか、2回か、どちらか分からない
1 < f() && f() < 10

こう書けば、1回しか呼ばれない
a = f();
1 < a && a < 10

Pythonでは、こう書けるから、1回しか呼ばれない
1 < f() < 10

fがオブジェクト・関数などの場合、どういう副作用があるか分からない。
何かのリソースにアクセスして、その電荷を変えてしまうかもしれない

volatile というけど、読み取っただけでも、電荷が逆転するデバイスがあるから、
2回読み取ったら、正常に動かないとか

153 :デフォルトの名無しさん (ワッチョイ 43c8-SU9n):2017/05/13(土) 22:35:56.65 ID:BFgjnkHK0
諦めてif文でしこしこ書いてもいいのだが、tgtsなんて結局ここでしか使ってないし、
欲しいのはresultだけだから var result = の書き方で出来た方が見やすい。

ただ、関数型ならここをそのまま切り出して、

function somefunc(name){
ここはif文でしこしこ
return result;
}

で上位からは

var result = somefunc(name);

で隠蔽してよしとするのかな?
多分ここが噛み合ってないのだと思う。

154 :(スププ Sd9f-4rj3):2017/05/13(土) 22:38:11.42 ID:l2RlSRsKd
>>144
いや、カンマ演算子全体に対して言ったんだよ。
読む側が不慣れとかじゃなくて、どれくらいのメリットあるの?
メリットがあってもデメリットを下回れば、そりゃ無駄なんだし。

155 :デフォルトの名無しさん (ワッチョイ 43c8-SU9n):2017/05/13(土) 22:50:19.81 ID:BFgjnkHK0
>>154
ちょっと輻輳気味だが、

>>151内、
1. get_tgts(name)はユーザー作成リストを参照するので際限なく重くなる可能性があり、
可能であれば出来るだけ引きたくない。
2. ちなみに今はこの手の「重くなるかもしれないユーザー作成リスト」についてはキャッシュを作成し、
それを引いているから実は重くないのだが、キャッシュの管理が面倒なのも事実。
3. だから「重いけど我慢出来る範囲」ならキャッシュ無しで組むのもありか?とも思ったり。
その時に出来るだけ無駄のない動作をする為の記述が必要であり、それが今回。

つっても同様のケースは以前からあり、
カンマ演算子を三項演算子内で使用することについては、考えてはいたんだが。

実際、result を得る為だけに使う tgts とかは result = 式内に閉じこめた方が見やすいでしょ。
そして記述通りに動くのならそれが最速の記述ではあるし。
見やすくて速いんだからやらない理由はない。
ただしカンマ演算子については積極的に使っているのを見たことがないから、
多分何かしらかなり問題があって、、、だろうからそれを先に確認したくてね。

156 :デフォルトの名無しさん (ワッチョイ 9321-e8oa):2017/05/13(土) 22:57:27.66 ID:qMDptb/r0
>>151
こんな感じでどうでしょ
var result = sell ==='ALL'
? query_set(name,'ALL')
: ((tgts,name,obj) => tgts ? query_set(name,tgts) : obj )(get_tgts(name), name, obj[name]);

157 :デフォルトの名無しさん (ワッチョイ 43c8-SU9n):2017/05/13(土) 23:06:40.11 ID:BFgjnkHK0
>>148
> 短絡評価も、後ろの式が実行されるかどうか、分かりにくいので、
> 使わない方がよいと言われる
いやそれはCの世界では嘘だ。あっちは短絡評価ありきで組む。
そして俺はもちろんJavaScriptもそうしているし、
逆にwhile文とかは短絡評価無しだと組みにくいでしょ。
典型的パターンは以下。

var i = start;
while (i<arr.length && arr[i].prop!=xxx) i++;

関数型?で無理矢理組めば、

var i = arr.slice(start).findIndex(function(v){return v.prop==xxx;})+start;

なのか?しかし無駄が多いし余計に見にくいだろ。

158 :デフォルトの名無しさん (ワッチョイ 43c8-SU9n):2017/05/13(土) 23:17:11.98 ID:BFgjnkHK0
>>156
それが
> 普通は関数化して処理部分は関数内に隠蔽するでしょ (>>145)
なのか?

その書き方ではカンマ演算子を使わなくて済んでいる。
引数を一時変数に使うことにより回避している。
これは事実だが、余計に見にくくないか?(多分if文使って書いた方がマシ)
また、それって一般的か?俺はあんまり見ないが。

(もっとも、俺は配信されているもの、
つまりコンパイル後のコードしか見てないから、ES3準拠?とかの可能性はあり、
コンパイル以前のコードについては知らないんだが)

159 :デフォルトの名無しさん (ワッチョイ 9321-e8oa):2017/05/13(土) 23:23:24.73 ID:qMDptb/r0
「配列arrの中の、start番目以降の要素の中で、prop==xxxに当てはまる最初の要素のインデックス」を
求めるならこんな感じにそのまま書けばいいのよ
var i = arr.findIndex((v, idx) idx>=start && v.prop==xxx);

160 :デフォルトの名無しさん (ワッチョイ 43c8-SU9n):2017/05/13(土) 23:33:21.05 ID:BFgjnkHK0
>>159
ああそれはその通りだね。
(俺はあの書き方はそもそもしないから慣れてない)
ただ俺はそれだとstart以前も走査するのが気に入らないから、
やっぱりwhileで回すけど。

161 :デフォルトの名無しさん (ワッチョイ 838c-O3YC):2017/05/13(土) 23:36:49.07 ID:f5G7qLua0
>>157

var i = arr.slice(start).findIndex(function(v){return v.prop==xxx;})+start;

最近の書き方だとこうだろ?
var i = arr.slice(start).findIndex(v => v.prop == xxx)+start;

んで、lodash使えばこうなる。
var i = _.findIndex(arr, {prop: xxx}, start);

162 :デフォルトの名無しさん (ワッチョイ 838c-O3YC):2017/05/13(土) 23:38:27.63 ID:f5G7qLua0
>>157 >>160

> なのか?しかし無駄が多いし余計に見にくいだろ。
> (俺はあの書き方はそもそもしないから慣れてない)


コードの話をしようぜ?

俺は見にくいというのは、コードの話じゃなくて
お前の話になってる。

お前が見にくいっていうのなら、単にお前が未熟ってだけ。
コードの話をしている時に、人の話をしてはいけない

163 :デフォルトの名無しさん (ワッチョイ 838c-O3YC):2017/05/13(土) 23:41:00.33 ID:f5G7qLua0
>>159

こうだな

var i = arr.findIndex((v, idx) => idx >= start && v.prop == xxx);
var i = start; while (i<arr.length && arr[i].prop != xxx) i++;
var i = _.findIndex(arr, {prop: xxx}, start);

一行につなげて比較してみよう

164 :デフォルトの名無しさん (アウアウウー Sa87-aLXf):2017/05/13(土) 23:46:38.05 ID:Iih4R+8da
カンマ演算子の使いどころは、一つのStatementしか記述を許されてない箇所にある
(while文の条件式、アロー関数の省略記法、三項演算子など)
省略記法が大好きな人ほど好む傾向があるかも知れない

165 :デフォルトの名無しさん (ワッチョイ 9321-n/2N):2017/05/13(土) 23:48:01.73 ID:qMDptb/r0
>>158
いやまぁもちろんこんな無名関数をそのまま書いたりしないけどね
上と抽象度違っちゃってるし、いつもはちゃんと名付けするよ(面倒だから手抜きしましたごめんなさい)
「一般的か?」って言われたら、JavaScriptでは一般的ではないでしょう
だいたいみんなif文使うし、宣言型なんて見ない見ない
ただまぁこうやって引数にしちゃえばキャッシュ出来るよという参考までに
あとは自分で選べばいいさ

166 :デフォルトの名無しさん (ワッチョイ 43c8-SU9n):2017/05/13(土) 23:49:06.10 ID:BFgjnkHK0
>>161
sliceした方がいいかどうかは場合によるのだけど、
一般的にはsliceせずに回す>>159だと思うぞ。

それはおいといて、そもそも findIndexに開始地点を指示出来ないのが謎なんだが。
だからlodashが必要になるわけで。
とはいえlodashは普及しないよ。
確かに短く書けるけど直感的ではないし、わざわざ学ぶほどの価値もない。

とにかくその件については俺はwhileの一択だ。
速いし分かりやすいし。
君がそう思わないのも君の自由。
ただいずれにしても、おれはカンマ演算子について聞きたいのであって、
157以降は俺の興味以外だから降りるよ。

167 :デフォルトの名無しさん (ワッチョイ 43c8-SU9n):2017/05/13(土) 23:55:22.89 ID:BFgjnkHK0
>>165
> JavaScriptでは一般的ではないでしょう
ちなみにこれを他言語では一般的にやってるのか?それは何言語?
別に糾弾しようってわけではなくて、ちょっと見てみたい。

ちなみに抽象度については俺も思ったが、それ以前に、
1つのことをやる物を2つに分解して配置したくないので、
俺は「名前付き関数」にして呼ぶって事もしない。if文で書く。
ただしこれはCでは関数内関数が使えないからそういう文化なのであって、
関数内関数が使える言語なら別文化もありだとは思う。

168 :デフォルトの名無しさん (ワッチョイ 9321-e8oa):2017/05/13(土) 23:56:04.26 ID:qMDptb/r0
>>157
もちろん、それでいいと思うよ
そこら辺考えだすとそうするしかない
折衷案としてはこんな感じでwhileの部分を関数化する感じかな

var searchPropIdx = function(arr, tgt, start){
var j=0, len=arr.length;
while (j<len && arr[j].prop!=tgt) j++;
return j;
};
var i = searchPropIdx(arr,xxx,start);

これでも何してるかは関数名が教えてくれるから宣言的といえるのではないでしょうか

169 :デフォルトの名無しさん (ワッチョイ 838c-O3YC):2017/05/13(土) 23:56:59.84 ID:f5G7qLua0
>>166
> 分かりやすいし

だからコードの話をしている時に
自分の話をするなって

170 :デフォルトの名無しさん (ワッチョイ 838c-O3YC):2017/05/13(土) 23:59:09.17 ID:f5G7qLua0
>>168
自分で関数作るぐらいならlodashの方がいいな。
いきなりsearchPropIdxとか書かれても
コード読まないと何をしているのかわからない。

lodashのような有名ライブラリであれば
有名なライブラリを知っているならば使い方わかるし
たとえ知らなくても、誰かが解説してくれてれる

171 :デフォルトの名無しさん (ワッチョイ 9321-n/2N):2017/05/14(日) 00:02:48.77 ID:zJfJO46R0
>>170
lodashが使える環境ならもちろん使う
ただまぁ標準ライブラリではないから今回のケースでは考えませんでした

172 :デフォルトの名無しさん (ワッチョイ 43c8-SU9n):2017/05/14(日) 00:09:32.47 ID:Rp58SwPv0
>>168
まあ、俺も必要な場合はそのように関数化してくくり出すけどね。

メリットは抽象度が上げられて依存関係を切れる(隠蔽出来る)ことだが、
ここら辺は要するにオブジェクト指向のメリットであり、
そもそもオブジェクト指向は巨大なコードを何とかする手法だから、
ここでlodashを布教している奴が理解することはないというのは、
これまでさんざん見てきたとおり。

俺はlodashが使える環境でも使わないね。whileで書く。
ただここら辺は各人が好きなようにすればいいだけの話だね。

173 :デフォルトの名無しさん (ワッチョイ 838c-O3YC):2017/05/14(日) 00:18:55.77 ID:UzoQivKq0
>>172
自分のやり方を押し付けるな

俺はコードの話をしてるだけ

174 :デフォルトの名無しさん (ワッチョイ 9321-n/2N):2017/05/14(日) 00:45:18.37 ID:zJfJO46R0
>>167
「値は引数を関数に適用させて作るもの」ってのはラムダ計算の基本的な考え方だから、大抵の関数型言語ならそうじゃない?
そもそも例えばHaskellなんかは今回でいうget_tagを同一スコープ内で何回実行したところで、
引数が同じなら計算結果は最初のものを常に使い回すしね

別に好きに書けばいいんだよ
ただ最初に宣言的って言ってたのが何か勘違いしてそうで引っかかっただけで

175 :デフォルトの名無しさん (ワッチョイ 43c8-SU9n):2017/05/14(日) 01:10:19.27 ID:Rp58SwPv0
>>174
> ただ最初に宣言的って言ってたのが何か勘違いしてそうで引っかかっただけで
これについてはそちらの指摘通り、俺は勘違いしていると思う。
俺は関数型言語を使ってはいないからね。
これは、俺の用語に誤用がある可能性を考慮しつつ話をしてもらうしかない。

> そもそも例えばHaskellなんかは今回でいうget_tagを同一スコープ内で何回実行したところで、
> 引数が同じなら計算結果は最初のものを常に使い回すしね
Haskellってインミュータブルだったっけ?忘れたけど、
確かにインミュータブルだったらこれで終わりだね。
つべこべ言わずに何回も書いても関係ない事になる。
しかもHaskellの場合は遅延評価だから事前に書いても大してオーバーヘッドもない。
まあこの辺が便利なのかもね。

> 大抵の関数型言語ならそうじゃない?
そうか。了解した。

176 :デフォルトの名無しさん (ワッチョイ 43c8-SU9n):2017/05/14(日) 01:12:21.75 ID:Rp58SwPv0
すまん、

× インミュータブル
○ 再代入禁止

だね。

177 :デフォルトの名無しさん (ワッチョイ cf75-yoyE):2017/05/14(日) 02:45:59.49 ID:wDkNkjbA0
>>157
>> 短絡評価も、後ろの式が実行されるかどうか、分かりにくいので、
>> 使わない方がよいと言われる
> いやそれはCの世界では嘘だ。あっちは短絡評価ありきで組む

後ろの式に、副作用がある場合、バグ含みになるから、危険。
それで、Pythonでは、以下のように書けるようになってる
1 < f() < 10

MISRA-C 2004 のコーディング規則を参照

178 :デフォルトの名無しさん (ワッチョイ 2370-NgNF):2017/05/14(日) 05:32:19.86 ID:QAEk2mhn0
>>172
俺はお前の見方

179 :デフォルトの名無しさん (ワッチョイ cf75-yoyE):2017/05/14(日) 07:47:04.55 ID:wDkNkjbA0
<tr>
<td><%= name %></td>
<td><%= gender %></td>
<td><%= job %></td>
</tr>

lodash.js (underscore.js)には、template があるから、
jQueryですべての要素を作らなくても、HTMLファイルに値を埋め込むだけでよい

180 :デフォルトの名無しさん (ワッチョイ 43c8-SU9n):2017/05/14(日) 08:05:39.42 ID:Rp58SwPv0
>>177
つかMISRAを持ち出すのなら番号まで指定してくれ。
あれは膨大な数があるんだから。
つっても、見てもそうだとしか書いてないとは思うが。

> 1 < f() < 10
Pythonがそう書けるのはいいとは思うが、そもそもCプログラマで
> 1 < f() && f() < 10
をやる奴はいないんだよ。これは常識だから。
次に、関数型が「参照透過(キリッ」とかやっているのも
Cだと最初からほぼ参照透過なんだよ。
クロージャはないし、グローバルもほぼ使わないんだから。
(通常はポインタを与えないと非参照透過にならない。
ポインタについては明示的に見えるから、
クロージャのある言語のように「参照透過」を気にする必要がない)
だからそこら辺の文化は明らかに違う。

実際、whileループなんて短絡評価ありきでないと組めないし、
俺が出した例なんてマジで頻出だぞ。

で、それを「俺は配列の長さなんて管理したくない。
該当するインデックスが欲しいだけだ」と言うのなら、
コード例も既に出したように、それが明示的には見えないコードにすればいいだけだろ。
ただ俺はあれで効率が上がるとは思えないがね。

根本的に違うのは、
while (i<arr.length && arr[i].prop != xxx) i++;
はCに於いてはarrに対して副作用を持ち得ないんだよ。(通常はvolatileでないから)
ところがJavaScriptではゲッタやプロキシがあるし常用されるから、これだけでは言い切れない。
だからそもそも「副作用」に対する感覚が全然違うんだよ。

181 :デフォルトの名無しさん (ワッチョイ cf75-yoyE):2017/05/14(日) 08:55:23.90 ID:wDkNkjbA0
MISRA-C 2004 ルール12.4

論理演算子 && または || の右側のオペランドには、副作用があってはならない。
volatile もダメ

182 :デフォルトの名無しさん (ワッチョイ 43c8-SU9n):2017/05/14(日) 09:13:34.23 ID:Rp58SwPv0
>>181
それは

× 短絡評価が駄目
○ 短絡評価内で副作用が駄目

だよ。重ねていうが、以下認識は間違いだ。

> 短絡評価も、後ろの式が実行されるかどうか、分かりにくいので、
> 使わない方がよいと言われる (>>148)

結局の所、12.4も「短絡評価されるから」という大前提でしょ。
Cの世界はそうだよ。
短絡評価自体が駄目なんてのは、聞いたことがない。

183 :デフォルトの名無しさん (ワッチョイ 43c8-SU9n):2017/05/14(日) 11:13:06.81 ID:Rp58SwPv0
というか今更気づいたが、カンマ演算子ってほとんどの言語ではないんだな。
むしろある方が異端のようだ。

ある:C/C++, JavaScript, Perl
ない:Java(ただしfor文内のみ可), C#, Ruby, てか多分他全部

JavaScriptの場合は匿名関数をその場で定義して使っても構わないから、
文が書けないからカンマ演算子という時は大抵この方法でも回避出来る。
といっても余計に見にくくなるが。
例: (function(){ /*何かの動作*/ })()

184 :デフォルトの名無しさん (アウアウカー Sa67-n/2N):2017/05/14(日) 12:11:34.87 ID:pHcsRThma
普通にif-elseifで書けばいいのに、カンマ演算子にこだわりすぎて暴走しとるな

185 :デフォルトの名無しさん (ワッチョイ 13bc-O3YC):2017/05/14(日) 12:37:42.55 ID:j3QiJPk20
構文なんだから人間様解るように記述すればいいだけ
ただのオナニー

186 :デフォルトの名無しさん (ワッチョイ 838c-O3YC):2017/05/14(日) 12:43:51.10 ID:UzoQivKq0
関数型風に書けよw
カンマ演算子なんて関数型風でも
一旦変数に入れるだけの話だろ

187 :デフォルトの名無しさん (ワッチョイ 838c-O3YC):2017/05/14(日) 12:49:06.75 ID:UzoQivKq0
そういや短絡評価は殆どの言語にあるんだな。

188 :デフォルトの名無しさん (アウアウカー Sa67-n/2N):2017/05/14(日) 13:27:08.87 ID:pHcsRThma
そもそも関数型風のメリットは論理と計算の分離であって、どっちがいいとかじゃないし
三項演算子を使ってcaseAの場合aが返ってくるなら、そうでない場合は同等の型のbが返ってくるのが基本
三項演算子をネストさせるってことはそもそも論理と計算が分離されてない
それを気にしないなら別に好きにすればいいんだよ
見やすい見にくいみたいな主観に任せればいい

189 :デフォルトの名無しさん (ワッチョイ 838c-O3YC):2017/05/14(日) 13:30:55.25 ID:UzoQivKq0
関数型風にすればconstを使えるようになる。
変数に入れた値が変わらないから、コードを把握しやすくなるし
バグも減るのがメリット

190 :デフォルトの名無しさん (ワッチョイ 2370-NgNF):2017/05/14(日) 20:32:09.27 ID:QAEk2mhn0
全部プロトタイプベースで書けばいいと言うのと同じくらい無意味な綺麗事
つうかconstは長いし普通の人にとっては読みにくい
意地っ張りの価値観の押しつけをする気が無いのなら
手元では好きに書いていいが挙げるときは置換くらいしてくれ
それが最低限のマナー

191 :デフォルトの名無しさん (ワッチョイ 238c-O3YC):2017/05/14(日) 20:57:23.20 ID:pZ8yqHc90
> つうかconstは長いし普通の人にとっては読みにくい

英語読めない人?

192 :デフォルトの名無しさん (アウアウカー Sa67-n/2N):2017/05/14(日) 21:01:57.87 ID:pHcsRThma
新しいものが一般的でないのなんて当たり前なんだよなぁ
いかにそこから普及させれるかだ
先人の叡智を無駄にしてはいけない

193 :デフォルトの名無しさん (ワッチョイ 8392-+8ye):2017/05/14(日) 21:11:34.04 ID:HLo7v2s80
> つうかconstは長いし普通の人にとっては読みにくい

constが長かったらdocument.body.innerHTMLとかもはや解読不能だろ

194 :デフォルトの名無しさん (ワッチョイ 13f5-oVa1):2017/05/14(日) 22:56:24.87 ID:LykvO83v0
むしろconstは多用したほうが保守性は上がるでしょ。今時var宣言使っちゃだめよ

195 :デフォルトの名無しさん (ワッチョイ 3317-gidy):2017/05/15(月) 07:30:07.09 ID:vbGagq9z0
constでキレイにインデントできたら最高なんだけどなぁ

196 :デフォルトの名無しさん (ブーイモ MM87-xXC6):2017/05/15(月) 10:39:17.61 ID:ChsP7NlFM
仮にconstが消えてもletになるだけで
varにはならん

197 :デフォルトの名無しさん (エムゾネ FF9f-PEl/):2017/05/15(月) 11:43:14.43 ID:vXJw7fGsF
全部constにするんなら、宣言要らない関数型altJS使えばいいじゃん

198 :デフォルトの名無しさん (アウアウカー Sa67-n/2N):2017/05/15(月) 12:37:45.42 ID:Nyf5aX+Ca
自分で言語決めれる開発なんてほとんどないし

199 :デフォルトの名無しさん (ワッチョイ 8392-287W):2017/05/15(月) 14:42:16.22 ID:k1YI7zCW0
ES6なら末尾呼び出し最適化が働くのでforは再帰で書ける
なのてletは不用 constだけで良い インデントも揃う

200 :デフォルトの名無しさん (ワッチョイ 2370-NgNF):2017/05/15(月) 18:12:27.51 ID:5bRXjaUX0
>>198
いやいや、フルconstの自由があるならAltJSくらい余裕でしょ
つうかconstの実際価値があるっていうのじゃなくて
単にconst、constって書いて自己満足、安心「感」を得たいだけになってるでしょ

201 :デフォルトの名無しさん (ワッチョイ 8392-+8ye):2017/05/15(月) 18:39:27.33 ID:Z3hdp57V0
マ板っぽい話になってきたな

202 :デフォルトの名無しさん (ワッチョイ b3d1-Y6YN):2017/05/15(月) 23:41:39.28 ID:rGWruaOX0
ヤフー知恵袋のjavascriptマスターがドヤ顔で公開してるカレンダーのコード読むと、
グローバル変数だらけで非常に見辛いし、グローバル汚染されたコードだった
悪い例として参考になったな。
たまに、参考になる質問と回答が、知恵袋とか2chにあるが、
玉石混交だな、

203 :デフォルトの名無しさん (ワッチョイ b38c-O3YC):2017/05/16(火) 00:06:49.67 ID:ufkb+DTs0
どれのことかね? JavaScriptマイスターの俺が
修正してあげよう

204 :202 (ワッチョイ b3d1-Y6YN):2017/05/16(火) 00:25:50.14 ID:FdkA0PdW0
>>203
これです。
グローバル変数だらけで、グローバル汚染されているし、
クロージャ使って、モジュールにしろよって思ってしまいます。
非常に読みづらし、解読するのが骨が折れると思われます。
ttp://miwa850125.php.xdomain.jp/programming/content/00001.html

205 :デフォルトの名無しさん (ワッチョイ b38c-O3YC):2017/05/16(火) 00:40:25.65 ID:ufkb+DTs0
>>204
あぁ、うんゴミだね。これは修正の価値すらないや。
関数の定義だけ聞いて自分で実装したほうが早そうだ

206 :デフォルトの名無しさん (ワッチョイ b38c-O3YC):2017/05/16(火) 00:47:14.10 ID:ufkb+DTs0
× 関数の定義だけ聞いて
○ カレンダーの仕様だけ聞いて

207 :デフォルトの名無しさん (ワッチョイ 43c8-SU9n):2017/05/16(火) 07:16:46.00 ID:bc694O2E0
>>204
> グローバル変数だらけで、グローバル汚染されているし、
> クロージャ使って、モジュールにしろよって思ってしまいます。
まあこれも問題なんだけど、それ以上に構成が酷い。というか平べったすぎ。
こいつそもそもサブルーチンすら使ってなくね?

> 非常に読みづらし、解読するのが骨が折れると思われます。
ちなみにこれは違う。平べったいコードは読むのは面倒だが難しくはない。
ただしまともに読む気にならないが。見た瞬間ゴミだと分かるレベルだし。

俺も>>206に同意だな。
そしてみんなそうらしいぞ。まあそりゃそうだが。
http://miwa850125.php.xdomain.jp/notice/content/00012.html

ただ、素人が組んだ500行前後のコードってこうなりがちではあるんだがね。
(というか多分300-500行程度で組めるはず)

208 :デフォルトの名無しさん (ワッチョイ 13f5-oVa1):2017/05/16(火) 10:23:51.85 ID:jyI5CijS0
今時githubで管理してない時点でお察しだな。zipでダウンロードしてーとかしんどすぎる。

209 :202 (ワッチョイ b3d1-Y6YN):2017/05/16(火) 19:48:46.02 ID:FdkA0PdW0
ちなみに、このカレンダーの作者は
javascript歴17年の自称30〜39歳の女性です。
知恵袋で
「javascrit初心者相手にfor文もわからんのかww」
っておらついてます。

多分、プログラム書いて「動いたwww スゲー 自分は天才やんwww」
とかのレベルで止まってしまったと思われる。

勉強しないと、いつまでも初心者レベルから抜け出せいってことだせない教訓になった

210 :デフォルトの名無しさん (ワッチョイ 43c8-SU9n):2017/05/16(火) 20:45:52.90 ID:bc694O2E0
>>209
ついでに言っておくと、
初心者は「コードが読めないのは汚いからだ」と主張しがちだが、実際はそうじゃない。
初心者が技術的に至らないからというケースがほとんどだ。
とはいえ、実際に駄目なコードは散見されるし、初心者がこれらを区別するのは無理だ。
だからこういう場所で聞いてみるのは一つのやり方だとは思う。
そしておそらくこれが目的だろうからこういう回答になる。

実際に高度に組織化されたコードは、初心者には全く読めないと思う。
逆に、こういった平べったいコード、上から順に一通り動いて終わりですね、
みたいなコードの方が初心者にも読める。
そして「上達するのは『書く』時ではなくて『減らす』時だ」という主張をする奴もいて、
実際「書く」よりも「減らす」方が頭を使うのも事実なので、
君がこのコードに相応しい初心者で上達を望んでいる場合、
このコードを減らして同じ動作を得ること、つまりリファクタリングを薦める。
それをやれば、このコードのどこが駄目なのか具体的に分かるし、いい練習になる。
(はっきり言って全部駄目なんだけどさ)

グローバルが〜ってのは実は大した問題じゃない。
(function(){
})()
でくくってやればすぐ解決するだけの話でしょ。
初心者はそういう文法的なところにばかりこだわるから上達しない。
最も重要なのは構造/構成なんだよ。

211 :デフォルトの名無しさん (ワッチョイ 43c8-SU9n):2017/05/16(火) 20:46:28.78 ID:bc694O2E0
なお、
> 「javascrit初心者相手にfor文もわからんのかww」
> っておらついてます。
これについては初心者の方が悪い。
for文なんてどの言語でも基本中の基本だし、
そこら辺は最低限押さえてから質問しないと駄目だ。
初心者だからって何でも許されると思っているのはただの傲慢だ。死ねでいい。

> 勉強しないと、いつまでも初心者レベルから抜け出せいってことだせない教訓になった
これも違う。
というか多分、ソフトウェア産業は未だに「上達への王道」を開発出来ていない。
つまり、今現在の方法で「勉強」すれば上達するわけではないということ。

ここら辺は学校教育の物理や数学で
人類が数千年掛けて築き上げた叡智をわずか数年でインストールしてしまうのとは次元が違う。
ソフトウェアは高々100年程度の歴史しかないし、教育方法もよく分かってないんだよ。
だから繰り返すが、今現在溢れている本を仮に全部読んでみても、達人にはなれないよ。
関数型とか言っているのも、実はまだどうすべきか分かってない証拠でもあるしね。
数学や物理は、学校でやってるのが完全に王道だと確定してる。あれとは違うんだよ。
そして、いくら「勉強」しても、駄目な奴は駄目なまま。
ただそれをどうやって改善すればいいのか分かってないんだ。
だからセンター試験みたいな物を作ることが出来ない。
そしてその人が「勉強してない」って事にも(直接的には)ならない。
(実際は勉強してない確率が90%以上だし、
実際書くなり本読むなりすれば『大半の人は』自然と上達するのも事実だけどね)

212 :デフォルトの名無しさん (ワッチョイ 8392-+8ye):2017/05/16(火) 20:50:54.00 ID:28fcRnPx0
> ソフトウェア産業

プログラミングはナチュラルに趣味グラマーがハブられることが多くて
いっぱいかなしい

213 :デフォルトの名無しさん (ワッチョイ 2370-NgNF):2017/05/16(火) 22:27:17.83 ID:UlJ2aQ8H0
それは思い込み、実際は逆だよ
趣味でやってる人達は自由、好きにやればいいだけの優位者
職業としてやってる人達の方にハンデがあるんだから尊重してもらわないと困る

214 :デフォルトの名無しさん (ワッチョイ 43c8-SU9n):2017/05/16(火) 22:45:21.09 ID:bc694O2E0
>>212
前それ別スレで話題になっていたが、
個人的には「天然」の方が「養殖」よりも上質だと思っているよ。
ただ毎日毎日コードを眺めているのと、せいぜい月に2〜3日では場数が違うわけでさ。
とはいえ場数をこなせば上達するわけでもないというのは事実なのだが、
個人的には奇妙だとも思っている。
普通は場数をこなせば次第に上達するものではあるからね。

いずれにしても、「勉強しよう」と思うのは良いことだけど、
いわゆる「お勉強」で単純に上達するというものでもないんだ。まだ今は。


さてもう一度見直して気づいた。コードを書き慣れていない奴の特徴は、
・無駄な改行が多い
・空行が多い
これは多分共通だし、初心者でも見て分かるはず。

つかね、10,000行とかのソースだとただでさえスクロールしまくりなので、
1画面に出来るだけ沢山詰め込みたいという欲求が発生し、
空行とか無駄改行は全くやらなくなってくるんだよ。ウザイから。
これは割と共通の癖だと思う。
Pythonerが括弧を嫌うのも閉じ括弧だけの行がウザイからだし。
詰めて書いても今時色分けされるから見間違えることもないし。
(ただもちろん中には例外もいて、どんだけスクロールしても問題ないらしい奴もいる)

見た目、せいぜい50行程度しかまともに書けない奴が、
頑張って2,000行書きました、えっへん!みたいなコードだね。
ただ、これって誰しもが通る道だから、これ自体が悪いとは思わないけど。

なおコード自体は昔の定義の「コピペプログラマ」がこんな感じ。
実は結構いたりすると思うよ。

215 :デフォルトの名無しさん (ワッチョイ 43c8-SU9n):2017/05/16(火) 22:52:40.26 ID:bc694O2E0
なんつうかね、

長文に全く慣れてない奴ってこんな風に、いちいち改行したりするでしょ。

それって長文に慣れてるとものすごくウザイでしょ。

余計に読みにくいし。(多分斜め読み出来なくなるから)


だけどコードに慣れてない奴って、やけに改行や空行入れたがるんだよ。

それは、改行をウザイと思うほどコードを読んだことがないってこと。

つまり、初心者だって事だね。

216 :デフォルトの名無しさん (ワッチョイ 8392-+8ye):2017/05/16(火) 23:30:21.74 ID:28fcRnPx0
「初心者プログラマーにありがちなこと」ってスレタイでプログラマースレに立てるべき内容になってきてるぞ
すぐ「プログラマー」の話にズレていくのは職業プログラマーの悪い癖

217 :デフォルトの名無しさん (ワッチョイ 43c8-SU9n):2017/05/17(水) 00:00:46.55 ID:kS+euEi/0
まあその通りだが、あのコードから技術的にってのは無いからね。

ただ、一般的にあの規模のコードだと、割と平べったくなりがちなのも事実。
これ自体は不思議ではないんだよ。
ちょうど一つのクラスとして切り出すか?というサイズだから。
で、おそらくお互いが相手をヘボだと見なし、
無駄に争っていたのだろうというのも想像に難くない。

先に言ったように、あのコードをさらに大規模化する場合、
functionで囲ってクラスに変える。
そうするとグローバル→インスタンス変数になるわけで、これ自体は問題ない。
だから「グローバルが〜」ってのも初心者にありがちな間違った指摘で、
あの規模のコードならあれで良いんだよ。

結局、文法的なことしか見えない程度のくせに
コードの善し悪しなんて議論するからアレな事になる。
あのコードは不思議なコードではないんだ。
良いコードでもないし、上手いコードでもないけど。
でも誰しもが通る道だよ。

218 :デフォルトの名無しさん (ワッチョイ b3d1-Y6YN):2017/05/17(水) 00:11:36.09 ID:r9YOxAGU0
「技術的ってか、この辺はセンスの問題だな」ってさ、仕事しててもよく言われる

装置のログの解析とかもそうだけど
なんで1時間とかそこらでログの解析できんだ?
なんで、そんなにコーティング早いんだ?
センスって言われると、習得しずらいんだよな。

まるで職人技だよな

219 :デフォルトの名無しさん (ワッチョイ 9321-n/2N):2017/05/17(水) 00:43:36.95 ID:aIm9uZNt0
センス関係ない
「とりあえず動くコード」で満足するか、より良い品質にこだわるかの考え方の違いだ

220 :デフォルトの名無しさん (ワッチョイ 43c8-SU9n):2017/05/17(水) 00:45:04.71 ID:kS+euEi/0
>>218
> 仕事しててもよく言われる
つまりセンスが無い方の人なんですね乙

ただまあ「センス」って言っているのは教えようがないからだよ。
それは俺はまだ教育技術が未発達だからだと思っている。
数学とかのセンスって、
「ところでこれをどうやって思いつくんだ?」
であって、明らかに東大とかよりもはるか上のレベルでしょ。
今のプログラミングが要求している「センス」って、もっと断然低いところでしかない。
それでIDEやインテリセンスで効率が上がる(キリッとか間抜けなこといっているわけでさ。
「なるほど確かにこの構造にすれば恐ろしく簡単に実装出来るが、
ところでどうやってこれを思いついたんだ?」では全然無いよね。
フェルマーの最終定理(x^n+y^n=z^n)とか、問題の意味は分かるがどうしろと?だろ。
あれを「センス」と言うべきなんだよ本来は。

> なんで1時間とかそこらでログの解析できんだ?
当たりを付けているからだよ。
映画やアニメでハッカーがでてきたら「ほらビンゴだ!」ってよくやってるだろ。

> なんで、そんなにコーティング早いんだ?
コーディングに速さは必要ない。
最終的にデバッグ終了までの時間が勝負で、実際デバッグの方が遙かに時間かかるでしょ。

ただまあ、あのコードはいずれにしても不思議なコードではないから、
見た瞬間、ああ、このレベルですね、ってのは順当に分かるようになるはずだし、
そこまでの上達にはセンスは必要ないはずだから、
君が今やるべき事は、とにかく何でもいいから書くことだよ。

221 :デフォルトの名無しさん (ワッチョイ 43c8-SU9n):2017/05/17(水) 00:56:37.57 ID:kS+euEi/0
>>219
これはあるね。よく言われる「職人気質」って奴だよ。

プログラミングは自己完結して己の美学を目指せる奴しか上達しない。
これは一般には「職人気質」と言われる。
おそらく職人も同様にこの性格じゃないと上達しないため、
結果的に生き残っている職人はこのタイプが多くなるのだと思う。

だからそうじゃない奴は、向いてないから止めた方がいい。


あのコードは、まさに
> 「とりあえず動くコード」で満足する
タイプが書くコードなんだよ。だから悪いと言うほど悪いコードでもない。
なんつーか、手堅く動くだろうが、動くだけのコードですねってとこ。
しかしカレンダーなんて今更仕様変更はないし、保守性なんてどうでもいい。
自分で書き直すのもかったるいし、俺的には渡されたら使うかは迷うところだね。

222 :デフォルトの名無しさん (ワッチョイ 43c8-SU9n):2017/05/17(水) 01:17:15.04 ID:kS+euEi/0
ところでMapだが、

> for (var [key, value] of myMap.entries()) {
> console.log(key + " = " + value);
> }
> https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Map
これって分割代入で、chrome49〜ですってオチあり?
Mapはchrome38からになっているし、entries()もそうなのだけど。

223 :デフォルトの名無しさん (ワッチョイ b38c-O3YC):2017/05/17(水) 01:34:13.73 ID:y0sg8W2t0
>>222
babelを使えば古いブラウザでも動くのではないか?

224 :デフォルトの名無しさん (ワッチョイ 43c8-SU9n):2017/05/17(水) 01:44:59.69 ID:kS+euEi/0
いや無駄に対応バージョン上げたくないんだ。
やっぱそうなんだよな?
今回はkeys()で1箇所書き直せばいいだけだからそうするよ。サンクス。

225 :デフォルトの名無しさん (ワッチョイ 2370-NgNF):2017/05/17(水) 07:29:14.42 ID:L5+4x8hM0
Chromeのバージョンを気にする、しかも10も前とか普通じゃないな

226 :デフォルトの名無しさん (ワッチョイ f7d1-kLyQ):2017/05/18(木) 23:57:01.79 ID:QkFLciDt0
オレがいままで作ったjavascriptのアプリケーション

・画像うuplodar (2012年から公開してる今年で5年目)
→javascript,html5,mysql,phpで作成

・単語帳(非公開、TOECI勉強用に使った自分専用の単語帳)
→複数のtxtに書いたjsonデータの文字列を読みんで表にして表示する

今のとこ、とりあえず動くレベル→自分で読みづらいとこと修正と改善
を延々とやってる。
ってか、仕事と英語の勉強が忙しいから、javascript勉強してる暇があまりない

購入して積ん読になってる、日経ソフトウェアのjavascript特集を読みたいがいまいち暇がない

227 :デフォルトの名無しさん (ワッチョイ 0ff5-sZ5x):2017/05/19(金) 00:58:06.06 ID:+ix37Tej0
むしろchromeの古いバージョン使う方法ってあるの?ネットが使えない環境とか?

228 :デフォルトの名無しさん (ワッチョイ cb7b-kvD5):2017/05/19(金) 21:19:25.76 ID:PWVc802d0
ReduxはReact専用じゃないというけど、React以外で使いやすいのはどのフレームワークかな?

229 :デフォルトの名無しさん (ワンミングク MM3a-lo86):2017/05/20(土) 00:04:22.78 ID:T9Vl1Go7M
>>227
サブの動作確認用スマホとか古いままだけどなぁ

230 :デフォルトの名無しさん (ワッチョイ fff5-sZ5x):2017/05/20(土) 04:04:11.15 ID:Q+8+XcCz0
>>228
別になんでも使えるんじゃないか。
storeをsubscribeするだけなんだし。

231 :デフォルトの名無しさん (ワッチョイ cb7b-kvD5):2017/05/20(土) 08:41:00.64 ID:ZTnw5ZtI0
その「subscribeするだけ」の具体的なやりかたを知らないんで、そういうライブラリや資料が
そろっていたりして使いやすいものがあるか探してる。
Reactならreact-redux入れてその通りにやればよかったんだけど。
>>230は何のフレームワークを使ってどんなふうにやったことがあるの?

232 :デフォルトの名無しさん (ワッチョイ 9ec8-icqO):2017/05/20(土) 11:00:51.79 ID:Vxiesmpy0
phinaとかpixiとかenchantとか色々あるけど結局ゲーム製作用ライブラリとしてはどれがいいの?

233 :デフォルトの名無しさん (スププ Sdea-OyqH):2017/05/20(土) 11:43:08.14 ID:2QFlCqZ1d
それらはゲームにも使えるというだけの汎用描画フレームワークだから
本当に描画部分から音周りまで完璧に揃っているフレームワークは
例えばノベル専用みたいな汎用性の無いものしかない。
ガチで作りたいならやっぱりUnity等のゲームエンジンからの書き出ししかない。

234 :デフォルトの名無しさん (ワッチョイ fff5-sZ5x):2017/05/20(土) 17:11:04.67 ID:Q+8+XcCz0
>>231
redux はコード量が少ないから直接見ることをすすめる。
subscribeはまんまそのままのメソッド生えてる。

235 :デフォルトの名無しさん (ワッチョイ fff5-sZ5x):2017/05/20(土) 17:16:56.10 ID:Q+8+XcCz0
>>231
ごめんreactからしか使ったことはないけどchrome-extension作るのに使ってて、react以外からdispatch投げたり、イベント処理する必要があるからよく使う。
なんつーかただのjsonの塊だよね結局。typescriptから使ってるから問題ないけど、素のjsから使うとなるとあの巨大なjsonの塊をよくいじれるよなーと思う。

236 :デフォルトの名無しさん (ワッチョイ cb7b-kvD5):2017/05/20(土) 22:18:55.23 ID:ZTnw5ZtI0
なるほど、ありがとう

237 :デフォルトの名無しさん (ワッチョイ 9f21-UzNQ):2017/05/21(日) 16:49:46.53 ID:BQHBWsZS0
要素数が1か1以上かわからない(0ではない)配列をsortするとき、特に要素数を
数えて条件分岐しなくてもそのままsort関数適用させてもいいですかね?
何かパフォーマンス的に問題出たりしますか?

238 :デフォルトの名無しさん (ワッチョイ ca88-aHqd):2017/05/21(日) 18:45:14.37 ID:Qcnnq4EA0
elmはいいぞー

239 :デフォルトの名無しさん (ワッチョイ 4ec8-KLhJ):2017/05/21(日) 21:42:26.20 ID:feqlkx7U0
>>237
問題は出ますん

240 :デフォルトの名無しさん (ワッチョイ 678c-bwHs):2017/05/21(日) 22:26:43.45 ID:8o9mWviY0
>>237
要素数が0であっても配列であれば何の問題もない
パフォーマンスは問題が出てから解決すればいい

大きな影響ないことなのに、ブラウザごとに挙動が違う問題を
いちいち考えるのは時間の無駄

241 :デフォルトの名無しさん (ワンミングク MM3a-lo86):2017/05/21(日) 22:55:20.58 ID:fcCJNl/UM
そのレベルで効率化ガーは本当に間抜けな話だとおもうよ
何も変わらんさ考えるだけ時間の無駄でただのオナニー行為

最近流行のHTML5でのパーティクル表現なんて毎秒数百オブジェクト新たに生成して一定時間生存させ消していく
その管理の配列がどんどんインデックス追加でオブジェクトがあるかないかのif判定を毎秒数万、数十万とかやってるプログラムとかよく見る
馬鹿げた設計だとおもってもそれで普通に動いてるから笑える
今はそんな時代だよ

242 :デフォルトの名無しさん (ワッチョイ 9f21-UzNQ):2017/05/21(日) 23:52:11.78 ID:BQHBWsZS0
皆さんありがとうございます
上司が割と効率にうるさいので怒られるのが嫌で気になった次第です
問題ないみたいなのでこのままいきます

243 :デフォルトの名無しさん (ワンミングク MM3a-lo86):2017/05/22(月) 00:04:03.94 ID:FRIGOkgNM
>>242
効率化というより、ソースのわかりやすさ、管理のしやすさを考えればいいよ
判定文を入れることで皆がわかりやすくなるなら入れれば良いし
今度どう使われるかはっきりわからないモジュールならエラー処理をしっかりいれるとか

244 :(スププ Sdea-qU+J):2017/05/22(月) 00:15:50.44 ID:KxRThp41d
これで効率云々言われるなら、保守の効率引き合いに出して揉めたほうが良いと思う。

245 :デフォルトの名無しさん (ワッチョイ 0bc8-kvD5):2017/05/22(月) 01:16:10.94 ID:jp4wTISD0
つかその上司もここで怒る事はないだろ。
新人なりに思いついたから聞いてみただけだろ。

てか上司に聞けよ。

246 :デフォルトの名無しさん (スププ Sdea-OyqH):2017/05/22(月) 11:36:54.13 ID:0kkPVdOqd
そこまで気にすることはないけど、理由がここまで言われてるのとは違う
実装見れば分かるけどsort関数は要素数などによってアルゴリズムが使い分けられてて、汎用的なソート関数としてはこれ以上ないくらい最適化されている。
エンジン側の主張は、それ以上を求めるなら専門的なアルゴリズムのものを自作しろとのこと。

247 :デフォルトの名無しさん (ワッチョイ 0bc8-kvD5):2017/05/22(月) 20:24:53.55 ID:jp4wTISD0
ちげーだろ。つか>>246はもうちょっと状況を把握しろ。

よく上司に「無駄なことをするな」と言われる新人がいて、
そいつがふと「要素数1のArrayに対してsortは無駄じゃね?」と考えた。
だからここで聞いてみた。結果はご覧の通り。

新人だから何が無駄で何が無駄ではないのか分かってないんだよ。
それは仕方ない。だから新人なりに考えてみた、これは正しい。

しかしこのレベルの話は上司に聞いたほうがいい。
俺たちに聞いて回答が食い違ったとき、誰が正しいか新人君には分からないだろ?
現在のところキチガイは現れておらず、常識的な回答が揃っているが、これは偶々。
ここにはマジで頭おかしい奴はいる。
最低限そいつらを見分ける能力がないと、ここは使えない。いわゆる嘘を嘘と(ry

だったらとりあえず一応は信頼できる(ことになっている)上司に聞いたほうがいい。
そして、どうしてもその上司の判定に納得できなければ、ここで出来るだけ詳しく晒せ。
そしたら俺たちがどっちの頭がおかしいか判定してやるから。

なお質問は、「arr.sort() は if (arr.length>1) arr.sort() にすべきか?」だろ。
ここには日本語が不自由な奴もいる。
誤解無く伝えたいのなら、コードで書くのも手だよ。

248 :デフォルトの名無しさん (ワッチョイ 4a8c-bwHs):2017/05/22(月) 21:36:29.80 ID:6t8os15O0
> よく上司に「無駄なことをするな」と言われる新人がいて、

普通は無駄な作業って意味だよ。
人的コスト=時間がかからない方法を選択しろといういこと

問題になってない部分のパフォーマンスの良し悪しに
悩むっていうのも無駄な作業の一つ

ただ新人の場合は、特に勉強しないと無駄な作業が減らせない。
無駄な作業を減らすにも、時間がかかる。

だから上級者によって「無駄なことをしないコード」が
必ずしも時間がからない方法とは限らない。

どれだけ勉強すればいいかは本人次第なのだから、他人にそれがわかるわけがない。
だからこういう場では上級者(質問に答える人)にとって無駄がないコードを提示するしかない

質問に答える人は、もし前提となる知識が特殊なものや大きければ、○○を知っているならば、
この方法を使うのが一番無駄がない(=時間がかからない)と答えるのが良いだろう。

249 :デフォルトの名無しさん (ワッチョイ 0bc8-kvD5):2017/05/22(月) 22:57:40.88 ID:jp4wTISD0
>>248
> と答えるのが良いだろう
じゃあまずお前がやれよキチガイ

250 :デフォルトの名無しさん (ワッチョイ 9f92-cm4/):2017/05/22(月) 23:11:11.24 ID:XhRKlUOx0
javascriptスレかと思ったら社畜プログラマーが新人指導についてご高説を垂れていた

251 :デフォルトの名無しさん (ワッチョイ 4ec8-KLhJ):2017/05/22(月) 23:29:33.71 ID:vGCFGEpe0
おまいらそんなすぐ煽るなや

252 :デフォルトの名無しさん (ワンミングク MM3a-lo86):2017/05/22(月) 23:30:12.68 ID:FRIGOkgNM
>>248
だからさー、配列要素1の時にif文かますのとそのままソート掛けるのとどっちが効率いいかおまえにわかるのか?ん?
環境の実装しだいだろそんなもん
どちらにせよ何も気にするレベルじゃないという回答以外に何があるっているんだ?ん?

253 :デフォルトの名無しさん (ワッチョイ 9f21-UzNQ):2017/05/22(月) 23:37:56.72 ID:GGalZ9mO0
変なこと聞いてスレを荒れたような結果にしてしまってすみません

254 :デフォルトの名無しさん (ワッチョイ 4a8c-bwHs):2017/05/22(月) 23:40:11.09 ID:6t8os15O0
>>249
> じゃあまずお前がやれよキチガイ

>>240ですでに答えているが?

255 :デフォルトの名無しさん (ワッチョイ 9f92-cm4/):2017/05/22(月) 23:40:15.75 ID:XhRKlUOx0
>>253
プログラミングで計算効率について考えるのは全然変なことじゃないぞ
むしろ基本

256 :デフォルトの名無しさん (ワッチョイ 4a8c-bwHs):2017/05/22(月) 23:41:49.08 ID:6t8os15O0
>>252
速度については誤差以上の差は出ない。

だから開発効率(作業コストが低い方)を選ぶべき
つまり読むべきコードが少ない方がいい

257 :デフォルトの名無しさん (ワッチョイ 9f92-cm4/):2017/05/22(月) 23:49:15.91 ID:XhRKlUOx0
「パフォーマンスの問題」について質問したのにいつの間にかに「作業コスト」の問題に変わっている

これが動的型付けって奴だな

258 :デフォルトの名無しさん (ワッチョイ cb92-a1Gw):2017/05/22(月) 23:55:39.55 ID:CEFnqLB20
Array.prototype.sortに判定させた方が当然に速い

259 :デフォルトの名無しさん (ワッチョイ 0bc8-kvD5):2017/05/23(火) 00:00:19.33 ID:ac/v7j2N0
>>253
いや君は何も悪くない。(むしろ俺が仕掛けた)
ただ多分、上司に聞いたほうが効率はいい。

事実としてここには変な奴がいる。しかも一人じゃない。
というか>>239-243で回答としては完全に正解で、それ以上どうこうってのはない。
しかしなぜかケチがつくだろ。

260 :デフォルトの名無しさん (ワッチョイ 9f92-cm4/):2017/05/23(火) 00:05:49.69 ID:OxXI/az90
>>261-1000
ここで聞くより上司に聞いたほうが効率がいいよ



スレッド糸冬了

261 :デフォルトの名無しさん (アウアウカー Sacb-UzNQ):2017/05/23(火) 15:57:30.36 ID:i5pqu4ALa
>>259
ありがとうございます
そうですね…業務上のコードは自分なりに調べてからちゃんと上司に相談します

あとこれは仕事は全然関係なくてちょっと気になっただけなので恐縮ですが、JavaScriptには擬似的な
プライベート変数を持たせるためにクロージャという仕組みがあって、関数内で関数を宣言できると聞きました
その場合
function hoge(){
function piyo(){ }
}

function hoge(){
var piyo = function(){};
}
という二種類の宣言方法があって、「前者は呼び出し時に巻き上げされて後者はされない」というところまでは
わかったのですが、それだけだと後者にするメリットが無いような気がするのですが、何か他に
抑えておくべきポイントはありますか?
普通は皆さんどちらを使われてるんでしょう

262 :デフォルトの名無しさん (アウアウウー Sa2f-rMcO):2017/05/23(火) 19:13:13.15 ID:3X8zsS83a
>>261
正解は人それぞれだが、関数定義後に関数呼び出しをするのは一般的で、そう決める事で厳格なコードになる。

前者のコードの場合、関数定義より手前で関数呼び出し出来るが、後者は出来ない。
従って、ある関数定義を見つけたい場合、関数呼び出しより前に存在する事が確約されており、関数呼び出しコードの後ろを読む必要はない。
前者はコーディング規約で制限することは出来ても、後述で関数定義されることを止めることが出来ない。

最も、そのあたりを気にする人は let, const を使用する方が無難ではあるが。
IE10- がMicrosoftのサポート対象外となった今では const, let の実用性は増している。
http://kangax.github.io/compat-table/es6/

263 :デフォルトの名無しさん (アウアウカー Sacb-UzNQ):2017/05/23(火) 19:27:23.00 ID:OSHuKcjsa
>>262
なるほど、ありがとうございます
原則後者で書くことにします

264 :デフォルトの名無しさん (エムゾネ FFbf-2jdj):2017/05/25(木) 02:28:11.58 ID:XwREWC52F
>>247
だからそれも含めて気にする必要ないといったんだよ

265 :デフォルトの名無しさん (ワッチョイ 9f8c-yauO):2017/05/25(木) 02:46:59.65 ID:kwmzBMx/0
>>262
> 正解は人それぞれだが、関数定義後に関数呼び出しをするのは一般的で、そう決める事で厳格なコードになる。

php、perlでは関数定義より手前で関数呼び出しができますよね?
関数定義後に関数呼出しするのが一般的という根拠はなんでしょうか?

266 :デフォルトの名無しさん (ワンミングク MMbf-C8dY):2017/05/25(木) 04:37:45.02 ID:EJLYJcDnM
この痛いおっさんのせいで毎回荒れるな

267 :デフォルトの名無しさん (ワッチョイ 4b92-nHMD):2017/05/25(木) 07:07:39.46 ID:sTAredU30
JavaScriptを勉強しようとしてる
目標として言語仕様の習得段階を分けようとしてるんだけど良い切り分け段階ないかな??
C++なら変数の型、ポインタ、クラスの基本的な扱い方みたいな

htmlの基本的な扱い方と、JavaScriptの連動がはじめにくるのかなって思うけど次の段階はなにだろうか

268 :デフォルトの名無しさん (ワッチョイ 9f8c-yauO):2017/05/25(木) 09:45:27.07 ID:kwmzBMx/0
もともと関数定義後に関数呼び出しをするというのは
C言語ではプロトタイプ宣言と言われ、
正確に言うならばこっちは関数呼び出しができるか?ではなく
コンパイルができるか?という話なので少し意味が違うが、
まあ、ともかく特殊な方法が必要だった。

それが面倒だってことで改良したJavaでは、
関数定義の順番とは無関係に関数呼び出しが
コンパイルできるようになった。

コンパイル言語とスクリプト言語の違いがあるから全く同じ考え方ではないが、
定義の順番とは無関係に呼び出せる設計に進化してきている。

巻き上げという仕様だって本来はないほうが実装は簡単なんだよ。
だけど定義の順番とは無関係に呼び出せるようにあえてそういう機能を搭載している

だから関数定義後に関数呼び出しをするのは一般的といわれると違和感がある

269 :デフォルトの名無しさん (ワッチョイ 9f8c-yauO):2017/05/25(木) 09:55:31.20 ID:kwmzBMx/0
それから変数の巻き上げと関数の巻き上げは意味が違う。

変数の巻き上げは、その変数が使えたとしても
無効な値(undefined)が入っているから通常は役に立たないが

関数の巻き上げ
foo();
function foo() {}
↑こういうのは、正常に動作する。

"正しく動かない" からメリットがない。だから変数の巻き上げは危険
という話なので、 そもそもの前提が違って
"正しく動く" ならば、なんのデメリットもないんだよ。

270 :デフォルトの名無しさん (ワッチョイ 9f8c-yauO):2017/05/25(木) 10:03:02.23 ID:kwmzBMx/0
>>262
> 最も、そのあたりを気にする人は let, const を使用する方が無難ではあるが。
本末転倒。

var piyo = function(){}; なんて書き方を使うから、
piyoが書き換えられたらどうする?
constにした方がいいんじゃね?なんて話が出てくる

function piyo(){ } であれば piyo に別の関数を代入することはない。
もちろん代入できるが誰もこんなコード↓は書かないだろ?

function piyo() {}
piyo = function() {}

そしてこんなコードを書いたら関数に代入すんなと
ESLintでちゃんと警告出してくれる。

271 :デフォルトの名無しさん (ワッチョイ fb92-/6qz):2017/05/25(木) 10:30:51.91 ID:DNIeToc+0
テキストファイルは行ごとに順番に読み込んでいくからな
順番があったほうが分かりやすい

プログラミングのコードは、特にスクリプト言語のコードは
プログラムを動かすための命令であると同時に
それ自体がプログラムで分析される対象となりうるテキストファイルでもあるのだ

272 :デフォルトの名無しさん (ワッチョイ 9f8c-yauO):2017/05/25(木) 10:46:20.22 ID:kwmzBMx/0
関数の呼び出しは順番に実行しないし、
順番に実行すると言うならばなおのこと
このように書いたほうがわかりやすい

step1();
step2();

function step1() {
 step1_1();
 step1_2();
}

function step1_1() {
 ・・・
}

function step1_2() {
 ・・・
}

function step2(); {
 ・・・
}

273 :デフォルトの名無しさん (ワッチョイ 8b92-6MgW):2017/05/25(木) 15:31:10.05 ID:0WgUeo5I0
ところで「巻き上げ」って呼び方流行ってんの?
どこのバカが言い出したんだ?

274 :デフォルトの名無しさん (JP 0H7f-/6qz):2017/05/25(木) 15:42:09.80 ID:yXnULsJhH
>>273
てか、hoistingを巻き上げ以外になんと呼んでるんだ?

275 :デフォルトの名無しさん (アウアウカー Sa8f-loAd):2017/05/25(木) 16:07:28.36 ID:N9M4fQaRa
ほいすてぃんぐ

276 :デフォルトの名無しさん (JP 0H7f-/6qz):2017/05/25(木) 16:11:03.90 ID:yXnULsJhH
>>275
うーん、google調べでは巻き上げが優勢なんだが

javascript ホイスティング 約 1,370 件 (0.51 秒)
javascript 巻き上げ 約 180,000 件 (0.41 秒)

277 :デフォルトの名無しさん (ワッチョイ 8b92-6MgW):2017/05/25(木) 20:03:50.62 ID:0WgUeo5I0
ああ、モジラの日本語文書で使ってるのか
なんか感覚的にスゲー気持ち悪い
だいぶ前にもこのページは見た事あるはずだけど その時から使ってたのかな

278 :デフォルトの名無しさん (アウアウカー Sa8f-loAd):2017/05/25(木) 20:13:19.19 ID:qvTBr+rPa
事後宣言←

279 :デフォルトの名無しさん (ワッチョイ 5b75-vI0S):2017/05/25(木) 22:22:17.00 ID:Z3vgZ/N70
jQueryでPHPにajaxでデータを送りたいのですが

まず、これはきちんとファイルが送れて、PHP側でも$_FILESでデータを受け取れます。

var fd = new FormData();
fd.append("file", uploadfile);
var postData = {
type : "POST",
async : true,
dataType : "text",
data : fd,
processData : false,
contentType : false
};


しかし、下のコードの場合は$_POSTが空になります。

var myData = {"txt":str, "formdata":fd};
var postData = {
type : "POST",
async : true,
dataType : "text",
data : myData,
processData : false,
contentType : false
};

dataにフォームデータではなく配列を指定した場合
PHP側で受け取りデータが空になるのは何故なのでしょうか?
1週間ここで詰まってまして、、、誰か助けて下さい

280 :デフォルトの名無しさん (ワッチョイ 9f8c-yauO):2017/05/25(木) 22:29:31.05 ID:kwmzBMx/0
>>249
1週間、なにを他に試したのか書いてみ

まさか、そのコードを何も変えずに
実行して、値が取れないなぁって
何度もやっていたわけじゃあるまいな?

281 :デフォルトの名無しさん (ワッチョイ fbd4-AJrq):2017/05/25(木) 22:29:56.76 ID:iZTPtxiK0
processData : false,
contentType : false

この2行が不要

282 :デフォルトの名無しさん (ワッチョイ 4fc8-fkwH):2017/05/25(木) 22:31:28.67 ID:plB+en290
マニュアル読めって話だな
まさか英語だからって読んでないってことはないよね

283 :デフォルトの名無しさん (ワッチョイ 0fc8-wwwt):2017/05/25(木) 22:50:45.14 ID:3AHvv4q40
async : true,って書いたことないけどなんか変わるん?
寧ろ
cache:falseって付けない方がなんか不安なんだけど

284 :デフォルトの名無しさん (ワッチョイ 0fc8-wwwt):2017/05/25(木) 22:58:37.69 ID:3AHvv4q40
dataType : "text",←がマズイんじゃない?
formベースだと↓で書くし
タグのプロパティにenctype="multipart/form-data"
とか書くし
どっかのサイトには
dataType : "json",って書いてあるところもあったけど

非表示のフォーム作って
data: $("#form").serialize()みたいな事やった方が
ってやった方が確実じゃない?

285 :デフォルトの名無しさん (ワッチョイ 5b75-vI0S):2017/05/25(木) 22:59:15.72 ID:Z3vgZ/N70
>>280
配列の書き方からPHP側でのvar_dumpから
画像変えたりとにかく色々試しました

>>281
その2行削ったら
Uncaught TypeError: Illegal invocation
が出てそもそも送信が出来なくなりました。

>>282
関係ありそうなところは読んだのですが
特に問題なさそうですし、そもそもWEBのサンプルコードを
コピー改編して作ってるのであまり間違いはなさそうに見えるのですが、、、

286 :デフォルトの名無しさん (ワッチョイ 5b75-vI0S):2017/05/25(木) 23:00:40.03 ID:Z3vgZ/N70
>>283
送信のプログレスバーを表示したくてasynctrueにしています

287 :デフォルトの名無しさん (ワッチョイ 5b75-vI0S):2017/05/25(木) 23:01:15.87 ID:Z3vgZ/N70
>>284
dataTypeをjsonにするのも前に試したのですがダメでした

288 :デフォルトの名無しさん (ワッチョイ 9f8c-yauO):2017/05/25(木) 23:03:43.70 ID:kwmzBMx/0
配列の書き方ってなんだよw

289 :デフォルトの名無しさん (ワッチョイ 5b75-vI0S):2017/05/25(木) 23:07:22.84 ID:Z3vgZ/N70
>>288
配列にするとダメになるので配列の書き方が間違ってる可能性を疑いませんか?

290 :デフォルトの名無しさん (ワッチョイ 0fc8-wwwt):2017/05/25(木) 23:08:08.41 ID:3AHvv4q40
<from>タグで書いたフォームを送信した場合と上の上手く行く場合上手くいかない場合をWiresharkでパケットキャプチャしながら比較してみたら?

291 :デフォルトの名無しさん (ワッチョイ 9f8c-yauO):2017/05/25(木) 23:09:44.87 ID:kwmzBMx/0
>>289
だから配列の書き方をどう変えて試してみたんだ?って話

292 :デフォルトの名無しさん (ワッチョイ 0fc8-wwwt):2017/05/25(木) 23:13:13.28 ID:3AHvv4q40
var myData = {"txt":str, "formdata":fd};
ここだけみると
strとfdが定義されてなくない?

寧ろ↓みたいな型あるなら
var fd = new FormData();
fd.append("file", uploadfile);
fd.append("txt", str);
とかでいいんじゃない?

293 :デフォルトの名無しさん (ワッチョイ 5b75-vI0S):2017/05/25(木) 23:13:27.27 ID:Z3vgZ/N70
>>291
キーの名前をダブルクォーテーションで囲ってみたりとか
要素のカズを1つにしてみたりとかですが
それを聞くってことは配列の書き方に原因があると踏んでるのでしょうか?

294 :デフォルトの名無しさん (ワッチョイ 5b75-vI0S):2017/05/25(木) 23:15:34.10 ID:Z3vgZ/N70
>>292
もちろんソースの上の方でstrは定義されています
実は3日くらい前に
fd.append("txt", str);
も試したのですが、PHP側でtxtの抜き取り方が分からず、
$_FILESをvar_dumpして中身を見てもtxtの内容が見当たらなかったのです、、、

295 :デフォルトの名無しさん (ワッチョイ 0fc8-wwwt):2017/05/25(木) 23:18:39.00 ID:3AHvv4q40
>>289
json規格では
{name1 : "value1", name2 : "value2"}
ってのはオブジェクト
配列は
array : [0,1,2,3]
みたいなのの事を指す

>>294
print("<pre>");
print_r($_POST);
print_r($_FILES);
print("</pre>");
でみてみりゃいいじゃん

296 :デフォルトの名無しさん (ワッチョイ 5b75-vI0S):2017/05/25(木) 23:31:08.42 ID:Z3vgZ/N70
>>295
ありがとうございます!無事解決しました!

しかし原因が分かるとID:kwmzBMx/0の指摘の
的外れっぷりが笑えてくる・・・ww
無能すぎんだろwww

297 :デフォルトの名無しさん (ワッチョイ 0fc8-wwwt):2017/05/25(木) 23:38:13.00 ID:3AHvv4q40
いやいやPHPやってて$_FILES使ってて
$_GET $_POST $_REQUESTを知らないとか相当進め方おかしいから

体系的にやり直したほうがいい

298 :デフォルトの名無しさん (ワッチョイ 5b75-vI0S):2017/05/25(木) 23:48:07.09 ID:Z3vgZ/N70
>>297
はいすみませんでした・・・

299 :デフォルトの名無しさん (ワッチョイ 9f8c-yauO):2017/05/26(金) 00:14:18.03 ID:xduQ3JhA0
>>293
> キーの名前をダブルクォーテーションで囲ってみたりとか
> 要素のカズを1つにしてみたりとかですが
> それを聞くってことは配列の書き方に原因があると踏んでるのでしょうか?

数学に例えれば、計算が間違っていると言ってるのに、
* じゃなくて×って書くべきだったかな?
それとも変数はxとyじゃなくてaとbを使うべきだっったかな
ですます調で書くべきだったかな?
って言ってるようなもんだって言ってるんだよ

そんな意味のないことをやって時間を無駄にしてる

お前が嫌いな部分をちゃんと調べろよ

300 :デフォルトの名無しさん (ワッチョイ 0fc8-wwwt):2017/05/26(金) 00:25:48.13 ID:bNTJaYcW0
この分だと
<form action="action.php" method="post">
<input type="text" name="my_name" />
<input type="submit" value="送信" />
</form>

みたいなWebフォームも書いた事なさそうだな

301 :デフォルトの名無しさん (JP 0Hcf-vI0S):2017/05/26(金) 10:54:56.14 ID:jgQEkVrVH
data scheme URIで表示している画像(サーバー上に存在しない)を
ツイートボタンで添付してTwitter上に表示させる方法って存在する?

302 :デフォルトの名無しさん (アウアウカー Sa8f-e1Zk):2017/05/27(土) 15:53:29.10 ID:/OhQ0A3Ja
色んな質問見てるとjsはコピペすればOKと考えてる奴が多くてゲンナリするな

303 :デフォルトの名無しさん (ワッチョイ 6bb1-9J/J):2017/05/27(土) 20:14:42.45 ID:MWSRFZ3F0
今までは簡単な数行のアプリならテスト書かずともいいやっておもってたけど
BABELとかwebpackとかを初めて知って
テスト書かずにプログラムは無理って思った。

304 :デフォルトの名無しさん (ワッチョイ 2b70-YRF2):2017/05/27(土) 21:14:34.18 ID:njF0J5En0
結局はコスパ
いくらテストが大事とは言ってもテストクソしにくい物はできない
簡単にできるんならすればいい

305 :デフォルトの名無しさん (ワッチョイ 7bf5-vlKO):2017/05/28(日) 01:12:50.76 ID:N5TIDcJY0
jestはなんかテスト書きやすい。設定とか特にいらずに使えるから?

306 :デフォルトの名無しさん (ササクッテロロ Sp0f-8HeT):2017/05/28(日) 06:24:31.77 ID:Jy+iGWQUp
私はjapがプログラムを作成することに向いていないと思います
japはマニュファクトリーが向いているです

彼らはITの産業を大韓民国の企業に依頼するべきです

307 :デフォルトの名無しさん (ワッチョイ 7bbc-yauO):2017/05/28(日) 07:26:39.79 ID:g7njks+J0
キムチ

308 :デフォルトの名無しさん (アウアウカー Sa8f-4b8Z):2017/05/28(日) 07:41:48.03 ID:YILpTCJTa
戦争始まりそうな所に委託なんか出来ない

309 :デフォルトの名無しさん (ワッチョイ 0fc8-wwwt):2017/05/28(日) 13:05:06.62 ID:Y1FLfJ9O0
ベトナムとかマレーシアとか信頼できる国あるし敢えて敵国に依頼する必要はないと思う

310 :デフォルトの名無しさん (ワッチョイ 8bc8-9J/J):2017/05/28(日) 14:46:17.46 ID:bwXZtahX0
今更気づいたが、2chでもデフォでJS使ってポップアップするようになったのね。
というわけでソース見てるが、あーはいはいって感じですね。

311 :デフォルトの名無しさん (ワッチョイ 9f8c-yauO):2017/05/28(日) 15:07:22.38 ID:m00obNBd0
あーはいはいでわかるかよw
あれだ、評価するとお前の評価がクソだってばれるから
そうやって詳しいふりしてるんだろw

312 :デフォルトの名無しさん (ワッチョイ 8bc8-9J/J):2017/05/31(水) 22:58:58.50 ID:Y1RUmNYE0
>>311
てかまじ韓国人は死ね

評価したいならお前が自分で見てくればいいだけ。俺に噛み付く必要なんてない。
おかしな奴が沸いているから話題を変えてやろうとしたのに、韓国人はこれだから駄目なんだ。
お前らって基本的にそんなんばっかだよね。
マジでお前らが全員死ねば2chもだいぶ浄化されると思うよ。

ところでマジレスすると、韓国人がプログラミングに向いているわけないだろ。
あいつらは論理的思考が全く出来ない。
ソースはどこにでもあるがこのスレの>>84以降の韓国人もそう。
日本語が不自由な連中は、自分で言っていることの論理的整合性が取れてない。
自分のバグを他人のせいにして誤魔化しまくるやつって居るだろ。韓国人はこのタイプ。

「てかお前、日本語も英文も読めない人?」が煽りとかアホかよ。
自意識過剰で自分から韓国人だとゲロってる。
仕様書の原文が英文で、後俺が読めるのは和文だから、
俺が内容を保証できるのはその2つしかないんだよ。だから論理的にはまっとうな言い方だろ。
だいたい、「右」と書いてあるのに「ウリには『左』としか読めないニダ」と言われても知らんがな。

プログラミング以前に最低限の論理/言語能力は必要なんだよ。韓国人にはどちらもない。
マジで連中は救いようがないゴミだよ。それはこのスレ見てても明らかだろ。

と言うかそもそも韓国発のマトモなOSSなんてないだろ。
俺が見てておっ!て思うのは大体アメリカ人かロシア人だが。
まあ、あるというのならURLくれ。見てみるから。

313 :デフォルトの名無しさん (ワッチョイ efa7-9J/J):2017/05/31(水) 23:12:42.24 ID:Tq4u4t660
レイシストはニュー速から出てくんなよ

314 :デフォルトの名無しさん (ワンミングク MMbf-C8dY):2017/05/31(水) 23:31:36.76 ID:BpCMxTEQM
>>312
ぶっちゃけ日本のITレベルは底辺だとおもうよ
韓国の肩もつわけじゃないが韓国にすら負けてるのは確実だろ

しゃちく製造の為の学校教育、終身雇用、年功序列、出る杭は打たれる、責任のなすりつけ、上部にいくほど責任はとらない

こんな国でまともな人材が育つ訳がない

315 :デフォルトの名無しさん (ワッチョイ bdc8-zUMb):2017/06/01(木) 00:03:37.62 ID:Mhu3Y0w10
韓国に負けてることはないよ。
事実として韓国発のものは何もないだろ。
自虐も行き過ぎると妄想だぞ。

あまり有難がるのも問題だが、日本発ならRubyとWinnyとかか。
Winnyはポシャってしまったけど、分散DBとしてはかなりのインパクトはあったよ。
今同じようなことやってる物ってあるんだっけ?(秘匿性ではなくて分散DB)

あと、社会に対して一方的に文句を言っていいのはせいぜい20代までだ。
お前も社会の一員であり、
悪い部分は改善するように努力しないといけないことを忘れるな。

316 :デフォルトの名無しさん (ワッチョイ a6c8-PQPf):2017/06/01(木) 00:04:37.05 ID:nnQ1TI9L0
IT速報のコメ欄気持ち悪すぎ引いた

317 :デフォルトの名無しさん (ワンミングク MM7a-69En):2017/06/01(木) 01:40:11.61 ID:kxe+DADVM
>>315
それって極一部の個人の力によるものだろ
一部の有能な人間の存在を否定する気はないよ

国内における一般企業のITのレベルが世界とくらべとれだけ低いかという件と混同いないほうがいい

318 :デフォルトの名無しさん (ワッチョイ bdc8-zUMb):2017/06/01(木) 01:57:00.37 ID:Mhu3Y0w10
では具体的にどこがどのように問題なの?
それは具体的にどの国がどのようにすごいの?
そしてお前が間違っている日本語で一生懸命日本下げする理由は?

やっぱり韓国人は死ねでしかないね。
論理的に話が出来ない。

そもそもIT界なんてどいつもこいつも個人だろ。
突出した個人に多数が纏わりついているだけだ。
組織としてスゲーって所はないと思うが。

319 :デフォルトの名無しさん (アウアウカー Sad5-Na6L):2017/06/01(木) 08:30:04.11 ID:9lL7NugSa
北も南もヘル朝鮮だからな

個人の能力とか完全に殺されてる

だから整形してまで芸能にいくしかないわけだ

320 :デフォルトの名無しさん (アウアウカー Sad5-zrxP):2017/06/01(木) 13:30:41.26 ID:DUC/SBfla
てか韓国がどうとかJavaScriptに何も関係なくね?いつまで続けんの?

321 :デフォルトの名無しさん (ワッチョイ 2570-JwH8):2017/06/01(木) 14:43:19.65 ID:MPGRIjU40
まあ韓国に負けてるっていうか、雰囲気がぜんぜん違うよね
まず韓国はとにかく中国市場に対する意気込みがすごいんだよね
そして欧米だとB2Bと投資活動が凄い
一方日本はオタクなクリエーターとオタクなユーザーで盛り上がる風潮なんだよ
この件に限らないけど、日本って良くも悪くもお金を回さない国なんだよね

322 :デフォルトの名無しさん (アウアウカー Sad5-Na6L):2017/06/01(木) 19:21:54.74 ID:Eg1cjf0Ca
cool japan vs hell korea

323 :デフォルトの名無しさん (ワッチョイ bdc8-zUMb):2017/06/01(木) 19:33:32.84 ID:Mhu3Y0w10
というか、いつもどおり韓国人は息を吐くように嘘をついているわけだが、
ちょっと調べたが、IE縛り全く改善されてねーじゃねえか。
技術力高いつもりならそこをまず何とかしろよなと。

つかマジで、韓国人は「ウリがそう思うからそうに違いないニダ」ばかりだ。
客観的に見るという感覚がないんだなあの連中は。
プログラムなんて客観的にしか動かないんだから、連中が得意なわけないじゃん。

そしてニュー速って何のことかと思いきやAFLか。
そしていつもどおりでっち上げの嘘で誤魔化そうとしているという。
なんつーか、マトモ人間扱いする方が問題だよな。

それはさておき、Web板、無理やり流している感はあるが、
それでもお前らで何とかしようというのはいいことだよ。
ただしあっちにも韓国人は潜んでいて、
明らかに間違っている投稿もあるから気をつけろ。

>>320
韓国人が全員死ぬまでだろ

>>321
よしではその意気込みがすごいとやらを観てみよう。
どの中国サイトを見ればいいんだ?URLよろ。
というかそれ以前に俺はWeb系ではないのでパーティクルが流行とか知らないんだが、(>>241)
これはどこら辺で流行っているんだ?

324 :デフォルトの名無しさん (ワッチョイ a6c8-PQPf):2017/06/01(木) 20:13:46.82 ID:nnQ1TI9L0
NGEx推奨
対象URL(含む):http://echo.2ch.net/test/read.cgi/tech/
NGワード(含む):韓国

325 :デフォルトの名無しさん (アウアウウー Saa1-5vFY):2017/06/02(金) 00:08:08.24 ID:WZinTdGZa
ゆとりor韓国人認定して噛みつく奴が約一名常駐しているが、病気ではないかと本気で思う

326 :デフォルトの名無しさん (スププ Sd0a-Ze4x):2017/06/02(金) 13:11:10.47 ID:1CJudmood
病気というか、もう「韓国」って文字に対して拒絶反応を示す脳回路ができてるんだと思うぞ。

327 :デフォルトの名無しさん (ワッチョイ dea7-zUMb):2017/06/02(金) 13:20:16.54 ID:eRFbfsBq0
他にも琴線に触れる政治系のワードがいくつかあってその度に暴れてるよ
前みたいに自分で隔離スレ立てて篭っていてもらえるといいんだが

328 :デフォルトの名無しさん (ワッチョイ ea13-zUMb):2017/06/02(金) 14:45:33.05 ID:l6Zd1p6x0
AIも学習が進むとこういう「正しくバグった人間」みたいなのが出てくるんだろうな。
学習して重くなったノードがより一層重くなる方向にしか進まなくなる見たいな。

329 :デフォルトの名無しさん (ワッチョイ f954-vHg9):2017/06/02(金) 16:18:30.68 ID:9TwlIHTO0
>>328
そりゃそうだろ。
学習が中途ハンパなNNは、中途半端な出力しかしないしな。
過学習ってのもあるし。

330 :デフォルトの名無しさん (ワッチョイ f954-vHg9):2017/06/02(金) 16:19:54.40 ID:9TwlIHTO0
>>314
日本は底辺ってのには、同意だな。
エンジニアが虐げられているから、ってのが大きいな。

331 :デフォルトの名無しさん (ワッチョイ 2570-fEXQ):2017/06/02(金) 16:35:54.48 ID:F6QccYLm0
虐げられてるねぇ
まあ能無しの比率が多いとは思わない
バリバリに見える発展途上国とかだと実はプログラマの8割くらいは
正しく動くコードも書けない能無しだといろんな調査でバレてるから
それよりはマシだろう
どちらかと言うとせっかく能がある奴が自分を安売りしたり、
才がある奴が長いものに巻かれたりする方が問題だな

332 :デフォルトの名無しさん (JP 0H6e-rLqX):2017/06/02(金) 17:46:14.18 ID:2tmjhXTOH
>>331
これか。

インドのプログラマーでちゃんと自動コンパイルできるコードを書いているのは36%
http://gigazine.net/news/20170520-indian-engineer-compilable-code/

ヒント:
・大学在籍者36,800人が対象
・そのうち、職業プログラマは14.67%
・100 - 36 = 64

たぶん、お前より優秀なプログラマが十万人はいると思うぞ。

333 :デフォルトの名無しさん (ワッチョイ bdc8-zUMb):2017/06/02(金) 20:04:43.34 ID:PnTtMc740
>>324-329
おう、NGに協力してやるよ
韓国人死ね

というかいつも思うんだが、韓国下げに対してだけ妙にレスポンシブなのは気持ち悪いよ。
人口比1%以下でこれはないよね。

いずれにしろ出て行くのは自由だよ。Web板も流れているし、いいと思うぞ。
俺はあっちには行かないから安心しろ。

お前らは乗っ取り/背乗りしかしないが、それは韓国人やヤクザのやり方だぞ。
いい加減止めろ。誰の得にもならないし、ただの反社会行為だ。
そうではなくて、Web板のスレを盛り上げて、このスレの存在価値を無くし、
正面から正々堂々とこのスレを殺してみせろ。それが正しい競争だよ。
それが出来ないのなら、所詮お前らはその程度なんだよ。
お前らがこのスレに纏わりついていること自体、これを証明していることを自覚しろ。

>>331
内容には同意。韓国も発展途上国でしかない。
日本はそれらよりはだいぶマシ。

>>332
英文ソースも確認したが詳しいことは書いてないな。
もっとも、同じテストを日本でもやってみないとわからないし、
それ以前に大学生が1時間で解決できるプログラミング課題という時点でゴミだが。
とはいえ、外国人には謙遜というものは無いから、
奴らが主張する「出来ます」と俺らが想定するレベルでは相当な隔たりがあるのも常だが。

334 :デフォルトの名無しさん (ワンミングク MM7a-69En):2017/06/02(金) 20:20:39.04 ID:6OOVLM+bM
>>333
前から思ってた事がある
おまえが韓国が嫌いなのはわかったがおまえの発言内容やその性根っておまえが抱いてる韓国人そのものだぞ
レス中の「韓国」を「日本」に変えてみてごらん

335 :デフォルトの名無しさん (ワッチョイ bdc8-zUMb):2017/06/02(金) 20:46:31.99 ID:PnTtMc740
>>334
俺は韓国が嫌いなわけではなくて、
論理的でないゴミが嫌いなだけ。そして韓国人はほぼ全員これに該当するだけ。

お前が何を言いたいのか分からないが、もし韓国の方が素晴らしいという主張を続ける気なら、
具体的に個人名/組織名/URL等提示すればいいだけ。(俺は早い段階でやった)
お前がすごいと思うものを持ってこい。
それもせずにお前らはわめき散らすだけだろ。だから韓国人はゴミなんだよ。

とはいえ俺の個人的志向なんてどうでもいい。お前らはWeb板でがんばれ。
俺は色々計算の上でやっている。
それが間違いかどうかはお前らがWeb板を盛り上げて証明すべき事項で、
ここを乗っ取るのは完全に間違いだよ。

俺はWeb板についてはまったく干渉してないし、今後もするつもりは無い。
逆にここについてはいちいち細かく干渉し続けてきている。
それでこっちのほうが盛り上がるのなら、それはお前が間違っているということなんだよ。
JavaScriptはWeb言語なんだから、フォークで決着つけるべきだろ。

そして韓国人死ね
ああこれはNGへの協力だからね(はあと)

336 :デフォルトの名無しさん (ワンミングク MM7a-69En):2017/06/02(金) 21:01:53.94 ID:6OOVLM+bM
>>335
おまえの精神が韓国人そのものって言ってるんだよ
わかったかい?

もう一度書いておくぞ

レス中の「韓国」を「日本」に変えてみてごらん

あら不思議、韓国人の出来上がり

337 :デフォルトの名無しさん (ワッチョイ dea7-zUMb):2017/06/02(金) 21:22:45.44 ID:eRFbfsBq0
気持ちはわかるけどその返しも同じ穴の狢だからな
やめとけよ

338 :デフォルトの名無しさん (ワッチョイ a6c8-PQPf):2017/06/02(金) 22:10:20.83 ID:D6cmkCxK0
コンパイルエラーなんてコンパイルしてみてから確認すりゃいいんだからぶっつけ本番コンパイルみたいなのを試験にする意味とか皆無

339 :デフォルトの名無しさん (ワッチョイ bdc8-zUMb):2017/06/02(金) 22:14:06.54 ID:PnTtMc740
>>336-337
まず俺はお前らが何故突然大挙してこっちに来たのかが分からない。
俺にはWeb板のスレはいつもどおり機能しているように見えたし、
統合とかそういう話も全く無しで、自然発生的にいきなり来たからね。

でも、それがもし、こっちのスレのほうがマシだという判断の下なら、
それは完全に間違いだ。なぜなら、このスレがマシだったのは、

× 俺がいちいちグダグダ注文をつけたから
○ お前らがいなかったから

だからね。スレの質は住民の質であり、
お前らがいるスレはゴミになる、それはお前らがゴミだから、でしかない。

だからお前らの同時移住はただのイナゴ行為で、結局良スレを潰してしまう。
これがこれまで繰り返されてきたことであり、これはお前らにとっても利益はないだろ。
だからWeb板に帰れ、あるいは別スレ立てろ(前スレの終盤参照)、と言っている。
お前らはそれもせずにイナゴ行為を続け、しかもスレ立ても邪魔するし、
ただのキチガイだよ。死ねでしかない。
しかしこれももう何度も言った事だけどね。

だから韓国人は死ね
ああこれもNGへの(ry

340 :デフォルトの名無しさん (アウアウウー Saa1-XxFC):2017/06/02(金) 23:25:51.53 ID:nWdRxOL6a
(ワッチョイ bdc8-zUMb) が垂れ流す韓国論はゴミだと思うが、自分を客観視できないタイプなんだろうな

341 :デフォルトの名無しさん (ワッチョイ 29c8-TLbp):2017/06/02(金) 23:48:55.84 ID:Bn+nRtH50
ネトウヨは巣に戻れよ

342 :デフォルトの名無しさん (ワッチョイ bdc8-zUMb):2017/06/02(金) 23:50:12.92 ID:PnTtMc740
もしお前らが自分のことを客観視できるのなら、
お前ら自身がゴミだと自覚できるはずだ。
だって事実として、お前らがいるスレがことごとくゴミになるんだから。

俺について文句を言うのなら、Web板に行けよ。
それで盛り上げて、結果としてこのスレを殺してみせろ。
そうやって+方向の競争にしなければならない。
お前らは−方向の競争しかしない。
だからゴミなんだよ。

そして韓国人は死ね
ああこれも(ry

343 :デフォルトの名無しさん (ササクッテロロ Sp3d-OHob):2017/06/03(土) 01:12:15.43 ID:U7n4TZ9ep
韓国の悪口言ってる奴何なの?
お前在日に虐められたの?
市ぬまで虐めとけばよかったな

在日は差別されてお前どころでない社会的いじめを受けてるんだ
弱者に石を投げるクズがお前だ

344 :デフォルトの名無しさん (ワッチョイ bdc8-zUMb):2017/06/03(土) 01:47:12.83 ID:Fy30HWMq0
おー、プロ被害者乙。いい加減その嘘も止めろよ。
つかこのスレどんだけ韓国人いんだよ。正直びっくりだわ。

で、結局ここまでの反論は全て「ウリがそう思うからそうニダ」しかないだろ。
これが韓国人だよ。全て感情論。
しかも自己矛盾してるだろ。
そのクズが居座っていると分かっているこのスレに何故お前はわざわざ来てんだよ?
プロ被害者だからか?


つーか、せっかく協力してやってるんだから、ちゃんとNGしとけよ。
そしたら俺のレスなんて見えないはずだし、お前らも火病ること無いだろ。

真面目に議論する気あるならURLもってこい。
お前らによると韓国や中国のサイトはすごいんだろ?


そして韓国人は死ね
(ry

345 :デフォルトの名無しさん (ワッチョイ d9bc-rLqX):2017/06/03(土) 08:29:54.65 ID:nLyqFVK50
スレ違い

346 :デフォルトの名無しさん (ワッチョイ bdc8-zUMb):2017/06/03(土) 09:28:44.08 ID:Fy30HWMq0
>>343
というか読み直したら、しれっととんでもない事言ってるな

> 市ぬまで虐めとけばよかったな
へー、お前はイジメの加害者なんだー
死ねよマジで

韓国人死ね(ry

347 :デフォルトの名無しさん (ワッチョイ b992-rLqX):2017/06/03(土) 09:39:09.43 ID:RVoqohAC0
2chでプログラマ板がプログラム板から隔離されている理由がまさにこれ

348 :デフォルトの名無しさん (ワッチョイ bdc8-zUMb):2017/06/04(日) 01:45:26.81 ID:KvQiSILl0
ああ確かに、マ板的話題についてかなり早い段階から指摘されていたな。
では少し技術的なことを書いておこう。

Web板の719以降、zipWithだが、ネイティブで書くならこう。

var a = [13, 64, 76];

var b = ["as", "ft", "jay"];
var c = a.map(function(v,i){return {number:v, name:this[i]};},b); // (C)

宣言型っぽく書くなら結局のところ、

var d = [].f(a,'number').f(b,'name'); // (D)

と書きたいところだがこれはプロトタイプ拡張になるので、精々

var e = new MyArray().f(a,'number').f(b,'name'); // (E)

これで直行性重視でfを整備するか、
面倒だから2つ纏めて(C)にしてしまうか。

ただ正直、こんなところで悩むから上達しないんだと思うよ。
だからあの質問者に対しての(表面的ではなく)本当の意味での親切な回答は
「ウダウダ考えずに今お前が書ける方法で書け」であって、
俺だったら無視して終わりだ。

韓国人死ね(ry

349 :デフォルトの名無しさん (ワッチョイ bdc8-zUMb):2017/06/04(日) 01:46:35.82 ID:KvQiSILl0
ただしこれを自らの課題として捕らえた719とlodashは悪くない。
お前らは既に一通り書ける上で、別の書き方を試している。
これ自体は上達する方法ではあると思うし。
だから応援してやるよ。どうせこっちも見てるだろうし。

当人は理解しているだろうが、

var f = (y) => (x,i) => new Object({ number : x, name : y[i] });

はクロージャで補足するので筋が悪い。

var result = zipWith(f, a, b);

は「関数型で」というリクエストだからだと思うが、通常なら

var result = zipWith(a, 'number', b, 'name');

の方が使いやすい。だったらいっそのこと纏めちまえ、となると(C)になる。

JavaScriptの場合はthisを使えるのでいちいちラップすることなく、直接(C)形式で書ける。
この仕様を奇妙だと思うか、便利だと思うかだが、
JavaScriptの実力を使い切るつもりなら、後者じゃないと駄目だ。
その場合、関数のthisはいちいち何になるか考えながらコーディングする癖が必要になる。
これをウザイと思うか、面白いと思うかだね。

lodashに関しては、大概の機能については上記の通り1〜3行で書ける物ばかりで、
よほど大量に使わないと効果は得られない。
「そんなときにlodash」ってのは彼が常にやっているけど、正直、訴求力はないね。
ただし個人的に常に使うと決めているのなら、それもありだとは思うが。

韓国人死ね(ry

350 :デフォルトの名無しさん (ワッチョイ b921-4lah):2017/06/04(日) 02:16:58.81 ID:WjXWBKwj0
>>349
そだね
JSなら無駄にカリー化せずともアローをやめてthisで使うだけで良かったんだけど、
何かあの質問者は本気で聞いてる感じでもなかったからそこら辺は手抜きしたわ
JSは純粋関数型じゃないんだから変にこだわりすぎても損するだけなんだけどな

351 :デフォルトの名無しさん (ワッチョイ bdc8-zUMb):2017/06/04(日) 02:49:49.69 ID:KvQiSILl0
>>350
thisだから気持ち悪いが、この場合実質的に引数だから
これでも「JavaScript的にはカリー化してる」と言い切ってしまうのもありだとは思うがな。
なんつうか、この辺の気持ち悪さに慣れる必要があるというか。

とはいえ意味無い質問が多いのは俺も思う。

162 KB
新着レスの表示

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50
名前: E-mail (省略可) :


read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)