2ch勢いランキング アーカイブ

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


Name_Not_Found [sage] 2017/07/31(月) 21:10:56.03ID:???
JavaScript を自ら学ぶ人のための質問スレッドです。
のテンプレを読んだ上で質問してください。次スレはのテンプレ案(本スレで改善案があれば考慮)を元に立ててください

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

■禁止行為
・丸投げ質問
・迷惑スクリプトの質問
・オレオレ用語の使用(一般的な用語を使用する事)
・煽り、批判等の他人を不快にさせる行為(批判の代わりに「AよりBが良い」のような代案を出す事)
・回答者同士のレスは原則禁止(を参照)
・ライブラリの話題の投稿(を参照)

■質問テンプレート
【環境】OS, ブラウザをバージョンと共に記入してください。(ex: IE8, Firefox4)
【何をしたのか】何をしたら問題の現象が発生するのか。再現手順を具体的に書いてください。
【エラーメッセージ】エラーメッセージがあれば正確に書き写してください。(Windows なら「コピット」を活用)
【期待する結果】最終的にどういう結果を望んでいるのか、を書いてください。
【サンプルコード】現象を再現可能な最小限のコードを書いてください。
 1レスに収まらないならコード投稿サイトを利用してください。
 ttp://jsdo.it/ ttp://jsbin.com/ ttp://jsfiddle.net/ ttp://ideone.com/
Name_Not_Found [sage] 2017/07/31(月) 21:11:45.91ID:???
■JavaScript主要ライブラリ・フレームワーク

jQuery
ttp://jquery.com/
jQuery UI
ttp://jqueryui.com/
jQuery Mobile
ttp://jquerymobile.com/
Lo-Dash
ttps://lodash.com/
Backbone.js
ttp://backbonejs.org/
Underscore.js
ttp://underscorejs.org/
AngularJS
ttps://angularjs.org/
Knockoutjs
ttp://knockoutjs.com/
RequireJS
ttp://requirejs.org/
D3.js
ttp://d3js.org/
threejs
ttp://threejs.org/
Name_Not_Found [sage] 2017/07/31(月) 21:12:08.92ID:???
■FAQ
ttp://fiddle.jshell.net/vSqKr/44/show/light/

