2ちゃんねる ■掲示板に戻る■ 全部 1- 最新50    

■ このスレッドは過去ログ倉庫に格納されています

+ JavaScript の質問用スレッド vol.135 +

1 :Name_Not_Found:2018/07/31(火) 12:30:52.90 ID:???.net
JavaScript を自ら学ぶ人のための質問スレッドです。
次スレは>>950が(本スレで改善案があれば考慮して)立ててください

■規則/推奨ルール
・メール欄を空欄にし、名前にレス番を入れることを強く推奨(なりすまし防止)
・質問内容は具体的に。言葉だけでなく、出来る限り再現性を確認したサンプルコードの掲示。
・質問テンプレートの利用推奨。
・質問への「答え」だけでなく「意見」を出しても良い。

■禁止行為
・丸投げ質問
・迷惑スクリプトの質問
・オレオレ用語の使用(一般的な用語を使用する事)
・煽り、批判等の他人を不快にさせる行為(批判の代わりに「AよりBが良い」のような代案を出す事)

■質問テンプレート
【環境】OS, ブラウザをバージョンと共に記入してください。
【条件】期待する回答の条件を書いてください。
【何をしたのか】何をしたら問題の現象が発生するのか。再現手順を具体的に書いてください。
【エラーメッセージ】エラーメッセージがあれば正確に書き写してください。
【期待する結果】最終的にどういう結果を望んでいるのか、を書いてください。
【サンプルコード】現象を再現可能な最小限のコードを書いてください。
 1レスに収まらないならコード投稿サイトを利用してください。
 http://jsdo.it/ http://jsbin.com/ http://jsfiddle.net/ http://ideone.com/

■回答者へ
・回答には多様性があります。他人の回答を尊重してください
・動作ブラウザや環境が限られる場合は、それを明記してください
・他人の回答を批判する代わりに、自分ならこう書くという例を示してください
・質問者がJavaScriptでなければ実現できないと勘違いしてるなら、その否定としてHTMLとCSSで実装しても良い
・他人の回答を見たくないのであれば、文句をつける代わりにNGにして見えないようにしてください。文句をつける=荒らしです

2 :Name_Not_Found:2018/07/31(火) 19:09:52.85 ID:???.net
■FAQ

◆開発者ツール(Developer Tools)の基本的な使い方
 ▼諸注意
  - 本説明では Google Chrome の開発者ツールの名称に従います。他ブラウザで使う場合は適宜読み替えて下さい。
  - Edge- でコンソールを使うには予め開発者ツールを起動しておく必要があります(開発者ツールを起動しないと console.log() が機能しません)
  - Safari はデフォルトで開発者ツールが無効な為、有効に設定する必要があります。
  https://developer.apple.com/library/safari/documentation/AppleApplications/Conceptual/Safari_Developer_Guide/GettingStarted/GettingStarted.html
 ▼要素を検証
 1. ページ上で右クリックして [要素を検証]
 2. [Elements] パネルが開き、対象のDOMノードが選択される(選択対象が目的の要素でなければ [Elements] パネル上で選択し直す)
 3. 右側のサイドバーから知りたいステータス名のタブを選択する
   - [Styles] タブ … CSSプロパティの指定値を表示 (※カスケードによって上書きされたプロパティは取り消し線で表示される)
   - [Computed] タブ … CSSプロパティの算出値を表示("font-size: 1em" を指定していても算出後の "*px" で表示される)
   - [Properties] タブ … 選択したDOMノードのプロパティを表示
 ▼コンソール
 1. JavaScript コード上で console.log('Hello, World!'); と入力
 2. [Ctrl] + [Shift] + [I] キー(IE は [F12])で開発者ツールを開き、[Console] パネルを開く
 3. [Console] パネルに "Hello, World!" と表示される
 (※window.alert() は String 型に変換されますが、console.log() は Object 型の中身をそのまま表示してくれます。)

3 :Name_Not_Found:2018/07/31(火) 19:13:07.24 ID:???.net
■FAQ(続き)
◆JavaScriptの実行速度
JavaScriptの速度は「ブラウザ名」「ブラウザのバージョン」「PCスペック」に依存します(ブラウザのバージョン毎に最適化具合が異なります)。
速度の疑問解消の為に http://jsperf.com/ (githubのアカウントが必要です)にコードをUPしてブラウザ毎に速度計測する事を推奨します。

例外として、仕様における理論上の速度が明確になっている場合があります。
例えば、正規表現によるマッチング処理を考えた場合、「RegExp#test > RegExp#exec > String#match」は ES5 仕様で保証(要出典)されています。
ES5 仕様において RegExp#test が最も処理数が少なく、String#match が最も処理数が多いことが明確だからです。
ブラウザによっては RegExp#test の最適化が十分でなく、String#match の最適化が RegExp#test より十分であれば逆転する可能性はありますが、各メソッドの最適化が一律であればこの前提が崩れる事はありません。

■各種仕様
◆ 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 和訳)

4 :Name_Not_Found:2018/07/31(火) 19:16:18.02 ID:???.net
■各種仕様 (続き)
◆ 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

5 :Name_Not_Found:2018/07/31(火) 19:20:29.91 ID:???.net
■テンプレ案
http://fiddle.jshell.net/fH4cC/180/show/light/

■FAQ
http://fiddle.jshell.net/vSqKr/44/show/light/

■前スレ
JavaScript の質問用スレッド vol.134
http://mevius.5ch.net/test/read.cgi/hp/1528096978/

6 :Name_Not_Found:2018/08/01(水) 22:07:57.57 ID:???.net
>>1おつ

7 :Name_Not_Found:2018/08/01(水) 22:34:10.78 ID:???.net
前スレの977の方ありがとうございました。
仕様上できないのですね。
残念です。

8 :Name_Not_Found:2018/08/02(木) 07:09:05.57 ID:???.net
装飾はいくらでもできるけどここはJavaScriptスレだからスレチ

9 :Name_Not_Found:2018/08/02(木) 07:17:12.45 ID:???.net
前スレの、>978

<div id="div-a">
<input type="text" id="text-a" value="あいう">
<input type="text" id="text-b" value="abc">
</div>

var input_elems = $.map( $('#div-a > input'),
function(elem, index) {
return $(elem).attrAll(); // this === element
}
);

Cookies.set( 'input', input_elems ); // 設定

obj = Cookies.getJSON('input'); // 取得
console.log( obj );

結果
id: "text-a", type: "text", value: "あいう"
id: "text-b", type: "text", value: "abc"

Cookie のライブラリは以下を使っています。
js-cookie/js-cookie
https://github.com/js-cookie/js-cookie

$.fn.attrAll は、以下のブログで定義されています。
要素の属性を全部取得する
https://hokaccha.hatenablog.com/entry/20130819/1376895914

10 :前スレの>>978じゃないけど、見に戻るの面倒だからコピペ:2018/08/02(木) 07:22:30.69 ID:???.net
特定の <div> のなかの <input> の状態を全部sessionStrageに保存して
あとでそれを再セットするって input の数や種類に依存せずにかけませんか?
div にも input にもユニークな id が振られてます
input.type は今の所 text select と checkbox だけです

native js でも jQuery でもいいです

11 :Name_Not_Found:2018/08/02(木) 07:28:49.42 ID:???.net
>>9
前スレの>>978じゃないけど、
要素の属性取るならそんなプラグイン使わないで

jQuery標準の $.serialize か $.serializeArray を使えば良いんだよ
<form>要素以下になくても使える
今回の場合はserializeArrayの方が使い勝手良いかな?

https://api.jquery.com/serialize/
https://api.jquery.com/serializeArray/

で、実はそんなのは簡単で、面倒なのはこっち
> input.type は今の所 text select と checkbox だけです

フォームの中身を全て保存して戻すってのは
以前に実装したことあるけど、
typeみてselectだったら〜checkboxだったら〜みたいな
コードを書いた記憶がある。意外と面倒くさい

12 :Name_Not_Found:2018/08/02(木) 07:43:27.25 ID:???.net
inputのtypeでselectってなんだ?教えてクレヨン

input type="file"があったら面倒なことになりそうな
そうでもないか?

13 :Name_Not_Found:2018/08/02(木) 07:46:53.02 ID:???.net
>>12
その質問に答える必要はない

14 :Name_Not_Found:2018/08/02(木) 08:01:45.83 ID:???.net
あー、でもidで見分けるのか。inputっていうからnameで見分けるのかと思った

var data = {};
$(":input").each(function() {
 switch(this.type) {
 case 'checkbox':
  data[this.id] = this.checked;
  break;
 default:
  data[this.id] = this.value;
 }
})

データをかき集める所はこんな感じかな
idでユニークになるならserializeArrayみたいに配列で持たなくていいね。
ちなみにmultipleなselectには対応していない

こんな風にtypeを使って見分けることになるんで
> input の数や種類に依存せずにかけませんか?
に関しては、書けません。というのが答えになる。

15 :Name_Not_Found:2018/08/02(木) 08:53:51.91 ID:???.net
>>13
<input type="select"> が存在しないかもしれない、と自分を疑うことから始めた方がいいよ
https://html.spec.whatwg.org/multipage/input.html#attr-input-type

16 :Name_Not_Found:2018/08/02(木) 08:58:59.10 ID:???.net
>>15
時間の無駄。わかってる結論へ至る道はお前1人で勝手に進んでろ

17 :Name_Not_Found:2018/08/02(木) 09:18:22.89 ID:???.net
どこかポエムだな

18 :9:2018/08/02(木) 11:19:07.89 ID:???.net
>>11
serializeArray は、送られる属性が少ないし、
successful controls しか送られていない

使いどころが難しそう

19 :Name_Not_Found:2018/08/02(木) 11:35:19.63 ID:???.net
送られる属性ってなんや?

フォームのGET・POSTで送られる情報の
全てを網羅してるぞ?

20 :9:2018/08/02(木) 11:36:32.61 ID:???.net
serializeArray を使うなら、name, value を使うように統一しないといけない。
type, id が無いから、使いずらいかも

input.type には必ず、text, select, checkbox を指定しておけば良いかも

21 :9:2018/08/02(木) 11:45:34.14 ID:???.net
serializeArray を使う場合、type, id が無くても、

name, value を使って、name がユニークなら、コントロールを特定できるのか

22 :Name_Not_Found:2018/08/02(木) 11:50:51.92 ID:???.net
formだと既存のjsコードと衝突したらかなわんし
ほぼ同一のformが複数あるなんてしょっちゅうあるから
汎用性なんて考えない方がいい気がする

23 :9:2018/08/02(木) 11:53:56.89 ID:???.net
<select name="single">
<option>Single</option>
<option>Single2</option>
</select>

select は、input タグじゃないのか

24 :Name_Not_Found:2018/08/02(木) 18:58:42.66 ID:2ZiGsOuL.net
jqueryを使った時のデバッグが面倒臭すぎる

25 :Name_Not_Found:2018/08/02(木) 21:22:12.96 ID:???.net
>>16
分からない場所に突き進む道を選ぶのね、ご愁傷様

26 :Name_Not_Found:2018/08/02(木) 21:47:22.44 ID:???.net
>>25
俺はそんな道に進まないって意味だよw

27 :Name_Not_Found:2018/08/02(木) 23:04:32.52 ID:???.net
トイレ事情も地方によって様々だな

28 :Name_Not_Found:2018/08/03(金) 02:10:10.14 ID:???.net
九州は汲み取り式とか四国はベルサイユ宮殿式とかそういうのがあんの?

29 :Name_Not_Found:2018/08/03(金) 06:33:28.44 ID:???.net
雑多な要素を後から保存するのは無理がある
データの作成・保存はカスタムエレメントで閉じておくべき
例のvalueの問題はinputやtextareaを継承してonchangeで見てもいいが
contenteditableとして要素ごと作ればobserveも統一できるし見た目の調整もやりやすい

30 :Name_Not_Found:2018/08/03(金) 07:26:29.01 ID:???.net
なんでトイレ事情なんだよ

31 :Name_Not_Found:2018/08/03(金) 07:51:34.49 ID:???.net
>>26
正しい仕様を確認するための質問を無視する→理解の放棄

32 :Name_Not_Found:2018/08/03(金) 14:21:18.74 ID:???.net
悲しきjser

33 :Name_Not_Found:2018/08/03(金) 20:46:56.82 ID:???.net
>>15
HTMLはその場合の操作も定義されている
>>The type attribute ...... the invalid value default are the Text state.

34 :Name_Not_Found:2018/08/03(金) 21:02:53.99 ID:???.net
>>33
そりゃそうだが、将来的にtype属性値の種類が増えるかもしれんし、わざわざ不正値を指定する理由はあるまい

35 :Name_Not_Found:2018/08/03(金) 21:42:00.71 ID:???.net
まだ到着してなかったのかよw
俺は最初からわかってる結論へ至る道の到着点にいるぞ?w

36 :Name_Not_Found:2018/08/04(土) 00:35:47.31 ID:???.net
分かっている人は>>11を書かな

37 :Name_Not_Found:2018/08/04(土) 01:58:18.60 ID:???.net
type typer

38 :Name_Not_Found:2018/08/04(土) 02:15:52.32 ID:???.net
じ え ん

39 :Name_Not_Found:2018/08/04(土) 14:07:30.40 ID:???.net
selectボックスで、10番目の要素を自動的に一番上までスクロールさせる方法ってありますか?

40 :Name_Not_Found:2018/08/04(土) 14:17:21.23 ID:???.net
         /::::::::ソ::::::::: :゛'ヽ、
         /:::::::-、:::i´i|::|/:::::::::::ヽ
        /::::::,,、ミ"ヽ` "゛ / ::::::ヽ              <  一億総活躍
       /::::::==    卍   `-::::::::ヽ
      l::::::::/ .,,,=≡,  ,≡=、l:::::::l       /. ̄)        英訳は「Promoting Dynamic
      |:::::l゛  .,/・\,!./・\ l:::::::!     /  /二、.
      |`:::|  :⌒ノ/.. i\:⌒ |:::::i     丿 Y  .i  Y      Engagement of All Citizens」
       (i ″   ,ィ____.i i   i //   ( ゝ'  ノ ./ /
       ヽ i   /  ■ .i  i /     ,ゝ-、_)--'-'         (全国民の精力的な参画の推進)
        l ヽ ノ `トェェェイヽ、/´     /{ ゝ、__ハ|ヘ
        /|、ヽ  `ー'´ /      ィ'/ハ____ハ       つまり国家総動員
      //l ヽ ` "ー−´/     ////////////ノ
    ,,ィ''"/// | >< ////////////{///////////
  r''"////// ..|/:::::ノ//////////////}/////////Y
  ////////|  /:::::{///////////////{//////////

41 :Name_Not_Found:2018/08/04(土) 16:53:00.52 ID:YjLvXUxs.net
Javascriptのデータ型って先に指定できないのか?
int Number;
とか
string name;
とかは

42 :Name_Not_Found:2018/08/04(土) 18:20:04.58 ID:???.net
typescript使うしかないかな

43 :Name_Not_Found:2018/08/04(土) 21:22:33.67 ID:???.net
データ型を指定できてたら良くなかったことはたくさんある
例えばここ何年か今までintだったDOMの値が
高画面解像度デバイスのためにfloatになってきる

44 :Name_Not_Found:2018/08/04(土) 22:02:12.27 ID:???.net
>>43
それは型キャストで解決できる程度の問題かな
floatを返していても型がintだったら自動的に
小数点以下切り捨てられる
むしろその方が想定しない型にならないのでいいかもね

45 :Name_Not_Found:2018/08/05(日) 00:11:25.23 ID:???.net
>ここ何年か今までintだったDOMの値が
>高画面解像度デバイスのためにfloatになってきる

どういうこと?

46 :Name_Not_Found:2018/08/05(日) 00:25:59.47 ID:???.net
4Kとかだとコンテンツ全体表示できるから要素固定して表示するようなソリッドレイアウトよりも
リキッドデザイン的なものに変わってきた、ということでは

47 :Name_Not_Found:2018/08/05(日) 01:01:16.94 ID:???.net
2^32-1を超える値扱ってんの?それとも小数点以下の値が来てんの?どこで?ってことなんだけど

48 :Name_Not_Found:2018/08/05(日) 02:37:08.71 ID:???.net
DOMの値てなに

49 :Name_Not_Found:2018/08/05(日) 07:11:44.64 ID:???.net
ドムドムドム

50 :Name_Not_Found:2018/08/05(日) 09:15:20.21 ID:???.net
一時そういう話があったがここにあるように今はまたintに戻った
https://www.w3.org/TR/cssom-view/#changes-from-2013-12-17
だけどChromeではまだサポートされてて
ズームしてdocumentElement.scrollTopなんかを弄ると分かる

200%以上に拡大すると分かりやすいだろうけど
特に低スピードのスクロール時にここで実際に役に立つことが分かる
http://output.jsbin.com/qedore

51 :Name_Not_Found:2018/08/05(日) 09:16:44.60 ID:???.net
intじゃなくてlongか

52 :Name_Not_Found:2018/08/05(日) 13:50:43.01 ID:7tec/NU4.net
別に入ればなんでもいいんだけどいつもvarで型を作って自動でやってるから
Javascriptの基本的な型の作り方はvarなのかなって

53 :Name_Not_Found:2018/08/05(日) 15:12:47.47 ID:???.net
朝鮮人みたいに揚げ足とる根性悪い奴がいるな

普段何の仕事してんの?
ニート?

54 :Name_Not_Found:2018/08/05(日) 17:52:25.11 ID:???.net
根性悪いやつが居るように見えるのは本人が根性悪いんだろうな

55 :Name_Not_Found:2018/08/05(日) 19:57:27.12 ID:???.net
朝◯人と悪口いってる時点で人の屑
ジャップのくせに

56 :Name_Not_Found:2018/08/05(日) 21:24:09.84 ID:???.net
「朝鮮人」は今や悪口ではないし
「JAP」は昔は米国新聞でも普通に使われてたただの略語というか日本の愛称だった
たかが三文字の言葉であれこれ思うのも馬鹿らしいよ

57 :Name_Not_Found:2018/08/05(日) 21:52:18.03 ID:???.net
ヴァーカ

58 :Name_Not_Found:2018/08/05(日) 21:53:51.71 ID:???.net
リアルで朝◯人なんて言ってみろよ
どう言うことになるか分かるか?

リアルで言えない差別用語をネットで
使って吠えてる糞野郎

59 :Name_Not_Found:2018/08/05(日) 22:08:34.76 ID:???.net
某氏のカメラの話思い出した

60 :Name_Not_Found:2018/08/05(日) 22:41:19.46 ID:???.net
>>58
意味分からん
中国人
フィリピン人
朝鮮人
普通に使うぞ

変な嫌悪感を持ってるのはそういう学校教育された中年世代だけだろ

61 :Name_Not_Found:2018/08/05(日) 22:53:54.39 ID:???.net
【研究】飲むだけで差別主義者が更生する「道徳ピル」
>米国では、多くの学生が成績向上や適性試験をパスするために、リタリンを治療以外の目的で服用しているとの報告がある。

差別主義者は薬物でも服用させなければ駄目だな
市ぬかもしれないが生きてても仕方ない奴らだからどうでもいいわ

62 :Name_Not_Found:2018/08/05(日) 22:59:43.18 ID:???.net
>>60
韓国人 は入らないんか

63 :Name_Not_Found:2018/08/06(月) 04:25:48.82 ID:Oi2BNCSY.net
知能が低いと複雑なことを考えられないから
極端な白黒思考になる
これが差別主義者

道徳ピル飲んで知能を上げるしかない
薬害で市んだら害虫が一匹消えたという事でそれはそれでおっけ

64 :Name_Not_Found:2018/08/06(月) 04:47:05.97 ID:???.net
>>50
言葉で説明してくれ

65 :Name_Not_Found:2018/08/06(月) 05:17:55.83 ID:???.net
DOMは仕様がコロコロ変わる
だからその違いを吸収するライブラリが必要になる

66 :Name_Not_Found:2018/08/06(月) 19:19:22.58 ID:???.net
逆だな
原則DOM標準は後方互換性を守る
JSのライブラリはバージョンアップで簡単に切り捨てる
ライブラリを使ってるとむしろ追従が大変になる

67 :Name_Not_Found:2018/08/06(月) 19:33:22.94 ID:???.net
自分の引き出しにあんまり実例なくてわからないんだけど
バージョンアップで切り捨てるって旧UAを?だったら旧バージョン使い続ければ良いのでは?

68 :Name_Not_Found:2018/08/06(月) 19:48:56.48 ID:???.net
uaって?無駄にコンテキストから推測させないでほしい。
あなたは数文字節約できるかもしれないけどこっちはいい迷惑。

69 :Name_Not_Found:2018/08/06(月) 19:58:56.09 ID:???.net
>>67
パフォーマンスや新機能のためにバージョンアップしたくても
再設計が必要なほどAPIが大きく変わってることが珍しくないということ
YouTubeのCr以外で遅い問題もPolymerがそうだからYouTubeが追従できないから

70 :Name_Not_Found:2018/08/06(月) 20:11:07.76 ID:???.net
crって?無駄にコンテキストから推測させないでほしい。
あなたは数文字節約できるかもしれないけどこっちはいい迷惑。

71 :Name_Not_Found:2018/08/06(月) 20:42:03.15 ID:???.net
>>66
> JSのライブラリはバージョンアップで簡単に切り捨てる
> ライブラリを使ってるとむしろ追従が大変になる

どのライブラリ? AngularとかReactとかかな?
なんか更新頻度高いしね

その点jQueryは安定していていいよ。
そもそも追従するほどバージョン出てないしw

72 :Name_Not_Found:2018/08/07(火) 02:19:33.00 ID:???.net
>>69
それ、単にそのライブラリ・フレームワークの設計が杜撰ってことじゃ
その互換性の部分以外のとこも大丈夫なのか?となりそう

73 :Name_Not_Found:2018/08/07(火) 02:38:12.35 ID:???.net
angularって言うほどいいかな?
偉そうな事言うのは嫌なんだけど
vueやreactの方が絶対いい

74 :Name_Not_Found:2018/08/07(火) 06:19:10.80 ID:???.net
>>72
杜撰ってわけでなくJS界のトレンドなんだろうな
jQueryみたいに切り捨てられないと(それでも利用度からすれば比較的切り捨ててる方)
負の遺産化するし

75 :Name_Not_Found:2018/08/07(火) 08:48:53.31 ID:???.net
>>74
jQueryは負の遺産にはならんよ。
DOM操作を短く簡潔にするためだけのものだから
使わないならjQuery1行をそのまま数行に対応付けて書き直せる
冗長になりますよってだけで誰もやらないけどね

負の遺産っていうのはAngularやReactなどの
最近のフレームワーク。違う書き方にしようとしたら
全体に手を入れなければいけない

76 :Name_Not_Found:2018/08/07(火) 09:14:39.72 ID:???.net
フレームワークは離脱するには設計から構造からやり直さないといけない
jQueryのようなライブラリは設計構造はそのままで済む場合が少なくない(※)が使用部分が広範になりがちで書き直し量が多い
※例えばアニメーション関係をjQueryに頼っていると構造にも絡んでくる
独特な機能を提供するライブラリは関係部分だけ書き直せば済むといえなくもない

77 :Name_Not_Found:2018/08/07(火) 13:11:22.50 ID:???.net
フレームワークで作られるのは迷惑。
意識高い系の人がフレームワークで使って作ったサイトをサーバに乗せるのに凄い苦労した経験あり。

78 :Name_Not_Found:2018/08/07(火) 13:16:32.94 ID:???.net
jQueryで唯一評価されるのはSelectorsAPIの基礎になったってことだけ

79 :Name_Not_Found:2018/08/07(火) 17:21:49.46 ID:???.net
element.style="width:100px;background-color:green;";
でいけたんだけど、element.style.width="100px"みたいにプロパティと値をわけて書くのと何か違いはありますか

80 :Name_Not_Found:2018/08/07(火) 17:38:56.47 ID:???.net
パース速度?

81 :Name_Not_Found:2018/08/07(火) 18:08:25.75 ID:???.net
可読性がよくないぐらいでは
element.setStyle({
 "width": "100px",
 "background-color": "green",
});
とかがあればいいな
prototypeいじりたくないけど

82 :Name_Not_Found:2018/08/07(火) 18:33:08.08 ID:???.net
>>79-81に便乗質問なんだけど
・element.styleにはCSSStyleDeclaration オブジェクトが入ってる
・element.styleに直接CSS定義テキストを代入できる
・element.styleに直接CSS定義テキストを代入した直後でも
 element.styleにはCSSStyleDeclaration オブジェクトが入ってるし
 element.style.width を変更することもできる

CSS定義に変更があった場合変更内容を元にelement.styleを再設定してるという感じだと思うんだけど
こういう挙動はどう理解したらいい?

より具体的には、ブラウザの実装がそうなってるというだけなのか
それとも同じような挙動をユーザがjsコードで実現できるのか

83 :Name_Not_Found:2018/08/07(火) 18:40:20.22 ID:???.net
>>82
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Proxy

84 :Name_Not_Found:2018/08/07(火) 19:09:44.83 ID:???.net
>>81
Object.assign(element.style,{
 width: "100px",
 backgroundColor: "green",
})

>>82
内部Proxyだと理解したら良い

85 :Name_Not_Found:2018/08/07(火) 21:00:21.68 ID:???.net
>>78
SelectorsAPIなんてjQueryの劣化版だろw

単にNodeListを返すだけで、そのNodeListを扱う方法まで作らなかった
jQueryはNodeListみたいに単に要素の配列を返すのではなく
要素の配列を内包した、jQueyrオブジェクトを返すことで
要素の配列そのものをメソッドで操作できる

ここが重要な所なのに、SelectorsAPIはそれを理解せず
単に要素の配列を返しただけ

86 :Name_Not_Found:2018/08/07(火) 23:07:26.82 ID:???.net
jQueryはいつgetContextに対応してくれますか
あとマウス座標取得決定版みたいなのも欲しいです
$(event)みたいにできたらいいのにな

87 :Name_Not_Found:2018/08/08(水) 01:20:21.73 ID:???.net
>>83-84
thx
あるんだな・・・意義はわかんなくはないけど正直どうかと思うが・・・
あとでじっくり読んでみる

88 :Name_Not_Found:2018/08/08(水) 03:22:44.19 ID:???.net
>>86
getContextに対応するだけでいいの?
canvas自体に対応しないとあまりメリットなくない?

jQueryになれてるなら、D3.js を使うのが良いと思う
canvas操作をjQueryライクに書くことができる
俺も普段はjQueryを使うけど、canvasを操作したい場合はD3.jsを使うよ

こんなk何時
https://codezine.jp/article/detail/7459

> D3.jsのセレクタを用いて宣言的に記述すると、以下のように簡潔に記述することができます。
> d3.selectAll("p").style("color", "white");
>  コードも、d3.selectAll("p")ですべてのp要素を取得、style("color", "white")で
> 文字色を白に設定、と直観的で分かりやすくなったのではないでしょうか。

89 :Name_Not_Found:2018/08/08(水) 03:25:55.79 ID:???.net
>>86
> $(event)みたいにできたらいいのにな

$(window).on('mousemove', function(event) {
 console.log(e.screenX);
 console.log(e.screenY);

 console.log(e.pageX);
 console.log(e.pageY);

 console.log(e.clientX);
 console.log(e.clientY);

 console.log(e.offsetX);
 console.log(e.offsetY);
});

90 :Name_Not_Found:2018/08/08(水) 03:26:27.64 ID:???.net
あ、間違った。

× console.log(e.screenX);
○ console.log(event.screenX);
以下同じ

91 :Name_Not_Found:2018/08/08(水) 06:59:52.39 ID:???.net
>>87
今だったらもしかしたらゲッターセッターになるのかもしれないけど
それらがJSに無かったころからCSSOMはあるしね
配列のlengthのようなものだよ

92 :Name_Not_Found:2018/08/08(水) 07:13:44.97 ID:???.net
array.lengthはちょっと違うのでは
array.lengthを書き換えても即座に自動的に書き換えられたりしないだろう

93 :Name_Not_Found:2018/08/08(水) 12:49:52.74 ID:???.net
するよ
TypedArray の様にゲッターやセッターではなく
プロパティアクセス時に0や1などと同等にフックして内部プロパティを変更してる

94 :Name_Not_Found:2018/08/08(水) 23:45:54.77 ID:FYSpbryG.net
JavaScriptって最近、変数に型つけたり、クラスを作ったりするらしいけど
もはやそれActionScriptじゃねーの?

95 :Name_Not_Found:2018/08/08(水) 23:50:17.01 ID:???.net
変数に型は付けないよ。

96 :Name_Not_Found:2018/08/09(木) 01:02:42.65 ID:???.net
>>94
昔ES3(ECMAScript 3)っていうのがあって、その後普及したのがES5
今はES6という名前だったのがES2015に変わって、ES2016だとかES2017だとか・・・

それは良いとして、ES3とES5の間にあったのがES4
ES4の夢は壮大で、クラスベースで型もあって・・・
そのES4に完全準拠することを目標にActionScriptは開発されていた

ところがES4の夢があまりにも無謀で破綻した。
そして型などの機能を減らして現実的にしたES5ができた

ActionScriptは破綻したES4相当なんだよ。消えたES4の成れの果て

JavaScriptに準拠しつつ型を取り入れたのはTypeScript

97 :Name_Not_Found:2018/08/13(月) 00:31:27.24 ID:???.net
A → B → C → D
とasync関数が繋がってるのをイメージしてください
Aから始まりEが完了すれば順にC、Bと完了してAに戻ってくるイメージです

ここで、Dの段階でBからの流れをやりたいとします
しかし、Dの次にBを続けると、
それまでのB → Cの流れの中で消費されているメモリが残ってしまいます。

もうDや過去のCやBに戻らせる必要はありません。
しかし、Dを開放してB'を開始すると、Aまで完了してしまい、それはよろしくありません。

A → B → C → D
まで来たところで
A → B → C → D → B' → C' → D'
となるのはメモリリークしやすく、チェーンが非常に長くなると色々なバグも発生しやすく
デバッグのしやすさにも関わってくるので避けたいです

とはいえ
A → B → C → D -...> B' → C' → D'と切り離すと
Aで行っている初期化・完了・例外処理から外れていってしまうため問題です

理想的には、チェーンをA → B' → C' → D'
とつなぎ直したいのです
どうしたらよいでしょうか

98 :Name_Not_Found:2018/08/13(月) 01:33:40.26 ID:???.net
ただの再帰とちゃうの

99 :Name_Not_Found:2018/08/13(月) 05:23:13.35 ID:???.net
設計段階でみょうちきりんな動きの要求を加味しとけよ

100 :97:2018/08/13(月) 10:40:04.67 ID:???.net
仕様としては、どの処理進行状態でもリセット、ぶつ切り行為が発生しうるという状況です
一応今はBで作業キューを持ってそれにCを追加する形にしていますが、
いかんせんコードがキレイではありませんし、僅かな仕様妥協が入ります

おそらくPromiseのラッパー的なとこから、根本的な非同期チェーン構造を
素朴なPromiseではなく1から考え直して別の物にすべきだと思うのですが
いいアイディアは無いでしょうか

全てのasync、async generator関数でCancelの概念と実装をしたら良いのでしょうか
全てのawait時にそれがCancelかどうかチェックして処理をするとか
それはそれで漏らせないコードが多くなりそうですし、処理が複雑になりそうです

一応今は各処理にセッションを渡すようにしていて、表に影響がある処理ではそのセッションが切れていたら何もしないことで、
特にイベント等から繋がる不要なチェーンが発動しても空回りさせることで影響がないようにしています
今はメモリの開放は時間経過やイベントをあえて見捨てたチェーンに伝わらせて
空回りを利用して自然と勝手にほぐれて、その後GCが回収してくれることに頼っています

しかし、今回は下手に空回りもさせたくないという状況です
コードを極力シンプルに保ちながらしっかりしていてかつ柔軟性も持った非同期処理構造を作るにはどうしたらよいでしょうか

例えば非同期でも、場合によっては完了を待たずに次に進みたいことってありますよね
例えば、Loadingを表示するとき
await View.fadeInLoadImage()
let file = await Network.fetchFiles( )
await View.fadeOutLoadImage()
とするとフェードイン、アウトの時間が無駄なので
View.fadeInLoadImage()
let file = await Network.fetchFiles( )
View.fadeOutLoadImage()
とすると思います。ですが、このフェードが動いているときに
コンテキストがリセットされると、色々懸念事項が生まれます
そういうのもスマートに扱える方法を知りたいです

101 :Name_Not_Found:2018/08/13(月) 10:53:58.59 ID:???.net
真面目に言うと
・開示されたごく一部だけで単純な仕様ではないことがわかるのに
・全貌の情報なしに
・コードがきれいかどうかや柔軟性など曖昧な要求を回答できる人間はいない

102 :Name_Not_Found:2018/08/13(月) 10:59:40.42 ID:???.net
>View.fadeInLoadImage()
>let file = await Network.fetchFiles( )
>View.fadeOutLoadImage()
>とすると思います。

let file = await Network.fetchFiles( )

だけやればいいじゃん馬鹿なの

103 :Name_Not_Found:2018/08/13(月) 15:20:02.78 ID:???.net
>>101
具体的な細かな話は気にしなくて結構です
私が知りたいのは、皆さまが一般的にこういう問題を抱えないために使っている
オススメTask系のフレームワークだったり、普段意識してる設計パターンについての話です

コードが綺麗とか柔軟とかいうのも、厳密に定義しようとしてもらわなくて結構です
そこは私がどう感じるかではなく、皆さんが素直に自然と良いと思ってる手段を知りたいと言うだけです

104 :Name_Not_Found:2018/08/13(月) 16:16:09.45 ID:???.net
安全な近道なんて無い

> しかし、今回は下手に空回りもさせたくないという状況です

下手に空回りさせないように地道に書けとしか
F/W信奉者にありがちだが解決してくれる何かを探すのを止めてみるべき

105 :Name_Not_Found:2018/08/13(月) 16:41:56.19 ID:???.net
>>103
質問が意味わからん。最初にasyncって決めつけてるのが駄目なんじゃないの?
asyncは実装なんだからそれを使うと決めるのは最後。
実装の話は忘れて、何がしたいのか綺麗にまとめたら?
あんなごちゃごちゃしてたら読む気にもならんよ

106 :Name_Not_Found:2018/08/13(月) 16:47:36.82 ID:???.net
AとかBとか処理があるんだろ?

function process() {
 A();
 B();
 C();
 D();
 B();
 C();
 D();
}

普通に書けばメモリリークにもならんし、
何が言いたいのかさっぱりわからない。
ここを出発点として、何が言いたいのかをまとめろ。

107 :Name_Not_Found:2018/08/13(月) 16:49:40.76 ID:???.net
あとから動作仕様変えても処理順や状態に起因するバグを起こさないパーフェクトなフレームワークはなんですか

一行にまとめるとこんなかんじ?

108 :Name_Not_Found:2018/08/13(月) 17:36:53.41 ID:???.net
いまいちよくわからんが

