17/04/03 00:31:25.68 82yaJsi70.net
JavaScript を自ら学ぶ人のための質問スレッドです。
>>2-6のテンプレを読んだ上で質問してください。次スレは>>950が>>2のテンプレ案(本スレで改善案があれば考慮)を元に立ててください
■質問を書く上で
(1) 煽り、コード制作依頼等、人を不快にさせる投稿はご遠慮下さい。公序良俗を守った応対を心がけてください。
(2) 他の人に迷惑をかけるスクリプトの質問はご遠慮ください。
(ブラクラ、[戻る], [閉じる], [クリック] の妨害、画面占有など)
(3) 質問者及び議論を行う人はメール欄を空欄にし、名前にレス番を入れることを強く推奨します。回答者はなりすましを判断できませんので、なりすましが現れても自己責任となります。
(4) 常に自発的に調べる心構えを持ってください。
具体的には「自分で調べてから質問する」「回答をもらってわからない単語があればGoogle検索してみる」など。
わからない内容を代わりに調べてくれる回答者をお望みの方は余所で質問してください。
(5) 出来るだけ一般的な用語を使用してください。脳内オレオレ用語は混乱の元です。
(6) 出来るだけサンプルコードを掲示してください。言葉による説明は行き違いが生まれる場合があります。
※
2:必ず「問題の事象が再現されること」を確認してください。 必要な部分だけ切り出したつもりで現象が再現できていなかったケアレスミスがしばしば見られます。 (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
3:デフォルトの名無しさん (ワッチョイ b38c-U/Pn)
17/04/03 00:32:46.51 HcTbpYfB0.net
本スレはこっち
+ JavaScript の質問用スレッド vol.123 + [無断転載禁止]©2ch.net
スレリンク(tech板)
4:デフォルトの名無しさん (ワッチョイ efff-U/Pn)
17/04/03 00:33:38.69 bzwlUbZO0.net
ワッチョイとは
BBS_SLIP
URLリンク(info.2ch.net)
スレ立て主が設定する事で、レスした人のIPアドレスからIDを変換して名前欄の横に表示が出ます。
荒らし対策という名目で広がったのですが、一言でいえば強制固定ハンドルネームのようなものです。
中段あたりに解説がありますが、浪人という名前の有料専用ブラウザを導入すれば、ワッチョイ表示なしで書き込む事も出来るようになります。
●注意点
ワッチョイ(SLIP)の変換は全板共通です。
IPアドレスから特定の法則で文字列に変換しているだけなので、IPアドレスが変わらない限り全部同じになります。
ですので、漫画板のワッチョイスレで○○かわえー、なんてレスした後、他のお硬い板のワッチョイスレで大議論になったり
なんかしてて議論相手にあなたのワッチョイのIDググられれば普通に他の板の書き込みがヒットします、
全く関係ないスレで別のスレの恥ずかしいレスを相手に突っ込まれたりする可能性があったりします。
これらを自覚してレスをしていないと、あるスレで下の名前をレスして、別の板のスレで苗字をレスして、
と...実は自分から身バレをしていたという可能性も無い訳ではありません。何万人もレスしてますからね、誰かがそういうポカをする事だってあり得ます。
変換自体は一週間でまた変わるので一生同じIDという訳ではないですが、注意しなければならないのはIPアドレスそれ自体が表示されているSLIPスレ。
IPアドレスは固定アドレスにしない限り変動すると思いがちですが、今は変動アドレスでも
殆ど固定と変わらない事が多いのです。下手をすればプロバイダ解約するまで同じIPアドレス。
IPアドレス表示されるスレに一度でもレスすれば、ワッチョイ=IPアドレスの関係がバレてしまうので
他のワッチョイスレでもIP表示で書き込んでる事と実質同じになってしまいます。
2週に渡ってIPアドレス表示のスレに書き込めば、ワッチョイIDは変わってますがIPは同じなので週を
跨いでも同じ人というのがバレますね。同じIPの過去のワッチョイIDをググればいくらでも過去に遡れる事になります。
5:デフォルトの名無しさん (ワッチョイ efff-U/Pn)
17/04/03 00:33:57.32 bzwlUbZO0.net
掲示板を見れば閲覧者のIPアドレスは管理者にわかるので日常的に第三者に渡っている情報ですが、
2chのレスでIPが残る(Googleの検索に引っ掛かる)となると少し意味が違ってきます。
IPアドレスからは接続地域と回線種類くらいしかわかりません。それぞれが情報を持っていても
外に開示している情報ではないので個々の情報では価値が薄いのですが、2chにレスがあれば情報を共有できます。一つ一つは薄い情報でも繋げれば意味が出てきます。
また、IPアドレスと本名住所を元々知っている相手にはどうでしょうか?
まず普通に家族が家のIPをググったら2chのレスを見られますね。
あなたの2chの書き込みが全てわかる訳です。趣味嗜好、悩み等を書き込んでいれば筒抜け。
あなたの知り合いがふざけてこのIPの奴○○って奴だよ、と書き込む事だってあるかもしれません。
例えば本名IP掴んでる通販業者が2chググってレス見て病気で悩んでいたのが知れたらその情報を心霊治療の業者に流されたりする可能性だってあります。
まぁそういう可能性も無いとは言えないのでIP表示のスレだけは気をつけて下さい。
先にその危険性を知っていればレスの内容も気をつけるでしょうけど、現状はその危険性をそもそも全く知らずに呑気に匿名だと思ってレスしている人が大半なのです。
6:デフォルトの名無しさん (ワッチョイ 73c8-agmj)
17/04/03 00:34:49.92 82yaJsi70.net
■質問テンプレート
【環境】OS, ブラウザをバージョンと共に記入してください。(ex: IE8, Firefox4)
【何をしたのか】何をしたら問題の現象が発生するのか。再現手順を具体的に書いてください。
【エラーメッセージ】エラーメッセージがあれば正確に書き写してください。(Windows なら「コピット」を活用)
【期待する結果】最終的にどういう結果を望んでいるのか、を書いてください。
【サンプルコード】現象を再現可能な最小限のコードを書いてください。
1レスに収まらないならコード投稿サイトを利用してください。
URLリンク(jsdo.it) URLリンク(jsbin.com) URLリンク(jsfiddle.net) URLリンク(ideone.com)
■過去スレ全集
URLリンク(www2.atpages.jp)
URLリンク(usamimi.info) (閲覧のみ)
■テンプレ案
URLリンク(fiddle.jshell.net)
■関連スレ
JavaScript ライブラリ総合質問所 vol.5 [無断転載禁止]c2ch.net
スレリンク(hp板)
JavaScript & jQuery 質問用スレッド vol.6 + [無断転載禁止]c2ch.net
スレリンク(hp板)
【node.js】サーバサイドjavascript 4【io.js】 [無断転載禁止]c2ch.net
スレリンク(tech板)
(X)HTML/CSS の質問に優しく答えるスレ23 [無断転載禁止]c2ch.net
スレリンク(hp板)
Canvasについて語ろう
スレリンク(hp板)
7:デフォルトの名無しさん (ワッチョイ 73c8-agmj)
17/04/03 00:35:29.98 82yaJsi70.net
■FAQ
URLリンク(fiddle.jshell.net)
◆開発者ツール(Developer Tools)の基本的な使い方 (全部はURLリンク(fiddle.jshell.net) )
▼諸注意
- 本説明では Google Chrome の開発者ツールの名称に従います。他ブラウザで使う場合は適宜読み替えて下さい。
- IE9- でコンソールを使うには予め開発者ツールを起動しておく必要があります(開発者ツールを起動しないと console.log() が機能しません)
- Safari はデフォルトで開発者ツールが無効な為、有効に設定する必要があります。
URLリンク(developer.apple.com)
▼要素を検証
1. ページ上で右クリックして [要素を検証]
2. [Elements] パネルが開き、対象のDOMノードが選択される(選択対象が目的の要素でなければ [Elements] パネル上で選択し直す)
3. 右側のサイドバーから知りたいステータス名のタブを選択する
- [Styles] タブ … CSSプロパティの指定値を表示 (※カスケードによって上書きされたプロパティは取り消し線で表示される)
- [Computed] タブ … CSSプロパティの算出値を表示(
8:デフォルトの名無しさん (ワッチョイ 238c-U/Pn)
17/04/03 00:35:44.14 MrxLrKt60.net
前:Name_Not_Found[sage] 投稿日:2016/02/24(水) 00:48:54.16 ID:???
■JavaScript主要ライブラリ・フレームワーク
jQuery
URLリンク(jquery.com)
jQuery UI
URLリンク(jqueryui.com)
jQuery Mobile
URLリンク(jquerymobile.com)
Lo-Dash
URLリンク(lodash.com)
Backbone.js
URLリンク(backbonejs.org)
Underscore.js
URLリンク(underscorejs.org)
AngularJS
URLリンク(angularjs.org)
Knockoutjs
URLリンク(knockoutjs.com)
RequireJS
URLリンク(requirejs.org)
D3.js
URLリンク(d3js.org)
threejs
URLリンク(threejs.org)
9:デフォルトの名無しさん (ワッチョイ 73c8-agmj)
17/04/03 00:35:51.98 82yaJsi70.net
■FAQ(続き)
◆JavaScriptの実行速度
JavaScriptの速度は「ブラウザ名」「ブラウザのバージョン」「PCスペック」に依存します(ブラウザのバージョン毎に最適化具合が異なります)。
速度の疑問解消の為に URLリンク(jsperf.com) にコードをUPしてブラウザ毎に速度計測する事を推奨します。
例外として、仕様における理論上の速度が明確になっている場合があります。
例えば、正規表現によるマッチング処理を考えた場合、「RegExp#test > RegExp#exec > String#match」は ES5 仕様で保証されています。
ES5 仕様において RegExp#test が最も処理数が少なく、String#match が最も処理数が多いことが明確だからです。
ブラウザによっては RegExp#test の最適化が十分でなく、String#match の最適化が RegExp#test より十分であれば逆転する可能性はありますが、各メソッドの最適化が一律であればこの前提が崩れる事はありません。
■各種仕様 ( URLリンク(fiddle.jshell.net) も参照 )
◆ Standard ECMA-262
URLリンク(bclary.com) (ECMAScript 3 HTML版)
URLリンク(www2u.biglobe.ne.jp) (ECMAScript 3 和訳)
URLリンク(www.ecma-international.org) (ECMAScript 5.1 HTML版)
URLリンク(tsofthome.appspot.com) (ECMAScript 5.1 和訳)
URLリンク(www.ecma-international.org) (ECMAScript 6 / ECMAScript 2015)
URLリンク(kangax.github.io) (ECMAScript 5 compatibility table)
URLリンク(kangax.github.io) (ECMAScript 6 compatibility table)
◆ HTML Standard (HTML5)
URLリンク(www.whatwg.org)
URLリンク(momdo.s35.xrea.com) (HTML5.1 部分訳)
URLリンク(www.hcn.zaq.ne.jp) (Web Storage 和訳)
10:デフォルトの名無しさん (ワッチョイ 73c8-agmj)
17/04/03 00:36:21.03 82yaJsi70.net
■FAQ
URLリンク(fiddle.jshell.net)
◆開発者ツール(Developer Tools)の基本的な使い方 (全部はURLリンク(fiddle.jshell.net) )
▼諸注意
- 本説明では Google Chrome の開発者ツールの名称に従います。他ブラウザで使う場合は適宜読み替えて下さい。
- IE9- でコンソールを使うには予め開発者ツールを起動しておく必要があります(開発者ツールを起動しないと console.log() が機能しません)
- Safari はデフォルトで開発者ツールが無効な為、有効に設定する必要があります。
URLリンク(developer.apple.com)
▼要素を検証
1. ページ上で右クリックして [要素を検証]
2. [Elements] パネルが開き、対象のDOMノードが選択される(選択対象が目的の要素でなければ [Elements] パネル上で選択し直す)
3. 右側のサイドバーから知りたいステータス名のタブを選択する
- [Styles] タブ … CSSプロパティの指定値を表示 (※カスケードによって上書きされたプロパティは取り消し線で表示される)
- [Computed] タブ … CSSプロパティの算出値を表示(
11:デフォルトの名無しさん (ワッチョイ 238c-MCV6)
17/04/03 00:36:27.84 MrxLrKt60.net
テンプレここまで
-----------------------------------------------
12:デフォルトの名無しさん (ワッチョイ 73c8-agmj)
17/04/03 00:36:42.76 82yaJsi70.net
■各種仕様 (続き)
◆ Document Object Model (DOM) / CSS Object Model (CSSOM)
URLリンク(www.hcn.zaq.ne.jp) (DOM Standard (DOM4) 和訳)
URLリンク(www.w3.org) (DOM3 Events)
URLリンク(www.w3.org) (UI Events)
URLリンク(www.hcn.zaq.ne.jp) (CSSOM 和訳)
URLリンク(www.hcn.zaq.ne.jp) (CSSOM View Module 和訳)
◆ その他のWeb関連仕様
URLリンク(domparsing.spec.whatwg.org) (DOM Parsing and Serialization - innerHTML等)
URLリンク(www.hcn.zaq.ne.jp) (XMLHttpRequest 和訳)
URLリンク(www.hcn.zaq.ne.jp) (File API 和訳)
URLリンク(www.whatwg.org) (WHATWGの仕様一覧)
◆ MDN (Netscape/Mozilla)
URLリンク(developer.mozilla.org)
◆ MSDN Library
URLリンク(msdn.microsoft.com) (Internet Explorer API)
URLリンク(msdn.microsoft.com) (JavaScript)
URLリンク(msdn.microsoft.com) (JScript)
URLリンク(msdn.microsoft.com) (DHTML)
◆ JavaScript Garden (ja)
URLリンク(bonsaiden.github.com)
◆ JSON (JavaScript Object Notation)
URLリンク(www.json.org)
13:デフォルトの名無しさん (ワッチョイ 73c8-agmj)
17/04/03 00:37:03.06 82yaJsi70.net
■各種仕様 (続き)
◆ Document Object Model (DOM) / CSS Object Model (CSSOM)
URLリンク(www.hcn.zaq.ne.jp) (DOM Standard (DOM4) 和訳)
URLリンク(www.w3.org) (DOM3 Events)
URLリンク(www.w3.org) (UI Events)
URLリンク(www.hcn.zaq.ne.jp) (CSSOM 和訳)
URLリンク(www.hcn.zaq.ne.jp) (CSSOM View Module 和訳)
◆ その他のWeb関連仕様
URLリンク(domparsing.spec.whatwg.org) (DOM Parsing and Serialization - innerHTML等)
URLリンク(www.hcn.zaq.ne.jp) (XMLHttpRequest 和訳)
URLリンク(www.hcn.zaq.ne.jp) (File API 和訳)
URLリンク(www.whatwg.org) (WHATWGの仕様一覧)
◆ MDN (Netscape/Mozilla)
URLリンク(developer.mozilla.org)
◆ MSDN Library
URLリンク(msdn.microsoft.com) (Internet Explorer API)
URLリンク(msdn.microsoft.com) (JavaScript)
URLリンク(msdn.microsoft.com) (JScript)
URLリンク(msdn.microsoft.com) (DHTML)
◆ JavaScript Garden (ja)
URLリンク(bonsaiden.github.com)
◆ JSON (JavaScript Object Notation)
URLリンク(www.json.org)
14:デフォルトの名無しさん (ワッチョイ 238c-MCV6)
17/04/03 00:37:21.41 MrxLrKt60.net
■JavaScript主要ライブラリ・フレームワーク
jQuery
URLリンク(jquery.com)
jQuery UI
URLリンク(jqueryui.com)
jQuery Mobile
URLリンク(jquerymobile.com)
Lo-Dash
URLリンク(lodash.com)
Backbone.js
URLリンク(backbonejs.org)
Underscore.js
URLリンク(underscorejs.org)
AngularJS
URLリンク(angularjs.org)
Knockoutjs
URLリンク(knockoutjs.com)
RequireJS
URLリンク(requirejs.org)
D3.js
URLリンク(d3js.org)
threejs
URLリンク(threejs.org)
15:デフォルトの名無しさん (ワッチョイ 73c8-agmj)
17/04/03 00:39:41.45 82yaJsi70.net
■諸注意
vol.115でlodashを不必要に推奨して啓蒙する行為が多く確認されており、ライブラリ系の質問はvol.116から禁止されました。
vol.115,116ではライブラリ禁止する発言が見られた直後にライブラリを許可する意図で次スレを立てる行為が確認されています。
本スレッドでライブラリ許可を求める発言が確認された場合は不要な争いを避ける為、スルーすることを推奨します。
ライブラリの質問はライブラリスレへ誘導し、誘導行為への反論はスルーしてください。
-----ここまでテンプレ-----
テンプレは >>1,5,6,8,9,11,12 および本レス
16:デフォルトの名無しさん (ワッチョイ 73c8-agmj)
17/04/03 00:41:25.92 82yaJsi70.net
テンプレは ID:82yaJsi70 投下分です。
見れば分かりますが荒らしが常駐しておりますのでご注意下さい。
17:デフォルトの名無しさん (ワッチョイ 238c-MCV6)
17/04/03 00:41:55.25 MrxLrKt60.net
またあらされるだろうが
ワッチョイを弱くするんじゃねーよ
+ JavaScript の質問用スレッド vol.123 + [無断転載禁止]©2ch.net
スレリンク(tech板)
18:デフォルトの名無しさん (ワッチョイ 73c8-agmj)
17/04/03 00:50:35.05 82yaJsi70.net
お前ら本当に息を吐くように嘘をつくのな
19:デフォルトの名無しさん (ワッチョイ e3a1-ApgU)
17/04/09 00:11:28.55 fJb/P0a60.net
Web上の画像からMD5ハッシュを作りたい。
PHPでは
$file = 'URLリンク(tokai-tv.com)';
echo md5_file($file);
結果:ccfc83e6c92e7571f266215458776bbf
こんな感じで作れるのだが、javaScriptでの作り方がわからない
20:デフォルトの名無しさん (ワッチョイ e6c8-mfmJ)
17/04/09 07:45:08.98 UMSN5A0G0.net
>>18
どの部分がわからないのさ
21:デフォルトの名無しさん (ワッチョイ e3a1-ApgU)
17/04/09 09:06:06.81 fJb/P0a60.net
この部分
md5_file($file)
22:デフォルトの名無しさん (ワッチョイ e3a1-ApgU)
17/04/09 12:26:46.60 fJb/P0a60.net
やっぱりよくわからない
別の方法探してみるわ…
23:デフォルトの名無しさん (JP 0Hbe-4iQ7)
17/04/09 12:48:09.41 bUVSS9K7H.net
同等の関数を実装する
24:デフォルトの名無しさん (アウアウウー Sa93-ajVR)
17/04/09 13:00:55.24 c0gwQMp6a.net
まずその関数の中身は見たのか?
25:デフォルトの名無しさん (ワッチョイ 6b7b-HE/W)
17/04/15 15:21:52.52 9YbSLxnA0.net
文字列中にバックスラッシュをエスケープせずに記述したくてString.rawを使ったのですが、
\ + 数字が含まれていると8進数に解釈しようとするのか Octal literal in strict mode という
エラーになります。
module.exports = {
path: String.raw`C:\Data\123`,
};
8進数に解釈しようとするのを回避する方法ってないんですかね?
26:デフォルトの名無しさん (ワッチョイ 1bc8-7DHh)
17/04/15 16:59:13.00 +c21o4AH0.net
>>24
調べてみたがないっぽいな
URLリンク(2ality.com)
27:デフォルトの名無しさん (ワッチョイ 6b7b-HE/W)
17/04/15 18:35:44.54 9YbSLxnA0.net
なるほど、ありがとうございます。解決できのは早くてES2018ですか。
TypeScriptでさっさと取り込んでくれないかなぁ。
28:デフォルトの名無しさん (エーイモ SE2f-pVHc)
17/04/17 11:13:56.79 EyfSFiB8E.net
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
29:デフォルトの名無しさん (エーイモ SE2f-pVHc)
17/04/17 11:15:00.74 EyfSFiB8E.net
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
30:デフォルトの名無しさん (エーイモ SE2f-pVHc)
17/04/17 11:15:25.44 EyfSFiB8E.net
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
31:デフォルトの名無しさん (エーイモ SE2f-pVHc)
17/04/17 11:15:59.76 EyfSFiB8E.net
const F = function F() {
this.age = 1;
};
F.prototype.getage = () => {
'use strict';
console.log(this.age);
};
const f = new F();
f.getage(); // undefined
32:デフォルトの名無しさん (エーイモ SE2f-pVHc)
17/04/17 11:16:39.84 EyfSFiB8E.net
>>27
>>28
>>29
>>30
の4つのコードの結果が何故こうなったのか理由を教えてください
33:デフォルトの名無しさん (アウアウカー Saef-Sirm)
17/04/17 12:35:49.92 nxPRGvnHa.net
インスタンス化したときじゃなくアロー使った時点でthisが束縛されてるから
34:デフォルトの名無しさん (ワッチョイ 0bca-n2Cn)
17/04/18 16:19:41.63 owHPt2Un0.net
generator-chrome-extension-kickstart を使ってchrome-extension作っているんです。
これ自体はすごく便利なんですが修正するたびにコンパイルが入ってリロードするため、
chromeが「この拡張機能は、自身により頻繁に再読み込みされています。」と、
開発中のプラグインを無効化してしまいます。
これが面倒なので警告を無効化する方法を教えていただけないでしょうか?
35:デフォルトの名無しさん (ワッチョイ 0b70-Pi+M)
17/04/19 09:59:50.06 NBkpFfOk0.net
手動で更新すればいい
36:デフォルトの名無しさん (エーイモ SE3f-pVHc)
17/04/19 19:05:12.62 l7QdfMBTE.net
>>32
理解しました
function()を無理にアロー演算子に書き換える必要はなさそうですね
先輩ありがとうございます
37:デフォルトの名無しさん (アウアウウー Saaf-Sirm)
17/04/19 19:18:09.01 hZKuXyWEa.net
>>35
アローは関数型プログラミングの流れを汲んでるから今回みたくオブジェクト指向で使おうとすると相性悪い
38:デフォルトの名無しさん (ワッチョイ a370-kG10)
17/04/21 21:06:23.20 Z8gqe29s0.net
関数型の流れを組んでるからとか、どうしたらそんな頭の悪いこと思いつくんだ?
そもそもオブジェクト指向と相性悪いと言うこともないし。
ただ単に既存のthisを利用したクラスベースもどきクラスシステムと相性悪いというだけで、
オブジェクト指向はプロトタイプベースでも、別のクラスベースもどきでもいくらでもできる。
39:デフォルトの名無しさん (ワッチョイ 0a8c-m8Mb)
17/04/21 21:53:18.77 TFy/T03e0.net
関数型っていうのは、ロジックを記述するもの。
オブジェクト指向っていうのは、そのロジックを持った構造を作るもの
住み分けがしっかりしてるから、オブジェクト指向+関数型で
プログラミングするのが今のトレンド
40:デフォルトの名無しさん (ワッチョイ 0a8c-m8Mb)
17/04/21 21:58:57.35 TFy/T03e0.net
>>37
> ただ単に既存のthisを利用したクラスベースもどきクラスシステムと相性悪いというだけで、
それは違う。逆にクラスベースのJavaScriptと相性がいい。
例えばこんな感じな
class Foo {
func() {
lib.sort(function() { thisはなんになる? })
lib.sort(() => { thisは当然Fooのインスタンス })
}
}
今まではthisが何になるかは、lib.sort() の仕様によって決まるから、
他の言語のように
「クラスの中のコードでthisといったらインスタンス自身に決まってるだろJK」
と言うことができなかった。
アロー関数を使って(言い換えるとfunctionキーワードなしで)JavaScriptをかけば
クラスの中でthisを使えば、どこで使ってもそのクラスのインスタンスとなり、
他の言語と同じように考えることができる。
41:デフォルトの名無しさん (アウアウウー Sacf-41eg)
17/04/21 22:51:06.77 36WFQ6u4a.net
ラムダ式に引数を与えないなんてとんでもない!
42:デフォルトの名無しさん (ワッチョイ 0a8c-m8Mb)
17/04/21 23:22:22.43 TFy/T03e0.net
>>40
そこは本質的なところじゃない自分でかってに補完しろ
43:デフォルトの名無しさん
17/04/24 05:00:01.27 UsTW2ezt0.net
>>39
屁理屈だな
メソッドにできないということが表の相性とすればそれは裏の相性だよ
44:デフォルトの名無しさん
17/04/24 23:04:59.41 39Q41QHF0.net
>>42
それは↓に言うべきことだね
>>37
> ただ単に既存のthisを利用したクラスベースもどきクラスシステムと相性悪いというだけで、
相性悪いが裏の相性(?)ということなら、>>39が書いたとおり相性が良いってことだろう。
それにそういうどうでもいいことしか言えないってことは、
>>39の内容には何も意見できないってみなすしかないねw
45:デフォルトの名無しさん
17/04/24 23:16:12.81 F4BuIEVAa.net
JS使いには性格悪い人しかいないんですかね?
46:デフォルトの名無しさん
17/04/24 23:17:09.83 39Q41QHF0.net
>>44
お前性格悪いなw
47:デフォルトの名無しさん
17/04/25 06:10:59.30 X14wy5zca.net
ブラウザさえあれば入門出来るから、いろんな人はいるだろね。
48:デフォルトの名無しさん
17/04/25 08:59:18.77 VRx9SYaG0.net
>>43
だからさあ、本当に言わないと分かんない?
コンテキストが違うでしょ?
そこまでずっとアロー関数を通常の関数のようにメソッドとして使えないという話をしてて、
その流れでの相性の話題なのよ
そしてそこでは君の言ったことは、(もっと広い視野で見て)「オブジェクト指向とは相性悪くない」
に含まれるのよ
君は数レスどころか1レスもまともに読めてない
あまりに視野が狭すぎだよ
49:デフォルトの名無しさん
17/04/25 09:57:49.62 t+yXw+A30.net
>>47
頭悪いぞお前、コンテキストは>>36のアウアウな発言
>アローは関数型プログラミングの流れを汲んでるから今回みたくオブジェクト指向で使おうとすると相性悪い
functionはOOスタイルプログラミングでクソって書いてあるのに
URLリンク(developer.mozilla.org)
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.
50:デフォルトの名無しさん
17/04/25 14:18:09.68 VRx9SYaG0.net
>>48
だからそれに君と同じように批判してるのが>>37だっていう話をしてるんだが
オブジェクト指向とは相性悪くないってはっきり言ってるでしょ
頭大丈夫か?
51:デフォルトの名無しさん
17/04/25 16:19:31.03 x5rQ36LO0.net
オブジェクトを理解できていないのがドヤ顔でなんか言ってるわw
52:デフォルトの名無しさん
17/04/25 18:42:15.58 zu/PEsNlH.net
constとfreezeがデフォルトになる時代を待ってます
2020くらいまでにおねしゃす
53:デフォルトの名無しさん
17/04/25 23:00:57.97 dVF0/yIG0.net
>>47
お前が言ってるのは、オブジェクト指向との相性じゃなくて、
古いやり方、prototypeを使ってメソッドを追加する時限定の話じゃん。
オブジェクト指向の話でいうならば、お前が狭いんだよ。
54:デフォルトの名無しさん
17/04/26 10:54:04.97 AO7c3nBd0.net
>>52
だから最初からその狭い範囲限定で話をしてるでしょ
で、広い範囲では違うよと書いてるでしょ
レスをちゃんと読めって言ってるのよ……
まだ分かんない?
55:デフォルトの名無しさん
17/04/26 12:16:56.72 bDIzZfBu0.net
>>53
>アローは関数型プログラミングの流れを汲んでるから今回みたくオブジェクト指向で使おうとすると相性悪い
これは狭い範囲に限定した発言じゃ無いと思うが
そんな必死になってこのアウアウを擁護する理由は?
56:デフォルトの名無しさん
17/04/26 21:05:53.95 d/1p1duw0.net
>>53
だからこうですよね?
限定した狭い意味
「アローはprotptypeを使ってメソッドを作成するときには使えない」
大幅に範囲拡大した場合
「アローはオブジェクト指向で使おうとすると相性が悪い」
※注意 オブジェクト指向でアロー関数が相性がいい理由は上で説明済みです
57:デフォルトの名無しさん
17/05/04 14:53:39.23 hUmLVofu0.net
メソッドを作成するときに直接使えないよりも
メソッド中で別の関数を定義するときに便利な時があるという方が
よっぽど視野が狭いんだよなぁ
オブジェクト指向と相性が良い!とか笑える
58:デフォルトの名無しさん
17/05/04 18:20:15.83 fttt3bQF0.net
視野が狭い 笑い
>>56
> This proved to be annoying with an object-oriented style of programming.
こう言ってアロー関数の動作を変更した奴に言え
59:デフォルトの名無しさん
17/05/04 18:56:55.88 K3H/sXb3a.net
javascriptの勉強する時ってフロントエンドやるよりnodeから始めた方が良いの?
60:デフォルトの名無しさん
17/05/04 19:05:34.12 WT3deWtz0.net
今時はフロントエンドでもnpm使うから明確な区切りはないかと。
いきなりtypescriptオススメ。
補完効くからめっちゃ捗る。
61:デフォルトの名無しさん
17/05/04 21:01:14.87 K3H/sXb3a.net
>>59
そうですか:-)
62:デフォルトの名無しさん
17/05/05 12:57:26.72 3EPl9jlWE.net
typescriptの補完はjavascriptの補完として使うことも出来ますか?
ternjsでライブラリなどの補完がしたいんですが対応してないみたいで
63:デフォルトの名無しさん
17/05/05 21:24:46.13 af5cZQ8Za.net
javascriptでaddEventListenerによりイベント登録したときって実際どこに登録されてるの?
例えばpにclickを登録してconsole.dirしてみてもどこにも何か登録されたような状況が見当たりません・・・
64:デフォルトの名無しさん
17/05/05 22:27:05.74 cBR5XKLX0.net
参照する手段がないだけでP要素自身に紐付けられてる
EventEmitterだと登録済みのリスナー関数を取得できたりする
65:62
17/05/05 23:23:40.21 af5cZQ8Za.net
イベントリスナ関数に適当な引数セットして関数内で引数をdirしてみたら
なんとなくイベントオブジェクト?的なものを見られましたわ
>>63
ありがうございました
66:デフォルトの名無しさん
17/05/05 23:26:56.16 TDjvniVu0.net
Firefox
URLリンク(developer.mozilla.org)
Chrome
URLリンク(developers.google.com)
67:62
17/05/05 23:39:07.79 af5cZQ8Za.net
>>65
なにこれすごい便利
ありがとうございます!
68:デフォルトの名無しさん
17/05/05 23:50:55.73 N/fwwBaZ0.net
<form name="form_gp">
<input type="text" name="form_name">
</form>
document.forms["form_gp"].elements["form_name"]という書き方で
フォームが存在しているかどうかを調べることはできますか?
IDをつけてgetelementbyIDとかいうのを使わないとダメですか?
できたらそうやればいいんですか?
69:デフォルトの名無しさん
17/05/06 02:31:13.69 feNHzNcv0.net
プログラム板のこのスレよりも、
web制作管理板の、JavaScriptのスレに書き込んだ方がいい
あっちの方が、人が多い
70:デフォルトの名無しさん
17/05/06 04:02:27.19 CFxIJcFza.net
>>67
<form name="form_gp"> が増えないのなら、そのコードは期待通りに動作するが、増えることも考慮すると、for文で繰り返し処理する方が安全
idなら <form id="form_gp"> が増やせない(一応、増えても期待通りに動作する)
というわけで役割が違うので、比較対象にならない
とはいえ、id, class があれば、nameを積極的に使う理由がないのも確か
古�
71:「APIなので、今では(初心者を除いて)ほとんど見ない書き方だな 古いAPIだからいけないわけでもないし、「新しいAPIだから」とか「トレンドだから」等の非合理的な理由で決めるべきものでもないが
72:デフォルトの名無しさん
17/05/06 10:24:39.94 CFxIJcFza.net
すまん、>>69は忘れてくれ。
仕様では form[name] は「formsコレクションのform要素の中で一意でなければならない」とあるので、getElementByIdと同じ感覚で扱えるようだ。
URLリンク(momdo.github.io)
idが良く推奨されるのはフラグメント識別子としても扱える利便性にあると思われる。
73:デフォルトの名無しさん
17/05/06 10:37:34.28 CFxIJcFza.net
HTML4.01ではname属性は後方互換性のために規定とあり、id属性を推奨されているな。
URLリンク(www.asahi-net.or.jp)
XHTML1.0ではname属性が廃止されている。
URLリンク(www.y-adagio.com)
HTML5では逆行しているが、この辺りがid属性が推奨される理由なのだろう。
74:デフォルトの名無しさん
17/05/06 11:30:21.16 eZg+uQSL0.net
>>70
不使用を推奨されているのはその辺が分かりにくい(一貫性がない)からでしょ。
例えばそのURL内(すぐ下のNote内)
> 一度要素が特定の名前を使用して参照されると、
> たとえ要素の実際のIDまたはnameを変更しても、要素がツリーに残る限り、
> その名前は、この方法でその要素を参照する方法として利用され続ける。
オイオイ!
JavaScriptから始めた人間としては、なんだこの糞仕様死ね、としか思えない。
>>67
ただ、その手の「○○はどっちを選ぶべきですか?」という質問については、
とりあえずどこか君から見てカッコイイサイトを探して、(2-3箇所ね)
その人達がどうしているかF12で見て、真似するのが一番いいと思うよ。
明らかにこっちの方がいいという場合はみんなそっちを使ってる。
どっちでもいい場合はばらけるけど、その場合はどっちでもいいので問題ない。
ここで聞いても「俺はこう思う」しか出てこない。デタラメを主張する奴もいるし。
67なんてきちんと訂正もして正しい回答を目指しているのでかなりまとも。
でも今の君には正直、「誰が正しいのか」を判断する目もないでしょ。
君のレベルなら多分、回答者がID制のところの方がいいと思うよ。
まあそもそも、フォームを探すこと自体が奇妙ではあるんだがね。
フォームがあったり無かったりってことがまず無い。
そういう場合は通常はdisplay:noneを使った方が効率がいいから、まともなサイトならそうしてる。
(今君が書いているコードが丸々不要になるだろ)
といっても俺はWeb屋ではないからここら辺の話は他の奴を信頼した方がいいとは思うが。
75:デフォルトの名無しさん
17/05/06 11:53:54.14 CFxIJcFza.net
>>72
> JavaScriptから始めた人間としては、なんだこの糞仕様死ね、としか思えない。
>>67が使用しているコードでは RadioNodeList は使っていないように読めるので、それは別の話。
「他人のコードに倣っておけばOK」は参考にしたサイトがダメだと意味がないし、本当の意味で理解したとは言えないので個人的にはお勧めはしない。
客観的な評価としては、仕様書と回答内容を比較して正誤を判断するのが確実かね…。
少なくとも、模範となる信頼性の高いサイトが一つ二つないと初心者は間違いなく、はまる。
76:デフォルトの名無しさん
17/05/06 12:42:20.62 0ciTmY36M.net
経験上、「どっちがいいですか」系の質問は「判断する目がない」もそうだが、「自分から学ぶ意志がない」がほとんどだな
自分から学ぶ意志がない質問は次のどちらかになる
- 質問文に自分の考えが皆無で回答者に判断を完全に委ねている質問
- 自分の考えがあっても、まともな基礎勉強してないことが丸分かりで、質問内容が広範、基礎から全部教えないと理解できないと思われる質問
後者は学ぶ意志はあるが、独学が苦手で熟練者に手取り足取り教えて貰う方が早いと思っているタイプ
まともな回答は豚に真珠なので、痛い目を見るまで間違い続けるのを見守るのも優しさかと思う
77:デフォルトの名無しさん
17/05/06 13:16:30.69 eZg+uQSL0.net
>>73
いや多分あの書き方だと、「一度捕まれたら名前は消えない」という仕様は、
RadioNodeList以外にも適用されてるぞ。
もっとも、同じ名前のフォームを使う場合がradioButton以外にはほぼないので、
自動脳内補完したのだとも思えるが。そもそも名前も変えないしね。
> 模範となる信頼性の高いサイトが一つ二つないと
まあ俺らはこれを提示すべきかもな。
つってもgoogleやYahooとか、いわゆる大手どころ
(Webサイトにも金を掛けて居るであろう所)
を見ればそんなに大外れはないとは思うが。
> 本当の意味で理解したとは言えないので個人的にはお勧めはしない
ちなみに俺は習うより慣れろ派。
初心者の時点ではどっちがいいなんて分からないよ。
そこで踏みとどまってしまってコードを書かないから上達しない。
だからどっちでもいいからとにかく書け、迷うなら適当に他人を参考にしろ、だね。
理想的には理解して書いた方がいいけど、それが出来る奴はあんな質問しないよ。
「どっちがいいですか」ではなく、「どこがどう違うんですか」になる。
>>74
初心者に要領を得た質問をしろというのはそもそも無理だ。
ただ一般論としては、同じようなAPIがあるの�
78:ネら、とりあえず新しい方使っとけ、かな。 大体は古いのに問題があったから更新されてるもわけでね。 偶に「新しいことこそが正義」みたいな馬鹿も沸くけど、 それはここではある程度どうしようもない。
79:デフォルトの名無しさん
17/05/06 17:36:04.74 JJUjh6I6M.net
>>75
> 初心者に要領を得た質問をしろというのはそもそも無理だ。
「質問の初心者」と「JavaScriptの初心者」は等価ではないと俺は思う
そもそも、俺は要領を得た質問を求めているわけではない
(勿論、最終的にはそうなるのが理想だが)
俺が指摘しているのは「学ぶ姿勢」で受動的な学習しかしない人は伸びないのだよ
分からないなりに調べて、分からないなりに調べた結果を書いて、それで要領を得ない質問になったとしても、調べた経験は無駄にならない
回答者は質問者の知識レベルを踏まえた回答が出来るというメリットもある
それは回答を貰って「自分には難しすぎる」と匙を投げるか、出来る限り理解しようと努力するか、の違いでもある
自分から何も調べず、回答者に完璧な回答を求めて、回答を貰って満足するタイプは自分で調べる事をしないから、いつまでたっても他人に質問して問題解決を図ろうとする
そういう人は独り立ち出来ず、いつまでも「初心者」のままだ
実際、某Q&Aサイトでも名前を何度も変えては同じような質問を繰り返して、詳しい回答を貰うと「初心者なので分からないです」と返信する人がいるよ
80:デフォルトの名無しさん
17/05/06 17:42:11.82 JJUjh6I6M.net
>>75
> ただ一般論としては、同じようなAPIがあるのなら、とりあえず新しい方使っとけ、かな。
対象ブラウザによっては新旧APIを併用するか、旧APIを使用する事もある
PromiseとかFetchとか、IE11で実装されてないことを踏まえれば、「とりあえず、新しいAPIを使っとけ」という判断にはならない事もあるだろう
81:デフォルトの名無しさん
17/05/06 19:31:13.08 eZg+uQSL0.net
>>76
質問をするスキルか。確かに今の時代だとそれが必要なのかもしれないね。
初心者にも分かるように言うと、とにかく全部ダンプしろって事だな。
何をやろうとしていて、どこで引っかかっていて、何を迷っているか。
長文が~っていう奴はゴミだから無視でいい。
というかやってりゃ分かるはずだけど、
MDNでも仕様書でもここの「長文」どころじゃない。
三行越えたら長文だ~みたいな奴はプログラマに向いてない。
>>77
そういやJavaScriptはこれがあるんだった。
初心者にも分かる結論としては、
「新しめのAPIの方がいいが、新しすぎるのは駄目」ってところか。
82:デフォルトの名無しさん
17/05/06 22:35:31.96 +G79tDXD0.net
いくら新しいAPIの知識はあっても
現状の実装をいかに把握するかだけ
これだけ
83:デフォルトの名無しさん
17/05/06 23:59:40.05 liyf1SfOa.net
>>75
> いや多分あの書き方だと、「一度捕まれたら名前は消えない」という仕様は、
> RadioNodeList以外にも適用されてるぞ。
どうして「同じ」と解釈したのか、理解できなかったので、仕様のどの文章をどう解釈したのか、説明が欲しい。
document.forms は HTMLCollection を返すので live
URLリンク(momdo.github.io)
form[name] は RadioNodeList (NodeList を継承している) を返すので not live
form.elements は HTMLFormControlsCollection を返すが、HTMLCollection を継承するのでこちらも live
URLリンク(momdo.github.io)
Google Chrome 58.0.3029.96 で再現出来なかったので、現象を再現可能なコードも欲しい。
URLリンク(jsfiddle.net)
84:デフォルトの名無しさん
17/05/07 00:55:55.42 nVVEnA7X0.net
>>80
こちらも動作を確認したがそちらと同じ。
英語の仕様書も確認したが確かにそう書いてある。
しかし動作はそうなってないね。
> 一度要素が特定の名前を使用して参照されると、
> たとえ要素の実際のIDまたはnameを変更しても、要素がツリーに残る限り、
> その名前は、この方法でその要素を参照する方法として利用され続ける。
これはつまり、ブラウザ内部に名前引き用のキャッシュを持っていて、
ヒットした場合はそれを使い、ミスなら新規登録
85:、 ノードが取り除かれる時にエントリから消し、 DOMノードの属性変更ではエントリを確認してないと言っている。 (更新はしないので一旦登録されたら名前が残ったままになる) 高速化では定番の方法だし、実際に名前を変える必要があることは無いので、 内々で使う場合の仕様としてはこれもありだろう。 ただし外面仕様として出す場合はこれは無理だ。知識的に粗結合化出来てない。 (このAPIを使う場合に例外ケースを把握してないと使えない) だからこの仕様を外面仕様としている場合は間違いなく糞だ。 ただし、実際の動作はそうなってない。 どっちが正しいのかは俺には分からん。 仕様として美しいのは間違いなく今のブラウザの動作だ。 だから推測するなら、 元々マクロ用だった為の奇妙な(ただし知っていると便利な)DOM周りの旧仕様を 一般的なプログラミング向けの仕様(直感的、統一的、一貫性重視)に 変更している最中といったところか。 俺が仕様について裁定する権限があるのなら、 上記引用部分を削除して終わりだね。(ブラウザの動作に合わせる)
86:デフォルトの名無しさん
17/05/07 05:32:07.74 oHRRm09Q0.net
そういうのはDOM Lv0といって昔のデファクトを文章にしただけのものだから
ベンダー間でこうしていきましょうねと合意が取れてるものとは違うぞ
Webは生き物だから正しいも正しくないもない
神様も居ない
87:デフォルトの名無しさん
17/05/07 09:10:15.71 nVVEnA7X0.net
まあしかし、仕様書と実装の同期は取っておくべきだろ。
それが>>80の意図だろ多分。
こちらで試した限りではFireFoxでも同じだった。
80が仕様について何かやっている人なら頑張れとしか。
88:デフォルトの名無しさん
17/05/07 09:41:57.10 CzdP8WPaa.net
>>81
伝わってないようだが、「その3行の意味が理解できないから説明してくれ」や「その仕様が糞である理由を説明してくれ」ではない。
RadioNodeList 以外にも「たとえ要素の実際のIDまたはnameを変更しても、要素がツリーに残る限り、その名前は、この方法でその要素を参照する方法として利用され続ける」が適用されると判断した「仕様の文章」を引用して「あなたの解釈」を説明してくれ。
89:デフォルトの名無しさん
17/05/07 09:51:22.86 nVVEnA7X0.net
>>84
いやそれは文章そのものだろ。
和文も英文も、あの書き方ならRadioNodeList以外も含むとしか取れないが。
てかお前、日本語も英文も読めない人?
90:デフォルトの名無しさん
17/05/07 09:57:53.45 CzdP8WPaa.net
HTML Standard や DOM Standard には「後方互換性の為に標準化した旧来の仕様」が多数存在する。
(>>82のいう DOM Level 0がそれだが、子の表記はMDNでしか見たことがないな)
XHTML2.0での失敗、IE6がいつまでも現役時代だった失敗を経て、HTML5 では既存のブラウザで動く事を重視して標準化しているからだ。
それが彼(>81)の言う「糞な仕様」だが、そうする事で旧来の古いブラウザの独自拡張で書いたコードも全てのブラウザで動くことが保証される。
「美しい仕様」よりも「動く仕様」を重視しているので、>>81とは目指すべき方向が違う。
91:デフォルトの名無しさん
17/05/07 10:05:18.25 CzdP8WPaa.net
>>85
そこまで否定される筋合いはないんだが、なぜそう挑発的なんだ?
> 指定したIDまたはname(歴史的な理由でイメージボタンを除く)をもつフォームでフォームコントロール(または複数存在する場合、フォームコントロールのRadioNodeList)を返す。または、いずれも存在しない場合、与えられたIDとともにimg要素を返す。
> 一度要素が特定の名前を使用して参照されると、たとえ要素の実際のIDまたはnameを変更しても、要素がツリーに残る限り、その名前は、この方法でその要素を参照する方法として利用され続ける。
> 複数のマッチするアイテムが存在する場合、それらの要素すべてを含むRadioNodeListオブジェクトが返される。
この文章は form[name] に書かれたもの。
文章内で「form.elements や document.forms にも適用される」とはない。
返り値の Interface も RadioNodeList と HTMLCollection で全く違う。
どう解釈したら「form.elements や document.forms にも適用される」となるのか日本語を読めない俺に説明してくれ。
92:デフォルトの名無しさん
17/05/07 10:48:18.68 nVVEnA7X0.net
>>87
> 日本語を読めない俺に説明してくれ。
それは無理。
ここで国語の授業をするのは原理的に無理なんだよ。
俺が日本語でいくら説明しても、君はそれを俺が意図した通りに読めないことを意味する。
君がいくら反論してきても、それは俺には君が意図したとおりには伝わらないことを意味する。
だから片方の言語が不自由な時点で、「文章での」議論は空転する。
だからこそ韓国人はここではものすごく嫌われているわけでね。
俺には和文も英文もそうとしか取れないし、
仮にそれが俺の間違いなら、俺がそれを君に俺の文章で説明することは不可能なんだよ。
だから原理的に無理。
93:デフォルトの名無しさん
17/05/07 10:57:46.04 CzdP8WPaa.net
>>88
そうか。日本語を日本語で説明できないとは謎理論だが、あなたの中ではそうなんだな。
>>87では「日本語が読めない」と書いたが、それは言葉の綾で俺は日本語を読めると思っている。
「>>88の中では RadioNodeList 以外にも適用されると解釈したんだな」ぐらいに思っておくことにする。
俺はあなたの根拠なき主張を信じないがね。
94:デフォルトの名無しさん
17/05/07 11:16:41.63 6eyY7xjMa.net
なぜいつもこうなるのか
95:デフォルトの名無しさん
17/05/07 12:08:47.12 nVVEnA7X0.net
韓国人が紛れ込んでいるからだろ。
2chにおける典型的なスレ崩壊パターンだよ。
だから彼等は嫌われる。
実を言うと80の時点で意味不明だった。
そもそも俺が噛み付かれる理由がないし、
文章自体も直接的に俺に向けた物とも思えなかった。(話が噛み合っていない)
ただ俺はこういう馬鹿も見飽きてるし、コードが上がっているので試しに見てみたら、
ああなるほど彼はこれが言いたかったのか?と思って81を書いた。
それが伝わっていないというのなら、俺にはどうしようもない。あれで精一杯だ。
ちなみに俺はゆとりに対しても同様に怒っているが、
ゆとりに関しては日本人だから俺らにも教育責任はあるとも思う。
ただ韓国人については死ねとしか思わないね。
96:デフォルトの名無しさん
17/05/07 12:18:54.29 oXR95zrtM.net
ID:nVVEnA7X0 が感情的になって無駄に煽るから、こうなる
どちらかが間違っている事ご分かっていて、「日本語も英文も読めない人?」といわれたら、カチンとくるのは当然
>>80はそれでも我慢した方だと思う
97:デフォルトの名無しさん
17/05/07 12:23:58.61 MBvQ9mQY0.net
支離滅裂すぎる
全然関係ないこのスレに人種差別持ち込むなよ
98:デフォルトの名無しさん
17/05/07 12:39:51.32 nVVEnA7X0.net
>>92
逆ギレ止めーや。
つか最近そういう奴も増えたけどね。
基本的価値観として、まともな日本人なら、「間違っている奴が悪い」なんだよ。
既に書いたが、和文も英文も俺にはそうとしか読めないし、
それで間違っているというのなら、俺がそれを説明する能力なんて原理的にないのさ。
だからその説明を俺に求めるのも論理的に矛盾してる。
お前らは馬鹿すぎてこのことが理解出来ないようだが。
99:デフォルトの名無しさん
17/05/07 13:22:06.98 nVVEnA7X0.net
>>93
そうやって正統な批判を全部人種差別にすり替えるのが韓国人の汚い手口だよ。
だから今後とも嫌韓は収まらない。
そもそもここで韓国人呼ばわりされることがおかしいだろ。
顔も見えない、性別も分からない、見えるのは書き込みだけなのに。
それでも嫌われるのはそういうことをやり続けてるからだよ。
今回の例で言えば、
仕様書「RadioNodeListを含みます」
俺「『含みます』って書いてあると思うけど」
韓国人「いやそうは書いてない。書いているという証拠を示せ」
俺(どうしろと)
俺が間違っているというのなら、お前らが代わりに説明してやればいいだけ。
それも出来ないのなら、お前らは批判の為の批判をしているだけ。
それは韓国人やヤクザの手口だよ。だから彼等は嫌われる。
そういうゴミを嫌う権利は誰にでもある。ここら辺をパヨクは間違っている。
もちろん、俺を嫌う権利はお前らにもある。
だから俺はWeb板のスレには行かない。俺が嫌いならあっちで頑張れ。
あっちはあっちで機能しているし。
こうやって複数のスレで競争しないと、
今のJavaScriptのスレの面子では状態を改善出来ないんだ。
だから俺が強硬に並立を主張したわけでね。
100:デフォルトの名無しさん
17/05/07 13:30:47.09 nVVEnA7X0.net
ああすまん、ミスってた。
無駄に喧嘩になっても仕方ないので一応投稿し直す。
仕様書「RadioNodeList以外も含みます」
俺「『含みます』って書いてあると思うけど」
韓国人「いやそうは書いてない。書いているという証拠を示せ」
俺(どうしろと)
とにかく、俺には含みますと書いてあるとしか見えない。
それが俺の間違いだというのなら、君らがそれを指摘してくれればいい。
俺にはこれ以上どうすることも出来ないのさ。
101:デフォルトの名無しさん
17/05/07 13:37:00.76 oYGQiupR0.net
┐(´∀`)┌
102:デフォルトの名無しさん
17/05/07 13:42:44.84 08drzkS6M.net
典型的なネット右翼やな
103:デフォルトの名無しさん
17/05/07 14:22:41.48 TbpBAUHmp.net
空気を読まずに蒸し返してみる
ある事の証明は存在をひとつ示せばいい
ない事の証明は全てを網羅しなければならない
この2つの証明はは等価ではなく後者の方が圧倒的に困難である
よって、ないことを証明しろ、それが出来ないならあるのだという論法は典型的な詭弁の手法として用いられる
ある事が分かっているならば当該箇所を示せばその時点で論破()できるのに、それをせずに相手に悪魔の証明を求めるのは、あるという証拠の1つすら示せないからに他ならない
104:デフォルトの名無しさん
17/05/07 14:55:04.57 nVVEnA7X0.net
つか、何度も言っているが、
俺が間違っているというのなら、お前らが説明してやれよ。
マジでお前らヤクザのやり方を地で行ってるぞ。
仕様書の該当部分は既に明示されているし、
そこにはそう書いてある(と俺には読める)
これ以上俺が出来ることはないんだよ。
お前らって、内容を読まずに批判する為の批判を繰り返すよね。
そして相手が悪いという事に無理矢理持っていこうとする。
これはゆとりに多いパターンだけど。
105:あ
17/05/07 15:04:07.44 tachXp58a.net
イデオロギーと主張と日本語が読めないと言うのは互いに疎だろうから、ちょっとこうなると話が終わらなくなるな。
>>95
正当か正当でないかは主観だから言い換えるとして「正当かもしれない批判を全部人種差別にすり替える」を技を
>>95という批難のレスが自己言及を起こしてるから、根拠を足すか別の表現で説明して。
批判のための批判ではなくて、論理的に正しい批判が読みたいな、俺は。
106:デフォルトの名無しさん
17/05/07 15:38:18.75 nVVEnA7X0.net
>>101
日本語でおk
107:デフォルトの名無しさん
17/05/07 16:22:44.83 TbpBAUHmp.net
ヤクザ、ゆとり、韓国人、これらはすべて論理的な議論において無用なレッテル貼りでありこれまた詭弁の典型例である
発言者が馬鹿だと論旨の正否に関わらず批判を受けるという好例だわ
108:デフォルトの名無しさん
17/05/07 16:58:46.44 oXR95zrtM.net
>>80は真っ当なものだし、正しいと俺は思う
根拠(URL)も十分に出てるし、補足することは何もない
対して彼の返答は「そうとしか読めない」しかなく、具体的なところは何もない
信じてもらえなくて当然だと思う
109:デフォルトの名無しさん
17/05/07 17:24:34.96 oXR95zrtM.net
>>96
少なくとも彼は>>80や>>87で自分の正当性を説明出来ているけどね
君はなぜか完全スルーの構えでそこに触れてないが
仕様は変わらないのだから、仕様の解釈を説明するしかないのに、それが出来ないのは君に説明能力がないとしか思えない
あと、君の発言は段々、暴論になってきているから気を付けた方がいい
人格否定や差別的発言は明らかに君が間違ってる(君の論にてらせば、君が悪い)
いっちゃ悪いが、自分の発言が認められなくてだだをこねている子供のようだ
110:デフォルトの名無しさん
17/05/07 19:09:24.78 nVVEnA7X0.net
というかこの手の「ゆとりスクラム」、最近割と良く遭遇するようになったが、何がしたいんだ?
俺に説明能力がないというのなら、俺に説明を求めること自体がおかしいし、
説明能力があるゆとり君が代わって説明すればいいだけ。
俺が文章を読めてないというのなら、俺にそれを文章で説明しろというのは無理な話。
俺を信じれないというのなら、ああそうですかでしかない。そもそもそういう話ではないし。
ゆとりって基本的に他人に文句は言うけど、自分で改善しようとは全くしないよね。
今の現実世界はそれまでの大人達が少しずつ改善を重ねてきた結果だというのに。
俺は2chしかほぼ見てないから
> 実際、某Q&Aサイトでも名前を何度も変えては同じような質問を繰り返して、
> 詳しい回答を貰うと「初心者なので分からないです」と返信する人がいるよ (>>76)
には遭遇したことがないけど、(というより遭遇しても気づくほど見てない)
この手の「無理矢理○○って事にしたい」ってのは最近すごく遭遇するんだが。
111:デフォルトの名無しさん
17/05/07 20:11:06.03 6eyY7xjMa.net
わかったから他所でやってや
ゆとりでもそうでなくてもどうでもいいが、スレタイぐらいは読めるやろ
112:あ
17/05/07 20:31:31.21 tachXp58a.net
>>102
日本語読めないんだ。
113:あ
17/05/07 20:36:30.42 tachXp58a.net
>>106
破綻しとる。
自説を説明する能力がある人間でも、代わって「おまえの理論」の説明はできまい。
説明能力が無いなら説明を求めるのがおかしいって無茶苦茶じゃん。
説明能力がある奴に、説明を求めるのは無意味だろ。
だって説明能力があるならば、求めるより前に説明してるはずじゃん。
説明能力か無いからこそ、説明しろと要求されていると思えよ。
論理的にやろう。ゆとりも、非ゆとりもな。
114:デフォルトの名無しさん
17/05/07 21:20:48.44 7pYr0TYR0.net
> 俺に説明能力がないというのなら、俺に説明を求めること自体がおかしいし、
書いてあんだろ?
「俺に説明能力がない」だ
説明が足りないじゃない。
説明する能力がないのだ。
感情を表現する能力がないやつに
感情を表現しろと言っても無理だろ?
計算する能力がないやつに計算しろと言っても無理だろ?
説明する能力がないやつに説明しろって言っても無理だろ?
115:デフォルトの名無しさん
17/05/07 21:34:41.49 nVVEnA7X0.net
つまり結局こうだろ
>>109
日本語でおk
116:デフォルトの名無しさん
17/05/07 21:46:16.89 7pYr0TYR0.net
要するに「無能」が正しいと認めているわけだから、
「無能」に聞いても、能力がないやつには答えられないということ
117:あ
17/05/08 06:06:52.81 FkyLZnezd.net
>>112
違う違う。
無能だからこそ、説明を求められるんだ、と。
能力が無いならば、最初から説明しようとすらするはずが無いんだよ。
全くできない事をしようとする事はあり得ないんだし。
空が飛べないのに空を飛んで見せるのが、全くできない事をするって言うことだよ。
相手の言葉をうまく摘んで「無い」の定義を適当に用意してはいかん。ただの逃避だよ。
それこそ自分が揶揄してるやつ。
吐いた唾は飲もう。
118:デフォルトの名無しさん
17/05/08 09:35:49.25 5zWKRhzL0.net
無能なほど意味不明な説明をしたがる
119:デフォルトの名無しさん
17/05/08 11:29:12.00 tZFlTACxM.net
自らの正当性を主張する人が自己完結していないわけがなので、ID:nVVEnA7X0も俺も自己完結している点では同じ
見解の相違で衝突した場合、お互いに根拠を出しながら意見を出すのが普通
相手の論理を崩すには「相手が出した根拠が間違っている証拠」をだしたり、「根拠の解釈が間違っている論理的矛盾」をだしたり、と論理的に話をする
ところが、ID:nVVEnA7X0 は「いや多分あの書き方だと(>>75)」「そうとしか取れない(>>88)」と恣意的な感想を述べるばかりで根拠も論理展開も何もなければ、相手の論理的矛盾に言及するわけでもない
根拠や意見を掲示するのは>>80だけ
説明出来ないというが、「そうとしか取れない」理由を具体化すれば説明可能なはず
具体的な何をすれば良いかは>>84で補足要求してくれているのに無反応
この状況で説明能力がないといわれるのは仕方がないし、何も反論出来ないのなら説明能力がないと認めているも同義だと思うがね
120:デフォルトの名無しさん
17/05/08 11:29:40.46 NT22crifd.net
人間なんてみんな無能だよ
協力し合わないとなにも為せないんだよ
そのことを忘れちゃだめ
121:デフォルトの名無しさん
17/05/08 13:25:26.02 Bf5KwLeX0.net
とりあえずスレ違いだからツイッターあたりでバトってもらっていいかな?
122:デフォルトの名無しさん
17/05/08 14:07:05.92 IYxMOUu+0.net
一体何と闘ってるの?w
123:デフォルトの名無しさん
17/05/08 21:44:07.20 tJDemEgX0.net
そりゃレスした相手とじゃね?
124:デフォルトの名無しさん
17/05/11 22:25:00.55 D3pDarkB0.net
window.fetchでshift-jisのデータをダウンロードしてresponse.text()で文字列にすると文字化けしてしまうのですがどのようにすれば文字化けしないようにできますか?
125:デフォルトの名無しさん
17/05/12 08:25:26.77 R/plUqDZM.net
>>120
サーバ側で正しい文字コード(Shift_JIS)を指定する
URLリンク(www.google.co.jp)
126:デフォルトの名無しさん
17/05/12 08:36:44.00 C/LqUOBj0.net
>>121
外部サーバーなので出来ないです(´;ω;`)
127:デフォルトの名無しさん
17/05/12 09:15:45.68 mYSraKh80.net
メッセージングの手段とかないの?
まあ例えばC#アプリとやり取りするときとか、最も汎用的な方法はローカルWebSocketだよ
128:デフォルトの名無しさん
17/05/12 09:40:01.01 lh1VWFPT0.net
2chも、shift-jisだから、JSで扱えない
でも、YQL(Yahoo Query Language)を通して取得したら、UTF-8になってる。
文字コードを推測して、変換しているのかね?
この板よりも、web制作管理板で質問した方がよいかも。
そっちの方が、人が多いから
129:デフォルトの名無しさん
17/05/12 09:46:56.13 +AK5iqTC0.net
> 2chも、shift-jisだから、JSで扱えない
そんなわけねーだろw
文字コードを変換すればいいだけ
130:デフォルトの名無しさん
17/05/12 09:48:05.24 +AK5iqTC0.net
もしくは適切にパラメータ与えれば
ブラウザが勝手にやってくれる
131:124
17/05/12 10:15:34.52 lh1VWFPT0.net
iframe に読み込ませれば、ブラウザが自動変換するから、文字化けしないけど、
自分で、JSで、2chのHTMLを取得しようとすると、shift-jis のままじゃないの?
つまり、ブラウザを通せば、変換されるけど
132:デフォルトの名無しさん
17/05/12 13:33:42.65 R/plUqDZM.net
Fetch APIにはContent-Typeを上書きする機構はないのかな
>>122
外部サーバならクロスドメインを許可してる事になるという事?
それなら、そのサーバ管理者に相談してみては?
133:デフォルトの名無しさん
17/05/12 13:46:56.99 R/plUqDZM.net
スレリンク(hp板:392番)
「移動を勧められたので、移動しました」と言い訳しそうだが、質問をクローズせずに並行質問する行為はマルチポストという
人が多いとノイズも多くなるので、俺はWeb制作板をお勧めしないな
134:デフォルトの名無しさん
17/05/12 13:55:16.77 R/plUqDZM.net
new Headers で XMLHttpRequest#overrideMimeType 相当の機能が実装できそうだが
URLリンク(sbfl.net)
135:デフォルトの名無しさん
17/05/12 14:55:20.81 5Al+NPqt6.net
>>130
リクエスト時のヘッダーにコンテンツタイプを指定するってことですよね?やったんですが出来ませんでした。
136:デフォルトの名無しさん
17/05/12 14:56:27.27 5Al+NPqt6.net
>>28
相手は2ちゃんのサーバーです
137:デフォルトの名無しさん
17/05/12 15:00:29.58 5Al+NPqt6.net
fetchにはオーバーライドマイムヘッダーはないというとこですか?
文字コードを変換することは出来ませんか?
実行環境はelectronのrenderer processです
出来ればnode.js特有のモジュールを使わない方法がいいですが...
138:sage
17/05/12 22:45:38.02 LHrmkeU40.net
setTimeoutとseIntervalって使い分けってどうやるんやるんですか?
なんか参考にするコード教えてください
139:デフォルトの名無しさん
17/05/12 22:52:47.26 QfK6Pl49a.net
そのまんま、一定間隔で実行を繰り返したいか一回だけ呼びたいかの違い
140:デフォルトの名無しさん
17/05/13 02:16:56.42 nrviLaTM0.net
>>132
2chは、文字コードを指定していないから、やっかい。
JSでは、UTF-8 と扱われて文字化けする
結局、jQueryから、YQL (Yahoo! Query Language)のサービスを使って、
2chのHTMLを取得できた。
YQLで、shift-jis からUTF-8へ、文字コードを自動変換しているのかな?
jQuery → YQL → 2ch
VBScriptについて必死に話し合うスレ
スレリンク(tech板:924番)
141:デフォルトの名無しさん
17/05/13 03:58:22.44 c8FuYpqba.net
>>134
一定周期動作をさせるなら、処理完了後からIntervalを取るか、処理開始時からIntervalを取るか
例外でタイマーを止めるか、一定周期で例外を出力し続けても止めないか
142:デフォルトの名無しさん
17/05/13 06:43:23.71 nrviLaTM0.net
「settimeout setinterval 違い」で検索!
143:デフォルトの名無しさん
17/05/13 10:44:28.39 OFQbtHdZ0.net
HTMLのテキストボックスへ日本語を入力中に、
強制的に確定(Enterを押した場合と同じこと)
もしくは入力をキャンセルさせる(ESCを2回押したような処理)ことは可能ですか?
144:デフォルトの名無しさん
17/05/13 11:20:23.82 XNXAvzoIF.net
IMEイベントを上手く利用すれば可能
145:デフォルトの名無しさん
17/05/13 11:42:20.94 7pndE6Ym0.net
それができるなら、利用者の性癖を盗みとる事ができそうだな
146:デフォルトの名無しさん
17/05/13 20:35:36.55 BFgjnkHK0.net
カンマ演算子を積極的に使っているコードを知らないか?
この際、他言語でも構わない。
三項演算子を使って宣言的(という言い方が正しいかは微妙だが)に記述すると、
var somevalue = (caseA)? valueA : (caseB)? valueB : valueC;
という形になってくるのだけど、
この際単純な式だけでは無理な時があって、カンマ演算子を使いたくなってくる。
とはいえCの世界ではほぼ完全に禁止に近くて、推奨とか積極使用とかは聞いたことがない。
おそらく何らかの問題をはらんでいるからだと思う。
元々Cは手続き的だし、限界までチューニングするので、相性も悪い。
そこで、わりと好き勝手やっているJavaScriptの世界なら誰かしら使っているかもしれんし、
ソースも見えて助かるので、どこか積極使用しているところとか知らないか?
推測だが、他の「宣言型」と言われる言語も
本当に宣言的に記述するのなら大量使用しているはず。
ソースが公開されていて、何をやっているか分かり、
相手の技量も分かる状況なら他言語でも構わないのでよろしく。
さらっと調べてはみたんだが、
そもそも使ってない言語の検索では要領を得ず、いいのが出てこない。
Scala使っているやつ居たよな?そっちではどうとか、あればよろしく。
147:あ
17/05/13 20:52:18.30 l2RlSRsKd.net
>>142
google closure compilerが割と積極的に,使ってくるよ。
問題と言えば、代入だったら実際に代入される値から遠いとか、そもそも分けて書けよとか、アトミックである保証がある場合とない場合があるとか、色々ある。
148:デフォルトの名無しさん
17/05/13 21:35:25.83 BFgjnkHK0.net
つかClosureCompiler遣い居たのか。
それってコンパイル後のコードって読まないでしょ?
(なんで君が読んでいるのかは知らんが。
さすがにミニファイは読めないから信じるしかなくて、
通常ClosureCompilerもそれに近い扱いだと(勝手に)思っているが)
おそらく問題は「可読性」だけなんだと思っている。
だからコンパイラやトランスパイラが使うのは全く問題なくて、
逆に言えば、使うメリットがあるからコンパイラが使っているとも言える。
可読性の問題はおそらく「色々な書き方が出来ること」「読む方が不慣れなこと」に尽きる。
だから「コンマ演算子が多用されている『世界』」があれば、
彼等はなんとかしているのだとも思っている。だからそれを確認したい。
googleのコーディングルールでは、
C++もJavaScriptもカンマ演算子を明確には禁止にしていない。多分グレーゾーンだ。
> アトミックである保証がある場合とない場合があるとか
カンマ演算子でアトミックに出来るか?
というかいわゆるマルチスレッド環境で言う「アトミック」はJavaScriptにはないはずだが、
それ以前にシングルスレッドだからアトミックとか要らんわけだが。
149:デフォルトの名無しさん
17/05/13 21:37:14.85 qMDptb/r0.net
カンマ演算子みたいな副作用前提のものを宣言型プログラミングで積極的に使うなんてことあるかぁ?
ただ一文になってるってだけじゃん
普通は関数化して処理部分は関数内に隠蔽するでしょ
150:デフォルトの名無しさん
17/05/13 21:58:34.66 BFgjnkHK0.net
いやその関数を2回呼びたくない時にどうするかだよ。
副作用無しの関数なら、先に呼んでしまって一時変数化するというのが通常の解法。
でも最初の分枝、142の例で言うとcaseAに当たった場合にこれは不要なら、
関数呼ぶだけ無駄でしょ。
関数に副作用がある場合は一時変数化も出来なくて、
if文でしこしこ書くことになる。
とはいえ関数型の場合は副作用無しにして何度でも呼んでしまえ、が正義なのかもね。
なお俺が使おうとしている状況は、、、と詳細に説明しようとしたが、
JavaScriptの場合は型無しなので、 || と && 上手く使ったら
カンマ演算子無しで書けそうな気もしてきたorz
151:デフォルトの名無しさん
17/05/13 22:15:31.25 qMDptb/r0.net
??
関数を2回呼ぶとか一時変数にしないといけないってのがよくわからん
必要ないと思うけど…まぁ本人が自己解決できそうならいいか
152:デフォルトの名無しさん
17/05/13 22:23:27.64 nrviLaTM0.net
どの言語でもそうだけど、
コロンで区切れば、独立した文だから、安全
カンマでは、独立した文にならないから、
副作用・評価順序などを勘違いしやすく、バグが多くなる。
だから、カンマは使わない方がよい
短絡評価も、後ろの式が実行されるかどうか、分かりにくいので、
使わない方がよいと言われる
153:デフォルトの名無しさん
17/05/13 22:26:02.59 7pndE6Ym0.net
とりあえず、文と式の区別がつくようになってから出直しなさい
154:デフォルトの名無しさん
17/05/13 22:35:08.66 aLhAg7Rda.net
プログラマーたるもの言語仕様に依存せず、型を強く意識し型に対してプログラミングしましょう
155:デフォルトの名無しさん
17/05/13 22:35:17.69 BFgjnkHK0.net
>>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);
とも出来る。
156:デフォルトの名無しさん
17/05/13 22:35:19.85 nrviLaTM0.net
これだと、fが1回呼ばれるのか、2回か、どちらか分からない
1 < f() && f() < 10
こう書けば、1回しか呼ばれない
a = f();
1 < a && a < 10
Pythonでは、こう書けるから、1回しか呼ばれない
1 < f() < 10
fがオブジェクト・関数などの場合、どういう副作用があるか分からない。
何かのリソースにアクセスして、その電荷を変えてしまうかもしれない
volatile というけど、読み取っただけでも、電荷が逆転するデバイスがあるから、
2回読み取ったら、正常に動かないとか
157:デフォルトの名無しさん
17/05/13 22:35:56.65 BFgjnkHK0.net
諦めてif文でしこしこ書いてもいいのだが、tgtsなんて結局ここでしか使ってないし、
欲しいのはresultだけだから var result = の書き方で出来た方が見やすい。
ただ、関数型ならここをそのまま切り出して、
function somefunc(name){
ここはif文でしこしこ
return result;
}
で上位からは
var result = somefunc(name);
で隠蔽してよしとするのかな?
多分ここが噛み合ってないのだと思う。
158:あ
17/05/13 22:38:11.42 l2RlSRsKd.net
>>144
いや、カンマ演算子全体に対して言ったんだよ。
読む側が不慣れとかじゃなくて、どれくらいのメリットあるの?
メリットがあってもデメリットを下回れば、そりゃ無駄なんだし。
159:デフォルトの名無しさん
17/05/13 22:50:19.81 BFgjnkHK0.net
>>154
ちょっと輻輳気味だが、
>>151内、
1. get_tgts(name)はユーザー作成リストを参照するので際限なく重くなる可能性があり、
可能であれば出来るだけ引きたくない。
2. ちなみに今はこの手の「重くなるかもしれないユーザー作成リスト」についてはキャッシュを作成し、
それを引いているから実は重くないのだが、キャッシュの管理が面倒なのも事実。
3. だから「重いけど我慢出来る範囲」ならキャッシュ無しで組むのもありか?とも思ったり。
160: その時に出来るだけ無駄のない動作をする為の記述が必要であり、それが今回。 つっても同様のケースは以前からあり、 カンマ演算子を三項演算子内で使用することについては、考えてはいたんだが。 実際、result を得る為だけに使う tgts とかは result = 式内に閉じこめた方が見やすいでしょ。 そして記述通りに動くのならそれが最速の記述ではあるし。 見やすくて速いんだからやらない理由はない。 ただしカンマ演算子については積極的に使っているのを見たことがないから、 多分何かしらかなり問題があって、、、だろうからそれを先に確認したくてね。
161:デフォルトの名無しさん
17/05/13 22:57:27.66 qMDptb/r0.net
>>151
こんな感じでどうでしょ
var result = sell ==='ALL'
? query_set(name,'ALL')
: ((tgts,name,obj) => tgts ? query_set(name,tgts) : obj )(get_tgts(name), name, obj[name]);
162:デフォルトの名無しさん
17/05/13 23:06:40.11 BFgjnkHK0.net
>>148
> 短絡評価も、後ろの式が実行されるかどうか、分かりにくいので、
> 使わない方がよいと言われる
いやそれはCの世界では嘘だ。あっちは短絡評価ありきで組む。
そして俺はもちろんJavaScriptもそうしているし、
逆にwhile文とかは短絡評価無しだと組みにくいでしょ。
典型的パターンは以下。
var i = start;
while (i<arr.length && arr[i].p
163:rop!=xxx) i++; 関数型?で無理矢理組めば、 var i = arr.slice(start).findIndex(function(v){return v.prop==xxx;})+start; なのか?しかし無駄が多いし余計に見にくいだろ。
164:デフォルトの名無しさん
17/05/13 23:17:11.98 BFgjnkHK0.net
>>156
それが
> 普通は関数化して処理部分は関数内に隠蔽するでしょ (>>145)
なのか?
その書き方ではカンマ演算子を使わなくて済んでいる。
引数を一時変数に使うことにより回避している。
これは事実だが、余計に見にくくないか?(多分if文使って書いた方がマシ)
また、それって一般的か?俺はあんまり見ないが。
(もっとも、俺は配信されているもの、
つまりコンパイル後のコードしか見てないから、ES3準拠?とかの可能性はあり、
コンパイル以前のコードについては知らないんだが)
165:デフォルトの名無しさん
17/05/13 23:23:24.73 qMDptb/r0.net
「配列arrの中の、start番目以降の要素の中で、prop==xxxに当てはまる最初の要素のインデックス」を
求めるならこんな感じにそのまま書けばいいのよ
var i = arr.findIndex((v, idx) idx>=start && v.prop==xxx);
166:デフォルトの名無しさん
17/05/13 23:33:21.05 BFgjnkHK0.net
>>159
ああそれはその通りだね。
(俺はあの書き方はそもそもしないから慣れてない)
ただ俺はそれだとstart以前も走査するのが気に入らないから、
やっぱりwhileで回すけど。
167:デフォルトの名無しさん
17/05/13 23:36:49.07 f5G7qLua0.net
>>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);
168:デフォルトの名無しさん
17/05/13 23:38:27.63 f5G7qLua0.net
>>157 >>160
> なのか?しかし無駄が多いし余計に見にくいだろ。
> (俺はあの書き方はそもそもしないから慣れてない)
コードの話をしようぜ?
俺は見にくいというのは、コードの話じゃなくて
お前の話になってる。
お前が見にくいっていうのなら、単にお前が未熟ってだけ。
コードの話をしている時に、人の話をしてはいけない
169:デフォルトの名無しさん
17/05/13 23:41:00.33 f5G7qLua0.net
>>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);
一行につなげて比較してみよう
170:デフォルトの名無しさん
17/05/13 23:46:38.05 Iih4R+8da.net
カンマ演算子の使いどころは、一つのStatementしか記述を許されてない箇所にある
(while文の条件式、アロー関数の省略記法、三項演算子など)
省略記法が大好きな人ほど好む傾向があるかも知れない
171:デフォルトの名無しさん
17/05/13 23:48:01.73 qMDptb/r0.net
>>158
いやまぁもちろんこんな無名関数をそのまま書いたりしないけどね
上と抽象度違っちゃってるし、いつもはちゃんと名付けするよ(面倒だから手抜きしましたごめんなさい)
「一般的か?」って言われたら、JavaScriptでは一般的ではないでしょう
だいたいみんなif文使うし、宣言型なんて見ない見ない
ただまぁこうやって引数にしちゃえばキャッシュ出来るよという参考までに
あとは自分で選べばいいさ
172:デフォルトの名無しさん
17/05/13 23:49:06.10 BFgjnkHK0.net
>>161
sliceした方がいいかどうかは場合によるのだけど、
一般的にはsliceせずに回す>>159だと思うぞ。
それはおいといて、そもそも findIndexに開始地点を指示出来ないのが謎なんだが。
だからlodashが必要になるわけで。
とはいえlodashは普及しないよ。
確かに短く書けるけど直感的ではないし、わざわざ学ぶほどの価値もない。
とにかくその件については俺はwhileの一択だ。
速いし分かりやすいし。
君がそう思わないのも君の自由。
ただいずれにしても、おれはカンマ演算子について聞きたいのであって、
157以降は俺の興味以外だから降りるよ。
173:デフォルトの名無しさん
17/05/13 23:55:22.89 BFgjnkHK0.net
>>165
> JavaScriptでは一般的ではないでしょう
ちなみにこれを他言語では一般的にやってるのか?それは何言語?
別に糾弾しようってわけではなくて、ちょっと見てみたい。
ちなみに抽象度については俺も思ったが、それ以前に、
1つのことをやる物を2つに分解して配置したくないので、
俺は「名前付き関数」にして呼ぶって事もしない。if文で書く。
ただしこれはCでは関数内関数が使えないからそういう文化なのであって、
関数内関数が使える言語なら別文化もありだとは思う。
174:デフォルトの名無しさん
17/05/13 23:56:04.26 qMDptb/r0.net
>>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);
これでも何してるかは関数名が教えてくれるから宣言的といえるのではないでしょうか
175:デフォルトの名無しさん
17/05/13 23:56:59.84 f5G7qLua0.net
>>166
> 分かりやすいし
だからコードの話をしている時に
自分の話をするなって
176:デフォルトの名無しさん
17/05/13 23:59:09.17 f5G7qLua0.net
>>168
自分で関数作るぐらいならlodashの方がいいな。
いきなりsearchPropIdxとか書かれても
コード読まないと何をしているのかわからない。
lodashのような有名ライブラリであれば
有名なライブラリを知っているならば使い方わかるし
たとえ知らなくても、誰かが解説してくれてれる
177:デフォルトの名無しさん
17/05/14 00:02:48.77 zJfJO46R0.net
>>170
lodashが使える環境ならもちろん使う
ただまぁ標準ライブラリではないから今回のケースでは考えませんでした
178:デフォルトの名無しさん
17/05/14 00:09:32.47 Rp58SwPv0.net
>>168
まあ、俺も必要な場合はそのように関数化してくくり出すけどね。
メリットは抽象度が上げられて依存関係を切れる(隠蔽出来る)ことだが、
ここら辺は要するにオブジェクト指向のメリットであり、
そもそもオブジェクト指向は巨大なコードを何とかする手法だから、
ここでlodashを布教している奴が理解することはないというのは、
これまでさんざん見てきたとおり。
俺はlodashが使える環境でも使わないね。whileで書く。
ただここら辺は各人が好きなようにすればいいだけの話だね。
179:デフォルトの名無しさん
17/05/14 00:18:55.77 UzoQivKq0.net
>>172
自分のやり方を押し付けるな
俺はコードの話をしてるだけ
180:デフォルトの名無しさん
17/05/14 00:45:18.37 zJfJO46R0.net
>>167
「値は引数を関数に適用させて作るもの」ってのはラムダ計算の基本的な考え方だから、大抵の関数型言語ならそうじゃない?
そもそも例えばHaskellなんかは今回でいうget_tagを同一スコープ内で何回実行したところで、
引数が同じなら計算結果は最初のものを常に使い回すしね
別に好きに書けばいいんだよ
ただ最初に宣言的って言ってたのが何か勘違いしてそうで引っかかっただけで
181:デフォルトの名無しさん
17/05/14 01:10:19.27 Rp58SwPv0.net
>>174
> ただ最初に宣言的って言ってたのが何か勘違いしてそうで引っかかっただけで
これについてはそちらの指摘通り、俺は勘違いしていると思う。
俺は関数型言語を使ってはいないからね。
これは、俺の用語に誤用がある可能性を考慮しつつ話をしてもらうしかない。
> そもそも例えばHaskellなんかは今回でいうget_tagを同一スコープ内で何回実行したところで、
> 引数が同じなら計算結果は最初のものを常に使い回すしね
Haskellってインミュータブルだったっけ?忘れたけど、
確かにインミュータブルだったらこれで終わりだね。
つべこべ言わずに何回も書いても関係ない事になる。
しかもHaskellの場合は遅延評価だから事前に書いても大してオーバーヘッドもない。
まあこの辺が便利なのかもね。
> 大抵の関数型言語ならそうじゃない?
そうか。了解した。
182:デフォルトの名無しさん
17/05/14 01:12:21.75 Rp58SwPv0.net
すまん、
× インミュータブル
○ 再代入禁止
だね。
183:デフォルトの名無しさん
17/05/14 02:45:59.49 wDkNkjbA0.net
>>157
>> 短絡評価も、後ろの式が実行されるかどうか、分かりにくいので、
>> 使わない方がよいと言われる
> いやそれはCの世界では嘘だ。あっちは短絡評価ありきで組む
後ろの式に、副作用がある場合、バグ含みになるから、危険。
それで、Pythonでは、以下のように書けるようになってる
1 < f() < 10
MISRA-C 2004 のコーディング規則を参照
184:デフォルトの名無しさん
17/05/14 05:32:19.86 QAEk2mhn0.net
>>172
俺はお前の見方
185:デフォルトの名無しさん
17/05/14 07:47:04.55 wDkNkjbA0.net
<tr>
<td><%= name %></td>
<td><%= gender %></td>
<td><%= job %></td>
</tr>
lodash.js (underscore.js)には、template があるから、
jQueryですべての要素を作らなくても、HTMLファイルに値を埋め込むだけでよい
186:デフォルトの名無しさん
17/05/14 08:05:39.42 Rp58SwPv0.net
>>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ではゲッタやプロキシがあるし常用されるから、これだけでは言い切れない。
だからそもそも「副作用」に対する感覚が全然違うんだよ。
187:デフォルトの名無しさん
17/05/14 08:55:23.90 wDkNkjbA0.net
MISRA-C 2004 ルール12.4
論理演算子 && または || の右側のオペランドには、副作用があってはならない。
volatile もダメ
188:デフォルトの名無しさん
17/05/14 09:13:34.23 Rp58SwPv0.net
>>181
それは
× 短絡評価が駄目
○ 短絡評価内で副作用が駄目
だよ。重ねていうが、以下認識は間違いだ。
> 短絡評価も、後ろの式が実行されるかどうか、分かりにくいので、
> 使わない方がよいと言われる (>>148)
結局の所、12.4も「短絡評価されるから」という大前提でしょ。
Cの世界はそうだよ。
短絡評価自体が駄目なんてのは、聞いたことがない。
189:デフォルトの名無しさん
17/05/14 11:13:06.81 Rp58SwPv0.net
というか今更気づいたが、カンマ演算子ってほとんどの言語ではないんだな。
むしろある方が異端のようだ。
ある:C/C++, JavaScript, Perl
ない:Java(ただしfor文内のみ可), C#, Ruby, てか多分他全部
JavaScriptの場合は匿名関数をその場で定義して使っても構わないから、
文が書けないからカンマ演算子という時は大抵この方法でも回避出来る。
といっても余計に見にくくなるが。
例: (function(){ /*何かの動作*/ })()
190:デフォルトの名無しさん
17/05/14 12:11:34.87 pHcsRThma.net
普通にif-elseifで書けばいいのに、カンマ演算子にこだわりすぎて暴走しとるな
191:デフォルトの名無しさん
17/05/14 12:37:42.55 j3QiJPk20.net
構文なんだから人間様解るように記述すればいいだけ
ただのオナニー
192:デフォルトの名無しさん
17/05/14 12:43:51.10 UzoQivKq0.net
関数型風に書けよw
カンマ演算子なんて関数型風でも
一旦変数に入れるだけの話だろ
193:デフォルトの名無しさん
17/05/14 12:49:06.75 UzoQivKq0.net
そういや短絡評価は殆どの言語にあるんだな。
194:デフォルトの名無しさん
17/05/14 13:27:08.87 pHcsRThma.net
そもそも関数型風のメリットは論理と計算の分離であって、どっちがいいとかじゃないし
三項演算子を使ってcaseAの場合aが返ってくるなら、そうでない場合は同等の型のbが返ってくるのが基本
三項演算子をネストさせるってことはそもそも論理と計算が分離されてない
それを気にしないなら別に好きにすればいいんだよ
見やすい見にくいみたいな主観に任せればいい
195:デフォルトの名無しさん
17/05/14 13:30:55.25 UzoQivKq0.net
関数型風にすればconstを使えるようになる。
変数に入れた値が変わらないから、コードを把握しやすくなるし
バグも減るのがメリット
196:デフォルトの名無しさん
17/05/14 20:32:09.27 QAEk2mhn0.net
全部プロトタイプベースで書けばいいと言うのと同じくらい無意味な綺麗事
つうかconstは長いし普通の人にとっては読みにくい
意地っ張りの価値観の押しつけをする気が無いのなら
手元では好きに書いていいが挙げるときは置換くらいしてくれ
それが最低限のマナー
197:デフォルトの名無しさん
17/05/14 20:57:23.20 pZ8yqHc90.net
> つうかconstは長いし普通の人にとっては読みにくい
英語読めない人?
198:デフォルトの名無しさん
17/05/14 21:01:57.87 pHcsRThma.net
新しいものが一般的でないのなんて当たり前なんだよなぁ
いかにそこから普及させれるかだ
先人の叡智を無駄にしてはいけない
199:デフォルトの名無しさん
17/05/14 21:11:34.04 HLo7v2s80.net
> つうかconstは長いし普通の人にとっては読みにくい
constが長かったらdocument.body.innerHTMLとかもはや解読不能だろ
200:デフォルトの名無しさん
17/05/14 22:56:24.87 LykvO83v0.net
むしろconstは多用したほうが保守性は上がるでしょ。今時var宣言使っちゃだめよ
201:デフォルトの名無しさん
17/05/15 07:30:07.09 vbGagq9z0.net
constでキレイにインデントできたら最高なんだけどなぁ
202:デフォルトの名無しさん
17/05/15 10:39:17.61 ChsP7NlFM.net
仮にconstが消えてもletになるだけで
varにはならん
203:デフォルトの名無しさん
17/05/15 11:43:14.43 vXJw7fGsF.net
全部constにするんなら、宣言要らない関数型altJS使えばいいじゃん
204:デフォルトの名無しさん
17/05/15 12:37:45.42 Nyf5aX+Ca.net
自分で言語決めれる開発なんてほとんどないし
205:デフォルトの名無しさん
17/05/15 14:42:16.22 k1YI7zCW0.net
ES6なら末尾呼び出し最適化が働くのでforは再帰で書ける
なのてletは不用 constだけで良い インデントも揃う
206:デフォルトの名無しさん
17/05/15 18:12:27.51 5bRXjaUX0.net
>>198
いやいや、フルconstの自由があるならAltJSくらい余裕でしょ
つうかconstの実際価値があるっていうのじゃなくて
単にconst、constって書いて自己満足、安心「感」を得たいだけになってるでしょ
207:デフォルトの名無しさん
17/05/15 18:39:27.33 Z3hdp57V0.net
マ板っぽい話になってきたな
208:デフォルトの名無しさん
17/05/15 23:41:39.28 rGWruaOX0.net
ヤフー知恵袋のjavascriptマスターがドヤ顔で公開してるカレンダーのコード読むと、
グローバル変数だらけで非常に見辛いし、グローバル汚染されたコードだった
悪い例として参考になったな。
たまに、参考になる質問と回答が、知恵袋とか2chにあるが、
玉石混交だな、
209:デフォルトの名無しさん
17/05/16 00:06:49.67 ufkb+DTs0.net
どれのことかね? JavaScriptマイスターの俺が
修正してあげよう
210:202
17/05/16 00:25:50.14 FdkA0PdW0.net
>>203
これです。
グローバル変数だらけで、グローバル汚染されているし、
クロージャ使って、モジュールにしろよって思ってしまいます。
非常に読みづらし、解読するのが骨が折れると思われます。
URLリンク(miwa850125.php.xdomain.jp)
211:デフォルトの名無しさん
17/05/16 00:40:25.65 ufkb+DTs0.net
>>204
あぁ、うんゴミだね。これは修正の価値すらないや。
関数の定義だけ聞いて自分で実装したほうが早そうだ
212:デフォルトの名無しさん
17/05/16 00:47:14.10 ufkb+DTs0.net
× 関数の定義だけ聞いて
○ カレンダーの仕様だけ聞いて
213:デフォルトの名無しさん
17/05/16 07:16:46.00 bc694O2E0.net
>>204
> グローバル変数だらけで、グローバル汚染されているし、
> クロージャ使って、モジュールにしろよって思ってしまいます。
まあこれも問題なんだけど、それ以上に構成が酷い。というか平べったすぎ。
こいつそもそもサブルーチンすら使ってなくね?
> 非常に読みづらし、解読するのが骨が折れると思われます。
ちなみにこれは違う。平べったいコードは読むのは面倒だが難しくはない。
ただしまともに読む気にならないが。見た瞬間ゴミだと分かるレベルだし。
俺も>>206に同意だな。
そしてみんなそうらしいぞ。まあそりゃそうだが。
URLリンク(miwa850125.php.xdomain.jp)
ただ、素人が組んだ500行前後のコードってこうなりがちではあるんだがね。
(というか多分300-500行程度で組めるはず)
214:デフォルトの名無しさん
17/05/16 10:23:51.85 jyI5CijS0.net
今時githubで管理してない時点でお察しだな。zipでダウンロードしてーとかしんどすぎる。
215:202
17/05/16 19:48:46.02 FdkA0PdW0.net
ちなみに、このカレンダーの作者は
javascript歴17年の自称30~39歳の女性です。
知恵袋で
「javascrit初心者相手にfor文もわからんのかww」
っておらついてます。
多分、プログラム書いて「動いたwww スゲー 自分は天才やんwww」
とかのレベルで止まってしまったと思われる。
勉強しないと、いつまでも初心者レベルから抜け出せいってことだせない教訓になった
216:デフォルトの名無しさん
17/05/16 20:45:52.90 bc694O2E0.net
>>209
ついでに言っておくと、
初心者は「コードが読めないのは汚いからだ」と主張しがちだが、実際はそうじゃない。
初心者が技術的に至らないからというケースがほとんどだ。
とはいえ、実際に駄目なコードは散見されるし、初心者がこれらを区別するのは無理だ。
だからこういう場所で聞いてみるのは一つのやり方だとは思う。
そしておそらくこれが目的だろうからこういう回答になる。
実際に高度に組織化されたコードは、初心者には全く読めないと思う。
逆に、こういった平べったいコード、上から順に一通り動いて終わりですね、
みたいなコードの方が初心者にも読める。
そして「上達するのは『書く』時ではなくて『減らす』時だ」という主張をする奴もいて、
実際「書く」よりも「減らす」方が頭を使うのも事実なので、
君がこのコードに相応しい初心者で上達を望んでいる場合、
このコードを減らして同じ動作を得ること、つまりリファクタリングを薦める。
それをやれば、このコードのどこが駄目なのか具体的に分かるし、いい練習になる。
(はっきり言って全部駄目なんだけどさ)
グローバルが~ってのは実は大した問題じゃない。
(function(){
})()
でくくってやればすぐ解決するだけの話でしょ。
初心者はそういう文法的なところにばかりこだわるから上達しない。
最も重要なのは構造/構成なんだよ。
217:デフォルトの名無しさん
17/05/16 20:46:28.78 bc694O2E0.net
なお、
> 「javascrit初心者相手にfor文もわからんのかww」
> っておらついてます。
これについては初心者の方が悪い。
for文なんてどの言語でも基本中の基本だし、
そこら辺は最低限押さえてから質問しないと駄目だ。
初心者だからって何でも許されると思っているのはただの傲慢だ。死ねでいい。
> 勉強しないと、いつまでも初心者レベルから抜け出せいってことだせない教訓になった
これも違う。
というか多分、ソフトウェア産業は未だに「上達への王道」を開発出来ていない。
つまり、今現在の方法で「勉強」すれば上達するわけではないということ。
ここら辺は学校教育の物理や数学で
人類が数千年掛けて築き上げた叡智をわずか数年でインストールしてしまうのとは次元が違う。
ソフトウェアは高々100年程度の歴史しかないし、教育方法もよく分かってないんだよ。
だから繰り返すが、今現在溢れている本を仮に全部読んでみても、達人にはなれないよ。
関数型とか言っているのも、実はまだどうすべきか分かってない証拠でもあるしね。
数学や物理は、学校でやってるのが完全に王道だと確定してる。あれとは違うんだよ。
そして、いくら「勉強」しても、駄目な奴は駄目なまま。
ただそれをどうやって改善すればいいのか分かってないんだ。
だからセンター試験みたいな物を作ることが出来ない。
そしてその人が「勉強してない」って事にも(直接的には)ならない。
(実際は勉強してない確率が90%以上だし、
実際書くなり本読むなりすれば『大半の人は』自然と上達するのも事実だけどね)
218:デフォルトの名無しさん
17/05/16 20:50:54.00 28fcRnPx0.net
> ソフトウェア産業
プログラミングはナチュラルに趣味グラマーがハブられることが多くて
いっぱいかなしい
219:デフォルトの名無しさん
17/05/16 22:27:17.83 UlJ2aQ8H0.net
それは思い込み、実際は逆だよ
趣味でやってる人達は自由、好きにやればいいだけの優位者
職業としてやってる人達の方にハンデがあるんだから尊重してもらわないと困る
220:デフォルトの名無しさん
17/05/16 22:45:21.09 bc694O2E0.net
>>212
前それ別スレで話題になっていたが、
個人的には「天然」の方が「養殖」よりも上質だと思っているよ。
ただ毎日毎日コードを眺めているのと、せいぜい月に2~3日では場数が違うわけでさ。
とはいえ場数をこなせば上達するわけでもないというのは事実なのだが、
個人的には奇妙だとも思っている。
普通は場数をこなせば次第に上達するものではあるからね。
いずれにしても、「勉強しよう」と思うのは良いことだけど、
いわゆる「お勉強」で単純に上達するというものでもないんだ。まだ今は。
さてもう一度見直して気づいた。コードを書き慣れていない奴の特徴は、
・無駄な改行が多い
・空行が多い
これは多分共通だし、初心者でも見て分かるはず。
つかね、10,000行とかのソースだとただでさえスクロールしまくりなので、
1画面に出来るだけ沢山詰め込みたいという欲求が発生し、
空行とか無駄改行は全くやらなくなってくるんだよ。ウザイから。
これは割と共通の癖だと思う。
Pythonerが括弧を嫌うのも閉じ括弧だけの行がウザイからだし。
詰めて書いても今時色分けされるから見間違えることもないし。
(ただもちろん中には例外もいて、どんだけスクロールしても問題ないらしい奴もいる)
見た目、せいぜい50行程度しかまともに書けない奴が、
頑張って2,000行書きました、えっへん!みたいなコードだね。
ただ、これって誰しもが通る道だから、これ自体が悪いとは思わないけど。
なおコード自体は昔の定義の「コピペプログラマ」がこんな感じ。
実は結構いたりすると思うよ。
221:デフォルトの名無しさん
17/05/16 22:52:40.26 bc694O2E0.net
なんつうかね、
長文に全く慣れてない奴ってこんな風に、いちいち改行したりするでしょ。
それって長文に慣れてるとものすごくウザイでしょ。
余計に読みにくいし。(多分斜め読み出来なくなるから)
だけどコードに慣れてない奴って、やけに改行や空行入れたがるんだよ。
それは、改行をウザイと思うほどコードを読んだことがないってこと。
つまり、初心者だ