◆開発者ツール(Developer Tools)の基本的な使い方 (全部はttp://fiddle.jshell.net/vSqKr/44/show/light/#Browser-Developer-Tools )
 ▼諸注意
  - 本説明では Google Chrome の開発者ツールの名称に従います。他ブラウザで使う場合は適宜読み替えて下さい。
  - IE9- でコンソールを使うには予め開発者ツールを起動しておく必要があります(開発者ツールを起動しないと console.log() が機能しません)
  - Safari はデフォルトで開発者ツールが無効な為、有効に設定する必要があります。
  ttps://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 型の中身をそのまま表示してくれます。)
Name_Not_Found [sage] 2017/07/31(月) 21:12:30.92ID:???
■FAQ(続き)
◆JavaScriptの実行速度
JavaScriptの速度は「ブラウザ名」「ブラウザのバージョン」「PCスペック」に依存します(ブラウザのバージョン毎に最適化具合が異なります)。
速度の疑問解消の為に ttp://jsperf.com/ にコードをUPしてブラウザ毎に速度計測する事を推奨します。
例外として、仕様における理論上の速度が明確になっている場合があります。
例えば、正規表現によるマッチング処理を考えた場合、「RegExp#test > RegExp#exec > String#match」は ES5 仕様で保証されています。
ES5 仕様において RegExp#test が最も処理数が少なく、String#match が最も処理数が多いことが明確だからです。
ブラウザによっては RegExp#test の最適化が十分でなく、String#match の最適化が RegExp#test より十分であれば逆転する可能性はありますが、各メソッドの最適化が一律であればこの前提が崩れる事はありません。

■各種仕様 ( ttp://fiddle.jshell.net/vSqKr/44/show/light/#Link も参照 )
◆ Standard ECMA-262
ttp://bclary.com/2004/11/07/ (ECMAScript 3 HTML版)
ttp://www2u.biglobe.ne.jp/~oz-07ams/2002/ecma262r3/ (ECMAScript 3 和訳)
ttp://www.ecma-international.org/ecma-262/5.1/ (ECMAScript 5.1 HTML版)
ttp://tsofthome.appspot.com/ecmascript.html (ECMAScript 5.1 和訳)
ttp://www.ecma-international.org/ecma-262/6.0/ (ECMAScript 6 / ECMAScript 2015)
ttp://kangax.github.io/compat-table/es5/ (ECMAScript 5 compatibility table)
ttp://kangax.github.io/compat-table/es6/ (ECMAScript 6 compatibility table)
◆ HTML Standard (HTML5)
ttp://www.whatwg.org/specs/web-apps/current-work/multipage/
ttp://momdo.s35.xrea.com/web-html-test/spec/WD-html51-20130528/Overview.html (HTML5.1 部分訳)
ttp://www.hcn.zaq.ne.jp/___/WEB/WebStorage-ja.html (Web Storage 和訳)
Name_Not_Found [sage] 2017/07/31(月) 21:12:46.40ID:???
■各種仕様 (続き)
◆ Document Object Model (DOM) / CSS Object Model (CSSOM)
ttp://www.hcn.zaq.ne.jp/___/WEB/DOM4-ja.html (DOM Standard (DOM4) 和訳)
ttp://www.w3.org/TR/DOM-Level-3-Events/ (DOM3 Events)
ttp://www.w3.org/TR/uievents/ (UI Events)
ttp://www.hcn.zaq.ne.jp/___/WEB/cssom-ja.html (CSSOM 和訳)
ttp://www.hcn.zaq.ne.jp/___/WEB/cssom-view-ja.html (CSSOM View Module 和訳)
◆ その他のWeb関連仕様
ttp://domparsing.spec.whatwg.org/ (DOM Parsing and Serialization - innerHTML等)
ttp://www.hcn.zaq.ne.jp/___/WEB/XHR-ja.html (XMLHttpRequest 和訳)
ttp://www.hcn.zaq.ne.jp/___/WEB/File_API-ja.html (File API 和訳)
ttp://www.whatwg.org/specs/ (WHATWGの仕様一覧)
◆ MDN (Netscape/Mozilla)
ttps://developer.mozilla.org/ja/docs
◆ MSDN Library
ttps://msdn.microsoft.com/en-us/library/ie/hh828809 (Internet Explorer API)
ttp://msdn.microsoft.com/ja-jp/library/yek4tbz0.aspx (JavaScript)
ttp://msdn.microsoft.com/ja-jp/library/cc427807.aspx (JScript)
ttp://msdn.microsoft.com/ja-jp/library/cc409712.aspx (DHTML)
◆ JavaScript Garden (ja)
ttp://bonsaiden.github.com/JavaScript-Garden/ja/
◆ JSON (JavaScript Object Notation)
ttp://www.json.org/json-ja.html
Name_Not_Found [sage] 2017/07/31(月) 21:13:36.65ID:???
・ダウンロード、CDN
ttp://jquery.com/download/

・ブラウザサポート
ttp://jquery.com/browser-support/

・jQuery UI
ttp://jqueryui.com/

・jQuery UI ダウンロ−ド
ttp://jqueryui.com/download/


・リファレンス等
ttp://alphasis.info/
ttp://www.jquerystudy.info/
ttp://js.studio-kingdom.com/
Name_Not_Found [sage] 2017/07/31(月) 21:18:10.88ID:???
クロスブラウザ問題も切り捨て時期に入りversion1の使う理由がなくる。
ttps://w3techs.com/technologies/history_overview/javascript_library/all
ここをみると今年に入ってからjQueryを使用している会社は0.4%増えているようだが
少数派の意見ではあるがうちの会社では年内でjQueryをきることが決まったぞ。
こういう会社もまれにあるってことを知ってほしい
Name_Not_Found [sage] 2017/07/31(月) 21:39:32.86ID:???
例外的な会社の話をするならば、
そりゃjQueryを切るところもあるだろうけど、
ぶっちゃけ、少ない方の事例じゃね?
Name_Not_Found [sage] 2017/07/31(月) 22:31:17.75ID:???
テンプレ滅茶苦茶じゃねーか
Name_Not_Found [sage] 2017/08/01(火) 01:45:20.81ID:???

無能がスレ立てるとこうなる。
Name_Not_Found [sage] 2017/08/01(火) 02:44:41.69ID:???
■前スレ
+ JavaScript の質問用スレッド vol.129 +
ttp://mevius.2ch.net/test/read.cgi/hp/1456242505/

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

■テンプレ案
ttp://fiddle.jshell.net/fH4cC/174/show/
Name_Not_Found [sage] 2017/08/01(火) 05:27:35.42ID:???
がぱっと見なんのライブラリ7日教えてくれ
Name_Not_Found [sage] 2017/08/01(火) 13:07:03.07ID:???
そもそもAjaxのころのライブラリ黎明期からHTML5ムーブメントまでの成長期なら分かるが
現代に主要ライブラリのリンクとか必要なのだろうか?

つうか全体的にリンクがあまりに多すぎじゃね
例えば仕様のリンクは多くてもスナップショットの和訳1つで良いだろう
最新の英語のLS版が知りたいやつがここのリンク参考にするとは思えんし

もっと言えばMDNだけで十分な気がする
MDNの各ページには仕様への適切なリンクが張ってあるし、
興味がある人ならそこから知るだろう

質問テンプレートもテンプレートなんて殆ど使われないし、
こういう質問の仕方にしてという注意事項形式に改めたり、
改善と言うか0からテンプレ作り直す必要があると思う
Name_Not_Found [sage] 2017/08/01(火) 17:09:07.30ID:???

テンプレ案で提案どうぞ スレ違い君
Name_Not_Found [sage] 2017/08/01(火) 18:18:42.11ID:???
無能にスレ違いって誰のことなんだよ?
Name_Not_Found [] 2017/08/01(火) 18:27:29.70:NaEiNuTz
スレチかもだけど
iOSでHTML、CSS、JavaScriptの編集、デバッグ(ここ重要)出来るアプリでお勧めあったら教えて
長文でも見やすくて、欲を言えばライブラリの追加とか出来ると素敵です
JSAnyWhereは試したけど、使い物にならなかった
もっと適切なスレあったら、誘導願います
Name_Not_Found [sage] 2017/08/01(火) 19:31:57.80ID:???
ここまで過疎ってる上にスレ分裂してるのにさらにテンプレ議論を別スレでさそうとは恐れいった
Name_Not_Found [sage] 2017/08/01(火) 22:58:38.87ID:???
好き勝手にやればいい
まともな質問がきて答えたければ答える
それ以外はゴミどもがくだらん喧嘩しててもスルーしときゃいい
Name_Not_Found [sage] 2017/08/01(火) 23:28:48.90ID:???


↓無能はこいつ



スレチは微妙でグレーところか
Name_Not_Found [sage] 2017/08/02(水) 11:33:40.68ID:???
無能っていうか意図的にやってるんだよ
元のテンプレで注意されていた荒らし本人がずっとそうやってスレ立ててんの
Name_Not_Found [sage] 2017/08/02(水) 13:48:18.11ID:???
問題だー問題だーって騒ぐ割に
誰も具体的に指摘せず不備を直そうともしない
Name_Not_Found [sage] 2017/08/02(水) 14:11:24.34ID:???
いやwちっとも改善する意識の無いやつがスレを立てるなよ
ただでさえ乱立してる中立てるってことは
相当の意味を込めてないとおかしい
Name_Not_Found [sage] 2017/08/02(水) 14:56:05.51ID:???
JavaScriptが最終的に覇権握るわ。こんな応用きいて自由な言語ねえ
Name_Not_Found [sage] 2017/08/02(水) 15:05:45.36ID:???
var t = obj.typo;
こういうバグを発見できないJSは糞言語
Name_Not_Found [sage] 2017/08/02(水) 18:54:17.17ID:???
慣れればすぐ分かる
どうしても気になるなら存在しないときエラーを出すProxyで包んだりすればいいじゃないか
Name_Not_Found [sage] 2017/08/02(水) 20:45:42.89ID:???
効率は悪いがメモ帳みたいな最低限の環境でもできなくはないし、
1発とはなかなか行かないが問題なく動くものも作れるけど、
存在しないあるいは未参照だったりするオブジェクト・変数・メソッドをチェックしてくれるぐらいの環境は用意したほうがいいんじゃね。
そこまで本格的でなくても、typo程度ならシンタックスチェック入れるだけでもだいぶ変わるはず。
Name_Not_Found [sage] 2017/08/02(水) 21:30:45.31ID:???
typoは確かに良くするが大抵すぐ分かるけどな
コンパイルしてデバッグ実行のオーバーヘッド考えたらさほど大したことじゃないと思う
それよりも近年たまにハマるのがイテレータ周りだな
例えばPromise.all([a,b,c])としないといけないところをall(a,b,c)としてしまうと
undefined is not a functionエラーが出てしまう
これがall(a,b,c)ならまだ原因に気づきやすいんだろうが、
async関数の絡みでよくall(a(),b(),c())となってることも多いので惑わされる
Name_Not_Found [sage] 2017/08/02(水) 21:59:04.57ID:???
ブックマークレット作成してて、画面項目入力後にボタンクリックして次の画面に遷移。遷移先でも入力させたいんですが、描画完了直後に入力したい場合どうすればいいでしょうか?
Name_Not_Found [sage] 2017/08/02(水) 22:41:35.34ID:???
Proxyを無理やり使って実行時に判明する程度だからな・・
静的にobjのプロパティ参照typoを見つけられるチェッカーは無いし
Name_Not_Found [sage] 2017/08/02(水) 23:02:10.45ID:???
>静的にobjのプロパティ参照typoを見つけられるチェッカーは無い
ないの?知らんけど
探せば普通にありそうだけどな
Name_Not_Found [sage] 2017/08/03(木) 03:09:11.09ID:???
変数とは勝手が違うから難しそう
多分Object.prototype.__proto__にProxyを挟むというのが良いかもね
Name_Not_Found [sage] 2017/08/04(金) 11:18:22.82ID:???
typoが気になるならTypeScriptおすすめ。
基本的は

let a:型 = ほげほげ

みたいに型を:の後に追加するって仕様だけで使える。
後、個人的に気に入ってるのはjsonにスキーマ設定できる

interface User {
name: string
age: number
}

user:User = {
name: 12 // error!
// ageが足りない!
}
って感じでエラーを出してくださる。
jsonにスキーマがつくとすごく便利よ〜。
Name_Not_Found [sage] 2017/08/04(金) 11:22:21.22ID:???
ttps://www.typescriptlang.org/play/

上記とかtypscriptがどんな感じかわかるから触ってみて
シンプルな見た目のくせに補完が効くしね。
試しにdom操作してみると感動するで

document.createElement とか使ってみて欲しい
document.createElement("button”)を実行するとちゃんとHTMLButtonElement型が代入されてるしそもそもdocumentって入力しただけで
候補が出るからtypoしようもないよね。
Name_Not_Found [sage] 2017/08/04(金) 13:18:13.38ID:???
確かに素晴らしいんだけど
大規模コード書くようなTSが有用なときって
あんまりそう言う重し付けたくないんだよね

何が嫌かって言ったらリリースデータに元とコンパイル後の2つ含めることになること
ポリフィルみたいに簡単に要らなくなったら外すとかできないし
Name_Not_Found [sage] 2017/08/04(金) 13:56:34.28ID:???

最悪tsを捨てちゃったっていいのよ。
生成されるファイルはtargetをes2015にして出せばそんなにはキチガイなコードにはならないからjsとの混在も可能だしね。

ちょっと前は型定義ファイル周りのエコシステムが乱立?して混乱を呼んだけど
今は平和だしいい感じよ。

俺はむしろtypescriptからjsに本格入門した。
vscodeで書いてるというのもあるけど、書いてる最中にバグを指摘してくれるから
気分的にはコンパイラとペアプログラミングしてる感じ。

いちいちドキュメントを見に行かなくてもvscodeが必須パラメータを教えてくれる。

感覚的には文字入力してる時に頭の悪いIMEから頭のいいIMEに代わって
凄く捗るぜーって感じかな。
Name_Not_Found [sage] 2017/08/04(金) 18:00:38.14ID:???

無いぞ


判明が静的と実行時では雲泥の差
Name_Not_Found [sage] 2017/08/04(金) 20:23:35.94ID:???
>let a:型 = ほげほげ
>みたいに型を:の後に追加するって仕様だけで使える。
インタプリタに慣れすぎて型指定するのめんどくさいお
Name_Not_Found [sage] 2017/08/04(金) 21:21:05.97ID:???

型推論使えるから基本関数とかメソッドのインターフェース定義のときしか要らないよ。
Name_Not_Found [sage] 2017/08/05(土) 17:09:35.45ID:???

これ
能力無い奴が余計なことして後手後手になる典型的なパターンなんだよな
Name_Not_Found [] 2017/08/07(月) 16:42:22.61:ZV9geJvA
自己流で覚えたので、おかしなやり方をしてる気がしてるのですが、どうもstring.match(/hoge/)が使いにくいのです

正規表現マッチだとオブジェクトで帰ってくるので

var temp = string.match(/.*hoge/).replace("honya","hage") ← stringじゃないのでエラー
var temp = string.match(/.*hoge/)[0].replace("honya","hage") ← マッチしなかった場合0なんてプロパティはありませんとエラー

となり良く止まってしまいます
これを判別して

var temp = string.match(/.*hoge/)
if(temp != undefined){
var temp2 = temp[0]
} else {
temp2 = ""
}
temp = temp2.replace("honya","hage")

と書くと、ただストリングがひとつ欲しいだけなのにいちいち長くなってしまいます
そこで

var temp = (string.match(/.*hoge/) || ["","",""])[0].replace("honya","hage")

最終的にこんな書き方になりましたが、見づらいし、こんな泥臭いというか力業が一般的な書き方とは思えず悩んでいます
そこで皆さんがどうやってるか・一般的にはどうやるのか、どうかアドバイスください
Name_Not_Found [sage] 2017/08/07(月) 17:59:51.55ID:???
var temp = string.match(/.*hoge/), temp2 = temp && temp[0].replace("honya","hage");
var temp = string.match(/.*hoge/).map( m => m.replace("honya","hage") ) [0];

ある程度はどうしようもない
Name_Not_Found [sage] 2017/08/07(月) 18:01:23.88ID:???
ごめん後者なしで
Name_Not_Found [sage] 2017/08/07(月) 18:42:08.10ID:???
愚直にやるのが一番いいと思うけど。
ワンライナーにしなきゃいけない理由がわからない
三ヶ月後の自分が分かるコードで書くべき
Name_Not_Found [sage] 2017/08/07(月) 19:30:51.85ID:???
こんなコード書かれたら発狂するわ
Name_Not_Found [sage] 2017/08/07(月) 20:45:20.80ID:???

&&をこんな感じに使えるんですね、なるほど参考になります
ありがとうございます


長いと目が迷子になってしまうので、特にmatchはよく使うので
一般的な感覚じゃないかもですが、行数の割に得られるものが少ないと、このブロック何の為だ、と後々読んだ時に混乱してしまって
でもif文で数行に書くのが一般的なのですね、なるほどありがとうございます
Name_Not_Found [sage] 2017/08/07(月) 22:00:11.62ID:???
string.match(/(.*hoge)/)
temp = RegExp.$1.replace("honya","hage")
Name_Not_Found [sage] 2017/08/08(火) 02:08:12.03ID:???

これRegExp.$1に何も入ってなくてもエラー吐かないんですね
こんな裏技あったとは、RegExpって気になってたので意識して使ってみます、ありがとうございます
Name_Not_Found [sage] 2017/08/08(火) 04:59:19.20ID:???
条件が複雑なら、コードも複雑になるのが、当たり前。
そのまま素直にコードにすればよい

条件が複雑なのに、コードが単純になっていれば、間違っている。
コードを単純に出来るなら、条件も単純に出来るはず

2段階のプロセス。
1. 論理的に正しい証明を先にしてから(仕様書)、
2. その通りにコードに写す(実装)

2を修正したら、常に1に帰ってから、正しさを証明して、2を修正する。
常に、考える時は、1の仕様書で考える

&& を使ったら、if-else よりも、分かりにくい。
頭の中で、if-else に置き換えて、
論理的に矛盾が無いか、証明しないといけないから、余計に難しい。
つまり、見落とし・勘違い・バグが起こる、可能性が高くなる

もし、&& の右の式に、副作用があって、何かの状態を変える場合、
パッと見て、右式が実行されたか、されていないか、分かりにくい。
頭の中で、間違いが無いか、確かめるのが大変

論理的に正しいと証明するのが、一番難しい。
コードを書くよりも難しい
Name_Not_Found [sage] 2017/08/08(火) 08:57:46.63ID:???
ECMAでRegExp.$1などを無くそうかという議論がされてるときに
堂々と提案できるやつはどういう神経してるんだろう
Name_Not_Found [sage] 2017/08/08(火) 09:31:44.99ID:???
なくなってからまたおいで
10年後ぐらいにね
Name_Not_Found [sage] 2017/08/09(水) 02:51:27.94ID:???
なくそうか、じゃなくて仕様に拡張として追加しようか、という案と反対意見でしょ
現時点ではただのレガシーな独自実装なんだから、勧めるのは確かに良くないよ
Name_Not_Found [sage] 2017/08/09(水) 09:45:36.44ID:???
やっぱそうだったかw
無くすわけないしな

全てのブラウザで使えて昔から
よく使われているものなんだから
仕様に追加するべきだろうな。

昔から広く実装されているからって
レガシーってことにはならんよ
Name_Not_Found [sage] 2017/08/09(水) 22:36:56.14ID:???
よく使われている……?
キチガイじみててめまいがしてくるなw
Name_Not_Found [sage] 2017/08/09(水) 23:50:53.63ID:???
HTML5っていうのはそもそも過去のブラウザを含めて各ブラウザで
同じようにレンダリングできるように仕様が固められたもの
仕様があってそれに準拠するようにブラウザを開発するのとは逆。

だからJavaScriptでも同じように動くことを目標としてるので
使われている機能は消さないし、標準化されてないのであれば
標準化する方向にすすむ。
Name_Not_Found [sage] 2017/08/10(木) 07:50:42.87ID:???

基地外が立てたスレだから許してやれ
Name_Not_Found [sage] 2017/08/10(木) 09:36:53.61ID:???

「JavaScript」の仕様があればそうだし、現にWHATWGにはRegExpの拡張を含む「JavaScript」仕様があった
での削除された、その理由を考えると良い
Name_Not_Found [sage] 2017/08/10(木) 19:06:04.88ID:???
ちょっとスレチかも知れないのですが
<video src="blob:ttps://google.com/example">
のsrcのblobって何を表しているのでしょうか?blob先のURLにアクセスしてみても404なのですが
Name_Not_Found [sage] 2017/08/10(木) 20:26:08.60ID:???
data:image/png;base64,〜のようにDataURIは知ってると思うがそれの親戚だ
よりでかいバイナリデータを扱う場合に適しているAPI
Name_Not_Found [sage] 2017/08/10(木) 21:16:14.19ID:???

あー、考えたw 考えたw
はい、この話題はおしまい
Name_Not_Found [sage] 2017/08/10(木) 21:17:05.02ID:???

そういうことを聞いてるんじゃないだろ
説明が的はずれだな
Name_Not_Found [sage] 2017/08/10(木) 21:22:34.09ID:???
どこが的はずれなんだ?何を表してるって聞かれてバイナリオブジェクトってまんま答えなわけだが
Name_Not_Found [sage] 2017/08/10(木) 21:33:50.04ID:???

有難う御座います
すみません詳しい説明の乗ってるサイトとかってありますか?
404のページのURLが何を表してるのか分からなくて
Name_Not_Found [sage] 2017/08/10(木) 21:39:29.98ID:???
Q. srcのblobって何を表しているのでしょうか?

A1. バイナリデータを扱う場合に適しているAPIだ!
A2. バイナリオブジェクトだ!


的外れは続くよw
Name_Not_Found [sage] 2017/08/10(木) 21:49:48.50ID:???
メモリ上にあるオブジェクトに発行した一時的なIDみたいなもんでそのページのみで有効
普通にいつでもどこでもアクセス可能なURLではない
Name_Not_Found [sage] 2017/08/10(木) 22:56:56.64ID:???

有難う御座います
URLぽくなってるものの、実際には変数みたいなもので
"blob:ttps://google.com/example" が "ttps://movie.google.com/example.mp4" みたいな実URLに置き換えられて動画にアクセスしてるって感じで合ってますか?
Name_Not_Found [sage] 2017/08/10(木) 23:51:26.90ID:???
blob は Binary Large Object の略称だから的外れでもない
Name_Not_Found [sage] 2017/08/11(金) 07:41:17.24ID:???

動画サイトなら手軽にアクセスできなくしてるのだろう
直リンで見れるようなら自分が持ってる動画プレイヤーや
第三者サイトの動画プレイヤーやとかで見れてしまうわけで
そうすると広告のある自サイトに誘導出来ないから困っちゃうとかね
Name_Not_Found [sage] 2017/08/11(金) 09:17:38.63ID:???
Blobと言うのは要するにプログラム中に存在するファイルデータみたいなもんだよ
そんでそのURLはそのデータを参照させるためのもの
つまりブラウザ内に存在しているデータへのリンクであって、
そのデータはどこかから取ってきたものかもしれないが、
blobURLが外部へのURLに置き換わるわけではない
Name_Not_Found [sage] 2017/08/11(金) 09:20:46.41ID:???
Firefoxスレで質問してみたのですが答えが返って来なかったのでご存知の方お願いします

Fullscreen APIでflashをsrcに指定したiframe要素をフルスクリーン化したあと
フルスクリーン化したiframe内を左クリックすると元に戻っていたのですが
先日リリースされたFirefox55になってからこの方法では戻らなくなり
ESCキーを押した時に戻るようになりました
Firefox55でも引き続きフルスクリーン化の脱出に左クリックを使いたいのですが
何か情報ありませんでしょうか?
Name_Not_Found [sage] 2017/08/11(金) 09:25:36.12ID:???
その話は知らんけどflashは2020年には廃止されるようだな
Name_Not_Found [sage] 2017/08/11(金) 12:58:38.70ID:???
フルスクリーンのUIはずっと固まってないじゃん
Chromeでもオプション提供してずっと実験してるし
今たまたま望み通りいってることがこの先も上手くいくとは限らないと考えるべきだよ
Name_Not_Found [sage] 2017/08/11(金) 13:01:52.59ID:???
まあdocument.exitFullscreenをうまく使う位しか望みは無いんじゃないの?
69 [sage] 2017/08/11(金) 13:16:13.10ID:???

レスありがとうございます
Firefoxの場合設定いじったり加えると戻ったりするのですが今回は見当もつきませんでした
JavaScriptで制御できればいいんですけどね
iframe側はflash直接埋め込んでるのでJavaScript使えないので
フルスクリーンにしてフォーカスがiframe内に移ってしまうとどうしたらいいかわからないです
iframeが動作が軽快なのでiframeをどうしても使いたいため
objectやembed使う以外でなんかうまい解決策とかありそうでしょうか?
Name_Not_Found [sage] 2017/08/11(金) 14:50:01.47ID:???
iframeが動作が快適だと考えるのも危ないと思うよ
今ちょうど各ブラウザがiframeの優先度やどういうプロセスで動かすか大改造中だもの

で、iframeが同オリジンなら操作できるかもね
69 [sage] 2017/08/11(金) 17:29:12.90ID:???

iframeを参照するhtmlもiframeのsrcのflashも同じオリジンです
localhostで使っているものなので
そうするとflash側のソースをいじらないといけないんですかね
一応オープンソースなのでソースはいじろうと思えばいじれるのですが
ActionScriptはさっぱりです
57 [sage] 2017/08/11(金) 18:13:46.16ID:???

"blob:ttps://google.com/example"というのは、いったんブラウザメモリへダウンロードしたファイルへアクセスさせる変数ということで合ってますか?
しかし動画ファイルだと数ギガあったりするので
「はい今数ギガの動画を一瞬でダウンロードしたのであとはローカルでアクセスしてください」ってことになっておかしい気がするのですが
どこか認識が違ってるでしょうか?
Name_Not_Found [sage] 2017/08/12(土) 05:40:45.04ID:???
そうだけどメモリとかよりはもっと抽象的に考えたほうが良いとは思うよ

それで動画はチャンクで細切れに送られてくるものだから
MediaSource APIを使って随時結合していってるんじゃないの?
Name_Not_Found [sage] 2017/08/12(土) 09:18:14.70ID:???

そんなAPIがあるんですね。つまり動画を見てる時、再生時間が変わる度に
再生時間に合わせた細切れ動画をダウンロード→blob:ttp://~~のリンクを今ダウンロードした場所へ変更→blob:ttp://~~の内容が変わったことをブラウザが感知して新しい動画が再生される
という感じですかね
どうも有難う御座いました
69 [sage] 2017/08/15(火) 07:33:07.43ID:???
先日質問しましたが、解決しました
ttps://stackoverflow.com/questions/15080222/add-click-event-to-iframe
ここのUsing :afterの方法が簡単そうだったのでそれで試した所うまく働きました
Name_Not_Found [sage] 2017/08/15(火) 09:16:47.49ID:???
完全に取り残されて、最新の情報に追いつけないのですが、
10年前のコードから、順を追って現在のコードに変えていきたいのですが、
何か最適な学習法やサイトありませんか?
Name_Not_Found [sage] 2017/08/15(火) 16:09:23.61ID:???
必ず覚えておきたいという物は少ない
便利機能や雑多なもの、細かい難しい点についてはざっと眺めとくだけでいい

まずばletやconstだけど、どんな説明見ても一回で分かるだろう
次にclassだけど、これも重要な点はすぐ理解できると思う

一番の問題はPromiseかもしれない。
まあググって上の方のページ見とけば良いんだけど、
機能や使い方だけではなく、概念を理解しないといけないから
頭の柔軟度などに依存して難しいかもしれない

あとは本当に自分で自分のために使っていって慣れるしか無い
Promiseはこれから普及するasync関数で真価を発揮する
だからまだ取り残されては居ない
2020年くらいまでは猶予がある
Name_Not_Found [sage] 2017/08/15(火) 16:13:53.86ID:???
ESの変更については上記の通りだが、
Web APIについては、進化点を探すのが難しいかもしれない
取り敢えず自分が情報追うのに使っているのは、このChromeの実装計画

ttps://www.chromestatus.com/features
ここを左の下のVersion 1から順に選んで見ていったら良いかもしれない
追加だけでなく廃止された重要な点も書いてある
Name_Not_Found [sage] 2017/08/16(水) 12:18:40.28ID:???
無理だとは思いますが、
Windowsのスタンバイ時、スタンバイ復帰時に、
開いていたブラウザでイベントを起こすことってできますか?
Name_Not_Found [sage] 2017/08/16(水) 17:23:22.09ID:???
似たようなことはできるよ。
調べるの面倒なんで
例のWeb APIマニアさん頑張ってw
Name_Not_Found [sage] 2017/08/17(木) 18:55:40.07ID:???
出来ると知っているのに「調べるのが面倒」とはどういう意味だ?
Name_Not_Found [sage] 2017/08/17(木) 22:03:58.40ID:???
あー、あの関数でできそうだよ
関数名忘れたけど
Name_Not_Found [sage] 2017/08/18(金) 01:55:02.43ID:???
知ったかして、詳しい人が解説してくれるのを待つテクニックか
Name_Not_Found [sage] 2017/08/18(金) 06:26:46.95ID:???
自分も気になって横から知ったか書き込みしたんだろうけど
スレの雰囲気も悪くなるしただ迷惑
Name_Not_Found [sage] 2017/08/18(金) 08:41:22.65ID:???
横着な方法だけど、1秒毎に時間測って一定以上感覚開いていないか調べれば良いんじゃないの?
Name_Not_Found [sage] 2017/08/20(日) 17:42:43.39ID:???
Promise は過渡期に出来てしまったから、.method() な連結記法が鳥肌ものにダサい。
Name_Not_Found [sage] 2017/08/21(月) 23:52:00.46ID:???
えー超便利だけどじゃあどういうのがいいわけ?
Name_Not_Found [sage] 2017/08/22(火) 14:15:50.77ID:???
Promiseってなんじゃ?xhrじゃだめなんけ?
Name_Not_Found [sage] 2017/08/22(火) 16:26:05.23ID:???
Promiseは昔っから概念がある物だしESでも1年以上十分に練られただろうよ。
Name_Not_Found [sage] 2017/08/23(水) 11:19:26.79ID:???
Promiseはasync-awaitと組み合わせてこそ最強
Name_Not_Found [sage] 2017/08/23(水) 14:02:45.98ID:???
awaitぐらいasync無しに単体で使わせろよと思う
Name_Not_Found [sage] 2017/08/23(水) 18:18:35.52ID:???

時間掛かる処理の場合、続けてなにかやりたいときは
コールバックで渡すからやりたいことがいくつもあると
どんどんネストしていくことになるじゃん?

promiseはそうではなく、メソッドチェーンで繋いでも
ちゃんとひとつひとつの処理が終わるまで待ってくれるやーつ
Name_Not_Found [sage] 2017/08/23(水) 22:42:43.34ID:???
今electronやっててjqueryで要素の編集とかで練習してんだけど
electronとjqueryの相性悪いのとjquery単体で画面パーツとか無いから新しいライブラリ探してるんだけどいいのないですかね??
色んな画面パーツとそこからのイベントが簡単に用意出来ればいいんだが
Name_Not_Found [sage] 2017/08/24(木) 10:27:54.81ID:???

reactとかvue.jsとかかね。vue.jsが無難
Name_Not_Found [sage] 2017/08/24(木) 20:22:12.86ID:???
サーバサイドのデータをクライアント側で編集するタイプのアプリを作っていますが
サーバサイドの状態とクライアント側が前提としている状態が
ズレた時の問題について考えています
データ変更のたびに変わっていくバージョン情報を設定し
クライアントが読み書きする時にはサーバに自分が所有しているバージョン情報を渡し、
それがズレていたらサーバは差分情報をクライアントに返し、
クライアントは差分を自分に適応する、
というような方法がいいのではないかと思ったのですが
もっといい方法ありますか?
あとこういうアプリのサンプルが載ってる本とかあれば教えてください
Name_Not_Found [sage] 2017/08/24(木) 20:29:16.60ID:???

これ立ち読みしてみ。
ttps://www.amazon.co.jp/dp/4774188190

どんなクオリティであれ自分が勉強してる分野の紙の本が出てるってすばらしい!
検索しなきゃいけない量がめっちゃ減るからね。
Name_Not_Found [] 2017/08/24(木) 20:39:42.06:VqVyYokKM
🐒
Name_Not_Found [sage] 2017/08/24(木) 21:27:00.81ID:???

Firebaseはどう?
PouchDBは?
Name_Not_Found [] 2017/08/24(木) 23:32:45.21:D0oxmKt+

> サーバは差分情報をクライアントに返し、
> クライアントは差分を自分に適応する、

という部分の実装がどれだけ面倒かによるかな。クライアント側の1レコードの編集に掛かる手間がどれだけか、というのも考慮したい。
サーバのデータ(レコード)に最終更新日時を持たせて、それをバージョン情報として利用できる。
DBの更新条件に最終更新日時を付けてUPDATEして、更新されたレコード数を確認。もし0件だったら、最終更新日時が変更されていたことになる。

> あとこういうアプリのサンプルが載ってる本とかあれば教えてください

本とかは知らない。
Name_Not_Found [sage] 2017/08/24(木) 23:40:00.38ID:???

おおおりがとう

これ実はフライングで買ってしまったんだけど解説に次々に知らんjsライブラリぶっこんで来るからソースコードの理解進まないから止めたわ、、
Name_Not_Found [sage] 2017/08/25(金) 01:05:03.27ID:???

firebaseっていうの知らなかったんですが、
面倒な部分をgoogleに全部丸投げできるのめちゃくちゃ魅力的ですね
調べてみます
ありがとうございました
Name_Not_Found [sage] 2017/08/27(日) 14:12:55.79ID:???
数秒ごとに細かく同期して、ずれたら単純に破棄するのが一番見易いよ
Name_Not_Found [sage] 2017/08/28(月) 21:34:43.38ID:???
setIntervalとかsetTimeoutって結構誤差出ませんか?
プチフリするようなしょぼい環境だったり
秒数カウントする(何回も呼ぶ)ものとかだと特にそんな感じがします
1/1000秒単位で正確なタイマーが欲しい場合って
別のタイマー使ってで数秒起きにズレ修正したりするのでしょうか?
Name_Not_Found [sage] 2017/08/28(月) 22:40:10.36ID:???
なんか高精度のタイマーあったろ?
Web APIマニアさんに後は任せた
Name_Not_Found [sage] 2017/08/29(火) 02:02:57.18ID:???

ttps://developer.mozilla.org/ja/docs/Web/API/WindowTimers/setTimeout#Reasons_for_delays_longer_than_specified
ここに理由も書かれてるし、代替案のリンクも張られてるな。英語だけどwindow.postMessage()使うみたい。
107 [sage] 2017/08/29(火) 13:34:03.22ID:???

ありがとうございます
4msから指定可能であって(1ms指定しても4msになる)
1秒に設定したら1004msになるというわけではないですよね?
描画処理入れたら描画が終わってからタイマーが再びセットされる感じで
描画処理の分ずれていってるのかもしれないですね
ちょっとコード見なおして検証してみます
Name_Not_Found [sage] 2017/08/29(火) 14:04:17.34ID:???

> setIntervalとかsetTimeoutって結構誤差出ませんか?
誤差以前に、その2つは等価じゃないのになぜ同列として扱う?

・setInterval はコールバック関数の処理時間を待機せずにインターバルをおく
・setTimeoutの再帰呼び出しではコールバック関数の処理完了後にインターバルをおく
Name_Not_Found [sage] 2017/08/29(火) 14:20:33.09ID:???

「なんか高精度のタイマー」とは具体的に何ですか?
Name_Not_Found [sage] 2017/08/29(火) 14:40:56.28ID:???
Node.js にも、何種類か、タイマーがあったかも

高性能タイマーとは、ベンチマークで速いもの
Name_Not_Found [sage] 2017/08/29(火) 16:25:28.45ID:???

> Node.js にも、何種類か、タイマーがあったかも
>107の要件を満たせそうなタイマーは何?

> 高性能タイマーとは、ベンチマークで速いもの
タイマー処理で何がどう速くなるの?
Name_Not_Found [sage] 2017/08/29(火) 22:02:29.05ID:???

違いはそこじゃねーよw

setIntervalは登録したコールバックを定期的に何度も呼び出す
setTimeoutは登録したコールバックを一回だけ呼び出す
Name_Not_Found [] 2017/08/29(火) 22:10:00.75:E3IgUCub

いや、それは誰でも知ってるだろ
同列に扱っているから、定期的に関数を呼び出す処理を前提に質問していると思ったんだよ
それぐらい読み取ってくれ
Name_Not_Found [sage] 2017/08/29(火) 22:19:46.46ID:???

同列に扱ってなんかいないだろ

setIntervalが誤差でずれていく
setTimeoutが誤差でタイムアウトする時間がずれている

違う話だろ
Name_Not_Found [sage] 2017/08/29(火) 22:30:09.12ID:???

質問者の下記一文は読んだか?

> 秒数カウントする(何回も呼ぶ)ものとかだと特にそんな感じがします
これを実装する為には setTimeout を再帰呼び出して setInterval と似た振舞いにしなければならない
ここで、setTimeout と setInterval ではインターバルの取り方が違うだろ
要件次第でどちらを選択するかが決まる
目的に合う実装は一つしかないはずなのに、setTimeout と setInterval を一緒くたに問題視するのは違うだろ
Name_Not_Found [sage] 2017/08/30(水) 05:25:33.41ID:???
下記一文ってそれだけが全てじゃないだろうに
Name_Not_Found [sage] 2017/08/30(水) 09:09:12.57ID:???
だな、setTimeout と setInterval の特性ぐらい勉強してね
Name_Not_Found [sage] 2017/08/30(水) 09:38:26.11ID:???
特性の違いは理解してるように読めるけどな
読解力の問題か
Name_Not_Found [sage] 2017/08/30(水) 12:19:11.35ID:???
こんな過疎板で自演するなや見苦しい
Name_Not_Found [sage] 2017/08/30(水) 15:57:27.84ID:???
情報が正しいのなら、自演云々はどうでもいい
煽りは害悪
Name_Not_Found [sage] 2017/08/30(水) 16:03:40.21ID:???

では、の回答が全てなのか?違うだろ?
回答で全てを語っているなんて誰も言ってない


知ってる
Name_Not_Found [sage] 2017/08/30(水) 17:08:41.75ID:???
もう不毛な議論な気がする
回答にイチャモンをつけるのが正義みたいな風潮は何とかならんのかな
否定するなら、さらに良い回答で塗りつぶすぐらいの気概がある方が健全だと思う
彼は言葉は悪いけど、回答しているだけ非難だけしている人より数段マシだよ
Name_Not_Found [] 2017/08/30(水) 22:17:24.67:Imeby3lO
【環境】Win7-Pro,Chrome60.0
【何をしたいのか】NumLockキー状態の監視

リロードや何かの操作(イベント)の際のNumLockキーの状態を監視したいです。
例えば、リロードしたとき console.log("NumLockキーはOFF"); とかの出力をしたいです。
何か案はありますか?
Name_Not_Found [sage] 2017/08/30(水) 23:32:05.92ID:???
console.log("NumLockキーは"+event.getModifierState("NumLock")?"ON":"OFF");
Name_Not_Found [sage] 2017/08/30(水) 23:43:14.48ID:???
eventはkeydownとかのKeyboardEventじゃないとgetModifierState()生えてないからリロードの時とかは無理だな
Name_Not_Found [sage] 2017/08/31(木) 00:17:09.34ID:???
あ、MouseEventにも生えてんのか。
じゃvar fresh = true;とかしといてbodyのmousemoveとかmouseoverとかのハンドラのなかにif(fresh){さっきのconsole文;fresh=false;}すればどうか。
スマホだから確認できんけど
126 [sage] 2017/08/31(木) 18:08:57.85ID:???

レスありがとうございます。 event.getModifierState("NumLock") で色々細工してみます
Name_Not_Found [sage] 2017/09/03(日) 00:26:56.14ID:???
すみません
javascriptの曖昧な型定義や柔軟性による複雑さは
jsDocコメントを書く事で回避できますでしょうか?
Name_Not_Found [sage] 2017/09/03(日) 01:05:40.28ID:???
複雑な理由はお前のコードの問題だから
JsDocどころか例え型定義があったり柔軟性がなくても
何も回避できないよ。
Name_Not_Found [sage] 2017/09/03(日) 01:42:32.01ID:???

jsdocて単なるJavadocのポーティングでしょ?ちゃんと書いたらそれにしたがったドキュメントを自動生成してくれるにすぎない。
flow(flowtype)やtypescriptなら型検査してくれるよ。
お手軽に始めるならflowがいいんじゃない?typescriptはちょっと(週末潰すくらい)気合い要る。
131 [] 2017/09/03(日) 02:28:16.27:mSmyCXiG
ありがとうございます。


そうですね。
その場凌ぎのプロパティ追加やコールバックの嵐等、気を付けます。

そうですね。flowやtypescriptを使って安心するの良いかもです。

しかしjavascriptはアセンブラ言語みたいな扱いをされているのが
何とも面白いですね。
Name_Not_Found [sage] 2017/09/03(日) 05:36:32.07ID:???
それはES2015が出る前の考え方だよ
今はWASMもあるし今更そういうこと言うやつは居ない
Name_Not_Found [] 2017/09/03(日) 21:44:32.30:RQxmc/0y
<p id="hahaha"></p>
↑このpタグのみになにか処理したい場合のセレクタの書き方おしえて。
pタグ かつ id="hahaha"ってどう記述すればいい?
Name_Not_Found [sage] 2017/09/03(日) 21:51:40.73ID:???
idってのはhtml中に1個しか出てきちゃいけないもんだぞ
pタグであるかどうかなんて関係なく#hahahaだけでいい
まぁ別にp #hahahaとかでもいいけど
Name_Not_Found [sage] 2017/09/03(日) 23:04:10.21ID:???
document.getelementbyidで取得とかは?
Name_Not_Found [sage] 2017/09/03(日) 23:26:50.18ID:???
普通に
document.querySelector('#hahaha');
でいいんじゃね
速度が問題になるほどかどうかだけど
Name_Not_Found [sage] 2017/09/03(日) 23:40:07.88ID:???
idひとつしかつけちゃいけないって言っても、つけたから何かエラーが起きるわけでもないし普通に2つ以上についてることもある
querySelectorでp#hahahaでいいんじゃない
Name_Not_Found [] 2017/09/03(日) 23:45:11.25:buG2OJDC
関数の有無をチェックし、その関数を実行するということをやりたいのですが、
fCheckだけなら以下で済みますが

if ( typeof fCheck == "function") {
fCheck();
}

fCheckの部分を変数に入れるなどして使いまわしたい場合は、どのように書けば良いでしょうか?
Name_Not_Found [sage] 2017/09/04(月) 00:22:22.40ID:???

そのコードの場合、fCheckに関数以外が入っている(つまりバグ)の場合に
スルーされてしまうので良くない。

if (fCheck) {
fCheck();
}
の方が良い

さらにいうなら
fCheck && fCheck();
でもよい

また予め fCheck = fCheck || function() {} などとしておけば、

fCheck(); とするだけでよくなる
Name_Not_Found [sage] 2017/09/04(月) 00:40:24.38ID:???

それはhtmlをまず直せって話だな
javascriptってあたりよそのhtmlいじるわけじゃないんでしょうし
Name_Not_Found [] 2017/09/04(月) 00:46:58.27:G+KHmFrZ
>142
なんと・・・
勉強してきます、ありがとうございました
Name_Not_Found [?????] 2017/09/04(月) 03:06:18.93ID:???


idは一意の値であるべき。
重複してたらバグと考え、エラーにならないなら重複しても良いのではという浅い考えは捨て去るべし。
idとclassの存在意義を理解しろ。
Name_Not_Found [sage] 2017/09/04(月) 06:30:16.46ID:???
>>143
いやもうすでに重複して使ってるサイトは山ほどあるんだから
そんなこと言ったってどうしようもないじゃないか
Name_Not_Found [sage] 2017/09/04(月) 08:00:15.59ID:???
id重複は DOM 的には最初の id 以外は無視され、 CSS 的には詳細度の高い class みたいなもの

自動的に validator を通すようにしとけば id重複は自然となくなる
Name_Not_Found [sage] 2017/09/04(月) 08:26:10.50ID:???
構文を扱う資格なし
Name_Not_Found [sage] 2017/09/04(月) 09:51:22.30ID:???
フォームはnameで区別するのだから
idは基本的に使う必要はない。
Name_Not_Found [sage] 2017/09/04(月) 10:21:56.73ID:???
,146
他サイトで重複idがあることは、自サイトで重複idを使うことの理由にはならない
「重複して使ってるサイトは山ほどある」(採用例が多い)も観測範囲によって変わってくる主観的なものだし、仮に信頼できる統計で採用例が多かったとしても、「使ってよい」かの判断は別
文法違反なんだから
ttps://momdo.github.io/html/dom.html#global-attributes

自分の管轄外のサイトにJavaScriptを適用するのであればどうしようもないが、そういう前提条件があるのなら質問の冒頭に付け加えるべきだし、<p id="hahaha">, <div id="hahaha"> のどちらが先に存在するのかによって変わってくる
<p id="hahaha"> が初めに来ることが保証されているのなら、getElementById
id="hahaha" が出現する順番がランダム or <p id="hahaha"> が2番目以降に出現し、<p id="hahaha"> を特定したいのならば、document.querySelectorAll('p[id="hahaha"]').forEach()
150 [sage] 2017/09/04(月) 10:25:33.47ID:???
一応、付け加えておくと、ここはWeb制作板だから、何の前提もなければ、回答者は自サイトのコードを書くものと判断する
従って、「id は一意の値であるべき」の回答は正しい
Name_Not_Found [sage] 2017/09/04(月) 10:38:52.49ID:???
はスレ間違えたのか?
礼も返事もないし、HTMLスレにでも行ったんじゃないか?
Name_Not_Found [sage] 2017/09/04(月) 11:15:02.61ID:???
ローカルルールでIDの乱用はいかんよ
振り込め詐欺かよw
Name_Not_Found [sage] 2017/09/04(月) 12:09:34.89ID:???
うちの社内のコーディング規約ではcssのためのidは使用禁止にしてる
idはjsのために空けとくこと
cssでidって使わなくてもclassで問題ないしね
レンダリング時の速度も変わらないし
jsではid指定とclass指定では速度が全然違うからid使うようにしてる
だから同一idが複数使われることがないな
もし使うやつがいたらこの仕事やめろってぐらい異常
146 [sage] 2017/09/04(月) 16:32:48.26ID:???
まあ確かに、わざわざ重複させる必要性は分からないけど
おそらくjqueryが一般化されて第二のクラスみたいに使う人が増えたんだろうな
Name_Not_Found [sage] 2017/09/04(月) 16:43:28.94ID:???
重複して使ってるサイトなんて本当にあるのか?
繰り返しで同じパーツ吐き出す場合に
ひな形にid入れてたりするとそうなるのかもしれないけど
それはテンプレート作ったやつがアフォーだっただけやで
Name_Not_Found [sage] 2017/09/04(月) 18:17:49.63ID:???
他人のサイトなんてグリモンスクリプトとか作ってんきゃあんまり関係ない話だけど
youtubeとかアホみたいに重複してるよ
Name_Not_Found [sage] 2017/09/04(月) 18:33:21.17ID:???
関数内にその関数いれたら無限ループにできる?
Name_Not_Found [] 2017/09/04(月) 18:46:54.44:G+KHmFrZ
出来る
ちなみにそれは再帰関数という名称がある
Name_Not_Found [sage] 2017/09/04(月) 19:08:36.30ID:???
thanks勉強になった
Name_Not_Found [sage] 2017/09/04(月) 20:35:34.29ID:???

なんでそこでjQueryがでてくるのかわからんのだけど?
jQueryのセレクタは条件が揃えばquerySelectorAllを使うわけで
重複したIDの挙動はDOM APIと同じだよ
Name_Not_Found [sage] 2017/09/04(月) 20:38:47.95ID:???

何しれーっと嘘ついてるの?
idの数が多いから嘘がバレないと思った?
Name_Not_Found [sage] 2017/09/04(月) 20:43:49.71ID:???
googleがvalidなhtml書いた試しなんてないじゃん
プログラム上の利便性優先でルールなんてお構いなしでなんでも使う
検索エンジン握ってるだけあってどんな糞みたいなHTMLでも最上位に来るし
SEOなんて考慮する必要がないからやりたい放題
Name_Not_Found [sage] 2017/09/04(月) 20:45:02.14ID:???

俺の場合、JavaScriptからでも極力IDは使用しないようにしている。

なぜならコンポーネントという考えでDOMを扱ってるから。
通常コンポーネントは複数存在する。だからIDではなくクラスを使用しなければいけない。
大抵の処理はこのコンポーネントの中で閉じてしまうのでIDの出番がない。

コンポーネント化した要素同士をつなぐときにはIDでいいっちゃいいんだけど、
IDでやっちゃうとコンポーネント間が密結合になってしまう。
だからイベント等を使って関節的に通信するようにする。
そうするとIDを使ってつなぐ必要は殆ど無くなる。

速度に関して言えば、classが遅くても今のブラウザは高速で
実用上問題が発生したこともないので考えるだけ無駄だと思ってる
もしclassを使って遅くなるとしたら1ページ内のタグが多すぎ

IDを使ったほうが良いと思える場所は、ページの区別だな。
bodyにidを振る。だからページ内でユニークになるのではなくサイト内でユニークになる。
何のためかというと、特定のページだけに特殊なcssやjavascriptを割り当てたい時。
通常はコンポーネント化するから必要なのだが、まあ極稀に想定外の自体で
特定のページだけ緊急に修正しなければいけないとかで便利なのよ
Name_Not_Found [sage] 2017/09/04(月) 20:49:57.02ID:???
id 2文字
name 4文字
class 5文字

これ結構重要
Name_Not_Found [sage] 2017/09/04(月) 20:54:56.43ID:???

今見たけど52個ぐらい使われてるIDあった
YouTubeの内容はブラウザとかによって変わるかも
Name_Not_Found [] 2017/09/04(月) 20:58:55.38:G+KHmFrZ

ねーよw
idを使ったせいで保守が100倍大変になる事はよくある
絶対にclassがいい

IDを使うのはページ内アンカー用のみ
Name_Not_Found [sage] 2017/09/04(月) 21:02:10.48ID:???

リンクアンカーにはどうしても必要にならないか?
Name_Not_Found [sage] 2017/09/04(月) 21:08:19.80ID:???

> リンクアンカーにはどうしても必要にならないか?

なるけど、それJavaScriptのためのIDじゃないよね?
Name_Not_Found [sage] 2017/09/04(月) 21:16:25.55ID:???
そうだなあ
そもそもJS使うのにIDを多用するようになったのって
クエリセレクタが使えるようになる以前に
人にJSを説明するようなコードが無駄に煩雑にならんように
getElementByIdを多用してたからみたいな側面あるし
Name_Not_Found [sage] 2017/09/04(月) 23:05:23.08ID:???

そうなのか、まあ勝手な推測だからな
Name_Not_Found [sage] 2017/09/04(月) 23:19:03.66ID:???
>idを使ったせいで保守が100倍大変になる事はよくある
>絶対にclassがいい

idを使うようなケースをclassに置き換えたところで
それは一意なclass名を持つclassになるだけであって
むしろ5文字になる分保守は面倒になるだけだろ
Name_Not_Found [sage] 2017/09/04(月) 23:27:18.14ID:???

逆じゃね?
idで済むものをclassに置き換えるのは楽だけど
classで出来る重複はidでは不可能なので大変、つー話では?
Name_Not_Found [sage] 2017/09/04(月) 23:35:28.01ID:???
>idで済むものをclassに置き換えるのは楽だけど
より制約が強いのはidのほうであって
idで済むという表現はおかしい
idじゃないと出来ないからidにしてると考えるべき
Name_Not_Found [sage] 2017/09/04(月) 23:39:58.89ID:???

それはそうだろうけど
そういう話じゃないんじゃない?
Name_Not_Found [sage] 2017/09/04(月) 23:56:20.41ID:???
ま、htmlの話だし、出来ればなんでもいいってことで、
そろそろ次の話題頼むわ。
Name_Not_Found [sage] 2017/09/04(月) 23:59:45.32ID:???
いや、jsの話だろ
Name_Not_Found [sage] 2017/09/05(火) 00:04:44.93ID:???
漢ならchildNodesとかでどうにかしろ
Name_Not_Found [sage] 2017/09/05(火) 00:08:39.38ID:???
いや女だし
Name_Not_Found [] 2017/09/05(火) 00:34:36.40:Bf/p7I5y
初心者なんですが、皆様に質問です。

スマホサイトでonclikで表示させたサイトを一番後ろで表示させたいのですが、どのように記述
すればよいですか?

今使用しているのは
<script>
function openWin2() {
window.open('http', 'bbb', 'left=50,top=0,width=520,height=650');
window.open('http', 'aaa', 'left=50,top=0,width=520,height=650');
subWindow.blur();
return ture;
}
</script>

foucusを使うといいよ!との助言を前に他のサイトで頂いたのですが、何度やってもうまくいかず。。。
Name_Not_Found [sage] 2017/09/05(火) 01:59:20.63ID:???
まずは英語の勉強かな
click focus
Name_Not_Found [sage] 2017/09/05(火) 02:46:11.66ID:???
サイズ書いても意味ないじゃろ
Name_Not_Found [sage] 2017/09/05(火) 08:37:38.60ID:???

メインとなるウインドウを開かせると同時にバッグラウンドで広告ウインドウを開かせようという腹か
迷惑スクリプトの類だな
Name_Not_Found [sage] 2017/09/05(火) 09:49:24.01ID:???
というかwebブラウザで事足りるだろw
Name_Not_Found [sage] 2017/09/07(木) 00:37:56.59ID:???

回答貰えなくて、別の場所でマルチポストを繰り返すだけなんだろうな
ttps://ja.stackoverflow.com/questions/37689/window-open%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6
Name_Not_Found [sage] 2017/09/07(木) 11:22:53.26ID:???
ついにmodule importがchromeに実装されたな
主要ブラウザ全ての実装されたら切り替えていっても良いのかね
Name_Not_Found [sage] 2017/09/07(木) 13:21:32.89ID:???
dynamic importは?
こっちのほうもあくしてくれ
Name_Not_Found [sage] 2017/09/07(木) 14:32:47.88ID:???
あれdefault exportされたやつ扱うのがクソ面倒なのどうにかなった?
Name_Not_Found [sage] 2017/09/07(木) 23:46:39.86ID:???
イベントの処理を考えると
JavaScriptも内部に複数のプロセスみたいなものを持っていると思うんですが
JavaScript内部のプロセスみたいなもののことを何と言いますか?
Name_Not_Found [sage] 2017/09/08(金) 00:00:08.42ID:???
コアとかエンジンとか
Name_Not_Found [sage] 2017/09/08(金) 00:14:55.28ID:???
いや、そういうことじゃないんです
OSでいうスレッドやプロセスに相当する
複数の「処理の流れ」をJavaScriptは内部で持ってますよね?
知りたいのはそれの名前です
Name_Not_Found [sage] 2017/09/08(金) 00:32:46.58ID:???
イベントループかな
Name_Not_Found [sage] 2017/09/08(金) 00:33:21.21ID:???
お弁当プールか!
Name_Not_Found [sage] 2017/09/08(金) 00:54:37.03ID:???
イベントループでググってみましたが、ちょっと違う感じがします
イベントが発生すると、
それまでの処理は中断されて
適宜イベントリスナが呼び出されたりしますが
知りたいのはそのおのおのの処理の流れの名称です
イベントループというのはイベントを実現するための全体のメカニズムのことですよね
Name_Not_Found [sage] 2017/09/08(金) 01:00:51.92ID:???

イベントリスナかな?
Javascriptならイベントハンドラのほうがしっくり来るか。
Name_Not_Found [sage] 2017/09/08(金) 01:52:05.41ID:???
JS 言語としてのスレッド的なものは
「promise の実装は実装依存とする」
みたいに定義されていないんじゃないか?
Name_Not_Found [sage] 2017/09/08(金) 08:18:40.01ID:???
,191
そもそも、イベントはマルチスレッドではないのだが
JavaScript実装は様々な仕様の集合体であり、用語は各々の仕様書の中で完結する
つまり、全仕様に通用する用語はない
Name_Not_Found [sage] 2017/09/08(金) 08:26:16.37ID:???

UI Eventsで提議されてなければ、実装依存だよ
確認してみてはいかが?
ttps://triple-underscore.github.io/uievents-ja.html
Name_Not_Found [sage] 2017/09/08(金) 08:37:42.25ID:???
> 複数のプロセス それまでの処理は中断されて
前提の部分から間違ってるので、思ってるものが見つからないのは当然
Name_Not_Found [sage] 2017/09/08(金) 09:00:44.81ID:???

イベントはアプリケーションに依存するタスク通信の確立
それに対してイベントハンドラでサブルーチンを処理する
Name_Not_Found [] 2017/09/08(金) 09:07:35.56:aUEnqurz
javascriptが有効の場合のみ表示するには
1行ずつdocument.write('');で囲ってやる以外に方法はないんですか?
無効の場合は<noscript></noscript>でまとめて囲えるので簡単だけど
Name_Not_Found [sage] 2017/09/08(金) 13:57:56.76ID:???

appendChild, insertAdjacentHTML
Name_Not_Found [sage] 2017/09/09(土) 05:13:20.91ID:???
document.write() を使うと、<HTML> 部分が、一択すべて削除されてから、
JavaScript でページが作られるから、

普通、document.write() を使わない
Name_Not_Found [sage] 2017/09/09(土) 05:19:10.51ID:???
このhonya1だけをいじりたいのですが、何か方法ありませんか?
jqueryセレクターで色々やったんですが出来ませんでした

<div>
honya1
<p>honya2</p>
</div>
204 [sage] 2017/09/09(土) 05:23:46.33ID:???
こんな感じだったりもします

<div>
honya1
<p>honya2</p>
honya3
<p>honya4</p>
</div>
Name_Not_Found [sage] 2017/09/09(土) 05:45:05.40ID:???
>javascriptが有効の場合のみ表示する
で、なんでdocument.writeだけと思ったのかは謎だが
出力処理それしか知らんかったってことか?
innerHTMLでも使っときゃいいんじゃね
Name_Not_Found [] 2017/09/09(土) 08:08:08.11:iPGueJu4
>>206
ほとんどの参考書は出力はdocument.writeで教えているけど
Name_Not_Found [sage] 2017/09/09(土) 09:33:51.55ID:???

タイミングによるだろ
使わないのは確かだが
Name_Not_Found [sage] 2017/09/09(土) 12:04:45.08ID:???

> javascriptが有効の場合のみ表示するには
> 1行ずつdocument.write('');で囲ってやる以外に方法はないんですか?

そういう時によく使われているのが
ttps://modernizr.com/

表示・非表示というのは見た目の問題なのでCSSでやるのが鉄則

どういう仕組かは俺が説明するよりも
modernizrを調べてもらったほうが早い

JavaScriptが有効な場合だけじゃなくて
いろんなものが有効な場合か?が判定できる。
Name_Not_Found [] 2017/09/09(土) 12:28:27.29:iPGueJu4

でも例えばセレクトフォームで1を選択した場合に入力フォームを表示
それ以外は非表示っていうような条件付きの表示にしたい場合
cssだと対処できないんだよな
Name_Not_Found [sage] 2017/09/09(土) 12:49:34.42ID:???

できるよ?

「セレクトフォーム+入力フォーム」というコンポーネントが有るんでしょ?
セレクトフォームで1を選択した時に、そのコンポーネントの状態を
変えればいいだけだよ。

JavaScriptでやるのは状態(classやdata-*)の設定だけ
見た目はCSSで制御する
Name_Not_Found [sage] 2017/09/10(日) 09:06:38.41ID:???
promiseに関する疑問です
thenメソッドに、promiseオブジェクトを返す関数を渡すと、
thenを更に後ろに書いてメソッドチェーンに出来ますが
その関数が実行されるのは前の処理が終わったタイミングのはずですよね?
thenメソッドがメソッドチェーンで実行されるのは
promiseオブジェクトが生成されるより前のはずなのに、
何でメソッドチェーンに出来るのでしょうか?
Name_Not_Found [sage] 2017/09/10(日) 09:17:14.39ID:???
実際に即実行されるのはthenで、thenがpromiseを返しているからだよ
thenに渡した関数はpromiseが解決するまで保持される
Name_Not_Found [sage] 2017/09/10(日) 09:18:15.17ID:???

then()が実行されるのは、「コールバック関数を呼び出した時」だから
214 [sage] 2017/09/10(日) 09:20:20.69ID:???
正確ではなかったな
「then()に渡された関数が実行されるのは、Promise内のコールバック関数が呼び出した時だから」
Name_Not_Found [sage] 2017/09/11(月) 01:17:54.54ID:???

thenに渡した関数がpromiseを生成して返さなければいけないと思っていたのですが
そうじゃないんですね
でもthenメソッドがpromiseを生成するにしても
promiseはコンストラクタ内で非同期処理をすぐに実行するので
生成された時点で非同期処理が走ってしまうような気がします
内部動作が謎です・・


いや、それは分かってるつもりです・・
Name_Not_Found [sage] 2017/09/11(月) 05:27:41.72ID:???

要素配下のテキストを取得/設定するには?(text/html)
ttp://http://www.buildinsider.net/web/jqueryref/004">ttp://www.buildinsider.net/web/jqueryref/004

Name_Not_Found [sage] 2017/09/11(月) 05:41:39.06ID:???
Promiseコンストラクタやthenメソッドの振る舞いが、プロミスの本質を示してると考えるからそうなる
それらの関数はたまたまそういう振る舞いになっているだけであって、
もっと言えば便利で都合のいいように置かれているだけであって、

それらはプロミスの概念を為すための必然な設計ではないし、
Promiseコンストラクタがこういう挙動をするから、thenがどうこうだとか、プロミスってこういうものと言えるものではない

PromiseコンストラクタはPromiseコンストラクタの挙動をして便利にプロミスを作り、
プロミスからはthenメソッドがthenメソッドの挙動をして便利にプロミスを作るというだけのこと
そこを難しく考える必要は全くない
Name_Not_Found [sage] 2017/09/11(月) 07:06:26.05ID:???

それが分かっているなら、「then()が呼び出された時」と「コールバック関数が呼び出された時」が同じではないことも分かると思うのだが
204 [sage] 2017/09/11(月) 13:31:07.78ID:???

見たのですが、それはただの$(ele).text()と$(ele).html()の紹介なので
教えてもらって恐縮ですが求めているものとは違うようです

改めて分かる方いたらお願いします
Name_Not_Found [sage] 2017/09/11(月) 13:47:51.67ID:???

$("<div>honya1<p>honya2</p></div>").contents().get(0).textContent = "honya3";
Name_Not_Found [sage] 2017/09/11(月) 13:52:58.01ID:???
childNodes使えばいんじゃね
Name_Not_Found [sage] 2017/09/11(月) 13:55:28.06ID:???
あ、jQueryならcontents()でもいいか
Name_Not_Found [sage] 2017/09/11(月) 14:09:31.64ID:???

$('div').contents()[0].replaceWith('ここを変更');
Name_Not_Found [sage] 2017/09/11(月) 14:11:00.34ID:???
idなりclassなりつけとけよ
htmlが不変ならいいけど
CMSとかでget0)とかで取るのはバグの原因
Name_Not_Found [sage] 2017/09/11(月) 15:57:36.80ID:???
>>224
contents() まさにこれです!
ドンピシャです、contents() 凄い便利
長年悩んで来たことだったんで目から鱗です
ありがとうございました
Name_Not_Found [sage] 2017/09/11(月) 16:31:45.59ID:???
ほんと低レベルやな
せっかく助言があるのにね
Name_Not_Found [sage] 2017/09/11(月) 16:35:26.89ID:???
ええんやで
君も大概低いんやから
Name_Not_Found [sage] 2017/09/11(月) 17:52:06.06ID:???
同じプリミティブ型の値が与えられたら同じオブジェクトを返すようなことは可能?
typeof(MyObject(5)) === "object" と MyObject(5) === MyObject(5) のどちらもtrueになって欲しい
オブジェクトを一時的に保存しておくのは無しで
Name_Not_Found [sage] 2017/09/11(月) 18:24:25.17ID:???
保存しちゃダメならインスタンスが同一にならないから無理じゃね?
Name_Not_Found [sage] 2017/09/11(月) 19:12:19.25ID:???

そもそも論理的違う
Name_Not_Found [sage] 2017/09/11(月) 19:24:43.63ID:???

そういうことをしたいがためにFlyweightパターンがある訳だが実装を制限するなら知らん
229 [sage] 2017/09/11(月) 19:59:32.50ID:???
ユーザー名とデータを紐付けた上でWeakMapでキャッシュさせたかったのですが自前で実装することにします
ありがとうございました
Name_Not_Found [sage] 2017/09/11(月) 20:16:55.03ID:???

で言ってるオブジェクトをWeakMapのキーにしたいのか?
だったらやめとけ
保存しない(変数に入れて持つこともしない)なら無理だ
それにWeakMap自体サポートしてるブラウザ少ないし、仕様固まってないからサポートしてても変更されるかもしれん
そんなもの使ったらトラブルのもとだぞ
Name_Not_Found [sage] 2017/09/11(月) 21:45:00.03ID:???

これってImmutable.jsでできんじゃないかな。
Name_Not_Found [sage] 2017/09/11(月) 22:18:46.09ID:???
いや、Immutableは内部で保持してる
は「一時的に保存しておくのは無し」ってことなので保持しちゃダメ
なので不可能
Name_Not_Found [sage] 2017/09/11(月) 22:51:39.99ID:???

無理なんだが、その要件でなぜObject型が欲しいのかが謎
プリミティブ型とリファレンス型の違いを覚えた後に、設計から考え直した方がいい
216 [sage] 2017/09/11(月) 23:06:23.39ID:???
ttps://jser.info/post/77696682011/es6-promises/
>then の返り値(*1)に対してもthen (next-then)で処理を追加することができる。
>next-then に設定されたコールバックは
>*1の値がsettles (succeeds/fails)になった時に呼ばれる

と言うことなので、
thenが生成するpromiseのコンストラクタには
thenに渡したonFulfilledとonRejectedをラップした関数が渡される
その関数は、親promiseのsettledな状態変化をコールバックで受け取ってから、
親promiseの変化に状態に即した処理を開始する
という感じでしょうか?
thenが生成するpromiseを、
単純にthenの引数でnewしただけのpromiseと思っていたので、
「???」となっていましたが、もう少し複雑なものなのでしょうね
Name_Not_Found [sage] 2017/09/12(火) 00:08:07.70ID:???
なんかPromiseで悩んでいるようだな?
話の流れを読まずに語るぞ

まず一番Promiseっぽくない使い方だな

function foo() {
 Promise.resolve(0)
  .then(function(zero) { return 1; })
  .then(function(one) { return 2; })
  .then(function(two) { return 3; })
  .then(function(three) { return 'end'; })
  .catch(function(e) { console.log(e) });
 console.log('start')
}

最初に実行されるのは start の部分だ。
なぜならPromise.resolveっていうのは内部で
setTimeoutを使っている・・・からだと思えばいい。

そして、Promise.resolve(0)をスタートに、
関数が上から順番に実行されていくわけだ。
戻り値は次の関数の引数になるぞ

ここで言いたいのは、上から順番にthenの中身が実行されていくということだけだ
Name_Not_Found [sage] 2017/09/12(火) 00:11:13.48ID:???
次にPromiseを使うが意味がない使い方の例を示すぞ

function foo() {
 Promise.resolve(0)
  .then(function(zero) { return Promise.resolve(1); })
  .then(function(one) { return Promise.resolve(2); })
  .then(function(two) { return Promise.resolve(3); })
  .then(function(three) { return Promise.resolve('end'); })
  .catch(function(e) { console.log(e) });
 console.log('start')
}

動きとしては一緒だ。だけど戻り値が単なる値ではなく
Promiseオブジェクトになったということだ。

これはと全く同じ動きをする。
というよりthenが引数の関数を呼び出すだろ?
その戻り値がPromiseオブジェクト以外なら、
内部でPromise.resolveを実行して
Promiseオブジェクトに変換しているわけだ。
Name_Not_Found [sage] 2017/09/12(火) 00:16:36.00ID:???
次にもうちょっとマシな例を示すぞ

function foo() {
 Promise.resolve(0)
  .then(function(zero) { return new Promise(function(resolve, reject) { resolve(1) }; })
  .then(function(one) { return new Promise(function(resolve, reject) { resolve(2) }; })
  .then(function(two) { return new Promise(function(resolve, reject) { resolve(3) }; })
  .then(function(three) { return new Promise(function(resolve, reject) { resolve('end') }; })
  .catch(function(e) { console.log(e) });
 console.log('start')
}

では関数が呼ばれたら、すぐにPromise.resolve()を
呼び出してPromiseオブジェクトを返していたが、
今回はnewでPromiseオブジェクトを返す例だ。

new されたPromiseオブジェクトは引数の関数を実行する。
引数の関数はすぐにresolveする。
これも全く同じ動きをする。
Name_Not_Found [sage] 2017/09/12(火) 00:21:07.20ID:???
では最後にクイズだ

function foo() {
 Promise.resolve(0)
  .then(function(zero) { return new Promise(function(resolve, reject) { }; })
  .then(function(one) { return new Promise(function(resolve, reject) { }; })
  .then(function(two) { return new Promise(function(resolve, reject) { }; })
  .then(function(three) { return new Promise(function(resolve, reject) { }; })
  .catch(function(e) { console.log(e) });
 console.log('start')
}

このようにしたらどうなるだろうか?


答は、エラーはでないが次に進むことはない処理になる。

.thenの引数の関数は、たしかにPromiseオブジェクトを返している。この関数自体は問題ない。
だが、そのPromiseオブジェクトはresolveもrejectも実行しないから
次に進むことはない。そこで止まってしまう。

逆にすぐにresolve()するのではなくsetTimeoutでも何でもいいが
何かの処理の後にresolve()するようにすれば・・・?

そう、非同期で実行される処理が終わってから
次に進むわけだよ。
Name_Not_Found [sage] 2017/09/12(火) 01:28:09.67ID:???
せっかく無料で公開してくれてんだからazuのpromiseの本でも読みなよ
Name_Not_Found [sage] 2017/09/13(水) 17:47:19.69ID:???
firebaseについて勉強中です
サーバーのアクセスに必要なパラメータがソースで丸見えになりますが
これを使って他人にデータをいじられる可能性はないのでしょうか?
Name_Not_Found [sage] 2017/09/13(水) 18:45:57.45ID:???
そのための認証システムだろ
Name_Not_Found [sage] 2017/09/13(水) 23:48:19.39ID:???
それはそうなんですが認証させる部分も丸見えなのが気になります
ソースをコピーして他のサイトを立ち上げたら、
そこからも普通にデータベースを操作出来てしまうような?
Name_Not_Found [sage] 2017/09/14(木) 00:05:50.11ID:???

やればいい
本当に知りたければセキュリティを本気で学ぶ必要がある

一応言っておくと、その観点は結構いい線いってる
しかし当然のようにその観点からの攻撃はちゃんと守られている
(下手なアップデートで攻撃され放題になることもある)

偉そうに言ってるけど、俺はその辺無理と思ってフレームワークに逃げた口だ
Name_Not_Found [sage] 2017/09/14(木) 00:34:20.03ID:???

認証してアクセス権が無ければ読み書き不可に出来るし
書き込みは可能だが変更は不可能にする事は出来るし
キーを知らなければアクセス出来ないようにも出来るし
あるキーをデータに含んでないと書き込めないようにも出来る

面倒ではあるがやりようによっては大体のことが出来るぞ
Name_Not_Found [sage] 2017/09/14(木) 10:12:37.24ID:???

対策の方法はあるんですね
ではこのまま勉強していきます
ありがとうございました
Name_Not_Found [sage] 2017/09/14(木) 11:15:08.75ID:???
function wait(ms){
return new Promise((resolve)=>{
setTimeout(()=>{
resolve();
},ms);
});
}

wait(1000).then(()=>{
console.log('done');
});

こんな感じの指定した時間待つだけのPromiseを提供しているユーティリティーライブラリで
いいのがあれば教えて下さい
Name_Not_Found [sage] 2017/09/14(木) 12:55:39.96ID:???
君が書いたそれでいいじゃん
Name_Not_Found [sage] 2017/09/14(木) 22:03:00.66ID:???

bluebirdのPromise.delay
ttp://bluebirdjs.com/docs/api/promise.delay.html

残念なことに標準のPromiseは基本的な機能しか
提供しないとされてしまったので、より実用的なものが
ほしければライブラリに依存しなくてはいけない
Name_Not_Found [sage] 2017/09/14(木) 22:06:22.47ID:???
じゃないですが、setTimeoutではなく
setIntervalを使って定期的にPromiseが
発動するようなものはないですか?
Name_Not_Found [sage] 2017/09/14(木) 22:13:17.41ID:???

promise は根本から一度限りのイベント用にあるもの
setInterval じゃだめなのは何故?
Name_Not_Found [sage] 2017/09/14(木) 23:21:58.47ID:???
そういう用途ならEventEmitterでも使った方がいいんじゃない
Name_Not_Found [] 2017/09/15(金) 00:29:14.37:A42SYKF8
kanto.htmlの中で saitama.jsとchiba.jsとtokyo.jsとyamanashi.js を読み込んでるのだけど、

yamanashi.jsを外したいのだが、kanto.htmlのどの部分でyamanashi.jsを使ってるのか分からなくなってしまった。
どこの部分でyamanashi.jsを使ってるのか特定する方法はありますか?

Chromeなどのデバッグツールとか何でもよいので、何か方法があれば教えてください。
Name_Not_Found [sage] 2017/09/15(金) 01:28:44.94ID:???

ライブラリにあるものはライブラリを使った方が保守性が上がりますし
ライブラリの他の機能も視野に入ってくるのがいいです

ありがとうございます
見てみます
Name_Not_Found [sage] 2017/09/15(金) 01:58:20.57ID:???
Why are native ES6 promises slower and more memory-intensive than bluebird?
ttps://softwareengineering.stackexchange.com/questions/278778/why-are-native-es6-promises-slower-and-more-memory-intensive-than-bluebird

こんな記事がありました
ネイティブなのにライブラリより遅いって・・
どうなんでしょうか?
Name_Not_Found [sage] 2017/09/15(金) 04:04:55.93ID:???

デバッグして、yamanashi.js の中の、すべての関数に、break point を張って、
どこから呼ばれたか確かめる
Name_Not_Found [sage] 2017/09/15(金) 09:30:44.31ID:???

EventEmitterは2とか3とかあるようですが
どれを使うのが良いのでしょうか?
Name_Not_Found [sage] 2017/09/15(金) 11:14:12.84ID:???

ライブラリに機能を求めるというよりは
効率を求める意味で使用した方がいいよ
Name_Not_Found [sage] 2017/09/15(金) 11:41:07.60ID:???

機能の2と速度の3みたいな
あとはライブラリスレとかで聞いてね
Name_Not_Found [sage] 2017/09/15(金) 12:53:25.21ID:???

その頃はまだ実装されたばかりだし、Promiseのなんちゃってポリフィルと違って、
状態を外に見せないかつメモリリークを起こさないかつ継承可能にするため
内部的にWeakMapと同等のものを用いてるのと、継承可能やPromise Likeの受け入れとPromiseとの区別の処理なんかでどうしても簡素ななんちゃってPromiseよりは遅くなる可能性がある
Name_Not_Found [] 2017/09/15(金) 14:41:01.63:md1y6t7N


while()
Name_Not_Found [sage] 2017/09/15(金) 14:55:16.12ID:???
arrow関数式で
a => a+1
と式を書いた時にa+1が返ってくるのは分かりますが
a => a=a+1
と代入文を書いても、a+1が返ってくるのは何故でしょうか?
Name_Not_Found [sage] 2017/09/15(金) 15:32:31.45ID:???
最後に評価したものをreturnとするから
この場合はaに代入した値がa+1だから
Name_Not_Found [sage] 2017/09/15(金) 15:38:20.18ID:???
アローに限らんだろ
Name_Not_Found [sage] 2017/09/15(金) 17:09:54.73ID:???
クライアントサイドで、JavaScriptのみでSMTP使ってメール送信できますかね?
情報が古いのですが、ActiveXかなんか使ってIEなら出来るようですが、
ChromeとかFirefoxとかでも可能な、普通のJavaScriptのAPIがあればそれでやりたいです。
SMTPサーバを指定して、ログインIDやパスワード入れて使うのを想定してます。
どう考えてもセキュリティ上厳しいような気はしますが。
サーバサイドでやると、どうしてもリクエストが多くなるため、
スパマー扱いされて、サーバのIPがSMTPサーバに拒否されるおそれがあるので、
各クライアントで送信するようしたいです。
Name_Not_Found [sage] 2017/09/15(金) 18:22:31.40ID:???
無理
Name_Not_Found [sage] 2017/09/15(金) 18:39:07.05ID:???

ありがとうございます
言われてみればそうですね
値を返すので、JavaScriptの代入は文ではなく式ということになるのでしょう
=を代入演算子と呼んでますし
Name_Not_Found [sage] 2017/09/15(金) 18:41:14.24ID:???

webAPIを提供してるメールサービス使えばいい
mailgunとか
説明:
ttp://blog.katty.in/5558
jsライブラリ
ttps://github.com/mailgun/mailgun-js
Name_Not_Found [sage] 2017/09/15(金) 19:04:04.73ID:???
Storybookを使ってreact componentを作ってるんですが
ダミーデータとして文字列とか適当に毎回入力するのが面倒なんですが
ダミーデータ自動生成ライブラリってないですかね?
Name_Not_Found [sage] 2017/09/15(金) 19:11:33.28ID:???

自己レスです faker.jsってありましたね。
Name_Not_Found [sage] 2017/09/15(金) 19:46:38.00ID:???

この辺とか
ttp://artemyankov.com/tcp-client-for-browsers/
Name_Not_Found [sage] 2017/09/16(土) 11:30:57.94ID:???

ただの代入は式
宣言代入は文
Name_Not_Found [sage] 2017/09/16(土) 12:26:38.13ID:???
firebaseはオフラインになっていても後から同期してくれるのがメリットですが
この機能に任せられるのって、
編集がバッティングする可能性がない場合だけですよね?
チャットアプリなんかは、ただ追加しあうだけなので問題になりませんが
同じアイテムを同時に編集できる場合や
階層構造を変更できる場合、
時間差同期によってデータが不整合をおこして恒久的に破壊されかねないと思います
そういうことはトランザクションを使えば避けられるのではないかと思いますが
そうなると使えるのはオンラインの時だけになりますか?
Name_Not_Found [sage] 2017/09/16(土) 12:28:34.86ID:???

なるほど
宣言代入はそういう挙動をするんですね
考えたことなかったです
ありがとうございます
Name_Not_Found [] 2017/09/17(日) 10:24:46.35:J64I4/e3
ttp://qiita.com/Layzie/items/465e715dae14e2f601de
これありますけどnew Stringで作られたのは文字列じゃないんだから
typeofで型チェックしても問題ないと思いますけど違いますか?

const a = 'a';
const b = new String('a');
console.log(a == b); // true
console.log(a === b); // false
console.log(a); // a
console.log(b); // [String: 'a']
console.log(typeof a); // string
console.log(typeof b); // object
Name_Not_Found [sage] 2017/09/17(日) 11:57:35.16ID:???

論理的ならOK
Name_Not_Found [sage] 2017/09/17(日) 12:04:27.13ID:???

それは、他の言語だとそれは当然のようにstringのはずので、その感覚とずれるというお話なのだ
ちなみにjsはいろんなところで型が他の言語とずれていて、型チェックが妙に難しくなっている

もしjs以外使ったこと無いなら
>これありますけどnew Stringで作られたのは文字列じゃないんだから
>typeofで型チェックしても問題ないと思いますけど違いますか?
これ以外に言いようはないと思うし、それはそれで良いことだと思う
ただjsの型は他言語とは大きく違うということは覚えておいたほうが良い
Name_Not_Found [sage] 2017/09/17(日) 12:12:51.17ID:???
> ちなみにjsはいろんなところで型が他の言語とずれていて、型チェックが妙に難しくなっている

他の言語とはなに?
どのように難しいの?
Name_Not_Found [sage] 2017/09/17(日) 12:31:17.69ID:???

一般的に使用者の多いvba、webで親和性が高くあってほしいはずのphpで比較してみる。cも昔使ってたけど型の詳細忘れた、スマン
javaは詳しくないので知らん

配列。普通arrayだけど、jsはobject。何の配列でもobjectになる。objectの配列もobject。これが大体一番厄介なパターン。
まぁそれはlengthで分かるけど、とにかくnullがやばい。jsではundefindで名前が違うだけかと思えば、そうでもない。nullも存在する
未定義はundefind //了解
domで該当なしがnull //はい
var undefind=1; //!?!?!?!!?
console.log(undefind); //!?!?!?!!?
ttp://tokidoki-web.com/2014/12/javascript%E3%81%AEnull%E3%81%A8undefined%E3%81%AE%E5%8C%BA%E5%88%A5%E3%81%A8%E4%BD%BF%E3%81%84%E5%88%86%E3%81%91%E3%82%92%E3%81%BE%E3%81%A8%E3%82%81%E3%81%A6%E3%82%84%E3%82%93%E3%82%88/
ttp://d.hatena.ne.jp/mindcat/20100512/1273683917
ttp://qiita.com/jkr_2255/items/cfce9b4419d5de32ba2b

色々といったけど、objectとundifendだけだったね。まぁこの2つはマジでやばいってことだけ覚えておいてほしい
Name_Not_Found [sage] 2017/09/17(日) 12:37:32.17ID:???
vbaとphpが特殊なだけでは?

Cだったらどうなる?
Name_Not_Found [sage] 2017/09/17(日) 12:46:36.14ID:???

特殊といえば言語は全部特殊。言語にはそれぞれ特徴がある。もし特徴がなければ別言語で良くね、になる
使用者の多いvba、phpはデファクトスタンダードとはいえなくとも、感覚的な基準にはなっている

ただ知る限り、未定義であるundefindに代入できる言語は存在しない
Name_Not_Found [sage] 2017/09/17(日) 12:49:20.55ID:???
代入できなくなったから、普通の言語になったってことだね
Name_Not_Found [sage] 2017/09/17(日) 12:54:11.11ID:???
今コンソールでやったら普通にできたんだが
Name_Not_Found [sage] 2017/09/17(日) 12:59:10.82ID:???
古いモードで動いてんだろw
Name_Not_Found [sage] 2017/09/17(日) 13:26:29.20ID:???

さぁ?
chrome+google.co.jpで試したけど
undefined=1
1
だとさ
Name_Not_Found [sage] 2017/09/17(日) 13:43:13.11ID:???
じゃあ古いモードだ
Name_Not_Found [sage] 2017/09/17(日) 13:46:30.47ID:???
console.log(undefined=1) //1
console.log(undefined) //undefined

こういう話じゃないの?
Name_Not_Found [sage] 2017/09/17(日) 13:54:28.79ID:???

あぁごめん、そういうことだった
代入はできるけど取得はできないのか
な、なんだこれ…
Name_Not_Found [] 2017/09/17(日) 15:53:59.45:ca9PTnIh
'cloneNode' in document // true
document.hasOwnProperty('cloneNode') // false
どうしてですか?
Name_Not_Found [sage] 2017/09/17(日) 16:16:33.22ID:???
cloneNodeはdocumentではなくNodeの持つプロパティであって
hasOwnPropertyは継承元まで遡らないからだよ
Name_Not_Found [sage] 2017/09/17(日) 16:37:08.53ID:???
横だけど、以下もfalseになる。なんでだー(モヤモヤァッ
Object.hasOwnProperty(Node,'cloneNode')
false
Name_Not_Found [] 2017/09/17(日) 16:40:01.79:ca9PTnIh
なるほどそういうことでしたか
ありがとうございました
Name_Not_Found [] 2017/09/17(日) 16:46:28.97:ca9PTnIh
もう一つ質問させてください
"SVGAnimatedAngle" in window // true
window.hasOwnProperty("SVGAnimatedAngle") // true
なのに
for (let i in window)console.log(i)

Object.keys(window)に
SVGAnimatedAngleが含まれない出力されないのは何ででしょうか?
Name_Not_Found [sage] 2017/09/17(日) 17:10:54.98ID:???
"use strict"; undefined = 1; // error!

はい
Name_Not_Found [sage] 2017/09/17(日) 18:30:07.79ID:???

違う
代入はできていないけど、
式の返り値は当然右辺の物を返す

例えばobj.setというセッターが合ったとして、
a = obj.set = 1 というのがあったら
obj.setの状態と関係なくaは1になるのが自然でしょ、
つまりx = yの式は例外が起きない限り必ずyを返す
Name_Not_Found [sage] 2017/09/17(日) 18:34:38.56ID:???

使い方が間違っている
Node.prototype.hasOwnProperty('cloneNode')
Name_Not_Found [sage] 2017/09/17(日) 18:36:50.50ID:???

列挙不可に設定されているから
Object.getOwnPropertyDescriptor(window,'SVGAnimatedAngle').enumerable //false
Name_Not_Found [sage] 2017/09/17(日) 19:13:20.84ID:???

なるほどそうことでしたか
列挙可と列挙不可の両方取得する方法ってないですかね?
Name_Not_Found [sage] 2017/09/17(日) 19:20:19.09ID:???
Object.getOwnPropertyNames(target)

Object.getOwnPropertyNames(target.__proto__)

Object.getOwnPropertyNames(target.__proto__.__proto__)
Name_Not_Found [sage] 2017/09/18(月) 02:23:29.72ID:???

>new String('a');

まぎらわしいから、なるべく、文字列リテラルを使う
Name_Not_Found [] 2017/09/18(月) 10:17:03.11:w1pO6IcM
悪の自民党に絶対投票しないように。 

ttp://www.data-max.co.jp/280113_ymh_02/

↑ 自民改正案の真の狙いは言論の自由を奪うこと!

ttp://blog.goo.ne.jp/kimito39/e/ec37220f64a8e1d6ed732dd0ab95cbf0

↑超危険な緊急事態条項で人権無視の内閣独裁に!

ttps://www.youtube.com/watch?v=h9x2n5CKhn8

↑ 自民党は 国民に基本的人権はないと断言!

ttp://xn--nyqy26a13k.jp/archives/31687

↑ 小池都知事も安倍と同じく 憲法改正で 人権
無視の大日本帝国憲法に戻す民主主義破壊論者!

ttp://www.mdsweb.jp/doc/1488/1488_03f.html

↑”9条自衛隊明記”は 9条無効化だった!

ttp://blog.goo.ne.jp/ngc2497/e/8899f65988fe0f35496934dc972e2489

↑ ネトウヨ= 安倍サポーター工作員はネットで国民を騙す。

ttps://dot.asahi.com/aera/2016071100108.html?page=3
ttp://blog.goo.ne.jp/kimito39/e/c0dd73d58121b6446cf4165c96ebb674

↑ 安倍自民を操るカルト右翼「日本会議」は国民主権否定。
国民投票や選挙では自民党、維新、小池新党に絶対に入れるな。
Name_Not_Found [sage] 2017/09/19(火) 00:12:46.04ID:???
jqueryで
複数の対象に同じイベントリスナーを付けるにはどうすればいいですか?
Name_Not_Found [sage] 2017/09/19(火) 00:25:05.57ID:???
$関数の引き数に、複数の対象にマッチするセレクタを書けばいいだけ

jQueryはそもそも複数の対象に同じイベントリスナーをつけるもの。
対象が1個しかないとか、まったくない(0個)の場合もあるけれど、
それはたまたまそうなっただけで、コード的には複数の対象に
マッチしたと仮定して書くのが良い。
Name_Not_Found [sage] 2017/09/19(火) 00:35:45.88ID:???
ありがとうございます
クラスを設定してonしました
Name_Not_Found [sage] 2017/09/19(火) 12:52:14.09ID:???
フレームワークとか使うとwindowオブジェクトが汚されてしまうんですが
汚された後から汚されてないwindowオブジェクトを取得する方法を教えてください
Name_Not_Found [] 2017/09/19(火) 14:40:42.03:0Cp4Rl+n
何のためにかによって方法は変わってくるが
iframeのcontentWindowを取ればいい
Name_Not_Found [sage] 2017/09/20(水) 10:10:10.77ID:???
virtual domっていうのは
const a = [
1,
2,
];
const e = [
document.createElement('div'),
document.createElement('div'),
];
e.textContent = a[0];
e.textContent = a[1];
document.body.appendChild(e);
というコードを用意して
何らかの形でa[1]を更新したらe[1]のtextContentを書き換えるって理解でいいですか?

reactが重いのはデータ毎にDOMをメモリに記録してるからですかね?
Name_Not_Found [sage] 2017/09/20(水) 10:50:56.91ID:???
同じディレクトリにあるjsonファイルを
JavaScriptから読み込むにはどうすればいいのでしょうか?
Name_Not_Found [sage] 2017/09/20(水) 11:35:00.63ID:???
XHR使う
FileAPI使う
Name_Not_Found [sage] 2017/09/20(水) 12:14:47.14ID:???

ありがとうございます
Name_Not_Found [sage] 2017/09/20(水) 15:10:39.10ID:???

そんな単純ではない
多くの場合DOMと1:1で対応する様な独自ツリーを持っていて
その変更がある程度たまった時点で
必要最低限の変更をDOMに反映させることで
抽象化と同時にパフォーマンスを確保している

それが重いというのは使い方が間違っているか、
使い所が間違っているだけ
Name_Not_Found [sage] 2017/09/21(木) 13:35:51.86ID:???
(() => {
'use strict';

let i = 1;
const f = () => {
let i = 2; // Error - 'i' is already declared in the upper scope. (no-shadow)
i = 22;
console.log(i);
};

i = 11;
f();
console.log(i);
})();

eslintでチェックすると6行目でError - 'i' is already declared in the upper scope. (no-shadow)
が出るんですがこれはダメな書き方なんでしょうか?
Name_Not_Found [sage] 2017/09/21(木) 13:40:50.16ID:???
jQuery みたいに、一々、DOM にアクセスしないから速い。
一々、DOM から、CSS クラスの状態を取得して、コーディングしなくてもよい

ただし、速いと言うことは、メモリを大量に使う。
ブラウザの状態を、自分のメモリ内に持つため

常に、速さ・メモリ使用量は、反比例する
Name_Not_Found [sage] 2017/09/21(木) 13:45:57.08ID:???

それは、そういうルールなんだろ

eslint のルール一覧表でも見れば?
自分で、好きなルールも設定できるだろうし

君や会社・使うツール、次第
Name_Not_Found [sage] 2017/09/21(木) 13:49:33.28ID:???
メモリ1GBの環境でreact使われているサイト開くと重い
特にqiitaのトップページ
Name_Not_Found [sage] 2017/09/21(木) 14:12:29.58ID:???

文法的に問題はないが、例えばlet i = 2; を記述し忘れたとしても動いてしまって二回22が出力されてしまうだろ?
そういった事を防ぐために同じ変数を使わないようにしようって事
オプションで文法的に間違いではないならエラー出ないようにも出来るし全部許可してしまうことも出来る
Name_Not_Found [sage] 2017/09/21(木) 21:51:32.14ID:???
指定した要素の文字列を選択状態にするにはどうしたらいいですか?
フォーム部品はjqueryでselect()すればいいですが
普通のdivの中の文字列を選択したいです
Name_Not_Found [sage] 2017/09/21(木) 22:12:12.47ID:???

createRange()でレンジを作って
selectNodeContents()にdivを放り込んでレンジの範囲を決めて
getSelection()でセレクションオブジェクト作って
addRange()でさっき作ったレンジをどーん!
Name_Not_Found [sage] 2017/09/21(木) 23:16:12.95ID:???

DOM操作をしないから速いと言ったほうが正確だろ
DOM操作をするのはjQueryだけではない
通常のブラウザのDOM APIを使ってもDOM操作になる。


一般的にブラウザのDOM APIというのは遅い。(jQuery関係なく)
もちろんReactでも最終的にはブラウザのDOM APIを呼び出すのだが、
ブラウザのDOM APIは遅いので必要最小限の呼び出し回数になるようになっている。
というのは内部の仕組み


ブラウザのDOM APIは知っての通り機能貧弱でデータバインディングなどの機能がない。
また仕様が決まってるから、拡張することもできない。
Virtual DOMを使うことで、ブラウザのDOMの制限に縛られない
独自機能のDOMを作ることができる。イベントハンドラの拡張や
データバインディングなどの機能も組み混むことができる。
データ的にはJavaScriptのデータだからブラウザ無くてもVirtual DOMを使うことができるし
ブラウザいらないのでテストも容易になる。

だけどVirtual DOMの段階ではただのデータなのでそれをブラウザのDOMに反映する必要がある。
その時、ブラウザの表示内容を全部クリアして遅いDOM APIを使ってレンダリングするのは遅くなるから
差分だけを反映させましょう。というのが内部の仕組み

だけどDOM APIは遅いが、そんなにDOM APIの呼び出し回数が多くないようなサイトの場合は
速いというより遅くならない仕組みと言っても言いすぎじゃないと思う(ただしメモリは食うから重くなる)

Virtual DOMを使うということはブラウザのDOM APIを使わないということだから学習コストは高い。
これからは、そもそもDOM APIを呼び出す必要がないサイトはjQuery
学習コストを払ってもReact(や他フレームワーク)を使う理由があればフレームワークの
二極化になると思う。どちらにしろDOM APIを直接呼びだす時代は終わったかな。
Name_Not_Found [sage] 2017/09/21(木) 23:23:15.22ID:???
Virtual DOMでもDOM API使っているのでは?
Virtual DOMというのはライブラリであってそういう仕様があるわけじゃないでしょ
Name_Not_Found [sage] 2017/09/21(木) 23:49:37.21ID:???

そう書いてる
Name_Not_Found [sage] 2017/09/21(木) 23:51:52.84ID:???
> Virtual DOMを使うということはブラウザのDOM APIを使わないということだから学習コストは高い。

この部分はプログラマがという意味

プログラマがReactなどを使ってVirtual DOMを使うということは
ブラウザのDOM APIを使ったプログラミングをしないということである。

要はReactなどを使えば document.getElementById とか
使わなくなるってことよ。
Name_Not_Found [sage] 2017/09/22(金) 04:24:34.49ID:???

ありがとうございます
Name_Not_Found [sage] 2017/09/22(金) 06:44:47.07ID:???
select要素の選択アイテムをjqueryで変更し、
設定しておいたonchangeイベントを発火させるにはどうすればいいのでしょうか?
Name_Not_Found [sage] 2017/09/22(金) 07:00:09.19ID:???

trigger
Name_Not_Found [sage] 2017/09/22(金) 07:43:21.97ID:???
Reactの内部の仕様はともかく自作のタグが作れる感覚は楽しい。
どっちかというとreduxの理解のほうが学習コスト高め。
Name_Not_Found [sage] 2017/09/22(金) 08:13:03.10ID:???
自作のタグなんてstylesheet書くだけでいいんやで
Name_Not_Found [sage] 2017/09/22(金) 09:09:52.93ID:???

お前はdivだけ書いてろ
Name_Not_Found [sage] 2017/09/22(金) 09:18:23.99ID:???
googleかよw
Name_Not_Found [sage] 2017/09/22(金) 14:52:22.14ID:???
google保守大変そうだな
元ソースも相当汚いだろあれ
Name_Not_Found [sage] 2017/09/22(金) 17:27:26.43ID:???
Workletも揃い始めてきたし、メニーコアの時代はまだ遠いけど
ゆくゆくは要素毎にレイアウトとペイントを数十のコアで分担するようになるだろうな
だから今の仮想DOMフレームワークにしても、そこのところ混み合っていないものを選んで慣れておいたほうが良い
Name_Not_Found [sage] 2017/09/22(金) 18:45:00.07ID:???
vueとかreactってShadow DOMを使ってるわけじゃないんですね
Name_Not_Found [sage] 2017/09/22(金) 20:29:40.08ID:???
Shadow DOMは例えば配布するようなコンポーネントを作る際
使われる環境のCSSなど変に影響されることを防ごうという趣旨のものだからね
HTMLを部品として扱う際のカプセル化の方法だから
Name_Not_Found [sage] 2017/09/23(土) 03:08:19.72ID:???

> ゆくゆくは要素毎にレイアウトとペイントを数十のコアで分担するようになるだろうな
要素毎に何の処理をしてるっていうんだい?
要素なんて殆どは動きが何もないただの絵だろう?
Name_Not_Found [sage] 2017/09/23(土) 12:47:58.05ID:???
let a = 100;
let a = 200;
だとエラーになるのに
let a = 100;
if (1){
let a = 200;
}
だとエラーにならないのは何故ですか?
Name_Not_Found [sage] 2017/09/23(土) 13:30:48.40ID:???
スコープが違うから
Name_Not_Found [sage] 2017/09/23(土) 15:32:48.75ID:???
letはブロックスコープになるものだったのですね
ありがとうございました
Name_Not_Found [sage] 2017/09/23(土) 17:03:37.40ID:???
mdnみるとfirefoxはshadow domに対応してないって書いてあるけど
何で対応してないの?
Name_Not_Found [sage] 2017/09/24(日) 12:25:36.45ID:???

何でといわれてもね
それを知って、あなたがFirefoxの開発に関わって実装してくれるとか、前向きな方向に発展するの?
ttps://caniuse.com/#search=Shadow%20DOM
Name_Not_Found [sage] 2017/09/24(日) 12:34:26.95ID:???

理由次第では、発展するかもしれないですね。
だから理由を聞いてるのよ?
Name_Not_Found [sage] 2017/09/24(日) 17:14:32.84ID:???

あなたが発展にどう貢献するのか、見えてこないんだけどな
「FirefoxがShadow DOMを実装することは当分なさそうなので覚えるのは止めます」とかでないことを祈るよ

理由は中の人以外に知りようがないので、下記URLで問い合わせるか、フォーラムの情報を探してみるといいと思うよ
ttps://www.mozilla.org/en-US/contact/
Name_Not_Found [sage] 2017/09/24(日) 17:16:59.46ID:???
単にそこまで手が回らないから
やろうとはしてる
ttps://bugzilla.mozilla.org/show_bug.cgi?id=1205323

今のMozillaをかつてのWebの発展させてきた存在と同一視しちゃだめ
Firefox OS始めたり、ブラウザのバージョニング間隔を変更したりしてた頃は絶好調だったし、asm.jsの頃まではまだ良かった。
その頃はまだ新機能試そうと思えば、ChとFx両方使う必要があって、しかも少しFxの方が比率が高かった

でも今のMozillaやFxは新標準についていくのが精一杯で完全に後手後手に回ってる状態
Web APIじゃなくてESだけでみてもそうなんだから、落ちぶれようが分かる
Name_Not_Found [sage] 2017/09/24(日) 17:54:29.80ID:???
Web Components v1は一応主要ブラウザーベンダーの合意が取れてるので、実装速度に違いはあるけど全部対応されるはず。待つしかない
Name_Not_Found [sage] 2017/09/24(日) 19:09:28.37ID:???

「知りません。中の人に聞いてください」って
言うだけなのに、なんでそんなにお前えらそうなんだ?
Name_Not_Found [sage] 2017/09/25(月) 10:23:50.03ID:???
対してスキルがないやつほど中身が薄っぺらで偉そうの法則
Name_Not_Found [sage] 2017/09/25(月) 11:34:38.31ID:???
まあ、お互い様だな
Name_Not_Found [sage] 2017/09/26(火) 09:28:52.74ID:???
Codecademyの読み方はコーデカデミーで合っていますか?
Name_Not_Found [sage] 2017/09/26(火) 23:09:43.28ID:???
コードアカデミーでいい
Name_Not_Found [sage] 2017/09/27(水) 04:46:39.33ID:???

ありがとうございました
Name_Not_Found [] 2017/09/27(水) 15:09:19.50:DDiRRlwb
javascriptで動的に追加したliを「クリックしたら削除」したく検索したら下のコードが引用できそうだと思ったのですが
これをネイティブjavascriptでどう書いたらいいかわからないので教えてほしいです
$('body').on('click', '#list li', function(e){
処理;
});
Name_Not_Found [sage] 2017/09/27(水) 15:25:42.77ID:???

document.querySelectorAll('#list li').addEventListener('click', function { 処理 }, false);
Name_Not_Found [sage] 2017/09/27(水) 15:36:21.86ID:???
attachEventのことも思い出してあげて下さい
Name_Not_Found [] 2017/09/27(水) 15:53:22.10:DDiRRlwb

メモしておきます!ありがとうございます
Name_Not_Found [sage] 2017/09/28(木) 02:45:45.27ID:???
addEventListenerやxhrの第三引数指定する人ってどう言う考えしてるんだろう?
特にaddのは関数定義の後に記述する事にもなりがちだし不格好なだけと思うけど。
Name_Not_Found [sage] 2017/09/28(木) 06:27:15.11ID:???
useCapture Optional
捕捉フェーズを使用する場合は、 useCapture に true を指定します。
捕捉フェーズの開始後、指定されたタイプのイベントの全てが、まず、登録された listener に発送され、
その後、DOM ツリーにおいてその下に位置する任意の EventTarget に発送 されます。
ツリーをたどって上方へ浮上するイベントは、捕捉フェーズを用いるように指定されたリスナーを誘発することはありません。
詳細については、DOM Level 3 Events を参照してください。
この引数は、全てのブラウザで省略可能ではないことに注意してください。省略した場合、 useCapture は false となります。
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Name_Not_Found [sage] 2017/09/28(木) 06:29:41.76ID:???
めっちゃズレてる
俺にはAAを作る才能がない
Name_Not_Found [sage] 2017/09/28(木) 06:32:05.46ID:???
ツールを使うんだよ
じゃないと絶対にずれるぞ
Name_Not_Found [sage] 2017/09/28(木) 06:44:56.51ID:???
>特にaddのは関数定義の後に記述する事にもなりがちだし不格好なだけと思うけど。
そもそもコールバック自体が不恰好であってこの感性は理解できない
Name_Not_Found [] 2017/09/28(木) 15:34:50.97:+lEbfk45
fancybox3のパーツを実走することなく本家のリンクのみで動かしてる場合に、
全画面中の透明なし、背景色の指定、はできないでしょうか?どなた教えてください。
<script type="text/javascript">
$("[data-fancybox]").fancybox({
オプション
});
Name_Not_Found [sage] 2017/09/28(木) 17:11:24.30ID:???
{a:1, b: 2} のようなリテラルで
prototype のない object( Object.create(null) )を作る方法はないですか?
Name_Not_Found [sage] 2017/09/28(木) 18:05:53.50ID:???
空を作った後にコピーすれば良いじゃん
var object = o => Object.assign(Object.create(null), o);
object({a:1, b: 2});
Name_Not_Found [sage] 2017/09/28(木) 19:16:58.32ID:???

>Object.assign

知らなかった! ありがとう
Name_Not_Found [sage] 2017/09/28(木) 20:52:12.37ID:???
リテラルなら__proto__:null,を含めれば良いだけだけどな
Name_Not_Found [] 2017/09/30(土) 05:31:35.62:Jh7Gg5Po
__proto__も知らない奴がassignも知らない奴に教えるスレ
もはや世紀末
Name_Not_Found [sage] 2017/09/30(土) 07:10:21.74ID:???
日本語でおk
Name_Not_Found [sage] 2017/09/30(土) 08:37:49.21ID:???
ボタン1を押すとボタン2が出てきてボタン2を押すとボタン3が出てくる
という処理をinnerHTMLとaddEventListnerでやろうとしているのですが
ボタン2を押してもボタン3が出てきてくれなくて困っています

innerHTMLで出力したものがイベントターゲットになっていないからだと思うのですが、どうすれば解決できるでしょうか?
プログラムを書くのが初めてなので初歩的な質問だと思いますが、よろしくお願いします
Name_Not_Found [sage] 2017/09/30(土) 10:43:53.84ID:???
__proto__は美しくない
Name_Not_Found [sage] 2017/09/30(土) 10:45:15.58ID:???
innerHTMLしたあとにaddEventListenerすればいいかと
むしろまだ存在していない(innerHTML前)要素にどうやってaddEventListenerしようとしたのか
Name_Not_Found [sage] 2017/09/30(土) 11:03:20.44ID:???

ボタンの一つ上の要素にaddEventListenerしevent.targetでクリックされた要素を取得し判別する
Name_Not_Found [sage] 2017/09/30(土) 11:12:04.64ID:???
clickイベントはwindowに対して1つだけでいい
あとはevent.targetで振り分け
というかボタン2とボタン3は元々ある状態にしておいて
スタイルのdisplay:noneをdisplay:blockなりに変更するだけでいいのでは
Name_Not_Found [sage] 2017/09/30(土) 11:21:48.45ID:???

要素が存在しない時にイベントを与えているからだろうなw
その辺りをチェック
Name_Not_Found [sage] 2017/09/30(土) 11:23:28.70ID:???

プログラムだけではないが、
HTML + CSS + JavaScriptの世界では
見た目はCSSで制御する

最初にボタンを3つ書く
<input class="btn" type="button" value="button1" >
<input class="btn" type="button" value="button2">
<input class="btn" type="button" value="button3">

見た目をCSSで制御(最初のボタン以外は非表示)にする
.btn + .btn {
 display: none;
}
.btn.clicked + .btn {
 display: inline;
}

ボタンが押されたら押されたいう情報(クラス)を自分自身に設定する
(JavaScriptはjQueryを使えば簡単に書ける)
$(document).on('click', '.btn', function() {
 $(this).addClass('clicked');
});

実行サンプル ttps://jsfiddle.net/qz5fLy9y/

ちなみに押したら押されたという状態になって、その後変わらないものは
ラジオボタンを単独で用いれば表現できる。あとは見た目をCSSでボタン風にするだけ
つまりJavaScriptなしでもできるぞ
ttps://jsfiddle.net/qz5fLy9y/1/
Name_Not_Found [sage] 2017/09/30(土) 11:28:22.02ID:???
addEventListenerではなくaddEventListnerしてるというオチに期待
エラーも見てないな
Name_Not_Found [sage] 2017/09/30(土) 16:52:56.13ID:???
皆さんありがとうございます!
cssで隠しておくのと親要素から取得するの2つともで希望の動きができました
皆さんめっちゃ心強いです(*´ω`*)
Name_Not_Found [sage] 2017/09/30(土) 22:09:41.31ID:???
サンプルまで作ってもらって本当に感謝です
HTMLとCSSだけでもここまで動かせるなんて知りませんでした(;´Д`)

ちゅーかjsfiddleってサイト便利ですね
私が作ってる程度のものならatomよりこっちのが使い勝手いいかも(??????)??
Name_Not_Found [sage] 2017/09/30(土) 22:25:37.59ID:???
いやさすがにatomのほうがいいだろう
Name_Not_Found [sage] 2017/09/30(土) 22:50:11.40ID:???
jsdo.it で、HTML, CSS だけで、

ワニワニパニックを作った人を知らんのか?w
Name_Not_Found [sage] 2017/09/30(土) 23:26:58.32ID:???
知るかよ
Name_Not_Found [sage] 2017/10/01(日) 05:23:08.09ID:???
HTML5ムーブメントを語る上で避けては通れない
CSSプログラミングを知らないとか教養がないと言われてもしようがないな

昔っからこのスレは知ったかが多かったが
今では知ったかもできないほんまもんの無知ばかりやな
Name_Not_Found [sage] 2017/10/01(日) 06:04:09.13ID:???
なにいってんのこいつ
Name_Not_Found [sage] 2017/10/01(日) 07:22:12.84ID:???
んなもん知っとるわ
あのお粗末なワニワニパニックを話に出したレベルの低さに対しての反応だろ
もっと教養を身につけた方がいいぞ
Name_Not_Found [sage] 2017/10/01(日) 07:37:56.46ID:???
何が「知らんのか?w」だよ。
聞いてもねーのに糞しょうもない知識を自慢したいだけの馬鹿は黙ってろよ。
Name_Not_Found [sage] 2017/10/01(日) 11:46:54.28ID:???
こいつ通勤中の赤信号にもいちいちキレてそうな奴だな
Name_Not_Found [sage] 2017/10/01(日) 12:21:50.46ID:???
windows版のchrome(バージョンは最新)で
SpeechSynthesisUtteranceの
rateを上げたら、再生出来ないばかりか、
ブラウザを再起動しないとその後再生できなくなる現象が出ています
自分だけでしょうか?
仕様によるとrateの最大値は10なので値は仕様の範囲内のはずなのですが
3にするとおかしくなります

(再生可能)
ttps://jsbin.com/wuteqewavo/edit?js,console

(rate=3、その後再生不可能)
ttps://jsbin.com/viriritali/edit?js,console
Name_Not_Found [sage] 2017/10/01(日) 15:31:11.57ID:???

自分もちょこちょこ試してるけど1年前からそんな感じだよ
そのAPIはセンシティブで上手くいくかはタイミングなんかにも影響する
OSやデバイスのシステムを借りててブラウザだけで完結してる範囲が少ないから
仕方がないのかもしれない
それでも最近は随分マシになった方
最初の頃はまともに動く確率のほうが低かった
Name_Not_Found [] 2017/10/01(日) 18:31:33.47:j9qs3OVI
[ [1, 'c'], [2, 'a'], [3, 'b'], [4, 'a'], [5, 'c'] ]から重複を除いた abc だけを取り出すにはどうすればいいでしょうか?
Name_Not_Found [sage] 2017/10/01(日) 18:41:35.20ID:???
1,2,3,4,5の数字のほうはどうでもいいのか?
Name_Not_Found [sage] 2017/10/01(日) 18:48:42.22ID:???
lodash便利だよ

ttps://jsfiddle.net/2etnxe05/
a = _.uniq(_.map(list, i => i[1]))

もしくは
ttps://jsfiddle.net/2etnxe05/1/
a = _.uniq(list.map(i => i[1]))

jQuery使ってるならこっちでも良いね
ttps://jsfiddle.net/2etnxe05/2/
$.unique(list.map(i => i[1]))
Name_Not_Found [sage] 2017/10/01(日) 20:02:40.81ID:???
nativeでも良いじゃん
list.map(a => a[1]).filter((v, i, arr) => arr.indexOf(v)==i)
Array.from(new Set(list.map(a => a[1])))
Name_Not_Found [sage] 2017/10/02(月) 01:18:17.91ID:???
ぶっちゃけこれだけのためにlodash丸ごと使うことは絶対にありえない
その内部実装の関数1つだけ借りてくることはあっても
Name_Not_Found [sage] 2017/10/02(月) 01:29:12.77ID:???
そういう時に使いたいのが、これ、custom build
お客さんの要望に応じて必要な分だけをチョイスできる
オトクなパッケージ
ttps://lodash.com/custom-builds
Name_Not_Found [sage] 2017/10/02(月) 01:41:21.49ID:???

それ遅い。

ttps://jsfiddle.net/2etnxe05/4/

> list.map(a => a[1]).filter((v, i, arr) => arr.indexOf(v)==i)
lodashの3倍

> Array.from(new Set(list.map(a => a[1])))
lodashの6倍
Name_Not_Found [sage] 2017/10/02(月) 02:27:26.24ID:???
配列の中のオブジェクトの中のプロパティ値の最大値をMath.max.applyで呼び出す書き方をご教授くださいm(_ _)m

配列はこんな感じです
var scoring=[
{'male':[1,0,0,0],'female':[10,5,3,0]},
{'male':[2,5,3,0],'female':[10,5,3,0]},
{'male':[0,0,0,0],'female':[10,5,3,0]}
];
Name_Not_Found [sage] 2017/10/02(月) 02:44:58.36ID:???

> Math.max.applyで呼び出す
ってのが意味わからん。

スコアの配列を最大値に置き換えれば良いんか?
つまりこういうことか?

ttps://jsfiddle.net/a1p11fLt/

var scoring=[
{'male':[1,0,0,0],'female':[10,5,3,0]},
{'male':[2,5,3,0],'female':[10,5,3,0]},
{'male':[0,0,0,0],'female':[10,5,3,0]}
];

var s = _.map(scoring, row => _.mapValues(row, (v,k) => _.max(v)))
console.table(s)
Name_Not_Found [sage] 2017/10/02(月) 02:46:46.68ID:???
あー、すまん Math.max.apply を使うんだったな。

ttps://jsfiddle.net/a1p11fLt/1/

var s = _.map(scoring, row => _.mapValues(row, (v,k) => Math.max.apply(null, v)))
Name_Not_Found [sage] 2017/10/02(月) 02:48:07.42ID:???
余計なコード(変数)があったわ。訂正

ttps://jsfiddle.net/a1p11fLt/2/
var s = _.map(scoring, row => _.mapValues(row, v => _.max(v)))
Name_Not_Found [sage] 2017/10/02(月) 03:09:15.07ID:???

大変申し訳無いです、質問の内容に不足がありました(;´Д`)

上記の配列から変数を使って特定の値を呼び出し、それが所属する配列の中の最大値かどうかの判定をしたいのです。
変数を使って値を呼び出すところまではできています。
例えば2列目maleの3を呼び出した時、それは[2,5,3,0]の中で最大かどうか?を判定するために、最大値である5を取得したいです。
よろしくおねがいします。

それから初心者すぎて_.mapとかその他もろもろの表現が初見で頭が沸騰してしまってます。
せっかく書いていただいたのに申し訳ないですm(_ _)m
Name_Not_Found [sage] 2017/10/02(月) 04:39:41.64ID:???

ary = scoring[num][sex] と置けば
num = 1, sex = 'male' のとき
ary が [2,5,3,0] になる
その内最大を得るには
max = Math.max.apply(Math,ary) もしくは
max = Math.max(...ary)
Name_Not_Found [sage] 2017/10/02(月) 05:06:28.79ID:???

できました!
ありがとうございます(*´ω`*)
Name_Not_Found [sage] 2017/10/02(月) 05:09:31.96ID:???

そういう問題じゃ無いんだよね
3種類10箇所とかなら分かるけど、ただ一つ_を使うのは変だし
それだけのためにライブラリ管理コストかけるのもね
キリも無くなるし
既に利用してる可能性が結構あるjQueryは分かるけど、
_は単発の質問にはそぐわないね
Name_Not_Found [sage] 2017/10/02(月) 07:13:25.90ID:???

コードが短いのはいいことだけども速さ求めるなら
おとなしくforと連想配列でやったらはやいんちゃう
Name_Not_Found [sage] 2017/10/02(月) 08:51:22.77ID:???

まだ不安定なんですね
ありがとうございました
Name_Not_Found [sage] 2017/10/02(月) 08:57:49.91ID:???
JSONのデータ構造を変えてから
$.getJSONで取ったデータがおかしくなるという問題に悩まされていましたが
原因はキャッシュでした
GETは通常、パラメータが同じ場合に同じものが返ってくるものですが
データ構造を変えるなどの仕様的な変更が反映されないと困ります
解決方法として、パラメータにタイムスタンプを付加するという方法がありますが
これで毎回別のGETにすることで、
キャッシュが異様に増殖してしまうのではないか、という危惧があります
どうなのでしょうか?
Name_Not_Found [sage] 2017/10/02(月) 09:16:45.75ID:???

ブラウザのキャッシュ管理のことまで気にしなくていいとは思うが
やるなら.htaccess等でヘッダーいじれば色々出来る
キャッシュさせないよう設定するとか逆にキャッシュさせた上で毎回確認だけはして更新時のみデータ受信する等
Name_Not_Found [sage] 2017/10/02(月) 12:44:12.88ID:???
クリックすると広告ページが新しいウィンドウで開くのを開かないようにjavascriptで制御したいんですが、
何かいい方法ないですかね?

window.openが実行された時に、すぐページを閉じるようなやつでもいいんですが、リファラは空だしどうしようかなと。
Google extensionで作ってます。
Name_Not_Found [sage] 2017/10/02(月) 14:45:10.98ID:???

uBlock origin 使えばだいたい防げるだろ?
それで足りなければTampermonkeyを使えば良い
Name_Not_Found [sage] 2017/10/02(月) 14:59:35.84ID:???

webRequest APIでできる
Name_Not_Found [sage] 2017/10/02(月) 19:35:42.09ID:???

こんなのあったんですね
ありがとうございます。


ありがとうございます
調べてみます。
Name_Not_Found [sage] 2017/10/02(月) 22:25:22.55ID:???
Underscore は、ライブラリ全体をロードする必要があるけど、
Lodash は、使う関数だけを、include できる

ただ最近は、ES5/6 に実装している、関数も多い

ライブラリにある関数を自作するのは、
ホワイトボックステストも必要だし、品質も悪い
Name_Not_Found [sage] 2017/10/03(火) 05:24:23.65ID:???

そこまでコントロールできたのですか
ありがとうございます
Name_Not_Found [sage] 2017/10/03(火) 09:36:23.90ID:???
promiseは非同期処理を同期的に書く方法ですが
非同期処理を実際に同期的にするにはどういう方法がありますか?
Name_Not_Found [sage] 2017/10/03(火) 10:07:57.35ID:???

取り敢えず全ての非同期関数がpromiseを返すように設計しとけばasync awaitで同期的に書ける
あと問題があるのがobservableやasync iteratorに当たるものだが
これはトランスパイラを使うか、while(await)テクニックで乗り切る
ちょっと悩ましい所
Name_Not_Found [sage] 2017/10/03(火) 14:04:00.31ID:???

ありがとうございます
順次調べていきます
Name_Not_Found [] 2017/10/03(火) 23:01:14.37:lPSfG7Mo
ぶっちゃけpromise理解できないから騙し騙しやってるわ
Name_Not_Found [sage] 2017/10/04(水) 14:19:52.28ID:???
ローカル変数って
内部的には関数のプロパティとして実現されているのでしょうか?
Name_Not_Found [sage] 2017/10/04(水) 16:22:25.72ID:???

概観しましたが、すごくすっきり書けていいですね
generatorで同期的に処理する方法も調べたのですが、
これは本来そのために作られた訳ではない機能をハック的に使ってる感じで
美しくないと感じましたが
それに比べるとasync/awaitはキレイだと思いました
Name_Not_Found [sage] 2017/10/04(水) 22:37:43.89ID:???
プロパティは、プロトタイプチェーンをさかのぼって探索されるけど、

ローカル変数は、さかのぼらない
Name_Not_Found [sage] 2017/10/05(木) 02:18:36.66ID:???

関数実行時やブロック文に入る度にそのコンテキストに紐付いたオブジェクトのようなもの
globalやwith文中では本当のオブジェクトが使われる
Name_Not_Found [sage] 2017/10/06(金) 12:50:02.91ID:???
分割代入と変数宣言を同時に行うことは出来ませんか?
Name_Not_Found [sage] 2017/10/06(金) 12:59:12.81ID:???
let [ a, b ] = ary
みたいにできるよ
Name_Not_Found [sage] 2017/10/06(金) 14:01:58.85ID:???
firefoxがshadowdomに対応してないんで似たようなことがしたいんですが
いいアイディアありませんか?
勉強のためにやるのでフレームーワークなどは使いません
Name_Not_Found [sage] 2017/10/06(金) 14:16:25.76ID:???
それって死んでもFxで動かないと駄目なの?
Fxも1年以内に実装されるだろうから、そのときには動きますで良いじゃん
Name_Not_Found [sage] 2017/10/06(金) 22:53:02.70ID:???

まじですか
ありがとうございます
Name_Not_Found [sage] 2017/10/09(月) 15:43:20.36ID:???
ES2015ではundefinedの上書きが出来なくなったようですが
属性の有無を調べるメソッドなり関数なりが追加されないのは何故ですか?
Name_Not_Found [sage] 2017/10/09(月) 17:57:16.39ID:???
Object.getOwnPropertyDescriptor( window, 'undefined' )
// { value: undefined, writable: false, enumerable: false, configurable: false }
Name_Not_Found [sage] 2017/10/09(月) 19:27:12.39ID:???
in 演算子じゃだめ?
Name_Not_Found [sage] 2017/10/09(月) 22:34:04.31ID:???

undefinedの上書きができなくなったことがどう関係するんだ?
undefinedの上書きができれば、属性の有無を調べるメソッドが
無くてもいいってことだろ?
Name_Not_Found [sage] 2017/10/09(月) 23:21:52.96ID:???
in演算子なんてあったんですね
ありがとうございます
Name_Not_Found [sage] 2017/10/10(火) 10:51:08.48ID:???
画面構成が一貫したSingle Page Applicationを作っていました
ベースとなるHTMLは最初から記述されていて、
適宜要素を動的に操作していたのですが
異なる構成の画面が必要になりました
部分的な書き換えではおさまりません
そうなると最初の画面から完全に動的に書かなくてはいけないのか?
それとも今の画面をどこかに保存しておいて、処理が終わったらまた戻す?
とか色々考えていますが
こういうことが問題になったらそろそろフレームワークの導入を考えた方がいいのでしょうか?
Name_Not_Found [sage] 2017/10/10(火) 11:06:58.21ID:???

hasOwnProperty と使い分けよう
Name_Not_Found [sage] 2017/10/10(火) 11:26:45.01ID:???

スケールしないことを実感したら切り替え時だろう
Name_Not_Found [sage] 2017/10/10(火) 12:32:42.44ID:???
では勉強していきます
ありがとうございました
Name_Not_Found [] 2017/10/10(火) 15:54:04.50:brV5QabT

もう1個 別のSPA 作って
ShareWorker で状態を共有させる方法もあるんじゃないかな
Name_Not_Found [] 2017/10/10(火) 18:23:03.18:VzD+hjux
chromeとIEで確認しています
下記のような形でクリックイベントリスナーを設定しましたが反応はありませんでした
どこに問題がありますでしょうか?よろしくお願いします
 
Hoge.prototype.foo = function(){
 var button = document.createElement( "input" );
 button.type = "button";
 button.value = "テスト";
 button.addEventListener( "click", this.bar, false );
 this.div.appendChild( button );
}

Hoge.prototype.bar = function(){
 alert( "click" );
};
Name_Not_Found [sage] 2017/10/10(火) 18:26:27.41ID:???

要素が生成されていないのにイベントを与えているから
Name_Not_Found [] 2017/10/10(火) 18:26:49.99:SL8zOk23

this.bar
Name_Not_Found [] 2017/10/10(火) 18:28:19.97:SL8zOk23

途中で送信しちゃったw

this.bar

って第二引数に与えると、実際にクリックイベントが発火したとき
thisになるのはevent.targetであってHogeインスタンスじゃない
437 [] 2017/10/10(火) 18:36:56.27:VzD+hjux

試しに下記の様にしましたが変わりませんでした
this.div.appendChild( button );
var func = this.bar;
button.addEventListener( "click", func, false );
Name_Not_Found [] 2017/10/10(火) 18:39:55.65:SL8zOk23

変わってないよ

var A = this;
button.addEventListener('click' , function(){ A.bar(); } , false);

とか
これがベストとは言わんけど
Name_Not_Found [sage] 2017/10/10(火) 18:40:39.73ID:???

そのやり方でもthisになるのはevent.targetであってHogeインスタンスじゃない
Name_Not_Found [] 2017/10/10(火) 18:53:04.24:brV5QabT
Function.prototype.bind() を使う
437 [] 2017/10/10(火) 20:07:35.00:VzD+hjux
Hoge.prototype.foo = function(){
 this.div.appendChild(button);
 button.addEventListener( "click", function(){
  console.log( "test" );
  alert( "test" );
 },false );
}
そもそも発火しませんでした・・・
Name_Not_Found [] 2017/10/10(火) 21:04:04.69:SL8zOk23

そんな中途半端に書かれてもわからんよ
this.divってなんぞや?とかとか

全部書いておくれ
ttps://jsfiddle.net/
Name_Not_Found [sage] 2017/10/10(火) 21:18:08.66ID:???
暇だから書いちゃった
ttps://jsfiddle.net/v49dzq1j/
437 [] 2017/10/10(火) 21:33:32.89:E6KH4Zj5
詳しいサンプルをありがとうございます
一旦最小構成でテストしてみたら最初のままで通用してしまいました
var Hoge = function( elementId ){
 this.div = document.getElementById( elementId );
};

Hoge.prototype.foo = function(){
 var button = document.createElement( "input" );
 button.type = "button";
 button.value = "ボタン";
 this.div.appendChild( button );
 button.addEventListener( "click", this.bar( this ), false );
};

Hoge.prototype.bar = function( arg ){
 console.log( "arg is..." ); //
 console.log( arg ); // object
};

var hoge = new Hoge( "test" ); // <div id="test"></div>
hoge.foo();
Name_Not_Found [sage] 2017/10/10(火) 21:39:59.94ID:???

>button.addEventListener( "click", this.bar( this ), false );

これは間違ってるよ
第二引数に渡すのは関数

this.bar ← これは関数
this.bar(this) ← これは関数barを実行した返り値
Name_Not_Found [] 2017/10/10(火) 21:41:48.84:E6KH4Zj5
訂正!訂正します
先の書き方だと第2引数が意図せずに実行されてるだけで本当は下記の通りですね
button.addEventListener( "click", function(){ this.bar( this ); }, false );
// this.bar is not a function at HTMLInputElement.
Name_Not_Found [] 2017/10/10(火) 21:48:06.42:SL8zOk23

>button.addEventListener( "click", function(){ this.bar( this ); }, false );

おちつけw
そのthis.barのthisは第二引数に渡した無名関数のスコープで
無名関数の外、つまりHogeのものじゃない

んでお手軽に解決するなら、Hogeのthisをいっぺん保存してこう
var A = this;
button.addEventListener( "click", function(){ A.bar( this ); }, false );

もっと根本的に解決するなら
Function.prototype.bind()
Function.prototype.call()
Function.prototype.apply()
あたりをググると良いよ
437 [] 2017/10/10(火) 22:13:47.52:VzD+hjux

その後色んなパターンを実践していましたが
最終的には、まさに一度thisを保存する方法に落ち着きました
(関数先でクラスのプロパティを参照する必要があるので)
スコープとbind()について落ち着いて調べてみたいと思います
みなさんありがとうございました
Name_Not_Found [sage] 2017/10/11(水) 00:12:29.66ID:???
JavaScript の、this は、コロコロ変わるから難しい。
bind を使わないと、拘束できない

jQuery を使えば、悩むこともない
Name_Not_Found [sage] 2017/10/11(水) 01:05:45.44ID:???

jQueryを使ってもそこは一緒
だけどjQueryだとクロージャーを使っても循環参照になりづらいのと
DOM要素のリストとして扱うという設計思想によって扱いやすいってだけ

でさ、お前ら何やってんの?
の話だろ? なんでthisを保存とかいう話になってんの?

addEventListenerの第二引数にクロージャーなんか渡すから
話ややこしくなってるじゃん。 のコードでだいたいあってるだろ

ttps://jsfiddle.net/rdeuvep2/

function Hoge(elementId) {
 this.div = document.getElementById(elementId)
}

Hoge.prototype.foo = function() {
 var button = document.createElement( "input" );
 button.type = "button";
 button.value = "テスト";
 button.addEventListener( "click", this.bar, false );
 this.div.appendChild( button );
}

Hoge.prototype.bar = function() {
 alert( "click" );
};

var hoge = new Hoge("buttons");
hoge.foo();
Name_Not_Found [sage] 2017/10/11(水) 01:05:49.61ID:???
ここまで
アロー関数
無し
Name_Not_Found [sage] 2017/10/11(水) 01:26:52.82ID:???
んで、恒例のjQuery化w

なるべく元の形を保ったバージョン
ttp://https://jsfiddle.net/rdeuvep2/1/">ttps://jsfiddle.net/rdeuvep2/1/

function Hoge(elementId) {
 this.elementId = elementId
}
Hoge.prototype.foo = function(){
 $("<input>", {type: "button", value: "テスト"}).click(this.bar).appendTo(this.elementId)
}
Hoge.prototype.bar = function(){
 alert( "click" );
};
var hoge = new Hoge("#buttons");
hoge.foo()


俺はHogeクラスなんか作らずこんなんでいいと思ってる
ttps://jsfiddle.net/rdeuvep2/2/

var attrs = [{value: "テスト1"}, {value: "テスト2"}];
var buttons = attrs.map(attr => $("<input>", attr).attr({type: 'button'}));
$("#buttons").append(buttons).on('click', 'input[type="button"]', function() {
  alert( "click " + this.value);
});


Name_Not_Found [sage] 2017/10/11(水) 01:33:53.93ID:???
classを使って書いたバージョン
ttp://https://jsfiddle.net/rdeuvep2/3/">ttps://jsfiddle.net/rdeuvep2/3/

>>454で書いたとおり、今回はアロー関数もクロージャーもいらない
Name_Not_Found [sage] 2017/10/11(水) 01:55:18.33ID:???
補足

「今回は」アロー関数もクロージャーもいらない
今回の要件にthisがどうなるかってのが書かれていないから

this.barは今回は動くがthisは違っていると念の為に言っておく
いろんなサンプル追加
ttps://jsfiddle.net/rdeuvep2/6/
Name_Not_Found [sage] 2017/10/11(水) 11:15:54.27ID:???
qiitaで記事うpしても叩かれない知識を身に着けたいんですが
JavaScriptという言語を学ぶための良書を教えてください
Name_Not_Found [sage] 2017/10/11(水) 11:30:31.56ID:???
その考え方は大間違い
人に意見を発信する以上は文句を付けられて当たり前
そしてそれは良いこと
お互い内外から叩き合ってきれいな球に近づくのだから
それを防ごうと言うのはトゲトゲボールか、スライムになってしまうのがオチ
Name_Not_Found [] 2017/10/11(水) 13:29:50.02:pDOfqRkM

えええ…
Name_Not_Found [] 2017/10/11(水) 13:33:31.58:pDOfqRkM

とりあえずサイ本

現段階のおまえさんのレベルも
おまえさんが書いた記事にツッコミを入れる奴のレベルもわからんから
それを数冊の本でなんとかするのは難しかろう
Name_Not_Found [sage] 2017/10/11(水) 21:27:55.35ID:???
JavaScript 第6版、2012、David Flanagan

Google などのプロの机に、必ず置いてある本
Name_Not_Found [sage] 2017/10/12(木) 02:50:11.63ID:???
プロのJSerやWEBエンジニアならオンライン仕様書以外は必要ない
そういうのはJSの常識を知らない非JSネイティブプログラマ向けに用意されてる
それもES2015以降の今の時代に於いては、JSを歴史から学んでJS仙人を目指したい人以外には過去の有名な本という飾りでしかない
Name_Not_Found [sage] 2017/10/12(木) 10:20:16.44ID:???
仕様書ってどこ見たらいいのか教えてください
Name_Not_Found [sage] 2017/10/12(木) 12:22:02.77ID:???

何の仕様書を読みたいのか分からないが、
ttp://fiddle.jshell.net/vSqKr/44/show/light/#Link
Name_Not_Found [sage] 2017/10/12(木) 14:33:35.31ID:???
初心者はまずはMDN 「MDN ○○」でググる
そしてより詳しく知りたければMDNの各記事の下に仕様へのリンクが張ってある
徐々にそっちに移行していく
Name_Not_Found [sage] 2017/10/13(金) 05:38:27.50ID:???
let lastTimeSignal;
setInterval(fuction(){
let now = moment();
let nowMinutes = now.format('YYYYMMDDHHmm');
if (now.minutes()==0 && lastTimeSignal !== nowMinutes){
lastTimeSignal = nowMinutes;
/*処理*/

},1000);

みたいなコードがあります
moment()はmoment.jsです
現在時刻の分数が0の時に一度だけ実行する、ようは時報です
ですが、ごくまれに連続して複数回時報が実行されてしまうことがあります
lastTimeSignalが設定されるので排他的に処理されるはずなのに
何故複数回実行されてしまうのか分かりません
現象はchromeで確認しています
lastTimeSignal とnowMinutesをログに出力するようにしましたが
連続実行された時の値は全く同一でした
lastTimeSignalが設定されないまま
複数のインターバルが呼び出されている、としか思えません
処理は、何かと不安定なSpeechSynthesisUtteranceを使っているので
それが原因なのかとも思いますが
処理の前にlastTimeSignal = nowMinutesとすぐに代入しているので、
たとえSpeechSynthesisUtteranceに問題があっても排他処理まで失敗するのは奇妙です
関数の外の変数(lastTimeSignal)への変更が
すぐに反映しない、なんてことあり得ますか?
Name_Not_Found [sage] 2017/10/13(金) 05:49:09.33ID:???

あらためてログを確認すると
10/13 05:00:00.97
10/13 05:00:00.98
と、0.01秒差で連続実行されていました
1秒ごとに実行されるはずのインターバル処理が、
ほぼ同時に2回呼び出されていることになります
一体何故・・?
いま、ふと思い付いたのですが
不安定なSpeechSynthesisUtteranceの実行に更にsetTimeoutを挟めば
変数の変更まで不安定になることは防げるかもしれません
Name_Not_Found [sage] 2017/10/13(金) 08:14:29.32ID:???
とにかく問題が再現できる最小限のコードを貼りなさい
できればライブラリも除いた状態で
まずそうやって削ぎ落としていくのがデバッグの基本でもある
Name_Not_Found [sage] 2017/10/13(金) 08:45:04.05ID:???
ここに質問するくらいならteratail使えや。コード見づらい。
Name_Not_Found [sage] 2017/10/13(金) 08:55:34.75ID:???
明確な根拠もなく実行系を疑うのはプログラマ憲法でタブーとされていること
Name_Not_Found [sage] 2017/10/13(金) 10:07:02.56ID:???
プログラマーが権力機構で処理系が労働者なのか
468 [sage] 2017/10/13(金) 11:59:42.51ID:???
恥ずかしいことに、インターバルタイマーを複数回設定していたのが原因でした
ライブラリの中の、
起動時にしか実行されないと思っていたハンドラの中で設定していたのですが
そのハンドラはその後の操作によっては複数回呼び出されるものだったのです
プログラマー憲法を心に銘じます
ありがとうございました
Name_Not_Found [sage] 2017/10/13(金) 12:55:11.16ID:???
思った通りの原因だった
Name_Not_Found [sage] 2017/10/13(金) 14:57:43.69ID:???
まあでも非同期が絡むとデバッグが一段と難しくなるのは事実
ただコールバックで闇雲に投げて闇雲に呼ばれるのではなく
Promise,async-await,async generator辺りを適切に使って
シーケンシャルに管理すれば軽減できはする
Name_Not_Found [sage] 2017/10/13(金) 21:36:52.40ID:???
jsだと無名関数にしてしまう分、普通に何回も呼び出してしまうよな
アクセス解析の値がぶっとんでた時はあせったわ
Name_Not_Found [sage] 2017/10/13(金) 22:36:21.13ID:???
無名関数だからって理由でそんなことすることはないな。
だって名前つけても同じ話だもの
Name_Not_Found [sage] 2017/10/13(金) 22:53:31.34ID:???
無名関数ならそこでしか使わないんだから
逆に予定外に何度も呼び出すことなんて少ないと思うが
Name_Not_Found [sage] 2017/10/15(日) 05:37:52.44ID:???
ES2015でforEachがオブジェクトに追加されなかったのは何故ですか?
最近のJSはイケてると思っていましたが
いまだにオブジェクトをforEachできないのは違和感があります
もうかなり以前からunderscoreやlodashがforEachの有用性を証明してますよね
Name_Not_Found [sage] 2017/10/15(日) 08:34:02.97ID:???
そういうことするならmapって話なんじゃね
Name_Not_Found [sage] 2017/10/15(日) 09:32:29.63ID:???

だからlodashを使えばいいだけだろう?
Name_Not_Found [sage] 2017/10/15(日) 10:54:03.53ID:???
mapは新しい配列を作るためのものなので用途が違います
ライブラリは言語にあるべき未来を見せるのが役割の一つなので
それを何年も前に見せられてなおかつ放置してるのは怠慢と言わざるを得ません
Name_Not_Found [sage] 2017/10/15(日) 10:58:56.24ID:???
いや、ライブラリは言語仕様をシンプルにするのが目的だよ。
どんな言語でも言語自体に色んな機能を含めず
多くの機能はライブラリで提供されてるはずだ。
Name_Not_Found [sage] 2017/10/15(日) 11:01:57.27ID:???

Mapと書くべきだったか
まあ意図は違うんだろうけど
Name_Not_Found [sage] 2017/10/15(日) 11:46:59.23ID:???
Mapじゃなくて地図と書くべき。
でないと、SMAPと勘違いされる可能性がある。
Name_Not_Found [sage] 2017/10/15(日) 12:07:56.25ID:???
あの文脈ならMapで通じると思うけど
つーかもうオブジェクトからイテレーター作れるじゃん
Name_Not_Found [sage] 2017/10/15(日) 12:32:13.73ID:???
mapメソッドとは別にMapオブジェクトというのがあったのですね
イテラブルではない普通のオブジェクトを回すのはあまり行儀が良くない、
という判断が根底にあるのでしょうか?
でも

(new Map([['taro','name'],[15,'age']])).forEach((key,value)=>{
});

こんな書き方がイケてるとはあまり思えないのですが・・
newを書かずにMapオブジェクトを生成する
シンタックスシュガーを用意して欲しいところです
Name_Not_Found [sage] 2017/10/15(日) 13:54:43.41ID:???

シンタックスシュガーはいらないですね。
関数を用意すればいいだけですよ。
Name_Not_Found [sage] 2017/10/15(日) 16:55:28.69ID:???

Object.entries(obj).forEach(([key,value])=>{})
Name_Not_Found [sage] 2017/10/16(月) 02:27:09.92ID:???

これはなかなかいいですね
オブジェクトのインスタンスメソッドで出来て欲しいですが、
keyとvalueだけでなくindexも取れるところもイケてると思います
Name_Not_Found [sage] 2017/10/16(月) 04:26:51.39ID:???

そのやり方は列挙順を保証出来ないから、順序がランダムで良いときしか使えない
もともと、オブジェクトのキーは列挙する事を想定したものでもないし、連祖配列的なものを望むなら、足りない機能が多くて苦労すると思うよ
Name_Not_Found [sage] 2017/10/16(月) 05:35:03.12ID:???
順序はランダムではありません
ttps://tc39.github.io/ecma262/#sec-ordinaryownpropertykeys
Name_Not_Found [sage] 2017/10/16(月) 11:42:32.24ID:???
たしかにオブジェクトのメンバに順序は期待出来ないですが
ループの中でループカウンタが欲しくなることはわりとあるので、
そういう意味です
Name_Not_Found [sage] 2017/10/16(月) 16:38:35.98ID:???
未だにES5脳な奴がいるんだな
列挙の順序が保証されてないのはfor-in文とES5のObject.keys()
ES2015以降のObject.{keys,values.entries}()は保証されている
こんなんJSerなら誰でも知ってる常識だろう
Name_Not_Found [sage] 2017/10/16(月) 23:03:35.08ID:???

矛盾してるぞ

> こんなんJSerなら誰でも知ってる常識だろう

ES5脳なJSerは知らないだろ?
Name_Not_Found [sage] 2017/10/17(火) 00:58:39.12ID:???
JSは日進月歩なんだから
未だにES5脳な奴がJSerなわけ無いだろ
Name_Not_Found [sage] 2017/10/17(火) 01:08:17.62ID:???
JSerの定義でもめるぐらいなら、ES5erとES2015erに分けろ
JavaScript===ECMAScript2015ではないんだぞ
Name_Not_Found [sage] 2017/10/17(火) 08:24:06.23ID:???
async-awaitで逐次処理書いてる時に比較的長いタスクをやらせると
裏で動いているのかどうか分かんなくなるんですが。
定期的にconsole.logとかでログ出力していれば分かるんですが、
そうでない場合、逐次処理が実行中だってどうやって把握すればいいんですかね?
Name_Not_Found [sage] 2017/10/17(火) 10:53:45.44ID:???
そりゃconsole.logを適切な個数置くしか無いよ

それかメイン関数以外にあちこち置くのが嫌なら
await longTimeTask()
をpromiseが解決するまで一秒ごとにログを出すperiodicLogingを用意して
await periodicLoging( 'タスクA', longTimeTask() )
と書くとか、同様にしてタイムアウトさせたりするとか
Name_Not_Found [sage] 2017/10/17(火) 11:29:31.14ID:???

ttps://developers.google.com/web/tools/chrome-devtools/javascript/step-code?hl=ja
Name_Not_Found [sage] 2017/10/17(火) 11:44:57.69ID:???
結局時間かかるのはIOかEvent待ちのネイティブの部分だからステップ処理は意味ない。
Name_Not_Found [sage] 2017/10/17(火) 11:44:57.97ID:???
結局時間かかるのはIOかEvent待ちのネイティブの部分だからステップ処理は意味ない。
Name_Not_Found [sage] 2017/10/17(火) 12:14:43.92ID:???

の目的である「動作確認」は可能だと思うが、どういう理屈で意味がない?
Name_Not_Found [] 2017/10/17(火) 12:56:43.77:aQueuU1T
継続して動いてるか確認したいんじゃないの?
Name_Not_Found [sage] 2017/10/17(火) 13:39:59.38ID:???
そもそも確認したい動機が分からん
エラーハンドリングをあえてすっぽかしてない限り
棄却が伝わってこないと言うことは正常動作中ということで心配する必要ないだろう

パッチ処理とかで本当に10分とかかかるものなら
大本にProgressイベントが用意されていないのならのような感じになるだろうな
Name_Not_Found [] 2017/10/17(火) 19:45:01.86:/ojPgncR
str='黄と黄緑と緑'
.replace(/黄緑/g, '<span style="color:greenyellow">$&<\/span>')
.replace(/黄/g, '<span style="color:yellow">$&<\/span>')
.replace(/緑/g, '<span style="color:green">$&<\/span>')

黄緑にも色を付ける方法を教えて下さい
Name_Not_Found [sage] 2017/10/17(火) 22:11:32.36ID:???

その種の複数置換は結局
replace(/[黄緑]+/g, function(match){ … })
が簡単
Name_Not_Found [sage] 2017/10/17(火) 22:11:33.55ID:???
?!
Name_Not_Found [sage] 2017/10/17(火) 22:13:50.71ID:???
CSS colorでググれ
Name_Not_Found [sage] 2017/10/17(火) 22:24:13.19ID:???
でmatchで条件分岐がおすすめだけど超簡単にするなら「黄緑」を一旦「青」とかにしてから最後に戻すとかでもいいよ
ほほえましくてよきよき
Name_Not_Found [] 2017/10/17(火) 22:26:20.78:ayamnkyL


str='黄と黄緑と緑'
.replace(/黄緑/g, '<span style="color:greenyellow">$&<\/span>')
.replace(/黄[^緑]/g, '<span style="color:yellow">$&<\/span>')
.replace(/[^黄]緑/g, '<span style="color:green">$&<\/span>')


正規表現ぐらいもうちょい頑張れwwwww
ぐぐりながらやってみたけど30分でできたぞwwwww


最悪の回答wwwwww
Name_Not_Found [sage] 2017/10/17(火) 22:32:26.09ID:???

あほか
Name_Not_Found [sage] 2017/10/17(火) 22:50:06.29ID:???
は思いついても考え直さないもんなのか
Name_Not_Found [sage] 2017/10/17(火) 22:50:06.31ID:???

正規表現知らなさすぎるだろwww
Name_Not_Found [sage] 2017/10/17(火) 22:51:56.76ID:???

だからほほえましくていいって書いたんだけどw
Name_Not_Found [sage] 2017/10/17(火) 22:54:21.53ID:???

あ、一旦「青」にするってのが、よくわからずやってた頃を思い出してほほえましくていいって意味です
Name_Not_Found [sage] 2017/10/17(火) 23:46:40.52ID:???

どう見てもの足元にも及ばない
Name_Not_Found [sage] 2017/10/17(火) 23:50:17.19ID:???
及ばないどころか間違えてるからね
Name_Not_Found [sage] 2017/10/18(水) 07:14:47.67ID:???
間違えてるのか?正常に動いてるように見える
正規表現ほとんど使わないからわからんわ
Name_Not_Found [sage] 2017/10/18(水) 09:17:27.29ID:???
[^緑] は「緑以外の1文字」だから /黄[^緑]/ だと「黄と」がヒットする
/[^黄]緑/ も同じ
なので結果は
<span style="color:yellow">黄と</span><span style="color:greenyellow">黄緑</span><span style="color:green">と緑</span>
ってなるはず
Name_Not_Found [sage] 2017/10/18(水) 09:24:18.76ID:???
jqueryでは
セレクタに要素を複数並べて要素の子孫の要素を選択することが出来ますが
このように要素を選択する方法は何というのでしょうか?
Name_Not_Found [sage] 2017/10/18(水) 09:45:20.65ID:???
セレクタ検索
それ以上でもそれ以下でもない
Name_Not_Found [sage] 2017/10/18(水) 11:21:24.13ID:???

しかも文頭の緑と文末の黄にはマッチしないしな
ECMAScriptだと後読み出来たっけか
Name_Not_Found [sage] 2017/10/18(水) 13:12:20.54ID:???

おー。ありがとうございます
Progressイベントなんてあるんですね。
独自の処理にもそう言うの用意できるんですかね。
Name_Not_Found [sage] 2017/10/18(水) 13:13:56.51ID:???
自前でonProgressプロパティに関数があれば呼び出してもいいし
EventEmitterみたいなモジュール使ってもいいし
DOMのカスタムイベント使ってもいいし
Name_Not_Found [sage] 2017/10/18(水) 13:45:25.52ID:???

後読みはES2018になりそう
現在モダンブラウザは要フラグ


async-awaitと組み合わせるのは工夫がいるよ
できればasync-generatorを使ってトランスパイルする
Name_Not_Found [sage] 2017/10/18(水) 15:18:12.29ID:???

ありがとうございます
その方法で出来ました
Name_Not_Found [sage] 2017/10/18(水) 15:52:59.55ID:???
ド素人ですみません
膨大なデータをJSONで書き出す処理をしようとしてます

大体1MBくらいで一区切りして、fs.writeFileで書き出して、for構文で繰り返す…
というような方法を取っています。

例えば10回繰り返すような設定をすると、処理が終わる度に1ファイル追加されるのですが
10回すべての処理が終わるまでファイルに何も書き込まれず、空っぽのままになります。
すべての処理が終わって初めて全てのファイルにデータが書き込まれる感じです

これが10ファイルくらいならいいのですが、大量に処理するときに困るので
毎処理ごとにデータが書き込まれるようにしたいです。

なにか方法があれば、お教えいただけると助かります
Name_Not_Found [sage] 2017/10/18(水) 15:59:24.41ID:???
閉じれば?
Name_Not_Found [sage] 2017/10/18(水) 16:12:44.08ID:???
書き込み終わるの待ってから次の処理始めれば?
Name_Not_Found [sage] 2017/10/18(水) 17:28:33.27ID:???

fs.writeFile に渡す callback の中で
書き込みの続きを継続するようにすれば期待する動作が得られるかも?
Name_Not_Found [sage] 2017/10/18(水) 18:52:49.70ID:???
みんなありがとう
ファイルへの書き込みが完了するまでループを一時停止する・・・と言う処理は可能でしょうか?
今はこんな感じです

  var ループ回数 = 10;
  for(var i=0 ; i > ループ回数; i++){
     var データ = 膨大なデータを生成する関数();
     fs.writeFile(ループ回数 + '.json', JSON.stringify(データ,'',' ') , function (err) {});
  }
Name_Not_Found [sage] 2017/10/18(水) 19:09:13.90ID:???

トンクス
上手く行ってるように見えてたわ
Name_Not_Found [sage] 2017/10/18(水) 19:17:44.67ID:???

同期版のfs.writeFileSyncを使うかasync/await使うか
Name_Not_Found [sage] 2017/10/18(水) 21:32:50.86ID:???
fs-extraがpromise返すようになったから使っとけ
Name_Not_Found [sage] 2017/10/18(水) 21:40:29.84ID:???
IOは内部で並列度が抽象化され、タイミングが最適化されてるから完全な制御は無理
Name_Not_Found [sage] 2017/10/18(水) 23:05:14.43ID:???
ファイルの読み込みでも、4つのファイルを、並列に読み込む
Name_Not_Found [sage] 2017/10/19(木) 11:52:44.31ID:???
ありがとうm(__)m
Name_Not_Found [sage] 2017/10/20(金) 20:50:24.54ID:???
for in使うとeslintに怒られるんですがなんか理由があるんですか?
Name_Not_Found [sage] 2017/10/20(金) 23:05:29.50ID:???
そういうのは積極的に調べていって言語に詳しくなるチャンスにすべきだと思うよ
結論から言うとfor of Object.keys()を使う
Name_Not_Found [sage] 2017/10/21(土) 12:36:49.64ID:???

元々の文字列に「青」があったら破綻するのでは
バックスラッシュのエスケープシーケンスのように、構文規則を作っておかないと破綻する


配列に for-in を使っているのでは
Name_Not_Found [sage] 2017/10/21(土) 12:39:54.80ID:???

原文を読め
ttps://eslint.org/docs/rules/guard-for-in
Name_Not_Found [sage] 2017/10/21(土) 12:55:52.81ID:???
>>511
自分もこれでやるけど、翫とか見たことないような漢字にしとけばいいよ
正規表現だとノット条件がないから[^翫]で近いことが出来るようになるし、これが早くて楽だった
Name_Not_Found [sage] 2017/10/21(土) 13:20:57.67ID:???
バッドノウハウからは早く卒業しよう
Name_Not_Found [sage] 2017/10/21(土) 13:21:43.46ID:???
asyc-awaitつかってると使いたいところで使えないのが凄くもどかしい。
たとえばclassのコンストラクタで非同期処理を入れる方法ないかな。
Name_Not_Found [sage] 2017/10/21(土) 14:51:05.52ID:???

ファクトリをasyncにしろ
Name_Not_Found [sage] 2017/10/21(土) 15:17:35.06ID:???
プログラミングを初めて、

配列を知った人は、これ便利と配列ばっかり使いだします。
連想配列を知った人は、これ便利と連想配列をばっかり使いだします。
クラスを知った人は、これ便利とクラスばっかり使いだします。

asyc-awaitを知った人は、これ便利とasyc-awaitばっかり使いだします。
Name_Not_Found [sage] 2017/10/21(土) 15:36:34.65ID:???
朝起きたら顔を洗って歯を磨きます。
Name_Not_Found [sage] 2017/10/21(土) 15:46:30.58ID:???

async関数はpromiseを返す関数だから
クラスのインスタンスを返すコンストラクタとは相容れない
まあ色々方法はあるけど、newして非同期にそれを改変するasync関数を用意するのが良いと思う


async-awaitばかりというのは悪くないと思うよ
ある特定の関数が開発していく途中でasyncにする必要が出てきたり必要が無くなったりもするしさ
そういうときawaitで受けてれば問題ないからね
Name_Not_Found [sage] 2017/10/23(月) 09:41:19.80ID:???
Face Detectionのライセンスがわかる方いますか?
もしくは顔検出出来るライブラリで他に商用利用可能なものがあったら教えていただきたいです
Name_Not_Found [sage] 2017/10/23(月) 11:59:26.95ID:???
firebaseってサーバーサイドで
node.jsなどを動かすことできますか?
Name_Not_Found [sage] 2017/10/23(月) 12:48:29.96ID:???
セレクトボックスAとBが横に二つ並んでいます
それぞれにJavaScriptで動的にoptionを追加したところ、BがAの下に移動してしましました
横に並べたまま要素を追加したいのですがどうすればいいでしょうか
Name_Not_Found [sage] 2017/10/23(月) 13:46:12.82ID:???
別々にid振れ
Name_Not_Found [sage] 2017/10/23(月) 16:07:54.95ID:???

CSS でやるのが普通
方法はいくつかあるが flex が最も簡単だろう
Name_Not_Found [sage] 2017/10/23(月) 16:36:45.03ID:???
location.searchを手軽にjson化する標準APIってなかったでしたっけ?
なんかここで一度教えてもらった気がするんですが
Name_Not_Found [sage] 2017/10/23(月) 16:39:22.32ID:???

location.search はただの String 値なので、JSON化する余地はないと思うが
Name_Not_Found [sage] 2017/10/23(月) 17:39:07.61ID:???
String値もJSON化可能だよ
例えば`"abc"`はvalidなJSON
Name_Not_Found [sage] 2017/10/23(月) 17:39:17.86ID:???

ありがとうございます
やってみます
Name_Not_Found [sage] 2017/10/23(月) 18:36:08.62ID:???

そうかもしらんが、JSON.stringify(location.search); で解決する問題をわざわざ質問するかね…
Name_Not_Found [sage] 2017/10/23(月) 19:04:38.14ID:???

いや”key=value&”という形式をオブジェクトのkey-valueに変換してくれるやつを知りたいってことなんですが。
Name_Not_Found [sage] 2017/10/23(月) 19:47:06.37ID:???
,561
そうではないかと思ったが、質問をはっきり具体化する事も大切だと思うぞ
URL.searchParams の事だな
ttps://developer.mozilla.org/ja/docs/Web/API/URLSearchParams
Name_Not_Found [sage] 2017/10/23(月) 22:13:28.24ID:???

firebase functionとかそれっぽくね
Name_Not_Found [sage] 2017/10/23(月) 22:58:09.95ID:???

> いや”key=value&”という形式をオブジェクトのkey-valueに変換してくれるやつを知りたいってことなんですが。

key1=valueA&key1=valueB&key1=valueC

の場合にどういう結果を期待してるの?
Name_Not_Found [sage] 2017/10/23(月) 23:58:49.83ID:???

おーどうもです。すまんす。
Name_Not_Found [sage] 2017/10/24(火) 08:17:35.63ID:???
こんなのあったんだ。知らなかった
Name_Not_Found [sage] 2017/10/25(水) 00:04:02.94ID:???
IEやiOSのSafariで使えないし
知らなくてもしょうがないかな
Name_Not_Found [sage] 2017/10/25(水) 00:07:30.23ID:???
Polyfillがあるし、WHATWGで標準化もされてる
常に最新仕様を追いかける人なら知ってると思うよ
Name_Not_Found [sage] 2017/10/25(水) 00:22:57.17ID:???
常に最新仕様を追いかけるのが目的の人
Name_Not_Found [sage] 2017/10/25(水) 01:59:00.44ID:???
仕様を追いかけるのが悪いことかのような書き方だな
Name_Not_Found [sage] 2017/10/25(水) 02:36:11.04ID:???
仕様を追いかけるのが悪いんじゃなくて
仕様を追いかけるのが目的となってるのが悪い
Name_Not_Found [sage] 2017/10/25(水) 07:17:00.83ID:???
そんな人いません
Name_Not_Found [sage] 2017/10/25(水) 07:45:55.20ID:???
むしろ目的でもないのに仕様を追っかけてる人の方が意味不明だが
Name_Not_Found [sage] 2017/10/25(水) 08:00:47.02ID:???
え?
Name_Not_Found [sage] 2017/10/25(水) 09:54:45.34ID:???
普通は必要になった時点で調べるよなw
Name_Not_Found [sage] 2017/10/25(水) 16:01:57.29ID:???
必要になった時点で調べるんじゃ三流
普通は必要になる前から知っておく
Name_Not_Found [sage] 2017/10/25(水) 20:12:59.51ID:???
deletedで気付いてたら手遅れだよな
Name_Not_Found [sage] 2017/10/26(木) 10:23:02.67ID:???
form要素の中に設置したラジオボタンのグループは
form要素.ラジオボタンに持たせたname
で取得できます
このグループはconsoleで確認するとRadioNodeListオブジェクトのようです
これはform要素の中にラジオボタンが格納された時にだけ作られる
特殊なオブジェクトのようですが
DOMツリーに組み込まれているのか、取得時に生成されているのか、
どっちなのでしょう?
Name_Not_Found [sage] 2017/10/26(木) 14:49:10.01ID:???
少し考えたらDOMツリーが最初からListを含んでるはずないと気づくだろ
Name_Not_Found [sage] 2017/10/26(木) 18:09:13.55ID:???
そうですか?
DOMツリーに詳しくないので分かりませんでした
コンテナとしてツリーに組み込まれていることもあるんじゃないかと思ったのですが、
そのたびごとに生成して返しているのですね
ありがとうございました
Name_Not_Found [sage] 2017/10/26(木) 20:51:07.15ID:???
考え方としてはchildrenと同じ
Name_Not_Found [gettersage] 2017/10/27(金) 00:38:52.31ID:???
どちらの考えも成り立つと思うが、>579の「ちょっと考えたら」は暴論な気がするな
実際、仕様のどこに書いてあるのか、を明示しないと本当の意味では解決にならない
(Array#length が動的に計算されるのか、静的データを参照するのか、という命題と似てる)
Name_Not_Found [sage] 2017/10/27(金) 02:01:09.78ID:???
RadioNodeList が継承する NodeListは
デフォルトでは live (静的でない)とDOM仕様に書いてある
特に静的とする記述はなかった(?)ような
Name_Not_Found [sage] 2017/10/27(金) 09:33:41.18ID:???
liveかどうかは関係ないでしょ
例えばa,b,cというオブジェクトとそれを含むツリーがあって
どこかにa,b,cへの参照を含むオブジェクトあっても、
それはツリーに含まれてるとは言えないから

つまりはこの問題はNodeListがDOMの木構造に含まれているかどうか
横着に言うとツリーを辿っていったときListに到達するかというと、
それはないなと分かる
Name_Not_Found [sage] 2017/10/27(金) 11:39:18.61ID:???

liveの実装はオブジェクトをキャッシュするだけで実現可能なので、liveな事が動的データである事を保証しているわけじゃないと思う
Name_Not_Found [sage] 2017/10/27(金) 11:45:00.82ID:???

ごめん、いってる意味が分からない

> どこかにa,b,cへの参照を含むオブジェクトあっても、
> それはツリーに含まれてるとは言えないから
なぜ?

> つまりはこの問題はNodeListがDOMの木構造に含まれているかどうか
ツリーに含まれているかどうかをどうやって判断するの?
Name_Not_Found [sage] 2017/10/27(金) 12:20:57.06ID:???
async-await便利だけど意図せず無限ループに入っていても
気づかないのがちょっと心配。
プロダクションビルドしてみるとやたらメモリリークするようになってはじめて
発覚した。
この辺を気づきやすくする方法ってなんかないかな。
Name_Not_Found [sage] 2017/10/27(金) 13:13:55.12ID:???

a.child==b,b.child==cの時、
[a,b,c]という配列を作ってもそれはツリーの一部ではないということ
ルートから辿れない物はそのツリーに含まれているとは言えない

そしてDOMツリーにListが含まれないことは自明
なぜならDOMツリーはNodeのツリーであり、NodeとはElementやTextであり、
NodeListは実際それらのサブクラスではないし、概念としてもかけ離れているから
Name_Not_Found [sage] 2017/10/27(金) 14:02:36.94ID:???
そもそも何で含む含まれないの区別をする必要があるんだっけ?
Name_Not_Found [sage] 2017/10/27(金) 15:01:09.70ID:???
ただ単純な興味だろうよ
まあこの手の設計思想は勉強しておくと自分が設計する際のセンスに近い部分ととして表れるから、馬鹿にはできない
Name_Not_Found [sage] 2017/10/28(土) 14:11:55.65ID:???
Array#lengthは静的って事で良いよね?
Name_Not_Found [sage] 2017/11/03(金) 13:02:38.97ID:???
javascriptは少々調子に乗りすぎたようだね
ここ10年でごちゃごちゃと新機能入れ杉
ついていけねえよ
Name_Not_Found [sage] 2017/11/03(金) 13:03:35.72ID:???
そもそも最新のミドルからハイスペックの開発環境でしか確認してないクソ重いサイトが量産され過ぎなんだよ
Name_Not_Found [sage] 2017/11/03(金) 13:20:05.41ID:???


javascriptは少々調子に乗りすぎたようだね(個人の感想です)
ここ10年でごちゃごちゃと新機能入れ杉(便利になりました)
ついていけねえよ(個人の能力です)
Name_Not_Found [sage] 2017/11/03(金) 13:33:36.38ID:???
互換は有るわけで別についてきたくなかったらついていかなくても良い
Name_Not_Found [sage] 2017/11/03(金) 14:40:55.96ID:???
13Mくらいのjsonがあるんだけど簡単に解析するツールってないかな。
Name_Not_Found [sage] 2017/11/03(金) 14:42:23.63ID:???
Promise+awaitとかは一癖あるが、実際コールバック地獄に比べると格段に楽になれるので黙って覚える価値はある
Name_Not_Found [sage] 2017/11/03(金) 15:00:00.63ID:???

誤解を招く言い方は控えよう

>ついてきたくなかったら
ついてこれなかったら

だぞ
Name_Not_Found [sage] 2017/11/03(金) 15:36:54.56ID:???
互換があると思ってるやつは情弱
Name_Not_Found [sage] 2017/11/03(金) 17:25:07.88ID:???

かなり癖は強いよね。forEachとかと組み合わせると死ぬから
for文使わなきゃいけなくなるの辛い。
デフォルトasync functionになってくれればいいのに。
Name_Not_Found [sage] 2017/11/03(金) 17:28:04.77ID:???

async func内で無名関数作ったら自動でasync func になるか、async funcにしないと警告するようにできないもんかね。
あとawait記入漏れも地味にきつい。これもlintツールでチェックして欲しい
Name_Not_Found [sage] 2017/11/03(金) 18:30:56.21ID:???

できるだろうけど、そうすると互換性がなくなるので
それならCoffeeScriptの二の舞いになって
結局使われなくなる
Name_Not_Found [sage] 2017/11/03(金) 21:18:29.37ID:???
asyncにし忘れはawait書いた時点で構文エラーになるんだから実際は問題ない
await書き忘れもちょっとしたミスで変数に意図しない型が入ってそのまま進んでしまうという
動的型付け言語のよくある問題点だしデバッグには慣れてるでしょ
ひよこ [] 2017/11/06(月) 21:19:56.82:j8ps26FX
15年ぶりにJavaScriptを弄る必要性に迫られ、過去でも怪しかった知識と技術力と現実が
さらにかけ離れて目が回ってます・・・先輩方おしえてくださいな。

【環境】自分の環境はWindosw10 Firefox55 サーバーにはUPせずローカルのみの用途です。
【何をしたのか】document.writeしたらその部分以外が出ないしbodyカラーさえなくなるしずっとローディング中になる
→innerHTMLにしろという情報を得たがこれって既にあるものを置き換えるだけで複数出力できなくね??
【希望している仕様】
コンマ区切りのテキストファイルを読み込んで変数に出し、その変数の変化する数だけセレクトを出力
【コード】ネットに転がってるサンプルを改造してる。body前後は省略。
<body bgcolor="black">
<script type="text/javascript">
function getCSV(){
var req = new XMLHttpRequest(); // HTTPでファイルを読み込むためのXMLHttpRrequestオブジェクトを生成
req.open("get", "smp.csv", true); // アクセスするファイルを指定
req.send(null); // HTTPリクエストの発行 レスポンスが返ってきたらconvertCSVtoArray()を呼ぶ
req.onload = function(){convertCSVtoArray(req.responseText); // 渡されるのは読み込んだCSVデータ}
}
// 読み込んだCSVデータを二次元配列に変換する関数convertCSVtoArray()の定義
function convertCSVtoArray(str){ // 読み込んだCSVデータが文字列として渡される
var result = []; // 最終的な二次元配列を入れるための配列
var tmp = str.split("\n"); // 改行を区切り文字として行を要素とした配列を生成
var opel = document.getElementById("test");
// 各行ごとにカンマで区切った文字列を要素とした二次元配列を生成
for(var i=0;i<tmp.length;++i){
result[i] = tmp[i].split(',');
document.write('<option value="'+result[i][1]+'">'+result[i][1]+'</option>');
}
}
getCSV();
</script></body>
Name_Not_Found [sage] 2017/11/06(月) 21:50:51.05ID:???
とりあえずconsole.logでcsvの入力が処理できてるか確認したら?
そしたらcsv云々の質問はまるまるカットできる。
問題を切り分けるところから始めようか
Name_Not_Found [sage] 2017/11/06(月) 22:03:19.90ID:???
とりあえずパッと見て思ったのは
・document.writeは使うな
・XMLHttpRequestは使うな
・opel (#test)ってなんだ?使われてないが
・selectがないぞ
・CSVの構造がわからん
だな
604 [sage] 2017/11/06(月) 22:13:04.89ID:???

CSVの入力はできています。
>document.writeしたらその部分以外が出ない
→document.write('<option value="'+result[i][1]+'">'+result[i][1]+'</option>'); ×CSV行数
=<option value="[数字]”>[数字]</option>のタグになってるかはわからないですが
×CSV行数</option>前の数字は表示されているので。
というか・・・できるはずだと思っていたのですが、document.writeを書くと
真っ白になるんですよね、上記表示以外が。
consol使ったこと無いのでググってきます・・・
604 [sage] 2017/11/06(月) 22:19:51.40ID:???

ありゃ失礼
・opel→innerHTMLに書き換えようとして設定した変数。
しかしinnnerHTMLではfor文で繰り返し出力ができないんじゃね?でdoument.writeに変えた
使い慣れてたし(化石)
・CSVの仕様
PerlCGIでよく使うログファイルといっしょ。UTF-8になってるが。
1,ねこ,くろ
2,いぬ,しろ

selectは消しすぎたごめん(改行多すぎって怒られた)
<body bgcolor="black">
<form method="post" name="info">
<div class="title">ろぐびゅーわ</div>
<div class="element-select">
<div class="small"><span>
<select name="id" >
<script type="text/javascript">
Name_Not_Found [sage] 2017/11/06(月) 22:22:39.50ID:???
</script>
<script type="text/vbscript">
Name_Not_Found [sage] 2017/11/06(月) 22:29:19.24ID:???
select要素拾って普通にlength増やしつつoption追加してけばいいんじゃないの?
Name_Not_Found [sage] 2017/11/07(火) 00:25:45.74ID:???
全部書くのめんどいからヒントっぽく書くと
var foo = '';
for(){
foo += '<option>';
}
select.innerHTML = foo;
ってすればいい
604 [sage] 2017/11/07(火) 03:26:08.48ID:???

できました!!
変数+=は初めて見ました。こんなのあるんですね。
みなさん感謝!
Name_Not_Found [sage] 2017/11/07(火) 04:08:15.43ID:???
でも古臭くて今となっては誰もやらないやり方だからな
Name_Not_Found [sage] 2017/11/07(火) 04:54:36.43ID:???
みんなfoo=foo+"bar"って書いてるってこと?
Name_Not_Found [sage] 2017/11/07(火) 06:29:56.51ID:???
document.write は、文書自体をすべて一旦破棄してから上書きするから、使うな

XMLHttpRequest は、jQuery の、ajax を使う。
初心者には、jQuery は必須だから、検索して

$("#test").text("hello world!");

「セレクタ.動作」の構文で、該当するセレクタすべてに対して、ある動作をする。
つまり、ループ処理と同じ
Name_Not_Found [sage] 2017/11/07(火) 06:31:30.72ID:???
DOM叩く(これも古いがinnerHTMLよりは新しいかな)か
VirtualDOM叩くフレームワーク使うかってことでは
Name_Not_Found [sage] 2017/11/07(火) 06:34:36.22ID:???
ローカルファイルは、node.js, electron とかを使う

csv ファイル読み込み関数なども、あるはず
Name_Not_Found [sage] 2017/11/07(火) 08:36:12.91ID:???

初心者にはjQuery必須とかいうのヤメレ
document.querySelector('#test').textContent = 'hello world!’;
Name_Not_Found [sage] 2017/11/07(火) 08:47:35.46ID:???
jQuery使わないにしても
test.textContext =
でいいのに何で冗長な書き方するかね
Name_Not_Found [sage] 2017/11/07(火) 10:09:36.33ID:???
Web制作板の癌はjQuery必須なんて馬鹿な落書きをしに巣から出てくんなよ
Name_Not_Found [sage] 2017/11/07(火) 11:39:30.88ID:???
XMLHttpRequestに変わる新しい通信方法があったはずですが思い出せません
誰か教えてください
Name_Not_Found [sage] 2017/11/07(火) 11:41:16.63ID:???
621ですがすいませんfetch apiのことでした
ってことで〆
Name_Not_Found [sage] 2017/11/07(火) 12:35:58.86ID:???
const o = document.getElementById('o');
const f = (n) => (e) => {
console.log(n, e);
};
o.addEventListener('click', f(1), false);


(n) => (e) =>っていう2個書く書き方をよく知らないんですがなんですかこれは?
なんでこれでnとeが使えるんですか?
Name_Not_Found [sage] 2017/11/07(火) 13:25:35.93ID:???

const f = function(n){
return function(e){
console.log(n, e);
}
};

なので
o.addEventListener('click', f(1), false);

o.addEventListener('click', function(e){
console.log(1, e);
}
, false);
になる
Name_Not_Found [sage] 2017/11/07(火) 14:31:29.52ID:???

関数の戻り値がまた別の関数になってる
カリー化ともいう
nが使えるのはその戻り値の関数もまたのfの範囲内だから

ちなみに
const f = n => e => console.log(n, e);
でもいい

ただJavaScriptでカリー化することなんてあるか?
Haskellみたくデフォルトでカリー化されてるわけじゃないんだしメリットが見当たらん
Name_Not_Found [sage] 2017/11/07(火) 14:51:04.15ID:???
Underscore.js にも、curry ある
Name_Not_Found [sage] 2017/11/07(火) 20:54:43.98ID:???
まあ正直みづらいよね
Name_Not_Found [sage] 2017/11/07(火) 21:19:45.50ID:???
window.alertなら文字列の"window.alert"
window.widthなら"window.width"のように

オブジェクトの名前を取得する方法ってありませんか?
Name_Not_Found [sage] 2017/11/07(火) 21:43:05.12ID:???

一番単純な例を出してドヤ顔するのやめれw

jQueryはその一番単純な書き方で複雑なことができるんだよ

例えば
document.querySelector('#test').textContent = 'hello world!’;
に相当するjQueryの書き方は
$('#test').text('hello world'); だが

全てのclass=testの要素に文字を入れるのもほぼ同じ書き方でよい
$('.test').text('hello world');
Name_Not_Found [sage] 2017/11/07(火) 21:45:12.05ID:???
モダンなJSは難しいな
Name_Not_Found [sage] 2017/11/07(火) 21:45:17.35ID:???
> でいいのに何で冗長な書き方するかね

test.textContext = 'hello world';
$('#test').text('hello world');

jQuery使ったほうが短いっていうねw
なんで冗長な書き方するかね?
Name_Not_Found [sage] 2017/11/07(火) 21:50:52.83ID:???
EdgeだとうごかないやんXMLHttpRrequest
node.jsってインストールとか言ってるけどなにこれJavaScriptファイルじゃないの?
Name_Not_Found [sage] 2017/11/07(火) 21:52:25.39ID:???
node.jsはサーバー側アプリを作るものだから関係ない
まあ正確に言えばブラウザ用のJavaScriptファイルを
"ビルドして" 作ることも有るからサーバー用限定ではないが、
少なくともブラウザで直接動かすためのものじゃない
Name_Not_Found [sage] 2017/11/07(火) 22:09:22.05ID:???

> 関数の戻り値がまた別の関数になってる
> カリー化ともいう

それはカリー化ではない。
カリー化は、引数を取る普通の関数を
特殊な形式の関数に変換すること

foo(a,b,c) という使い方をするfoo関数を
foo2(a)(b)(c) という使い方ができる別の関数に変換すること
は関数を返す関数ってだけなのでカリー化ではない

JavaScriptでカリー化をする必要はないっていうのは理解できるが、
関数を返す関数はときたま使う

ある関数に同じ引数を何度も渡すのであれば、
部分適用を行って何度も渡さないようにできるし、

別のもう少し具体的な例をだすと
[{a: 1, b: 2}, {a: 11, b: 22}, {a: 111, b: 222}] みたいなデータが有って
aの項目でソートするか、bの項目でソートするか、選べるようにしたい時
aでソートする関数、bでソートする関数の2つを作る代わりに、
ソートする項目名を引数にして「ソートする関数」を返す関数
なんてのを作る時に使う
Name_Not_Found [sage] 2017/11/07(火) 22:15:09.20ID:???

> (n) => (e) =>っていう2個書く書き方をよく知らないんですがなんですかこれは?

アロー関数が2つくっついたってだけなだな。

function(n) {
 return n+1;
}

という関数を(thisの扱い以外)同等のアロー関数で書くと
(n) => {
 return n + 1;
}

一行で書いて
(n) => { return n + 1; }

{}とreturnを省略して
(n) => n + 1

n+1の部分が (e) => { console.log(n, e) } だったら?
(n) => (e) => { console.log(n, e) }
Name_Not_Found [sage] 2017/11/07(火) 23:19:30.48ID:???
react学ぼうと思うんですがオススメの書籍教えてください
Name_Not_Found [sage] 2017/11/07(火) 23:53:40.72ID:???

あーごめん、変な間違いしてしまった
関数を返す関数は高階関数の範疇やね
Name_Not_Found [sage] 2017/11/08(水) 00:36:18.57ID:???

また間違えた
いや、確かに関数を返す関数は高階関数の範疇なんだけど、今回のケースは特に部分適用って言った方がいいな
厳密に参照透明にこだわりたいなら使うのも良いと思うけど、ほとんどクロージャで対応しちゃうなあ
なら
const n = 1;
o.addEventListener('click', e => console.log(n, e), false);
で済むし、ソートする場合も
xs => _sort(xs, 'a')
みたいな無名関数で対応してることが多い

JavaScriptの部分適用は何か無理やり感があって個人的に苦手だ
Name_Not_Found [sage] 2017/11/08(水) 05:39:07.95ID:???
そんな貴方にこの仕様がオススメ
ttps://github.com/rbuckton/proposal-partial-application
今のままだと身になる可能性は5割程度
議論に参加し支援してStageを上げよう!
Name_Not_Found [sage] 2017/11/08(水) 06:54:22.62ID:???
jQuery を使っていないと、各ブラウザに対応できないから、
自分で各ブラウザの違いを調べて、コーディングしなければならないから、無理


入門 React ――コンポーネントベースのWebフロントエンド開発、2015

WEB+DB vol.97 の特集が、React
WEB+DB vol.94 の特集が、Kotlin, Electron
Name_Not_Found [sage] 2017/11/08(水) 09:06:15.23ID:???
各ブラウザの違いというけど今のモダンブラウザに違いは殆どないよ
逆に残っている違いってjQueryでも同じく対処が難しいなものばかり
(例えばfile選択キャンセルの監視とか)
あとはIEに対応するかどうかだけど、他にもAPIのポリフィル噛ますのと
同じようにIEにもポリフィル用意するほうが良いと思う
Name_Not_Found [sage] 2017/11/08(水) 09:31:47.13ID:???
o.addEventListener('click', function(e) {}, false);
ってするとダメで
const f = (e){}
o.addEventListener('click', f, false);
がメモリにいいとか無駄に関数が作られないとか何とか昔呼んだ気がするけど
理由はよく知りません
Name_Not_Found [sage] 2017/11/08(水) 09:45:15.04ID:???

> 各ブラウザの違いというけど今のモダンブラウザに違いは殆どないよ

そう思うならjQueryのソースコード見てみれば?
特定のブラウザ(機種)用のワークアラウンドがいくつも有る

仕様において違いはなくても、バグがあったりするわけ
特定の環境のみで起こるバグだから見つけるのは大変
Name_Not_Found [sage] 2017/11/08(水) 09:51:08.34ID:???
ライブラリなんだから好きにすればいい
スレ違い
Name_Not_Found [sage] 2017/11/08(水) 15:37:19.11ID:???

そもそも全く同一に動かそうというのが間違いなのでは?
しかも普通その必要があればオーサリングツール使うよね
Name_Not_Found [sage] 2017/11/08(水) 17:18:29.37ID:???
ゲームのBGMで繋ぎ目が分からないシームレスなループ再生をしたいのですが一般的にはどんな方法がありますか?
Web Audio APIにはloopStartやloopEndがあるので可能ですがこれは短い音声の再生用でBGMには向かないとか・・・
Name_Not_Found [sage] 2017/11/08(水) 18:11:26.71ID:???
普通にaudio要素のloop属性や秒数指定で十分じゃないかと思うけど
本当に完璧に無くしたいんならAudioWorklet使うしか無いんじゃね
Name_Not_Found [sage] 2017/11/08(水) 20:34:15.99ID:???
HTML5ゲームエンジン「Phaser」とか?
Name_Not_Found [sage] 2017/11/08(水) 21:14:55.14ID:???
,648
ああその用途ならこれ、といったものは無さそう?
もう少し調べてなんとかしてみます ありがとうございました
Name_Not_Found [sage] 2017/11/09(木) 00:15:07.44ID:???

あんたが言ってるのは、同一じゃなくても(違いがあっても)
動いてるなら良いじゃないって話でしょ?

俺が言ってるのは、特定のブラウザだけバグや仕様の違いで
動かないって話だよ。

ttps://code.jquery.com/jquery-3.2.1.js

例えばms-プレフィックスがついて動かないとか
// Support: IE <=9 - 11, Edge 12 - 13
// Microsoft forgot to hump their vendor prefix (#9572)

セレクタのバグに対応する
// Support: IE8, Opera 11-12.16
// Nothing should be selected when empty strings follow ^= or $= or *=
// The test attribute must be unknown in Opera but "safe" for WinRT
// ttps://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section
とか

// Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+
とか

// Webkit/Opera - :checked should return selected option elements
// ttp://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
// IE8 throws error here and will not see later tests
とか

// Support: Safari 8+, iOS 8+
// ttps://bugs.webkit.org/show_bug.cgi?id=136851
// In-page `selector#id sibling-combinator selector` fails
とか
Name_Not_Found [sage] 2017/11/09(木) 00:22:27.44ID:???
古いブラウザが大半だろうから、サポートしませんって言っても良いのかもしれないけどさ
jQuery使っておいたほうが安全だろ?

// Support: real iOS 8.2 only (not reproducible in simulator)
// `in` check used to prevent JIT error (gh-2145)
// hasOwn isn't used here due to false negatives
// regarding Nodelist length in IE

// Support: Firefox<24
// Workaround erroneous numeric interpretation of +"0x"

// Support: Chrome 14-35+
// Always assume duplicates if they aren't passed to the comparison function

// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)
// Detached nodes confoundingly follow *each other*

// Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only
// Treat the template element as a regular one in browsers that
// don't support it.

// Support: Chrome <=35 - 45
// Webkit & Blink performance suffers when deleting properties
// from DOM nodes, so set to undefined instead
// ttps://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)

// Support: Firefox <=43 - 45
// Disconnected elements can have computed display: none, so first confirm that elem is
// in the document.

// Support: Windows Web Apps (WWA)
// `name` and `type` must use .setAttribute for WWA (#14901)
Name_Not_Found [sage] 2017/11/09(木) 02:50:10.76ID:???

ごめんけどあんたの気持ちは分からないや
今だってやってるプロジェクトで権利の関係でオールスクラッチで
当分Chromeでしか検証しないまま一応完成させて
その段階でFxやらEdgeやらモバイルで動かしてみたらなんの問題もなく動いたもの
仮にそこで何かに引っかかっても簡単な置換やなんかで済むだろうし

つうか長文載せないで今生きてるブサウザでの活きてる例をピックアップして挙げてよ
個人的にはIEには興味ないからそれ以外だとより説得力を感じる
特にChとFxの違いは勉強になるから教えて欲しい
Name_Not_Found [sage] 2017/11/09(木) 02:55:06.20ID:???
長文? 文章なんて書いてないよ。
これはjQueryのソースコードの中のコメント
こういうマイナーケースで問題が有ることは明らかになってる

ユーザーが使うブラウザのバージョンなんて指定できないからね。
あとはどれだけ見れる人が多いかどうか
問題が起きた時のクレームに悩まされるかどうか

予防していればクレームは減るよ。
あとからマイナーケースに悩まされる必要はなくなるよ

> 個人的にはIEには興味ないから
あんた個人の都合で物事を決めたりはしない
客観的なデータ。ユーザー数で考えよう
Name_Not_Found [sage] 2017/11/09(木) 09:16:01.62ID:???
まぁとりあえず、さも当たり前のように初心者に
さてjQueryを使いますって勧めるのはやめなよ。
とりあえずjQueryに頼らなくてもjsが使えるようになってから選択として
jQueryなりvue.jsなりlodashなり選択使を提示すればいい。
独善的にjQueryは標準装備ですと言うのはヤメテってだけ
Name_Not_Found [sage] 2017/11/09(木) 09:19:55.30ID:???
なんで?
Name_Not_Found [sage] 2017/11/09(木) 21:15:22.26ID:???
reactのスレないの?
Name_Not_Found [sage] 2017/11/09(木) 21:34:22.14ID:???

客観的だのなんのってよくわからないそれっぽいこと言うけど、
あくまで今は俺と君とが固有の価値観をすり合わせるんでしょ、それ以上でも以下でもない

もし一般的な話をするとしたら「客を選べない」って本来良くはないことだからね
下請けとか部下の立場で言われたとおりに作るなと言ってるわけじゃないけど、
まるでそれが正義か理想かなにかと勘違いするのは辞めたほうが良いよ

というか、なんかjQuery使わないことを病的に恐れ過ぎなんじゃない?
いつかその補助輪外す勇気が出せると良いね
Name_Not_Found [sage] 2017/11/09(木) 21:39:59.00ID:???
jQueryは補助輪じゃなくて
自転車だと思いますよ。
Name_Not_Found [sage] 2017/11/09(木) 21:52:30.56ID:???
補助輪付けてる人は少ないわけで
jQueryは世界中の多くの人が使っている以上補助輪じゃないわな

「ということにしたい!」という臭いが
プンプン感じられるレスだ
Name_Not_Found [sage] 2017/11/09(木) 21:57:41.57ID:???
唐突な自分語りですまんが
jquery使わない俺かっけーって思ってた時期があった
Name_Not_Found [sage] 2017/11/09(木) 22:12:24.41ID:???

じゃないが、基礎が何も分からないのにいきなりjQueryの記述だけ覚えたときに何も出来ないかと


そもそも単なる関数の集合体のライブラリなんだから、全て自分で出来るのを簡単に書けるようにしただけだし、
使わなくて済む、または出来るならカッコイイというか良いと思うけどね
Name_Not_Found [sage] 2017/11/09(木) 22:14:40.64ID:???
> じゃないが、基礎が何も分からないのにいきなりjQueryの記述だけ覚えたときに何も出来ないかと

なんで?
Name_Not_Found [sage] 2017/11/09(木) 22:33:23.08ID:???
基礎が何も分からないのにいきなりjQueryの記述だけ覚えたときに何も出来ない
っていうのは結局何の根拠もないんだよな。

そもそもおかしいよね。
jQuery使える人なら、jQueryがなくてもプログラムできるでしょ?

できない理由が「基礎がわからなくてもjQueryならできる」のであれば
どんだけjQueryは簡単なんだよ?って話になる。

jQueryは面倒な記述を減らしてくれるだけで、
決して基礎が知らない人でも使えるようになるライブラリじゃない
jQueryを過大評価するのはやめろよ。
アンチが過大評価してんだよ
Name_Not_Found [sage] 2017/11/09(木) 23:23:28.84ID:???
ここ最近のjQueryディス流れは親から育つ反抗期的な感を受ける
Name_Not_Found [sage] 2017/11/10(金) 09:30:42.52ID:???
jQueryはプログラム組めないけど何となく読める

くらいの知識で、落ちてるフリーのやつをちょっとだけ弄る

って感じの人に需要がある
Name_Not_Found [sage] 2017/11/10(金) 09:33:15.87ID:???
求めてもいないjQueryを勝手に勧めて「jQueryを使うべき理由」を語り出してもなあ
いずれにしても、スレ違い
Name_Not_Found [sage] 2017/11/10(金) 09:41:07.21ID:???

それってjQuery使わなくても一緒だと思うけど、
jQuery使わないで作るのが大変だから
そういうのはめったに落ちてないって話ですか?
Name_Not_Found [sage] 2017/11/10(金) 09:52:20.87ID:???
どうぞ

jQuery 質問スレッド vol.8
ttp://mevius.2ch.net/test/read.cgi/hp/1508707878/
Name_Not_Found [sage] 2017/11/10(金) 11:11:44.71ID:???

スレ違いはごもっともだが一々反応しているのが滑稽w
Name_Not_Found [sage] 2017/11/10(金) 12:56:34.21ID:???
何度もこういう流れがあったからテンプレ出来たのに荒らしが消したからなぁ
Name_Not_Found [sage] 2017/11/10(金) 18:07:09.13ID:???
jsからjQueryに入ったら簡単に感じる
jQueryから入って難しくてjs勉強した俺が言うんだから間違いない
Name_Not_Found [sage] 2017/11/10(金) 18:33:43.68ID:???
全然流れわからないけど、ウェブの参考にしたり拾ってくるならjquery分からないとかなり厳しい
自分だけでやるなら本当に好きにしろ
Name_Not_Found [sage] 2017/11/10(金) 21:32:07.73ID:???
多分某ローダッシュ君のような布教目的だと思って嫌う人がいるんだろうけど
jQuererに関しては単にjQuery使わないやり方を知らない・想像もできないだけだと思う
自分も昔そうだった
だからjQueryでこう書けばいい、程度であれば許してやって欲しい
Name_Not_Found [sage] 2017/11/10(金) 21:39:29.53ID:???
例えるなら仕事では「スーツを着る」のが無難で常識だと思っているところに対して
生JS派が別に裸やシャツ一枚でも十分仕事はできる、むしろスーツは窮屈
と言ってるのと同じに聞こえるんだと思う
Name_Not_Found [sage] 2017/11/10(金) 21:45:07.66ID:???
jQueryが悪いとかじゃなくて、「当然手間はかかっても生jsで同じコード書けるよね?
その上で利便性や開発生産性からjQuery選んでるんだよね?」って話じゃないの
Name_Not_Found [sage] 2017/11/10(金) 22:54:53.02ID:???
DOM APIでも大昔に比べて少しマシな書き方が
できるようになったとは言えjQueryにはかなわない

jQueryでできないことも有るかもしれないけど、
そこだけDOM APIを使えばいい

こう考えるとDOM APIのメリットはライブラリが必要ないから
ダウンロード時間が不要なのと実行速度が速い
そういうメリットを言えばいいのに、jQueryやめろーとしか言わないんだよな

いや、もちろんダウンロード時間も実行速度も無視できる程度だよ。
だからjQueryを使った時の開発速度と比較すると、小さなメリットしか無いよ。
でも、メリットを言うならそこしか無いだろ?そこを言えば良いんだよ。

今は反論されて撃沈したくないから、あえてDOM APIのメリットを言わないようにしか見えないよ
結局その程度の気持ちなんだろ? jQueryをやめろーって言ってるのは
本気でDOM APIの方がいいと思ってるなら、メリットを言えるはずだ


補足 ライブラリのメリットデメリットの話なので、
jQuery以外使えない人は困るとかいう、
人間の能力の話はしないでください
Name_Not_Found [sage] 2017/11/11(土) 00:01:05.81ID:???
jqueryが初心者向けだというなら、俺はTypeScriptを薦めたい。
コッチのほうが初心者向け。
例えばdocument.まで打ち込めばquerySelectorが候補として出るし必要パラメーターと返り値の型が分かる。
null安全でもあるからちゃんとnullチェックの分岐処理を入れないとエラーになる。
だから丁寧なコードをある程度矯正できる。

という具合に相手が求めてないのに薦めてうざいと思った?
Name_Not_Found [sage] 2017/11/11(土) 00:20:07.80ID:???
> jqueryが初心者向けだというなら、俺はTypeScriptを薦めたい。

TypeScriptは否定しないけど、それは言語の話なので
TypeScript(言語)でjQuery(ライブラリ)を使うのが良いよ。

君が勘違いしてるのはjQueryでコードが短くなることのメリットは
書く量が減るというメリットじゃなくて読む量が減るというメリット

たしかにタイプ数は減るが、仮に少ないタイプ数(操作)で
何万行もコードが自動生成され、それを読まないといけないとなったらどうする?
大変だって思うだろう? コード補完されたからといって、
そこから生成されるコード量が多ければ、その分だけ読まないといけない。

書くのは一回(数回)だが読む回数はもっと多い。
バグ修正で忘れた頃に読まないといけない。他人が読まないといけない。
そういう時に読む量を減らすのが目的なんだから、候補として出るというだけじゃ
何も問題は解決してない

そして最初の話。TypeScriptでjQueryを使えば良いんだよ


> という具合に相手が求めてないのに薦めてうざいと思った?
いや別に? 内容に穴があるなぁって思ったよ。
Name_Not_Found [sage] 2017/11/11(土) 00:27:47.05ID:???
俺も時々、型あり言語では型を書くのが面倒だが、
それは補完してくれるテキストエディタがあれば
そこまで面倒ではない。的な発言をすることがあるしね。

ここで型があったら読まなければいけない量が増えるじゃないか
っていわれそうなんで補足

俺が言ってる読まなければいけないから大変いうのは「処理」
型などの定義部分は、処理とは違って、何をやってるんだろう?と
読み解かなければいけない所ではなくって、コメントのように
あぁ、ここはこの型なのねってさらっと見ればいい部分

なので定義部分に関しては許容できる。というスタンス

だから俺にとって「冗長なコード」っていうのは、
型(定義)ありだから冗長ってことにはならないんだよね
処理しか見ないからね。

そして型(定義)部分は、たいして読まなくて良いものだから
面倒な点があるとすると(繰り返すけど定義部分は)書く時
それは補完で相殺できる。

もちろん
> 例えばdocument.まで打ち込めばquerySelectorが候補として出るし
っていうのは補完してるものが定義ではなく処理(メソッド)の一部なので
こういうのはなるべく少ない方がいい。書く時ではなくて読む時の話。
Name_Not_Found [sage] 2017/11/11(土) 00:32:35.52ID:???
もう一つに補足しておこうか?

補完してくれるから、とかnull安全だからという理由は
初心者向けということにはならない。
だってそれらは上級者でも便利な道具なんだもの。

初心者向けというのは補助輪のように、
上級者にとっては足かせになるようなもののことだろう。

例えばScratchみたいなビジュアルプログラミング言語も
上級者にとっては足かせになるから、初心者向けだろう。


TypeScriptもjQueryも上級者が使っても便利なものは
初心者向けと呼ぶのは間違いだろう。
初心者でも上級者でも使いやすい道具という言い方なら間違いじゃないけどね。
Name_Not_Found [sage] 2017/11/11(土) 00:34:35.31ID:???
あと俺はjQueryが初心者向けだとは言ってないよ。

初心者に上級者でも使ってる道具を薦めるのは
小さい頃から本物のピアノを薦めるのと同じようなものだろう。
本物志向w

まあjQueryは上級者でも初心者でも使いやすい道具なんだが
Name_Not_Found [sage] 2017/11/11(土) 00:37:28.86ID:???
無関係な話は無い方が良いけど、TypeScriptやjQuery
はこのスレに関係ある内容なのでうざいとは思いませんね。

無関係な話(例えば「おまえの考えは気に食わんから書き込み禁止」的なもの)は
やめましょう。
Name_Not_Found [sage] 2017/11/11(土) 00:51:27.46ID:???
直接DOM触らんのにeachの為にjquery入れてる
みたいな悲劇が起こらなけりゃ別に良いよ
Name_Not_Found [sage] 2017/11/11(土) 00:54:55.32ID:???
ライブラリを本来の目的と違う使い方をするのは
ライブラリの問題ではなくて、使う人の問題なので、
人の問題を理由に、ライブラリに文句をつけること自体がおかしい

それを言ったら、ブラウザで動かす必要が無いのに
(alertで)画面にメッセージ表示したいために、
JavaScriptを使うという悲劇とかいう言い方までできてしまう。

そういうのは人の問題
Name_Not_Found [sage] 2017/11/11(土) 01:03:41.60ID:???
みんな今流行りのprototype.js使おうぜ最高にイケててナウいからモテるぞ
Name_Not_Found [sage] 2017/11/11(土) 01:53:02.30ID:???
prototype.jsは最終更新日は2年以上前だよ
最新のブラウザに対応しているのかどうかも怪しい

prototype.jsはDOM周りは、DOM APIのショートカットでしか
なかったのが良くなかった。jQueryはDOMをリストとして
扱うという考え方の変更だったけど、prototype.jsは
document.getElementByIdって入力するの長いでしょ?
短い名前の関数用意したよ。で終わってしまった。

標準オブジェクトのprototypeを変更するというのは、
そんなに悪くない発想だと思うんだけど、やっぱり標準で
同じ名前のメソッドが定義されて互換性がなくて。
なんだろうな。GoogleとかMozillaとか大手が同じことをやっていれば
このアプローチでも良かったんだと思うけど、運かなぁ。それがなかった

まあやっぱりjQueryに駆逐されたものという扱いなんだろうな
Name_Not_Found [sage] 2017/11/11(土) 02:47:42.53ID:???

問題はその理屈だと結局ありとあらゆる事をする時に色んなライブラリを提案しないといけないのか?ということになり
極論を言うと、今その問題を「a()」だけでこなせるライブラリ書いてupしたからそれを使うのが一番スマートだよとも言えてしまう

勿論もしそういう事なら皆それはおかしいと思うはずだが、jQueryで意見が別れるのはJSで一番有名なライブラリという特殊性にあると思う
jQueryを準標準だと考える人と、そうでない人との溝は深い
Name_Not_Found [sage] 2017/11/11(土) 02:47:44.34ID:???
の禁止事項を読んでから書き込みしてもらえないものかね
Name_Not_Found [sage] 2017/11/11(土) 02:53:16.31ID:???
多分jQueryを他のライブラリと同列だと考えない人にとってはその禁止事項は意味を成さないんだろうね
何でうざがられてるのかもよく分かってないようだし
Name_Not_Found [sage] 2017/11/11(土) 12:29:20.34ID:???
jQueryがオワコン気味なのは紛れもない事実
流行中はドヤってもいいけど潮目が変わればおとなしく引き下がるべし
Name_Not_Found [sage] 2017/11/11(土) 13:10:33.61ID:???
取り敢えず使いたいやつは使えってことだろ?

俺が知りたいのは、JavaScriptを学ばずにjQueryを使うことは最適解なのかどうか。教えてくれ
Name_Not_Found [sage] 2017/11/11(土) 13:19:23.45ID:???
jQuery を使わない開発者は、ドンドン貧乏になっていく!

このブラウザでバグが出た。
このOS でも、バグが出た

新たな環境で、バグが見つかる度に、修正依頼が届くから、
結局、無料で、永遠に修正させられる

最終的には、時給が100円以下になる。
JS は、トラブルと貧乏しか生まない!
Name_Not_Found [sage] 2017/11/11(土) 13:38:33.47ID:???
とりあえずdom操作目的ならvue.jsとかreactを使うから
そのためにjquery使うのは微妙。
他に使いみちなんかあるの?
Name_Not_Found [sage] 2017/11/11(土) 21:03:39.74ID:???
なんというか、「え?プログラミングってどんなものか知りたいの?」
「じゃあ今見てるブラウザでF12押して、コンソールに1+1って入力してみて」
ってできる気軽さがJSの醍醐味なのに、初期学習者に対してjQueryを押し付けるのは無粋なんだよ
開発者としてならどんどん使ってどうぞ、でもJS初心者の学習には不要
Name_Not_Found [sage] 2017/11/11(土) 21:06:57.84ID:???
つうかそういうようなプログラミングを勉強したいっていう層や動機無視で
すぐ業務が云々言い出す奴も無粋極まりないと思う

最初はChromeとか今使ってるブラウザで動けばいいじゃない
でもそれを公開しようとした段階で別のブラウザだと仕様が違うことを知り、
じゃあどうするのかを考えるのも勉強だと思うよ
最初からjQueryありきで進めるのはやはり良くない
Name_Not_Found [sage] 2017/11/11(土) 22:10:57.10ID:???
基本的に俺もjqueryいきなり勧めるやつ否定派だけど
jqueryオワタ論は懐疑的。chrome-extensionで今開いているサイトの使ってるライブラリが分かるやつがあるんだけど
qiitaではreact押しでjquery否定な感じだが
現実はそこまでreact使ってるサイトはないし、jquery使ってるサイトは多い。
多分、理想と現実のギャップを目撃してるんだろうけどね。
Name_Not_Found [sage] 2017/11/12(日) 00:11:40.73ID:???
このスレはそういう流れをもう何度も繰り返してきたんだよ
にまともなテンプレが載ってるから目を通すと不毛な争いを避けられる
Name_Not_Found [sage] 2017/11/12(日) 04:44:55.51ID:???
どう考えても避けられるとは思わない
歴史の教科書や犯罪事例が合っても犯罪がなくならないのと同じ
Name_Not_Found [sage] 2017/11/12(日) 10:01:46.12ID:???
何れにしてもライブラリの話題は他所でやれってことでしょ
jQueryなんて専用スレあるんだしそっちに誘導してやればいい
Name_Not_Found [sage] 2017/11/12(日) 11:21:40.43ID:???
一々反応している方が野暮
Name_Not_Found [sage] 2017/11/12(日) 11:46:14.37ID:???
で誘導してる
Name_Not_Found [sage] 2017/11/12(日) 18:17:50.83ID:???

> jQueryがオワコン気味なのは紛れもない事実
せめてシェアが大きく下がってから言うか、
jQueryよりも優れているというコードを書いてから言ってほしい所
Name_Not_Found [sage] 2017/11/12(日) 18:21:36.06ID:???

> とりあえずdom操作目的ならvue.jsとかreactを使うから

現実から目をそらさないで考えてみ。
今までHTMLとCSSで書いていました!
というのをvue.jsやreactに置き換えた所あるかい?

vue.jsやreactの欠点は、既存のHTML+CSSに
JavaScriptを付け足して動作をカスタマイズするという
用途に向かないんだよ。
Name_Not_Found [sage] 2017/11/12(日) 18:28:50.80ID:???

> qiitaではreact押しでjquery否定な感じだが
> 現実はそこまでreact使ってるサイトはないし、jquery使ってるサイトは多い。
> 多分、理想と現実のギャップを目撃してるんだろうけどね。

理由ははっきりしていて、react押しなのはもともとJavaScriptを
多用するサイトを使っていて、JavaScriptコードのメンテナンスコストが
高くなってしまってるという前提が有るからなんだよ。

残念ながら既存のウェブサイトはページの一部にJavaScriptを利用しているだけ
例えば会社の地図を表示するためにAPIを使ったりとかね
その程度なんだからreactに乗り換えるわけないよ
Name_Not_Found [sage] 2017/11/12(日) 19:00:49.91ID:???
ttps://stackoverflow.blog/wp-content/uploads/2017/05/javascript-large-1-1024x621.png
Name_Not_Found [sage] 2017/11/13(月) 18:11:26.70ID:???
Reactは最近むしろReact Nativeが最近勢い良いじゃん
知ってるか?WebブラウザのためのReact風にNativeアプリを作れるようにした
React NativeをWebブラウザ用に書き出すためのReact Native Webというのがあって
そこそこ使われてるんだぞ?まさに奇想天外だな
Name_Not_Found [sage] 2017/11/13(月) 21:44:33.32ID:???

> Reactは最近むしろReact Nativeが最近勢い良いじゃん

あー、それは理解できるな
Reactはアプリ用であってウェブサイト用ではない
と考えるとReact Nativeになるもんな

まあどちらにしろウェブサイト用のjQueryに変わる
ライブラリはまだ登場してないことに変わりはないが
Name_Not_Found [sage] 2017/11/13(月) 23:09:48.80ID:???
reactのjsxはキモいんだがわかるやついない?
Name_Not_Found [sage] 2017/11/13(月) 23:12:12.35ID:???
jQueryに変わるウェブサイト用のライブラリってのも必要性が分からんけどな
jQueryで何千行も書いたりしないんだろう?
実際はせいぜい十回くらい要素取るためだけに使ってるだけじゃないの?

なら別にそれ使わなくたって大した違いないじゃん
lodashに含まれる僅か数種類の機能を数カ所で使いたいからといって
わざわざlodashをライブラリに加えたりしないでしょ

逆にアプリケーションとしてフレームワークを使うってことなら
それこそ何千行の短縮になるから価値も理解できるけどさ
なんか取り敢えずちょっとはマシになるだろうから何も考えず取り敢えずちょっと使っとけ
みたいなのは容認できないわ
Name_Not_Found [sage] 2017/11/13(月) 23:18:16.24ID:???

いやねあんたの言う「大したことはない」は
「面倒だけど、それぐらい我慢できる」って意味になってるんだよ

なんでいちいち我慢しなきゃならんのかと
Name_Not_Found [sage] 2017/11/13(月) 23:18:53.55ID:???
各ブラウザのバグ対応も有るしな
jQueryをやめると、コードは5倍ぐらいになるからな
Name_Not_Found [sage] 2017/11/13(月) 23:20:10.90ID:???
なんのメリットもないのに使わなくても我慢できるから使うな的な
理屈を言うのやめろよ。メリットを言えよ。メリットを
Name_Not_Found [sage] 2017/11/13(月) 23:44:49.54ID:???
古いブラウザは動かなくさせられるメリットがある、とか
Name_Not_Found [sage] 2017/11/14(火) 00:02:44.95ID:???

いや、メリットは暗に言ってるだろ
管理するライブラリが減る、管理しなくて済むと
仮に倍違うとしても、ここで質問されるのはせいぜい数行のもの
その数行の節約のために質問者にjQueryのDL、もしくは管理と
勉強を強制するのはそれこそメリットよりデメリットが上回ってるでしょ

バグ対策とかいうのもここでの質問には基本的に必要ないんだよ
まあ仮に質問者が教えていただいたコード僕のIE6じゃ動きませんと言ったとしても
じゃあjQuery使うと良いよというのが良いのかどうかは分からんがな
Name_Not_Found [sage] 2017/11/14(火) 00:07:45.32ID:???
必要に応じて適切なライブラリやフレームワークを推奨するんなら分かるけれど
何でもかんでもjQuery有りきっていうのは間違ってるってことでしょ
メリットが有るなんてどのライブラリやフレームワークだって同じだし
ならこの世の全てのライブラリやフレームワーク使うのか?って話になる
Name_Not_Found [sage] 2017/11/14(火) 00:10:09.90ID:???

> 管理するライブラリが減る、管理しなくて済むと
普通の言語だったらそうだろう

だけど、ブラウザの場合はどうしても避けられない
ブラウザの種類というものが有る。

ブラウザの種類を管理しなければいけないんだ。
jQueryを使うと管理するブラウザの種類が減る
それぞれのブラウザのバグの対応を行ってくれる

そっちのメリットのほうが大きいよ
Name_Not_Found [sage] 2017/11/14(火) 00:14:28.42ID:???

> 必要に応じて適切なライブラリやフレームワークを推奨するんなら分かるけれど
> 何でもかんでもjQuery有りきっていうのは間違ってるってことでしょ

いや、場合によってはjQueryじゃなくてlodashを勧めたりしてるよ
momentを勧めたことも有る。なんでもjQueryではなく
その他が適切な場合は別の方法を提示してるよ。

単にAngularやReactが適切な質問がないってだけ
それは俺が適切じゃないと思ってるだけで、
jQuery以外のライブラリやフレームワークが適切だと思えば
その例をサンプルコード付きで出してあげればいいじゃない
Name_Not_Found [sage] 2017/11/14(火) 00:23:25.64ID:???

> 仮に倍違うとしても、ここで質問されるのはせいぜい数行のもの
> その数行の節約のために質問者にjQueryのDL、もしくは管理と

人生で数行しかコードを書かないならそうだろうね。
でも違うからね。
Name_Not_Found [sage] 2017/11/14(火) 00:23:56.34ID:???

だから上でも一度言ったがお前の仕事ならそうすればいいさ
俺も仕事ならそうする
でもこのとかのスレの性質上コード作成依頼は当然お断りだし、一問一答のような場合が殆ど
レベルとしては小中学校の義務教育内容なんだよ

jQueryを使ってどう書けますか?どういう道具を使えば実現できますか?という質問なら
その都度、何も考えずにこのライブラリ使えばこれで済むよ、でいいんだよ
でも質問者的にはJSを勉強しよう、理解しようという趣旨で一般的な質問してきてる場合が多い
ここは「JavaScript を自ら学ぶ人のための質問スレッド」だからね
そうじゃないと必然的にコード作成依頼に近くなってくる

その上でここなどでの回答というのは最も単純に物事を解決できるものではなくて
きちんと質問者がJSの勉強を出来るものでないといけないんだよ
誤解しないでほしいけどそれはライブラリの話するなと言うことではないよ
ただjQueryは必須だといってJSに全く向き合おうとしないのは、
何だかんだ理由つけて完全に素のJSから逃げようとするのは行き過ぎということ
Name_Not_Found [sage] 2017/11/14(火) 00:36:09.26ID:???
質問者に決めてもらえばいい
『私は小中学生なので高校や大学で習う公式で教えないで下さい』か
『私は社会人なので率直に役立つ方法を教えて下さい』か
Name_Not_Found [sage] 2017/11/14(火) 00:39:07.28ID:???

質問者を育ててるつもりかもしれんがそれはお前のエゴ
育つやつは勝手に育つ
俺達は自由に解答すればいいだけ
それをどう捉えて活かすかは完全に質問者の責任
Name_Not_Found [sage] 2017/11/14(火) 00:45:37.52ID:???
そんなに「JavaScriptを学ぶ」に
こだわるならDOM APIはブラウザが提供しているAPIであって
JavaScriptではないと言わないといけないな。
どうせダブルスタンダードなんだろうけどな。
Name_Not_Found [sage] 2017/11/14(火) 01:40:24.03ID:???
ChromeでのみWebGL2のcreateVertexArrayが時々nullを返すんですけど返す条件って分かりませんか?

あとcreateVertexArrayやcreateBufferで作成したオブジェクトも参照が切れた時点でGCで回収されるので明示的にdeleteしなくても大丈夫ですよね?
Name_Not_Found [sage] 2017/11/14(火) 12:23:51.25ID:???

できれば再現するための最小コード貼ってみて
まあ経験上はタイミング的問題というかバグなのかもしれない
それと昨今のメモリリークバグはdeleteは関係ないよ
JSオブジェクトとリンクされた内部バッファの管理の問題だから
JS側では別策を取る以外何もできないというのが主流だから
とは言えChromeは1年くらい前からネイティブとJSのGCを統合する仕組み強化したから
Canaryでも使っていない限り滅多にお目にかかれないと思うけどね
(ただしBlobURLを使うと仕組み上どうしてもリークする)
Name_Not_Found [sage] 2017/11/14(火) 15:59:49.08ID:???
取ってつけたように適当な質問しなくていいから(呆)
Name_Not_Found [sage] 2017/11/14(火) 19:25:58.87ID:???

それは流石にない
まずは銃に頼らず筋肉を付けろと言ってるところに
じゃあ人間の本質は脳だから手足を無くせと言うようなもの
Name_Not_Found [sage] 2017/11/14(火) 22:46:30.96ID:???

例えが的外れ。

まずjQueryはJavaScriptで使うライブラリなのだから
使う言語はJavaScriptだ。jQueryを使っていても
JavaScriptを使う以上、JavaScriptの勉強になる。

DOM APIはJavaScriptではない。これはJavaScriptの仕様書に
DOM APIがのってないことからも明らか
つまり、おまえはJavaScriptとDOM APIを混同している。
Name_Not_Found [sage] 2017/11/14(火) 22:53:27.15ID:???
> まずは銃に頼らず筋肉を付けろと言ってるところに

これを「道具に頼らず筋肉をつけろ」と言い換えれば
DOM APIの立場ってのがよく分かるだろう。
jQueryは道具。DOM APIは筋肉。普段の生活で何を使っている?

朝起きてシャワー浴びて着替えて電車に乗って
パソコンを使って仕事をして食べ物を調理して寝る

川に行って水を組んで火を起してお湯にして
何キロも歩いて紙と鉛筆で図表を作って
狩りをして火をおこして焼いて寝る

これが「道具に頼らず筋肉をつけろ」ということだ
無人島ツアーじゃあるまいし、そんなことをして遊ぶ気はない。
どうしても必要なところだけ頑張ればいい
Name_Not_Found [sage] 2017/11/14(火) 23:31:58.13ID:???
DOM APIはCで言うところのOSのAPI(の一部)みたいなもんだと思う
CとJavaScriptは単独ではコンパクトな辺りはよく似てると思う
Name_Not_Found [sage] 2017/11/14(火) 23:43:07.17ID:???
OS、例えばWindowsだと、Win32APIを持ってきて、
これが基礎だと騒がれる気持ちがわかるだろう?
Name_Not_Found [sage] 2017/11/15(水) 00:14:58.69ID:???
たとえ合戦は不毛
Name_Not_Found [sage] 2017/11/15(水) 01:04:29.89ID:???
このスレはあと10年は話題に困らねえな
Name_Not_Found [sage] 2017/11/15(水) 04:08:54.53ID:???
ぶっちゃけjQueryが一番息が長くて
これからもほとんど変わらず生き残り続ける
ライブラリだよ。

AngularとかReactとか1年後に今の知識が
使えるかどうか怪しい
Name_Not_Found [sage] 2017/11/15(水) 06:17:46.03ID:???
オワコンって言ったのがよほど癪に障ったか
Name_Not_Found [sage] 2017/11/15(水) 08:14:43.01ID:???
オワコン云々よりjQueryに変わるような優れたライブラリがないだろ?w
Name_Not_Found [sage] 2017/11/15(水) 08:34:48.95ID:???
まあbootstrapがjQueryに依存してるからなあ
生き残ってる理由はそれが大きいな
Name_Not_Found [sage] 2017/11/15(水) 09:03:12.35ID:???

数年前ならWin32APIだったと思うが今なら(ネイティブではないが).NETくらいには感じてるよ
Name_Not_Found [sage] 2017/11/15(水) 09:27:08.25ID:???

これが嫌でblumaに乗り換えた
Name_Not_Found [sage] 2017/11/15(水) 09:27:40.29ID:???

アンカミスった
Name_Not_Found [sage] 2017/11/15(水) 10:38:11.40ID:???

本末転倒ってやつだなw

○○が良いから乗り換えた・・・乗り換える理由がある。正しい
○○が嫌だから乗り換えた・・・乗り換える理由がない。間違い
Name_Not_Found [] 2017/11/15(水) 12:20:20.92:n/iKPJ6+
Underscore を使っている、Backbone.js でさえ、
イベントハンドラーを追加した要素の、祖先の要素を削除したら、メモリリークを起こす

jQuery では、祖先の要素を削除したら、
その子孫のイベントハンドラーもすべて削除するから、メモリリークしない

jQueryの互換ライブラリのZepto.js でも、メモリリークする
Name_Not_Found [sage] 2017/11/15(水) 14:11:16.81ID:???
それは仕様の違いであってメモリリークとは言わない
もしかしたら生子要素を再利用する場面もあるかもしれないし
Name_Not_Found [sage] 2017/11/15(水) 19:42:17.83ID:???

> DOM APIはJavaScriptではない。これはJavaScriptの仕様書に
> DOM APIがのってないことからも明らか
JavaScript APIという用語を知らないのか
それから、JavaScriptという仕様書はないぞ
君が「JavaScriot = ECMAScript」と曲解してるだけ
Name_Not_Found [sage] 2017/11/15(水) 21:07:16.10ID:???
そんな文句を付けて何か意味があるのかは知らんが
取り敢えずJavaScriptという仕様書はかつてあったけどな
__defineGetter__やらESの仕様にないがブラウザが実装しているものについて
WHATWGが定義していたが拡張も概ねES仕様書に乗るようになったので削除された
Name_Not_Found [sage] 2017/11/15(水) 21:32:25.07ID:???

jQueryもJavaScript APIだよ
Name_Not_Found [sage] 2017/11/15(水) 21:34:31.02ID:???
JavaScript APIとはなにか?
ttps://www.google.co.jp/search?q="JavaScript+API"&oq="JavaScript+API"&sourceid=chrome&ie=UTF-8

Maps JavaScript API - Google Developers
JavaScript API for Office - MSDN - Microsoft
JavaScript API の例 - IBM
Garoon JavaScript API - cybozu developer network
Name_Not_Found [sage] 2017/11/15(水) 21:40:15.09ID:???
JavaScript APIって呼び方意味分からんわ
JavaにJSの環境を公開するAPIならそう呼ぶのはわかるが
ライブラリはあくまでライブラリでしょ
jQueryくらい薄いラッパーではAPIと名乗ることすらおこがましい
Name_Not_Found [sage] 2017/11/15(水) 21:40:18.87ID:???

「JavaScript, aka.」の事だとしたら、相互運用性の為に非推奨機能をまとめただけの補完的仕様で「JavaScriptの仕様」と呼べるものでもなかったと思う
Name_Not_Found [sage] 2017/11/15(水) 21:42:17.22ID:???
JavaScriptによるAPIなのか
JavaScriptのためのAPIなのか
コンテキストによるだろ
748 [sage] 2017/11/15(水) 21:45:18.62ID:???
それ単体で「JavaScriptの仕様」と呼べるものでもなかったと思う

に訂正しておく
Name_Not_Found [sage] 2017/11/15(水) 21:47:20.24ID:???
過去にW3CでJavaScript APIという単語を見た覚えがあるけど、今見るとなくなってるね
まあ、API for JavaScriptとでもいえばいいんじゃない?
Name_Not_Found [sage] 2017/11/15(水) 21:50:01.04ID:???
今の論点はEcmaScriptという仕様の実装であるJavaScriptに
DOM APIが含まれているものは存在しないというところでしょ
Name_Not_Found [sage] 2017/11/15(水) 21:51:58.67ID:???
DOM APIはJavaScript以外からも呼び出せる
だからDOM APIがJavaScript APIなのではなく
DOM API for JavaScript というものがあるという話
"JavaScriptのための" DOM APIなのだから
JavaScriptに DOM APIが含まれていないのは明らか
Name_Not_Found [sage] 2017/11/15(水) 21:52:10.44ID:???
Google Chrome等のJavaScript実装はDOM APIを実装しているだろ
Name_Not_Found [sage] 2017/11/15(水) 21:53:57.83ID:???

その理屈はおかしい
クロスプラットフォームなAPIはどのプラットフォームでも実装できるというだけ
JavaScritptでもJavaでもPHPでも使えるAPIがDOM API
Name_Not_Found [sage] 2017/11/15(水) 21:58:52.82ID:???

> Google Chrome等のJavaScript実装はDOM APIを実装しているだろ

その答は「含んでない」
ということを明らかにすれば君も納得できるんじゃない?

なぜ含んでいないのが明らかなのかというと、Google Chrome等のJavaScript実装は
V8 Engineなわけだが、このV8 エンジンは ブラウザではないnodeでも使われてる。
nodeにDOM APIがないのは言うまでもない

そしてもう一つDOM APIを実装しているものとしてBlinkという別の名前がある

ttps://www.chromium.org/blink

そのblinkから興味深いコメントを持ってきたよ。DOMがBlinkにあることの証拠になるだろう。

> Finally, we’d like to explore even larger ideas like moving the entire
> Document Object Model (DOM) into JavaScript. This has the potential to
> make JavaScript DOM access dramatically faster, but will involve a very
> large re-write of WebKit’s DOM implementation?something that would
> be difficult in WebKit which has two supported JavaScript engines.

Google翻訳

> 最後に、Document Object Model(DOM)全体をJavaScriptに移行するなど、
> より大きなアイデアを検討したいと考えています。これは、JavaScript DOMへの
> アクセスを劇的に高速化する可能性を秘めていますが、WebKitのDOM実装を
> 非常に大きく書き直す必要があります.WebKitでは2つのJavaScriptエンジンがサポートされていません
Name_Not_Found [sage] 2017/11/15(水) 22:02:03.69ID:???

JavaでもPHPでも使えるから
Java APIでありPHP APIだって
言いたいって話でOK?
Name_Not_Found [sage] 2017/11/15(水) 22:08:10.94ID:???

それぞれの言語仕様の範疇でDOM APIを呼び出しているわけだから、その解釈でいいんじゃない?
同じDOM APIでもJavaとJavaScriptでは命名規則が微妙に違うよね
Name_Not_Found [sage] 2017/11/15(水) 22:10:54.34ID:???

仕様と実装の違いは理解できるか?
node.jsはDOM APIを実装しなかった
Google ChromeにおけるJavaScript実装はDOM APIを実装した
それだけの違い
Name_Not_Found [sage] 2017/11/15(水) 22:14:58.29ID:???

そりゃそうだろ。

概念的にはこんな感じだ

[DOM] - [JavaScript用バインディング] - [JavaScript]
[DOM] - [Java用バインディング] - [Java]

見ての通り、JavaにDOMが含まれているわけじゃない
Name_Not_Found [sage] 2017/11/15(水) 22:15:52.56ID:???

node.jsとChromeは両方共
同じJavaScript実装を使ってるんだよ。
おまえまずそこからだな。
Name_Not_Found [sage] 2017/11/15(水) 22:17:44.15ID:???
これ仕様の話をしてんの?
実装の話をしてんの?
「JavaScriptの仕様」なんて話をしている輩は論点がずれている気がするけど
Name_Not_Found [sage] 2017/11/15(水) 22:20:02.83ID:???
そもそも、JavaScriptという名の仕様が存在しないから、JavaScript実装なんてワードを持ってくるのが間違いなんだな
Name_Not_Found [sage] 2017/11/15(水) 22:20:17.13ID:???

そもそもそれ言ってるやつ「仕様」と「実装」の意味がわかってないと思う
なんかブラウザのことを実装、JavaScript(?)のことを仕様と思ってるっぽい

正しくはブラウザはJavaScript実行環境。
V8エンジンなどのJavaScript実装とBlinkなどのレンダリングエンジン(DOM含む)
これがJavaScript実行環境

JavaScript実行環境は、JavaScriptの仕様でも実装でもない
Name_Not_Found [sage] 2017/11/15(水) 22:32:13.79ID:???
実行環境も実装の一つだけどねえ
言葉遊びみたいだ
Name_Not_Found [sage] 2017/11/15(水) 22:32:59.55ID:???
それは違う。
Name_Not_Found [sage] 2017/11/15(水) 22:34:11.46ID:???
V8エンジンを使っただけどオレオレブラウザ作っても
JavaScript実装したぜすげーだろとはいえないからなぁ
Name_Not_Found [sage] 2017/11/15(水) 22:35:20.09ID:???
な? はブラウザのことをJavaScript実装って言ってるわけだよ
バカってわかっただろ?
Name_Not_Found [sage] 2017/11/15(水) 22:37:12.75ID:???
優越感に浸ることが出来て良かったね
Name_Not_Found [sage] 2017/11/15(水) 22:38:16.25ID:???

どういう環境・状況で発生するか分からないので最小コードは分かりません
開放してないのでメモリリークでnullになってるのかと思ったので
deleteVertexArrayやdeleteBufferで開放してないせいだと思いましたが
明示的にしなくても良いということでしょうか?
Name_Not_Found [sage] 2017/11/16(木) 02:27:09.59ID:???
ドライバのバグかもしれんしとりあえずnullが来ても良いようにするしかない
Name_Not_Found [sage] 2017/11/16(木) 02:44:39.48ID:???

しなくてもJSオブジェクトの参照が切れれば遠くないうちに回収される
deleteを呼ぶとそれを早める事ができる
と仕様に書いてある
Name_Not_Found [sage] 2017/11/17(金) 09:32:26.73ID:???
子供の頃自治会の野球やらされ続けて苦痛だったがjQuery推しの奴らはそれと似てるな
ただ皆と上手く遊べるように運動神経付けたいですってだけなのに素振りを押し付けてくる
実際遊ぶことが多いのは野球が多いにしても問題があると思うけどな
Name_Not_Found [sage] 2017/11/17(金) 09:46:19.04ID:???
まーたわけのわからないことを言い出した
野球批判したいだけなら野球板でやればいいだろ
Name_Not_Found [sage] 2017/11/17(金) 13:15:17.66ID:???
マジレスすると、野球の批判ではなく野球のように有名だが特殊なものを
それが常識であるかのように押し付ける事への不満だろ
Name_Not_Found [sage] 2017/11/17(金) 13:38:16.50ID:???
わかってて野球批判へ話をすり替えるためにレスしてるんでしょ
Name_Not_Found [sage] 2017/11/17(金) 23:51:53.22ID:???

マジレスすると

1. 野球とjQueryが似てると言うだけでその根拠が書いていない(だから似てないかもしれない)
2. 1以外(似てるという根拠がない)野球の話しかしていない
3. 子供の頃野球やらせて苦痛だという前提の話をしてる(苦痛じゃない人には当てはまらない)
4. 運動神経付けたいだけの人という前提で話をしてる(野球やりたい人を含めていない)
5. 素振りを押し付けてくるという前提で話をしてる(野球をさせてくれる所に当てはまらない)


つまり勝手な前提を取っ払って、自分の感想部分を明確にすると

「俺は運動神経付けたいだけなのに、俺の自治会では野球をさせてもらえず
素振りばかりやらされて苦痛だった。でも世の中には野球が好きで野球させてくれる
恵まれた人もいるだろう。そういう自治会であれば苦痛でもなんでもないのに。
そういうところがjQueryと似ている」

と言ってるわけだよ

一言で言うと「俺は野球嫌いで野球やらされるのも嫌い。お前らもそうだろ。そうに決まってる」
と言ってるわけで・・・あぁ、一緒だ

「俺はjQuery嫌いでjQueryやらされるのも嫌い。お前らもそうだろ。そうに決まってる」

おまえの好みを押し付けるな。余計なお世話だって話と一緒だ。
野球やるかやらないかは、勧められた人が決めれば良いこと
提案はなんでもOKだ。
Name_Not_Found [sage] 2017/11/17(金) 23:58:40.43ID:???

3行でまとめて
Name_Not_Found [sage] 2017/11/18(土) 00:12:45.10ID:???

おまえが野球嫌いだからって他人も同じだと思うな
野球勧められてやるかどうかは、本人が決めることだ
他人のおまえが指図すんな。だまってろ
Name_Not_Found [sage] 2017/11/18(土) 01:24:56.79ID:???
ただの感想にこれだけ突っかかってる時点で自己矛盾してるわけだが、自覚がないのが厄介だな
Name_Not_Found [sage] 2017/11/18(土) 03:01:03.11ID:???
なぜ感想に突っかかることが矛盾になるのか?
意味が分からんな
Name_Not_Found [sage] 2017/11/18(土) 03:12:56.53ID:???
あれかな?

jQueryに文句言っても、黙っていてください
その代わりjQueryに文句言いませんから

とかいう矛盾w
Name_Not_Found [sage] 2017/11/18(土) 04:42:05.70ID:???
jQueryに対して何らしかの不満を持ってて嫌われているんじゃなく
それを使う人のとある振る舞いが注意されてるだけなのにまだわからないか
呆れるね
Name_Not_Found [sage] 2017/11/18(土) 04:51:26.43ID:???

あんた質問者でも回答者でもないんだろ?
それが余計なお世話ってまだわからないのか?

注意してるのはおまえであって、質問者じゃない
感謝すべき回答をおまえは自分が気に食わないからって
書き込むなって言ってるだけ。

少しは口をつぐんだら?おまえが黙っていれば
おまえに文句はつけないよ?w
Name_Not_Found [sage] 2017/11/18(土) 05:22:48.20ID:???
「とある振る舞い」とかぼやかして書くから
何が言いたいの分からんが、やって良いことを羅列しておこう

・jQueryの話題をすること
・jQueryのサンプルコードを書くこと(むしろ大歓迎)
・jQueryのすばらしさを語ること
・jQueryのデメリットを言わないこと(ほかの人がやればいい)
・jQuery以外のサンプルコードを書くこと(むしろほかの人がやれ)
Name_Not_Found [sage] 2017/11/18(土) 09:19:43.66ID:???
> おまえの好みを押し付けるな。余計なお世話だって話と一緒だ。
ブーメランだよなあ
Name_Not_Found [sage] 2017/11/18(土) 10:19:57.34ID:???
「言論の自由」を主張しながら、他者に対しては言論封殺。
そういう行為を二枚舌と言います。
Name_Not_Found [sage] 2017/11/18(土) 11:33:20.86ID:???

jQuery信者のjQuery信者によるjQuery信者の為の言論統制
Name_Not_Found [sage] 2017/11/18(土) 11:44:44.46ID:???
別にjQueryに限らなくても、ちょっとした数行の質問回答程度で
やれ関数型で書くのが安全だのワンライナーがスマートだの拘り過ぎるやつは鬱陶しい
しかもそれが今回のケースでは適当というのならまだ有用だしなんの問題もないけど
jQueryの奴らはDOM操作が伴えば必ずそうしろというただの信仰心の押し付けを行ってるだけだもの
Name_Not_Found [sage] 2017/11/18(土) 11:50:17.01ID:???
俺はjQueryがどちらかといえば嫌いだが、jQueryユーザには罪はないと思っていたんだ
だが、このスレを見てると、jQueryユーザの宗教染みた押し付けが酷くて、jQueryユーザそのものに嫌悪感を抱くようになりつつある
良識あるjQueryユーザにはいい迷惑だろうな
Name_Not_Found [sage] 2017/11/18(土) 12:08:59.61ID:???

それはおまえの思い込み。
ただ単にjQuery使ったほうがシンプルにかけるから
書いているだけ。被害妄想も大概にしとけ
Name_Not_Found [sage] 2017/11/18(土) 12:10:18.21ID:???

ブーメランじゃないよ。

選択肢を増やすのは良いこと。
その選択肢をなくそうとするのはダメなこと。

選択肢をなくそうとするのではなくて
別の選択肢をいわないと
Name_Not_Found [sage] 2017/11/18(土) 12:38:58.26ID:???

そもそもここは荒らしがこの流れにするためにテンプレ撤去して立てたスレなんだから
良識も糞もないんだよ
Name_Not_Found [sage] 2017/11/18(土) 13:36:49.49ID:???
ページの再読み込みなしでURLとページ内容が変わるのってどういう仕組みでしょうか?
進む戻るの履歴には記録されましたが、読み込み中の表示もないしページが読み込まれると動くアドオンなどは動かないです

IEとCHROMEで同じ挙動でした
javascriptだとは思うのですが、よろしくおねがいします
Name_Not_Found [sage] 2017/11/18(土) 13:42:49.68ID:???

History APIを調べると良いよ
Name_Not_Found [sage] 2017/11/18(土) 14:30:59.28ID:???
test
Name_Not_Found [sage] 2017/11/18(土) 14:45:36.67ID:???

違うね
ライブラリを入れるって事自体がシンプルじゃない
関数型チックに書くとかとは訳が違う

結局jQuery推しの人は目の前の問題にシンプルに答えることをせず
やれブラウザの互換性だの自分で勝手に問題を難しくしてるだけ
Name_Not_Found [sage] 2017/11/18(土) 14:55:29.68ID:???

シンプルに"書ける" って話をしてる

おまえが言うシンプルとは書くことの話じゃないだろ
曖昧な言い方をして話をすり替えんな

ホントお前キモいわ
Name_Not_Found [sage] 2017/11/18(土) 15:00:01.69ID:???

どんな答だって目的を実現できてるなら
書いて良いんですよ?

jQueryで書きたい人はjQueryで書けばいいし、
あんたの好きなやり方で書きたいなら書けばいいでしょ?

やったらだめなことは、jQueryで書くなと言うこと
どんなやり方だってそれはちゃんとした回答だが
書くなということは回答じゃない。
単なるおまえのやり方の押しつけ

押し付けはやめておまえのやり方のコードを書きましょう。
jQuery版は何回もコードが上がっています
Name_Not_Found [sage] 2017/11/18(土) 16:54:10.36ID:???

ありがとうございます。多分これですね
詳しく調べてみます
Name_Not_Found [sage] 2017/11/18(土) 16:59:26.90ID:???
どういたしまして。とまあjQuery布教の合間に
こうやって感謝されているわけさw
悔しかったら対抗してみれば?
Name_Not_Found [sage] 2017/11/18(土) 20:47:21.09ID:???
子供のケンカまだやってたのかいい加減にしろよ
ここら質問スレなんだから他でやれ
Name_Not_Found [sage] 2017/11/18(土) 23:20:03.09ID:???

jQuery以外の選択肢を奪っておいてよくいうなあ、と思った

> ・jQueryのデメリットを言わないこと(ほかの人がやればいい)
> ・jQuery以外のサンプルコードを書くこと(むしろほかの人がやれ)
Name_Not_Found [sage] 2017/11/18(土) 23:42:55.73ID:???

奪うというのは、jQueryの話題をするなと連呼すること
なんで俺が書かないことが、奪うことになるのか?
俺が全ての書き方を伝授すれば良いのか?
Name_Not_Found [sage] 2017/11/19(日) 00:57:34.39ID:???

だれもjQueryで書くななんて言ってないと思うけど
ただ本当は有用でないものを有用だと偽って勧めるのは良くないよね
最初から「布教目的だけど」とか「俺のエゴだけど」とか言って勧めてね
あ、違うか、「ブラウザ互換が怖いからおせっかいかもしれないけどわざわざライブラリ使うね」だったね
Name_Not_Found [sage] 2017/11/19(日) 01:16:11.05ID:???

じゃあこれからもjQueryでサンプルコード書いていきますね(にっこり)
もちろん理由もちゃんと書いていきますね。jQueryを使った理由を
Name_Not_Found [sage] 2017/11/19(日) 01:16:51.35ID:???
jQueryを含めたライブラリの話題をすることは
禁止じゃないからな。誰もjQueryで書くななんて言うはずがない
Name_Not_Found [sage] 2017/11/19(日) 01:19:52.03ID:???

ブラウザの互換性ならとっくに問題なくなってるよ。

今問題になってるのはブラウザのマイナーなバグや
(互換性ではなく)機能の違い

互換性は高くてもバグが有ることは避けられないし
互換性は高くても、あるブラウザには搭載されてない機能
ってのが存在する。機能の有無と互換性は関係ないから

そういう時jQueryで書いていれば、かなり古いブラウザも含めて
同じように動くことが保証されている。

そしてそれ以上にjQueryを使うと記述量が大幅に減るのがメリット
これは誰もが比較コードを書いて証明してくれる
jQueryで書くとこんなに短いコードが、jQueryなしだと
こんなに複雑になりますよって。
Name_Not_Found [sage] 2017/11/19(日) 02:14:46.57ID:???
っていうかjQueryを未だにブラウザ互換のために使う人なんているの?
純粋に開発効率が高いから使ってるんでしょ?
何年前から時代が止まってるんだろうなー
Name_Not_Found [sage] 2017/11/19(日) 08:49:36.20ID:???

互換に於いての開発効率も上げるよ
そんなに目の敵するようなことでもないだろ?w
スレ違いなのでこれで終了
Name_Not_Found [sage] 2017/11/19(日) 09:05:28.37ID:???
jQueryが対応している互換の範囲をサポートすべきという前提で
互換に於いての開発効率を上げるためにjQueryを使うべきと言ってるから酷いね
実際は互換が問題にならない場合だってjQueryでしか書けないし、
jQueryでも不足する場合は書けないだろうしね

実際はJS切ってる人でも最低限閲覧できるようにした状態で
プログレスエンハンスメント的に作っていくことだって必要だし
一般的な質問においてjQueryを使うのはマイナスでしかないけどね
そこを勘違いしてはダメだよね
Name_Not_Found [sage] 2017/11/19(日) 09:16:49.69ID:???
いつもjQuery使いに仕事を取られてるの?
必死すぎでワロタ
Name_Not_Found [sage] 2017/11/19(日) 09:28:50.30ID:???
以前脱jQueryを称える上司と話したことあるんだが
どうやら素JSがドレスコードあり(ジャケットくらいのレンタル可)の店だとすると
jQueryを使うのは浮浪者対策に全ての客にマネキン被せる店だそうな
それでjQuery使わなくて済むのが理想形だから云々言ってた

因みにフレームワークは対戦道場でロボットスーツ着るようなものでそれはOKらしい
要は臭いものに蓋してまで受け入れることが許せないと叫んでた
つまり結局はここでjQueryを批判する人たちって要は
ここくらいでは理想を語っても良いじゃないかという事なのだろう
Name_Not_Found [sage] 2017/11/19(日) 09:39:56.97ID:???
jQuery使わなければまともに書けないと思うのは勝手だが
そう初心者を洗脳するなと言いたいだけだけどな

要するに標準DOMにもある程度慣れて覚えたほうが良いってこと
理想というか、標準APIが使えない人が増えることへの危惧はある
そういう点はjQueryの功罪の罪の部分で回り回って自分たちの首締めつ行為だと考えてるから
こういう初心者教育スレでは皆で気を付けていこうよという気持ちはある

古い環境を相手し無いというのだって現実は難しくても
せめて相手するのが当たり前という思想だけでも増やさないようにしようよという感じ
で、そういうのはWebプログラマの義務であり共通認識じゃないの?という戸惑いがあって
そういう意味でその場しのぎのjQuery推しはエゴだって言った
Name_Not_Found [sage] 2017/11/19(日) 12:49:34.70ID:???
料理質問スレで旨みを出したいという質問者に対して味の素ばかり勧めるようなもんだろ
味覚は千差万別だし最初から全日本人向けに調整されている味の素を使うべき
1から出汁を作るのはナンセンスだよとか言われちゃ
調味料を全否定する気がなくとも一部の料理という行為自体を大切に思っている層から顰蹙を買うのは分かる

でも実際質問してきてるのが今日の献立に悩む主婦なら味の素を勧めたほうがいいだろうけどな
実際そういう人の割合が高いと思うし、その人達に料理を深く学ばせようとする事にどれだけの社会的価値があるのかね
Name_Not_Found [sage] 2017/11/19(日) 12:55:43.08ID:???
標準DOM、APIが扱いにくいだけだろ?
jQuery叩いたって仕方がない扱いにくいのは事実なんだからな
Name_Not_Found [sage] 2017/11/19(日) 13:08:24.51ID:???
扱いにくいのは絶対間違いない
だから実際はライブラリ使うか作るかになる

せめて例えばnew Elenent({attributes})とかできればいいのに
そうなるなる言われて何年経っただろうか?
CSS HなんとかとかよりDOM直せよとつくづく思う
Name_Not_Found [sage] 2017/11/19(日) 13:21:53.05ID:???

おまえのエゴを押し付けないように

単におまえが質問にDOM APIで答えればいいだけの話
俺はjQuery版を書くだけの話

こちらは選択肢を提示するだけ
あとは質問者が選べば良い

おまえの考えを押し付けるな
Name_Not_Found [sage] 2017/11/19(日) 13:42:59.53ID:???
別にjQuery使ったからってDOM APIを使えなくなるわけじゃあるまいしw

どうも能力が低いやつが多いよな
自分がjQuery使ったらDOM API使えなくなるからって
他人も同じだと思わないように

他の人はjQueryを教えたってDOM APIも使えるんですよ?
Name_Not_Found [sage] 2017/11/19(日) 13:49:28.79ID:???

ひどいなw

jQueryを批判することが出来ないから、
理由もなしに別の何かに例えて、その別の何かの話にすり替えてそっちを批判してる

カレーはウンコ色。ウンコは汚い臭い。だからカレーも同じだと思うだろう?という
非論理的な思考をしてる

例え話のダメな使い方だね。ちょっとそれは議論する能力が低いとしか思えない
Name_Not_Found [sage] 2017/11/19(日) 14:04:36.72ID:???
時は金なり
必要であれば時間に余裕がある時に掘り下げて学習すればいいことよ
これも能力な
Name_Not_Found [sage] 2017/11/19(日) 14:07:51.20ID:???

> 実際はJS切ってる人でも最低限閲覧できるようにした状態で
> プログレスエンハンスメント的に作っていくことだって必要だし
> 一般的な質問においてjQueryを使うのはマイナスでしかないけどね

それjQueryを使わない理由になってないよ

プログレスエンハンスメント的に作るんだろう?
DOM APIを使って、それをそのままjQueryに置き換えられるんだから
つまりjQueryを使ってプログレスエンハンスメント的に作ることも可能

AngularやReactなどのフレームワークの類ならJavaScriptをオフにしたら
なんにも表示されなくなることがあるがjQueryはそうではない
Name_Not_Found [sage] 2017/11/19(日) 15:01:34.42ID:???
相変わらず一人で何レスしてんだこいつ
Name_Not_Found [sage] 2017/11/19(日) 15:03:17.54ID:???

ここ当たり同一人物だね
Name_Not_Found [sage] 2017/11/19(日) 15:07:04.74ID:???
プログラム板のが落ちてWeb板も荒らしの立てたスレを再利用したらこの有様

やっぱ真っ当なJSスレが一つは必要なんじゃねえかな
ずっとテンプレ作ってた人も既に見てないっぽいけどさ
Name_Not_Found [sage] 2017/11/19(日) 15:32:45.43ID:???
某人物が一人で必死になって連投しているようだから、ID強制可能なプログラム板を復活させたらどうか、と思った
Name_Not_Found [sage] 2017/11/19(日) 15:34:05.93ID:???
だからお前の考えを押し付けるなって
なんで、jQueryの話題がないことが
まっとうなJSスレってことになるんだよ。
jQueryを含めてJavaScript関連の話題であれば
それはまともなJSスレの内容だ
Name_Not_Found [sage] 2017/11/19(日) 15:35:08.08ID:???

> ID強制可能なプログラム板を復活させたらどうか、と思った

普通にあるぞ? そっちでもjQueryの話題をしてるけどな。

+ JavaScript の質問用スレッド vol.124 + [転載禁止](c)2ch.net
ttp://mevius.2ch.net/test/read.cgi/tech/1427008785/
Name_Not_Found [sage] 2017/11/19(日) 15:42:26.75ID:???

以前立ってたスレもIDやワッチョイのあったところで延々と荒らされてたし
ないよりはマシ程度なものだと思う


引用の仕方から本人なんだろうけど騙される人がいないようレスしておく
それはここに居座っている荒らしが立てたこのスレと同様にテンプレぶっ壊れてるスレ
Name_Not_Found [sage] 2017/11/19(日) 15:43:07.66ID:???

俺むこうでも普通にjQueryを使った回答してるけど
確かにあっちはjQuery使うな!って連投してくるやついないな
(じゃあお前がDOM APIで書けば?って思うが)
Name_Not_Found [sage] 2017/11/19(日) 15:45:42.35ID:???
プログラム板にあるスレはWeb制作板と同じで荒らしの乗っ取りスレしかないから、まともなスレを立てようとするのは良いと思う
Web制作板/プログラム板共にまともなテンプレのスレがないから
Name_Not_Found [sage] 2017/11/19(日) 15:46:38.66ID:???

ん? じゃあこっちか?

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

7ヶ月でたった32スレとか、ID強制は誰にも求められてないんじゃないか?
Name_Not_Found [sage] 2017/11/19(日) 15:49:04.06ID:???

ワッチョイあるしそっちが、もともとは
まともなスレとして立てられたんだろうな
この上まだ立てる気? 乱立させるなよ・・・
Name_Not_Found [sage] 2017/11/19(日) 15:52:07.52ID:???

わかってて言ってるんだろうけど騙される人が出ないようにレスしておく
それはドサクサで立てられた強制IPスレで本来の次スレではないし利用もされていない
白々しい
Name_Not_Found [sage] 2017/11/19(日) 15:55:51.95ID:???

めんどくせーやつだな。乱立させるなって話だ
一体いくつ有ると思ってんだよ
プログラム版のJavaScriptスレ全部リンクしてやろうか?

+ JavaScript の質問用スレッド vol.124 + [転載禁止](c)2ch.net
ttp://mevius.2ch.net/test/read.cgi/tech/1427008785/

JavaScript情報交換所(プログラミング既習者専用) [無断転載禁止]©2ch.net
ttp://mevius.2ch.net/test/read.cgi/tech/1449440793/

【node.js】サーバサイドjavascript 4【io.js】 [無断転載禁止]©2ch.net
ttp://mevius.2ch.net/test/read.cgi/tech/1460359714/

+ JavaScript(ECMAScript)質問用スレッド vol.123 + [無断転載禁止]©2ch.net
ttp://mevius.2ch.net/test/read.cgi/tech/1482325013/

【JavaScript】スクリプト バトルロワイヤル55【php,py,pl,rb】 [無断転載禁止]©2ch.net
ttp://mevius.2ch.net/test/read.cgi/tech/1475332848/

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

JavaScript 4(c)2ch.net
ttp://mevius.2ch.net/test/read.cgi/tech/1417749547/

+ JavaScript の質問用スレッド vol.121 + [無断転載禁止]©2ch.net
ttp://mevius.2ch.net/test/read.cgi/tech/1467906869/

jQuery,.js [無断転載禁止]©2ch.net
ttp://mevius.2ch.net/test/read.cgi/tech/1473773598/
Name_Not_Found [sage] 2017/11/19(日) 15:57:11.36ID:???
結局自分が気にいらないスレだから
自分が望むスレをたてようとしてるだけ
そこで何を会話するかまで考えちゃいない
Name_Not_Found [sage] 2017/11/19(日) 15:57:13.08ID:???
一時は自分で二桁以上乱立させておいてよく言うわ
836 [sage] 2017/11/19(日) 15:58:19.44ID:???
新しくスレ立てた所で、結局住民はここと一緒って話な
新しいテンプレのスレができるだけで、そのスレで会話する内容は
ここと変わらないだろって言いたい
Name_Not_Found [sage] 2017/11/19(日) 15:59:09.95ID:???

俺じゃねーし、っていうか逆にお前か?
ずーっと気に食わない気に食わない
新しいスレ立てるって言ってるやつは
Name_Not_Found [sage] 2017/11/19(日) 15:59:19.74ID:???
ここで話してもまったく建設的じゃないのは見ての通りだし
とりあえずIP出てるスレ再利用して議論した方がいいんじゃないの

ttp://mevius.2ch.net/test/read.cgi/tech/1491143438/
Name_Not_Found [sage] 2017/11/19(日) 16:01:31.40ID:???
議論ねぇ、今度はDOM APIによる実装を書いてくれよ?
jQueryによる実装を書いてくれる人がいて(素晴らしいことだ)
それに対して、jQuery書くなー書くなーって言ってるだけのおっさんよ?
jQueryを叩くのではなく、自分の考える素晴らしい方法を書くのが
正しい議論だ
Name_Not_Found [sage] 2017/11/19(日) 16:02:02.38ID:???
スレ立てたって人がいなければ意味がない
Name_Not_Found [sage] 2017/11/19(日) 16:08:19.98ID:???

早速、議論の内容書き込んできた。
以降はあっちで新しいスレを立てるかどうかを議論しよう
ttp://mevius.2ch.net/test/read.cgi/tech/1491143438/33
Name_Not_Found [sage] 2017/11/19(日) 17:12:12.23ID:???

840ではないが、thx
Name_Not_Found [sage] 2017/11/19(日) 17:16:11.16ID:???
これで少しはこっちのスレも平和になると良いな
Name_Not_Found [sage] 2017/11/19(日) 17:20:56.88ID:???
ttps://github.com/jquery/jquery/wiki/Roadmap
jQuery 3.3.0 はそう遠くない将来にリリースされる

ttps://github.com/jquery/jquery/wiki/jQuery-4.0-Event-Design
jQuery 4.0 ではイベントの設計が変わるっぽい

・Support all addEventListener options
・Avoid the need for a jQuery.Event wrapper
・Eliminate manual .trigger() bubbling and method calls
・Remove special events hooks
・Provide backcompat through Migrate 4.0
Name_Not_Found [sage] 2017/11/19(日) 17:38:19.99ID:???
jQueryの話題はこっちでやって

jQuery 質問スレッド vol.8
ttp://mevius.2ch.net/test/read.cgi/hp/1508707878/

現在のスレの話のメインがjQueryになっているのに、何でjQueryのスレは過疎っているのか意味わからん
Name_Not_Found [sage] 2017/11/19(日) 17:43:29.80ID:???

そういう議論は向こうでやって
Name_Not_Found [sage] 2017/11/19(日) 18:06:51.50ID:???
です。
react勉強し始めたのですが、webpackとか、fluxとかreactのついでに覚える事多いですねw
Name_Not_Found [sage] 2017/11/19(日) 18:17:28.93ID:???

そこが欠点だよな
プログレスエンハンスメント的に
HTMLを書いて機能を付け足していくってやり方ができない
ブラウザとテキストエディタがあれば作れた時代とはやり方がまったく異なる
だからjQueryで十分な用途にフレームワークを持ち出そうとは思わない。

この状況が解決するとしたら、WebComponentsが完全に仕様化され
ほぼすべてのブラウザに標準で搭載されて、今の同じく
ブラウザとテキストエディタがあれば作れるようになってからだろうな
その頃にはフレームワークは必要ないって言われているだろうw
Name_Not_Found [sage] 2017/11/19(日) 18:37:39.57ID:???

create-react-appを使えばwebpackは覚える必要は後回しにできる。
fluxはまぁぶっちゃけ後からでもいいんじゃないか。
stateの管理をトップレベルのコンポーネントに纏めることを心がければいいってだけ。
Name_Not_Found [sage] 2017/11/19(日) 18:47:33.15ID:???
つまり
create-react-appを覚えればwebpackは覚える必要は後回しにできる
ってことなんだよなw

結果的に覚えるものが増えてるという。
あと、数年後それが使えるかというと・・・
ほんとフレームワークって変わりすぎ
Name_Not_Found [sage] 2017/11/19(日) 18:52:38.64ID:???
webpackはいらんよ
今のモダンブラウザはESModuleにネイティブで対応している
Name_Not_Found [sage] 2017/11/19(日) 18:54:54.36ID:???

create-react-appは特に覚える事ないと思いますけど、、、
Name_Not_Found [sage] 2017/11/19(日) 19:03:16.83ID:???

about:configとかでフラグ立て無いと使えないものは
サポートしてるとはいえない
デフォルトで使えないならば、他の人に要求しなければいけないからだ
Name_Not_Found [sage] 2017/11/19(日) 19:12:56.59ID:???

モバイルとEdgeとSafariとCromeで使えるんだぞ?十分でしょ
FirefoxはまだみたいだけどFx使いはそれらと一緒にしては行けない
わざわざFxを好んでインストールしてる人なんだから
必要とあればフラグの有効化や別ブラウザを使うこともできる

そんなFirefoxももうすぐでしょ
今からwebpackとか覚える必要は無いよ
Name_Not_Found [sage] 2017/11/19(日) 19:15:45.27ID:???

十分じゃないよw
ほとんどん人が設定を変えないと使えんだだろ
99%使えないと言ってもいい
Name_Not_Found [sage] 2017/11/19(日) 19:17:14.87ID:???
Babel使えば良いんじゃないん?
ESModuleもサポートされてるみたいだし
Name_Not_Found [sage] 2017/11/19(日) 19:20:34.03ID:???
reactでwebpackを使う理由はESModuleのためだけじゃなくて
JSX対応もあるんだからwebpackなしにreactを使うのは
非現実的だよ。環境整えるのがめんどくさすぎる
もちろんJSX対応だけでもなく開発用のサーバーとか
テストフレームワークとかデバッグ用のツールとか
そういうのが統合されてる
Name_Not_Found [sage] 2017/11/19(日) 19:24:08.75ID:???

心からそう思う
は荒らし以外の何物でもなかった
Name_Not_Found [sage] 2017/11/19(日) 19:27:50.21ID:???

向こうでやって
Name_Not_Found [sage] 2017/11/19(日) 19:30:23.51ID:???

誘導するだけで隔離できると思ってるんだからおめでたい頭をしてるな
Name_Not_Found [sage] 2017/11/19(日) 19:35:00.03ID:???
気に入らない人を追い出す為に隔離スレを作って張り付いてんのか
5ch中毒だな
Name_Not_Found [sage] 2017/11/19(日) 19:37:16.24ID:???
まともな人は平日の日中帯に5chに書き込めないから高確率で荒らしなんだよな
対応した人が気の毒だ
Name_Not_Found [sage] 2017/11/19(日) 19:38:55.84ID:???
あ、だから俺が深夜にjQueryで回答した後
次の日の夜返ってきた時に大量にレスついてるのか
Name_Not_Found [sage] 2017/11/19(日) 19:42:40.44ID:???
質問攻めしか能がないというか、いろんな意味で考えが浅い荒らしだと思った
Name_Not_Found [sage] 2017/11/19(日) 19:44:27.93ID:???
ちなみのこれとか書いたの俺な。時間も深夜だろ?

458 自分:Name_Not_Found[sage] 投稿日:2017/10/11(水) 01:55:18.33 ID:???
補足

「今回は」アロー関数もクロージャーもいらない
今回の要件にthisがどうなるかってのが書かれていないから

this.barは今回は動くがthisは違っていると念の為に言っておく
いろんなサンプル追加
ttps://jsfiddle.net/rdeuvep2/6/
Name_Not_Found [sage] 2017/11/19(日) 19:52:04.79ID:???
「俺って質問者に感謝される回答をしてるんだぜ。悔しかったらお前らも回答してみろよ。」の人だよね
自己主張が激しいというか、承認欲求が高いというか
Name_Not_Found [sage] 2017/11/19(日) 19:56:52.34ID:???
それがあんたのいいたいこと?
俺と争ってないで、質問者に回答すればいいのに
Name_Not_Found [sage] 2017/11/19(日) 20:13:03.94ID:???
おそらく、何らかのパーソナリティ障害持ちだと思う。

- 自己評価/自尊心が非常に高い
- 他者からの自己が低い評価をされることに強迫観念を持っていて、少しでも低い評価をされると自己を保つ為に猛反発する
- 自分が信仰しているjQueryがけなされると、自分が否定されたように感じて、jQueryの有用性を熱く語って反論せずにはいられない
- スレに張り付いて、自分と思わしき人物が否定されると反論せずにはいられない(少しでも可能性があれば自分だと思い込む)

自己評価が高くないと気が済まない性格。
「質問者から感謝される自分」をアピールすることは、彼にとっては重要な事なのだろう。
Name_Not_Found [sage] 2017/11/19(日) 20:16:00.67ID:???
だからそういうJavaScriptと関係がない話で荒らすの辞めたら?
自覚ないんだろうけどさ
Name_Not_Found [sage] 2017/11/19(日) 20:21:16.55ID:???
自覚なき荒らしに自覚なき荒らし扱いされてて笑ったw
Name_Not_Found [sage] 2017/11/19(日) 20:21:53.35ID:???
まあJSと関係ない話をここでするなっていうのは正論だ
Name_Not_Found [sage] 2017/11/19(日) 20:23:19.98ID:???
彼のいうようにここを隔離スレに出来るなら丁度良いね
Name_Not_Found [sage] 2017/11/19(日) 20:24:17.73ID:???
ここじゃなかった、あっち。プログラム板の方
Name_Not_Found [sage] 2017/11/19(日) 20:24:40.94ID:???
を守ってjQueryの話題をしないのも正論だな
Name_Not_Found [sage] 2017/11/19(日) 20:25:03.08ID:???

大丈夫、ここが隔離スレだよ
Name_Not_Found [sage] 2017/11/19(日) 20:26:54.82ID:???
まあどっちが隔離スレかは質問者が決めることさ
俺はどこでも質問があればjQueryで答える
Name_Not_Found [sage] 2017/11/19(日) 20:34:21.96ID:???
あれ、正論を守るんじゃなかったっけ?
も守りなよ?
Name_Not_Found [sage] 2017/11/19(日) 20:35:43.86ID:???
1は正論じゃないので守る必要なくね?
Name_Not_Found [sage] 2017/11/19(日) 20:37:16.91ID:???
1は正論だから守る必要があるね
Name_Not_Found [sage] 2017/11/19(日) 20:40:44.59ID:???
ではそう思う人は守ればいいよ
Name_Not_Found [sage] 2017/11/19(日) 21:05:31.40ID:???
どうでもいいって事だね
荒らしてもいいし、自由に振舞えばいい
Name_Not_Found [sage] 2017/11/19(日) 21:10:01.21ID:???
1つ確かなことは、その人が書き込んでるその内容が
その人が書き込みたいと思ってることなんだ。
jQueryで回答する人であれ、jQueryを書き込むなーって言ってる人であれ
Name_Not_Found [sage] 2017/11/19(日) 21:22:49.21ID:???
jQueryで回答したい人は、jQueryで回答したいと思ってるだけで、
jQueryを排除したい人は、jQueryを排除したいと思ってるだけってことか
Name_Not_Found [sage] 2017/11/19(日) 21:35:15.95ID:???
自由意思の尊重は無秩序になる事を意味する
Name_Not_Found [sage] 2017/11/19(日) 21:37:28.97ID:???
だから俺が管理してやるんだ
Name_Not_Found [sage] 2017/11/19(日) 21:42:14.62ID:???
件のライブラリ偏重の荒らしは「自分=自由」「他者=束縛」な二重規範な思想の持ち主だから嫌い
都合のいい時だけ自由を振りかざす
Name_Not_Found [sage] 2017/11/19(日) 21:54:09.61ID:???
はいはい。自分が嫌いだから〜
Name_Not_Found [sage] 2017/11/19(日) 21:56:41.76ID:???
自由意思を尊重するならJSと関係ない話題をする人を隔離スレに追い出す必要はないし、jQuery批判者に反論する必要はないし、自分を否定されても反論する必要がない
矛盾してるよな
都合が悪い時の逃げ口上として彼は「俺もお前も自由だ。勝手にやれ。」と主張する
Name_Not_Found [sage] 2017/11/19(日) 22:03:51.76ID:???
いやいやw 問題は自由意志かどうかではなくて、
JavaScriptに関係ある話題かどうかだよ。
JavaScriptに関係ある話ならここでいいし、
そうでないならほかスレ出やれってだけの話
Name_Not_Found [sage] 2017/11/19(日) 22:07:16.40ID:???
jQuery批判者は、jQueryを批判するだけで、何も生産的なことを言わないのがアウト
代替案を出せと
Name_Not_Found [sage] 2017/11/19(日) 22:07:19.21ID:???
JavaScriptに関係ある話題しか投稿できないと思うならそうすればいいし、JavaScriptに関係ない話題も投稿していいと思うならそうすればよい
Name_Not_Found [sage] 2017/11/19(日) 22:09:16.60ID:???
ただJavaScriptの関係ない話題ばっかりしてるやつは荒らしってだけ
少しはjQueryを見習え
Name_Not_Found [sage] 2017/11/19(日) 22:17:51.10ID:???
こうやって都合の悪い時だけ自由でなくなって、荒らし認定するんだよね
の禁止行為に接触している自分は自由を振りかざすくせに
Name_Not_Found [sage] 2017/11/19(日) 22:20:18.96ID:???
まあの禁止行為なんてみんなから同意を得ず勝手に決めたもんだしな
Name_Not_Found [sage] 2017/11/19(日) 22:24:06.37ID:???
そうやって自分の都合のいいように解釈するのも得意だよね
あなたがそういうなら他の人もそうしていいよね
このスレのルールはみんなから同意を得ずに勝手に決めたもんだから、JSに関係ない話題をしてもいいんだよね
Name_Not_Found [sage] 2017/11/19(日) 22:29:44.58ID:???

その書き込み自体がJSと関係ない話題だって自覚は有るかい?
Name_Not_Found [sage] 2017/11/19(日) 22:31:04.71ID:???

JSと関係ない話題も問題ないよね
勝手に決められたルールに従う必要はないんだよね
Name_Not_Found [sage] 2017/11/19(日) 22:32:26.79ID:???
自覚はあるのかって聞いてるだけなんだが?
Name_Not_Found [sage] 2017/11/19(日) 22:34:08.38ID:???

JSとは関係ないね
荒らし対応をしてるだけ
Name_Not_Found [sage] 2017/11/19(日) 22:35:42.01ID:???
JSと関係ない話をするやつよりか
jQueryの話をするヤツのほうがマシだな
Name_Not_Found [sage] 2017/11/19(日) 22:38:13.83ID:???
俺はあのjQuery荒らしの方が嫌いだわ
無自覚だし、他人のコードをけなすし、jQueryをちょっと批判しただけで猛反発するし、個人を尊重してないよな
Name_Not_Found [sage] 2017/11/19(日) 22:43:16.56ID:???
jQuery荒らしはその時々で都合のいい理屈を主張するから、前後で矛盾していて信頼できない
既にブーメランでやりこめられてるわけだけどw
Name_Not_Found [sage] 2017/11/19(日) 22:43:50.55ID:???
彼は最初lodash荒らしだったしjQuery一筋ってわけじゃない
自分が優位に立てる状況がほしいんでしょ
Name_Not_Found [sage] 2017/11/19(日) 22:46:56.16ID:???
でも最後に力を持つのは動くコードを出してる側なんだよな
Name_Not_Found [sage] 2017/11/19(日) 22:48:12.20ID:???
jQueryはずるいよな。ちょっとしたコードなら簡単にかけてしまう。
DOM APIで同等のサンプルコードを書けって?そんな面倒なことやってられるか
そう思っている間に、さっさとjQueryでコードを書いてしまう
Name_Not_Found [sage] 2017/11/19(日) 22:49:17.00ID:???
react-routerめっちゃ便利ですね。感動しました
Name_Not_Found [sage] 2017/11/19(日) 22:50:22.12ID:???
まともな回答者は彼とのやり取りに疲れていなくなったからね
彼のネガティブな側面が現状を生み出している
俺ももう正直面倒くさい
Name_Not_Found [sage] 2017/11/19(日) 22:52:29.68ID:???
ずっと熱心にテンプレ更新してスレ立ててた人も去っちゃったし
まあ見ていてもストレス溜まるだけだからな
Name_Not_Found [sage] 2017/11/19(日) 23:00:23.23ID:???

回答者の代表にでもなった?
Name_Not_Found [] 2017/11/19(日) 23:16:06.10:vRHf0qv2
jQuery, lodash(Underscore) で、すぐに書ける事が多いので、便利。
JavaScript だけを使えとか、非効率な事で、時間を浪費させる奴がいる。
そいつが荒らし

getElementById() とか、ブラウザの差異とか、
仕事時間の8割が、ビジネスロジックとは無関係で、無駄な時間

多くの開発者が、jQuery, lodash(Underscore), React など、
JavaScript の無駄な時間からの、脱却を目指してきた

それに延々と反対する、荒らしがいる。
JavaScript だけを使えとか

C言語を勧める奴と同じ。
非効率な事をさせて、相手の時間をつぶさせる

CSS の質問に、SASS で答えたり、
Python の質問に、Ruby で答えると「死ね」とか言ってくる

とにかく、新技術・新ライブラリなど、荒らしの知らない技術を書き込むと、荒らしてくる

新しい知識を邪魔しよる。
人に新技術を教えると、教えるなって荒らしてくる。
たぶん、新技術を教えると、自分が食えなくなるから、荒らしてくるだろ

荒らしは放っておくべき。
相手をする奴がいるから、いつまでも荒らしてくる

相手をしなければ、書くことが無くなるはずだが、
荒らしに反論するから、荒らしが喜んで書き込んでくる
Name_Not_Found [] 2017/11/19(日) 23:43:25.73:0vnkD6rf
以前、テンプレ更新していた者だが、今でも時々スレを覗いてはいる
のテンプレがすっきりまとまっていて感心してた(見習いたい)

荒らしは決していなくならないので、今、やり直すなら荒らしの見分けがつきやすいプログラム板が良いと思う
俺はテンプレ改修には参加しないと思うが、やるなら一人でテンプレ更新するのはモチベ的に辛いので複数人で更新していくのがお勧め
俺としては「誰も動かないなら俺が」という気持ちから始めたことだが、
- 誰もがテンプレ更新なんて面倒な作業をやりたくない
- でも、ルール無用では困るので、他の誰かがテンプレ更新してくれるならしてほしい(やってくれるならやってほしい、でも積極的に勧めるわけでもない)
- 一部は2chなんて便所の落書き(ルールなんて守られなくて当然)だと思っている
そんな中で孤独にテンプレを更新していくのは誰がやっても続かないと俺は思う
多分、多くの人に望まれてやった事ではないし、一部は俺のエゴも入ってた
でも、それだけではテンプレ更新を続ける理由としては弱すぎた
Name_Not_Found [sage] 2017/11/20(月) 00:11:51.90ID:???
本人の確証は何もないが一応お疲れさま
自分も誰も動かないうちの一人だったから偉いことは言えないけど
以前ライブラリ荒らしが暴れてプログラム板へ移ったときはそれなりに上手く行ってたよ
最終的に民族憎悪みたいなレスが投下されまくってスレが消えたけど
913 [] 2017/11/20(月) 00:14:13.09:oz/7wyxx
「テンプレはどうせ守らない人が出てくるから作っても仕方がない」という意見が一部にあるが、これは正解でも不正解でもあると思う
テンプレは一つの基準にすぎず、守るか否かはそれを読んだ人の良心に委ねられている
道徳やマナーと呼ばれるものと同じ

だが、「他の人が守らないのだから俺も守らなくても仕方がない」と消極的ながら荒らしを幇助する行為は頂けない
「他の人が守らない事」と「自分自身が守らない事」は本来別物であるはずだが、「みんなで渡れば怖くない」理論で自己を正当化してしまう
これが良くない

「他の皆は守っていないが、自分だけは守ろう」
そういう意識を持った人が出てきて、それに賛同する人が続かなければこの現状は打開できない
俺がテンプレ更新したのも「他の誰もが期待していなくても俺は更新を続けよう」という気持ちからだった
だが、それは一人でやっても絶対に成功しない
もし、今誰かが新しくスレを立てようとしていて、テンプレ更新しようとしている人がいるのなら、そしてあなたがその人に賛同するのなら、勇気をもって賛同してほしい
そうした一人一人の意識(良心や道徳観念)がテンプレを守る為に必要な事だと俺は思う

それから、荒らしは少人数なので複数人で対処すれば対策できると思う
一人の人間に出来る事はたかが知れている
913 [] 2017/11/20(月) 00:22:16.60:oz/7wyxx

ありがとう
俺も自分がテンプレ更新していた事を証明する事は出来ないが、労いの言葉だけでも「やってよかった」と思える
これからテンプレ更新してくれる人がいたら是非労ってあげてほしい
Name_Not_Found [sage] 2017/11/20(月) 01:00:02.86ID:???
逆にある程度の属人性が必要なんじゃない

Web板とム板に分かれた後も荒らしが次スレを乗っ取ろうとするのは変わらなかったが
その度にそれぞれのスレで熱意ある人が立て直しと誘導を行ってスレが続いているように見えていた
でもWeb板の人は荒らしに根負けしたのか消えて、ム板では別の荒らしにスレ自体が潰されてしまった
この乗っ取りスレも滅茶苦茶にされたテンプレに指摘が何度かあったが行動する人はもう残ってない

過去うまく回っていたのは貴方を含む何人かの努力に寄るところが大きいと思う
俺は質問への解答が誰かの助けになればと考えてまだブックマークしているだけで
今も珍しい話を聞けたから長文書いてるだけであって荒らしと体力勝負をする気は更々ない
Name_Not_Found [sage] 2017/11/20(月) 01:07:51.66ID:???

> 以前ライブラリ荒らしが暴れてプログラム板へ移ったときはそれなりに上手く行ってたよ
だろ? 俺がjQueryの書き込みをするからじゃないんだよ。
それをいちいち否定するから荒れるんだよ
Name_Not_Found [sage] 2017/11/20(月) 01:27:46.87ID:???
jQueryの話は有用だからね
排除するまでもない
Name_Not_Found [sage] 2017/11/20(月) 03:47:40.33ID:???
漏れなんて、Kotlin, Python の質問に、Ruby で答えたりしてる

基本的に、どの言語でも同じだし、
それを見た違う人が、Kotlin, Python に翻訳してくれる。
数言語使えるのは、当たり前だし

別に、jQuery, lodash で答えても、自分に関係なければ、スルーすれば良いだけ。
質問者以外の人には、参考になる

本の紹介をしても「ステマするな」とか、荒らしは一々、因縁を付けてくる

たぶん荒らしは、仕事してない奴だろ
Name_Not_Found [sage] 2017/11/20(月) 05:15:01.61ID:???

話聞いてる?
Name_Not_Found [sage] 2017/11/20(月) 05:31:30.57ID:???
仕事仕事と言う人いるけど、プログラミングは仕事の為のものじゃない
ここは純粋にJavaScriptを学びたいという気持ちに答えるスレであって
むしろ仕事の為のものなら金払って教えてもらえというのが伝統
Name_Not_Found [sage] 2017/11/20(月) 05:43:26.89ID:???
独りで連投しまくって、生活の全てが5chなんだな
Name_Not_Found [sage] 2017/11/20(月) 09:57:25.65ID:???
今度は質問者にまで、仕事に関係があることは
書き込むなとかいいはじめたよ・・・
どんだけ自分の思う通りのスレじゃなきゃだめなんだか
Name_Not_Found [sage] 2017/11/20(月) 10:54:23.51ID:???
いまだ5chに違和感
専ブラだから5chって出ないし
Name_Not_Found [sage] 2017/11/20(月) 11:40:05.93ID:???
昔は趣味でブログ作るために手探りでHTMLから勉強始めたんだろうなと言うような頓珍漢で超初歩的な質問から
古きWebの荒波の中まだ整備が進んでないJSの海路を開拓しようとする挑戦者の高度な質問まで溢れてて
それに対して孤独に修行して様々に悟りを開いた仙人たちがコードをただ与えるだけではなく檄を飛ばして育てようとしてたものだが
今では取って付けたような業務的な単機能の質問と回答のみでググレカスさえも言われなくなってしまった
回答者がスレ住民として一致団結して質問者を育てようとすることが無くなり単なる回答発表会になってしまった
Name_Not_Found [sage] 2017/11/20(月) 12:00:31.59ID:???
じゃあ教育スレでも作ったらいいんじゃないですかね(棒)
Name_Not_Found [sage] 2017/11/20(月) 12:52:35.93ID:???

釣り針太すぎ
質問に対して別言語で答えるのは迷惑でしかないよ
荒らし以前の問題
Name_Not_Found [] 2017/11/20(月) 14:41:22.90:XmZC2a3m

たまにはそんなこともあった気がするけど、基本は今も昔も変わらない気もするなあ

気に入った話題が目についたら、質問者置いてきぼりで長文連投
そしてディスり合い、週末になると面倒になって収束する
みたいな
Name_Not_Found [sage] 2017/11/20(月) 15:25:55.44ID:???
ほんと質問と関係ない初心者は
こうあるべきだ論を語るの
やめればいいのに
Name_Not_Found [sage] 2017/11/20(月) 15:38:37.68ID:???
初心者はおっぱいを見せてくれるべきだ(女性限定
Name_Not_Found [sage] 2017/11/20(月) 20:31:53.36ID:???

「jQuery」を連鎖でNGすればいいよ
それでかなり快適になる
jQueryは悪くないとは思うけど言い争ってるガキはほぼその話だから
Name_Not_Found [sage] 2017/11/20(月) 20:34:14.70ID:???
index.htmlに
<html><head type="module" src="./index.js"></head></html>
とmodule指定し、
index.jsにただ
alert('alert');
と記述しました。module指定しないとダイアログが表示されるのですが、module指定しないと表示されません。
module指定するとどういう違いが発生するのでしょうか??
Name_Not_Found [sage] 2017/11/20(月) 20:35:25.15ID:???
>module指定しないとダイアログが表示されるのですが、module指定しないと表示されません。

module指定しないとダイアログが表示されるのですが、module指定すると表示されません。
の間違いです。
Name_Not_Found [sage] 2017/11/20(月) 21:52:29.82ID:???
質問と関係のない話をする奴や、因縁を付けてくる奴を無視しよう。
反論すると、荒らしが喜ぶだけ

荒らしはそればっかり、ずっとやってるし、
他人が新技術を取得するのを、妨害してくる

人の成長を、ねたむだけ
Name_Not_Found [sage] 2017/11/20(月) 22:40:41.60ID:???
> 質問と関係のない話をする奴
ブーメラン
Name_Not_Found [sage] 2017/11/20(月) 22:52:24.20ID:???
本当に質問と関係ない話を無視してくれるのなら支持するけどね…
・jQueryの啓蒙
のルールを守っていない話題
・jQuery批判への反論
Name_Not_Found [sage] 2017/11/20(月) 22:59:00.44ID:???
を守らない奴は無視しよう、でFA
Name_Not_Found [sage] 2017/11/20(月) 23:03:50.77ID:???
その自体が書き換えられて参照先も機能してないんだが
Name_Not_Found [sage] 2017/11/20(月) 23:27:40.12ID:???

> 「jQuery」を連鎖でNGすればいいよ

それ本当にやってくれるなら支持するよ
荒れてる本当の原因はjQueryを批判しだすから
ここでNGにしてjQueryの書き込みが見れないなら
批判しようがない

質問者はjQueryの回答が見れるし、jQueryの回答を
見たくない人は見れない。だから批判しようがない。
そうすれば両者Win-Winになって平和になる
Name_Not_Found [sage] 2017/11/21(火) 00:02:33.84ID:???
jQueryの「啓蒙」は質問と関係ない話題だが、本人は気が付いてないんだな
Name_Not_Found [sage] 2017/11/21(火) 00:46:41.32ID:???

禁止行為は読めるから守らない理由にはなってない

勢い5万以上のスレをメールでお知らせするサービス、実施中!!
憧れボディをGETしたい!その夢、ボニックで!

新着レスの表示

2ch勢いランキング アーカイブ Web制作板ランキング

凡例:

レス番

100 (赤) → 2つ以上レスが付いている
100 (紫) → 1つ以上レスが付いている

名前

名無しさん (青) → sage のレス
名無しさん (緑) → age のレス

ID

ID:xxxxxxx (赤) → 発言が3つ以上のID
ID:xxxxxxx (青) → 発言が2つ以上のID

このページは2ch勢いランキングが作成したアーカイブです。削除についてはこちら