なんかデータ読んでる最中に(let file = await Network.fetchFiles( ))
フェードイン/フェードアウトみたいなことしてるんだけど(View.fadeInLoadImage())
読み込み中止ボタンを追加したいんだが(Cancelの概念と実装)
そんなときどうしたらいいの

って質問なんだろうか?

109 :Name_Not_Found:2018/08/13(月) 17:45:32.66 ID:???.net
そういう処理を自分で書くのは面倒だから嫌だそうだ

>全てのawait時にそれがCancelかどうかチェックして処理をするとか
>それはそれで漏らせないコードが多くなりそうですし、処理が複雑になりそうで

自分で細かく書かなくてもうまいことやってくれる何かが
希望のようだが、それをハッキリと書かないところをみると
フレームワークやライブラリ推しの書き込みの準備行動じゃねーかな

110 :Name_Not_Found:2018/08/13(月) 18:43:40.37 ID:???.net
>>104
地道に書くのは良いのですが
この先あちらもこちらもその場その場に書いていくと
メンテ面とか手に負えなくなって破綻してしまうかもしれないので
まだ取り返しの付く段階で場合によっては基礎システムを1から挿げ替えたほうが良いかもと思った次第です

>>105
現在Workerも使った大きく分けて十種類程度のタスクモジュールがあり、その中の関数の殆どが非同期もしくは並列に動いている状態です
最初はコールバックでも良いような規模で、その後async関数に切り替え、途中から自作イベント管理を追加し。。。。。。
という感じで大きくなるごとに対策してきました。
もう次に何かするなら、それで最後まで行きたいので相談させてもらっています

>>106
それで直ちに問題が会って動かなくなるというわけではないのですが、そうしたくないいくつの理由があります
・AからDまでの生存期間がそれなりに長い(ユーザーの操作次第、通常数分〜数時間程度)
・BからDまでは無制限に繰り返される可能性がある(ユーザーの操作次第)
・BからDまでで大量のリソースを使い得る(通常数十MB〜数百MB)
また沢山イベントハンドラやフックが残ったままになるのが気持ち悪い
(BからDまでが終われば生きた参照が無くなるのでGCによって自然と開放される)

111 :Name_Not_Found:2018/08/13(月) 18:46:30.10 ID:???.net
>>107
その通りですが、最初は問題なかったけれど複雑度が上がって無理が出てきた現状を
改善できる今より一歩上の非同期取扱概念(コツ)を知りたいと言うだけです
例えばPromiseにしてもCancellableだったりCancalTokenだったり
async generatorの代わりにObservable系を使うという手もあると思います
そういうちょっとした変更やラッパーで乗り切れるのではないかと感じています

>>108
それは例です。実際はそういうコードはありません。
メインの質問は>>97です
その例で言いたいことは、フェードアウト処理が例えば大げさに10秒かかったとします
そしたらその間にもう画面がローディング画像のフェードアウトをしていて欲しくないものになってる可能性もありますよね
1つの考え方としてはView.fadeOutLoadImage()にキャンセルできる関数を返させて、
それを関数の最後まで保持しておいて呼ぶとか考えられます
実際にそういうことをしているのですが、変数の局所性が悪くなってコードが読みづらくなります
また、その関数の終わりまでしか引き伸ばせません。もう少し先までで良いという時はイベントに登録したり煩雑になってきます。
今は場合によってはキャンセル手段を返させたり、イベントを監視させたり、セッションを確かめさせたり色々やっていますが
いかんせん一貫性がないので、その点も合わせてもっとステキな方法があるのではないかなというための例です

>>109
また自分で思いつきで書いても良いのですが、私だけのコードではないので
将来メンテする人のために少しでも良い方法を知りたい感じもちょっとはあります

112 :Name_Not_Found:2018/08/13(月) 19:57:00.35 ID:???.net
async関数が繋がるってのがまず分からない
サンプルコード位は出せないの

113 :Name_Not_Found:2018/08/13(月) 20:01:11.84 ID:???.net
頑張って説明してくれてるんだろうけど
俺の頭では理解できない
後は頼んだ

114 :Name_Not_Found:2018/08/13(月) 21:28:23.13 ID:???.net
>>112,113
繋がると言うのは
async function A ( ) { ...... await B( ) ...... }
async function B ( ) { ...... await C( ) ...... }
async function C ( ) { ...... await D( ) ...... }
のときA( )と呼んでからD( )まできた状態です
Dが解決しないとCが進みませんし
Cが進んで終わり解決しないとBが進みませんし
Bが進んで終わり解決しないとAが進まない状態です

問題はここでDから仕切り直してまたB'を呼びたいというときです
感じとしてはAがOSの起動、Bがブラウザの起動、Cがページの起動、Dがその中のプログラムスクリプトだと思ってください
OSはブラウザを起動し、もし終了したら自信も終了するよう計画します
ブラウザはページを起動し、もし終了したら自信も終了するよう計画します
ページはスクリプトを起動し、もし終了したら自信も終了するよう計画します

今したいこととは、DがB'、つまりスクリプトが新しいブラウザウィンドウを立ち上げようとしている状態です
ここで、他と同様にスクリプトがそのブラウザウィンドウの終了を待機したとしましょう
ブラウザウィンドウが無数に増え得てまずそうですよね

それでは、スクリプトがブラウザウィンドウの終了を待機しなかったとしましょう
この場合はスクリプトの処理が終わり、芋づる式にページ、ブラウザと終了します
そこまでは良いのですが、それに続けてOSも終了してしまうことになり、これは問題です

なので今取っている対策としては、Bにタスクを登録できるようにするということで、
つまりブラウザをタブ化して1つのインスタンスとし、全てのタブが閉じるまではブラウザが終了しないようにしています

それで上手く言ってるのですが、このような工夫をしないといけない箇所が段々増えてきており
危機感を感じているという次第です

115 :Name_Not_Found:2018/08/14(火) 00:43:17.41 ID:???.net
>>110
お前は自分が賢いと思ってるつもりの馬鹿だよ
基礎を何もわかっちゃいねぁ

>>106を読んで理解できてないだろ?

function process() {
 A();
 B();
 C();
 D();
 B();
 C();
 D();
}

このコードでな、Aの中のコードの生存期間は、
Aが呼ばれた時に始まり、Aが終了すると消えるんだよ
B〜Dも同じ。お前のように長い生存期間のものなんて一つもない

116 :Name_Not_Found:2018/08/14(火) 00:44:34.16 ID:???.net
>>113
わかるわけがない。
こいつは、基礎から大幅にずれた理解をしてる。
完全に間違った知識をもとに語っているから
説明全てが的外れ。
そんなのを読んで理解できるわけがないんだよ

117 :Name_Not_Found:2018/08/14(火) 09:17:38.33 ID:???.net
>>97
>>103
> 具体的な細かな話は気にしなくて結構です
あなたが解決できない原因はこれ。
理屈をすっ飛ばして、結果だけを求めるから理解できない。
ぶっちゃけ、一般的なフレームワークを使ってるという安心感が欲しいだけで理解する気は全くないでしょ?

解決手段は、配列と再帰を組み合わせるだけ

118 :Name_Not_Found:2018/08/14(火) 09:27:31.76 ID:???.net
タスクでも監視でも、これらの強制途中終了または放置が、予期しない副作用が不具合を起こす可能性をゼロにすることは不可能だろう
将来どんなコードが来るかわからんのだろ

自分でもそう思ってるけど上司の説得材料が欲しいから
こんなに長文を書いて反論で説得材料持ってきて欲しい、ってところじゃないのかね?

119 :Name_Not_Found:2018/08/14(火) 09:30:17.12 ID:???.net
ちょっと日本語文法おかしくなったがあまり気にしないでくれ

120 :Name_Not_Found:2018/08/14(火) 12:09:42.72 ID:???.net
チェーンさせるのとworkerで並列動作させるのとじゃ全然事情違くね

121 :Name_Not_Found:2018/08/14(火) 12:21:39.67 ID:???.net
>>120
>>97は並列動作じゃなくて、逐次動作じゃないの?

122 :Name_Not_Found:2018/08/14(火) 12:39:00.92 ID:???.net
>>121
>>110

123 :Name_Not_Found:2018/08/14(火) 12:47:21.21 ID:???.net
つーか非同期処理を含む関数を同期的に順次実行することを
チェーン って言うもんなんか?

124 :Name_Not_Found:2018/08/14(火) 13:02:01.45 ID:???.net
>>122
>>97を読む限り、完了をトリガーに次の処理に移っているように読めるけど、彼は並列処理の意味を理解してるのかね…
そもそも、並列処理なら、Promise.allで十分だろうに

125 :Name_Not_Found:2018/08/14(火) 13:06:28.37 ID:???.net
>>123
ないね
>>120は意味不明                                                                                         

126 :Name_Not_Found:2018/08/14(火) 13:33:01.26 ID:???.net
なんとなく程度しか理解してないのに再設計を振られた上流SE説

127 :Name_Not_Found:2018/08/14(火) 14:01:31.37 ID:???.net
>>123
だーかーらー、
こいつは基本自体がわかってないから
用語も間違ってると考えて間違いないよ

だから難しい用語をなくして、
基本の基本の話からしないといけない

その証拠が >>115 にレスがまったくないこと
このレベルの話から自分が抱える問題につなげることができない
関係のある話だってわかってないから

128 :Name_Not_Found:2018/08/14(火) 14:04:05.15 ID:???.net
あいつが気にしてるのは、リソースの問題
関数の生存期間の話をしてるのだから
並列処理は全く関係ない話なんだよ。
ようはローカル変数がわかってないレベル

asyncとかpromiseの関係ない話をすると疲れるだけだぞ。
関係ないことを教えるだけで問題解決せずに終わるからな

129 :Name_Not_Found:2018/08/14(火) 14:43:04.55 ID:???.net
>>115,116
問題は、今回の処理は非同期で繋がっているので、
つまり、そのように並べた状態ではなく入れ子状態になっているということです
お伝い忘れてすみませんが、A->B->C->Dという関係は対等な処理を分けたものではなく
親子関係というか、包括関係と言ったらいいのですかね?とにかくそのようなものになっているのです
例えばDがメニューバーの表示とすると、
B'を再び呼び出す必要があるかどうかはDの動作にユーザーがどう反応をしたかどうかであり
勿論違う処理のケースも有るのでその結果をCで待ちわびなければなりません
実際はもう少し複雑ですが、簡単に書きますと>>114のような関係になっているということです
要するにDは下っ端も下っ端だけど、その特質上特権的な状態変化を起こす可能性があるものということなのです

>>117
私はここ何年かちょくちょくこの非同期の問題をどういう形で解決したら良いかを考えたこともあります
なので皆さんの中でよく考えて持論だったりそういうセンスを習得した人が居るのではないかと思いました
私が聞きたいのはそういう感覚であり、まさか具体的なコードに対する回答が貰えるとは思っておらず、
>>97>>100で挙げたようなパターンに対して、ビビッとそういうときはこうするもんだという
決めつけたような適当な経験の言葉をいくらか頂けたら刺激として私に取り込もうと思ったところです
なので皆さん、適当でいいので言葉をください
例えば>>115さんは大変参考になりました
関数を小さく分割して入れ子になりがちだけど、もっと整理して単純なものに持っていけるのならそうしようと思います

130 :Name_Not_Found:2018/08/14(火) 14:44:03.07 ID:???.net
>>118,119
最後の頑張りのための気持ちを高めるためと、問題提起というわけでもないですが、
非同期処理の様々な難しさに対して皆さんがどう思考してるのかを聞きせてほしいということであります

>>123
チェーンというときはだいたいPromiseチェーンを意識しています

>>120,121,124
沢山のことを、直接的に掛けない部分もあり、事実と例えの質問を交ぜて書いた事もあって混乱させてしまいすみません
AからDまでは平行処理ではありません。沢山の非同期関数が同期的に枝分かれ状に呼び出されているルートの内の1つを選びだしたと考えてください。
実際のコードでは平行、並列の部分もありますが、ひとまずそうお考えください

131 :Name_Not_Found:2018/08/14(火) 14:47:10.42 ID:???.net
話を単純に戻して整理します
質問A)
皆さんは非同期処理が複雑になってきたらどのような対処を考えますか?
例1) コンテキストが変わると無効になるセッションをほぼ全ての関数に渡して置いて逐一セッション切れを調べるようにする
例2) キャンセルの値や手段を定義してそれを伝播させる(Cancellable Promise)
例3) その合わせ技のようなもの(CancelToken)
その他)

質問B)
>>114の状態で>>97の問題に直面したとき、
要するにいままで繋がってきた流れの中で突然安全にリセットしたくなったときはどうすればいいのか
例1) >>114で言ったように、ブラウザがほぼいつでも安全にタブを閉じれるように、
つながりの根本の方に枝を生やしたり切り落とせるポイントを用意しておく
例2) チェーンにを触れるPromiseをメモリリークを起こさないよう必死に再実装して明示的に切り離すようにする
例3) 生Promise+awaitに頼らない新設計を考える
その他)

質問C)
イベントを使うと不特定多数の直接知らない待機状態の処理を動かせて便利だが、
非同期処理のためタイミングが問題になる場合はどのような工夫をすればいいか
つまり、一方的にイベントを発火するだけではなく、それを全員がきちんと受け取って把握し
必要なら一定の準備ができたというフィードバックを得られるようなイベントシステムをきちんと整備するべきか、
それとも質問Aに書いたようなセッションだったり、今の共有状態変数を準備して対処するか
皆さんはどちらで組まれてるコードがお好きか

また他の場合でも一般に、問題解決のために高度に抽象化仕切ったシステムを作り上げたものと
例えばグローバル変数を1つ使うなどしてでも比較的シンプルに乗り切ったもの
場合によってそれらのスタンスを使い分け混合した状態
皆さんはどのスタンスで組まれてるコードがお好きか

132 :Name_Not_Found:2018/08/14(火) 14:55:02.72 ID:???.net
質問1〜3)コードの正確性や安全性の検証に、コードを書くよりも圧倒的に多い工数/人数を費やす

結局、突き詰めると把握できない把握しきれない何かが問題なら
どんな状況でもコード生産速度を優先した途端に必然的に不具合が生まれる

規約が守られているか設計思想に合っているか
確認させる土壌を作るほうがマシ

133 :Name_Not_Found:2018/08/14(火) 15:33:09.53 ID:???.net
>>129
> 問題は、今回の処理は非同期で繋がっているので、
> つまり、そのように並べた状態ではなく入れ子状態になっているということです

なりません。
少なくともメモリ使用量に限っては関係ありません

134 :Name_Not_Found:2018/08/14(火) 15:35:50.59 ID:???.net
入れ子というのはこういうもののことです。
promiseやasyncではこうなりません

function process() {
 A(function() {
  B(function() {
   C(function() {
    D(function() {
     B(function() {
      C(function() {
       D(function() {
        // do something
       });
      });
     });
    });
   });
  });
 });
}

135 :Name_Not_Found:2018/08/14(火) 15:41:32.94 ID:???.net
これ何気に書くのめんどくさそう

136 :Name_Not_Found:2018/08/14(火) 15:53:55.90 ID:???.net
並列処理と非同期の違いもわかってなさそうw

137 :Name_Not_Found:2018/08/14(火) 16:02:13.97 ID:???.net
それはある
これ非同期あんま関係ない

138 :Name_Not_Found:2018/08/14(火) 16:27:33.61 ID:???.net
>>131
> 皆さんは非同期処理が複雑になってきたらどのような対処を考えますか?

非同期処理も、非同期処理じゃない場合も同じ。
処理を単純化して、その組わせで作る

> 例1) コンテキストが変わると無効になるセッションをほぼ全ての関数に渡して置いて逐一セッション切れを調べるようにする
> 例2) キャンセルの値や手段を定義してそれを伝播させる(Cancellable Promise)
> 例3) その合わせ技のようなもの(CancelToken)

これらは非同期処理が複雑になったときの対処法ではない。
非同期処理かそうかは関係なく、処理の途中で
キャンセルしたい場合に実装すべきこと

1のセッション切れは意味不明。独自用語使うな。
何がしたいのか全く不明

139 :Name_Not_Found:2018/08/14(火) 17:05:58.93 ID:???.net
繰り返しになるけど頼むからサンプルコードで示してくれ
長々説明してくれるのは良いけど独自用語が混ざって訳分からん

140 :Name_Not_Found:2018/08/14(火) 17:12:06.00 ID:???.net
こういう人を相手に商売したらかなり稼げそう

141 :Name_Not_Found:2018/08/14(火) 17:48:42.97 ID:???.net
>>132
確かにそうでしょうが、その規約だの設計思想だのも私に委ねられてる状態でして
結局の所、コードが動かないから、不具合が生じているから質問しているわけではありません
ただ少しでも良いコードを残したい、書いていきたいと思った次第で、
私はJSの「良い」コードというのはその時その時代の世界のJSerがどう考えているかで決まると長年思っているのですが
async関数やPromiseが入って2,3年がたった今どのような「良さ」を皆さんがそこに考え出してるのか
その感覚の言葉のシャワーを浴びて私の感覚を少しでも正しい方向に矯正したいというのが正直な気持ちです

>>133,134
言葉に認識の違いがあるのかもしれませんが要するに>>114の形だとお考えください

>>137
確かにおっしゃる通りです 同期と読み替えてくださって構いません
結局私は自分の中でも問題をまとめきれて居なかった上、色々書きすぎて本質を見失っていたようです
大変申し訳ございません

実際のところ、私がこれまで書いてきた問題(>>111など)は全て繋がっていて切り離せないものだったようです
結局私は、非同期『管理システム』、そのパターンを求めているのです

142 :Name_Not_Found:2018/08/14(火) 17:54:35.16 ID:???.net
非同期と同期の大きな違いは、非同期は、同期で言う割り込みのように、
ユーザーの操作などによるイベントによる別の処理が途中と言って良いようなところで発生し得ることでしょうか

私は>>114でBで複数のCを待ちわびることで解決したと言いましたが、本当はそれだけではないのです
Cに相当する処理は実際は複数の非同期関数が繋がっているということもありますし、
その中ではawait Promise.race([D(),timeout(42),listen('buttonclick')])のようなものも使っています
ユーザー操作やタイマーや、他所から来たイベント次第でいつどう処理が完了するかは分かりません

要するに、シンプルに考えればDがBにnewC'を登録し、Dが終了すればoldCが開放されるように見えますが
実際はDが終了した段階でCはもうDを待ってはおらず、別の処理を始めているかもしれないです
Dはメニューと例えていたので変かもしれませんので言い換えると、
実際はC5が終了した段階でC4はもうC5を待ってはおらず、別の処理を始めているかもしれない、ということです
なので独自用語でセッションと言いましたが、関数開始時などに渡され、その関数が担当する処理が
未だ有効かどうか分かるオブジェクト用意し、コンテキストが変わるときにそのオブジェクトを無効状態にしておくことで、
そのような「タイミングのズレ」にだいたい対処しています

つまり、私は今基本的に素のasync-awaitを使いながら、時にはイベントを使ったり、セッションを使ったり、
Bのような部分的にタスク管理したり、色々しすぎているので
これを大きくまとめた比較的大規模なタスク管理システムを導入して整理し直すか、
もしくはそこまで行かないが10必要だったその場しのぎ対処が5になるような
比較的ちょっとした共通追加対応策についてのヒントや方向性のアドバイスが知りたいと言うことです

すみませんでした。

143 :Name_Not_Found:2018/08/14(火) 18:01:27.92 ID:???.net
>>141
あぁ、わかった
お前に言えることは「余計なことすんな」だ
問題がわかってないお前が決めた所で失敗するだけ

問題が発覚した時に、後から方向転換できるようにしていればいい。
問題が起きたときに、最初に決めたルールは絶対守れと押し付けるはやめろ

144 :Name_Not_Found:2018/08/14(火) 18:03:36.64 ID:???.net
> これを大きくまとめた比較的大規模なタスク管理システムを導入して整理し直すか、

そんなものはこの世に存在しない
大規模 = 悪 だから覚えておいたほうが良い
つまりお前の発想は間違いに突き進んでる

145 :Name_Not_Found:2018/08/14(火) 18:15:36.62 ID:???.net
「現場に聞け」じゃないの

146 :Name_Not_Found:2018/08/14(火) 18:16:25.79 ID:???.net
>>143,144
私はこれまでこのプロフェクトを2度白紙にして本当に0から作り直したのですが
この調子で行くと完成と同時くらいに3度目の限界点が来るんじゃないかなと
次の人が必要なら好きに作り直しゃ良いですっかね?

147 :Name_Not_Found:2018/08/14(火) 18:20:23.19 ID:???.net
間違いを指摘されて、本当に理解したかはともかく、それを間違いと認められる点は美徳
ただ、「あるはずだ」で質問を延々続行するのはどうかと

148 :Name_Not_Found:2018/08/14(火) 18:20:40.61 ID:???.net
>>146
反省してないからそうなる
先に問題点を洗い出せ
問題点がわかってなくて反省できるわけ無いだろ

この調子で行くと3度目じゃ終わらないだろうな
反省しないお前のやり方じゃ何度も同じことを繰り返す

要するにお前の能力不足だ

149 :Name_Not_Found:2018/08/14(火) 18:21:45.22 ID:???.net
能力不足っていうのは、プログラミング能力だけのことじゃない
不足してるのはリーダーや管理者的な能力だよ

150 :Name_Not_Found:2018/08/14(火) 18:22:15.11 ID:???.net
だいたい過去2度白紙になった原因は何よ要件変更じゃないの
どんな要件変更にも耐える設計作るのと永久機関作るのとどっちが現実的

151 :Name_Not_Found:2018/08/14(火) 18:27:33.31 ID:???.net
>>148,149
それは十二分に承知してる
俺じゃなかったら1回目で済んでる
なんで経験浅い俺に任されたんだ
正直問題点は行の数だけある
流石に3回目なのでなんで動いてるのか分からんようにはなってはいない
でもそれが俺の限界
この先最後の最後に細かなバグに苦しめられることは必死
多分修正しきれる可能性のほうが低いだろう
もう疲れたよ
すみません
質問閉めます
と言っても多分参考になった
頑張る

152 :Name_Not_Found:2018/08/14(火) 18:36:52.55 ID:???.net
>>150
1回目、2回目は成果物完成間近に根本的問題が避けられないことが分かったが
コードが密結合過ぎて要件大変更に耐えられそうになかった
だから3回目は俺もかなり加わって極力個々を小さく、素に作った
要件変更には強い
だが小さなバラバラに動く歯車を管理するのに限界がきそう

153 :Name_Not_Found:2018/08/14(火) 18:49:30.30 ID:???.net
>>152
根本的問題って何?3回目スタートのトリガーは何?

>1行目「1回目、2回目は(略)根本的問題が避けられないことが分かった」

ほうほうなるほど1回目2回目は明確な問題があったんだな
その書きぶりだと要件変更のせいで作り直しとかじゃなかったんだな

>2行目「分かったがコードが密結合過ぎて要件大変更に耐えられそうになかった」

は?問題があったから作り直したんちゃうの?
要件大変更は生じたの?それとも未来くるかどうかわからない大変更に備えての作り直し?

無駄な情報を追加してる一方で、必要な情報が不足し整合性がない
日本語でこれ

154 :Name_Not_Found:2018/08/14(火) 19:16:08.71 ID:???.net
1回目>設計だけやった
一応なんとか形になったものの解消できないバグが残った
しかも将来の仕様変更に耐えられそうもなかった
バグの対応と将来の仕様変更への不安から設計からやり直すことになった

2回目>設計だけやった
1回目の失敗から設計をやり直したが、最終的な結果は1回目と同じだった
やはりバグの対応と将来の仕様変更への不安から設計からやり直すことになった

3回目>設計だけでなくコーディングにも入った
なんとかバグを解消しつつ想定される仕様変更にも一定程度対応できるようになった
しかし部品ごとの独立性を重視して非常にきめ細かく作り込んだため全体像から細部まで把握するのが至難の業になった
なお1回目から3回目まで通じて仕様変更はなかった


妄想推測と過去レスを元に書くとこんなところか?
密結合を嫌って疎結合にし機能ごとの独立性を重視した結果煩雑になったというならば
>>97>>100末尾の諸問題は各機能のインターフェースや実装のレベルまで落とせそうなものだが

155 :121:2018/08/14(火) 19:21:25.23 ID:2dROb7DN.net
>>130
自分は平行処理なんて書いてないから
そもそも、平行処理って何?並行処理のこと?
並行処理と並列処理の違いを理解してるの?
「並列処理じゃなくて逐次処理じゃないの?」と指摘されてるのに、なんでそっちはガン無視なのよ

専門用語を使えば使うほどボロを出してるから、もっと平易な日本語で書きなよ
知ったかしないで、分からないことは分からないと認めなきゃ先に進めないでしょ?

156 :Name_Not_Found:2018/08/14(火) 19:33:35.12 ID:???.net
これから専門用語禁止な

157 :Name_Not_Found:2018/08/14(火) 19:37:36.63 ID:???.net
言ったら魂抜き取られるのか

158 :Name_Not_Found:2018/08/14(火) 19:44:31.79 ID:???.net
うん。抜き取る

159 :Name_Not_Found:2018/08/14(火) 20:47:44.73 ID:???.net
htmlを新しいウィンドウで開く方法ってないでしょうか

window.open(url) はurlを引数に取りますが

window.open('<html><body>Hello!</body></html>');
みたいにhtmlを引数にして新規ウィンドウで開く方法ってないでしょうか

160 :Name_Not_Found:2018/08/14(火) 21:01:38.34 ID:???.net
あるけどjQueryの話題じゃないので頑張ってくれ

161 :Name_Not_Found:2018/08/14(火) 21:05:42.42 ID:???.net
>>159
ブランクで開いてからhtmlを設定したらいいんじゃね

162 :Name_Not_Found:2018/08/14(火) 21:16:57.19 ID:???.net
>>161
一応できて動きました。こんな感じですかね?

function new_window() {
var w = window.open("", "NW");
w.document.open();
w.document.write("<html><body>hello</body></html>");
w.document.close();
}

new_window();

163 :Name_Not_Found:2018/08/14(火) 22:09:10.35 ID:???.net
>>160
バカは黙ってた方が身のためだ

164 :Name_Not_Found:2018/08/15(水) 00:22:54.99 ID:???.net
>>129-130
皆、非同期処理のネストの深さに困ったから、

ネストが深くならないように、await が作られた

165 :Name_Not_Found:2018/08/15(水) 00:38:14.67 ID:???.net
>>159-162
Selenium WebDriver では、ctrl+T キーを送って、別のタブを開いて、

そのタブに移動する、というサンプルがあった

166 :Name_Not_Found:2018/08/15(水) 00:46:01.09 ID:???.net
非同期処理についての質問者は、
名前欄に、最初の書き込みの番号を入れてくれ

処理の基本は、all or nothing

A | B | C
というパイプラインがあって、B で失敗した際、A だけが更新されると、
データの不整合が起こり、データの一貫性がなくなる

データベースなどでは、roll back して、Aの更新前に戻す。
中途半端な更新をしたら、絶対にダメ!

167 :Name_Not_Found:2018/08/15(水) 13:40:22.90 ID:???.net
>>153,154
もうただのおしゃべりになるのであまり自ら事情をバラしたくないのだが、
その問題のために要件も含めて設計を大胆に見直す必要が出たってこと
/*このあと15行ほど書いたが削除した。察して欲しい。*/

>>155
勿論十二分に理解して書いてるよ
だって書く前にググったもの しっかりとね
2chに書いてるんだからそれくらいのことは当然してる
バカにしないで

>>その他のレスの人
アドバイスや意見をどうもありがとう

168 :Name_Not_Found:2018/08/15(水) 13:58:02.23 ID:???.net
> その問題のために

その問題を自分で理解してないんでしょ?

169 :Name_Not_Found:2018/08/15(水) 14:26:26.10 ID:???.net
>>165
バカは黙ってた方が身のためだ

170 :Name_Not_Found:2018/08/15(水) 14:28:09.61 ID:???.net
js固有でもないプログラミングの基礎の用語を
書く前にググらなきゃいけない時点でバカにされても仕方ない

1、2回目を限界が来たと書いていたけど
要件定義不備設計不備に由来する不具合が原因の作り直しじゃん

171 :Name_Not_Found:2018/08/15(水) 15:22:27.12 ID:???.net
ちょっとでもぐぐってたらセッションという言葉の独自定義は避ける

172 :Name_Not_Found:2018/08/15(水) 16:33:43.46 ID:???.net
>>168
その問題というのは誰が見てもハッキリ分かるもの
度合い問題でもあるが
何を何に変えてそこから何に変えて良くしたか
3段階で解決できるものと言ったら

>>170
たしかになぁ
でも何とも言えんわ
正直言えば1回目で完成ですでも良かったわけだし
仕様はこうです、合わせてくださいってこちらから言える案件だし
つうか目的くらいしか決められてないしどういう機能があるべきかそれほど自明でもないし
そのくせ追加要望は未だにしょっちゅうしてくるし
ここまで聞いて分かったと思うけど、直接目的を達成するものだけを作ってるわけじゃないし

>>171
セッションは本来の呼び名を避けて適当に言ったんだよ!
ググってなくてすまんかったな!
よかったら良い呼び名を教えてくれ
次からそれを使う

173 :Name_Not_Found:2018/08/15(水) 16:49:37.59 ID:???.net
並列処理とか普通にやればいいだけなんだが
何に困ってるか説明できてないので答えようがない
まあ全てはこいつの能力不足だ
お前が教えるんじゃなくてお前が教えてもらうほうだ

174 :Name_Not_Found:2018/08/15(水) 17:28:22.58 ID:???.net
まずは端的かつ明確に回答を行えるようになることを目標にすべき
同僚の苦労が偲ばれる

175 :Name_Not_Found:2018/08/15(水) 17:59:48.67 ID:???.net
>>131の質問の内容からして自分の常識とは異なっている
実装手法なら、周辺環境や規約にもよるけど、だいたいこのように書くと言えることもある

でも設計だと一部を抜き出して語る意味がない
全体を知っている者同士の会話でもなければ良し悪しの判断基準がないから語りようがない

毎回個別に考えて調べて考えるのが原則
だから設計は単価が高くて人工が多い

176 :Name_Not_Found:2018/08/15(水) 18:38:45.28 ID:???.net
ヴァカ

177 :Name_Not_Found:2018/08/15(水) 22:02:15.63 ID:???.net
JavaScript関係ない話みたいだし
元質問者も多少おさまりつかないとこあるかもしれんけど
もうやめといたらどうか

178 :Name_Not_Found:2018/08/16(木) 15:04:39.41 ID:???.net
なんか先日からアプデ可能って出るんですがやっても必ず失敗します
何かあったんですか?

179 :Name_Not_Found:2018/08/19(日) 17:54:52.02 ID:Hds7LGpQ.net
if(true){
 ・・・
}else{
 ・・・
}
みたいな文を書くとエラーが出るのだが、ダメなのか?

180 :Name_Not_Found:2018/08/19(日) 18:18:51.73 ID:???.net
>>179
>みたいな文
というのがよくわからないので
if(true){ console.log(1) }else{ console.log(2) }

これ試してみて

181 :Name_Not_Found:2018/08/19(日) 19:36:08.59 ID:Hds7LGpQ.net
>>180
()内の条件が定数だと警告が出ていたようです。

182 :Name_Not_Found:2018/08/19(日) 19:47:45.25 ID:???.net
ようですってなんだよ大泉洋か何かかよ

183 :Name_Not_Found:2018/08/20(月) 00:23:46.12 ID:???.net
自分でlintかなんか使ってわざわざ警告出るようにしておいて
相談するってさっぱり意味が分からんな

184 :Name_Not_Found:2018/08/20(月) 11:54:39.95 ID:???.net
あれだろ
解決してほしいんじゃなくて話を聞いてほしいだけ

車が故障したと電話する女、クソまじめに解決のため診断方法をレクチャーしようとしちゃう男、みたいな

185 :Name_Not_Found:2018/08/22(水) 08:56:05.23 ID:A1pPKwOL.net
javascriptのクラスを駆使して何か作ってみたいんだけどどういう内容のものならクラスがバリバリ活躍できる?
車クラスを作ろう!とかそういう練習問題的なのは無しとして

186 :Name_Not_Found:2018/08/22(水) 09:50:53.16 ID:???.net
練習問題が欲しいけど練習問題的なのは嫌ですって

187 :Name_Not_Found:2018/08/22(水) 11:11:27.40 ID:???.net
車クラスは作れるのかな?
オレには作れん(´・ω・`)

188 :Name_Not_Found:2018/08/22(水) 12:41:47.46 ID:???.net
>>186
実践的なお題がないかと思いまして

動物クラスを継承して犬クラスを吠えさせる、みたいなのでは実際にはどういうシーンで役立つのかイメージがつかないのですが…

189 :Name_Not_Found:2018/08/22(水) 13:10:48.11 ID:???.net
実際にはどういうシーンで役立つのか知りたいというだけなら
classを使っててclassでないと困る実例を聞けばいいと思うんだけど
なんでjavascriptのクラスを駆使して何か作ってみたいの?

190 :Name_Not_Found:2018/08/22(水) 19:51:59.82 ID:???.net
お題スレでお題攻略してみるとか
+ JavaScript のお題用スレッド +
https://mevius.5ch.net/test/read.cgi/hp/1526666703/

191 :Name_Not_Found:2018/08/23(木) 08:07:23.94 ID:???.net
>>185
クラス、クラス言いたいだけかよ

192 :Name_Not_Found:2018/08/23(木) 13:51:34.13 ID:???.net
くらすけんね

193 :Name_Not_Found:2018/08/23(木) 14:31:34.67 ID:???.net
倉敷県?

194 :Name_Not_Found:2018/08/23(木) 21:24:14.89 ID:csYFQA4h.net
<button onclick="if(typeof MyFunc == 'function') MyFunc();" ・・・
と言うような記述を見たのだが、
ifは何のためにあるの?
何が目的なの?

195 :Name_Not_Found:2018/08/23(木) 21:32:24.88 ID:???.net
onclickのとこを自動生成してるんじゃねーの

196 :Name_Not_Found:2018/08/23(木) 21:36:30.53 ID:???.net
>>194
それ悪い書き方

MyFuncに関数が入っていない場合(=バグ)
バグの場合にバグを無視するというコードになってる

197 :Name_Not_Found:2018/08/23(木) 23:28:12.11 ID:???.net
>>194
良し悪しはともかく目的がなにかと想像すると
MyFuncは別のとこで代入されてるとか
代入されるまではundefinedなりnullなり

198 :Name_Not_Found:2018/08/24(金) 00:32:26.75 ID:???.net
悪手かもしれないけれど結構好きw

199 :Name_Not_Found:2018/08/24(金) 06:51:28.82 ID:???.net
別にnullやundefinedが入ってても問題はないし
目的は呼べないものを呼ばないようにすることじゃなくて
呼べるものを呼ばなくすることだな
例えばNodeとかでV8に手を入れてtypeofを拡張してるとか
それで例えば呼ぶとエラーになるクラスのコンストラクタは'constructor'を返すようにしてるとか
一度しか呼ぶことを期待していない関数が呼ばれた後は'function'じゃなくすとか
十分に考えられる

200 :Name_Not_Found:2018/08/24(金) 08:06:47.02 ID:9ePMrMWo.net
MyFuncなんてふざけた名前付ける奴がそこまで高尚なことを考えてるだろうか

201 :Name_Not_Found:2018/08/24(金) 09:38:25.86 ID:???.net
>>200
関数名は自己顕示欲の塊だな

202 :Name_Not_Found:2018/08/24(金) 09:47:25.35 ID:???.net
MyCheepfuncとでも書けばよろしいか

203 :Name_Not_Found:2018/08/24(金) 18:02:32.12 ID:???.net
そうだよな!myFuncだよな!!

204 :Name_Not_Found:2018/08/26(日) 13:34:01.68 ID:???.net
>>188
IE11用にPromiseのPolyfill作成

205 :Name_Not_Found:2018/08/26(日) 13:37:17.36 ID:???.net
>>199
>>194の事例なら、onclickを付け外しする方が圧倒的にスマート

206 :Name_Not_Found:2018/08/27(月) 02:12:08.30 ID:???.net
onclick="MyFunc()"
が一番スマート

207 :Name_Not_Found:2018/08/27(月) 09:03:04.46 ID:???.net
>>206
そこはaddEventListenerじゃないのか

208 :Name_Not_Found:2018/08/27(月) 20:32:05.95 ID:???.net
ジェネレーター関数で
function* g(){
const n=yield 0;
yield n;
}
var f=g();
console.log(f.next());
console.log(f.next(3));

nextで直前のyield部の変数に値を渡せる、みたいな機能がありますが
これをうまく利用した例などはありますでしょうか
ぱっと見どこに値を渡したのか?という見辛さに違和感があるのと
実行直前の値を変えたい、という状況が思いつきません

209 :Name_Not_Found:2018/08/28(火) 02:54:06.46 ID:???.net
普通受ける方も送る方もfor文で回しながら渡すだろ

210 :Name_Not_Found:2018/08/28(火) 10:55:32.54 ID:???.net
ふぉーだね

211 :Name_Not_Found:2018/08/29(水) 20:32:00.83 ID:BL3o/gse.net
index.htmlで、JSの読み込みが三つあり
<script src="file1.js"></script>
<script src="file2.js"></script>
<script src="file3.js"></script>
では正常に動作するんだけれど、三つのファイルを単純に連結して一つにして、
<script src="fileAll.js"></script>
とするとエラーが出まくるんだが、一般に、このやり方はエラー出るの?
単純に連結しているから、三つに分離している場合と同じだと思うのだが。

212 :Name_Not_Found:2018/08/29(水) 20:35:12.46 ID:???.net
でない。理由は思いつくが、興味ないので他の人に任せる

213 :Name_Not_Found:2018/08/29(水) 20:52:35.56 ID:???.net
[> 興味ないね

214 :Name_Not_Found:2018/08/29(水) 21:09:27.82 ID:???.net
strictと非strictが結合してるとか

215 :Name_Not_Found:2018/08/29(水) 21:51:10.55 ID:???.net
ネームスペースがカオス状態

216 :Name_Not_Found:2018/08/30(木) 02:12:49.36 ID:???.net
前後のファイルがつながって、1文扱いにならないように、

ファイルの冒頭に、; を入れておけば?

217 :Name_Not_Found:2018/08/30(木) 13:06:35.40 ID:???.net
Q ○○したらエラーが出ます

A エラー内容確認してがんばって直せ

218 :Name_Not_Found:2018/08/30(木) 15:50:26.75 ID:???.net
でもエスパー能力高いやつって経験豊富だから大体どういう理由でエラーが出てるか予想できるよね

219 :Name_Not_Found:2018/08/30(木) 16:25:10.54 ID:???.net
でもでも言うまえに再現できるデモでも用意しろや

220 :Name_Not_Found:2018/08/31(金) 06:24:14.99 ID:???.net
ファイル晒せよ

221 :Name_Not_Found:2018/08/31(金) 14:58:47.93 ID:???.net
恥ずかしいし・・・・・・

222 :Name_Not_Found:2018/08/31(金) 21:42:38.54 ID:???.net
恥ずかしいなら、質問しなければいい

223 :Name_Not_Found:2018/09/01(土) 03:18:20.04 ID:???.net
>>221
チンコ晒せといってるじゃないんだから。
Githubとかあんなところもその恥ずかしいという気持ちを乗り越えてからすべてが始まるんだぞ

224 :Name_Not_Found:2018/09/01(土) 05:15:01.09 ID:???.net
チンコかファイルかって言われたら俺はチンコを晒す

225 :Name_Not_Found:2018/09/01(土) 09:39:29.79 ID:???.net
>>221
その理屈だと、エスパーも恥ずかしくてコードを晒せない

226 :Name_Not_Found:2018/09/01(土) 13:15:10.23 ID:???.net
チンコより頭頂部を晒せ

227 :Name_Not_Found:2018/09/01(土) 13:29:54.75 ID:???.net
            ,.:::.⌒⌒:::::ヽ
            (::::::::::::::::::::::::::::)
           (::::::::::::::::::::::::::::::::::)
          (:;;;::::::::::::::::::::::::::::::::::::)
         (:;;;;;:::::::::::::::::::::::::::::::::::::)
          (;:::::::::::::::::人:::::::::::::::::ノ
          (::::::: (´・ω・`):::::ノ 

228 :Name_Not_Found:2018/09/01(土) 22:16:40.35 ID:???.net
jqueryのmapとjavascriptのmapって全然違いますよね
jqueryの方はreturnで配列返したら配列じゃなく展開されて値が代入されてました
なので配列で返したいときは
$().map(_=>[[]])
みたいに入れ子にしないといけない、でよいでしょうか?

229 :Name_Not_Found:2018/09/01(土) 23:09:13.75 ID:???.net
>>228
なんか根本的に間違ってるぞ。

jQueryのmapは二種類ある。
$.map と $().map だ。

前者は、(jQueryが開発された当時、存在しなかった)
JavaScriptのmap相当の機能を提供するものとして作られた。

後者はjQueryオブジェクト(=要素の配列をラップしたもの)に対して
mapを実行するもの・・・が基本ではあるんだが、jQueryオブジェクトというのは
いうのはDOMだけではなく任意のオブジェクトをラップすることが可能なので
いろんなものに使えたりはする。

で、JavaScriptのmapとして使いたいなら、$.mapの方を使う。これは配列が
mapメソッドの引数になっているという違いはあるがJavaScriptのmapと同じように使え、
真の配列だけではなくlengthプロパティがある配列っぽい(Array-like な)ものを
扱えるという便利さもある。

> みたいに入れ子にしないといけない、でよいでしょうか?
入れ子にしないといけないとかいうのは意味がわからん。
後者を変な使い方をしてるだけだろう。
あんたが欲しいものは前者だ。それ使っておけば悩むことなど無いはずだ。

230 :Name_Not_Found:2018/09/02(日) 00:08:20.80 ID:???.net
>>229
実際に試してみるとわかる
var arr=[1,2,3];
console.log( $.map(arr,_=>[1,2,3]) ); //[1, 2, 3, 1, 2, 3, 1, 2, 3]
console.log( arr.map(_=>[1,2,3]) ); //[Array(3), Array(3), Array(3)]
console.log( $.map(arr,_=>[[1,2,3]]) ); //[Array(3), Array(3), Array(3)]
ということではないかと

231 :Name_Not_Found:2018/09/02(日) 00:23:21.84 ID:???.net
>>230
マジかw それはしらなかった。

jQueryのmapってRubyでいうflat_mapだったんだ。
ってことはmapといいながら1対1での変換じゃなくて
要素を増やしたり減らしたりもできるってことか。

なんでjQueryのmapはdeprecatedにならないのかと
思っていたらそういうことだったんだな

232 :Name_Not_Found:2018/09/02(日) 08:29:58.46 ID:???.net
$.map, $().map

jQuery には、2種類のメソッドがある

$.メソッド名は、汎用的なユーティリティ関数で、
$().メソッド名は、this を持つ、インスタンスメソッド

233 :Name_Not_Found:2018/09/02(日) 09:15:03.76 ID:???.net
thisを持つとは?

234 :Name_Not_Found:2018/09/02(日) 14:40:05.80 ID:???.net
レシーバーに有益な値が渡されるという意味だろう

235 :Name_Not_Found:2018/09/02(日) 17:24:13.95 ID:???.net
$.mapもthisを持つがな

236 :Name_Not_Found:2018/09/02(日) 19:19:10.92 ID:???.net
thisを持てない関数とかメソッドってあるんか?

237 :Name_Not_Found:2018/09/03(月) 11:57:20.99 ID:???.net
thisを持つとかまた頭悪いオレオレ用語開発したなw
付き合ってあげるここの人たち優しい

238 :Name_Not_Found:2018/09/04(火) 03:22:36.38 ID:???.net
this is

239 :Name_Not_Found:2018/09/08(土) 08:11:12.39 ID:???.net
var tName = [];
var tNumber = [];
var i = 0;
var o = document.getElementsByTagName("a")[25];
for( i=6;i <=24;i++ ){
tName.push(document.getElementsByTagName("a")[i]);
tNumber.push(document.getElementsByTagName("a")[i-1]);
if(tName[i].textContent.includes("(1001)") == true){
tName[i].style.display = "none";
tNumber[i-1].style.display = "none";
}
}
if( o.textContent.includes('(1001)') == true ){
o.style.display = "none";
}
これ実行するとTypeError: tName[i] is undefinedって出るんですが原因わかる方いますか?
実行順序の関係だろうか.

240 :Name_Not_Found:2018/09/08(土) 09:15:08.84 ID:???.net
空のtNameにpushしてるから
ループ最初のi==6の時はtName[0]しかないぞ

241 :Name_Not_Found:2018/09/11(火) 08:11:08.54 ID:???.net
>>239
エラー出た時にブラウザでオブジェクトの中身覗いたら原因丸わかりじゃないですか?
いつもどういうデバッグしてるんですか

242 :239:2018/09/11(火) 09:07:54.08 ID:???.net
いつも割と気合と努力で(console.log)でゴリ押ししてたからなぁ汗
ブラウザのコンソールはエラーと警告が出るだけの場所だと思い込んでてまさかコード打ち込んでデバッグ出来るとは青天の霹靂だ
>>241
tNameは最初の一個しかないのが意味が分かりません
ほぼ同じソースコードだけど別のページだと動くのに.
ゴリ押ししたら動くのにforとarray使ったら動かなくなるのなんでなん

243 :Name_Not_Found:2018/09/11(火) 09:13:52.40 ID:???.net
>>242
いつの時代の人?

244 :239:2018/09/11(火) 09:35:20.21 ID:???.net
>>243
多分江戸時代とか…滝汗

245 :Name_Not_Found:2018/09/11(火) 11:17:52.01 ID:???.net
ループの中の if(tName[i].……の直前で
i と tName をconsole.log()にかけるコード1行入れりゃ理解できるんでね

246 :Name_Not_Found:2018/09/11(火) 20:05:23.62 ID:???.net
for使わずにtNameだけ書くと >>239

var tName = [];
var i=0;
//i=0からi=5は、何もしていない
console.log(tName); // []

i=6
tName.push('要素a');
console.log(tName); // ['要素a']
console.log(tName[i]);// undefined == tName[6]
i=7
tName.push('要素a');
console.log(tName); // ['要素a','要素a']
console.log(tName[i]); // undefined == tName[7]
//以下繰り返し

247 :239:2018/09/11(火) 21:26:04.36 ID:O/Ih3NeS.net
>>240-241,243,245-246
とりあえずこれで事なきを得ました。ありがとうございました。
var tName = [];
var tNumber = [];
var i = 0;
var o = document.getElementsByTagName("a")[25];
for (i = 6; i <= 24; i++) {
tName[i] = document.getElementsByTagName("a")[i];
tNumber[i-1] = document.getElementsByTagName("a")[i - 1]
if (tName[i].textContent.includes("(1001)") == true) {
tName[i].style.display = "none";
tNumber[i - 1].style.display = "none";
}
}
if (o.textContent.includes('(1001)') == true) {
o.style.display = "none";
}

248 :Name_Not_Found:2018/09/20(木) 01:19:45.54 ID:M6En9stL.net
質問です
JSというかYouTubeの問題かもしれませんが
iframeAPIを使ってYouTube動画を貼って、準備出来たら再生、とするのに

再生(playVideo())の前に消音(mute())した場合
http://jsfiddle.net/xvc70zn9/1/

消音(mute())しなかった場合
http://jsfiddle.net/q9x2Lfma/1/

Chromeで後者が再生されないのは、おま環でしょうか?

249 :Name_Not_Found:2018/09/20(木) 07:03:57.75 ID:???.net
そりゃiframe内の動画がユーザーアクション無しで音声流そうとすればブロックされて当然でしょ
いまデスクトップでもどんどん厳しくなてるんだから
WebAudioAPIとかもポリシー変更になるでしょ

250 :Name_Not_Found:2018/09/20(木) 07:54:48.18 ID:???.net
iframe自体けっこう嫌われてるからねぇ…

251 :Name_Not_Found:2018/09/20(木) 08:36:18.13 ID:???.net
俺よりは人に嫌われてないだろ

252 :248:2018/09/20(木) 16:06:10.90 ID:???.net
>>249
つーことは
俺環だけでなく、そちらでも再現してる?のかな?

253 :Name_Not_Found:2018/09/20(木) 19:56:31.29 ID:???.net
chrome://flags/#autoplay-policy
* Default
* No user gesture is required.
* User gesture is required for cross-origin iframes. <--
* Document user activation is required.

254 :248:2018/09/20(木) 20:26:53.80 ID:M6En9stL.net
>>253
それは知ってました
何れにせよこちらからのアクションは
postMessageで送っているようなので

不可解なのはなんでMuteすればOKなのかということです
なので、おま環なのかなーと

255 :Name_Not_Found:2018/09/21(金) 02:36:07.61 ID:???.net
その会社に聞けば?

256 :Name_Not_Found:2018/09/21(金) 03:16:51.27 ID:dotAtO5R.net
window.addEventListener("load", function(e){
var list = document.getElementsByTagName('a');
ってやってるんだけど、aタグ一杯あるのにlistに空の配列が返される
しかも最近突然起こるようになったんだけど、何が原因かわかりますか

257 :Name_Not_Found:2018/09/21(金) 04:44:56.02 ID:VAKGU9vY.net
おま環、もしくは勘違いじゃね?
getElementsByTagNameが返すのは配列ではなくコレクションだから
配列が返ってるならおかしい

258 :Name_Not_Found:2018/09/21(金) 06:53:34.00 ID:???.net
>>254
なんで不可解なのかが不可解
ミュートだったら再生させることによる悪影響の可能性が小さいだろうってことは分かる?
モバイルではもっと前からミュートで見えてるビデオだけ自動再生可の仕様だったでしょ
そして最近デスクトップにも似た仕様が入ったでしょ

デベロッパーなら最低限このページのことくらいは把握しておかなきゃ駄目よ
https://www.chromestatus.com/features

259 :Name_Not_Found:2018/09/21(金) 07:05:53.87 ID:???.net
>>256
対象のURLはナシ?

260 :Name_Not_Found:2018/09/21(金) 07:54:40.35 ID:???.net
ウエメセきめえ

261 :Name_Not_Found:2018/09/21(金) 08:21:57.19 ID:???.net
それは知ってました、がかんに障ったのだろう

262 :Name_Not_Found:2018/09/21(金) 10:39:08.83 ID:dotAtO5R.net
>>257
あ、配列じゃないのかこれ。NodeListというのが返ってきてlengthが0になっています
考えられるとしたらDOMがまだできていない等だけどloadイベント発火時にそんなことってあるのかな

263 :Name_Not_Found:2018/09/21(金) 10:45:54.31 ID:dotAtO5R.net
setTimeOutで待ってみても同じだから、DOM構築が間に合ってないってわけではないっぽい

264 :Name_Not_Found:2018/09/21(金) 11:13:03.46 ID:???.net
F12でコンソール開いてdocument.getElementsByTagName("a")って打ってみて

265 :Name_Not_Found:2018/09/21(金) 11:28:14.50 ID:dotAtO5R.net
>>264
やってみた。それだと正常に取得されました

266 :Name_Not_Found:2018/09/21(金) 12:17:10.91 ID:dotAtO5R.net
ブラウザの設定の問題だった、自決しました

267 :Name_Not_Found:2018/09/21(金) 12:31:33.64 ID:???.net
そうか、安らかにな。

268 :Name_Not_Found:2018/09/21(金) 12:33:31.73 ID:???.net
自決…w

269 :Name_Not_Found:2018/09/21(金) 14:05:45.51 ID:???.net
わたし女子校生だけど自?しちゃいました

270 :Name_Not_Found:2018/09/21(金) 14:25:54.46 ID:???.net


271 :Name_Not_Found:2018/09/21(金) 14:42:55.20 ID:???.net


272 :Name_Not_Found:2018/09/22(土) 12:37:31.98 ID:???.net
javascriptもclassを実装したの?
煩雑なprototypeは改めて欲しい。

273 :Name_Not_Found:2018/09/22(土) 12:49:41.51 ID:???.net
>>272
江戸時代の人?

274 :Name_Not_Found:2018/09/22(土) 14:56:58.91 ID:???.net
ござる?

275 :Name_Not_Found:2018/09/22(土) 17:23:52.60 ID:???.net
候。

276 :Name_Not_Found:2018/09/22(土) 19:45:39.50 ID:???.net
>>272
拙者、昭和生まれでござる。

277 :Name_Not_Found:2018/09/23(日) 04:35:57.15 ID:???.net
本を売る

278 :Name_Not_Found:2018/09/23(日) 13:21:48.31 ID:???.net
プロトタイプはクラスと比較してもしなくてもこれ以上無いくらい簡単な仕組みで
複雑なのはnew演算子だって何回言ったら分かるんだろうね

279 :Name_Not_Found:2018/09/23(日) 17:26:58.66 ID:???.net
>>278
実装が簡単なのと使い方が簡単なのをごっちゃにしてるぞ

例えば、gotoはコレ以上無いくらいに簡単な仕組みだ、
そのgoto一つで分岐処理、ループ処理、例外処理、
処理の流れを変えることはなんでもできる

だけど、使うのは難しい


原子的な機能であればあるほど、実装は簡単で
いろんな応用ができる。だけどそのせいで間違った
使いかたもできるから、使いこなすのは難しんだよ

280 :Name_Not_Found:2018/09/23(日) 18:33:56.68 ID:???.net
javascriptにgotoなんてあったのか

281 :Name_Not_Found:2018/09/23(日) 20:20:44.92 ID:???.net
gotoなんてBASICでしか使っとらんわ

282 :Name_Not_Found:2018/09/23(日) 20:35:50.12 ID:???.net
小学生の時にBASICやってたなあ
そんでGOTOやGOSUBのなにがいかんのかイマイチわからん

283 :Name_Not_Found:2018/09/23(日) 20:49:30.64 ID:???.net
問題が出るのはたとえばこういう場合

・後でコードを見たときに
・意図や目的のコメント文がぜんぜんなくて
・大きく飛んだり戻ったりで全容を掴むのが至難の業で
・書いた本人も気づいてないgoto由来のバグが潜んでる

よって、次のことが言える
自分がメンテするのでなければ何も問題がない

284 :Name_Not_Found:2018/09/23(日) 21:09:16.57 ID:???.net
お腹に刺さると死ぬから包丁は使うべきじゃない
的な

285 :Name_Not_Found:2018/09/23(日) 21:22:47.34 ID:???.net
うむ
バカは何使ったってやらかすからなあ

286 :Name_Not_Found:2018/09/23(日) 22:24:22.73 ID:???.net
バカって言う奴がバカなんだよこのおバカ

287 :Name_Not_Found:2018/09/24(月) 06:08:00.47 ID:???.net
gotoって確か行数かマーカー依存だったよな
行数の場合、ソース変更したら処理が変わるし、マーカーだと処理を追いにくいからあまり推奨されてない
大規模開発だと(他人にソースコードを読ませる関係上)問題になるが個人での開発ならそれほど問題にならない

288 :Name_Not_Found:2018/09/24(月) 07:03:36.11 ID:???.net
>>287
ラベル指定でジャンプするんじゃなかったっけ
https://ja.wikipedia.org/wiki/Goto%E6%96%87

289 :Name_Not_Found:2018/09/24(月) 07:19:42.04 ID:???.net
goto乱用よりも
仕様ひっくり返すユーザ、設計をひっくり返す上流SE、みたいな

290 :Name_Not_Found:2018/09/24(月) 07:33:59.02 ID:???.net
要件を正しく伝えない蔵担当者
勝手に要件を追加する蔵担当者の上司
最終段階で「これ本当に必要なの〜?」とぶちかます蔵の社長、とか

291 :Name_Not_Found:2018/09/24(月) 08:24:51.47 ID:qVm0iow+.net
質問です 自分は障害持ちで将来的に在宅で
仕事したいと思っとります 在宅でのweb系の仕事を考えるなら、javascriptとphpどちらを先に勉強すべきでしょうか?すぐに仕事に繋がりやすいのはどちらでしょうか?

大金稼ぎたいとかじゃなく、少し稼げれば良いです 宜しくお願いします
長文失礼しました

292 :Name_Not_Found:2018/09/24(月) 08:53:47.35 ID:???.net
まずwebのことなんて一旦忘れて
c書けるようになってサーバ操作に慣れろ

293 :Name_Not_Found:2018/09/24(月) 09:13:28.95 ID:???.net
>>291
考え方が逆
何ができれば良いか、ではなく何が出来なくても許されるか、だね

んで在宅≒フリーランスだとあまりないかもなあ、出来なくてもいいこと
デザインくらいかなあ

294 :Name_Not_Found:2018/09/24(月) 10:17:28.91 ID:???.net
最近この手のクラワのステマじみた何かをよく見かけるな

295 :Name_Not_Found:2018/09/24(月) 11:16:10.15 ID:???.net
>>291
WebAssemblyもあるから何とも言えんな
C++とjavascript学んでおけばいいんじゃね

296 :Name_Not_Found:2018/09/24(月) 12:12:14.47 ID:QPDHbMRA.net
ウェブサイトにアニメーションを実装するとなると
Canvas使うよりよりSVGやCSSアニメーションのほうが優勢ですか

例えばページ背景に複数の円が色を変えながら動き続けるとかです

297 :Name_Not_Found:2018/09/24(月) 12:28:51.12 ID:???.net
クソダサ

298 :Name_Not_Found:2018/09/24(月) 12:35:16.68 ID:qVm0iow+.net
>>295
c +は難しそうですね phpがオススメとも聞きましたが、逆の意見も耳にします

299 :Name_Not_Found:2018/09/24(月) 22:37:14.39 ID:???.net
>>296
WEB+DB vol.106 に、次世代のアニメ規格、Web Animations API の記事が載っている

これのPolyfill として、web-animations-js が公開されている

300 :Name_Not_Found:2018/09/25(火) 19:14:49.93 ID:???.net
次世代ではなく十分枯れた技術だから

301 :Name_Not_Found:2018/09/26(水) 08:02:02.87 ID:???.net
言うほど枯れてるだろうか?
そんなに使われまくってる?

302 :Name_Not_Found:2018/09/26(水) 08:39:06.25 ID:???.net
原則CSSのanimation/keyframesと一緒でしょ
枯れてると言って良いと思う

303 :Name_Not_Found:2018/09/26(水) 11:58:19.18 ID:???.net
> 原則CSSのanimation/keyframesと一緒でしょ
> 枯れてると言って良いと思う

だめだろ。できることが一緒でも、
それを実現している技術は最近だろ?
これはCSSではない新しい技術なのだから枯れてない

長い期間実際に使われてないなら枯れてるとは言えない

304 :Name_Not_Found:2018/09/26(水) 12:47:43.56 ID:???.net
>>303
> それを実現している技術は最近だろ?
2016/09/13
https://www.w3.org/TR/web-animations-1/

305 :Name_Not_Found:2018/09/26(水) 12:50:57.65 ID:???.net
実際に多くの人に使われてるかどうかは関係ない
同時期の技術で言うとWebRTCのように使うべき人が使ってきて
議論が出尽くして仕様が固まって可能性も粗方掴めた段階で枯れてると言える
もう先人が試しきってるんだからね

306 :Name_Not_Found:2018/09/26(水) 13:44:48.03 ID:???.net
次世代とかウン十年前のゲーム機の宣伝文句じゃないんだから

307 :Name_Not_Found:2018/09/26(水) 17:09:50.06 ID:???.net
ps5まだかな

308 :Name_Not_Found:2018/09/26(水) 20:34:22.87 ID:???.net
>>304
まだドラフトかよw
枯れてるとか嘘じゃん

309 :Name_Not_Found:2018/09/27(木) 00:34:13.60 ID:???.net
ドラフトだったら枯れてない
初めて聞いたな

310 :Name_Not_Found:2018/09/27(木) 00:55:12.08 ID:???.net
>>309
あなたは、ドラフト(草案)がもうこれから
変わらない仕様だと断定したいんですかね?w

https://www.nttpc.co.jp/yougo/%E6%9E%AF%E3%82%8C%E3%81%9F.html
> しかし単に古いだけでなく「すでにトラブルが出尽くしていて、
>そのトラブルも解決され尽くしている」といった意味が強い。

ブラウザで実装してこの仕様でなにかトラブルがないですかー?って
調べてるのが今の段階で、トラブルはまだ出尽くしていない

枯れるわけがないだろ。常識で考えろや

311 :Name_Not_Found:2018/09/27(木) 00:55:20.49 ID:???.net
これらの書き込みで1600円の雑誌が何冊余計に売れるのかね

312 :Name_Not_Found:2018/09/27(木) 00:58:45.74 ID:???.net
枯れてない=トラブルが多く仕様が不安定

とすると
枯れてない=使い物にならない可能性が高い、細かいトラブル対応はネット漁るしかない=本見る意味なし
枯れてる=トラブルが出尽くし解決され尽くすほど普及してる=mdnで十分、本見る意味なし

313 :Name_Not_Found:2018/09/27(木) 01:07:19.34 ID:OWyFps6e.net
青い
熟れてる
枯れてる

で分けよう

314 :Name_Not_Found:2018/09/27(木) 06:55:13.68 ID:???.net
>>310
意味分からん
ブラウザはまだAPIの一部しか全然実装してないし個々何年もする気もないだろ
ずっと見てきたわけもでないのにしったげに言うな
むしろ使う人が居なくて仕様の中核以外の部分は廃止されてもおかしくないような状態だから
もう枯れ切ってるんだよ
崩れる前に使い始めようっていうのに近い

315 :Name_Not_Found:2018/09/27(木) 09:18:42.53 ID:???.net
>>314
意味がわからんのは、お前が「"仕様"が枯れた」なんて
意味不明なことを言ってるからだよ

いいか? 俺らは使う側。APIを使う。使うにはブラウザに実装されていなきゃいけない。
いくら仕様がずーっと前から変わらなかったとしても、それがブラウザに実装されてない以上
使えないし、Polyfillがあろうがブラウザに実装されようが、それなりの期間使われてないと
バグがあるかもしれない。だからいくら仕様が安定してようが「"実装"は枯れてない」んだよ
それとも何か?「枯れてるけど使えません。」とか言うつもりか?

316 :Name_Not_Found:2018/09/27(木) 10:15:33.47 ID:???.net
枯れたっつーのは、なんつうか、こう
世界中のいろんな現場で使い倒されてる感がないとね

317 :Name_Not_Found:2018/09/27(木) 11:21:11.09 ID:???.net
Web技術は枯れてからようやく使われるようになる
色んなメディアやブログが取り上げ始めたらその合図

318 :Name_Not_Found:2018/09/27(木) 11:25:19.89 ID:???.net
>>315
俺らは使う側?は?何言ってんだお前。
Webって言うのは皆で作っていくもんだろ
その大原則を忘れるとかアホかお前
ほんとアホなこと言ってる暇あったらMLに参加するなり、実装にパッチ投げたりしろよドアホ
皆が苦労して決まりきってから腰を上げるお前みたいなのに仕様が云々語る権利は一切無い

319 :Name_Not_Found:2018/09/27(木) 13:12:21.97 ID:???.net
皆で作っていく(大爆笑)

320 :Name_Not_Found:2018/09/27(木) 15:18:15.36 ID:???.net
Webの世界(要するにウェブサイト)は皆で作るが
仕様は皆で作らない

321 :Name_Not_Found:2018/09/27(木) 16:54:44.17 ID:???.net
みんな仲良し

322 :Name_Not_Found:2018/09/27(木) 19:06:23.79 ID:???.net
しようがない連中だな

323 :Name_Not_Found:2018/09/27(木) 19:17:15.78 ID:???.net
>>315
> だからいくら仕様が安定してようが「"実装"は枯れてない」んだよ
いつの間にか、「実装が枯れてない」にすり替わってる

324 :Name_Not_Found:2018/09/27(木) 19:34:58.09 ID:???.net
っていうか実装が枯れてないというのがどうも
枯れてるものを移植したら枯れてない新世代ぎじゅつに様変わりするのか?んなわけないだろ

325 :Name_Not_Found:2018/09/27(木) 19:56:10.37 ID:???.net
(ここ何のスレだっけ…)

326 :Name_Not_Found:2018/09/27(木) 20:43:09.10 ID:???.net
ハゲスレ

327 :Name_Not_Found:2018/09/27(木) 20:44:00.60 ID:???.net
枯れてる枯れてないの話も、不毛なところも、まさに

328 :Name_Not_Found:2018/09/28(金) 07:11:51.47 ID:???.net
不毛でも感覚をぶつけ合って少しでもすり合わせておくことは大事
皆がバラバラな方向いてたらWebは崩壊する

329 :Name_Not_Found:2018/09/28(金) 14:11:32.33 ID:???.net
逆な気がする…

330 :Name_Not_Found:2018/09/29(土) 10:42:15.73 ID:2XpGYQdx.net
下のコードでaddEventListenerが実行されないのが良く分かりません。

window.onload = function () {
  window.addEventListener('load', function () {
    ・・・ // 実行されなかった
  });
};

なぜですか?
なお
 window.onload = function () {
ではなく、
 jQuery(function ($) {
でも実行されませんでした。そう言う仕様ですか?

331 :Name_Not_Found:2018/09/29(土) 10:59:08.55 ID:???.net
はい。そういう仕様です。

332 :Name_Not_Found:2018/09/29(土) 11:05:20.80 ID:???.net
いいえ、ケフィアです。

333 :Name_Not_Found:2018/09/29(土) 11:18:16.83 ID:???.net
>>330
ロードイベントが起こった後にロードイベントを監視しても、もう起こった後だから起こらない。

334 :Name_Not_Found:2018/09/29(土) 12:05:38.19 ID:???.net
>>330
そりゃ二重にロードイベントに紐付けしたら起動するわけが無い
どっちかだけにしろ

335 :Name_Not_Found:2018/09/29(土) 12:13:24.85 ID:???.net
どっちかだけ選ぶなんてできません!

336 :Name_Not_Found:2018/09/29(土) 12:23:25.99 ID:???.net
Life is a series of choices.(人生とは選択の連続である)- William Shakespeare(ウィリアム・シェイクスピア)

337 :Name_Not_Found:2018/09/29(土) 15:26:44.37 ID:???.net
>>330
おかしいな? jQueryの場合は動くはずだけど?
jQueryのloadはPromise的な処理になっていて
あとからつけても発動するように考慮されてある

jQueryの古いバージョンは違ったかな?って思って1.9.1にしたけど動く
それよりも古いバージョンはしらないけど
https://jsfiddle.net/6q4whbty/

338 :Name_Not_Found:2018/09/29(土) 15:28:38.85 ID:???.net
あ、逆か。
外側をjQueryにして、中をDOM APIにするわけね。
そりゃDOM APIじゃむりだ。中もjQueryにしなきゃ

ってか、外側でjQuery使っていてjQueryでやれることを
DOM APIを使ってやる必要ないでしょw

339 :Name_Not_Found:2018/09/29(土) 23:37:04.71 ID:tbk/HiSj.net
ヒロシキャンプ【キャンプ雑誌GARVYに登場!焚火会】
https://www.youtube.com/watch?v=EE_HBXQJDfM&t=565s
ヒロシキャンプ【雪中ハンモック泊】
https://www.youtube.com/watch?v=47uHNVivDZA&t=213s
【キャンプ】初めての泊まり。焚き火に男の料理!「ソロキャンプ」
https://www.youtube.com/watch?v=_6hAQmv6eYw
【キャンプ】食欲の秋!男のキャンプ飯。Solo Camping
https://www.youtube.com/watch?v=9IWX8seahAU
【キャンプ】ソロ・テント「ルクセ・ミニ・ピークU」組み立て!ワンポール
https://www.youtube.com/watch?v=mkVD6BWPhR0&t=454s
友ヶ島で探検キャンプ1/3
https://www.youtube.com/watch?v=r4sR6jNg_3s
清流で蛍キャンプ 1/2
https://www.youtube.com/watch?v=9Uc7rhK3aEg&t=23s
【bushcraft】ヒルバーグのグランドシートをタープに【Singularity】
https://www.youtube.com/watch?v=Fll6jgc3ufc&t=1251s
ホットサンドクッカーでハッシュドポテト outdoor cooking
https://www.youtube.com/watch?v=yJPoTDUNIJo
暖かいキャンプお菓子 Hot Sweets
https://www.youtube.com/watch?v=zfYBLxcpeSw

340 :Name_Not_Found:2018/09/29(土) 23:39:13.97 ID:???.net
必要かどうかは私が決めることです
分からないのなら解答しなくていいので黙っててください

341 :Name_Not_Found:2018/09/30(日) 03:03:11.19 ID:???.net
>jQueryのloadはPromise的な処理になっていて
>あとからつけても発動する

どういう経緯でこうなってるんですか
pure-js側はそんなことないですよね
デバッグの妨げになるようにも思えるんですけど

342 :Name_Not_Found:2018/09/30(日) 04:27:38.85 ID:???.net
どういう経緯って言われても、何度も発生するイベントと
resolve(またはreject)状態になってから変わらないものは
そもそも性質が異なるからですよ。

Promiseもいまやpure-jsですが、昔はそんなものがなかったからイベントで代用していましたが、
他のイベントと違い発生したタイミングが重要なのではなくロードは発生したタイミングが知りたいというより、
「現在ロードされているか?されていなければされるまで待つ」という処理を行うのが普通なので
現在の状態を判断するという処理が必要になります。


結構複雑ですよ?まずjQueryのloadはブラウザのloadイベントではなく
それよりも早い段階で発生する、DOM構築が完了した直後の
DOMContentLoadedを捉えるものだというのは知っていますか?

DOMContentLoadedはHTML5で標準化されましたが、それまでは非標準で
https://qiita.com/mamosan/items/ff336b5cc0a1a95e03a7
Firefox 2 (2006年)、Safari 3.1(2008年)、Chrome 4(2010年)、IE 9(2011年)で
予約サポートされたものです。jQueryは2006年なので普及しておらず当時は
使えない人が大半だったってのがわかりますね?

jQueryのloadはこのDOMContentLoadedをシミュレートする形で実装されました。
詳細は省きますがドキュメントのとあるプロパティをsetTimeoutで監視して読み取れれば
イベント発生扱いとしています。この部分のコードだけでも面倒なのですが、今は
DOMContentLoadedが使えるし、シミュレートが完璧に動作すると信じて
DOMContentLoadedの話にすすみましょう。

DOMContentLoadedが発生するのはDOM構築が完了した直後です。ここで問題になるのは
パフォーマンスアップのために使われる非同期で実行されるJavaScriptの存在です。
同期的に実行されるJavaScriptはDOM構築完了前に実行されますが、非同期で実行される場合
DOM構築完了後に実行されます。つまりDOMContentLoadedが発生した後に
DOMContentLoadedを監視することになるわけです。つまりイベントはすでに発生しているので
捉えることはできません。>>330と似たような状況になりますね。

343 :Name_Not_Found:2018/09/30(日) 04:28:13.41 ID:???.net
ではどうするのかというと、イベントを監視する前にすでにDOMContentLoadedが発生したかを
document.readyStateを使ってチェックするわけです。

ですが単純には行かず、document.readyStateを使ってチェックしてまだloading中であれば、
addEventListenerでDOMContentLoadedを監視すると書いてしまうと、チェックした段階では
loadingだったが、addEventListenerするまでに間にDOMContentLoadedが発生してしまって
イベントが捉えられない可能性があります。

なので逆に実装し、addEventListenerでDOMContentLoadedを捉えるようにしてから、
document.readyStateを監視して、すでにreadyStatusがinteractiveにだったら
ずっと前にDOMContentLoadedが発生していたと判断するわけですが、
実はaddEventListenerを設定した直後にDOMContentLoadedが発生した可能性があるため
この場合は2回イベントが発生する可能性があります。それを避けるために状態管理で
1回しか発動しないようにするわけです。

これらの動きはDOM読み込みとJavaScriptの実行タイミングによるものなので
毎回発生するものではなく、まちまちで見つけづらいバグとなってしまいます。
ローカルでは問題ないのにサーバーにアップした発生する。
でも2回目以降はキャッシュが効いて速いので発生しないとかですね。

このように完璧に対応するのは複雑なのです。DOMの非同期読み込みをやめれば
解決するのですがパフォーマンスアップのためにブラウザに搭載された機能を
使うなというのは、ライブラリとしてありえませんね。

他のイベントでは必要ないのにloadに関してこれらが必要になるのは
DOM構築が完了したあとに何度も発生するイベントと、そもそもDOM構築完了を監視する
DOMContentLoadでは性質が異なるからなのです。

そして実際のユースケースを考えたら「ロード済みかロード完了時にイベント発生」して
欲しいため、APIもそのようになっているのが望ましいわけです。
開発者が上で書いたようなな複雑な処理を書くことなく、単純なAPIで判断できるため
それが原因で起きるマイナーなバグから逃れることができます。

344 :Name_Not_Found:2018/09/30(日) 04:38:35.01 ID:???.net
>パフォーマンスアップのために使われる非同期で実行されるJavaScriptの存在です。
>同期的に実行されるJavaScriptはDOM構築完了前に実行されますが、非同期で実行される場合
>DOM構築完了後に実行されます。つまりDOMContentLoadedが発生した後に
>DOMContentLoadedを監視することになるわけです。つまりイベントはすでに発生しているので
>捉えることはできません。

これどゆこと

ブラウザにおけるjavascriptの実行ってのは
今も昔も非同期な関数(呼び出し)があるだけで、原則は全部同期実行なんじゃないのけ
setTimeoutやXHRのcallbackの中でwindow.addEventListener('load', ... )なんてしないし

345 :Name_Not_Found:2018/09/30(日) 04:49:30.00 ID:???.net
「なんでonloadではなくDOMContentLoadedなのか」は?
つか化石IE対応のための負の遺産的挙動じゃないん

346 :Name_Not_Found:2018/09/30(日) 07:49:32.26 ID:???.net
>>344
scriptタグのasync属性のことだよ。

HTMLの読み込みとJavaScriptの実行が非同期で行われる。
つまりaddEventListenerでDOMContentLoadedを監視する前に
HTMLの読み込みが完了してしまうことがある

参考 https://iwb.jp/domcontentloaded-javascript-async-forbidden/

347 :Name_Not_Found:2018/09/30(日) 07:53:25.95 ID:???.net
>>345
IEは9の時代からDOMContentLoadedに対応してる。
対応してないブラウザのためというのなら、別にIEだけじゃなくて
その他のブラウザも非標準のDOMContentLoadedには対応していなかった
DOMContentLoadedが標準化されたのはHTML5になってからだ。

348 :Name_Not_Found:2018/09/30(日) 07:57:00.94 ID:???.net
非常に興味深い話だが話が長い

349 :Name_Not_Found:2018/09/30(日) 08:01:26.63 ID:???.net
それはわざと。レスする気なくするでしょ?それが狙い
不正にjQueryを貶めようとする奴らに反論する気をなさせる

350 :Name_Not_Found:2018/09/30(日) 08:49:36.93 ID:???.net
asyncは「DOM構築完了後に実行」される、ではなく
「DOM構築完了後に終了する場合がある」というべきでは

つかasyncしてもwindow.onload使えばいい話じゃないのか

351 :Name_Not_Found:2018/09/30(日) 08:54:02.57 ID:???.net
この件は良く知らんのだけど
>>337いわく1.9.1の時点からそういう挙動
・scriptのasyncはHTML5から
・jq 1.9.1リリース 2013年02月04日
・HTML5勧告     2014年10月28日
順番おかしくね

352 :Name_Not_Found:2018/09/30(日) 09:04:11.75 ID:???.net
>>351
jQのpromise的動作とjsタグのasync的動作はまったく別物

353 :Name_Not_Found:2018/09/30(日) 09:05:03.28 ID:???.net
間違ったscriptタグね、まぁ何でもいいや

354 :Name_Not_Found:2018/09/30(日) 09:07:27.62 ID:???.net
>>352
>>346
JQueryの良く分からん挙動がscriptのasyncと関係ないということになると
>>342-343の大長編レスの前提が崩れるんじゃないか?

355 :Name_Not_Found:2018/09/30(日) 09:18:08.16 ID:???.net
同期、非同期ぐらい勉強しろよ

356 :Name_Not_Found:2018/09/30(日) 09:18:49.85 ID:???.net
>>351
> ・>>337いわく1.9.1の時点からそういう挙動

どこにも1.9.1の時点からなんて書いてない。
少なくとも1.9.1ではそういう挙動だったってだけ。
おそらく最初からそうだろう

357 :Name_Not_Found:2018/09/30(日) 09:30:03.28 ID:???.net
>>352
何を持って別物と言ってるのかは知らないが、
PromiseオブジェクトにはPromise.resolve()とPromise.reject()という
メソッドがあって、それぞれ解決済み、リジェクト済みのオブジェクトを返す。

このオブジェクトにあとからthenメソッドでコールバック関数を
くっつけてもちゃんとコールバックが呼ばれるんだよ。

358 :Name_Not_Found:2018/09/30(日) 09:32:38.78 ID:???.net
> jQのpromise的動作とjsタグのasync的動作はまったく別物

jsタグってなに?HTMLタグっていいたいの?
HTMLタグのasyncはJavaScriptの実行を遅らせることで
見た目上のパフォーマンスを上げる技術で

その弊害として、DOMContentLoadedが先に呼ばれてしまうから
JavaScriptの発動が起きないってものなんだけど

jQueryはそのことも考慮されてるから、普通に書くだけで
非同期でJavaScriptが読み込まれても大丈夫って話をしてるんだよ

Promise的動作っていうのは、コールバックを後から追加しても
発動するって話。あんた全く別物の話をしてるよ

359 :Name_Not_Found:2018/09/30(日) 09:39:09.00 ID:???.net
>>351
http://tokkono.cute.coocan.jp/blog/slow/index.php/xhtmlcss/script-defer-async-attribute-of-major-browsers/

async対応はChrome8(2010年12月)、Firefox 3.6(2010年1月)から

360 :Name_Not_Found:2018/09/30(日) 09:41:31.01 ID:???.net
もう少し詳細なリストが有った。
https://stackoverflow.com/questions/1834077/which-browsers-support-script-async-async

361 :Name_Not_Found:2018/09/30(日) 09:42:15.90 ID:???.net
>asyncはJavaScriptの実行を遅らせることで

遅らせてるのか?
htmlの解析処理と当該jsファイルのダウンロード・実行処理とを
切り離して並行処理させることで、htmlのパース・文章や画像の配置等が妨げられないようにしているだけでは?

DOMContentLoadedより後に処理が開始されるのではなく
DOMContentLoadedの前に終わるとは限らないというだけの話では?

362 :Name_Not_Found:2018/09/30(日) 09:46:11.48 ID:???.net
> DOMContentLoadedより後に処理が開始されるのではなく
> DOMContentLoadedの前に終わるとは限らないというだけの話では?

今はそういう細かい話はどうでも良くて、
需要なのはscriptタグのasyncを使われてると、DOMContentLoadedが
先に発生してしまうことがあるってことですよ

他にもRequireJSのような非同期でJavaScriptモジュールを読み込む仕組みを
使ったときにも発生しましたね。

363 :Name_Not_Found:2018/09/30(日) 09:49:05.41 ID:???.net
たとえ細かい話でも虚偽が含まれてる人の話は信用できないからなあ

364 :Name_Not_Found:2018/09/30(日) 09:50:48.24 ID:???.net
はは、信用出来ないっていうだけで、間違ってるとは言えない
あわれよのうw

365 :Name_Not_Found:2018/09/30(日) 09:57:43.01 ID:???.net
まあ間違ってるわけじゃないからね。信用出来ないってだけ

366 :352:2018/09/30(日) 09:58:20.98 ID:???.net
>>354>>357>>358
ごめん訂正するね
言葉足らずだった
「別物」ではなく「実装箇所が別物」
動作としては似たようなものだ
一番最初の気持ちとしてただ>>351の言ってることが的外れだったので意図としてはそれを訂正したかった

367 :Name_Not_Found:2018/09/30(日) 10:03:04.24 ID:???.net
window.addEventListener('load', ... )ではどうしてもダメなケースを聞きたい
>>330のような無能サンプルコードは除外するものとする

368 :Name_Not_Found:2018/09/30(日) 10:06:48.99 ID:???.net
(たぶんダメなケースなんて)ないです

369 :Name_Not_Found:2018/09/30(日) 10:10:23.62 ID:???.net
>>367
ページ内にある画像全てが読み込まれないと
JavaScriptが動かないのでダメ

370 :Name_Not_Found:2018/09/30(日) 10:11:51.44 ID:???.net
>>368
操作性悪くなって遅くても動くからダメじゃないんですって主張は禁止なw
その理屈だと電気がなくても生きていけるって回答になる。

371 :Name_Not_Found:2018/09/30(日) 10:12:21.46 ID:???.net
画像を減らそう!

372 :Name_Not_Found:2018/09/30(日) 10:14:13.01 ID:???.net
ゼロに。ゼロがいい。ゼロにしよう。

373 :Name_Not_Found:2018/09/30(日) 10:21:20.40 ID:???.net
asyncで読ませたい
どうしても早いタイミングDOMContentLoadedで動かしたい
asyncするとDOMContentLoadedに間に合わないリスクが怖い・・・
jQueryなら専用のコード書かなくてもすぐに実現!! ←今ココ

ざっくり書くとこんな感じかね?
DOM APIでもできないわけではないし
jQueryならといっても最初からそれを狙った実装ではないようだが
現実として便利に転用できますよ、という具合

374 :Name_Not_Found:2018/09/30(日) 10:30:51.06 ID:???.net
>>370
どっちにしてもwindow.onloadだとロードイベントに一個しか関数を紐付けできないから不便極まるんだよなぁ
一個だけしか使わないってんなら関係ないけどさぁ…

375 :Name_Not_Found:2018/09/30(日) 11:58:19.13 ID:GnzbbCvLi
>>308
遅レスだが、今時の技術者とは思えん発言だな
彼の中では、大部分のCSS3(草案)が枯れてない=不安定で使えないということになるのか

376 :Name_Not_Found:2018/10/02(火) 19:34:20.80 ID:4cwxn02l.net
>>374
たまにはaddEventListenerのことも思い出してあげてください

377 :Name_Not_Found:2018/10/02(火) 20:38:18.46 ID:x0gKZze6.net
【アフィ】元宇宙人のスピリチュアルブログ【詐欺】
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q12193781232

378 :Name_Not_Found:2018/10/05(金) 07:10:11.63 ID:???.net
そんなことよりお前らremoveEventListenerとか使ったことある?
使う機会がまったくないよなアレ

379 :Name_Not_Found:2018/10/05(金) 08:16:06.35 ID:???.net
>>378
そもそも今この瞬間までそいつの存在すら知らなかったぞ

380 :Name_Not_Found:2018/10/05(金) 08:21:08.17 ID:???.net
>>378
使ったことはないが
disableにできない類のもののイベントリスナを切りたいとか
起動する関数を切り替えたいとか
使える機会はいろいろ思いつくぞ

呼び出される関数側でチェックして即returnとかの別手段でだいたい十分だけど

381 :Name_Not_Found:2018/10/05(金) 08:54:47.34 ID:???.net
>>380
> 呼び出される関数側でチェックして即returnとかの別手段でだいたい十分だけど

そういうのはクラス名で制御すべきだよ。

例えばこんな感じにしてると、spanのクラスが
それぞれmode1 or mode2 の場合のみ、該当のものだけ発動してくれる

$('span.mode1').click(function() { alert('click1'); })
$('span.mode2').click(function() { alert('click2'); })

382 :Name_Not_Found:2018/10/05(金) 09:07:31.77 ID:???.net
>>378
unload,remove時の後始末

383 :Name_Not_Found:2018/10/05(金) 12:41:52.32 ID:???.net
>>378
普通に使うけどなあ
来れなかったら、addしたイベントをどうやって剥がしたら良いのかわからん

384 :Name_Not_Found:2018/10/05(金) 12:48:12.48 ID:???.net
addしたイベントを剥がす機会がないということでは?

385 :Name_Not_Found:2018/10/05(金) 13:05:13.90 ID:???.net
要素が増減するならばデリゲート使って親要素でイベントを捉えれば良いし
その方が効率なわけで、わざわざイベントハンドラを外すことはないね

386 :Name_Not_Found:2018/10/05(金) 13:07:47.65 ID:???.net
>>384
なるほどー
>>385
増減しない時は?

387 :Name_Not_Found:2018/10/05(金) 13:33:44.87 ID:???.net
>>386
増減しないならつけっぱなしでいいやん

388 :Name_Not_Found:2018/10/05(金) 14:49:21.41 ID:???.net
>>387
つけっぱなしで良いこともあるし外さにゃならんこともあるな
この辺は経験というか、やったことあるかどうかの差だからしゃーないわな

389 :Name_Not_Found:2018/10/05(金) 15:08:34.23 ID:???.net
だからその外さなきゃならない場合ってのが無いんだっていう話をしてるんだが
経験があるというのなら、その経験を語れよ

390 :Name_Not_Found:2018/10/05(金) 15:14:14.60 ID:???.net
webページ作るのに外さないといけないユースケースは確かにめったに無さそうだ。
実はコンソールで色々いじくって実験する用なんじゃないのか。console.logみたいに

391 :Name_Not_Found:2018/10/05(金) 15:38:07.82 ID:???.net
使った経験は無いが、想像するに一つのボタンに複数の機能を持たせるときには使えそう

392 :Name_Not_Found:2018/10/05(金) 15:45:12.06 ID:???.net
>>391

>>381を見てね
ロジックで処理を分けるのは古いやり方だよ。今は状態ごとの処理を定義する。
こうすることがバグも減らせるんだよ。ちゃんと外せたか?二重に登録してないか?
なんて考える必要がない。

こういうものこそ経験っていうんだけどな

393 :Name_Not_Found:2018/10/05(金) 15:49:59.55 ID:???.net
>>392
ますますremoveEventListenerの使い道ないじゃないか…(憤慨)

394 :Name_Not_Found:2018/10/05(金) 15:50:44.44 ID:???.net
>>389
色々あるけどなあ
フレームワークっぽいもの作ってたときとかよく使ったよ

395 :Name_Not_Found:2018/10/05(金) 15:57:29.66 ID:???.net
一個のサイト作る場合ではなく
複数のサイトで汎用的に使うコンポーネントなんかを作るケースだと
CSSまで自由に出来なくてJSでやらにゃならんこともあって
そんな時には必要になるなあ

みんなも自分のサイトに組み込んでるフレームワークやライブラリのコードをのぞいてみると
案外使われてるのに遭遇すると思うよ

396 :Name_Not_Found:2018/10/05(金) 16:46:37.54 ID:???.net
いちいち重複イベントチェックなんて面倒だ
まとめてごっそり総入れ替えだ

397 :Name_Not_Found:2018/10/05(金) 17:00:40.46 ID:???.net
リフレクションAPIやプロキシーAPIと同じでフレームワークとか作る人用か。使うだけの人には洋ナシ体型

398 :Name_Not_Found:2018/10/05(金) 17:06:44.57 ID:???.net
経験の差が出ましたなw

399 :Name_Not_Found:2018/10/05(金) 17:25:12.57 ID:???.net
まあ無いよね。

400 :Name_Not_Found:2018/10/05(金) 17:28:11.92 ID:1Er0ekUU.net
くだらん喧嘩は他所でやれw
ツイッターとか

401 :381:2018/10/05(金) 19:20:16.30 ID:???.net
>>388の人気に嫉妬w

402 :Name_Not_Found:2018/10/07(日) 14:19:14.23 ID:3lG9iLI9.net
phpよりjavascriptを勉強すべき、という理由を教えてください 私は頭が悪いので分かりやすく頼みます

403 :Name_Not_Found:2018/10/07(日) 14:22:22.59 ID:???.net
PHPを作ってるところは一つ
JavaScriptはMS、Google、Apple、Mozillaと大企業が力を注いている

404 :Name_Not_Found:2018/10/07(日) 15:10:53.21 ID:???.net
javascriptも、もはやc++やその他言語を呼び出すだけのものになりつつある

405 :Name_Not_Found:2018/10/07(日) 15:20:29.77 ID:???.net
いつから呼び出せるようになったの?

406 :Name_Not_Found:2018/10/07(日) 16:00:23.89 ID:3lG9iLI9.net
>>403
なるほど、ありがとうございます
本当に死ぬ気で毎日勉強した場合、
理解できるようになるまでどれくらい掛かりますか

407 :Name_Not_Found:2018/10/07(日) 16:24:00.99 ID:???.net
>>405
去年の8月くらいから
WebAssembly - https://webassembly.org/

408 :Name_Not_Found:2018/10/07(日) 16:28:28.50 ID:???.net
C++はもはやJavaScriptから呼び出すライブラリに成り下がったんだな

409 :Name_Not_Found:2018/10/07(日) 16:29:19.58 ID:???.net
呼び出されることすらできなかった状態から成り上がったんやぞ。

410 :Name_Not_Found:2018/10/07(日) 16:30:34.31 ID:???.net
(javascriptの実行速度が遅すぎて使えないからこういう方法が生まれたんだけど…)ボソッ

411 :Name_Not_Found:2018/10/07(日) 16:34:26.07 ID:???.net
でファミコンエミュレータwasmにしてみたらjsより遅かったんでしょワロスwwwww

412 :Name_Not_Found:2018/10/07(日) 17:40:06.08 ID:???.net
>>411
ブラウザ /JS版 /Wasm版
Chrome 63/4.36ms/5.68ms
Firefox 58/5.76ms/3.98ms
Safari 11/9.98ms/4.21ms
これ?要はchromeの実装がクソ雑魚だったってだけでしょ
firefoxとsafariはjs版を大きく超えてる

413 :Name_Not_Found:2018/10/07(日) 17:53:01.73 ID:???.net
>>406
1週間〜10年といったところ

414 :Name_Not_Found:2018/10/07(日) 18:02:40.77 ID:???.net
>>412
え?たったそんだけしか違わないの?msって
人間が知覚できるレベルじゃないじゃん

415 :Name_Not_Found:2018/10/07(日) 18:17:10.16 ID:???.net
いやだって巨大なプログラム用だから

416 :Name_Not_Found:2018/10/07(日) 18:28:51.84 ID:???.net
なんでchromeで遅くなってるの?
chrome、前はjsの最適化で最速とか言ってたけど
sandboxとかセキュリティ絡み?

417 :Name_Not_Found:2018/10/07(日) 18:33:16.37 ID:???.net
>>412
ご覧くださいwww「javascriptの実行速度が 遅 す ぎ て 使 え な い」とまでイキッておいてコレwwwww

418 :Name_Not_Found:2018/10/07(日) 18:36:45.12 ID:???.net
cとphpやpyの差みたいに10倍かそれ以上速くなるもんだとばっかり思ってた
カスだな

419 :Name_Not_Found:2018/10/07(日) 18:41:24.71 ID:???.net
コンパイルの手間かけてまでこの程度かよw
時間は有効に使えよ?みんなお前に付き合うほどヒマじゃねーんだw

420 :Name_Not_Found:2018/10/07(日) 18:43:11.76 ID:???.net
これでセキュリティに穴が見つかろうものならまるで利用価値なしのゴミ屑扱いになってしまう

421 :Name_Not_Found:2018/10/07(日) 20:08:06.87 ID:3lG9iLI9.net
>>413
意地悪

422 :Name_Not_Found:2018/10/07(日) 21:47:17.66 ID:4m+yZWnq.net
エロゲー廃人速報改
http://erogehaijin.com/

・生活保護の不正受給カミングアウトして自慢
・DMMからステマ脅迫工作で雇われる
・アフィで稼ぎまくり

・DLsiteはじめ各流通やメーカーへの脅迫
・ステマ工作で金貰ってるのは言うに及ばず
・風俗通い・焼肉ざんまい

エロゲー廃人速報改
http://erogehaijin.com/

     ∧_∧
 ピュー (  ^^ ) <これからもエロゲー廃人速報改(ナマポ不正受給)を応援して下さいね(^^)v
  =〔~∪ ̄ ̄〕
  = ◎――◎ 👀
Rock54: Caution(BBR-MD5:1341adc37120578f18dba9451e6c8c3b)


423 :Name_Not_Found:2018/10/07(日) 22:46:34.14 ID:???.net
>>406
どういうところに行きたいかによるから何とも…試しにこういうのでもやってみれば?
https://prog-8.com/languages/es6

424 :Name_Not_Found:2018/10/08(月) 00:10:27.89 ID:???.net
wasm使うならもはやjs発である必要性ないと思うんだが
js使いたいだけっていう
違うコンパイル言語開発しろって

425 :Name_Not_Found:2018/10/08(月) 05:29:18.70 ID:???.net
>>403-406
プログラマーが、クソ言語のPHP を使う理由がない

Ruby on Rails などのフレームワークを使うけど、
画面は、Vue.js など、JavaScript(JS) になるので必須

初心者は、Ruby, JS を数年やればよい。
それ以外の言語は難しいから、数年後に始める

426 :Name_Not_Found:2018/10/08(月) 06:10:18.89 ID:???.net
wasm, wasmってまあ良く聞くけど

・wasmの性能って「元の言語/コードの効率性」と「wasm形式にしてくれるコンパイラの(最適化)性能」と
「ブラウザの方のwasm動作環境の性能」の全部に左右されんだよね?

・「wasmはロード時間短縮にはなるけど動作速度は変わらない」って主張が今でもいくらか見られるけど
jsで動かしてたものをc-wasmに変えれば動作速度は劇的に改善される可能性もまあ普通にあるよね?

・jsと違って低次元なメモリ管理できちゃうけど、
wasmが個々のwasmに割り当てられたメモリ領域以外を読み書きできちゃって
セキュリティ的に大問題になる、ってことは生じ得ないの?
activexで脆弱性突いてウィルス散布、みたいな現象はノーサンキューなんだけど

427 :Name_Not_Found:2018/10/08(月) 07:14:06.94 ID:???.net
そもそもwasmっていうのは既存のサイト速くするものではないからな
既存のサイトは、サーバー側でバッチ処理をさせるという設計
クライアントでやることが少ないから、いくらwasmでクライアントが
速くなったとしても効果は殆ど無い。

ぶっちゃけるとwsamの主な用途はゲームだよ

ゲームは反応速度が重要なのでバッチ処理でさせると成り立たない
あとはせいぜいグラフィックソフトぐらいだろう

428 :Name_Not_Found:2018/10/08(月) 07:31:39.68 ID:???.net
ユーザに気付かれないようにクライアントに高処理効率でマイニングさせるとかな

429 :Name_Not_Found:2018/10/08(月) 08:39:34.68 ID:???.net
NoScript使えば?

430 :Name_Not_Found:2018/10/08(月) 09:41:12.45 ID:???.net
>>426
WASMはJSエンジンのバックエンドを流用できるよう設計されていて
現状ではGCもなくほぼasm.jsと同じだからasm.jsのバックエンドが使われてるよ
正確には最近はasm.jsの方がWASMにコンパイルされてWASMのバックエンドで動くんだけど
だから実行速度に関してはJSの限界というかasm.jsと同等になる
ただこれからSIMDが入ったりして、最適化も進めば
原理上ターゲットを絞りきれないネイティブコードより早くなることもあり得る

ただJSで動かしていたものをWASMにすれば早くなるかと言うとそういうものではない
asm.jsでも同じだが、JS-WASM間の関数のやり取りにはオーバーヘッドがあって、
インライン化などの相互最適化も効かないので
基本的に沢山呼び出される小さな関数をWASMにすると性能は悪化する
だから大きな処理を丸っとWASMにするという使い方が一番良い

それと別に低次元なメモリ管理はできない
WASMにとってのメモリとはただのArrayBufferだから
勿論サイドチャネル攻撃はいくらかできるがそれはもうWASMに限った話ではないので仕方がない

431 :Name_Not_Found:2018/10/08(月) 09:45:07.18 ID:???.net
ネイティブより速くとか無理ゲーだろ
C/C++で書いたアプリより速く計算しますってことだぞ

432 :Name_Not_Found:2018/10/08(月) 13:07:34.94 ID:???.net
jsが超早くなった!! cよりも早く!!
 → c側のコードが糞過ぎただけでした

chromeのjs処理が**より数段早くなった!!
 → chromeが決め打ち特化でチューンした部分だけでの話でした

この手の誤った性能比較話を連想した

433 :Name_Not_Found:2018/10/08(月) 16:00:34.49 ID:???.net
ブラウザが仮想マシンの代わりになるのはいいけど
そのブラウザが乱立してる状況じゃ安定性は得られんよね
結局Windows OSみたいな独裁体制にしないと

434 :Name_Not_Found:2018/10/08(月) 17:47:25.39 ID:???.net
>>431
全然無理じゃない
そこらのネイティブコードっていうのは多くの環境に対応するため最新のCPU機能を使いきれずコンパイルされてるから
ちょっとしっかりしたのだとスイッチ使ったりインストール時にコンパイルするけど
それでも実行の直前にコンパイルするのに原理的に勝りはしない
WASMならそれこそ10年前に書いたコードでも最新の機能を使って最新のコンパイラでコンパイルされる

まあ現実未だ可能性の話でしか無いが、中間コンパイルというものにはそういうメリットが昔からある
コンパイルするということは書いたコンテキストが失われるということだから
それに将来的にJITも働くようになればもっと最適化の可能性が広がる
無理ゲーだが原理的な可能性はあるということ
特に個人的にはメニーコアの時代がやってきてるのにOSが支援が弱い
パラレリズムとそのバランサをブラウザにやってもらいたい

>>432
決め打ちチューンは正当な最適化手段
可能性の高い方に賭けるというのはCPUでさえもやってること

435 :Name_Not_Found:2018/10/08(月) 18:16:31.49 ID:???.net
前身のasm.jsなんて大分前からあるのに
なんで変な誤解されるんだろ

436 :Name_Not_Found:2018/10/08(月) 21:09:11.67 ID:???.net
それで、javaはcより速くなりましたか?

437 :Name_Not_Found:2018/10/08(月) 21:47:03.75 ID:???.net
原理的に無理

438 :Name_Not_Found:2018/10/08(月) 23:09:33.50 ID:???.net
生理的に無理

439 :Name_Not_Found:2018/10/08(月) 23:14:58.49 ID:???.net
物理的に無理

440 :Name_Not_Found:2018/10/08(月) 23:15:03.19 ID:???.net
いつから、Javaの話になった?

441 :Name_Not_Found:2018/10/08(月) 23:16:01.13 ID:???.net
スレタイから

442 :Name_Not_Found:2018/10/09(火) 00:35:11.01 ID:???.net
全C使いと全Java使いの中央値の力量を持った者同士にアプリを作らせたら
Java使いの方がパフォーマンスも安定性も使い勝手も良いもの作ることは間違いない
でもAndroid開発でもそうだけど今どきCやC++を使うということは
「あえて」使ってるということだから、プログラマのレベルも高いし
それで比較的劣るものができるはずがない

443 :Name_Not_Found:2018/10/09(火) 00:37:47.92 ID:???.net
証明よろ

444 :Name_Not_Found:2018/10/09(火) 00:40:29.39 ID:???.net
>>443
証明したければ自分が相当数の被験者集めて実験したら?

445 :Name_Not_Found:2018/10/09(火) 00:43:27.78 ID:???.net
>>444
>>443ではないが、なぜ442が441の論を証明しなければならんのだ?

446 :Name_Not_Found:2018/10/09(火) 00:45:50.79 ID:???.net
ガイジだからさ

447 :Name_Not_Found:2018/10/09(火) 00:49:29.54 ID:???.net
俺の意見は間違いない
俺の意見をお前が証明しろ

448 :Name_Not_Found:2018/10/09(火) 06:52:15.47 ID:???.net
俺はあくまで(経験上)間違いがないと言っただけで
証明が欲しいなら勝手に自分でやれってことだ

449 :Name_Not_Found:2018/10/09(火) 06:58:36.38 ID:???.net
>>448は無職の荒らしであって実はJavaもCも扱ったことがない
俺の経験上間違いない

450 :Name_Not_Found:2018/10/09(火) 20:11:25.06 ID:???.net
赤の他人の正しさを「証明」する人はいないが、「確認」ならするかもしれない

451 :Name_Not_Found:2018/10/09(火) 20:38:47.66 ID:???.net
経験上間違いがないwww

452 :Name_Not_Found:2018/10/10(水) 05:46:07.33 ID:???.net
MathJaxを使っています

$\begin{array}{cc}
a & b \\
c & d
\end{array}$

はちゃんと機能していますが、

$\begin{array}{cc}
a & b \\
\multicolumn{2}{c}{d}
\end{array}$

が機能しません。
なぜですか?
MathJaxでは\multicolumnは実装されていないんですか?

使っているMathJaxは
<script type="text/javascript"
src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS_CHTML">
</script>
です。

453 :Name_Not_Found:2018/10/10(水) 07:12:21.60 ID:???.net
>>450
俺は別に俺の言ってることが正しいから思えら黙って信じろとは言ってないんだが
>>451
もしかして「間違いない」って言葉尻に反応してるのか?

454 :Name_Not_Found:2018/10/10(水) 07:31:17.80 ID:???.net
>>452
multicolumnの検索結果— MathJax 2.7 documentation -
https://docs.mathjax.org/en/latest/search.html?q=multicolumn&check_keywords=yes&area=default

455 :Name_Not_Found:2018/10/10(水) 09:05:37.54 ID:???.net
>>453
命題が真である事を確認するのが「証明」

456 :Name_Not_Found:2018/10/11(木) 06:18:14.70 ID:???.net
MathJaxでarray環境の入れ子って何重まで可能ですか?

457 :Name_Not_Found:2018/10/11(木) 06:29:11.26 ID:???.net
>>456自己解決しました

458 :Name_Not_Found:2018/10/11(木) 08:25:44.31 ID:???.net
自己解決したら解決方法まで書きましょう
それが他の人の助けになるかも知れません

459 :Name_Not_Found:2018/10/11(木) 09:13:23.34 ID:???.net
>>458
自己解決しました

460 :Name_Not_Found:2018/10/12(金) 20:13:58.33 ID:???.net
>>452
https://teratail.com/questions/151046
https://oku.edu.mie-u.ac.jp/tex/mod/forum/discuss.php?d=2514&parent=14667

461 :Name_Not_Found:2018/10/13(土) 22:19:19.58 ID:sQ6ZRTcU.net
<INPUT type="textbox" name="test">などのフォームのnameから
フォームがテキストボックスかセレクトボックスかチェックボックスかラジオボタンかを判別するにはどうすればいいんですか?

462 :Name_Not_Found:2018/10/13(土) 22:43:44.55 ID:???.net
区別できないことに重要な意味がある

463 :Name_Not_Found:2018/10/13(土) 22:47:16.84 ID:???.net
.checkedや.valueでundefinedでない値さがせば?

464 :Name_Not_Found:2018/10/13(土) 23:31:50.06 ID:???.net
>>461
var elm = document.querySelector('[name="test"]');
console.log(elm.type==="text");

465 :Name_Not_Found:2018/10/13(土) 23:58:51.51 ID:???.net
var elm = $('[name="test"]')[0];
console.log(elm.type==="text");

466 :Name_Not_Found:2018/10/14(日) 10:59:35.78 ID:???.net
>>465
なぜjQueryオブジェクト外したの

467 :Name_Not_Found:2018/10/14(日) 11:08:36.15 ID:moJyl5te.net
在宅プログラマーってエクセルできないと無理?エクセルから逃げてきたんだ

468 :Name_Not_Found:2018/10/14(日) 11:44:33.14 ID:???.net
はい

469 :Name_Not_Found:2018/10/14(日) 11:55:46.32 ID:???.net
はい、はい

470 :Name_Not_Found:2018/10/14(日) 12:39:45.28 ID:???.net
>>466
単に>>464に合わせただけ。あえて一つだけ処理しようとするとこうなるという例
もちろん>>464もそうだけど、こういう書き方は良くない。
name属性がtestのものがない場合や複数ある場合に対応できないからね

一つだけ処理する場合でも、動的なページで要素がない場合でもエラーにならない
$('[name="test"]').attr('text')

またこうすれば、0個から複数全てに対応できる
$('[name="test"]').each(function() {
 console.log(this.type==="text");
})

でもそうすると>>464よりも長くなってしまう。
それはどんな場合でもjQueryの方が短くかけるという俺の主張に反するから
DOM APIで実現しているレベルにまで下げることで短いということを示しただけ

ちなみにjQueryでjQueryオブジェクトを外すのは普通
そもそも上のeachの中のthisはDOM要素なんだから

471 :Name_Not_Found:2018/10/14(日) 12:46:45.63 ID:???.net
>>466
そういうこというと、こういう面倒くさい宗教論が始まるから控えてくれ

472 :Name_Not_Found:2018/10/14(日) 12:54:45.67 ID:???.net
jQueryの話題が出ることが許せないんだ。
僕のスレのルールは僕が決めるんだ

473 :Name_Not_Found:2018/10/14(日) 13:11:31.62 ID:???.net
(´・ω・`)やめなよ

474 :Name_Not_Found:2018/10/14(日) 13:15:33.48 ID:???.net
jQueryは便利だけどprototype.jsとコンフリクトするのがなぁ…

475 :Name_Not_Found:2018/10/14(日) 13:16:50.36 ID:???.net
nameだと複数あるものだしそもそも要素の特定をどうするのかって問題が有るでしょ
もしidが'test'なら
console.log(test.type==="text");
でOk

476 :Name_Not_Found:2018/10/14(日) 13:27:04.54 ID:???.net
>>474
prototype.jsはもう使われてないし、
使われていたって同居できるので問題ない

>>475
条件付きでOKといわれてもな。
その条件を満たせないときはNGだろ

477 :Name_Not_Found:2018/10/14(日) 14:54:52.32 ID:???.net
条件付きでOKと言いたいわけではない
今提示されてる条件の範囲では解答が出せないと言ってるんだよ

478 :Name_Not_Found:2018/10/14(日) 14:58:22.24 ID:???.net
条件っつってnameで引っ掛けてelem.typeを見ましょうで終わりじゃん

479 :Name_Not_Found:2018/10/14(日) 15:32:09.66 ID:???.net
俺はそう簡単な話とは思えないけどな
質問者が求めていそうなこと、実際にあり得る状態の組み合わせはかなり合って
そもそもnameを見ることが不適切な場合もあるってことだ

480 :Name_Not_Found:2018/10/14(日) 15:38:23.16 ID:???.net
そんなこと言い出したらjavascriptを使うのが適切じゃない場面も多々あるぞ

481 :Name_Not_Found:2018/10/14(日) 16:26:42.92 ID:???.net
極論を言ってるのではなく極めて常識的な範囲での話のつもりはなんだが
まあ多分これ以上話しても分かり会えないだろうからここで止めにしよう

482 :Name_Not_Found:2018/10/14(日) 16:33:27.33 ID:???.net
>>481
お前が悪いのは、答えが出ない問題と言ってるくせに
答えが出ない問題だと言わずに
答えを出しているところなんだよ

483 :Name_Not_Found:2018/10/14(日) 17:02:45.96 ID:IsUCjf39.net
GitHub、jQueryやめたってよ。
https://githubengineering.com/removing-jquery-from-github-frontend/
https://www.i-programmer.info/news/167-javascript/12017-github-removes-jquery-why.html
https://news.ycombinator.com/item?id=17612540

後でこんな手間かかるなら最初から使わないほうがいいなwwwww

484 :Name_Not_Found:2018/10/14(日) 17:07:13.73 ID:???.net
最初からjavascriptなんて使わなけりゃよかったんだよ

485 :Name_Not_Found:2018/10/14(日) 17:37:59.14 ID:???.net
よろしいならばflashだ

486 :Name_Not_Found:2018/10/14(日) 17:49:20.87 ID:???.net
>>470
>またこうすれば、0個から複数全てに対応できる
>でもそうすると>>464よりも長くなってしまう。
>それはどんな場合でもjQueryの方が短くかけるという俺の主張に反するから

>>464は単数処理なのになぜ複数処理と比較したの
比較するなら>>464ベースの複数処理と
jQueryでの複数処理じゃないの

487 :Name_Not_Found:2018/10/14(日) 18:19:16.47 ID:???.net
>>482
詭弁だな
もしこういう場合ならこうと答えを出すのは
答えが出せないと思ってることと矛盾しないし悪いことである訳がない

それにマシンじゃないんだからさ
人の主張に込められた思いというのはたった1つで
かならず0か1かハッキリできるものかのように話を進めるのは止めてくれない?

今回はただ君の頭が硬すぎて変な思い込みしちゃったってだけの事件
それ以上でも以下でもない

488 :Name_Not_Found:2018/10/14(日) 18:24:22.91 ID:???.net
GitHubほど大きいところがjQueryなんて大味なライブラリ使っちゃ駄目だろ
もっと軽量なものだけにして後は自分たちで最適化したものを開発するだけのメリットが有る

489 :Name_Not_Found:2018/10/14(日) 22:28:23.85 ID:???.net
>>486
>? 比較するなら>>464ベースの複数処理と
>? jQueryでの複数処理じゃないの

ぷぷぷ >>464のどこが複数処理なのか
DOM APIも理解してないやつが、DOM APIすごいとか
言ってるんだよな。傑作だwww

490 :Name_Not_Found:2018/10/14(日) 22:28:57.49 ID:???.net
>>488
> GitHubほど大きいところがjQueryなんて大味なライブラリ使っちゃ駄目だろ

だから大味なライブラリじゃないってことでは?

491 :Name_Not_Found:2018/10/14(日) 22:40:38.35 ID:???.net
繊細な味のライブラリを教えてください

492 :Name_Not_Found:2018/10/14(日) 22:53:44.72 ID:???.net
あ、ごめんなさいそれ来月からなんですよ

493 :Name_Not_Found:2018/10/14(日) 22:54:38.99 ID:???.net
GitHubほどの大きい所がjQueryを使ってるんだから
信頼性は高いだろう

どこの馬の骨ともわからんやつが、
大手が使っちゃダメなんだって叫んでも信用できない

494 :Name_Not_Found:2018/10/14(日) 22:59:24.26 ID:???.net
馬の骨で出汁をとると大味になるからな

495 :Name_Not_Found:2018/10/14(日) 22:59:43.87 ID:???.net
今は使ってないんだが

496 :Name_Not_Found:2018/10/14(日) 23:09:45.57 ID:???.net
当店は化学調味料の使用を中止しました

497 :Name_Not_Found:2018/10/14(日) 23:10:13.33 ID:???.net
>>495
jQueryって文字があるし使ってるんじゃないですかねぇ

https://github.com/
https://assets-cdn.github.com/assets/frameworks-a2f69f341e3df821fdcb56e335ef9920.js

498 :Name_Not_Found:2018/10/14(日) 23:18:04.65 ID:???.net
jQueryって文字があると使ってる事になるってマ?

499 :Name_Not_Found:2018/10/14(日) 23:32:03.81 ID:dlr2OXqt.net
まずは>>483の記事読めよ。
そんなだからjQueryバカはバカにされるんだよ。
そんなだからGitHubに捨てられちゃうんだよ。

500 :Name_Not_Found:2018/10/14(日) 23:32:31.17 ID:???.net
一瞬何を言ってるのかよくわからなかったw

jQuery を使用して Excel のアドインを作成する
https://docs.microsoft.com/ja-jp/office/dev/add-ins/quickstarts/excel-quickstart-jquery?tabs=visual-studio

501 :Name_Not_Found:2018/10/14(日) 23:34:12.60 ID:???.net
Vueってやつが都会じゃナウでヤングなハイカラらしいってばっちゃが言ってた

502 :Name_Not_Found:2018/10/14(日) 23:36:38.27 ID:???.net
そういや、jQueryはこれからも使われ続けるって言っていたやつが
↓のスレたてたっけ

2017年 JavaScript★71.9%ものサイトがjQueryを利用 [無断転載禁止]©2ch.net
https://medaka.5ch.net/test/read.cgi/prog/1485008061/

今どうなったかな? あと2ヶ月すればスレ立てて2年立つけど


https://w3techs.com/technologies/history_overview/javascript_library/all
jQuery
72.9%
72.9%
73.0%
73.1%
73.2%
73.2%
73.4%
73.3%
73.2%
73.3%
73.3%
73.4%
73.3%
73.3%

やっと73.2%〜73.4%で安定したみたい。

503 :Name_Not_Found:2018/10/14(日) 23:53:13.57 ID:???.net
GitHubがjQueryの使用をやめたのは分かったがなぜjQueryがバカにされるのか分からない

504 :Name_Not_Found:2018/10/14(日) 23:54:40.02 ID:???.net
馬鹿にしている方もわかってないんだから
誰にもわからないだろうさw

505 :Name_Not_Found:2018/10/14(日) 23:57:37.12 ID:???.net
2015年6月1日
jQueryは有害なのか
https://postd.cc/jquery-considered-harmful/


これが3年前か。ディスってたやつって今どんな気持ちなんだろう?

506 :Name_Not_Found:2018/10/15(月) 00:08:05.37 ID:???.net
むこうでもいるいらねの喧嘩になってんじゃん
ここと一緒だな

507 :Name_Not_Found:2018/10/15(月) 00:10:03.84 ID:???.net
githubなんてオタクの相手だけしてりゃいいんだからjqueryも簡単に捨てられるわな
githubはjqueryのことバカにはしてないけどな

508 :Name_Not_Found:2018/10/15(月) 00:22:31.88 ID:???.net
jQueryディスるのにGitHubを持ち出してきた奴がバカだってことでよろしいでしょうか?

509 :Name_Not_Found:2018/10/15(月) 00:31:24.96 ID:???.net
githubのようなシステム屋なら
技術者がたくさんいるからjQueryなくてもやれるんですよ!

社長。githubに勝てると思いますか?
うちでは無理です。

510 :Name_Not_Found:2018/10/15(月) 01:10:02.94 ID:???.net
社長「これからはFLASHの時代や」

511 :Name_Not_Found:2018/10/15(月) 01:33:55.01 ID:???.net
JavaScript使ってますけどjQueryは使ってませんっていうのは
全世界で2.8%しかないのな

512 :Name_Not_Found:2018/10/15(月) 01:46:22.74 ID:???.net
会社で一人でもjquery使ってたら会社丸ごとjqueryユーザ理論

513 :Name_Not_Found:2018/10/15(月) 02:06:30.76 ID:???.net
どうやって一人がjQuery使ってるって調べるの?
調べる方法がない=そういう統計も出せるはずがない
と思うけど?

514 :Name_Not_Found:2018/10/15(月) 03:09:32.12 ID:???.net
>>489

例えば>>464ベースなら、querySelectorAllでforなりmapなり書かれたものと
>>470の$('[name="test"]').each云々を比較するならわかるが

複数処理の場合、単数処理である>464とは別の見地なんだから
>でもそうすると>>464よりも長くなってしまう。
みたいにコードの長さを気にしている意味がわからんというか違和感だらけなんだが。

515 :Name_Not_Found:2018/10/15(月) 03:30:32.15 ID:???.net
そもそも>>465>>464に合わせてかつ全部jQueryで書くと
var elm = $('[name="test"]:eq(0)');
console.log(elm.attr('type')==="text");
なわけだろ(てか>>470のコード間違ってね?5行目あたり'text'じゃなくtypeじゃないの)

>>464が82文字で
上のコードが75文字だから
別に>短くかけるという俺の主張に反するから
には反してないよなぁ
一体何を気にして>>465を投稿したんだろうか

516 :Name_Not_Found:2018/10/15(月) 03:47:10.87 ID:???.net
一つの処理だから:eq(0)すらいらなかったわ >>514

517 :Name_Not_Found:2018/10/15(月) 03:48:06.46 ID:???.net
>>516訂正
513 → >>515

518 :Name_Not_Found:2018/10/15(月) 12:51:27.51 ID:???.net
>>514
> 例えば>>464ベースなら、querySelectorAllでforなりmapなり書かれたものと

あのさぁ、>>464にかいてあるquerySelectorを
しれっとquerySelectorAllに変えないでくれないかなぁ

気づかないとでも思ってんの?
ほんと、いつもお前のやり口は卑怯

519 :Name_Not_Found:2018/10/15(月) 12:53:11.87 ID:???.net
>>515
jQueryオブジェクトから[0]で0番目のDOM要素が
取れるっていうのもjQueryの機能なんだわ。
jQueryではDOM要素も併用する
簡単に併用できるってことも特徴のひとつなわけ

520 :Name_Not_Found:2018/10/15(月) 12:54:27.86 ID:???.net
>>514
jQueryで単数で処理するなら

var elm = $('[name="test"]')[0];

これになるわけよ。これ。単数

521 :Name_Not_Found:2018/10/15(月) 12:56:09.56 ID:???.net
var elm = document.querySelector('[name="test"]');
console.log(elm.type==="text");


var type = $('[name="test"]').attr('type');
console.log(type==="text");

まあどうしてもっていうのなら、こう書いてもいいけどさ

522 :Name_Not_Found:2018/10/15(月) 12:57:46.20 ID:???.net
>>515
> 一体何を気にして>>465を投稿したんだろうか

>>465と全く同じ結果(要素が見つからないときにエラーになる)
をもたらす同等のコードのjQuery版

まあ普通はエラーになるのは良くないが、
それを許容すれば、さらに短くなるということ

523 :Name_Not_Found:2018/10/15(月) 13:49:55.47 ID:???.net
>>519
>jQueryの機能なんだわ。
メンバ演算子がjQueryの機能・・・????

524 :Name_Not_Found:2018/10/15(月) 14:19:27.30 ID:???.net
>>523
そうだよ。添字でアクセスできるようにArray Likeオブジェクトを実装している
https://techblog.kayac.com/jquery-type-array-like-object.html


なぜこんな事をしているかというとArrayの継承は今でこそ可能になってるけど
当時のブラウザではできなかったから
https://efcl.info/2016/11/23/array-subclass-by-reflect/

525 :Name_Not_Found:2018/10/15(月) 14:40:45.66 ID:???.net
>>518
>気づかないとでも
?? 隠してないが?
>いつもお前のやり口
????

>>470
(1)>>464に合わせ単数
(2)jQueryで、かつ短く書きたい
(3)単数版$('[name="test"]').attr('type')、または
(4)複数対応版(略
(5)単数版>>464と比べ、コードを短くしたい
3→5はいいとして
4→5は別物コードなんだからコードの長さが違うのは当たり前じゃないの
>でもそうすると
でも、ってなんなの

526 :Name_Not_Found:2018/10/15(月) 14:43:38.75 ID:???.net
同じものの比較

単数版DOM API(要素がない場合にエラーになる版)
var elm = document.querySelector('[name="test"]');
console.log(elm.type==="text");


単数版jQuery(要素がない場合にエラーになる版)
var elm = $('[name="test"]')[0];
console.log(elm.type==="text");

527 :Name_Not_Found:2018/10/15(月) 14:46:54.12 ID:???.net
単数版DOM API(要素がない場合にtypeがnullになる版)
var elm = document.querySelector('[name="test"]');
var type = elm ? elm.type : null;
console.log(type==="text");


単数版jQuery(要素がない場合にtypeがnullになる版)
var type = $('[name="test"]').attr('type');
console.log(type==="text");

528 :Name_Not_Found:2018/10/15(月) 14:52:53.64 ID:???.net
>でもそうすると>>464よりも長くなってしまう。
あきらかにコードの長さに言及してるんだよなぁ・・
そして別物コード同士の比較が動機になっているという

529 :Name_Not_Found:2018/10/15(月) 14:56:35.95 ID:???.net
流石に>>526見れば、同じものがどういうものか
理解したようだな

530 :Name_Not_Found:2018/10/15(月) 15:01:56.45 ID:???.net
少なくともおれは別物コードの比較で長さを気にしてることに違和感を感じたことしか言ってないわ
そしてまだ回答は得られていない

531 :Name_Not_Found:2018/10/15(月) 15:03:59.68 ID:???.net
別物のコード比較ってなんのこと?
そんなことしてないけど

>>526-527みて満足したなら帰れよ

532 :Name_Not_Found:2018/10/15(月) 15:16:32.42 ID:???.net
最初から>>470
>それはどんな場合でもjQueryの方が短くかけるという俺の主張に反するから
>またこうすれば、0個から複数全てに対応できる
>でも
の違和感について>>525しかきいてない

533 :Name_Not_Found:2018/10/15(月) 15:18:13.05 ID:???.net
はぁ?理解力無いのか。同じことを実現するなら、
どんな場合でもjQueryの方が短くかけるんだよ

534 :Name_Not_Found:2018/10/15(月) 15:21:38.81 ID:???.net
>>533
君だよ理解してないのは。
こちらは、短くかけないとは一言も言ってないぞ
typeとtextを間違う程度のレベルだからしょうが無いだろうが

535 :Name_Not_Found:2018/10/15(月) 15:23:42.90 ID:???.net
短くかけると言ったのは俺だってーの
お前の話なんか知らんわ

536 :Name_Not_Found:2018/10/15(月) 15:24:59.33 ID:???.net
短く”かけない”

typeとtext間違えるは、聞き間違えるは
どうしようもないなほんと

537 :Name_Not_Found:2018/10/15(月) 15:28:50.54 ID:???.net
>ほんと、いつもお前のやり口は卑怯
これも追加で

538 :Name_Not_Found:2018/10/15(月) 15:29:02.94 ID:???.net
だから俺が短くかけると言って、
お前は何も言ってないんだろ?

何も言ってないなら、そこで終わりだろ

539 :Name_Not_Found:2018/10/15(月) 15:37:36.76 ID:???.net
いや、強いて言えばおれは
>>464の単数 と jquery単数版

>>464の複数版 と jquery複数版
も短くかけると思ってる
おまえはなぜか
jquery複数版 と >>464の単数処理(あえて版とは言わない)
でコードの長さについて言及している>>470

540 :Name_Not_Found:2018/10/15(月) 17:22:54.60 ID:???.net
あれみて、jQueryの複数版とDOM APIの問題がある版(あえて単数版とは言わないw)
で長さ比較してると思ってるのかw

jQueryだと普通に書いたら、DOM APIのような問題あるコードは簡単に排除できるんだよ。
それじゃ比較にならないから、最初にDOM APIと問題があるコードにしたんだろ
同じもので比較するために

541 :Name_Not_Found:2018/10/15(月) 18:03:47.93 ID:???.net
いや>>470のどこをどうみても
>でもそうすると
というレスの前に、
>一つだけ処理する場合でも と >またこうすれば 複数全て云々
が書かれている
それらに対して逆説として、>でもそうすると
が書かれており、その直後に>それは
と書かれていることから>>470
単数処理である>>464のコードについて>長くなってしまう
というコードの長さについて触れているのは明確

決定的なのは、仮に、
複数版である>またこうすれば、 略 ="text"); })
の行を消去した場合、>一つだけ処理する場合でも云々
のコードは既に>>464より短いため、
>よりも長くなってしまう
の意味は通じなくなる

これらのことから、
>でもそうすると>>464よりも長くなってしまう。
とは>複数全てに対応できる云々の複数版コードの長さについて
言及していたものと思われる

542 :Name_Not_Found:2018/10/15(月) 18:12:41.06 ID:???.net
ほんとキモイなw
こいつなにがしたいんだろう?

543 :Name_Not_Found:2018/10/15(月) 18:57:13.39 ID:???.net
どっちもキモいんですが

544 :Name_Not_Found:2018/10/15(月) 19:07:36.03 ID:???.net
俺はjQueryを使えばいかなるDOM操作も
同じことをDOM APIを使うよりも簡潔に書けるって
言ってるだけなのに、どうも関係ない所に反応するんだよなぁ
反論しないなら意味不明なこと言わなくていいのに

545 :Name_Not_Found:2018/10/15(月) 19:21:19.41 ID:???.net
質問の主旨は>>461
判別する手段を与えてあげればいいだけ
短くできるとかいう主張はまさに
まったくもって関係ないところ

546 :Name_Not_Found:2018/10/15(月) 19:25:36.62 ID:???.net
そしてその答えがこれなわけ

464 名前:Name_Not_Found[sage] 投稿日:2018/10/13(土) 23:58:51.51 ID:???
var elm = $('[name="test"]')[0];
console.log(elm.type==="text");

これに対して関係ない質問をするなってこと

547 :Name_Not_Found:2018/10/15(月) 19:26:25.24 ID:???.net
誰が関係ない話を始めたのかよくわかりました。

548 :Name_Not_Found:2018/10/15(月) 19:33:05.62 ID:???.net
まとめると>>465が何の進展もない駄レスしただけの話

549 :Name_Not_Found:2018/10/15(月) 19:40:30.57 ID:???.net
おれならわざわざjquery使って同じような回答するくらいなら
console.log( $('[name="test"]').map((i,_)=>_.type) );
判別手前だが、こういうのでいいじゃんと思うわ
そもそも>>461のレスから察するにコードすらいらないと思うわ
おそらくelement.typeで取得できるかどうかを知りたかったレベルだろうし

550 :Name_Not_Found:2018/10/15(月) 19:40:36.60 ID:???.net
>>465>>461にレスしてるわけで何の問題もない

問題はその>>465に意味のない質問をしたやつ

551 :Name_Not_Found:2018/10/15(月) 19:42:08.68 ID:???.net
>>549
お前なに自分でコード書いて、自分のコードが不要だっていってんの?

> おそらくelement.typeで取得できるかどうかを知りたかったレベルだろうし
それが>>465だろ? typeが取得できるかどうか

552 :Name_Not_Found:2018/10/15(月) 19:48:25.14 ID:???.net
だれにレスしてるかもわからん馬鹿 >>465
質問者に安価つけてる>>464 ここで解決
typeで取得できるのを示唆する目的なら>>464で終わってる話

553 :Name_Not_Found:2018/10/15(月) 19:52:07.67 ID:???.net
なんだ。単に誰にレスしてるのかわからんかっただけかw

554 :Name_Not_Found:2018/10/15(月) 19:54:37.27 ID:???.net
そう 解決してるのにわざわざ同じようなレスしちゃった馬鹿がいるんだよなぁ

555 :Name_Not_Found:2018/10/15(月) 19:55:24.73 ID:???.net
jQueryを使った例ってだけですが?
自分の気に食わないレスだから叩いてるんだね。
これからも頑張らなきゃ(笑)

556 :Name_Not_Found:2018/10/15(月) 19:57:52.13 ID:???.net
このスレ的にはjQueryの存在が害悪だな
必要のない諍いを生み出す

557 :Name_Not_Found:2018/10/15(月) 20:02:22.57 ID:???.net
質問者置いてけ堀で議論カッコいいですね

558 :Name_Not_Found:2018/10/15(月) 20:03:38.24 ID:???.net
やっぱりいち早くjQuery使って回答してすでに答えが出てるから
そんな冗長な例出すなって流れにしないとダメだな

質問が来てるのには気づいていたんだが
ちょっと放置したのがまずかった

559 :Name_Not_Found:2018/10/15(月) 20:07:49.14 ID:???.net
そう最初からjquery使ってれば>>465の馬鹿が>>464真似して馬鹿なコードも書くことがなかったのにな

560 :Name_Not_Found:2018/10/15(月) 20:11:48.09 ID:???.net
わかった。今度からjQueryのコードが出るまで待つことにするよ

561 :Name_Not_Found:2018/10/15(月) 20:13:16.06 ID:???.net
たのむ

562 :Name_Not_Found:2018/10/15(月) 21:21:42.06 ID:???.net
IDないと誰が誰やらw

563 :Name_Not_Found:2018/10/15(月) 22:56:21.27 ID:???.net
え、もしかして土曜からずっとやってんの
お前ら働けよ…

564 :Name_Not_Found:2018/10/15(月) 23:17:16.89 ID:???.net
jQuery駆逐したらな

565 :Name_Not_Found:2018/10/15(月) 23:35:18.95 ID:/0B3mE22.net
jQueryだと短く書けるモン!とか言って
$('[name="test"]')[0]
みたいなコード出してくるのホンマ草www
$が何千行の関数なんだよとww
それゴマカシていいんだったらjQuery あろうがなかろうが俺ならもっと短く書けるぞ。
a()
ほらよバーカw

566 :Name_Not_Found:2018/10/15(月) 23:38:43.83 ID:???.net
いや、$の中なんて書かないですし、

567 :Name_Not_Found:2018/10/15(月) 23:45:22.20 ID:???.net
a()の中は長々と書くんだろうなぁw

568 :Name_Not_Found:2018/10/15(月) 23:52:31.43 ID:???.net
a()が何も書かないで期待通り動いてくれればいいねw

569 :Name_Not_Found:2018/10/16(火) 02:54:20.89 ID:O7ZoRP+n.net
$は何千行にも渡るコードなのにノーカンw
aは何も書いてはいけないww
jQueryだと短く書けるモン!君のオレオレルールにはかなわねぇwwwww

570 :Name_Not_Found:2018/10/16(火) 04:27:30.53 ID:???.net
>>569
当たり前じゃね?

jQueryは汎用のコードですでに動くものがある。
それにたいしてa()は中身を書かないと使えないんだから。

問題を出す前にすでにコードが有るなら使えると言えるけど、
問題聞いてから作らないと使えないんじゃね

571 :Name_Not_Found:2018/10/16(火) 06:52:33.43 ID:???.net
有る前でも後でも質問者にライブラリのインストールを強いるなら同じこと
jQuery使おうぜっていうのはBabel使おうぜとかRust.js使おうぜって言ってるのと同じことってことが何故わからない
自分の好きなもの勧めるのは悪いことじゃないけれど
それが普通とか勘違いするのは駄目

572 :Name_Not_Found:2018/10/16(火) 09:22:31.24 ID:???.net
いや、そうじゃなくて
ライブラリのインストールをするだけで終わるのと
自分でa()の中身を書かないのと行けないのじゃ
ぜんぜん違うでしょと言う話だ

573 :Name_Not_Found:2018/10/16(火) 11:21:51.21 ID:v/rkbiNX.net
インストールするだけ(約100kB ASCII文字にして10万文字)

574 :Name_Not_Found:2018/10/16(火) 12:21:22.28 ID:???.net
それだけのコードがインストールするだけで使える

575 :Name_Not_Found:2018/10/16(火) 12:55:19.91 ID:???.net
最終的な主張はそれか。
ま、いいだろ。ずいぶんしおらしくなった。

576 :Name_Not_Found:2018/10/16(火) 13:07:58.98 ID:???.net
a()の中身を書けばa()だけで呼び出せる!
って言っていたことについてはなかったコトにするつもり?

577 :Name_Not_Found:2018/10/17(水) 07:09:31.73 ID:???.net
>>576
a()と書くのがスマートだからそっちにしろと言ってるわけじゃなく
下手をするとそれと同程度な行為に捉えられ得るという悪い見本として言ってるんだが
>>572
jQuery乱用解答へのの批判として
jQueryの読み込みscriptタグ貼ったら文字数の差が無くなるような例が多い中
全然「全然」違うってことはないよね
jQuery使ったら全然違うように書き手がだけが勘違いしてる事のほうが多いよね
もう一つ短い解答への批判として
別にa()の中身がライブラリ使ってないとは言ってないんだから
そうやって質問者にできるだけコードを読み書きする負担を与えず問題を解決するコードを提示するのって
質問者が自ら学ぶという目的のこのスレに於いて良くない行為だと思うんだよね

回答者はjQueryとか自分が好きなアピールしたい技術があって、
自分の思いつき解法を公開したくなったとしても
ぐっと我慢して質問者が自分で考えて解決できるようなヒント程度の提示にして
あとは質問者とよく話し合って導くことが大事だと思うんだよね
スマートだと思う解答をポーンと投げるだけ、そして後は批判合戦は違う
最後に、これはjQueryを使わない解答にケチが付いた流れに対して言ってる一般的なことで
その他の具体的な質問・回答は関係ないからね

578 :Name_Not_Found:2018/10/17(水) 15:39:11.40 ID:???.net
>>577
それは単なるあなたの希望ですね

579 :Name_Not_Found:2018/10/17(水) 20:16:52.40 ID:???.net
原理主義者は何を言っても改宗しないので時間の無駄だよ

580 :Name_Not_Found:2018/10/17(水) 21:00:26.73 ID:???.net
jQuery原理主義者は悪魔だと思う
親切な顔をして実際はポリフィルも自分で組めない
jQueryの範囲でしか何もできない無能を作り出して
自分より優秀な人材が育たないようにしてる悪魔

581 :Name_Not_Found:2018/10/17(水) 21:03:15.97 ID:???.net
jQueryが原理主義になるわけがないだろう
だいたいこれDOM操作ライブラリやで?

582 :Name_Not_Found:2018/10/17(水) 21:04:35.48 ID:???.net
>>580
だからそれは単なるあなたの希望ですね

583 :Name_Not_Found:2018/10/17(水) 21:09:16.87 ID:???.net
jQueryの素晴らしさの一つは、セレクタを自分で拡張できるところだと思う
DOM APIではできないことができる。

584 :Name_Not_Found:2018/10/17(水) 21:33:23.98 ID:???.net
原理主義ってのは人の考え方のことよ
スレに張り付いて3連続レスもできる気持ち悪さのことよ

585 :Name_Not_Found:2018/10/17(水) 21:37:17.41 ID:???.net
原理主義の原理の意味もわかってないのか
原理主義と言いながら、ただの主義の話をしている

586 :Name_Not_Found:2018/10/17(水) 22:36:58.02 ID:???.net
とにかくjQueryがいいってんなら原理主義だろ
違うならたまにはjQuery以外の話してみろよ

587 :Name_Not_Found:2018/10/17(水) 22:38:52.74 ID:???.net
ごめん、原理主義は意味が違うらしいな
絶対主義だな

588 :Name_Not_Found:2018/10/17(水) 22:46:14.37 ID:???.net
jQueryがいいと言ってるが、jQueryですべてできるなんて思ってない。
jQueryはDOM操作ライブラリなんだから、例えば日付の計算にjQueryは使えない
つまり、jQueryを使ってる人はjQuery以外も使ってるということ

589 :Name_Not_Found:2018/10/18(木) 02:23:22.69 ID:???.net
 私たち日本人の、日本国憲法を改正しましょう。
総ム省の、『憲法改正國民投票法』、でググって
みてください。拡散も含め、お願い致します。

590 :Name_Not_Found:2018/10/18(木) 07:02:12.18 ID:???.net
>>582
もちろん俺の希望だよ
俺が俺の意見以外言えるはずがないじゃないか
何当たり前なこと言ってるの?
>>582だって希望であってほしいという君の希望だろう?

591 :Name_Not_Found:2018/10/18(木) 09:34:22.49 ID:HcsddB5d.net
「ストローおじさん」って知ってる?
昔、映画館とかに置いてあったタン壺(みんながカ〜ッペ!とタンを吐く壺)に
ストロー突っ込んで全部飲み干すらしいよ。ゴックンゴックン!
ストローが透明だから飲んでるのが丸見え!
たまにハナクソが詰まるらしいけど、思いっきり吸って食べるらしい。スッポン!
ちなみにストローは絶対に洗わない方針だそうです。

「どんぶりおじさん」もいるようです。
タン壺を熱いご飯にぶっかけてジュルジュル流しこむように食べるそうです。
ごはんの上にハナクソとか鼻毛が丸見え!
汁はご飯の隙間を通って下に溜まるけど、全部飲み干すそうです。ゴクゴク!

592 :Name_Not_Found:2018/10/18(木) 10:48:22.83 ID:???.net
>>590
> もちろん俺の希望だよ
> 俺が俺の意見以外言えるはずがないじゃないか

意見と希望は違う

意見を言ったんじゃなくて希望を言ったんだね。
そう書いているもんね

> >>582だって希望であってほしいという君の希望だろう?
それは希望ではなくて指摘。その指摘に対して、
あんたはそうだと答えた。

593 :Name_Not_Found:2018/10/18(木) 19:14:54.22 ID:???.net
指摘も希望も意見も大した違いはないでしょ
君が希望と言うんなら希望で良いよ

お、こいつ、自分の発言を希望と認めたな!!!

で、だからどうなるのって感じ

594 :Name_Not_Found:2018/10/18(木) 19:25:59.70 ID:???.net
> 指摘も希望も意見も大した違いはないでしょ

それもお前の希望だなw

↑これは指摘。ぜんぜん違う

595 :Name_Not_Found:2018/10/18(木) 21:33:06.36 ID:???.net
jsの前に日本語勉強しなおした方がいいんじゃねえの

596 :Name_Not_Found:2018/10/19(金) 01:04:01.46 ID:???.net
jQuery君は希望的観測という言葉を知ってるのかな

597 :Name_Not_Found:2018/10/19(金) 01:10:10.81 ID:???.net
希望、指摘、意見に続いて、
今度は新たに希望的観測が増えました。
用語を増やして何がしたいんだろう?

598 :Name_Not_Found:2018/10/19(金) 06:48:18.84 ID:???.net
>>594
だから俺のが希望でお前のが指摘でいいけど
それで何がどうなるのかって話だよ

599 :Name_Not_Found:2018/10/19(金) 09:53:37.38 ID:???.net
ん? jQueryユーザーを根拠なく貶めるのが目的だったんじゃないのか?

jQueryユーザーとはこういうものですーという書き込みが単なる希望だと自白した。
つまり、jQueryユーザーとはこういうものであってほしいんです。という書き込みだった。

それで何がどうなるかって?
jQueryユーザーを貶めることに失敗したってことだろう

600 :Name_Not_Found:2018/10/19(金) 12:26:22.43 ID:???.net
jQuery君の目的はjQueryのメリットを唱えて支持者を増やすのが目的でしょ

601 :Name_Not_Found:2018/10/19(金) 12:55:51.60 ID:???.net
>>599
jQueryユーザーを貶める?
なにトチ狂った意地の悪いこと言い出してるんだ?
>>580に書いたように、俺は俺の思ったことを素直にそのまま書いただけ
それ以上でも以下でもない
それにjQueryユーザーがとは言ってないし、勝手な被害妄想して変なケチ付けんな

602 :Name_Not_Found:2018/10/19(金) 13:26:46.04 ID:???.net
君たちどっか他のところ行ってくれませんかね…わざとなんだろうけど

603 :Name_Not_Found:2018/10/19(金) 13:35:11.85 ID:???.net
喧嘩してるように見せかけて
両者とも何か共通の目的のためにやっているのだとしたら…

604 :Name_Not_Found:2018/10/19(金) 14:24:05.50 ID:???.net
jQuery厨は相変わらずうざいな。いよいよ余裕なくなってきたかw

605 :Name_Not_Found:2018/10/19(金) 14:48:22.63 ID:???.net
> 俺は俺の思ったことを

事実ではなくて、希望を書いたらしいなw

606 :Name_Not_Found:2018/10/19(金) 15:34:31.64 ID:???.net
だから「思う」って書いてるでしょ?
しつこいね君は
そもそも悪魔が事実だったら大事じゃん
最近勝手に煽られたと思い込む煽り耐性マイナスのやつ多いね
短期で余裕がないっつうか

607 :Name_Not_Found:2018/10/19(金) 16:26:30.46 ID:???.net
そっちじゃねーよw

> 親切な顔をして実際はポリフィルも自分で組めない
> jQueryの範囲でしか何もできない無能を作り出して
> 自分より優秀な人材が育たないようにしてる

↑これが事実ではなく、お前の希望だっていってんの

608 :Name_Not_Found:2018/10/19(金) 16:45:06.99 ID:???.net
お前らスレ違い
ここは品評スレじゃなくて、質問用スレ
回答者の価値観を問うところではない
いい加減に成仏しろよ

609 :Name_Not_Found:2018/10/19(金) 18:37:18.09 ID:???.net
無理です
jQuery君は数年前からこのスレを見張っており生き甲斐なのです

610 :Name_Not_Found:2018/10/19(金) 21:08:48.14 ID:???.net
早いとこ1000まで埋めてくれ

611 :Name_Not_Found:2018/10/19(金) 21:37:13.65 ID:???.net
.cssのファイル内の値を動的にできないでしょうか
HTML側はjsもphpも使用不可なのですが、
cssファイルは別サーバーに置ける為、使用可能です

612 :610:2018/10/19(金) 21:42:38.78 ID:???.net
具体的には、
タイマーで、ある特定の期間だけcssファイルで指定しているheightの値が変わるように仕組みを作りたいんです。
バッチファイル+タスクスケジューラでアップロードする方が現実的でしょうか?

613 :Name_Not_Found:2018/10/19(金) 22:59:11.14 ID:???.net
>>612
サーバ側でクロンでも書けばいいじゃない

614 :Name_Not_Found:2018/10/20(土) 00:28:12.31 ID:???.net
>>611
jsも別サーバーに置けないの?
っいうかなんだってそんなことに?

615 :Name_Not_Found:2018/10/20(土) 01:09:53.02 ID:???.net
>>613
それが一般的な方法ぽいですね・・

>>614
jsはcssと同じ外部サーバーに置けます。
ECモールだとこんなのばっかりですよ

616 :Name_Not_Found:2018/10/20(土) 02:53:32.82 ID:???.net
>>615
> それが一般的な方法ぽいですね・・
いやいや、一般的ではないよ。

特定の期間以外はCSSファイル見てもわからないようにしたいっていうのなら話は違うが
cssファイルを動的に生成するのは一般的にはアンチパターンだよ
(ついでにいうとJavaScriptファイルも動的に生成しないほうが良い
必要ならばJSONデータを動的に生成してしようする)


>>612
> タイマーで、ある特定の期間だけcssファイルで指定しているheightの値が変わるように仕組みを作りたいんです。

「ある期間」っていうのが午前、午後やタイムセール、キャンペーン期間中みたいに
特定の言葉で表せるのであれば、以下のようなCSSを書く

div { height: 100px }
.sale div { height: 200px }

HTMLの<html>や<body>なんかのclassで現在の期間を表現する
例えば <body class=""> or <body class="sale"> みたいな感じ
ここまではCSSの範疇だからJavaScriptしらない人でも画面デザインだけ担当できる。


でJavaScriptで特定の期間を判断して<html>や<body>のclassを書き換える
用途は違うがModernizr (https://modernizr.com/) でも用いられているテクニック

見ての通りJavaScriptもCSSも静的で作れる
これが一般的な方法

617 :Name_Not_Found:2018/10/20(土) 07:00:23.39 ID:???.net
>>607
だから希望でも何でも良いよ
俺は俺の思ってることを素直に書いてるだけだから
君がどう捉えたかという話はどうでもいい
好きにして

618 :Name_Not_Found:2018/10/20(土) 07:29:14.73 ID:???.net
俺は事実を素直に書いてるだけだから
>>580が間違いだから、間違いって書いただけ

619 :Name_Not_Found:2018/10/20(土) 10:12:37.03 ID:???.net
>>616
なるほど。

>でJavaScriptで特定の期間を判断して<html>や<body>のclassを書き換える

しかし、セキュリティ的な問題か何かしりませんが
html側のサーバーにはjsを効かせる事はできません。
cssのみ可能なのと、そのcssの外部サーバーにはjsを置く事はできます。

620 :Name_Not_Found:2018/10/20(土) 10:29:58.68 ID:???.net
>>619
その外部jsをhtml側から読むことはできない設定(?)なんだよね?

621 :Name_Not_Found:2018/10/20(土) 10:41:21.10 ID:???.net
>>618
うーん、最初からそれだけでいいじゃん
君が突っ込んだ色々な不思議ポイントは結局全部君の思い込みだったわけだしね
恥ずかしい人

622 :Name_Not_Found:2018/10/20(土) 12:45:09.49 ID:???.net
>>619
じゃあCSSをPHPで書けば?

623 :Name_Not_Found:2018/10/20(土) 12:58:19.01 ID:???.net
>>619
> しかし、セキュリティ的な問題か何かしりませんが
> html側のサーバーにはjsを効かせる事はできません。

>>615
> jsはcssと同じ外部サーバーに置けます。
ってかいたよな?

jsが使えないのに、わざわざ置けますって言ったのか?
そりゃ置くだけなら置けるだろうけど、動かないんじゃ
置いたって意味ないじゃん

624 :Name_Not_Found:2018/10/20(土) 12:59:39.61 ID:???.net
>>621
あんたのレスが「思い込み」と指摘されたからって
相手にも同じ言葉を無理やり使おうとしなくていいよw
日本語がおかしくなってる

625 :Name_Not_Found:2018/10/20(土) 18:10:38.35 ID:???.net
意見も希望も主観には変わらないわけで、その定義に拘って議論するのは馬鹿馬鹿しい

626 :Name_Not_Found:2018/10/20(土) 18:19:53.51 ID:???.net
>>620
はいそうです

>>622
なるほど、phpファイルのheaderでcssファイルとして認識させるようにすればいいんですね

>>623
はいそうです。直接jsファイルは読み込めません。すみません。

627 :Name_Not_Found:2018/10/20(土) 22:51:18.80 ID:???.net
>>626
もしくは.htaccessとかで-.cssが呼ばれた時-.phpを呼ぶようにcssを置くサーバーで偽装する

628 :Name_Not_Found:2018/10/21(日) 01:24:35.87 ID:???.net
>>622
こんだけ限定された条件だと
これに一票かなあ

629 :Name_Not_Found:2018/10/21(日) 19:12:28.26 ID:PfpMCgsw.net
初心者です。
if (!args.length) { 処理 } の条件を日本語訳してもらえませんか?
argsは変数なんですが、lengthは変数じゃないです。
変数argsの長さじゃなかったら? でしょうか。。おねがいします

630 :Name_Not_Found:2018/10/21(日) 19:21:20.56 ID:???.net
>>629
否定 javascript

falsy javascript
あたりで検索してみるとか

631 :Name_Not_Found:2018/10/21(日) 19:25:53.72 ID:???.net
lengthは長さを数値で返す
数値をそのまま条件にすると
0は否、0以外は正。
それを!で逆転してるので

長さが0であれば、の意。
※argsが存在して配列や文字列などlengthメソッドが働く前提

632 :Name_Not_Found:2018/10/21(日) 19:31:48.58 ID:???.net
>>631
ごめんlengthはプロパティだわ

633 :628:2018/10/21(日) 19:34:16.74 ID:+KGIAcbR.net
ありがとうございます!よくわかりました。これで先に進めそうです。またお願いします

634 :Name_Not_Found:2018/10/22(月) 16:24:37.89 ID:???.net
適当に書くときはいいけど
慣れちゃうとちょっと怖いよね
args.lengthがundefinedでもnullでもfalseでも通っちゃうし

635 :Name_Not_Found:2018/10/23(火) 20:39:26.75 ID:???.net
>>634
それが排列であることを確定させているなら、問題はないかと

636 :Name_Not_Found:2018/10/23(火) 21:09:50.10 ID:???.net
排泄

637 :Name_Not_Found:2018/10/23(火) 21:20:03.47 ID:???.net
NodeRedって流行ってるの?
知識ない自分の力量不足だけど使いにくい…

638 :Name_Not_Found:2018/10/23(火) 21:23:36.40 ID:???.net
https://blechmusik.xii.jp/d/misc/hairetu/

639 :Name_Not_Found:2018/10/23(火) 22:49:46.08 ID:???.net
>>637
ハイパーカードを思い出す
これでできる範囲のことであれば楽できるね
ってやーつだと思ってる

640 :Name_Not_Found:2018/10/23(火) 23:39:33.33 ID:???.net
>>639
簡単なUI作ったりするのは便利なんだけどDBとのやりとりとかExcelに出力したりさせようとしたら訳わからなくなって詰まった
こういうのをNodeRedでやろうとするのが間違ってるのかなぁと思ったり

641 :Name_Not_Found:2018/10/25(木) 12:47:18.40 ID:???.net
>>632
lengthはプロパティでもメソッドでもなくプロパティアクセス時にArrayの内部プロキシによって特別に扱われる名前
アクセサメソッドにも近い

642 :Name_Not_Found:2018/10/25(木) 14:43:57.61 ID:???.net
Pythonを学習中です。
Webの事は全くの素人です。
スクレイピングや可視化する際、CSS XPath JavaScriptなどの事が分からなくて行き詰まってしまいました。

PythonとJavaScriptではじめるデータビジュアライゼーションという本で詰まりました。
知人にJavaScript第5版という古い本をもらいましたが、言語仕様が延々と書いてあるような感じで、自分には早過ぎました。
CSS、XPath、JavaScriptこの辺りを体系的に学べるおすすめの本あったら教えて欲しいです。

643 :Name_Not_Found:2018/10/25(木) 14:49:57.07 ID:???.net
>>641
今でも読まれるたびに数えてんですかね?

644 :Name_Not_Found:2018/10/26(金) 07:06:26.78 ID:???.net
うろ覚えだが呼ばれるたびに数えてたことはなかっただろう
更新のたびに内部プロパティを更新してそれを読み出すような仕組みじゃなかった?

645 :Name_Not_Found:2018/10/26(金) 07:43:19.89 ID:???.net
>>643
getterではなく、setter

646 :Name_Not_Found:2018/10/26(金) 12:56:08.60 ID:???.net
getterでもsetterでもなくね

647 :Name_Not_Found:2018/10/26(金) 13:05:10.89 ID:???.net
>>642
HTML, CSS, JavaScript は、初心者用の本を読む。
CSS セレクターは、jQuery で学ぶ

または、CSS セレクター・XPath は、入門用サイトを見る

CSSセレクターは、jQueryの本に書いてあるけど、
XPathは、どの本にも書いていないから、入門用ウェブサイトを見る

XPathは重要度が低いから、無視してもよい。
CSSセレクターを使う方が、読みやすい

648 :Name_Not_Found:2018/10/26(金) 20:12:27.73 ID:???.net
プログラミングは体系的には学べない
分からなければ分かるようにならない
でもそこで諦めたらそこまで
「言語仕様が延々と書いてあるような感じ」と思ったのなら
分かったのが0ということではないはず
最悪書いてある日本語は読めるのだから、1万分の1は分かるだろう
なら5万回分読めばいい
そしたら1-(1-0.0001)**50000で0.9932637373893968で99%理解できる
分からなくてもほんの少しは分かるまで血を吐きながら無理やり頑張る
その繰り返しの修行で覚えるのがプログラミング

649 :Name_Not_Found:2018/10/26(金) 20:44:33.09 ID:???.net
俺もXPathは後回しでいい…ってかやらなくてもいいと思う。
昔はCSSセレクタより表現力高いからとか言われてたがよくも悪くもXML全般に使われる汎用仕様だからな。
HTML/CSS仕様に寄り添い、技術要素疑似セレクタも使えて素のJavascriptやjQueryなどでも手厚くサポートされているCSSセレクタ覚えたらWeb系技術以外扱わないならXPathなんて正直いつ使うんだっていう。
Javaとかやるなら別だけど…
あれか、Pythonと一緒にやろうとしたからPythonライブラリの都合に引っ張られちゃったんだな!

650 :Name_Not_Found:2018/10/26(金) 21:02:05.71 ID:???.net
>>648
書いてて恥ずかしくならない?
読んでて赤面したわw

651 :641:2018/10/26(金) 21:35:04.99 ID:???.net
どうもありがとうございます
結果的にPythonスレとマルチポストになってしまっていたらごめんなさい。

>>647
PythonスレのRubyの方ですかね?
その節はありがとうございます。
初心者用というのはHTML5の初心者という事ですよね?
よく分かる〇〇とかいちばんやさしい〇〇だとか過去に読んだことあるんですが、その手の本ってパソコンそのものの初心者が対象なのか、
〇〇のコードを使ったらハンバーガーメニューが出せますとか、このコードを使ったらこういうレイアウトに出来ます。今流行りのスマホPC両対応のレスポシブなんちゃらのカッコいいホームページを作ろう、みたいな。
そういう本って理屈は置いておいて、カッコよさげなホームページが作れた。よかったね、っていう感じの本だから、
それぞれのコードの中身や用語の解説じゃないから結局提示されたcssのコピペだけで終わり訳もわからず応用が利かず結局何も身に付かなかったです。
オライリーからPythonの本が大量に出てるけどそんな感じの本があればいいんですが。

>>648
やっぱ甘えてますね、自分。
辛いけど、出来るようになりたいから読むしかないのかぁ。

652 :641:2018/10/26(金) 21:35:51.39 ID:???.net
>>649
Webサイト作りそのものには全く感心は無いんですが、Pythonを学ぶうちに作ったデータの可視化をWebでやりたくなりました。
Pythonを学んだら今までは怖かったJavaScriptも基本的な文法はPythonで書いた場合を考えながらやればJavaScriptでもSwiftでもObjective-Cも何となく理解出来るようになりました。
JavaScriptもWeb用のナニカじゃなくて、これもPythonと同じプログラム言語だと分かったのでおもしろくなってきたました。

XMLを弄るにもXPathが分かれば簡単に弄れそうなんですが、XPathそのものが難しい。
Chromeの開発者ツールの使い方も分からないままだし。

>>650
けど、正論だと思いました。


オライリーからHTML5という本が出てますけれど、7年以上前の本だからやめておいた方がいいでしょうか?


>>642 で読んでる本の最初のページにこんなイラストが載ってました。
https://i.imgur.com/H3vQCNy.jpg
まさに自分もこんな認識です。

653 :Name_Not_Found:2018/10/26(金) 22:05:29.26 ID:???.net
>>652
セレクタを覚えるなら、jQueryよりCSSを覚えた方が良い
jQuery拡張記法を覚えても何にもならん
https://triple-underscore.github.io/selectors4-ja.html

XPathは今でもCSSセレクタ以上の事が出来るが、日本語の資料は多くないので、初心者向きではないだろうな

654 :Name_Not_Found:2018/10/26(金) 22:10:26.33 ID:???.net
>>646
Array(10).length = 1; // これはsetterでは?

655 :Name_Not_Found:2018/10/26(金) 23:44:44.27 ID:???.net
getter, setterという場合、
Array(10).getLength();
Array(10).setLength(5);
などのようにメソッドの形を取る。

Array(10).length = 1;
は上のsetLengthとやることは同じだが、(実装はどうあれ)プロパティ形式を取っているのでsetterとは呼ばない。

なお説明に使っただけでArrayにgetLength、setLengthとあったメソッドは無い。

656 :Name_Not_Found:2018/10/27(土) 06:58:31.07 ID:???.net
TypedArrayのlengthはgetter,setterだが
Arrayのlengthは内部プロキシが特別に扱っている名前というだけ

657 :Name_Not_Found:2018/10/27(土) 08:54:32.87 ID:???.net
>>655
https://developer.mozilla.org/ja/docs/JavaScript/Reference/Operators/set

658 :Name_Not_Found:2018/10/27(土) 10:10:23.05 ID:???.net
>>657
Atrayのlengthはset/getが使えなかったときからある。だから>>656

659 :646:2018/10/27(土) 18:26:45.84 ID:???.net
漏れが、XPath を使うのは、CSS セレクターでできない場合だけ。
例えば、5ch の書き込み内のa タグを抜き出すなら、

このCSSセレクターでできるけど、
div.thread > div.post > div.message > span > a

a を含む、post_node だけを抜き出す場合、
div.message の子孫で、aタグを含むものがある場合、
そのaタグの祖先のdiv.post を抜き出す。
(自分の処理では、div.postを主体に処理している場合)

CSSセレクターでは、div.message div.post a

descendant は子孫、ancestor は祖先。
post_nodes = doc.xpath "//div[@class='thread']/div[@class='post']/div[@class='message']/descendant::a/ancestor::div[@class='post']"

子孫に何々要素がある場合の、その祖先を求めるとか、
条件が複雑で、CSSセレクターでは表せない場合だけ、XPathを使う

jQueryのCSSセレクター一覧表を見て、それでできなければ、XPathを使う

660 :Name_Not_Found:2018/10/27(土) 19:38:24.03 ID:???.net
:has擬似クラスが仕様に入ったからXPathの出番はますます無くなる

661 :Name_Not_Found:2018/10/27(土) 22:40:17.34 ID:???.net
>>660
これマジうれしい

662 :Name_Not_Found:2018/10/27(土) 23:59:35.53 ID:???.net
jQueryは:hasに独自で対応しているから、JavaScriptでは
もうXPathの出番はなくなってるね。

663 :Name_Not_Found:2018/10/28(日) 00:21:16.71 ID:???.net
XPathってJavaScript以外で使えたっけ?
jQueryで:hasが使えるならもういらないような

664 :Name_Not_Found:2018/10/28(日) 00:36:19.99 ID:???.net
>>663
なに言ってんだ各言語にライブラリ出てるよXPathくらい…

665 :Name_Not_Found:2018/10/28(日) 08:23:02.53 ID:???.net
>>658
その理屈はおかしい
lengthはProxyがない時代からある

666 :Name_Not_Found:2018/10/28(日) 11:37:15.18 ID:???.net
漏れは、Ruby のNokogiri で、XPath, CSS セレクターを使っている

667 :Name_Not_Found:2018/10/28(日) 13:38:53.56 ID:???.net
>>656
文盲かな?

668 :Name_Not_Found:2018/10/28(日) 13:39:15.20 ID:???.net
>>665だった。

669 :Name_Not_Found:2018/10/28(日) 14:38:20.99 ID:???.net
Proxy APIの話ではなくプロパティが設定されるときに働く
[[DefineOwnProperty]]内部メソッドをオーバーロードしてlengthを書き換えてることを
分かりやすく内部プロキシと言い換えただけなのにね

670 :Name_Not_Found:2018/10/28(日) 22:26:18.35 ID:???.net
漏れ、って久しく見ないな
懐かしい

671 :Name_Not_Found:2018/10/29(月) 09:06:25.00 ID:???.net
>>667-659
同じ言葉をそっくり>>658に返したいね

> Atrayのlengthはset/getが使えなかったときからある。だから>>656
setがなくても、setterとして機能があればsetterだろう
lengthプロパティ代入時に処理が働くのだから、setter以外にそれを実現する方法はない

ついでにいうと、>>655もおかしい
プロパティだからsetterじゃない、とかどの言語の話だ?

672 :Name_Not_Found:2018/10/29(月) 09:11:35.57 ID:???.net
>>669
>>654からどうしてその話が出てくるんだ?
おまえのいってるのは、
Array(1)[3] = 1;
だろう

673 :Name_Not_Found:2018/10/29(月) 10:27:51.41 ID:???.net
Proxyでのハンドリングもsetterと言うのならArray#lengthもsetterと呼んでいいと思うけど
普通JSでsetterって言ったらプロパティディスクリプタがアクセサタイプでsetにメソッドが入ってる状態を言うと思うけどな

674 :Name_Not_Found:2018/10/29(月) 10:29:06.09 ID:???.net
>>672
いや、数値文字列と、lengthの2種類ともを特別に扱ってるんだよ

675 :Name_Not_Found:2018/10/29(月) 12:34:14.87 ID:???.net
>>673
あなたのいう、setterとProxyの違いは何だ?
lengthは余所から書き換えられる場面は多々あるが、lengthそのものはProxyを使うほどの機能があるとは思えんのだが
http://www.ecma-international.org/ecma-262/9.0/#sec-properties-of-array-instances-length

676 :Name_Not_Found:2018/10/29(月) 19:36:10.52 ID:???.net
でlengthはなんて呼んだら良いの?
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/length
これも直した方が良いってこと?

677 :Name_Not_Found:2018/10/29(月) 19:41:22.88 ID:???.net
MDNはprototype経由せずDateやらArray やらから直接生やされたメソッドを静的なメソッドと表現したりクラスベースの人に配慮した柔軟な記述見かけるよね。

678 :Name_Not_Found:2018/10/30(火) 06:56:22.75 ID:???.net
>>675,676
その疑問は全てここまでに書かれてるよ
もう一度読み直してみて

679 :Name_Not_Found:2018/10/30(火) 08:34:44.71 ID:???.net
>>678
> [[DefineOwnProperty]]内部メソッドをオーバーロードしてlengthを書き換えてることを
> 分かりやすく内部プロキシと言い換えただけなのにね

これがProxyの条件か?
ただの内部 プロパティを書き換えるだけでProxy扱い
しかも、Array(19).length = 1; 時に [[DefineOwnProperty]] が書き換わらんし、到底理解できんな

680 :678:2018/10/30(火) 08:40:23.79 ID:???.net
> しかも、Array(19).length = 1; 時に [[DefineOwnProperty]] が書き換わらんし、到底理解できんな

訂正する
Array(19)[1] 以降が削除されるので、[[DefineOwnProperty]] は確かに書き換わる
しかし、他所のプロパティ [[DefineOwnProperty]] が書き換わるだけで、lengthプロパティはProxyの動きをしていない

681 :Name_Not_Found:2018/10/30(火) 09:16:03.64 ID:???.net
こういう事かな

const a = [];
a[0] = 1; // 668「a[0] はProxyなプロパティです」→OK
a.length = 0; // 668「a[0]を書き換えるa.lengthもProxyなプロパティです」→ん?

この場合、a.lengthを書き換えるa.fooを定義したら、a.fooもProxyになる
Proxyが感染していく

682 :Name_Not_Found:2018/10/30(火) 12:07:55.19 ID:???.net
hey YO! チェケラッチョ!

683 :Name_Not_Found:2018/10/30(火) 12:55:41.57 ID:???.net
>>680
大きな勘違いしてるね、Arrayのインスタンスオブジェクトはlengthと言う通常のプロパティを持っているが
それと同時に数値文字列と"length"という文字列のプロパティ設定に関して特別な振る舞いをするんだよ
つまりProxyのようなのはArrayのインスタンスの事であって、
そのプロキシは"length"プロパティアクセスがあると、間接的にlengthプロパティを設定して配列の要素を調整すると言う動作をするんだよ
ただし、setterとは違うという話

684 :Name_Not_Found:2018/10/30(火) 13:09:50.35 ID:???.net
ようそこまで内部動作把握してるな
こういう人はそんなの当然って言うんだけど大半の人はそんなの無理

685 :Name_Not_Found:2018/10/30(火) 14:08:55.83 ID:???.net
アニメスレに沸く小説板から来た設定厨を思い出しました。

686 :Name_Not_Found:2018/10/30(火) 19:02:56.34 ID:???.net
>>683
勘違いなどしていない
setterのトラップで内部プロパティが書き換わるだけ
setter以外のトラップが必要なら、それを示してくれ

687 :Name_Not_Found:2018/10/30(火) 19:11:18.70 ID:???.net
>>682
やっとわかった
ラッパーって言いたいのかw

688 :Name_Not_Found:2018/10/30(火) 19:19:02.36 ID:???.net
>>687
誰もわかってくれないからって自己レスするな

689 :Name_Not_Found:2018/10/30(火) 19:23:08.67 ID:???.net
>>669は確かにwrapperって感じだが、wrapperとsetterは両立出来るんだよなあ

690 :Name_Not_Found:2018/10/30(火) 20:13:36.59 ID:???.net
わかっててスルーしてるにきまっとるじゃろ

691 :Name_Not_Found:2018/10/30(火) 21:00:05.07 ID:???.net
ぶっちゃけ、>>654がsetterで実装できなくて、Proxyでなければ実装できない機能って何なの?

692 :Name_Not_Found:2018/10/30(火) 21:50:37.00 ID:???.net
>>686
勘違いというか、全く分かっていなかったんだね
実際Arrayオブジェクトのlengthはsetterではないということが話の肝

Arrayのlengthは普通のオブジェクト固有のプロパティだ
Object.getOwnPropertyDescriptor( Array(1), 'length' )
// {value: 1, writable: true, enumerable: false, configurable: false}

参考までにTypedArrayのlengthは共通親クラスから継承したgetterだ
Object.getOwnPropertyDescriptor( Uint8Array.__proto__.prototype, 'length' )
// {get: ƒ, set: undefined, enumerable: false, configurable: true}

ならArrayのlengthへ値を代入したときの振る舞いなどはどう説明するのかといえば、
Arrayオブジェクトのプロパティ設定のトラップでlengthを特別扱いしてるということだ
そしてそれはもちろんsetterとは違う

言い換えればArrayオブジェクトはそのただ1点を除いて普通のオブジェクトと何にも変わらない
[ 'a', 'b', 'c' ]は{ '0':'a', '1': 'b', '2': 'c', 'length': 3 } と全く違いはない
ただたった一つ、[[DefineOwnProperty]]内部メソッドの振る舞いが違う、
プロパティアクセス時に'length'と数字プロパティへの設定を特別に監視するということだけが
ArrayをArrayたらしめてる理屈

693 :Name_Not_Found:2018/10/30(火) 22:04:42.06 ID:???.net
>>680のこの行がそもそもだいぶトンチンカン
>>Array(19)[1] 以降が削除されるので、[[DefineOwnProperty]] は確かに書き換わる
[[DefineOwnProperty]]は内部「関数」なのだから、書き換わったりしない、呼ばれる対象
そしてlength要素に設定時に適宜配列のプロパティが消されるから呼ばれるのではなくて、
length要素設定時にこれが呼ばれたときに間接的にプロパティを消してる、因果が逆
因みにプロパティが消されるときに呼ばれるのは[[Delete]]
[[DefineOwnProperty]] はこの場合関わらない

694 :Name_Not_Found:2018/10/30(火) 23:07:23.33 ID:???.net
>>692
へー知らなかった

695 :Name_Not_Found:2018/10/30(火) 23:28:54.54 ID:ROO+RjWt.net
そもそも、length に設定するのが、おかしい。
意味不明のソースコード

普通は参照しかしない

696 :Name_Not_Found:2018/10/31(水) 01:25:47.55 ID:???.net
>>695
ザコは黙ってろ

697 :Name_Not_Found:2018/10/31(水) 11:52:21.98 ID:???.net
>>692
勉強になったわ

698 :Name_Not_Found:2018/10/31(水) 15:55:58.36 ID:???.net
new Int8Array([1,2,3]).__lookupGetter__('length')
//=> f length() { [native code] }
[1,2,3].__lookupGetter__('length')
//=> undefined

ほんまやTypedArrayのlengthにはGetter設定されてるけどArrayは無い

699 :Name_Not_Found:2018/10/31(水) 15:56:05.22 ID:???.net
だからtypeof new Arrayは'object'なんだよな
そこしか違いがないから

700 :Name_Not_Found:2018/11/01(木) 02:16:21.76 ID:???.net
大雑把にはわかっていたつもりだったけど
詳しい説明ありがたいわ

701 :Name_Not_Found:2018/11/02(金) 09:27:19.04 ID:33ufQNJG.net
jQueryの.nextUntil() をJavaScriptで書くのは難しいでしょうか?

702 :Name_Not_Found:2018/11/02(金) 11:56:52.88 ID:???.net
>>701
難しいかどうかはその人のスキルによるとしか。。。

703 :Name_Not_Found:2018/11/02(金) 13:12:13.08 ID:???.net
困難かという意味ではそうでもないかも
parentNodeのChildNodesを、その要素以降順に見ていくだけだから
ていうか、jQueryだってJSで書かれているわけだしね

704 :Name_Not_Found:2018/11/02(金) 14:27:31.10 ID:???.net
nextSibling

705 :Name_Not_Found:2018/11/02(金) 14:57:52.92 ID:???.net
質問を変えて、jQueryの.nextUntil()をDOM API以外のライブラリを使わずに
10行以内(セミコロン不使用、横80文字まで、普段やらない書き方を使うのなし)で
作れるでしょうか?だったらどう?

706 :Name_Not_Found:2018/11/02(金) 15:08:06.56 ID:???.net
まず親要素のquerySelectorAllで
セレクタにマッチする小要素を全部取り出しておく

目的の要素のnextSiblingが、上のマッチした要素群に含まれれば当たり
なければ次のnextSiblingを見る

なんとか80字でいけるか?

707 :Name_Not_Found:2018/11/02(金) 15:22:12.61 ID:???.net
全部取り出しておいてfilterしてもいいし、
ただ単に次の要素を見ていくだけのイテレータでもいい
5行くらいの関数で書けるんじゃない?

708 :Name_Not_Found:2018/11/02(金) 16:49:57.19 ID:???.net
function nextUntil(el, selector){
const result = [];
while(el = el.nextElementSibling){
if(selector && el.matches(selector)){
break;
}
result.push(el);
}
return result;
}

こんな感じか。matchesはIEで動かんからポリフィルを追加して
https://developer.mozilla.org/ja/docs/Web/API/Element/matches

709 :Name_Not_Found:2018/11/02(金) 18:30:13.65 ID:???.net
はー
matchesなんてあったんだな
勉強になる

710 :Name_Not_Found:2018/11/02(金) 20:12:43.52 ID:???.net
及川光秀

711 :Name_Not_Found:2018/11/03(土) 07:10:10.07 ID:???.net
function * nextUntil ( el, sel ) {
while ( el = el.nextElementSibling && ! el.matches( sel) )yield el
}

712 :Name_Not_Found:2018/11/03(土) 22:22:33.52 ID:6Ec8PRLb.net
>>708
上手く行きました。
凄いですね、こんなのを書けるなんて。
>>711
私にはレベルが高すぎて付いて行けません。
結果の取り出し方を教えて下さい。

713 :Name_Not_Found:2018/11/03(土) 22:44:24.52 ID:???.net
>>711は単なる技術マウントだから無視してよい。

714 :Name_Not_Found:2018/11/04(日) 02:57:07.43 ID:B7aXq2Tw.net
沖侑果 CMに抜擢!

萩原工業CM (ハミダセ、アミダセ篇 )
http://www.youtube.com/watch?v=LDSJwe6i1kU

萩原工業CM (グローバル・ハミダセ篇)
http://www.youtube.com/watch?v=RiJhTSMp_MI

萩原工業CM (開発・アミダセ篇)
http://www.youtube.com/watch?v=1xxgGGPQmQk

萩原工業CMメイキング映像 (萩原工業×STU48)
http://www.youtube.com/watch?v=EG591Nw3ErA

715 :Name_Not_Found:2018/11/04(日) 03:23:50.49 ID:???.net
技術マウントだからと言って無視するか、
技術を勉強するか

どちらを取るかね?

716 :Name_Not_Found:2018/11/04(日) 04:32:09.76 ID:???.net
>>712
>>711は代入演算子と論理積演算子の優先順位を間違えているから結果がバグっている。
修正してオプションのfilter足してjqueryのnextUntilの
http://js.studio-kingdom.com/jquery/traversing/next_until
のデモと同じことする使い方を
https://codepen.io/anon/pen/VVwdQB
に上げた。
しかし結果を配列でまとめて取り出す使い方しかしないなら
https://codepen.io/anon/pen/YRzvWa
みたいになりわざわざジェネレータ使う意味ないしこんなことするなら>>708のほうがいいな。

717 :Name_Not_Found:2018/11/04(日) 06:28:04.76 ID:???.net
一番いいのはjQueryを使うこと

718 :Name_Not_Found:2018/11/04(日) 10:01:07.40 ID:plxWY2l1.net
>>716

=>
...
yield
など知らない文法ですが、テストしたら動きました。
大変参考になりました。このコードが理解出来るように勉強します。

ところで707 nextUntilを応用してnextAllを作ってみたのですが、これで良いでしょうか?

function nextAll(el, selector) {
const result = [];
while (el = el.nextElementSibling) {
result.push(el);
}
return result;
}

一つ質問ですが、const指定しているresult変数に値を代入しても良いのですか?
定数なら変更してはいけないような印象を受けるのですが。

719 :Name_Not_Found:2018/11/04(日) 10:14:41.54 ID:???.net
いいよ

720 :Name_Not_Found:2018/11/04(日) 10:52:13.08 ID:???.net
>>718
再代入はされてない

721 :Name_Not_Found:2018/11/04(日) 11:18:37.07 ID:plxWY2l1.net
>>720
良く分からないのですが、
C言語などならconst指定があると値を代入出来ませんよね。
JavaScriptのconstはそうでは無いのですか?

722 :Name_Not_Found:2018/11/04(日) 11:20:32.34 ID:???.net
>>721
result = 1;
で正しくエラーになる

723 :Name_Not_Found:2018/11/04(日) 12:15:16.17 ID:plxWY2l1.net
>>722
ではJavaScriptにはCやC++のconstに相当するものはありますか?
つまり一切変更出来ない定数。

724 :Name_Not_Found:2018/11/04(日) 13:15:33.79 ID:???.net
CやC+に一切変更ができないconstなんかありません

725 :Name_Not_Found:2018/11/04(日) 13:18:38.69 ID:???.net
chromeだけど、dataスキームで新しいタグ開いてhtmlを表示させたいんだけど
data:text/html;云々をwindow.openするとabout:blankになってしまうたすけて
(data:text/html;云々を直接urlボックスにいれて移動、は表示される)

726 :Name_Not_Found:2018/11/04(日) 14:00:44.03 ID:???.net
>>725
再現コードをjsfiddleへUP

727 :Name_Not_Found:2018/11/04(日) 14:11:19.81 ID:???.net
>>723
一切変更出来ないとは?
変更不可対象を明確にしろ

728 :Name_Not_Found:2018/11/04(日) 14:36:36.33 ID:???.net
constは名前に対して働くもので値に対して働くものではない

729 :Name_Not_Found:2018/11/04(日) 15:24:02.74 ID:???.net
>>723
そもそもがcのconst勘違いしてないか。
プリミディブ値ならjsのconstでも同じように使えるし、
cではjsのconst OBJ = {a: 1, b: {c: 2}};みたいにオブジェクト直接入れるみたいなことはそもそも出来ない。
ポインタ使うにしたってOBJ.aやOBJ.b.cなどメンバーを書き換えられてしまうことは同じ。

まあやりたいことは分かる…気がする…
以下にdeepFreezeの実装例出てるから参考にしてみたら?
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Object/freeze

こういうことでしょ?違う?
https://codepen.io/anon/pen/EQxJKB

730 :Name_Not_Found:2018/11/04(日) 15:24:32.56 ID:???.net
>>726
いろんなサイトでconsole開いて実行したので、jsfiddleのコードに書いて実行してしまうと若干挙動が違う気がするので
具体的には
window.open('data:text/html;charset=utf-8,'+encodeURIComponent('<!DOCTYPE html><html lang="en"><body>hoge</body></html>'));
を適当なサイトでコンソール開いて実行
一応jsfiddleでもやってみたけどポップアップ禁止みたいなのが出てきた
https://jsfiddle.net/pLdojb9w/
ポップアップ許可するとabout:blank

731 :Name_Not_Found:2018/11/04(日) 15:29:06.49 ID:???.net
>>729
× https://codepen.io/anon/pen/EQxJKB
https://codepen.io/anon/pen/EOxJKB

732 :729:2018/11/04(日) 15:31:07.23 ID:???.net
ちなみに用途としては
とあるサイトの画像urlだけをスクレイピングして
htmlで新しいタブに<img src=>みたいに単純表示したいだけ
今までconsoleで<img src="">を出力してコピペ→テキストエディタでhtmlで新規保存
ブラウザで開いてウェブ丸ごと保存ってやってたのでめんどくさくなった
(別のスクリプトやアプリで画像urlだけ抽出してダウンロードしたらいいのではと思うし
都合が良いところはそれでやってるけど)

733 :729:2018/11/04(日) 15:39:44.04 ID:???.net
あと、document.writeで上書き版もしたけど
ajaxでページロードしてる感じのとこだと続きの画像表示したいときに不便だった

734 :Name_Not_Found:2018/11/04(日) 17:21:46.38 ID:???.net
dataURI直で新規タブ開いて中身反映されないのはセキュリティ理由によるもの
blob→objectURL化が必要
const blob = new Blob([ '<!DOCTYPE html><html lang="en"><body>hoge</body></html>' ], { type: 'text/html' });
const url = URL.createObjectURL(blob);
window.open(url);

735 :729:2018/11/04(日) 17:45:38.91 ID:???.net
>>734
で、できたー!
画像も問題なく表示され
ありがとうございました

736 :Name_Not_Found:2018/11/04(日) 18:43:51.03 ID:plxWY2l1.net
>>729
解説ありがとうございました。
JSのオブジェクトの挙動が理解出来ました。
値は変更出来ないけれど、メンバを変更する事は
出来るんですね。

737 :Name_Not_Found:2018/11/04(日) 19:09:43.38 ID:???.net
>>734
勉強になった

738 :Name_Not_Found:2018/11/04(日) 21:50:56.98 ID:???.net
漏れは、Ruby で、selenium webdriver, Nokogiri を使って、
5ch の書き込み内から、画像リンクだけを取り出して、
Nokogiri で、img タグを構築して、そのsrc 属性に設定して表示している

ブラウザに、5ch のスレを表示して、結果はそれとは異なる、新しいタブに表示している

driver.execute_script "window.open()" # 新しいタブを開く
driver.switch_to.window ( driver.window_handles.last ) # 新しいタブへ移動する

ERB みたいな、HTML 内にRuby プログラムを書ける、
埋め込みテンプレートを使えば、もっと簡単にできるのだろうけど

739 :Name_Not_Found:2018/11/04(日) 21:56:18.15 ID:???.net
jsならコンソールやブックマークレットでできることをそんな大がかりにしてバカみたい。
で、何をやってるかと思えばjs呼び出してるだけwww
そりゃそうだよなruうんこbyなんてブラウザで動かないもんなwwwww

740 :Name_Not_Found:2018/11/04(日) 22:02:25.28 ID:???.net
>>739
> そりゃそうだよなruうんこbyなんてブラウザで動かないもんなwwwww

いつの時代の話してるんだよwww

Ruby2.0はChromeブラウザでネイティブに動くようになりそう
http://hoshi.air-nifty.com/diary/2012/05/ruby20chrome-d6.html

741 :Name_Not_Found:2018/11/04(日) 22:06:31.07 ID:???.net
>>740
皮肉キツいぜwwwww

742 :Name_Not_Found:2018/11/05(月) 03:11:29.05 ID:???.net
echo.jsより容量小さい画像遅延読み込みのスクリプトってあんの?

743 :Name_Not_Found:2018/11/05(月) 06:26:31.41 ID:???.net
>>736
変数名と紐付いている値を更新することはできないというだけ
その値自体にはなんの制約もない

744 :Name_Not_Found:2018/11/05(月) 06:57:00.55 ID:???.net
RubyみたいなポンコツエンジンをNative Clientで走らせるとか愚の骨頂の考えだった
WasmにコンパイルしてJSエンジン上で走らせる方がよっぽどパフォーマンス出る可能性がある

745 :Name_Not_Found:2018/11/06(火) 22:07:50.79 ID:G7U6fKUW.net
jQueryだと
$(window).on('resize', data, func);
のようにdataを与える事が出来ますよね。
それを
window.addEventListener('resize', data, func);
とは出来ませんが、どうやれば同じようにdataをfuncにパス出来ますか?

746 :Name_Not_Found:2018/11/06(火) 22:26:04.96 ID:???.net
クロージャで

747 :Name_Not_Found:2018/11/06(火) 22:36:13.12 ID:G7U6fKUW.net
>>746
レスありがとうございました。
>クロージャで
なるほど。
では、jQueryの場合、スコープが異なるfuncになぜデータを渡せるんですか?

748 :Name_Not_Found:2018/11/06(火) 22:54:14.02 ID:???.net
>>747
内部的にクロージャーを使っているから

749 :Name_Not_Found:2018/11/06(火) 22:56:17.72 ID:???.net
えっ、なにが疑問なのかよく分かんない…

function chinko(data) {
return 'I love ' + data;
}

function manko(func, data) {
if (!data) data = func.name;
console.log(func(data));
}

let data = 'unko';
manko(chinko); //=> "I love chinko"
manko(chinko, data); //=> "I love unko"

750 :Name_Not_Found:2018/11/06(火) 23:02:33.42 ID:???.net
>>749
> えっ、なにが疑問なのかよく分かんない…

なんでクロージャーがでてきたのか考えてみたら?
回答する側がアホの事例

751 :Name_Not_Found:2018/11/06(火) 23:30:28.38 ID:???.net
>>745みたいな疑問が浮かぶ人はjQueryのソースを読んでみるべきだと思う
勉強になるぞ

752 :Name_Not_Found:2018/11/06(火) 23:35:27.27 ID:???.net
>>750
教えてよ。答えらんないの?

753 :Name_Not_Found:2018/11/07(水) 00:44:22.26 ID:???.net
>>752
お前が、>>749のコードにクロージャーを取り入れて
書き直したら教えげあげようw

754 :Name_Not_Found:2018/11/07(水) 00:56:05.92 ID:???.net
こう?

function chinko(data) {
return function() {
return 'I love ' + data;
}
}

function manko(func) {
console.log(func());
}

let data = 'unko';
manko(chinko(data)); //=> "I love unko"

755 :Name_Not_Found:2018/11/07(水) 01:23:52.55 ID:???.net
違う。クロージャーはmankoの引数にしろ

756 :Name_Not_Found:2018/11/07(水) 01:24:57.72 ID:???.net
そしてdataはクロージャーの引数にしろ

757 :Name_Not_Found:2018/11/07(水) 02:00:00.12 ID:???.net
もういいから教えてよ。
コードで示してくれりゃ分かるのにめんどくさい。
質問に回答するより煙に巻いて指示するのが好きなの?

758 :Name_Not_Found:2018/11/07(水) 02:09:53.52 ID:???.net
はい。大好きです(笑)

759 :Name_Not_Found:2018/11/07(水) 02:21:09.20 ID:???.net
質問スレに何しに来てんだよ……
こう?

function chinko(data) {
return function() {
return 'I love ' + data;
}
}

function manko(func, data) {
if (!data) data = func.name;
console.log(func(data)());
}

let data = 'unko';
manko(chinko); //=> "I love chinko"
manko(chinko, data); //=> "I love unko"

760 :Name_Not_Found:2018/11/07(水) 02:31:49.49 ID:???.net
var clos = function closure( data ) {
return function( ) {
return 'I love ' + data;
}
}

function caller( func ) {
console.log( func() );
}

var data = 'cat';
caller( clos( data ) ); //=> "I love cat"

761 :Name_Not_Found:2018/11/07(水) 02:55:16.89 ID:???.net
>>760
>>754となにが違うの?「違う」って言われたんだけど>>755>>756

762 :Name_Not_Found:2018/11/07(水) 03:21:23.96 ID:???.net
>>745より

> では、jQueryの場合、スコープが異なるfuncになぜデータを渡せるんですか?
>
> jQueryだと
> $(window).on('resize', data, func);
> のようにdataを与える事が出来ますよね。

↑ この場合、jQueryのfuncは以下のように定義しますよね?

function func(event, data) {
  console.log('I love' + data);
}


でも、>>759を見ると、以下のような書き方でjQueryの場合と全然違います。
何故でしょうか?jQueryはどんなマジックを使っているのでしょうか?疑問です。
function chinko(data) {
  return function() {
    console.log('I love ' + data);
  }
}

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

>>749
わかったか? お前は何が疑問なのかよくわからないって言ったが、
これが疑問なんだよ。

763 :Name_Not_Found:2018/11/07(水) 06:30:36.29 ID:???.net
>>757
ここは自ら学ぶスレだから
モロ回答はしない
そういうのは知恵袋なり他にたくさんある
ここは2chだからな

764 :Name_Not_Found:2018/11/07(水) 08:05:06.49 ID:???.net
>>745
.on() が内部でコールバック関数を渡す前にクロージャでラップしてるから
ちなみに、>>762はjQueryの動きになってない上、コールバック関数を渡す実装もしていない無視して良い
http://api.jquery.com/on/

最も、addEventListenerなら、handleEvent付きのオブジェクトを指定する方がスマートだと思うが

765 :Name_Not_Found:2018/11/07(水) 08:52:20.84 ID:???.net
いいオチがつきましたね

766 :Name_Not_Found:2018/11/07(水) 11:44:49.22 ID:???.net
function hoge(){ /*この中に重複作業をまとめたいときがある*/ }
例えば
function hoge(x,y){
function sum10(x) { return x+10; }
return [sum10(x),sum10(y)];
}

このsum10は汎用なのでhogeの外にsum10を書いても良いような気がしますが
仮に、hogeだけでしか使わないような関数でも
外に出しておいた方が良いのでしょうか?
今まで、単に見た目の問題なのかな?と思い、適当にやっていたのですが

767 :Name_Not_Found:2018/11/07(水) 11:45:31.97 ID:???.net
訂正
>hogeだけでしか
>hogeの中だけでしか

768 :Name_Not_Found:2018/11/07(水) 12:03:24.66 ID:???.net
>>766
一回しか使うかどうかで、関数にするかどうかを決めるんじゃない。
また同じ処理だからって言うだけで、関数にするのでもない

長いコードがあったとき、読むのが大変になるから、
その中の一部に適切な名前をつけて関数にすることで、名前だけから
やってることがわかるから中を読まなくていい。
読まなくていいから長いコードを読むのが楽になった!
という目的のために、関数にするんだよ

1回しか使わなくても、長いコードを読むのが楽になるなら
関数にするべきだし、関数にしたからと言って、長いコードを読む時に
関数の中まで見ないとやってることがわからないなら、
それは関数にするやり方間違ってる

読むべきコードを減らすのが関数にする目的

だから独自で作るよりも既存のライブラリを使ったほうが良いという話にもつながる
独自で作ると少なくとも一回は中を読まないといけない。
既存のライブラリは、たいてい中を読まないで使ってるだろう?

769 :Name_Not_Found:2018/11/07(水) 12:19:30.73 ID:???.net
関数ってよりサブルーチンとかプロシージャっぽい説明だね。

770 :Name_Not_Found:2018/11/07(水) 12:25:56.81 ID:???.net
>>769
関数とサブルーチン・プロシージャーの違いは?

どこが後者の話になってるのか?

771 :Name_Not_Found:2018/11/07(水) 12:44:11.43 ID:???.net
何か引数を受けて、何かしらの処理をし、何かを返すのがfunction(関数)

プログラムの中で一定の処理をひとまとまりにしてモジュール化したものを
メイン処理と対比して呼ぶのがsub routine(サブルーチン)

プログラムの中で、サブルーチンを作るために作られた
何も返さない関数がprocedure(プロシージャ)


であってるかな
横からですが

772 :Name_Not_Found:2018/11/07(水) 12:56:11.97 ID:???.net
んにゃ、合ってない
それらの用語は各言語仕様やコミュニティ毎に定義されている

773 :Name_Not_Found:2018/11/07(水) 13:23:52.42 ID:???.net
本質的にはあってんじゃない?
いろんな方言的解釈があるのはその通りだが

774 :Name_Not_Found:2018/11/07(水) 14:00:38.33 ID:???.net
で、どこが後者の話になってるの?

775 :Name_Not_Found:2018/11/07(水) 14:30:07.56 ID:???.net
> 読むべきコードを減らすのが関数にする目的

???

['80', '9', '700', 40, 1, 5, 200]
.sort((a, b) => a - b);

776 :Name_Not_Found:2018/11/07(水) 14:33:41.17 ID:???.net
>>775
それもsortの処理を読まなくてすんでますね。

例え1回しか使わなくても、そうすべきなんですよ

777 :Name_Not_Found:2018/11/07(水) 14:47:22.52 ID:???.net
>>776
そうすべき?
じゃあそうではない、減らす前の関数を使ってないダメなコードとやらを見せてください。

778 :Name_Not_Found:2018/11/07(水) 14:52:27.59 ID:???.net
>>777
じゃあsort関数の中身をここにコピペして

779 :Name_Not_Found:2018/11/07(水) 15:04:11.21 ID:???.net
sort関数ではなくsort関数の引数に渡す関数の話をしています。
>>771によると、
> 読むべきコードを減らすのが関数にする目的
なのでしたね。
どういうことか説明してください。

780 :Name_Not_Found:2018/11/07(水) 15:13:40.55 ID:???.net
>>779
sort関数に渡す引数?
(a, b) => a - b のこと?

なにを突っかかってきてるのか知らんが、
const byAsc = (a, b) => a - b;
const byDesc = (a, b) => b - a;
みたいなの並び替えアルゴリズムとして関数化しておけば、
aからbを引いて・・・ってどういうこと?って
もう読まなくてすみますね。


['80', '9', '700', 40, 1, 5, 200].sort(byAsc);
計算部分を読まなくてすむから楽になった!

781 :Name_Not_Found:2018/11/07(水) 15:28:58.55 ID:???.net
(a, b) => a - bは既に関数。それは関数に名前をつけているだけ。
関数化www

782 :Name_Not_Found:2018/11/07(水) 15:30:23.11 ID:???.net
だから関数に名前つけるって言ってるじゃん
バカなのかな?

783 :Name_Not_Found:2018/11/07(水) 15:30:52.82 ID:???.net
> その中の一部に適切な名前をつけて関数にすることで、名前だけから

784 :Name_Not_Found:2018/11/07(水) 15:36:40.08 ID:???.net
訳:「読むべきコードを減らすのが関数にする目的」というのは嘘でしたすみません!「読むべきコードを減らすのが関数に名前をつける目的」でした!あと関数化とかいうオレオレ用語で混乱させてしまってすみません!

こうかな

785 :Name_Not_Found:2018/11/07(水) 15:37:20.51 ID:???.net
いや違うな。名前をつけて関数化したんだから
読むべきコードが減ってる。

重要なのは読むべきコードを減らすこと。

786 :Name_Not_Found:2018/11/07(水) 15:37:50.18 ID:???.net
いやはや、また>>784はいつものキチガイなんだろうねw

787 :Name_Not_Found:2018/11/07(水) 15:42:58.80 ID:???.net
>>775から>>780にするのがとこが「名前をつけて関数化」なの?
元々関数。名前をつけているだけ。

788 :Name_Not_Found:2018/11/07(水) 15:45:40.86 ID:???.net
それは関数じゃなくてアロー関数
重要なのは読まなくて良いコードを増やすことなんだが、
そっちへのレスがないってことは、逃げてんだね

789 :Name_Not_Found:2018/11/07(水) 15:46:35.31 ID:???.net
>>787
お前は他人に謝らせてSNSにアップして炎上する
コンビニ客のマネはやめたほうが良いよw
恥ずかしい

790 :Name_Not_Found:2018/11/07(水) 15:51:56.72 ID:???.net
>>788
>>775の通り元々
> 読むべきコードを減らすのが関数にする目的
についての話。
これについては降参逃亡ということですねw

> それは関数じゃなくてアロー関数

関係ありませんwww
['80', '9', '700', 40, 1, 5, 200]
.sort(function (a, b) {return a - b;});

話はぐらかそうとしてドツボwwww

791 :Name_Not_Found:2018/11/07(水) 17:14:19.84 ID:D6OVyDfn.net
>>788
なんで?読めばいいじゃん

792 :Name_Not_Found:2018/11/07(水) 17:53:16.41 ID:???.net
>>780
byAscよりもアロー関数ベタ書きのほうが分かりやすい人多いと思うよ
もし.sort(降順)とかにすればわかりやすいけど、それでも降順関数の中身確認したくなると思うけどな

793 :Name_Not_Found:2018/11/07(水) 17:53:56.85 ID:???.net
.replace().replace().replace()....replace地獄になります
クールな書き方をおしえてください

794 :Name_Not_Found:2018/11/07(水) 17:56:48.24 ID:???.net
単なる数値ではないソートの場合に名前がめっちゃ長くなりそう

795 :Name_Not_Found:2018/11/07(水) 18:04:42.39 ID:D6OVyDfn.net
>>793
第二引数を関数にして中でゴニョゴニョするとか

796 :Name_Not_Found:2018/11/07(水) 18:35:54.90 ID:???.net
>>793
[
  ['私', '拙者'],
  ['シッコ', 'ウンコ'],
  ['マンコ', 'チンコ'],
  ['好き', '嫌い'],
].reduce((acc, [oldWord, newWord]) => acc.replace(oldWord, newWord), '私は、シッコとマンコが好きです。');
//=> "拙者は、ウンコとチンコが嫌いです。"

797 :Name_Not_Found:2018/11/07(水) 18:57:11.04 ID:???.net
それでもいいけどreplacer関数作って渡す方が筋がいいかもな。

798 :Name_Not_Found:2018/11/07(水) 19:27:20.73 ID:???.net
>>792
まあ、そこは本質的なところではないんでどうでもいいんだわw
バカに付き合ってあげただけ

重要なのは、読むべきコードを減らすのが関数にする目的
だ〜れも、なんでもかんでも関数にしろとか言ってない

関数にする基準の話をしてるところに
重箱おじさんが連れたので、つついてあげただけw

799 :Name_Not_Found:2018/11/07(水) 19:31:48.74 ID:???.net
バカ「バカに付き合ってあげただけ」
重箱つつかれたのはお前ww

800 :Name_Not_Found:2018/11/07(水) 19:33:30.33 ID:???.net
読むコード減らすべきおじさん「読むコード減らす」

まで読んだ

801 :Name_Not_Found:2018/11/07(水) 19:37:20.82 ID:???.net
面白いように反応してくれるなw

で、いちばん重要な「読まなくて良いコードを増やすこと」には
ほら、反論できないでしょ?w

そういうとこやで

802 :Name_Not_Found:2018/11/07(水) 19:40:26.32 ID:???.net
>>788
>>775の通り元々
> 読むべきコードを減らすのが関数にする目的
についての話。
これについては降参逃亡ということですねw

> それは関数じゃなくてアロー関数

関係ありませんwww
['80', '9', '700', 40, 1, 5, 200]
.sort(function (a, b) {return a - b;});

話はぐらかそうとしてドツボwwww

803 :Name_Not_Found:2018/11/07(水) 19:50:57.64 ID:???.net
すぐ喧嘩するなお前ら

804 :Name_Not_Found:2018/11/07(水) 19:51:16.90 ID:???.net
>>802
ハッハッハ、反論無しで降参逃亡ということだったかwww

だから読まなくて良いコードを増やすことについては何も言わなかったんだな

805 :Name_Not_Found:2018/11/07(水) 19:51:48.97 ID:???.net
>>803
頭が悪いんだからしょうがないよw

読まなくて良いようにすることに重要性がわかってないんだから

806 :Name_Not_Found:2018/11/07(水) 19:52:31.92 ID:???.net
>>801
重要じゃない

807 :Name_Not_Found:2018/11/07(水) 19:52:51.85 ID:???.net
自演始めたw

808 :Name_Not_Found:2018/11/07(水) 19:54:05.99 ID:???.net
ワロタ
読まなくていいようなこと、そもそも書くなよw
んでそんなもの増やすなw
スクリプト言語なんだから

809 :Name_Not_Found:2018/11/07(水) 19:59:59.22 ID:???.net
こんなゲームにマジになっちゃってどーするの式逃亡か?w

810 :Name_Not_Found:2018/11/07(水) 20:10:42.52 ID:???.net
>>795-796
ありがとうございます
同じ文字の複数置換がしたかったのでnew RegExpで795しました
あと他にreplaceの第二引数でreplacerも試みたのですが
やり方が悪かったのか今度はif地獄になってしまったので、
根本的に変えて
((str,
reg = new RegExp('[abcd/!/"]','g'),
sub = {
'a':'あ',
'b':'B',
'c':'C',
'd':'D',
'!':'?',
'"':'\''
}) => str.replace(reg,old=>sub[old])
)('abbcdd!"');
// あBBCDD?'
としましたが、見難かったのと
objectのプロパティ名に!とか"とか使わないほうがいい気がしたのでこちらは諦めました

811 :Name_Not_Found:2018/11/07(水) 20:16:54.30 ID:???.net
解決オメ!

812 :Name_Not_Found:2018/11/07(水) 20:32:11.26 ID:???.net
>>810
見にくいか?

'abbcdd!"'.replace(/[abcd/!/"]/g, old => ({
'a': 'あ',
'b': 'B',
'c': 'C',
'd': 'D',
'!': '?',
'"': '\'',
}[old]));
// あBBCDD?'

813 :Name_Not_Found:2018/11/07(水) 20:35:20.25 ID:???.net
>>812
訂正
'abbcdd!"'.replace(/[abcd!\"]/g, old => ({
'a': 'あ',
'b': 'B',
'c': 'C',
'd': 'D',
'!': '?',
'"': '\''
}[old]));
// あBBCDD?'

814 :Name_Not_Found:2018/11/07(水) 20:38:09.90 ID:???.net
>>813
ごめん再訂正
'abbcdd!"'.replace(/[abcd!"]/g, old => ({
'a': 'あ',
'b': 'B',
'c': 'C',
'd': 'D',
'!': '?',
'"': '\''
}[old]));
// あBBCDD?'

815 :Name_Not_Found:2018/11/07(水) 20:52:34.68 ID:???.net
毎度思うけど、頭が硬いと思う

'abbcdd!"'.replace(/[abcd!"]/g, old => ({
 'a': 'あ', 'b': 'B', 'c': 'C', 'd': 'D', '!': '?', '"': '\''
}[old]));
// あBBCDD?'

改行しろって言われたから、改行してます
理由?知りません。って言いそうだわw

この程度ならこれでいいけどな

const data = { 'a': 'あ', 'b': 'B', 'c': 'C', 'd': 'D', '!': '?', '"': '\'' };
'abbcdd!"'.replace(/[abcd!"]/g, from => data[from]);

816 :Name_Not_Found:2018/11/07(水) 21:03:21.88 ID:???.net
オブジェクトの部分は勝手にコード整形で改行展開されちゃうわ。
全部手動でコードのレイアウト()やってんならそれでいいけどw

817 :Name_Not_Found:2018/11/08(木) 00:16:49.04 ID:???.net
>>816
なんて整形ツール?

今どきデフォルトで見にくく整形するツールがあるとはね
有名所のスタイルチェックツールのデフォルト or 推奨設定では
問題ない書き方なのに

818 :Name_Not_Found:2018/11/08(木) 01:27:28.53 ID:???.net
整形ツールはPrettier
これはVSCodeのプラグイン経由で使ってるわ。デフォルトで使ってるはずだけどこれは展開されるな。
ESLintも使っててチームのスタイルガイドが当たるがこっちも展開されてる。
rule設定で
https://eslint.org/docs/rules/object-curly-newline
の"ObjectExpression"が"always"になってんじゃねえかな。
今確認できんが。

819 :Name_Not_Found:2018/11/09(金) 00:05:48.65 ID:k4MX0uF/.net
【環境】 Win7-Pro、主にGoogleChrome(たまにFirefox)
【期待する結果】 文字列型オブジェクトのキー値の参照

例えば obj = {x:100, y:200, 'font-size':16} とあったときに、x は obj.x で 100 と
参照できるのですが 'font-size' のようなキーはどうすれば参照できますか?

そのまま obj.'font-size' とすると
Uncaught SyntaxError: Unexpected string というエラーになります。

820 :Name_Not_Found:2018/11/09(金) 00:09:05.33 ID:???.net
>>820
キミに任せた

821 :Name_Not_Found:2018/11/09(金) 00:44:04.87 ID:???.net
var obj = { x:100, 'font-size':16 };

console.log( obj.x, obj[ 'font-size' ] ); //=> 100 16

822 :Name_Not_Found:2018/11/09(金) 01:00:09.37 ID:k4MX0uF/.net
>>821
ありがとうございます

823 :Name_Not_Found:2018/11/09(金) 01:19:22.14 ID:???.net
ごくろう

824 :Name_Not_Found:2018/11/09(金) 02:34:46.40 ID:???.net
偉そうな丸投げ君

825 :Name_Not_Found:2018/11/11(日) 23:27:20.76 ID:???.net
関数内の変数は関数が終了するとメモリ開放されるようですが
クロージャ内でも同様でしょうか?
hogeは他から参照はされていません

(function(){
var hoge = 'abcde';
}());

826 :Name_Not_Found:2018/11/12(月) 06:46:35.75 ID:???.net
ES仕様にはWeak*系やSABを除いてCGやメモリの定義はない
基本的にJSはメモリを回収しなくても仕様違反とはならないし、
そのタイミングや挙動に関しては完全にブラウザ・実行系依存だから
このスレで聞くのは間違ってる

827 :Name_Not_Found:2018/11/12(月) 11:15:34.20 ID:???.net
> そのタイミングや挙動に関しては完全にブラウザ・実行系依存だから
> このスレで聞くのは間違ってる

はて? このスレはES仕様限定でブラウザ・実行系の話は禁止でしたっけ?
ならDOM APIの話も禁止ですな。

828 :Name_Not_Found:2018/11/12(月) 12:49:02.11 ID:???.net
ESにもW3C/WHATWGにも無いなら
ブラウザの名前くらい示してくれないと答えようが無い

829 :Name_Not_Found:2018/11/12(月) 13:11:46.84 ID:???.net
__proto__みたいに仕様のほうが追認することもある(あった)から……

830 :Name_Not_Found:2018/11/12(月) 13:24:35.78 ID:???.net
MathJaxの質問です。
MathJaxのサードパーティーによる追加機能である XyJax を追加したいですが、追加方法が分かりません。

ヘッダには、


script type="text/x-mathjax-config">
MathJax.Hub.Config({
TeX: { extensions: ["AMSmath.js", "AMSsymbols.js", "http://sonoisa.github.io/xyjax_ext/xypic.js"] },
tex2jax: { inlineMath: [['$','$'], ["\\(","\\)"]] }
});
/script>
script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS_CHTML">
/script>


と書いたのですが、上手く行きません
どうしたらいいですか?

831 :Name_Not_Found:2018/11/12(月) 13:25:36.39 ID:???.net
注意
< script と書き込もうとすると5chから書き込めないといわれたので、
わざと左三角括弧< を削除しました

832 :Name_Not_Found:2018/11/12(月) 13:31:44.12 ID:???.net
>>830
それ作った人はなんて言ってるの?

833 :Name_Not_Found:2018/11/12(月) 13:54:55.71 ID:???.net
>>832
だから、書いてある通りにやって出来ないから聞いてんだろ
一々低次元なところからスタートするな低脳
ってかお前みたいなレスしてる奴が正解を出せるわけがないんだからアホは黙っとけ

834 :Name_Not_Found:2018/11/12(月) 14:00:58.58 ID:???.net
>>833
ライブラリスレで聞けや低脳
JavaScript ライブラリ総合質問所 vol.5
https://mevius.5ch.net/test/read.cgi/hp/1465399470/

835 :Name_Not_Found:2018/11/12(月) 14:18:14.16 ID:???.net
>>833
いや
それを書いた人に言ったらなんて返ってきたのかと
まさか聞いてないなんて思わんし(・∀・)

836 :Name_Not_Found:2018/11/12(月) 16:25:36.47 ID:???.net
無能ってすぐ人に答えを求めるよな
https://medaka.5ch.net/test/read.cgi/prog/1540885252/

837 :Name_Not_Found:2018/11/12(月) 16:26:54.54 ID:???.net
無能ってすぐ人に答えを求めずに時間無駄にするよな
https://mevius.5ch.net/test/read.cgi/tech/1540894449/

838 :Name_Not_Found:2018/11/12(月) 21:05:32.87 ID:???.net
>>826
ではどこで聞けばいいでしょうか?
メジャーなブラウザ、一般的(曖昧ですが)な場合だけでいいです

と言いたいところですが解決しましたのでもういいです

839 :Name_Not_Found:2018/11/12(月) 21:27:34.42 ID:???.net
示されてる例がクロージャじゃない件

840 :Name_Not_Found:2018/11/12(月) 21:29:51.34 ID:???.net
>>826は答えられないからそう言ってるだけ

841 :Name_Not_Found:2018/11/12(月) 22:02:53.81 ID:???.net
>>839
そうなんですか
幾つかのサイトからコピペですが、忠告ありがとう

842 :Name_Not_Found:2018/11/12(月) 22:21:44.40 ID:???.net
IIFEの例じゃないの?letの普及で役割を終えた。

843 :Name_Not_Found:2018/11/13(火) 06:47:42.27 ID:???.net
>>825
メジャーなエンジン実装で言うと
関数が終了したら解法ではなく
定期的に全ての要素を見て回って
ルートから辿れなければ解法の方が近い
実際は別言語間との循環参照だったり
非常にややこしいが
基本的に同期的には開放しない

844 :Name_Not_Found:2018/11/13(火) 06:54:35.61 ID:???.net
基本的に同期的には開放しないっていうのは
開放しないってことですか?

845 :Name_Not_Found:2018/11/13(火) 08:50:47.42 ID:???.net
えっ?今?w 今それ解放する?www って時に解放する。

846 :Name_Not_Found:2018/11/13(火) 09:09:49.29 ID:???.net
>>844
>>838で解決した質問を継続するなと
解決後にどや顔回答を期待して解決したふりかね?

847 :Name_Not_Found:2018/11/13(火) 11:06:07.08 ID:???.net
ここは質問するのも自由だし回答するのも自由
他人に口出す必要はない

848 :Name_Not_Found:2018/11/13(火) 11:36:08.94 ID:???.net
>>845
つまり解放するんですよね?
なんで、非同期で解放すると言えなかったんでしょうか?

849 :Name_Not_Found:2018/11/13(火) 11:59:01.84 ID:???.net
>>848
分かんない。俺>>843じゃないし。
質問が関数が終了するとメモリ開放されるかどうかを問うているからじゃないの。

850 :Name_Not_Found:2018/11/13(火) 12:38:14.25 ID:???.net
>>848
ブラウザの任意のタイミングだからね
あんまりこういうタイミングで開放されるだろうとか期待するもんじゃないよ

851 :Name_Not_Found:2018/11/13(火) 19:33:02.88 ID:???.net
>>847
解決したなら、回答する必要がないからね
本当は解決してないのがバレバレ

852 :Name_Not_Found:2018/11/13(火) 20:23:57.82 ID:???.net
本当は解決してないのなら引き続き回答が付く流れになって何が問題なんだ?
何が言いたいんだこいつ、自分自身が何を言ってるのか認識しながら書いてるのか?

853 :Name_Not_Found:2018/11/13(火) 21:43:27.74 ID:???.net
>>846
質問した824ですが843は別人です
よって回答は不要です

ただ別の人が興味持って続けたりするのはお好きにどうぞ
実際この問題けっこう面白いです

854 :Name_Not_Found:2018/11/13(火) 22:48:17.01 ID:???.net
MathJaxについて質問です
サードパーティーによる拡張機能を追加する時は、どういう記法がいいんですか?

855 :Name_Not_Found:2018/11/13(火) 22:53:27.13 ID:???.net
>>833
ライブラリスレで聞けや低脳
JavaScript ライブラリ総合質問所 vol.5
https://mevius.5ch.net/test/read.cgi/hp/1465399470/

856 :Name_Not_Found:2018/11/14(水) 06:12:04.52 ID:???.net
>>853
別人だろうが同一人物だろうが関係ないよ
そんなこと考えて返信したりはしないから
コテハンも付けもしないくせにそんなこと言っちゃって変なの

857 :Name_Not_Found:2018/11/14(水) 09:45:32.58 ID:???.net
>>856
お前なんか恥ずかしい

858 :Name_Not_Found:2018/11/14(水) 15:26:53.45 ID:???.net
>>854
>>832,833,835

859 :Name_Not_Found:2018/11/14(水) 20:05:19.08 ID:???.net
>>856
そうでないの(>>846)がいるだろ

860 :Name_Not_Found:2018/11/14(水) 21:02:44.14 ID:???.net
>>859
ならなぜコテハンを付けない???
>>853が別人アピールをしたところで何がどうなる?
むしろそうでない人>>846が不快になって荒れる原因にしかならんだろ
俺には成りすましよりもずっと荒らしに見えるよ

861 :Name_Not_Found:2018/11/14(水) 21:58:54.43 ID:???.net






まで読んだ

862 :Name_Not_Found:2018/11/14(水) 22:53:28.60 ID:???.net
後からコテハンつけてもな

863 :Name_Not_Found:2018/11/17(土) 00:10:54.73 ID:???.net
質問です

class Company {
constructor(){
this.factory = new Factory();
this.shop = new Shop();
}
}

class Factory {
constructor(){}
}

class Shop {
constructor(){}
}

こうしたときに
factoryとshopがお互いを参照するためには
それぞれのインスタンスを作るときに
Companyのthisを渡すので良いのでしょうか?

864 :Name_Not_Found:2018/11/17(土) 00:26:19.34 ID:???.net
>>863
良いか悪いかはあなたが判断すること

865 :Name_Not_Found:2018/11/17(土) 00:43:04.97 ID:???.net
factory・shop が、お互いを参照するためには、
それよりも1階層上のCompany に、メソッドを定義すればよい

Companyからは、両方へアクセスできるから

866 :Name_Not_Found:2018/11/17(土) 01:07:09.66 ID:???.net
>>863は引数で渡せば共有可能なことは分かってる
で、要件考察を放棄して「どうすれば良いですか」と最良のコードを聞いてるわけ
典型的なコピペプログラマ

867 :Name_Not_Found:2018/11/17(土) 06:18:42.13 ID:???.net
>>863
Companyのthisを渡すのが良いね

868 :862:2018/11/17(土) 16:11:14.78 ID:???.net
>>864,866,867
あざます
微妙な聞き方ですみませんでした
ベストプラクティスが知りたかったです
コピペプログラマ以前の、まだペーペーでして

class使わずに書いてた時はCompanyの中でこんな感じで

var company = {
constructor : function(){
this.factoty = this.createFactory();
},
createFactory : function(){
var A = this;
var factory = {
constructor : function(){
// ここではAでcompanyが参照できる
}
};
factory.constructor();
return factory;
}
};

コンストラクタ作らずに、直に{}でオプジェクトとして生成してたので
参照に困ることがなかったのですが
これ自体正しいのかわからんし、classで書くにはこうも出来んので

どうするのが良いのか聞いてみた次第でした
ありがとうございました

869 :Name_Not_Found:2018/11/17(土) 17:15:08.56 ID:???.net
どういてこましたれ

870 :Name_Not_Found:2018/11/17(土) 19:39:54.37 ID:???.net
ベストプラクティスと言っても魔法の解があるわけじゃないし
JSはいろんな書き方ができる言語だから
結局はその要件・コンテキストでどれだけ自然かってことになる

でもそれってプログラミング関係なくて
実際の「企業」「工業」「店」の関係に置き換えて想像してみたら
もし変なことをしていたりムダがあってもすぐ分かるよ

871 :Name_Not_Found:2018/11/17(土) 20:06:38.43 ID:???.net
キモイ

872 :Name_Not_Found:2018/11/17(土) 21:02:18.66 ID:???.net
<script src="js1.js"></script>
<script src="js2.js"></script>

js2からjs1に書いてある関数を実行するにはどうしたらいいでしょうか?
書き込めないので2バイト文字にしてます

873 :Name_Not_Found:2018/11/17(土) 22:13:59.02 ID:???.net
それだけだと普通に呼べばいいのではと思うが
特殊な事情があるならそれを書いて欲しい

874 :Name_Not_Found:2018/11/17(土) 23:17:45.59 ID:???.net
まじすか、リファエラー出てて、スコープは問題ないし
見直してみます

875 :Name_Not_Found:2018/11/18(日) 10:35:53.61 ID:???.net
>>872
IE11をサポートしなくて良いなら、
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Statements/import

https://mevius.5ch.net/test/read.cgi/hp/1510321470/635 と同じ質問だが、マルチポストか?
内容的にはライブラリ関係ないので、、こっちですべきだが

876 :Name_Not_Found:2018/11/18(日) 14:51:26.73 ID:???.net
>>872,874
今時の奴はマルチポスト先で解決したら、「全てのマルチポスト先で解決方法を書く」程度の礼儀も知らんのか
全員がお前と同じスレを同じタイミングで見ているわけではないんだぞ
解決済みの質問に回答が来てもお前は困らないだろうが、無駄に骨を折らせるだろうが

しかも、スコープの問題ではないといってるし

$(function () {
 var a = 1;
});
$(function () {
 a; // ReferenceError: a is not defined
});

「それが普通とあれば解決です」といっている辺りからして、コピペコードのネタを探しているだけで理解する気はなさそうだな

877 :Name_Not_Found:2018/11/18(日) 15:45:59.34 ID:???.net
質問者本人は「使いたい関数定義義は $(function の外にだすのが普通、と分かったので他はどうでもいいです」な考えだろうから、相手するだけ無駄って感じ
それはそれとして、moduleも解決策の一つだと思うけど、なぜ向こうではカスタムイベント一択の人が必死になってるんだろ

878 :Name_Not_Found:2018/11/18(日) 15:47:15.84 ID:???.net
それはIEで動かないから。

879 :Name_Not_Found:2018/11/18(日) 15:56:42.73 ID:???.net
jQueryを使えばIEサポートできるよ派が必死になってるのね
カスタムイベント、IEでも使えるんだけどねえ

880 :Name_Not_Found:2018/11/18(日) 16:37:35.12 ID:???.net
しかし、グローバル変数を敬遠してカスタムイベントを使うのはどうなんだろうな
カスタムイベントにも衝突のリスクがあるという点では問題が内在している事になるのだが
グローバル変数は一つのオブジェクト内にプロパティ定義すれば、汚染変数を一つに集約できるが、カスタムイベントは複数あれば複数定義してやらねばならない
必ずしも、カスタムイベントに優位性はないと思うんだがな

881 :Name_Not_Found:2018/11/18(日) 17:33:16.72 ID:???.net
カスタムイベントの人、衝突のリスクを真面目に考えてはいないと思うな
衝突を回避しようとすると、module一択になると思う
IEに対応するなら、一つのファイルに連結させるぐらいしか思いつかない

882 :Name_Not_Found:2018/11/18(日) 17:51:25.34 ID:???.net
カスタムイベントもグローバル変数もページ単位でスコープを持っているので、リスクは同等なんだよな
カスタムイベントに「関数をグローバルに定義する必要も importも使う必要もない」といえる程のメリットはない
衝突のリスクがないmoduleとは比較にならない

883 :Name_Not_Found:2018/11/18(日) 17:58:17.91 ID:???.net
JS全般に言えることだけど衝突してもすぐ分かるので問題にならない
そんな来年になったら衝突しだしたみたいなことはまず起き得ないのだから

884 :Name_Not_Found:2018/11/18(日) 18:02:39.12 ID:???.net
> JS全般に言えることだけど衝突してもすぐ分かるので問題にならない
const宣言しておけば、確かにわかるな
だが、カスタムイベントは検知できない

885 :Name_Not_Found:2018/11/18(日) 18:13:24.56 ID:???.net
衝突の問題って自分がa.jsとb.jsを両方管理していればそうそう起きないけど、管理外のc.jsを別の人が加えた時点で発生するんだよね
全てのjsファイルを一人が管理しているなら発生しづらいけど、運用の都合上、編集権限がないjsファイルがあるかもしれない
あるいは、自分が今までに関わっていないサイトの機能拡張を依頼されて、そのサイトのグローバル変数に関するドキュメントがないかもしれない
そういう時に衝突しない仕組み(module)だったり、衝突しても自動的にエラーになる(constでグローバルスコープに宣言)のは大きい

886 :Name_Not_Found:2018/11/18(日) 18:14:28.75 ID:???.net
そんな大真面目にバグの可能性をできるだけ検知しようとしなくてもいいじゃん
どうせjQuery使う程度のサイトなんだからさ
そんなちょっとテストしてみてわからないバグなんてクリティカルじゃないよ
あとで気づいたり指摘されたときになおすので十分で
製作時はそんなこと考えずに適当に思いつくままパパっと作ったのでいいじゃない
どうせjQuery使う程度のサイトなんだからさ

887 :Name_Not_Found:2018/11/18(日) 18:30:20.34 ID:???.net
>>886
君は>>884って事でいいのかな?

> そんなちょっとテストしてみてわからないバグなんてクリティカルじゃないよ
「すぐに発見できないバグ=クリティカルなバグじゃない」は通らないよ
むしろ、すぐに発見できない重大なバグの方が恐ろしいので、早期発見に努めたいと俺は思うね

> どうせjQuery使う程度のサイトなんだからさ
あなたが「品質保証しません」なスタイルなら、いいと思うよ(顧客の信用は失うけど)
https://mevius.5ch.net/test/read.cgi/hp/1510321470/643- は何かしらのポリシーをもって、カスタムイベントを推奨していたみたいだからおかしいとは思ったけどね

888 :Name_Not_Found:2018/11/18(日) 18:37:51.65 ID:???.net
俺は883じゃないよ
そんなバグを潰したければTSも使うしjQueryは使わないよ
jQueryは何となく作ってそれなりに良いようにやってくれるライブラリなのに
それをちょっとでもマシにしようと考える時点で間違ってるんだよ

889 :886:2018/11/18(日) 18:38:54.41 ID:???.net
>>887を訂正

× 君は>>884って事でいいのかな?
〇 君は>>883って事でいいのかな?

890 :Name_Not_Found:2018/11/18(日) 18:48:32.46 ID:???.net
>>888
君の中ではこういうこと?

低品質コード: jQueryを使ったコード (jQueryで高品質なコードを作ろうとすることが間違っている)
中品質コード: TSとjQueryを使ったコード
高品質コード: TSを使ったコード

ぶっちゃけ、いずれも同様にJSなので品質が変わるのはおかしい気がするけど、TSに君の頭が最適化されているって事かな
jQueryの内部コード読んでると、共感できない実装が多いので、気持ちは分からんでもないけど

891 :Name_Not_Found:2018/11/18(日) 19:11:27.93 ID:???.net
正直、1年前に書いた自分のコードを書き換えようと思っても、細部まで覚えていられる自信はない
直近なら完璧に管理できると思うけど、時間が経てば忘れるので、「自動的にエラーが検知される機構」か「エラーにならない機構」であって欲しいなあ

892 :Name_Not_Found:2018/11/18(日) 23:11:37.91 ID:???.net
>>876
>>874で一旦落ち着いてるのに何向きになってるんだ

893 :Name_Not_Found:2018/11/19(月) 01:17:54.54 ID:???.net
>>892
>>874は「スコープは問題ない」と書いているのがおかしい気はする

894 :Name_Not_Found:2018/11/19(月) 04:29:56.34 ID:???.net
以下に、複数ファイルに分割して、読み込む方法が書いてある

JavaScriptの設計について考える - 機能ごとに分類する
http://tech.leihauoli.com/post/2014/11/10/program-design-1.html

でも、ファイル数が増えると、読み込みが遅くなるから、
webpack などで連結して、1つのファイルにまとめるのが普通

895 :Name_Not_Found:2018/11/19(月) 05:01:24.27 ID:???.net
>>881
> カスタムイベントの人、衝突のリスクを真面目に考えてはいないと思うな
名前空間使えばいいだけだろ

896 :Name_Not_Found:2018/11/19(月) 05:03:00.74 ID:???.net
つまり、jQueryのカスタムイベントを使う方法は、
名前空間があるから、衝突のリスクも少なく
推奨できる方法というわけか

897 :Name_Not_Found:2018/11/19(月) 05:16:20.51 ID:???.net
>>890
> jQueryの内部コード読んでると、共感できない実装が多いので、気持ちは分からんでもないけど

共感できない実装を、あなたの実装に変えると
どういうメリットが有るの?

898 :Name_Not_Found:2018/11/19(月) 05:38:24.46 ID:???.net
共感できるようになるというメリットがある

899 :Name_Not_Found:2018/11/19(月) 05:54:14.63 ID:???.net
なぜこの場合にカスタムイベントが適切かと言うと
>>872の書き込みだけ見てるとわからんのよ

https://mevius.5ch.net/test/read.cgi/hp/1510321470/635-636
こっちをみないと理解できないだろう

そっちを見るとわかるのが、ex_js_2.js から呼び出しているのが
ex_js_1.js が担当しているDOM要素の初期化処理なんだよ

単一責任原則からするとモジュール(ファイル)が分かれているのだから
担当すべきものは別々でなければならない。
ex_js_1.js が担当している処理の内部実装に依存するのは良くない

本来なら ex_js_1.js で完結させるべきことだろう
だがどうしてもex_js_2.jsから呼ばなければいけないというのならば、
モジュール間の結合度を下げるためにイベントを使うのが適切
module使うのもモジュール間の結合度が高まってるのでなんの解決にもなっていない

カスタムイベントと聞いてDOMのカスタムイベントと同様のことしかできないと
思い込んでいる無知がいそうだが、jQueryのカスタムイベントは
名前空間が使えるからかぶるリスクも少ない

そこまで考慮した上でのレスなんだよ
呼べればいいだろレベルの浅い考えの答えとはわけが違う

900 :Name_Not_Found:2018/11/19(月) 05:54:49.47 ID:???.net
>>898
それだけしかないという意味でいい?

901 :Name_Not_Found:2018/11/19(月) 06:03:39.84 ID:???.net
>>891
> 正直、1年前に書いた自分のコードを書き換えようと思っても、細部まで覚えていられる自信はない

誰でもそう。記憶力に頼って仕事なんてできないし、
そんなものに頼ってはだめ。

だからといってドキュメントをたくさん残せば良いのかと言うと
それも違う。読むものが増えると、その分忘れた記憶を取り戻す時間がかかる

じゃあどうするのかと言うと、結局は読むべきものを減らすということに尽きる
ドキュメントもそうだしコードもそう

プロジェクト依存の知識は、そのプロジェクトから外れると必要なくなる。
つまり忘れる。だからプロジェクトに依存しない知識を使いつつ
より少ないドキュメントやコードで構成しなければいけない

もう分かるね? どんなにjQueryがなくてもできようが、
jQuery使ったほうがコードが減るなら、jQuery使ったほうが良いってことだよ
もちろんjQueryとTSを使ったほうがより良いだろう
TS単体よりもjQuery使ったほうがプロジェクト固有の知識は必要なくなる

902 :Name_Not_Found:2018/11/19(月) 06:59:03.74 ID:???.net
それってjQueryのAPIを忘れないよう未来永劫使い続けること前提じゃん
ライブラリにロックインされるのは嫌だわ

903 :Name_Not_Found:2018/11/19(月) 08:18:44.00 ID:???.net
未来永劫、jQueryを使ったほうがコードが減るなら
そうした方が良いのでは?w

904 :Name_Not_Found:2018/11/19(月) 08:55:45.60 ID:???.net
フレームワークにロックインっていうのならわかるが
ライブラリにロックインってよくわからんな

フレームワークは一つの大きな枠組みだから、
外すときは中身が全てばらばらになってしまうが

ライブラリは、中身で使ってるだけだから、
一つづつ中身を置き換えていける
ロックインってほどのものじゃない

905 :Name_Not_Found:2018/11/19(月) 09:10:06.39 ID:???.net
>>901
> もう分かるね? どんなにjQueryがなくてもできようが、
> jQuery使ったほうがコードが減るなら、jQuery使ったほうが良いってことだよ
jQueryの内部コードを完全に把握していて、jQueryがバージョンアップする度に更新内容を詳細に知る努力を維持しているならね
根幹のjQueryを他者が完全に把握するのは不可能

906 :Name_Not_Found:2018/11/19(月) 09:27:59.59 ID:???.net
> jQueryの内部コードを完全に把握していて、jQueryがバージョンアップする度に更新内容を詳細に知る努力を維持しているならね

そんなこと必要ないのでは?
誰もOSの中身やブラウザの中身なんて完全に把握してないでしょう?

もう少しさ、公平な視線で見れないの?

907 :Name_Not_Found:2018/11/19(月) 10:41:03.83 ID:???.net
読むコード減らすべきおじさん
いい加減自重してほしい…

ここは質問スレなんで
自己主張はブログでも作ってそこでやってください

908 :Name_Not_Found:2018/11/19(月) 11:03:44.39 ID:???.net
>>907

>>1を読もうね
> ・質問への「答え」だけでなく「意見」を出しても良い。

909 :Name_Not_Found:2018/11/19(月) 12:22:28.72 ID:???.net
議論用スレじゃないのに明らかにおかしいね。
荒らしが足したのかな?
次スレ立てるとき消しとくわ。

910 :Name_Not_Found:2018/11/19(月) 12:30:35.39 ID:???.net
>>908
だから自重と書いたのを理解してほしい

911 :Name_Not_Found:2018/11/19(月) 12:56:03.85 ID:???.net
>>910
じゃあ、自重してほしいというのをやめてほしい

912 :Name_Not_Found:2018/11/19(月) 12:56:48.59 ID:???.net
>>909
昔からあるのを勝手に消すな

913 :Name_Not_Found:2018/11/19(月) 13:05:00.37 ID:???.net
ほとんど議論なんだから議論スレ立てて好きにやれば?

914 :Name_Not_Found:2018/11/19(月) 13:40:05.09 ID:???.net
分離する意味ないし

915 :Name_Not_Found:2018/11/19(月) 14:44:45.01 ID:DYe7Rsfm.net
phpやrubyと違ってjavascriptは簡単な言語です、
とか言ってる人もいるけど、間違ってると思いませんか

916 :Name_Not_Found:2018/11/19(月) 15:03:30.18 ID:???.net
思います。
はい次

917 :Name_Not_Found:2018/11/19(月) 20:24:27.87 ID:???.net
>>899
例えばだが
1は他の様々なプロジェクトでも使える基本関数
それを2から呼び出すとか

phpのincludeのように

918 :Name_Not_Found:2018/11/19(月) 21:00:32.09 ID:???.net
複数のページにまたがって使えるような定数の集まりや関数など
include的に使いたいとき皆どうしてるんだろう

919 :Name_Not_Found:2018/11/19(月) 21:02:11.71 ID:???.net
それがなかったからバカにされてたんだろうが!

920 :Name_Not_Found:2018/11/19(月) 21:06:06.38 ID:???.net
jsの場合、ファイル分けてもあまり意味がないからincludeしなくなったわ
一つのファイルにまとめている。アナリティクスすら一つのファイル

921 :Name_Not_Found:2018/11/19(月) 21:16:23.86 ID:???.net
つまり各ページで同じことを書いてると

922 :Name_Not_Found:2018/11/19(月) 21:19:16.20 ID:???.net
あれ?jQueryでやるんじゃなかったのかw

923 :Name_Not_Found:2018/11/19(月) 21:23:24.64 ID:???.net
>>921
そう
どうせキャッシュから読み出すので速度は問題ない

924 :Name_Not_Found:2018/11/19(月) 21:38:39.08 ID:???.net
javascriptウルトラ初心者がいきなりvue.jsやっても良いですか

925 :Name_Not_Found:2018/11/19(月) 22:01:21.65 ID:???.net
いいよ。
次〜

926 :Name_Not_Found:2018/11/19(月) 22:08:46.80 ID:???.net
>>924
別にいいっちゃいいけどvue.jsはいつも通り、いつの間にか消えて行くパターンだろうなぁって感じ
ただそういう意味では逆に使って置くと良い。あの絶望感は楽しい

927 :Name_Not_Found:2018/11/19(月) 22:14:08.87 ID:???.net
>>926
vue.jsってあんまり普及してないんですかね?

928 :Name_Not_Found:2018/11/19(月) 22:27:17.38 ID:???.net
>>927
一時的に普及はしてるけど、いつもの流行り
多分君みたいな「なんか革新的で凄そう!」って人が使ってしまっている
俺もその昔、jquerymobileっての使ってた。今みたらgithubは二年も更新止まってるわ・・・まぁいいけど

こういうのはある程度やってないと分からない
まぁ時間を無駄にしたくなければjQuery使っておけばok

929 :Name_Not_Found:2018/11/19(月) 22:29:34.96 ID:???.net
SPAを今の環境でやるには便利だし普及してるとは思う
けど、SPAをもりもり作ってる人ってのがそもそも少ないだろうし
より最適化したものが作られたりUA側の環境が変われば
また変わっていくでしょう

930 :Name_Not_Found:2018/11/19(月) 22:42:38.22 ID:???.net
>>923
変更の場合いちいち全部するんだな

931 :Name_Not_Found:2018/11/19(月) 22:47:26.34 ID:???.net
>>930
あぁそういう風に受け取ったのか、お前は本当に素人だなwww
phpから出力してheadに直接出力してるんだよ

932 :Name_Not_Found:2018/11/19(月) 22:54:07.62 ID:???.net
>>928
流石に偏見が過ぎる

933 :Name_Not_Found:2018/11/19(月) 23:05:36.01 ID:???.net
>>928
jquerymobile廃れたじゃんふざけやがって

934 :Name_Not_Found:2018/11/19(月) 23:07:01.65 ID:???.net
>>931
なんでjsスレでphpありきの話してんだよ
ここでなら普通phpなしが前提だろ

935 :Name_Not_Found:2018/11/19(月) 23:23:33.60 ID:???.net
>>932
まぁ、わざと大袈裟に言った。
アホな事やって周りにまで迷惑掛けてしまったからな

>>933
俺に言われても。

>>934
で、その挙げ句が>>930という発想だろ
ボトルシップでもやってんのか、ありえない
お前みたいなアホがシステムと連携せずにフロントをぐちゃぐちゃにするんだよ
もっと全体を見てくれ

936 :Name_Not_Found:2018/11/19(月) 23:34:22.44 ID:???.net
お、話反らしにきてるな

937 :Name_Not_Found:2018/11/20(火) 00:11:55.25 ID:???.net
>>919
jQueryでいい方法があるよ!

938 :Name_Not_Found:2018/11/20(火) 00:41:20.42 ID:???.net
PHPでとか言ってるの俺じゃねぇからな

>>917
> 1は他の様々なプロジェクトでも使える基本関数

だからコード見る限りそういう使い方じゃないから
カスタムイベントと言ったんだよ

939 :Name_Not_Found:2018/11/20(火) 00:41:58.78 ID:???.net
>>937
jQueryはDOM操作用ライブラリ
俺を騙るのはやめろ

940 :Name_Not_Found:2018/11/20(火) 02:07:54.64 ID:???.net
>>915
Ruby が圧倒的に可読性が高く、各バージョンの互換性も高い。
言語に、include, require もある

>>918
>>894
のリンクにあるような、共通ライブラリにして、先に読み込む。
かつ、2回読み込まない

>>924
初心者は、jQuery から。
Vue.js は無理

941 :Name_Not_Found:2018/11/20(火) 08:21:29.16 ID:???.net
>>940
さすが圧倒的に可読性が高いRuby!
圧倒的にランクイン!!

https://gigazine.net/news/20181116-top-programming-languages-2018/
https://www.softantenna.com/wp/software/the-state-of-the-octoverse-2018/
https://www.softantenna.com/wp/software/ieee-spectrum-top-programming-languages-2018/
https://findy-code.io/engineer-lab/github-programming-language-ranking
https://i.imgur.com/0YbMsqj.jpg

942 :Name_Not_Found:2018/11/20(火) 10:59:04.66 ID:???.net
electronでアプリ作ったらソース丸見えなの?

943 :Name_Not_Found:2018/11/20(火) 17:22:45.93 ID:???.net
>>942
本質的には隠せないと言われてんね

944 :Name_Not_Found:2018/11/20(火) 17:23:05.71 ID:???.net
>>941
Rubyはマジで勉強しなくて良かったと思ってる
こんなに急速に終わるとは思わなかった

945 :Name_Not_Found:2018/11/20(火) 17:28:35.72 ID:???.net
rubyなんで終わったん?
なんか便利そうだな〜って思ってる内にフェードアウトしていた

946 :Name_Not_Found:2018/11/20(火) 18:40:16.17 ID:???.net
元々Railsのおかげで流行っただけだし、ある種当然の流れともいえる

947 :Name_Not_Found:2018/11/20(火) 18:44:45.09 ID:???.net
ライブラリの出来の差でpythonに二周差くらいつけられた。
有名な先端のC/C++で書かれたライブラリ(ネイティブ)なんかも大抵Pythonから呼び出すインターフェースを公式で提供されてる。
Rubyだってできるもん!と馬の骨がRubyラッパーを作っても誰もメンテしない始末w
あとディープラーニングなんかはMacでGPUサポートが弱い関係でWindows(やLinux)が主戦場になってるがRubyのコミュニティはWindows蔑視の伝統がありそのツケがまわってきてしまった形w自業自得www
もうRailsのDSLとしてしか息してない。

948 :Name_Not_Found:2018/11/20(火) 18:47:24.39 ID:???.net
>>938
元々それも含まれてます
むしろそれがメインです

949 :Name_Not_Found:2018/11/20(火) 18:47:36.78 ID:???.net
Pythonって機械学習一発屋じゃなかった?

950 :Name_Not_Found:2018/11/20(火) 18:48:04.22 ID:???.net
>>948
他人は口を出さないように

951 :Name_Not_Found:2018/11/20(火) 18:50:09.35 ID:???.net
Rails一発屋「Pythonは機械学習一発屋!!」

952 :Name_Not_Found:2018/11/20(火) 18:54:03.53 ID:???.net
>>951
何回も叫ばなくてもわかってるよw

Pythonは機械学習一発屋!!!

953 :Name_Not_Found:2018/11/20(火) 18:56:48.63 ID:???.net
7月生まれだからルビーって名前つけられたのがムカつくわ
パール参考にしてんだからオパールとかでいいのに

954 :Name_Not_Found:2018/11/20(火) 18:57:22.06 ID:???.net
見よ!一発屋Pythonを大きく引き離す圧倒的大人気言語Ruby!!

https://gigazine.net/news/20181116-top-programming-languages-2018/
https://www.softantenna.com/wp/software/the-state-of-the-octoverse-2018/
https://www.softantenna.com/wp/software/ieee-spectrum-top-programming-languages-2018/
https://findy-code.io/engineer-lab/github-programming-language-ranking
https://i.imgur.com/0YbMsqj.jpg

955 :Name_Not_Found:2018/11/20(火) 19:02:30.39 ID:???.net
ScalaとRustが面白い

956 :Name_Not_Found:2018/11/20(火) 19:03:18.27 ID:???.net
次スレ
+ JavaScript の質問用スレッド vol.136 +
https://mevius.5ch.net/test/read.cgi/hp/1542707959/

957 :Name_Not_Found:2018/11/20(火) 19:04:05.15 ID:???.net
>>943
まじかー
それだと使えないな

958 :Name_Not_Found:2018/11/20(火) 19:09:40.91 ID:???.net
>>954
それみたらc++以下は全部オワコンだな

959 :Name_Not_Found:2018/11/20(火) 19:14:01.27 ID:???.net
>>958
画像の右のグラフも合わせて見ないと。
rustは生まれたてで急速に成長、
rubyは死にかけの消えかけと分かる。

960 :Name_Not_Found:2018/11/20(火) 20:30:07.26 ID:???.net
rustなんてマニアック言語、ぜったいはやらないわ

961 :Name_Not_Found:2018/11/20(火) 21:01:25.32 ID:???.net
ここに載ること自体立派なもんだ

962 :Name_Not_Found:2018/11/20(火) 22:49:51.64 ID:???.net
rustに失速の可能性はあるよもちろん。
rubyに復活の可能性はないけどwww

963 :Name_Not_Found:2018/11/20(火) 22:58:49.12 ID:???.net
>>950
本人です

964 :Name_Not_Found:2018/11/21(水) 00:04:45.71 ID:???.net
JavaScript強すぎだな
これはもう言語自体に何か人をくすぐる要素があるんだろ
俺にはわからんけど

965 :Name_Not_Found:2018/11/21(水) 00:47:28.30 ID:???.net
レンタルサーバーでちょろちょろっとサーバーサイドの処理書くから
PHPは消えてほしくないな……

966 :Name_Not_Found:2018/11/21(水) 00:49:43.57 ID:???.net
>>964
そういうことではなくてブラウザで動く唯一の言語という特権ではないかな。
今後はwasmがあるからjsの落日が〜とかいうやつもいるけどそんなことには絶対ならない。
だから言語勝負の時は殿堂入りで除外される。
でpython vs rubyだがコミュニティがクズ過ぎてrubyの自滅だったね。
ドキュメント軽視、Windows蔑視、
で逆にドキュメント重視、Windowsにも手厚いコミュニティサポートのPythonがアカデミック領域の真面目な人たちの気を引いて学術ライブラリが充実、
真面目だからメンテもしっかりされてそれがまた人を惹き付けてのポジティブサイクルでgoogleやらにも気に入られて勝負あった。

967 :Name_Not_Found:2018/11/21(水) 00:54:59.40 ID:???.net
GoogleのDartがMSのTypeScriptに負けるあたりも面白い

968 :Name_Not_Found:2018/11/21(水) 01:05:14.37 ID:???.net
ブラウザクラッシャーのjavascriptがこんな立派に成長するなんて
そのうちなくなるだろうって思ってたのに
素質が良かったのと周りに助けられて育ったんだな

969 :Name_Not_Found:2018/11/21(水) 01:18:39.48 ID:???.net
育ったのはいいが一旦過去を切り捨ててほしい

970 :Name_Not_Found:2018/11/21(水) 01:20:40.36 ID:???.net
どんな過去?

971 :Name_Not_Found:2018/11/21(水) 03:50:20.43 ID:???.net
真だけを処理する三項演算子の書き方はないのかと思ってググったところ、
同じようなことを考えた人は結構いるようですが、大体「{}無しのif使え」という結論のようでした。
実際のところ、

A===1?B=C:'';

で行けるようなんですが、これだと何か問題あるでしょうか?

972 :Name_Not_Found:2018/11/21(水) 06:59:13.91 ID:???.net
三項である必要がないんだから三項演算子でやろうということが矛盾してる
&&でいいじゃん

973 :Name_Not_Found:2018/11/21(水) 07:09:33.79 ID:???.net
>>971
'' が無駄
&& は評価値が無駄

974 :Name_Not_Found:2018/11/21(水) 07:29:36.64 ID:???.net
何が問題かって、そんなおかしな書き方してたら読みづらくて仕方ない
素直にif使うか、ギリギリ許せて&&だ

975 :Name_Not_Found:2018/11/21(水) 07:50:12.08 ID:???.net
>>971
三項演算子は式で使う
if節は文(ステートメント)で使う
今回のケースは文
よってif文を使う
使い分けに明確な差がある
逆に
let B
if (A === 1) B = C else B = ""
これなら
const B = A === 1 ? C : ""
と書く
書けるかどうかではなく意味論の話

976 :Name_Not_Found:2018/11/21(水) 08:31:13.79 ID:???.net
ドヤ顔のところ悪いが
>>971が偽でもBに空は入らないし
''がないとエラー

977 :Name_Not_Found:2018/11/21(水) 12:03:37.57 ID:???.net
>>947
おー、なるほど分かりやすい。ありがとう
そう、昔はruby・pythonそれぞれのラッパーがあったんだよね

978 :Name_Not_Found:2018/11/21(水) 14:10:07.78 ID:???.net
>>966
ここで上がってるJSはnodeの方が多いんではなかろか

979 :Name_Not_Found:2018/11/21(水) 14:17:43.74 ID:???.net
>>947
WindowsとMacが云々はあまり関係ない気がするなあ
最近はやりの他の言語もさして変わらんし

強いて言えば、Unix/Linux環境ありきの言語なので
Windowsはちと親和性が低いくらいのもんで


関係ないけど
WSLには期待してたんだがなあ…

980 :Name_Not_Found:2018/11/21(水) 16:03:50.71 ID:???.net
WSLはめちゃくちゃ使えるし、実際に使ってるけど?

981 :Name_Not_Found:2018/11/21(水) 16:15:29.96 ID:???.net
そういやlindowsってどうなったんだろう
・・・13年前に終了していた

982 :Name_Not_Found:2018/11/21(水) 18:06:28.09 ID:???.net
colinux 64bit

983 :Name_Not_Found:2018/11/22(木) 05:10:16.35 ID:???.net
>>980
Windowsでbashが使えるって触れ込みだったから
てっきりWindowsをシェルで操れるようになるもんだと思ってたんだがなあ

あれじゃあ、単に並列にubuntuが起動して
Windowsのボリュームをマウントしてるだけじゃねえかと

984 :Name_Not_Found:2018/11/22(木) 05:12:20.86 ID:???.net
すれ違いスマンコ

985 :Name_Not_Found:2018/11/22(木) 06:03:43.01 ID:???.net
>>983
> てっきりWindowsをシェルで操れるようになるもんだと思ってたんだがなあ

操れるよ?
bashからWindowsのコマンドが実行できる(その逆も可能)
だからどんなことでもシェルで扱える

> あれじゃあ、単に並列にubuntuが起動して
> Windowsのボリュームをマウントしてるだけじゃねえかと
Windowsのボリュームをマウントしてるだけなら
UbuntuからWindows用のコマンド実行できないね

986 :Name_Not_Found:2018/11/22(木) 08:29:51.82 ID:???.net
>>983
お前にwolはブタに真珠だなぁ
そんなのcygwin、mingw、gitbashで出来てたじゃん。
wolがすごいのはシステムコール変換だぞ!バイナリ互換だぞ!

987 :Name_Not_Found:2018/11/22(木) 08:30:32.23 ID:???.net
*wsl

988 :Name_Not_Found:2018/11/22(木) 12:58:46.38 ID:???.net
ぼく「~が」
敵「それはWindows側ではなくLinux側の…」
ぼく「sudoで」
敵「だからLinux側の…」

ぼくはwslを諦めた

Windowsは無理に世間に迎合しないで
独自路線突っ走ってればいいんじゃねえのかなあ
会社の文房具としては揺るぎない地位を確立してんだし

989 :Name_Not_Found:2018/11/22(木) 14:26:02.87 ID:???.net
>>988
Windows側のHOMEが知りたければ、wslpathで知ることが出来るし、
Windowsの管理者権限がほしいならrunasコマンドを実行すれば?

自分ができないからって、OSのせいにするなよ

> Windowsは無理に世間に迎合しないで
> 独自路線突っ走ってればいいんじゃねえのかなあ
> 会社の文房具としては揺るぎない地位を確立してんだし

そうしてくれないとお前が困るもんねw
これからも文房具だって馬鹿にしたかったのに、
Windowsが本当になんにでも使える道具になってしまった
開発するのはWindowsが一番便利だなんて!

お前は、困るよねw

990 :Name_Not_Found:2018/11/22(木) 14:26:55.02 ID:???.net
どうしたの急に
よくわかんないけど
俺の愛してるWindowsバカにすんなこのやろう

991 :Name_Not_Found:2018/11/22(木) 14:36:29.58 ID:???.net
>>990
俺の大嫌いなWindows馬鹿野郎って
言ってる人には妥当なレスですねw

992 :Name_Not_Found:2018/11/22(木) 16:36:08.13 ID:???.net
みんなちがって みんないい

993 :Name_Not_Found:2018/11/22(木) 18:43:08.89 ID:???.net
>>988
>会社の文房具
すごい!個人的に流行語大賞だわw

994 :Name_Not_Found:2018/11/22(木) 19:08:16.10 ID:???.net
>>993
それ批判するときの使い古された言葉だよw

文房具は安いという前提があって成り立つ批判なんだが
ようするに便利な道具で実際には会社以外でもどこでも使えるわけで
値段を除けば批判する点はなく、値段も別に安くもないので
何一つ批判になってないというw

995 :Name_Not_Found:2018/11/22(木) 21:07:29.67 ID:???.net
WindowsではLinuxが走るけど
LinuxではWindowsが走らない
どっちがいいかは自明

996 :Name_Not_Found:2018/11/22(木) 21:12:31.61 ID:???.net
vineだかwineだかなかった?
フォントサイズおかしくなったけど普通に動いたぞ

997 :Name_Not_Found:2018/11/22(木) 21:16:32.71 ID:???.net
wineは動くのと動かないの、動かすにしてもコツがいるのなどいろいろあるよ
そろそろさすがにスレチじゃね

998 :Name_Not_Found:2018/11/22(木) 21:28:55.26 ID:???.net
>プログラミング教育の本格的な導入に向けて実務家や有識者などからなるIT教育再生審議会による審議で、小学校ではRubyを、中学校ではC++を導入することが明らかになった。

999 :Name_Not_Found:2018/11/22(木) 21:30:13.70 ID:???.net
>>998
どんな有識者で話し合うとこういう結論になるんだ、、

1000 :Name_Not_Found:2018/11/22(木) 22:32:48.90 ID:???.net
>>998
どん判金ドブwwwww

1001 :Name_Not_Found:2018/11/22(木) 22:33:37.44 ID:???.net
次スレ
+ JavaScript の質問用スレッド vol.136 +
https://mevius.5ch.net/test/read.cgi/hp/1542707959/

1002 :2ch.net投稿限界:Over 1000 Thread
2ch.netからのレス数が1000に到達しました。

総レス数 1002
299 KB
掲示板に戻る 全部 前100 次100 最新50
read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★