+ JavaScript の質問用スレッド vol.134 +
: Name_Not_Found [] 2018/06/04(月) 16:22:58.13:aMAv4I5k JavaScript を自ら学ぶ人のための質問スレッドです。 次スレはが(本スレで改善案があれば考慮して)立ててください ■規則/推奨ルール ・メール欄を空欄にし、名前にレス番を入れることを強く推奨(なりすまし防止) ・質問内容は具体的に。言葉だけでなく、出来る限り再現性を確認したサンプルコードの掲示。 ・質問テンプレートの利用推奨。 ・質問への「答え」だけでなく「意見」を出しても良い。 ■禁止行為 ・丸投げ質問 ・迷惑スクリプトの質問 ・オレオレ用語の使用(一般的な用語を使用する事) ・煽り、批判等の他人を不快にさせる行為(批判の代わりに「AよりBが良い」のような代案を出す事) ■質問テンプレート 【環境】OS, ブラウザをバージョンと共に記入してください。 【条件】期待する回答の条件を書いてください。 【何をしたのか】何をしたら問題の現象が発生するのか。再現手順を具体的に書いてください。 【エラーメッセージ】エラーメッセージがあれば正確に書き写してください。 【期待する結果】最終的にどういう結果を望んでいるのか、を書いてください。 【サンプルコード】現象を再現可能な最小限のコードを書いてください。 1レスに収まらないならコード投稿サイトを利用してください。 ttp://jsdo.it/ ttp://jsbin.com/ ttp://jsfiddle.net/ ttp://ideone.com/ ■回答者へ ・回答には多様性があります。他人の回答を尊重してください ・動作ブラウザや環境が限られる場合は、それを明記してください ・他人の回答を批判する代わりに、自分ならこう書くという例を示してください ・質問者がJavaScriptでなければ実現できないと勘違いしてるなら、その否定としてHTMLとCSSで実装しても良い ・他人の回答を見たくないのであれば、文句をつける代わりにNGにして見えないようにしてください。文句をつける=荒らしです : Name_Not_Found [sage] 2018/06/07(木) 21:27:53.72ID:??? 乙です : Name_Not_Found [sage] 2018/06/07(木) 21:28:55.62ID:??? MySQLとMongDBならどっち? このスレできく理由も勝手にエスパーして考慮に入れてお願いします。 : Name_Not_Found [sage] 2018/06/07(木) 21:58:02.88ID:??? そんな聞き方する奴にrdbは合わないに決まってるのでmongo。 : Name_Not_Found [sage] 2018/06/07(木) 23:15:04.02ID:??? うめ : Name_Not_Found [sage] 2018/06/08(金) 00:59:57.44ID:??? 「そんな」ききかたではありません! 回答者の経験と発想を最大限尊重した 自由意思にゆだねた回答を求めるとてもリスペクトフルな質問法です!! : Name_Not_Found [sage] 2018/06/08(金) 01:24:05.63ID:??? テンプレ滅茶苦茶になった挙げ句ついにほぼカットされたか : Name_Not_Found [sage] 2018/06/08(金) 06:39:51.84ID:??? とりあえず巻き上げに関して正しておく 宣言された変数が属するスコープ内全域に浸透するのは当たり前 JSの巻き上げとは、宣言ではなく初期化の話 varならundefinedで、関数宣言なら関数値で初期化されることを巻き上げと言う 勿論アロー関数は巻き上げされたりはしない ただアロー関数には変数宣言文中に定義することで その変数名の名前がつくという特殊挙動がある : Name_Not_Found [] 2018/06/08(金) 07:02:20.40:G7whztLr レスを最大限分析された的確な答えだと気づくべき : Name_Not_Found [sage] 2018/06/08(金) 08:09:56.78ID:??? あのさー、お前がね、いちいち用語の定義をする必要はないんだわ 世間一般に知られたことは、世間一般的な用語の定義があるんだから それを引用して書けばいいだけ ttps://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Statements/var > この動作は、変数の宣言が関数やグローバルのコードの先頭に移動したように見えるため、 > "巻き上げ (hoisting)" と呼ばれます。 変数の "宣言" が移動する。それが巻き上げ : 10 [sage] 2018/06/08(金) 08:10:27.64ID:??? じゃなくて宛ね : Name_Not_Found [sage] 2018/06/08(金) 08:25:10.85ID:??? 宣言とundefinedによる初期化は別々なのか? var testvar; console.log(testvar); とだけ書くとundefinedが出力される ・元から先頭にあるのだから巻き上げは行われない、宣言が常にundefinedでの初期化を内包する ・元から先頭にあっても巻き上げが実施される、巻き上げにより宣言とundefinedでの初期化が行われる どっちなのか判別が付かん : Name_Not_Found [sage] 2018/06/08(金) 10:44:46.46ID:??? スッゲ曖昧な知識だが。 function命令は命令なので、ちょっと特殊で、最初に読み込まれる。だから巻き上げが出来る 変数は最初に名前だけ収集解析だけされて、値の入ってない変数のリストだけが作られ構造化される。 だったような。 アロー関数がなぜ変数にいれているのに、巻き上げ?がおこるのかはしらない。 : Name_Not_Found [sage] 2018/06/08(金) 11:01:32.95ID:??? 概念についてあーだこーだ言われても確認できるコードがないとわからん : Name_Not_Found [sage] 2018/06/08(金) 11:18:35.65ID:??? これは知識不足というか、経験的に浅いと言った方がいいのか 巻き上げというものがあるんだ、そうなんだね! ぐらいにしか考えてなさそう なんで巻き上げという機能を実装したのかまで 考えられてない。C言語をしらないからか、 いや昔のC言語と言ったほうがいいのか C言語に対するJavaの特徴といったほうが良いのか なんでこうなってるかの、基本がないのは 時代の流れの方が理由大きいのかねぇ : Name_Not_Found [sage] 2018/06/08(金) 11:25:46.46ID:??? 今のC言語はちょっと違うが、昔のC言語っていうのは、 関数は宣言してからじゃないと使えなくて、 変数の宣言は関数の頭の方に書くしかなかったんだよ void foo() { int i; // OK int j; // OK bar(); // NG 先に宣言されてない = この時点では知らないので使えない int k; // NG 関数の頭じゃないからここで宣言できない } foo(); // OK 先に宣言されてるから使える void bar() { return 0; } それを他の言語は、先に宣言されて無くても スコープ内で宣言されていればOKにしたほうが いいんじゃねという考えで改良したんだよ。 Javaはそれを特徴の一つにもしていた : Name_Not_Found [sage] 2018/06/08(金) 11:26:59.18ID:??? ちなみに当時はコンパイラの時代で、主にコンパイルする時点で 先に宣言されて無くてもOKという機能だった : Name_Not_Found [sage] 2018/06/08(金) 11:34:23.93ID:??? なんで先に宣言されてないといけないのかというと 関数に関しては、ファイルの頭からコンパイルするときに、 いきなり知らない名前がでてきたらどう処理したら良いかわからんし 変数というのは、関数内で一時的に(スタックに)メモリを確保して 関数が終わったら解放しなきゃいけないから。 頭にまとまってりゃ関数の最初でその処理をやって 関数終了に解放するだけで簡単 主にコンパイラの実装が簡単だからそうなってたんだよ。 これはインタプリタのJavaScriptでも同じ だが、先に宣言されて無くてもOKにしたほうが便利だろう? だから、先に宣言されているかのように 内部的に順番を入れ替えるのが、巻き上げの機能の本質 : Name_Not_Found [sage] 2018/06/08(金) 11:34:39.70ID:??? 文法の見てくれが似てるからと言ってjavascriptの動作をjavaやcなどのいわゆるc系言語の動作から読み解こうとしても無駄だよ。 なぜならjavascriptはc系言語の皮を被ったlispだから。 ttps://www.crockford.com/javascript/javascript.html ttp://raganwald.com/2013/07/19/javascript-is-a-lisp.html ttps://qiita.com/derui@github/items/6e8de68cc1b7295de3a6 : Name_Not_Found [sage] 2018/06/08(金) 11:39:23.25ID:??? あとC言語はみ初期化の変数は中になにが入っているか不定 のi,j変数はなにが入っているか決まってない その時にメモリ(スタック)に入ってるゴミデータになる 実行速度重視のC言語ではそれもやむなしだったが、 決まってない値がなにか入っているのは分かりづらいバグの原因になるので これが他の多くの言語では、0やNULLや未初期化を表す値になることを 保証している。それがJavaScriptではundefined 宣言したときに、undefinedに初期化するのではなく 初期化されてない変数は、undefinedになると考えたほうが良い : Name_Not_Found [sage] 2018/06/08(金) 11:49:27.70ID:??? チューリングマシンの構造によるものだときいたことがるようないような。 チューリングマシンだと最初に命令をよみこんでおかないとだめだとかなんとか。 : Name_Not_Found [sage] 2018/06/08(金) 11:50:26.31ID:??? ここまで言えばわかったと思うが、 JavaScriptでは宣言前でも関数や変数を使えるようにするために var i = 1 の var i の部分に相当する宣言と、function hoge() {} の宣言の 二種類の宣言が内部的に頭の方に集められる。そういう機能でしかない。 アロー関数( 例 (param) => value) は、function hoge() {} という形ではなく 名前がないため、後で宣言したアロー関数を宣言前に呼び出すなんてことは ありえないので上の方に集める必要はない だが var f = (param) => value と書いた場合の、変数fに関しては その宣言である var f の部分だけが、その他の変数と同じように 関数の頭の方に集められる(アロー関数が集められるわけではない) : Name_Not_Found [sage] 2018/06/08(金) 12:00:31.41ID:??? もっと簡単に言えば、 関数は先に宣言されて無くても使えるようしたい 変数はスタックからのメモリの確保と解放を楽にしたい という異なる二つの目的を叶えるために 巻き上げという名前で表現されるような 処理が行われるということ ただ変数の方は、内部的にメモリを確保すればいいだけの話なんだから 宣言前に使えなくてもいいと思うんだが 内部的に関数の頭にまとめてメモリ確保するという実装が 仕様になってしまった感じがするな。 : Name_Not_Found [sage] 2018/06/08(金) 12:26:11.76ID:??? はえ〜 : Name_Not_Found [sage] 2018/06/08(金) 12:40:19.30ID:??? それは違うな。 JSでは未初期化の変数にアクセスすると例外になる仕様がきちんとある。 letやconstで宣言された変数は実行がその文に達するまでは未初期化の状態になる その未初期化の区間がTDZと言われる。 未初期化と未宣言とundefinedで初期化済は皆違う。 : Name_Not_Found [sage] 2018/06/08(金) 12:46:08.72ID:??? あと、アロー関数は名前がある。 var f = ( ) => { } のように変数宣言と一緒にアロー関数が定義される場合は 特別に解釈されてf.nameがきちんと"f"になる。 : Name_Not_Found [sage] 2018/06/08(金) 12:46:32.11ID:??? バカものどもがホイスト嫌ったせいでTDZなんていう化け物を産み出してしまった : Name_Not_Found [sage] 2018/06/08(金) 12:50:47.50ID:??? それ最初はchromeの独自実装だったよね? 今は仕様化されたの? : Name_Not_Found [sage] 2018/06/08(金) 12:51:33.45ID:??? 言われてみれば確かにTDZってもんがあったな どんな仕様にしても、自分は最初にまとめて宣言・初期化書いておくが : Name_Not_Found [sage] 2018/06/08(金) 12:53:18.97ID:??? ES2015仕様だよ : Name_Not_Found [sage] 2018/06/08(金) 12:56:05.04ID:??? あ、そういう意味じゃないんだわw 宣言時の話 代入すると名前が付きまーすって話じゃない : Name_Not_Found [sage] 2018/06/08(金) 13:00:41.05ID:??? アロー関数として定義された関数が巻き上げられているかどうか って確認する方法あるのか? : Name_Not_Found [sage] 2018/06/08(金) 13:03:29.74ID:??? var f; // 宣言時 console.log(f.name) // undefined f = () => {} // 代入 console.log(f.name) // f つまり代入によって名前がつく。f宣言時ではない : Name_Not_Found [sage] 2018/06/08(金) 13:16:03.50ID:??? それだと、 var f = function (){} では関数オブジェクトへのポインタ代入のみであるところ f = () => {} では関数オブジェクトへのポインタ代入と変数 fへの.nameプロパティ付加の2つを行う というだけである、とも解釈できるのでは アロー関数そのものが巻き上げられていて、3行目でf.nameだけ後から処理されているのか アロー関数そのものは巻き上げられず、3行目で関数の評価とともにf.nameが処理されているのか どっちなのかわからないように見える : Name_Not_Found [sage] 2018/06/08(金) 13:17:33.65ID:??? console.log(f) // undefined var f = () => {} console.log(f.name) // f console.log(g) // ? g() {} function g() {} console.log(g.name) // g 関数gは宣言なので当然巻き上げられるが アロー関数(?)fは巻き上げられない fはただの変数であり、変数宣言のみが巻き上げられる アロー関数 () => {} に名前がつくのは代入した時なので function g() とは違い記述よりも先に呼び出すことはできない : Name_Not_Found [sage] 2018/06/08(金) 13:20:05.69ID:??? アロー関数は関数というより値とみなしたほうが良い : 34 [sage] 2018/06/08(金) 13:33:17.77ID:??? console.log(f); // null var f = () => {} f=null; console.log( f ); // null console.log(g); // null var g = function (){} g=null; console.log( g ); // null console.log(h); // function h() function h(){} h=null; console.log( h ); // null console.log(i); // null var i = 1; i=null; console.log(i); // null なんで1, 5, 7番目のconsole.log();がundefinedでなくnullになるのかは知らんけど ともかく function h(){}ではなくvar g = function (){}と書いたときの挙動とvar f = () => {}と書いたときの挙動 どういうことだろうか : Name_Not_Found [sage] 2018/06/08(金) 13:35:44.15ID:??? 一言でいうと、ホイスティングにおいてほんとにアロー関数は特別なのか?ということ : Name_Not_Found [sage] 2018/06/08(金) 13:57:45.93ID:??? > 一言でいうと、ホイスティングにおいてほんとにアロー関数は特別なのか?ということ 全然特別じゃない。 アロー関数は、関数宣言じゃないので当然巻き上げられないし アロー関数を、変数の宣言と同時に変数に代入する場合は、変数宣言のみ巻き上げられる 今までとなにも変わってない : Name_Not_Found [sage] 2018/06/08(金) 13:59:21.52ID:??? 端的回答サンキュー : Name_Not_Found [sage] 2018/06/08(金) 14:01:45.36ID:??? > なんで1, 5, 7番目のconsole.log();がundefinedでなくnullになるのかは知らんけど だから、宣言(関数の宣言 と 変数の宣言)のみが巻き上げられるんだって わからなかったら、var文とfunction文が一番上にくると思えばいい var f; console.log(f); // null f = () => {} f=null; console.log( f ); // null var g; console.log(g); // null g = function (){} // ※これは文ではないので関数宣言ではない g=null; console.log( g ); // null function h(){} console.log(h); // function h() h=null; console.log( h ); // null var i console.log(i); // null i = 1; i=null; console.log(i); // null : Name_Not_Found [sage] 2018/06/08(金) 14:04:30.16ID:??? console.log(v); // undefined // console.log(f); // referenceError var v=function f(){console.log(f.name)} v(); // f こうだもんな 変数に関数ぶっこんだときと何ら変わらん : Name_Not_Found [] 2018/06/08(金) 14:13:59.38:86T0W8kr それおかしくね? 変数の巻き上げは宣言だけで中身までは巻き上げられないでしょ : Name_Not_Found [sage] 2018/06/08(金) 14:19:27.97ID:??? 即時関数も変数に入れる関数もアロー関数も、前後を問わず、その場所や格納された変数以外から呼べない 呼べないだけで、中身が本当に巻き上げられていないのかどうかは、誰にもわからない : Name_Not_Found [sage] 2018/06/08(金) 14:22:51.06ID:??? だれが中身が巻き上げられるなんて言ったんだ? そもそも宣言に中身は存在しない こういう名前の変数 or 関数を使いますよーって言うだけ だから宣言 : Name_Not_Found [] 2018/06/08(金) 14:25:09.08:86T0W8kr だけどアロー関数だと f() var f = () => {} とあとに定義しててもf()で定義より先に呼び出して実行出来るという話でしょ? : Name_Not_Found [sage] 2018/06/08(金) 14:26:33.85ID:??? ずれてるやつの原因はこれか? var f = () => {} fはアロー関数ではない () => {} がアロー関数 fはアロー関数を入れている変数 : Name_Not_Found [sage] 2018/06/08(金) 14:29:17.26ID:??? > とあとに定義しててもf()で定義より先に呼び出して実行出来るという話でしょ? 実行できるわけがない でどう解釈されるか書いてやったろ f() var f = () => {} ↑は↓のように解釈される var f f() f = () => {} 当然undefinedになってるんだから呼び出せない (蛇足だが、アロー関数 () => {} に fという名前がつくのは 三行目の f = () => {} を実行した時) : Name_Not_Found [] 2018/06/08(金) 14:32:47.86:86T0W8kr できるよ。 試してみたら。 自分も最初できないと思ってたけどできたから意外だったと話をしたんだけど。 : Name_Not_Found [sage] 2018/06/08(金) 14:37:30.11ID:??? できませんでしたwww 試してから言えや もう一つ function foo() { console.log(1) } foo() function foo() { console.log(2) } ↑は関数宣言が巻き上げられて↓と解釈される function foo() { console.log(1) } function foo() { console.log(2) } foo() だから2と表示される var foo = () => console.log(1) foo() var foo = () => console.log(2) ↑は変数宣言が巻き上げられて↓と解釈される var foo foo = () => console.log(1) foo() foo = () => console.log(2) だから1と表示される : Name_Not_Found [sage] 2018/06/08(金) 15:04:14.53ID:??? どんな環境(※さすがにIE/Edgeは除外)でも挙動変わらないのか? : Name_Not_Found [sage] 2018/06/08(金) 15:11:49.09ID:??? IE / Edge 含めて変わるわけないね : Name_Not_Found [sage] 2018/06/08(金) 15:14:28.46ID:??? いやアロー関数自体の話じゃなくて変数に束縛したアロー関数の.name。 初期はchrome以外空白じゃなかったっけ? : Name_Not_Found [sage] 2018/06/08(金) 15:15:47.72ID:??? いや、意味は勿論分かってるがちょっと関連することとして思い出したので 補足的に書いただけだよ : Name_Not_Found [sage] 2018/06/08(金) 15:18:25.96ID:??? それも含めてES2015仕様のはずだよ あまり重要でない機能だから実装が遅かっただけでは? : Name_Not_Found [sage] 2018/06/08(金) 15:19:03.58ID:??? 実際にfirefox52ESRではアローのf.nameは何も出てこないな : Name_Not_Found [sage] 2018/06/08(金) 15:34:32.92ID:??? というかだなfunctionの名前のように 関数名がその関数オブジェクトの.nameになるってのは思いつくけど、 関数を入れた変数名が、関数名になるなんて仕様普通思いつかないよ 匿名関数はデバッグが面倒になるので どうにかして名前をつけられないか?という 方針で考えてやっと思いつけるってもんだ 仕様になるのが遅れるのも当然 : Name_Not_Found [sage] 2018/06/08(金) 20:41:47.10ID:??? 仕様は遅れては居ないが実装が遅れてるのかもな 仕様の該当箇所はここか ttp://www.ecma-international.org/ecma-262/6.0/#sec-assignment-operators-runtime-semantics-evaluation e. If IsAnonymousFunctionDefinition ~~ : Name_Not_Found [sage] 2018/06/08(金) 21:48:42.42ID:??? firefoxってアホみたいに(褒め言葉)早く正確に仕様通りに実装するUAじゃなかったっけ : Name_Not_Found [sage] 2018/06/09(土) 07:40:37.68ID:??? contenteditableな要素にクリップボードをペーストする前に リッチテキストをプレーンなテキストに変換しようと思い、 onPasteイベントの中でclipboardDataにsetDataしたのですが、反映しません ペースト時にclipboardDataに書き込むことは出来ないのでしょうか? : Name_Not_Found [sage] 2018/06/09(土) 10:05:45.85ID:??? ttps://teratail.com/questions/88915 これを思い出した。 関数宣言→「変数の実体化」で変数定義が巻き上げられる 変数宣言(var)→「変数の実体化」で巻き上げられる let,const→「変数の実体化」で巻き上げられるが、TDZでは参照不可 アロー関数→即時呼び出しor変数宣言に含めることしかできない 関数式→即時呼び出しor変数宣言に含めることしかできない 「変数の実体化」はES3当時の表現だが、分かりやすいのでつい使ってしまう。 ES2017ではこの文言はどう変わってるんだったか。 : Name_Not_Found [sage] 2018/06/09(土) 19:40:55.00ID:??? いや、JS2.0とかやってた名残で当初は早いようにも見えたけど 実際は独自実装の非互換性問題とかもあったし、ここ2年くらいはChromeの方が実装早いよ 難しく考えずとも、変数とはスコープオブジェクトのプロパティのようなものだ そのスコープにぶら下がる変数はスコープに入る時に全て作られる そういうことをしなければ。スコープ外でlet aと定義していてスコープ内で同じくlet aと定義している場合、 スコープ内のlet aに達するまでにaを参照した場合スコープ外のaを参照する挙動になってしまう あるいはそういう挙動でも良かったのかもしれないが、JSではその挙動を是としていないため、 スコープ内で作られる変数はそのスコープに入った段階で作られることになる 仕様での用語としては「CreateBinding」で、スコープ(Environment Record)に対して値を紐付けるための名前を作る作業がある そしてその変数宣言文に実行が達したら「InitializeBinding」で、値が初期化される それまでに変数を利用しようとした場合は例外となる 要するに変数の状態としては「created」かどうかと、「initialized」かどうかの2つを考えればいいだけ 関数宣言に関してはブロックが評価される時に、通常の宣言であればcreateされるだけのところを追加でinitializeされるというだけ : Name_Not_Found [sage] 2018/06/09(土) 20:42:00.96ID:??? の件ですが clipboardDataの実体はドラッグ&ドロップで使われているDataTransferオブジェクトのようです JavaScriptリファレンス第六版には、 DataTransferオブジェクトのsetDataメソッドの説明として ドラッグアンドドロップ操作の最初の dragstart イベントに応答して ドラッグ元がこのメソッドを呼び出します。 このメソッドはその他のイベントハンドラからは呼び出せません。 とあり、DataTransferオブジェクトというのは自由に読み書きできるようなものでもないようです ペースト前にデータをJavaScriptでフィルタするのは機構的に不可能なのでしょうか? : 61 [] 2018/06/09(土) 21:56:44.42:rjw/LaIP 変数の挙動は理解しているし、詳細な説明が欲しかったわけではない 「仕様上の文言がどうなっているか」が気になっただけ : Name_Not_Found [sage] 2018/06/09(土) 23:59:05.12ID:??? Reactを勉強しているものですが、Reactのスレが見つかりませんでした。日本ではマイナーなのでしょうか? : Name_Not_Found [sage] 2018/06/10(日) 00:54:36.18ID:??? だからそれも書いてるじゃん 変数周りの仕様としては「created」と「initialized」しか無いって 関数宣言は「Hoistable」に含まれるわけだけど、それは「created」されて「initialized」されるということでしかない 「実体化」などという表現や概念は存在しない : 61 [] 2018/06/10(日) 01:57:27.73:AOyPV8Fv > 変数周りの仕様としては「created」と「initialized」しか無いって あなたの解釈はどうでもいいのだよ 知りたいのは一次情報源だけ > 「実体化」などという表現や概念は存在しない そんなことはない ttp://www2u.biglobe.ne.jp/~oz-07ams/2002/ecma262r3/10_Execution_Contexts.html#section-10.1.3 : Name_Not_Found [sage] 2018/06/10(日) 02:57:42.92ID:??? React Angular Polymer Vueなんかのフレームワークと jQueryって同じフレームワークでもなんか別物のような気がするんですが これらは出来ることは同じなのでしょうか? : Name_Not_Found [sage] 2018/06/10(日) 11:32:11.73ID:??? 一時情報源だけ知りたいのなら自分で仕様を読めばいいじゃない ttps://tc39.github.io/ecma262/ 俺もあんたのためにきちんと仕様を読みながら噛み砕いて説明したんだからさ それをそんな言い方されちゃもうどうしようもないね : Name_Not_Found [sage] 2018/06/10(日) 11:39:33.94ID:??? と言うかそこでいう実体化っていうのは、「コンテキストの実体化」だからね 静的なコードという型からその時に使う生きた状態を生成する つまりインスタンス化するというニュアンスだから 「実行コンテキスト」の項にあるでしょ? その「変数の実体化」っていうのは今話してる変数の状態や「有効化」の話とは軸がずれている 静的な定義らから生きた変数インスタンスを作るというニュアンスの話 そしてやっぱりちょっと妙な表現でもあるから今の仕様では使われてないよ : Name_Not_Found [sage] 2018/06/10(日) 12:19:29.70ID:??? jQueryはライブラリであってフレームワークではありませんよ それを使っているプログラマが、それを呼び出すコードを書くのがライブラリ 呼び出されるコードを書くのがフレームワークだと誰かが言っていました : Name_Not_Found [sage] 2018/06/10(日) 14:34:15.01ID:??? > 俺もあんたのためにきちんと仕様を読みながら噛み砕いて説明したんだからさ 尋ねてもいない事をあなたが勝手に誤解してお節介しただけだろう 「ES2017ではこの文言はどう変わってるんだったか」とちょっとした疑問を口にしただけで、なぜそこまで絡んでくるのか しかも、なぜか「あなたの言葉」で返ってくる始末 : 61 [] 2018/06/10(日) 14:57:34.96:Q6IKpI1g も自分なので、念のため > その「変数の実体化」っていうのは今話してる変数の状態や「有効化」の話とは軸がずれている 俺からすれば、俺が書いた「独り言()」にあなたが勝手に絡んできただけなんだがな で、俺の趣旨は「宣言が巻き上げされるのではなく、宣言した結果、実体化される変数初期化処理が巻き上がる」 変数宣言も関数宣言も巻き上げなんて発生していない 関数スコープにある変数は、実行コンテキストに入る段階で「変数が実体化」されるだけだ 「変数の実体化」がES3の用語である事は61で書いた通り で、俺は「ES2017ではこの文言はどう変わってるんだったか」と書いた 詳しくは読んでいないが、おそらく関係するにはこの辺りで、俺が欲しいのは「ES2017の文言」 ttp://www.ecma-international.org/ecma-262/8.0/#sec-executable-code-and-execution-contexts あなたはなぜか「あなたの言葉」で説明してきた そして、一時情報源を求めたら、なぜか ES2019 ttps://tc39.github.io/ecma262/ を持ち出してきた 仕様書は必要になれば読むが、今の時点でそこまで切羽詰まって読む必要性はない ただの独り言で誰かに答えてもらう事を期待していたわけでもない 答えてくれるのは有り難いが、俺への返信は全てピントがずれているんだよ : Name_Not_Found [] 2018/06/10(日) 15:28:19.00:SGg1sNhW まだやっとるのか巻き上げの話w そんな話時間の無駄のような気がするわ 物理の真理でもあるまいし 時間の無駄 プログラミングなんて使えりゃ良いんだよ JSの仕様策定にかんよしてるのでないなら もっと別のこと勉強しろ : Name_Not_Found [sage] 2018/06/10(日) 15:53:33.14ID:??? 仕様を読まなければ、無駄にクロスブラウザする事もあるから時間の無駄ではないけど、否定から前向きな結論は出ないだろうね 独り言に絡まれたのは同情するわ : Name_Not_Found [sage] 2018/06/10(日) 16:05:06.46ID:??? というか、絡まれて火の粉を払っている方はともかく、絡んでいる方が望む終着点が読めん : Name_Not_Found [sage] 2018/06/10(日) 16:06:05.78ID:??? 用語は根拠をもって統一すべきとは確かに思う そしてもし詳しいなら実務に影響あるところを書いてくれるとうれしいんだが 宣言と初期化の違いが、実際のコーディングにどう影響するのか アローを含む変数格納の関数と巻き上げの話にしても その変数を介さずに中身を直接呼ぶ方法がないんだし 「巻き上げなんて無かった」と考えてコード書いていけばそれで良い話にも思える : Name_Not_Found [sage] 2018/06/10(日) 16:13:57.91ID:??? 絡んでいる方は「一つの論題」に皆が参画している感覚なんじゃない? の下記一文は「一人一人にスレッドがある」と考えていない節があって、そこで61と齟齬が発生している印象 > その「変数の実体化」っていうのは今話してる変数の状態や「有効化」の話とは軸がずれている : Name_Not_Found [sage] 2018/06/10(日) 16:27:21.22ID:??? なるほど、確かにそういう人は少なからずいるな… : 61 [] 2018/06/10(日) 16:51:48.21:Q6IKpI1g > 「巻き上げなんて無かった」と考えてコード書いていけばそれで良い話にも思える それで良いと思う 元々、ECMAScript には「巻き上げ」という概念はなく、誰かが hoisting と言い出したのが始まり 今では仕様上に hoisting も出てきてはいるけど、本質ではないと思う 実践的な部分では変数初期化のタイミングさえ覚えれば良い 基本的な部分だけまとめると、 - 「関数呼び出しされるタイミング」で関数宣言/変数宣言(var)の変数が初期化される - let,const変数も同様に初期化されるが、TDZでは RefarenceError (TDZは仕様外の用語) - グローバルコードでは先頭で関数宣言/変数宣言(var)の変数が初期化される 「関数式」「アロー関数」は単体で宣言する機構がないので、他のスコープから呼び出すなら変数宣言/引数などに絡めて使う : Name_Not_Found [sage] 2018/06/10(日) 17:07:16.04ID:??? >実践的な部分では変数初期化のタイミングさえ覚えれば良い 覚える必要あんのか? 変数は「初期化するコード」より前のタイミングで使うな、なんならブロック先頭で網羅的に初期化しろ、で済む話では? : Name_Not_Found [sage] 2018/06/10(日) 21:03:36.41ID:??? 俺からすれば最初は君に対する返答でもたしかにあったけど、 君だけへの返答ではなくそれまでの流れを含めた視聴者に対するまとめを書いただけで 別に君に変数の仕組みを解説したつもりはない そこに君がで突っ込んできたから、それ「も」書いてると言った 君は「自分の言葉」と思ったかもしれないが、仕様書のURLは、「あえて」記載しなかった ただ俺はきちんと必要ならすぐ調べられるように仕様上の用語は含ませた そこは確かに君を強く意識して行ったことだけど 先にも言ったとおり全体としては君の質問へのど直球の回答ではないので 君の期待通りの返信では無いのは悪しからず そしての言う通り、俺がなどで書いた文章は以前の話を含めて書いているため その後のそれらに対するレスは、だけではない流れ上で考えさせて貰っている 君がやけにに拘ってたことには失礼ながら今気づいたが、俺はそんなちっぽけなところなんて見続けていない : Name_Not_Found [sage] 2018/06/10(日) 21:14:46.91ID:??? あとこれは完全に別件として問いたいことだが、 なぜES2017に拘る? 俺はES2017というのは最新仕様の言い換えだろうなと思ったから より適切な最新のドラフトを案内した 今回の件でES2017に拘る理由がわからない ES3,5や、letやconstが入ってその辺りに変更が入った2015を見てみるというのはまだ分かる でもES2017なんて中途半端なところを拘って見たがる理由って一体全体なんだ? 今を知りたいのなら最新のドラフトの方がいいぞ、多少読みやすくもされてるし : Name_Not_Found [sage] 2018/06/10(日) 22:36:17.46ID:??? 一次情報云々の話ならそもそも実体化とかいう訳語が怪しいんだが 誰かがそう決めたの? : Name_Not_Found [sage] 2018/06/11(月) 08:47:51.79ID:??? それはポリシーの問題 それでいい人もいれば、良くない人もいる const房と根本的に同じ問題 : Name_Not_Found [sage] 2018/06/11(月) 09:52:34.11ID:??? ちょっとおかしくね を理解したところで初期化jsコードより先に使っちゃダメなのは確かで 初期化jsコードより後に使うならは無意味では 問題おきてデバッグする時にもまず役に立たない知識 : Name_Not_Found [sage] 2018/06/11(月) 10:06:20.55ID:??? 知っていると実益があるかどうか var,let,constはそれぞれ性質が違いしかも一方だけでコードを書くことができる 選択の余地ひいては実益があり、実益をどう判断するかのポリシー問題 変数の巻き上げやTDZや宣言・初期化とか用語・説明の話は実益あるのか : Name_Not_Found [sage] 2018/06/11(月) 11:12:20.90ID:??? 俺様が満足していればどうでも良いんだよ : Name_Not_Found [] 2018/06/11(月) 12:13:44.14:VhNszVLU ttp://ekaz4.xyz/1 : Name_Not_Found [sage] 2018/06/11(月) 12:40:18.54ID:??? 実益があるのかって、単純に何事も内部構造をできるだけ分かって使う方がより良いと思うけど。 クラッチやエンジンの仕組みを何も知らないで感覚だけで覚えるのと、理屈で理解してるのとでは違いがあると思う : Name_Not_Found [sage] 2018/06/11(月) 13:18:48.10ID:??? 巻き上げ周りの知識があったら書き方がどう変わるのかってやつだな 自動車の例でいえば、仕組みを知ってれば効率良い運転に繋がる可能性もあろう : Name_Not_Found [sage] 2018/06/11(月) 15:55:56.82ID:??? ジェネレーター関数って使い道ありますか・・? : Name_Not_Found [sage] 2018/06/11(月) 15:57:10.40ID:??? フレームワーク作者とかは使うんじゃない? : Name_Not_Found [sage] 2018/06/11(月) 18:37:23.63ID:??? 通常のジェネレータはあんまり使い道はないが asyncになるとイベント的なことに使えるのでかなり重要な存在 これがあれば、whileループみたいに描くしか無いところをfor awaitで書ける : Name_Not_Found [sage] 2018/06/11(月) 19:18:59.97ID:??? でもそれwhileループで書けば良いんですよね? : Name_Not_Found [sage] 2018/06/11(月) 22:32:05.39ID:??? そうでもないと思う ジェネレータの良いところは、継続状態と返り値が同時に抽象化されてることだから for awaitならそれを抽象化されたまま自然と扱えるが、 whileを使った場合その抽象化システムを丁寧に自分で組み立てるか、 その場その場で適応的に書くか、もしくは妥協しないといけない : Name_Not_Found [] 2018/06/11(月) 23:47:57.05:FHvAGVIA ftp%3A//ftp2.shuwasystem.co.jp/pub/book/javascpermas/chap09.zip これのsec04/dragdrop.htmlの26,36行のpreventDefault()ってなにを取り消してるの?? : Name_Not_Found [sage] 2018/06/12(火) 00:18:43.22ID:??? あ、ちなみに、ページ内の「ドラッグできます」というのを上の四角の領域にドロップすると要素が移動するというコードです。 それから34行のcurrentTargetとtargetと違いもわからないです。 targetに書き換えるとドラッグしても何も起こらなくなるのはなぜだろう : Name_Not_Found [sage] 2018/06/12(火) 01:33:58.85ID:??? んなURL持ってくんなよ しかも度々書籍ステマ・書籍アフィが出てるスレで「コンピュータ、パソコン書籍の出版社」が アクセス統計でも得たいのか : Name_Not_Found [sage] 2018/06/12(火) 06:26:12.22ID:??? 本買うと特典でサンプルDLできるとかのあれか 本買ってないやつがDLするわけにはいかないし 本買ったやつならURLなんて出さなくてもわかるだろうし 何より本書いたやつか出版社に聞け : Name_Not_Found [sage] 2018/06/12(火) 12:39:51.08ID:??? どなたかお願いします : Name_Not_Found [sage] 2018/06/12(火) 12:54:37.96ID:??? データのID作るときとか便利 ループだとそのループ中でしかできないが ループ以外でも簡単に連番等つけれる 同じ理屈で数列つくるときに便利。 遅延評価で無限数列つくるときとか。 ま、あんま使わんと思うが。 : Name_Not_Found [sage] 2018/06/12(火) 12:55:33.83ID:??? 調べるべき用語が分かってるんだからググった方が絶対いい結果を得られるよ : Name_Not_Found [sage] 2018/06/12(火) 12:58:21.53ID:??? $('a').click(function(e){ e.preventDefault(); }); 例えばこれなら、a タグによるページ遷移という、デフォルトの動作が取り消される jQuery のイベントバブリング、preventDefault()・stopPropagation() を参照 : Name_Not_Found [sage] 2018/06/12(火) 13:35:41.02ID:??? ('q') : Name_Not_Found [sage] 2018/06/12(火) 16:23:25.80ID:??? ttp://jqueryui.com/droppable/ jQueryUI の、Draggable, Droppable のソースコードを見れば? : Name_Not_Found [] 2018/06/15(金) 05:12:24.54:OkF/hEF8 JS違法だって おまえら逮捕だね 【ウイルス】WebサイトでJavaScriptでPCに負荷をかける行為は違法 警察が検挙 ttp://asahi.5ch.net/test/read.cgi/newsplus/1528979221/ : Name_Not_Found [sage] 2018/06/15(金) 05:40:24.41ID:??? jkなら大丈夫だから : Name_Not_Found [sage] 2018/06/15(金) 12:42:58.55ID:??? ひまつぶしにどうぞ + JavaScript のお題用スレッド + ttps://mevius.5ch.net/test/read.cgi/hp/1526666703/ : Name_Not_Found [sage] 2018/06/15(金) 15:06:38.85ID:??? パターンマッチ関数って何のためにやるのですか? 回りくどいな、という印象しかなかったのですが : Name_Not_Found [sage] 2018/06/15(金) 16:35:12.09ID:??? パターンマッチ関数?? それだけ言われても… : Name_Not_Found [sage] 2018/06/15(金) 17:28:44.15ID:??? すべてモジュール化するため : Name_Not_Found [sage] 2018/06/15(金) 17:41:20.29ID:??? 処理のメイン部分の記述が簡素になる。 : Name_Not_Found [sage] 2018/06/17(日) 09:54:02.75ID:??? JavaScriptで配列をすごい勢いでループしてる時に 緊急停止ボタンが押されたらブレーキをかけることはできますか : Name_Not_Found [sage] 2018/06/17(日) 10:02:59.78ID:??? 再帰なら可 : Name_Not_Found [sage] 2018/06/17(日) 10:24:28.66ID:??? 質問者じゃないけど興味があるので理由を詳しく聞かせてもらいたい : Name_Not_Found [sage] 2018/06/17(日) 12:03:06.04ID:??? 嘘だから気にすんな : Name_Not_Found [sage] 2018/06/17(日) 12:33:49.85ID:??? なんだうそか : Name_Not_Found [sage] 2018/06/17(日) 12:35:22.12ID:??? setTimeoutやsetIntervalで再帰させてれば緊急停止できるのでは 概念的にはもはやループじゃなくてタスク管理だけど : Name_Not_Found [sage] 2018/06/17(日) 14:34:27.38ID:??? > setTimeoutやsetIntervalで再帰させてれば 再起である必要はないね : Name_Not_Found [sage] 2018/06/17(日) 14:57:27.97ID:??? 緊急停止ボタンのクリックイベントでkinkyubrake = trueしておく。 ループではkinkyubrakeがtrueのときはbreakするようにしとけばいい。 : Name_Not_Found [sage] 2018/06/17(日) 16:18:01.04ID:??? 再開どうすんの あ、再開はないのか : Name_Not_Found [] 2018/06/17(日) 17:49:51.65:9b6f4Zt8 緊急停止っていみわからんけど 再帰で無限数列とかつくるとオーバーフローでエラーでるが それを回避するためにsetIntervalに入れるんだが。 そういうことじゃねぇのか? : Name_Not_Found [sage] 2018/06/17(日) 17:58:49.16ID:??? そりゃ別の問題だろ jsエンジンの保護機能があって、理解した上でそれを回避する手法を使う そこにユーザの停止意思は関係ない : Name_Not_Found [sage] 2018/06/17(日) 18:07:58.46ID:??? 関数型プログラミングの質問か? : Name_Not_Found [114] 2018/06/17(日) 20:12:00.03ID:??? 皆様ご回答有り難うございます 長い時間がかかる計算をさせているのですが 私のラスクトップはこの時期長時間動かすと熱で落ちてしまいます その兆候が現れた時に、物理的なUSBボタンが押されたら 全タブの処理を抑えたいと思っています 完全に止まらなくとも構いません 再開はしたいです : Name_Not_Found [sage] 2018/06/17(日) 20:13:14.81ID:??? なんかラスク食べたくなってきた。買ってこよう。 : Name_Not_Found [sage] 2018/06/17(日) 20:15:51.10ID:??? つまりオーバーフローによる問題を回避するためではなく エアフローによる問題を回避したいわけですな ドヤァ : Name_Not_Found [sage] 2018/06/17(日) 20:18:15.35ID:??? ラスクトップってなんだデスクトップなのかラップトップなのかどっちだ PCごとスリープさせたらダメなのかね : Name_Not_Found [sage] 2018/06/17(日) 20:32:27.93ID:??? とりあえずJSの仕事では無さそう プロセスごとのCPU使用率制御かなんかを調べた方が多分近道 : Name_Not_Found [sage] 2018/06/17(日) 23:23:03.78ID:??? 厳密には同期的繰り返し処理では割り込み処理出来ない : Name_Not_Found [] 2018/06/19(火) 09:33:33.46:adLbUfl+ オライリーのサイ本はもう新しいのは出ないんでしょーか? 7版待ってるんですが : Name_Not_Found [sage] 2018/06/19(火) 12:29:07.22ID:??? 一回読んだら次は仕様書見て理解すればいい : Name_Not_Found [sage] 2018/06/19(火) 23:04:41.37ID:??? 今までOOPでやっていた部分をFPで書いていてふと思ったのですが FPって名前空間汚しまくりじゃないですか? 例えばOOPだと hoge={sum:()=>{}} みたいにhogeだけですみますがFPだと hoge=()=>()=>{}; sum=()=>{}; みたいに延々増えていくような?気がします そういうものなんでしょうか? : Name_Not_Found [sage] 2018/06/19(火) 23:50:01.24ID:??? サイの絵の表紙のサイ本 JavaScript 第6版、2012、David Flanagan 初めてのJavaScript 第3版 ――ES2015以降の最新ウェブ開発、オライリー、2017 Flanagan は、Java, Ruby など色々な言語の本を書いてる。 最近は、何をやってるのかね? : Name_Not_Found [sage] 2018/06/20(水) 06:16:56.26ID:??? まだ持っていなくこれから学習始めるのに本が欲しかったんですが、第6版は古いから手が出しづらいです。 6版買うくらいならいっそのこと古本の5版でも構いませんか? : Name_Not_Found [sage] 2018/06/20(水) 06:49:06.68ID:??? 良いか悪いかで言ったら俺は悪いと思う 要するにJSの実際はそんなには難しくもないんだけど、 適切な解説が少ないプロトタイプチェーンやスコープチェーンだったり 多くのJSerが曖昧にしてきたであろう基礎的な仕組みに近いところを まんべんなくそれなりに分かりやすい解説が載ってたっていうのが価値だった だけどその他の部分のテクニックとかも肌感覚が古くなってきてるし、 今なら当然合わせて知っておきたいクラス構文やモジュールなんかも学べないしな まあ物好きでお金と時間に余裕があるなら、 一旦ES5までの知識を付けて個別にアップデートしていってもいいとは思うが : Name_Not_Found [sage] 2018/06/20(水) 07:35:11.72ID:??? ありがとうございます 第6版も古いからオライリーに拘らず他所の新しい本の方がよいでしょうか? : Name_Not_Found [sage] 2018/06/20(水) 12:15:51.98ID:??? Javascriptで、生成されたオブジェクトを終了するために、 VBSで言うところのNothingを使いたいのだけれど、 どうも使わない感じみたいで、困ってます。 Javascriptでは、もしかしてnullとか使うでしょうか? ヒントでもいいので教えてください。 : Name_Not_Found [sage] 2018/06/20(水) 12:20:28.72ID:??? 変数にnull代入 参照してる変数が無くなればgcがいつか解放する : Name_Not_Found [sage] 2018/06/20(水) 12:24:43.92ID:??? ありがとう、参考になりました。 : Name_Not_Found [sage] 2018/06/20(水) 12:33:17.45ID:??? わからん サイ本のように一昔前は中級者や中級者になりたい人向けという幅広い括りで取り敢えず読んどけという本もいくつかあったが、 今の時代は難しい : Name_Not_Found [sage] 2018/06/20(水) 13:13:57.05ID:??? 大昔におけるオライリー本ですら有効性はクエスチョンマークだった 今や書籍の価値なんてGCに回収されてる : Name_Not_Found [sage] 2018/06/20(水) 13:27:31.60ID:??? > 今や書籍の価値なんてGCに回収されてる どういう意味? : Name_Not_Found [sage] 2018/06/20(水) 17:15:47.10ID:??? どうもありがとうございます 参考になりました : Name_Not_Found [sage] 2018/06/21(木) 16:52:49.08ID:??? Javapcriptのスリープ実装って永遠の課題なんか? 代替手段はどれも使いづらいし、 何でこんなことになっとんのや? : Name_Not_Found [sage] 2018/06/21(木) 20:35:03.15ID:??? 俺のスニペット帳より。元ネタは確かtry-puppeteerサイトのコード なぜか5ちゃんのセキュリティゲートウェイに引っ掛かったので全角で貼る。 const sleep = ms => new Promise(resolve => setTimeout(resolve, ms)); await sleep(5000); : Name_Not_Found [sage] 2018/06/21(木) 21:09:31.87ID:??? Atomics APIでできるよ Atomics.wait()とすればそのまんまスリープする ただメインスレッドでは禁止されてる場合が多い メインで待機しちゃうとUIが止まっちゃうからね でもWorkerなんかではSharedArrayBufferと組み合わせて効果的に使えるよ ただ今は例のCPUサイドチャネル攻撃脆弱性問題のおかげで 情報が抜けてしまうのでデフォルト無効にされてるが : Name_Not_Found [sage] 2018/06/21(木) 23:38:00.72ID:??? でもAtomics APIってJavaScriptじゃなくて ブラウザのAPIですよね? NodeJSでは使えませんよね? : Name_Not_Found [sage] 2018/06/22(金) 12:49:32.69ID:??? 違う。列記としたECMAScriptの仕様だからV8にも載ってるしNodeでも使える ただマルチスレッド動作が上手く行くかはわからんが : Name_Not_Found [sage] 2018/06/22(金) 12:52:44.08ID:??? ttps://www.ecma-international.org/ecma-262/8.0/#sec-atomics-object : Name_Not_Found [sage] 2018/06/22(金) 13:10:01.25ID:??? chrome、firefox、edge、safari などメジャーブラウザ全てでメインスレッドでは使えない。ワーカー内でしか使えない。 実質役立たず。 : Name_Not_Found [sage] 2018/06/22(金) 14:09:38.16ID:??? つまり俺みたいな奴ってことだな : Name_Not_Found [sage] 2018/06/22(金) 19:53:35.82ID:??? そもそもメインで待機なんてされたら迷惑も良いとこ : Name_Not_Found [sage] 2018/06/22(金) 19:59:45.83ID:??? そういうruby信者みたいな情けない言い方はやめろ やるやらないとできるできないは違う できるけど理由があってやらない、が一番かっこいい : Name_Not_Found [sage] 2018/06/22(金) 20:38:55.29ID:??? 要素Aがあって <div id="A"></div> この要素Aに要素Bを動的に入れ子したとき <div id="A"><div id="B"></div></div> 要素Aが膨らんだので 要素Aの大きさを取得したいのですがどうやってやりますか? (そもそもAが膨らまないように、、みたいな話ではなく単純に、 予想外に膨らんでしまった要素のサイズを取得してみたい、という用途です) : Name_Not_Found [sage] 2018/06/22(金) 20:59:14.80ID:??? scriptをbodyの末尾に置けばreadyハンドラを待つ必要ないと思いますが このやり方に何か問題ありますか? : Name_Not_Found [sage] 2018/06/22(金) 21:05:35.16ID:??? 遅い : Name_Not_Found [sage] 2018/06/22(金) 22:21:10.44ID:??? 簡単にできるけど、理由があって禁止されたんだよ 最初期はそういう縛りなく実装されてた 理由があるなら最初からできないほうが良い 過剰に自由なことはデメリットのほうが大きい : Name_Not_Found [sage] 2018/06/22(金) 22:27:28.54ID:??? 要素にJSを適応したい場合はカスタムエレメントを使うこと そうすれば要素が出現する前に定義できるし、 出現した瞬間に効果が適応される コンポーネント化もしやすい : Name_Not_Found [sage] 2018/06/22(金) 22:31:28.54ID:??? まず適用と適応の区別をつけろ : Name_Not_Found [sage] 2018/06/23(土) 18:58:40.28ID:??? こういう人ってネット以外でも周りの人の会話に対して一々ケチをつけるのだろうか? : Name_Not_Found [] 2018/06/23(土) 19:08:18.04:+g3NNQ6c 低脳くやしいのうwwwww : Name_Not_Found [sage] 2018/06/23(土) 20:57:32.52ID:??? 低能を悔しがらせようと思ってJS質問スレでそんなレスをしたのか : Name_Not_Found [sage] 2018/06/23(土) 20:59:11.34ID:??? えマジで悔しかったのか : Name_Not_Found [sage] 2018/06/23(土) 21:21:45.34ID:??? うん。マジで悔しかった : Name_Not_Found [sage] 2018/06/23(土) 21:36:08.78ID:??? 適応はadapt 適用はapplyとかadoptやな : Name_Not_Found [sage] 2018/06/23(土) 21:51:33.46ID:??? 効果が「適用」される だとしてもおかしいがな 効果が反映される とかだろ : Name_Not_Found [sage] 2018/06/23(土) 22:37:00.39ID:??? 効果を適用する↔効果が適用される 結果としてその効果が反映される ttps://helpx.adobe.com/photoshop/using/layer-effects-styles.html#apply_preset_styles : Name_Not_Found [sage] 2018/06/23(土) 23:43:14.39ID:??? いや違うだろ 言葉の組み立てとしては正しくともニュアンス的にな 「誰々が何々を適用する」は自然だが「誰々が何々を反映する」はより不自然 つまりは「反映」よりも「適用」と言ったほうが誰がそれをするのかイメージされやすいんだよ そして今回のように「(自然と、勝手に)〜される」と言いたいのなら 「誰によってか」を意識させにくい「反映される」のほうが適切 : Name_Not_Found [sage] 2018/06/24(日) 00:05:37.04ID:??? ありがとうございます カスタムエレメントというのは聞き慣れない言葉ですが それは素のJavaScriptで出来るのでしょうか? なんかフレームワークっぽい響きがありますが : Name_Not_Found [sage] 2018/06/24(日) 00:11:00.59ID:??? 日本語的には「効果が」に続く言葉としては「反映」「適用」どちらもおかしいんじゃないか 効果とは通常は一定の結果をあらわす言葉 何かに対して、規則・ルール・設定などを反映・適用した結果、あらわれるのが効果 一定イベントに特定の処理を当てはめる際も同様 逆に、設定画面で設定を変更したときに押すボタンが「適用」なのは正しい : Name_Not_Found [sage] 2018/06/24(日) 04:24:09.05ID:??? いや、「適用」が使える場面は限られるよ プロフィール画面で、公開ルールを設定する場合には使えるけれど ニックネームなどを設定する場合には使えない 「適用」っていうのは値をそのまま当てはめるような場合ではなく 応用して使う場合にのみ使える言葉 例えば同じようなケースでも、マイプロフィール画面で 「プロフィールに『A』スタイルを適用する」とは言えるけれど 「プロフィールのスタイルを『A』で適応する」とは言えない Aというスタイルは適用できても、スタイルの名前を指定する際は「適用」は使えない : Name_Not_Found [sage] 2018/06/24(日) 05:04:49.53ID:??? ようするに「を」はOKだけど 「で」は適切じゃないって話? ○ プロフィールに『A』スタイルを適用する × プロフィールに『A』スタイルで適用する ○ プロフィールのスタイルに『A』を適応する × プロフィールのスタイルに『A』で適応する : Name_Not_Found [sage] 2018/06/24(日) 05:54:28.06ID:??? 厳密には違う キャラクターメイキングで 「彼女」に「我慢強い性格」を適用する に比べて 「彼女の性格」に「我慢強い」を適用する は明らかに不自然だろう 後者はよく捉えたとしても結局 「彼女の性格」に「我慢強いという性格」を適応すると言ってるのと同じだ そして先にも言ったようにただ固定値を貼り付けるだけであればあるほど「適用」というのは不適切 例えば、ゲーム開始以降に 「彼女の性格」に「より我慢強い」を適用する なら 「彼女の性格」に「より我慢強い」を設定する よりは適切だ : Name_Not_Found [sage] 2018/06/24(日) 07:03:04.54ID:??? 要するにAがBにただなるときはAにBを適用するというなということか : Name_Not_Found [sage] 2018/06/24(日) 08:09:40.94ID:??? > キャラクターメイキングで > 「彼女」に「我慢強い性格」を適用する > に比べて > 「彼女の性格」に「我慢強い」を適用する > は明らかに不自然だろう いやべつに? だって、性格の他に髪型とか身長があるだろ? 「彼女の髪型」に「ショートヘア」を適用するは自然だけど、 「彼女」に「ショートヘアの髪型」を適用するとか 「彼女」に「150cmの身長」を適用するとか冗長じゃん : Name_Not_Found [sage] 2018/06/24(日) 11:12:37.93ID:??? 往生際が悪いぞ。いずれにせよ「適応」は間違いだ : Name_Not_Found [sage] 2018/06/24(日) 11:21:56.62ID:??? 「適応」あってるじゃんか 言い返せないから、往生際が悪いとか 意味不明なこと言って逃げたんでしょ? : Name_Not_Found [sage] 2018/06/24(日) 11:22:45.57ID:??? 適応障害 適用障害 : Name_Not_Found [sage] 2018/06/24(日) 11:43:03.57ID:??? >ニックネームなどを設定する場合には使えない >「適用」っていうのは値をそのまま当てはめるような場合ではなく >応用して使う場合にのみ使える言葉 ・法令を適用する ・3秒ルールを適用する 応用じゃないんだが。辞書ひいてこい 「(入力した)ニックネーム(設定)を」「(今使っているソフトウェアに)適用する」 字面だけ見てもダメ : Name_Not_Found [sage] 2018/06/24(日) 12:07:43.98ID:??? 法令は遵守 : Name_Not_Found [sage] 2018/06/24(日) 12:12:38.85ID:??? いやなら法令を変えてみせろ : Name_Not_Found [sage] 2018/06/24(日) 12:30:23.46ID:??? 金も力もないでやんす : Name_Not_Found [sage] 2018/06/24(日) 12:33:49.52ID:??? 財布にお金を適用する : Name_Not_Found [sage] 2018/06/24(日) 13:40:37.03ID:??? カードで : Name_Not_Found [sage] 2018/06/24(日) 14:38:00.51ID:??? 素のJavaScriptというと ttps://developer.mozilla.org/en-US/docs/Web/API/CustomElementRegistry のあたりとか : Name_Not_Found [sage] 2018/06/24(日) 22:11:16.26ID:??? それを応用っていうんだよ の言う通り : Name_Not_Found [sage] 2018/06/24(日) 22:22:03.01ID:??? Microsoftに喧嘩売ってるな もっとやれ : Name_Not_Found [sage] 2018/06/24(日) 23:30:02.76ID:??? しれっと応用にすり替えてんじゃねーよ適応は間違いだろうがw : Name_Not_Found [sage] 2018/06/25(月) 00:29:29.06ID:??? >176は「適用」の話 : Name_Not_Found [sage] 2018/06/25(月) 00:51:38.93ID:??? 「適用」が >応用して使う場合にのみ使える言葉 かどうか、って話だろ? : Name_Not_Found [sage] 2018/06/25(月) 03:20:49.95ID:??? substringとsubstrのメソッド名ってちょっと適当すぎるのでは? : Name_Not_Found [sage] 2018/06/25(月) 04:59:47.75ID:??? 初心者です。JavaScriptを簡単な電卓代わりに使おうと思うのですが 平方根などを知りたいときにMath.sqrt(5)などとやるのが面倒です。 この組み込みオブジェクトの宣言を取っ払って sqrt(5)とやるだけでMath.sqrt(5)が実行されるようにするにはどうすればいいですかね。 というかそうでなくても例えばPythonのように import math as m とやれば m.sqrt(5) のようにタイプしやすくなりますがJavaScriptでもそのようなことがしたいです。 : Name_Not_Found [sage] 2018/06/25(月) 06:05:07.09ID:??? 原点に戻ったほうが良いぞ まず英語版Windowsはどうなっているか? ttps://i-msdn.sec.s-msft.com/dynimg/IC8950.gif ↑この機能がapplyだ 俺に認識では ・設定を反映させて閉じるのが OK ・設定を反映させないで閉じるのが Cancel ・設定を反映させて閉じないのが Apply だ OK、Cancel、Appyにダイアログを閉じる or 閉じない という意味がないことは同意するよな? で、閉じる閉じないを省略しつつ、簡潔に書くと ・この設定内容でOK ・この設定内容をCancel ・この設定内容でApply あとは日本語の問題だ この設定内容[で/を]応用・・・言わない この設定内容[で/を]応用する・・・言わない この設定内容で適用・・・ぎりぎり言う この設定内容を適用・・・言う この設定内容で適用する・・・言う この設定内容を適用する・・・言う これは翻訳の問題なので(意味はApplyが適切だと英語版Windowsで決定されてる) 応用という言葉は適切ではなく、適用がふさわしい 応用して使うとかいうのは意味不明。だって「テコの原理の応用」。とか そういう使い方をする用語なんだから。設定内容を応用するとか言わないでしょ? : 194 [sage] 2018/06/25(月) 06:11:51.73ID:??? 194ですが自己解決しました。すいません。 とりあえず 推奨案 m=Math console.log(m.sqrt(5)) 最適案 with (Math) { console.log(sqrt(5)) } だったので後者を採用しました。 : Name_Not_Found [sage] 2018/06/25(月) 06:15:55.40ID:??? がそもそも的はずれなのは、 「適用」がニックネームに対して行う操作ではなく ダイアログに対して行う操作であることに気づいてないからだな プロフィールという設定があるとして 「Aスタイル」というのは「プロフィール」の選択値 「適用」というのは「プロフィールの設定ダイアログ」に対する操作 「プロフィールにAスタイル」を「適用」するんじゃなくて、 「プロフィールとしてAスタイルを選択した設定内容」で「適用」するが正しい そこがごっちゃになるから的はずれなことを言うわけさ この設定内容で設定した値を使うわけだから「適用」 応用っていってしまうと、 (この設定内容は使わずに)この設定内容を応用して何かを作ってそれを使う というニュアンスになってしまう 設定内容に対しての「適用」はどんな場面でも使えるよ。 そもそもOKしてダイアログを閉じないってだけなんだから OKの代わりとし使える : Name_Not_Found [sage] 2018/06/25(月) 06:16:40.58ID:??? withはなにがあっても使うなって言われてるだろ? : Name_Not_Found [sage] 2018/06/25(月) 06:20:34.91ID:??? Math.sqrt(5) は Math.sqrt(5) と書くのが普通 どうしても sqrt ってしたいなら、 const sqrt = Math.sqrt.bind(Math) const sqrt = Math.sqrt でも動くと思うが、sqrtメソッド内のthisが異なる constが使えないブラウザの場合はvarで代用 : 196 [sage] 2018/06/25(月) 06:30:00.42ID:??? ありがとうございます。 しかしそれだと sinやlogやabsやら全てに対しその宣言をしないといけませんよね。 それはちょっと面倒です……。 それと、後出しのようになってしまいますが、完全に個人目的(ブックマークレット)なので evalやwithなど危険性・脆弱性のある機能を使ってもいいかなと思っています。 他人が触らず、かつ入力されるものが完全に把握できている場合でもevalやwithの使用は控えるべきですか? : Name_Not_Found [sage] 2018/06/25(月) 06:43:35.57ID:??? Microsoftって昔J-Scriptっていうのを作ったのにどうしてそれを放棄してAction Scriptを作ったん? : Name_Not_Found [sage] 2018/06/25(月) 06:45:41.21ID:??? ActionScriptじゃなくてTypeScriptだった : Name_Not_Found [sage] 2018/06/25(月) 06:53:43.91ID:??? Math.sqrtって打つのが面倒なら m.sqrtって打っていって 最後にm\.sqrtをMath.sqrtに置換すりゃいいじゃん : Name_Not_Found [sage] 2018/06/25(月) 07:04:57.51ID:??? >初心者です。JavaScriptを簡単な電卓代わりに使おうと思うのですが JSを使って簡易電卓を作ってみたい なら少しわかるが 初心者が、JSを電卓代わりに使う、とか意味わからん : Name_Not_Found [sage] 2018/06/25(月) 07:11:11.56ID:??? JScriptは大人の事情で名前を変える必要があっただけで 実質はJavaScript。開発当時は標準仕様などなく どのブラウザも好き勝手JavaScriptを発展させたので 互換性がない部分がたくさんあった 標準仕様が作られたが、いちばん重要な互換性を保つために IEはJScriptの開発を続けていったが、ようやく互換性を切り捨て 標準仕様に準拠できるようになった。 TypeScriptはJavaScriptをもとに改良したもの JavaScriptの標準仕様を満たしており、+αで機能強化されてる。 JScriptが標準仕様を満たしてないために切り捨てたものにたいして TypeScriptは標準仕様を満たしてなおかつ拡張されているところが違う : Name_Not_Found [sage] 2018/06/25(月) 08:08:38.93ID:??? なるほど ありがとうございます : Name_Not_Found [sage] 2018/06/25(月) 08:57:05.49ID:??? ここまですべてくそ わからないものにはクソをする ワハハ バタン! : Name_Not_Found [sage] 2018/06/25(月) 12:51:04.88ID:??? 何個使う気が知らないけど let {sin,log,abs}=Math みたいにできるし、10個未満なくらいならwith文使わなくても 煩雑になったりはしないと思うよ : Name_Not_Found [sage] 2018/06/25(月) 13:18:53.49ID:??? だな。 用途がブックマークレットって言ってるしIIFE使うんだろうから、 (function({sin, log, abs}) { })(Math); ってやってもいい。 : Name_Not_Found [sage] 2018/06/25(月) 17:03:44.22ID:??? a = !a みたいな処理が一度に出来る代入演算子ってありますか? : Name_Not_Found [sage] 2018/06/25(月) 17:58:56.29ID:??? AIがスクリプトを自動生成する。 : Name_Not_Found [sage] 2018/06/25(月) 18:04:26.45ID:??? AIじゃ生活できないのよ : Name_Not_Found [sage] 2018/06/25(月) 22:36:30.22ID:??? jqueryのtextメソッドを使って改行を表示させる方法はありますか? 文字列の中に"\n"を書いても改行になりませんでした : Name_Not_Found [sage] 2018/06/25(月) 22:38:40.91ID:??? ソース上での改行かhtml上での改行か html上なら無理 : Name_Not_Found [sage] 2018/06/25(月) 22:43:29.56ID:??? preでも使えば : Name_Not_Found [sage] 2018/06/25(月) 22:49:14.26ID:??? 無理なんですね ではhtmlメソッドとHTMLエスケープを使ってやります ありがとうございました : Name_Not_Found [sage] 2018/06/26(火) 00:33:04.61ID:??? 改行は、<br> だろ 改行を使わず、<p> でも良いかも : Name_Not_Found [] 2018/06/26(火) 12:08:01.32:WhKzw99L テーブルタグでクリックしたtdを連結するにはどうすればいいでしょうか? : Name_Not_Found [sage] 2018/06/26(火) 12:32:01.63ID:??? ttps://developer.mozilla.org/en-US/docs/Web/API/HTMLTableCellElement rowSpan, colSpan : Name_Not_Found [sage] 2018/06/26(火) 14:40:19.03ID:??? よく考えたらjqueryのtextメソッドって 文字列にHTMLをかけてinnerHTMLに代入するメソッドではなくて、 テキストノードを作成するメソッドですよね たからbr要素を入れられないのも当然ですね : Name_Not_Found [sage] 2018/06/26(火) 14:40:47.20ID:??? ×HTMLをかけて ○HTMLエスケープをかけて でした : Name_Not_Found [sage] 2018/06/26(火) 16:17:52.29ID:??? JavaScriptファイルを編集してもキャッシュが読み込まれてしまう時がありますが 条件はあるのでしょうか? : Name_Not_Found [sage] 2018/06/26(火) 18:57:16.64ID:??? エスケープなどしない DOMを覚えて、タグを挿入している感覚を改めた方がいい : Name_Not_Found [] 2018/06/26(火) 22:37:31.77:21Hh71GO 質問です。このシステムの名前を知らない為、長文になりますがよろしくお願いします。 サイトの中にあるリンクをクリックすると当たり前ですがリンクに組み込まれたurlに飛ばされます。 しかしこのリンクに組み込まれたurlをコピーし別タブで開くとサーバーエラーになりページが表示されません。 そこで、 質問1:このシステムの名称があれば教えてください 質問2:この現象(コピペするとエラー)を回避し、例えば自作のページに画像を貼るコードサンプルをご教授お願いします : Name_Not_Found [sage] 2018/06/26(火) 22:50:47.17ID:??? ・そんな糞なシステムを真似ないほうがいい ・そんな糞な仕組みを実装すると弊害が出る : Name_Not_Found [sage] 2018/06/26(火) 23:55:55.62ID:??? そういう「外部からの勝手なアクセス」は迷惑行為として対策されていることがあります 著作権侵害などの問題が発生する可能性もあるので、できるとしてもやりたくないですね : Name_Not_Found [sage] 2018/06/27(水) 00:34:19.12ID:??? ページAからページBのリンクを踏んでページBに遷移するときも、 直接アドレスバーにページBのURLを打ち込んで移動するときも、 そのサイトのサーバーにはページBに対するリクエストがクライアント(=ブラウザ)から来るわけですが、 この時クライアントがいっしょに送ってくる情報を調べて動作を変えることができます。 質問の動作の違いは、恐らくその情報のうち、リファラーというものを見てサーバーが動作を変えている(そういう風に作って/設定している)のだと思われます。 リファラーは簡単に言うとひとつ前にいたページのURLです。 アドレスバーに直接打ち込んで行くとカラなので区別できます。 : Name_Not_Found [sage] 2018/06/27(水) 03:52:34.75ID:??? 普通はキャッシュから読み込まれる 故意にキャッシュを捨てるか、ページをリロードするか、 ファイルが変更された都度、ファイル名を変えるなどすると、 更新後のファイルが読み込まれる 履歴だろ。直前のページ。 どのページから、ここのページに来たか : Name_Not_Found [] 2018/06/27(水) 08:42:42.72:+obW3Yl5 ありがとうございます : Name_Not_Found [sage] 2018/06/27(水) 08:45:33.40ID:??? いいってことよ : Name_Not_Found [] 2018/06/27(水) 11:32:45.97:13209M2/ ありがとうございます rowSpanで下の行のtdを削除したいのですが 複数行ある場合にはどうすればいいでしょうか? event.target.parentNode.nextSibling.nextSibling.nextSibling... とクリック毎にnextSiblingを続ける方法がわかりません : Name_Not_Found [sage] 2018/06/27(水) 12:23:35.95ID:??? rows, cells, cellIndex, rowIndex : Name_Not_Found [sage] 2018/06/27(水) 14:49:23.24ID:??? できました! ありがとうございました : Name_Not_Found [sage] 2018/06/28(木) 15:59:33.64ID:??? jsSHAは 生成したオブジェクトを再利用することは出来ないのでしょうか? ハッシュを生成するたびにオブジェクトをnewするのは無駄な気がして気になります : Name_Not_Found [sage] 2018/06/28(木) 18:49:35.60ID:??? 40桁の16進数を、36進数にしたいです 基数変換はtoStringで出来ますが、40桁の16進数はJavaScriptで扱える数の範囲を超えてますよね? どうやればいいですか? : Name_Not_Found [sage] 2018/06/28(木) 19:59:25.22ID:??? n進数のnを基数というのかと思っていたのですが、どうも違うようですね n進数のnのことを何と言いますか? : Name_Not_Found [sage] 2018/06/28(木) 20:05:37.33ID:??? 基数 : Name_Not_Found [sage] 2018/06/28(木) 20:31:56.51ID:??? 基数 : Name_Not_Found [sage] 2018/06/28(木) 20:54:35.78ID:??? 基数を辞書で引くと 記数法で、基礎として用いる数、すなわち〇(ゼロ)から九までの整数。 と書いてあったので、これはちょっと違うのかな?と思ったのですが、基数でしたか ありがとうございました : Name_Not_Found [sage] 2018/06/28(木) 22:45:36.04ID:??? それ国語辞書とかで調べてない? 基数って言ってもいろいろあって、IT用語ならまさにn進数のことだし、数学用語ならa^n(べき乗)とかlogaN(対数)とかのaのこと 基となる数は基数 : Name_Not_Found [sage] 2018/06/28(木) 23:33:23.55ID:??? V8はBigIntが実装されたので、Chromeやnodeでは BigInt('0xcafecafecafecafecafecafecafecafecafecafecafecafecafecafecafecafecafecafecafecafecafecafecafecafecafecafecafecafecafecafecafecafecafecafecafecafecafecafecafecafe').toString(36); が使える : Name_Not_Found [sage] 2018/06/29(金) 07:55:55.18ID:??? 16進数->4進数->36進数 : Name_Not_Found [sage] 2018/06/29(金) 10:09:40.67ID:??? 国語辞典で調べてました 文脈によって変わる語なんですね ありがとうございました それはどういうものでしょうか 自分の理解の範疇を超えています 40桁の16進数はJavaScriptで扱える整数の範囲を超えているので、 組込み関数ではなくてアルゴリズムでやるってことですよね 16進数から4進数は、各桁を4で割っていけばいいだけなので簡単そうです でも4進数を36進数にするのは、そう単純じゃないですよね 4進数n桁が36進数m桁と同じになるのでしょうか? : Name_Not_Found [] 2018/06/29(金) 12:07:48.57:pAnXDGBH 度々すいません 左隣りの縦列にrowspanがあるとcellIndexが変わってしまいますが これはどうすればいいでしょうか? ttp://jsbin.com/gonenedopi/edit?js : Name_Not_Found [sage] 2018/06/29(金) 12:22:43.11ID:??? は試した? : Name_Not_Found [sage] 2018/06/29(金) 12:43:31.93ID:??? そうかね 36^0の桁だけ先に計算しておけば、36^1以降は計算しやすいと思うが : Name_Not_Found [sage] 2018/06/29(金) 15:57:41.13ID:??? 自分への回答と思わず読み飛ばしていました、すみません そういうのがあるんですね しかも、同様の機能を提供するbig-integerという汎用的なライブラリもあるようです これを使えば簡単ですね ありがとうございました おっしゃる意図が読めません 理系の人なら分かるのでしょうか 四則演算以上の計算は難しいです でもありがとうございました : Name_Not_Found [sage] 2018/06/29(金) 19:54:35.21ID:??? 左上から順番に数えなされ : Name_Not_Found [sage] 2018/06/29(金) 21:55:17.95ID:??? せっかくBigIntの話を聞いてもライブラリで妥協するとかつまんねえ奴だな そんなにレガシーブラウザで巨大数を扱いたいのか? もうそっとしておいてやれ : Name_Not_Found [sage] 2018/06/30(土) 12:05:09.33ID:??? できました! 適切なアドバイスありがとうございます : Name_Not_Found [sage] 2018/07/02(月) 21:32:49.58ID:??? は?? electronアプリならいいですが chromeでしか使えないものをウェブアプリで使えないのは当たり前ですが? アホですか? : Name_Not_Found [sage] 2018/07/02(月) 21:37:11.27ID:??? せやね : Name_Not_Found [sage] 2018/07/02(月) 21:43:13.56ID:??? フォーム中のenterキー入力で発動する処理の中で、 別のフォームにフォーカスする処理を書いていたら、 フォーカス後のフォームにenterキーが入力されてしまいました preventDefaultしたら現象は消えましたが イベント伝播の最中に処理らしい処理をするのはもしかして避けた方がいいのでは? と思ってきました イベントハンドラの中ではlodashのdeferのようなもので処理の予約だけしておいて、 イベント伝播が終わった段階で処理が実行されるようにした方がいいのでは?と。 どうなのでしょうか? : Name_Not_Found [sage] 2018/07/03(火) 01:29:30.34ID:??? 単純な処理なら、かまわないだろうけど、 時間がかかる・複雑なものなどは、避けた方がよい : Name_Not_Found [sage] 2018/07/03(火) 10:44:08.98ID:??? やはりそうですよね ありがとうございました : Name_Not_Found [sage] 2018/07/03(火) 12:37:48.02ID:??? アホはあんただ そんなこと言ってるといつまでたっても使えない モダンブラウザは今年中には対応してくるんだから これからどうするのかという話だとBigIntを使っていこうと言う方が正しい : Name_Not_Found [sage] 2018/07/03(火) 12:45:59.98ID:??? いや間違ってるよ。 create-react-appなどのツールもes2015+で書けはするものの最終的にはbabelでes5に変換している。 レガシーブラウザ対応のためだ。 世の中知らなすぎ。イキリ学生かな? こんなとこでマウントとってないで勉強しろw : Name_Not_Found [sage] 2018/07/03(火) 12:59:05.16ID:??? そうなんですか? それはめでたいですが、 使う側からしてみればネイティブ実装だろうがライブラリ実装だろうが インターフェイスに実質的に大差ないので、ちょこっと変えればいいだけの話です マウンティングになってないんですよ だからアホなんです : Name_Not_Found [sage] 2018/07/03(火) 13:08:41.19ID:??? マジ学生のうちは勉強しといた方がいいよ。 時間とれるの今のうちだからさ… : Name_Not_Found [sage] 2018/07/03(火) 21:48:01.48ID:??? マウントマウントってゴリラじゃないんだからさ 世の中〜とかどうでもいいわけ 世の中に合わせるために生きてるわけじゃないんだから そんなゴタゴタしたことは実際にゴタゴタしたときに考えて 最も適切な方法を見つければいいだけ IEで動かしたいのかもしれないし、Nodeで動かしたいのかもしれない もし駄目なときはそりゃあ良いように対応すればいい でも基本的にはネイティブを使っていこう、試してみようと思わないと先に進めないんだわ 要するに綺麗事でいいじゃないかということ 教科書っていうのは大抵は綺麗事だ それに現実はそう上手くは行かないとケチつけるのはアホ まず綺麗事があって、そこから綺麗事じゃないことに対応するべきなんだよ つまりはせっかく教えてくれた人がいるんだからBigIntを もっと積極的にできる限り使おうとしてみろよということ 「へー、まそれはまだ早計でしょうからこれにしますわ」じゃあまりに失礼だろう : Name_Not_Found [sage] 2018/07/03(火) 21:59:38.61ID:??? っていうかそこまで新しい技術を積極的に使っていくことに反対するやつの気がしれないわ babelでレガシーサポートが基本みたいに言うしさぁ 本人は現実的で無難で実際に役に立つ思想のつもりなのかもしれないけどさ そういう奴らは結局10年前からいるIEガ〜厨と変わらないんだよ ここに古い環境をサポートすべしと書けば書くだけ自分含む全JSerの首を締めることになるのが分からないのか まだ吸収力がある初心者にこそケツひっぱたいてレガシー環境から遠ざけるべきなんだよ それが俺たちのやるべきことだ 未熟な人に物事を教えるってことは甘く考えちゃいけない 学校の先生だって道徳で綺麗事を教えるだろう それが変わりにいかに小狡賢く生きていくかを教えたらどうなる? お前らがやってることはまさにそういうことだといい加減気づけ お前らが根絶するまで俺はあえてこの極端なスタンスを取ってバランスを取る これは俺がJS質問スレ20か30のころからずっと続けてきてることだ わかったか?? : Name_Not_Found [sage] 2018/07/03(火) 22:19:16.13ID:??? ケンカをする悪い子は スパークリングワイドプレッシャーで お仕置きなのだ! : Name_Not_Found [sage] 2018/07/03(火) 23:21:51.04ID:??? ドン引きですわ。糖質かな? : Name_Not_Found [sage] 2018/07/04(水) 09:18:13.96ID:??? 確かに古いブラウザを切り捨てないといつまでも新陳代謝が進まないということはあると思いますが BigIntは時代遅れになったブラウザに欠けている標準的機能というより 最先端なブラウザにようやく実装されはじめた先進的機能ですよね? ですからそれを使っても新陳代謝に寄与することはないんですよ はい論破 : Name_Not_Found [sage] 2018/07/04(水) 10:56:06.24ID:??? stage4に入ってpolyfillも整備されたら使い始めれば良いと思う : Name_Not_Found [sage] 2018/07/04(水) 11:07:23.74ID:??? 最初にBigIntを紹介した者ですがこんなキチガイ中学生に背乗りされて荒らしの道具にされるとは思ってもみませんでした。 最初からポリフィルライブラリのほう紹介すればよかった。 申し訳ない。 : Name_Not_Found [sage] 2018/07/04(水) 12:24:45.17ID:??? お前も同類 : Name_Not_Found [sage] 2018/07/04(水) 14:11:37.30ID:??? お前は人類 : Name_Not_Found [sage] 2018/07/04(水) 14:59:27.62ID:??? タンノは魚類 : Name_Not_Found [sage] 2018/07/04(水) 23:10:54.85ID:??? 美味いのは乙類 : Name_Not_Found [sage] 2018/07/05(木) 07:09:57.58ID:??? 使えもせんもの紹介しっぱなしで逃げといて被害者ヅラとか片腹痛いわ : Name_Not_Found [sage] 2018/07/05(木) 08:59:56.88ID:??? XHTML2やECMAScript4の失敗がある今でもこんなことをいう人がいるんだね そういうことは、全人類を従わせるだけの力を身につけてからいいなよ : Name_Not_Found [sage] 2018/07/05(木) 09:10:18.70ID:??? そいつ古参ぶってる中学生だぞ : Name_Not_Found [sage] 2018/07/05(木) 09:20:42.91ID:??? > ここに古い環境をサポートすべしと書けば書くだけ自分含む全JSerの首を締めることになるのが分からないのか 誰も古い環境をサポートすべしとは言ってない。 現役のブラウザをサポートすべしと言ってるだけ : Name_Not_Found [sage] 2018/07/05(木) 09:29:58.26ID:??? babelを使うとサポートしてない古いブラウザでも動いてしまう だがウェブ標準で書いてもChrome 1(2008年リリース)という サポートしてない古いブラウザでも動いてしまう それとなにも変わらねぇ わざわざ古いブラウザを切り捨てる意味はない : Name_Not_Found [sage] 2018/07/05(木) 09:39:27.10ID:??? 世の中から古いブラウザが消えないと新しい機能が使えない? アホか。古いブラウザが消えなくても お前がサポートをやめれば新しい機能は使える 昔流行ったIE6以上推奨です。みたいな文章を入れるだけの話だ : Name_Not_Found [sage] 2018/07/05(木) 09:55:50.51ID:??? 蔵「IE6で動かないのですが?IE6以上で動くと言っていましたよね?至急この不具合を直してください。ハヤク!」 : Name_Not_Found [sage] 2018/07/05(木) 10:16:01.63ID:??? そりゃIE6以上で動くことを保証していれば 対応しないといけないだろうな。 ホントな、サポートの意味をわかってない 馬鹿(のことな)が多すぎw サポートしないためには、動かなくしないといけない! だからbabelを使ったらいけない 動いてしまったら、サポートしてることになるんだ!! って思うのかね。アホかと はいはい。Chrome 1で動いてしまったら サポートしてることになるんですよねー(アホ理論では) : Name_Not_Found [sage] 2018/07/05(木) 10:21:39.63ID:??? 今年後半ジャバアプレットっていうのが流行るらしいです 去年マイナンバーのサイト?で導入されて話題になったそうですね 名前からしてジャバスクリプトの進化系だと思ってます まだジャバスクリプト勉強中の身としては先が長いです この世界は進化が激しいですね みんなもうジャバアプレット使えるんですか? ついて行けててすごいです… : Name_Not_Found [sage] 2018/07/05(木) 10:59:43.92ID:??? 誰かレスしてあげろ。可哀想だろ : Name_Not_Found [sage] 2018/07/05(木) 11:25:00.70ID:??? 中学生かー・・・・・・・・ええなあ : Name_Not_Found [sage] 2018/07/05(木) 12:09:58.93ID:??? とりあえずwin8.1のサポートが終了すれば 理屈上はIE限定の環境はほぼ無くなるハズ : Name_Not_Found [sage] 2018/07/05(木) 12:19:51.82ID:??? みんな新しいほど優れてるとは限らないんだぞ これからはアップルウォッチの簡易ブラウザもサポートしないといけないんだから : Name_Not_Found [sage] 2018/07/05(木) 12:35:34.95ID:??? クライアント「つまり、Google Chromeだけが対応ブラウザなのですね。IE12,Firefox,Safari...eycはサポートしないのがトレンドと仰るのですね。」 「はい。世のブラウザはもっと、レガシー環境から遠ざけられるべきなんです。Google Chrome以外は全てレガシー環境。世の中の人が皆、Google Chromeを使えばいいのです。」 : Name_Not_Found [sage] 2018/07/05(木) 13:05:51.98ID:??? うち過半のアクセスがモバイルSafariなんやけど〜 : Name_Not_Found [sage] 2018/07/05(木) 13:12:59.75ID:??? いま一番問題になってるのは、古いAndroidスマホを 使い続けてるやつやで : Name_Not_Found [sage] 2018/07/05(木) 16:53:31.86ID:??? lynx使ったら逮捕される世の中だし仕方ないな : Name_Not_Found [sage] 2018/07/05(木) 19:12:11.64ID:??? IE12に突っ込む人はだれも居ないか : Name_Not_Found [sage] 2018/07/05(木) 19:20:05.74ID:??? そもそもeycやし…w : Name_Not_Found [sage] 2018/07/06(金) 00:00:58.84ID:??? typoしか、突っ込むところなしか : Name_Not_Found [sage] 2018/07/06(金) 14:13:03.14ID:??? node.js難しいので導入とかしてないのですが npmでインストールしてimportするのと scriptタグで、なんとか.min.jsみたいなのを読み込むのって 何か違いがあるんですか? : Name_Not_Found [sage] 2018/07/06(金) 15:05:29.86ID:??? はい。 : Name_Not_Found [sage] 2018/07/06(金) 15:50:27.16ID:??? はげ。 : Name_Not_Found [sage] 2018/07/06(金) 20:32:45.30ID:??? テキストやバイナリの1バイト目だけ取り出したいときって text.substring()するしかない? : Name_Not_Found [sage] 2018/07/06(金) 20:46:46.99ID:??? text.substringじゃむり : Name_Not_Found [] 2018/07/06(金) 21:28:58.75:Z0wHOskr 来年でなるからそれを記念してされたらいいな。 してるかも。 : Name_Not_Found [sage] 2018/07/07(土) 09:57:36.64ID:??? HTML 内で読み込むのは、普通のやり方。 一方、npm で読み込むのは、そのフレームワークのやり方 Rails でも、実行環境は、Node.js だよ。 Node は画面機能として、すべての言語で必要 web アプリは、HTML, JavaScript で画面を作る : Name_Not_Found [sage] 2018/07/07(土) 11:09:54.64ID:??? × HTML 内で読み込むのは、普通のやり方。 ○ HTML 内で読み込むのは、昔ながらのやり方。 × 一方、npm で読み込むのは、そのフレームワークのやり方 ○ フレームワークではなく、改良された新しい標準的なimport方法 × Rails でも、実行環境は、Node.js だよ。 ○ ビルド環境がnode.js 実行環境はブラウザ × Node は画面機能として、すべての言語で必要 ○ 必要ない × web アプリは、HTML, JavaScript で画面を作る ○ HTML、JavaScriptを使わず、それ以外の言語だけで作ることもある : Name_Not_Found [sage] 2018/07/07(土) 12:37:26.05ID:??? npmってつかったことないけど どっかからコピーしてきたjsファイルと そのjsファイルに関するメタ情報(バージョンとか)が記述されたjsonとかのファイルを プロジェクトフォルダに配置して jsに更新があれば更新してくれるようになるみたいな代物? : Name_Not_Found [sage] 2018/07/07(土) 13:25:10.31ID:??? nodejs package manager npmが管理するパッケージは基本node専用。 require()やioなどnode用api使われてるからな。 ただ条件満たせばブラウザで実行できるよう変換できる。 パッケージ次第。 ブラウザ環境で使用可能かどうかはそのパッケージのウェブページなどに書いてある(ことが多い)ぞ。 : Name_Not_Found [sage] 2018/07/07(土) 13:27:12.71ID:??? あととは嘘松。 なんでこんないい加減なこと書くんだろ… : Name_Not_Found [sage] 2018/07/07(土) 13:42:32.04ID:??? じゃあお前が信じてる嘘を書けば? : Name_Not_Found [sage] 2018/07/07(土) 13:49:07.87ID:??? 結局誰もよくわかってないんだろうなw : Name_Not_Found [sage] 2018/07/07(土) 14:23:14.57ID:??? どこが嘘かも書けない低脳 : Name_Not_Found [sage] 2018/07/07(土) 14:46:19.56ID:??? 正直node、nodeって言うほどそこまで良いものとは思えん javascriptをそのままサーバサイドで、が売りだけど node専用部分多いし、一定ライン以上複雑な処理書こうとすると途端に面倒になるし 多ユーザを高速にさばくためにnodeを使うとなるとお手軽とは正反対になる それにコネクション張りっ放しにしてもらうような使い方しないなら、apache/phpで適切にチューンした方が・・・ : Name_Not_Found [sage] 2018/07/07(土) 15:15:42.45ID:??? nodeでコネクション張りっぱなし??ごめん何のこと? : Name_Not_Found [sage] 2018/07/07(土) 16:32:46.77ID:??? 例えばvue.jsのインストール方法見るじゃん ttps://jp.vuejs.org/v2/guide/installation.html cdnをscriptタグでリンクする方法の他にnpmとcliによるインストールがあるじゃん npm用いてインストールしたらcdn使うのとHTML,Script,Style的に差は出るの? もちろん通常のクライアントサイドのWeb用途を考慮して : Name_Not_Found [sage] 2018/07/07(土) 17:01:52.59ID:??? 以下のようにしてHTMLのbutton要素を取得したいのですが var button Elements = document.getElementsByTagName("button") Twitterのモバイルサイトではbuttonが表示されているのに Chromeのユーザーエージェントをiphone設定して、HTMLを確認するとbuttonTagが存在していません ttps://mobile.twitter.com/search Ajaxによって動的に書き換えられた後のhtmlソースコードを確認する取得する方法はあるでしょうか? : Name_Not_Found [sage] 2018/07/07(土) 17:07:58.53ID:??? document.head.outerHTML + document.body.outerHTML : Name_Not_Found [sage] 2018/07/07(土) 19:47:09.42ID:??? ありがとうございます document.documentElement.outerHTML では ChromeデベロッパーツールでiPhoneに設定し 表示されたHTMLと同じになってしまいます スクリプトだらけでタグ類はほとんどありません 以下のWebアプリで ttp://seo.mash-comp.com/seo_tools/html_source_result.php Twitterのモバイルサイト( ttps://mobile.twitter.com/search ) のHTMLを表示するとAjaxによって動的に書き換えられた後のHTMLを確認できました inputタグやbuttonClassが正常に取得できています このようなWebアプリはどのような手段で 動的に書き換えられた後のHTMLを取得しているのでしょうか? : Name_Not_Found [sage] 2018/07/07(土) 20:08:55.73ID:??? いちいち動的に書き換えられたって言ってるがjsからはブラウザが(静的な)HTMLを解釈して組み上げたDOMしかいじれないのだから普通にいじればそれは動的に書き換えられているHTMLをいじってることになる。 何も特別なことする必要がなくて、なんとも答えられない。 jsから、ブラウザや他のjsにいじられる前のそのページの(静的な)HTML取得するにはどうすればいいですか、というほうがよほど質問らしい質問。(この場合はlocation.hrefをfetchして必要に応じてXMLParserかけるのだが) : Name_Not_Found [sage] 2018/07/07(土) 20:42:59.17ID:??? 何をしたいのかさっぱりわかんね : Name_Not_Found [sage] 2018/07/07(土) 21:13:56.46ID:??? jsを性的にいじる話? : Name_Not_Found [sage] 2018/07/08(日) 02:14:52.45ID:??? Reactを勉強しているのですが Atomic Design の Organisms を人前で読み上げることができません 赤面してしまいます なぜこんな性的な名称を付けたのでしょうか? これはセクハラです : Name_Not_Found [sage] 2018/07/08(日) 07:22:39.00ID:??? 野球開始のプレイボーイ!みたいなもんや 気にするな : Name_Not_Found [sage] 2018/07/08(日) 07:53:18.98ID:??? それはプレイボールでは? こういう下品なオジサンが鼻の下伸ばしながら用語決めてると思うと許せない : Name_Not_Found [sage] 2018/07/08(日) 08:27:35.42ID:??? え? だからいちいちプレイボールってきいて セクハラって思うなって話なんだけど? : Name_Not_Found [sage] 2018/07/08(日) 08:38:35.08ID:??? そういう単語をあえて使わないでほしいと言っています : Name_Not_Found [sage] 2018/07/08(日) 09:08:05.71ID:??? orga"ni"sm な 元々iにアクセントがあるんだからはっきり発音すればよろしい : Name_Not_Found [sage] 2018/07/08(日) 09:11:47.25ID:??? 大蟹住む : Name_Not_Found [sage] 2018/07/08(日) 09:14:16.14ID:??? まんさんに大声で読み上げさせたいわ オーガニズム、オーガニズム : Name_Not_Found [sage] 2018/07/08(日) 09:49:18.05ID:??? サセックス州 大声でいってみ : Name_Not_Found [sage] 2018/07/08(日) 10:01:15.28ID:??? 最低 : Name_Not_Found [sage] 2018/07/08(日) 11:06:55.22ID:??? 最大限にハゲを侮辱するようなjsコードありませんか : Name_Not_Found [sage] 2018/07/08(日) 11:19:37.94ID:??? 徹底的にハゲをいじめるためのjavascript : Name_Not_Found [sage] 2018/07/08(日) 11:30:52.31ID:??? お前の頭がパイパンだぜ! : Name_Not_Found [sage] 2018/07/08(日) 18:13:09.21ID:??? やっぱりこういう性善説に基づいたスレって破綻するよね : Name_Not_Found [sage] 2018/07/08(日) 18:32:31.13ID:??? え?性伝説?なにそれ?エロそうな伝説だな。 : Name_Not_Found [sage] 2018/07/08(日) 22:05:37.89ID:??? belief that human nature is fundamentally good : Name_Not_Found [sage] 2018/07/09(月) 15:29:33.07ID:??? Ruby + Selenium WebDriver で、ブラウザを操作するとか? : Name_Not_Found [sage] 2018/07/09(月) 17:40:19.38ID:??? Seleniumは様々な言語から操作させるドライバーがリリースされていますが、最も保守メンテが滞っているのがrubyとか言うクソ言語です。 Selenium自体はJava製のソフトウェアですから、ネイティブドライバーが使えるJava版が鉄板です。 とはいえJavaはめんどくさいという人はPythonやnodejs用のドライバーがそれに次いでよくメンテされています。 : 330 [sage] 2018/07/10(火) 09:47:08.81ID:??? Ruby + Selenium WebDriver で、最新のChrome 67 でも動く : Name_Not_Found [sage] 2018/07/10(火) 11:59:12.33ID:??? Pythonista的に糞言語には同意だけど 特定のドライバーの保守メンテが滞ってるから糞言語ってのはちょっとひどくねw : Name_Not_Found [sage] 2018/07/10(火) 13:50:49.74ID:??? 初心者で、クッキーの設定、取り出しを学習しております。 if(navigator.cookieEnabled) { document.cookie = 'key=value'; alert(document.cookie); } else{deocument.write("駄目")}; こんな感じでクッキーを設定して、取り出してアラートで表示するようにしたところ、 firefoxやIEではちゃんと表示されるのですが、Chromeだとアラートは出るのですが空白になります。 これはChromeの設定の問題でしょうか? javascript許可、クッキーの保存読み取り許可しているのですが : Name_Not_Found [sage] 2018/07/10(火) 20:18:36.28ID:??? 昨今ポリシーがどんどん厳しくなってるからそういうことも起こる オプション含め確実に値を設定し、万が一の場合も失敗が検知できるようにするため chromeでは今後はcookieStoreが推奨される cookieStore.set('key','value') alert((await cookieStore.get('key')).value) Canaryで試せる : Name_Not_Found [sage] 2018/07/10(火) 20:19:59.47ID:??? 最初の行await付けるの忘れてた : Name_Not_Found [sage] 2018/07/11(水) 19:11:15.53ID:??? 非同期クッキーAPIが入ってローカルストレージの非同期が来ないのはなぜだろう : Name_Not_Found [sage] 2018/07/12(木) 01:03:43.79ID:??? ありがとうございます! : Name_Not_Found [] 2018/07/13(金) 02:48:26.75:RFgBSoyz var aud = $("#audio"); $("#next").on('click', function() { var u = Math.floor(Math.random()*5) + 1; aud.attr('src', " ttps://xxx.x.xx.x.x"+u+".mp3"); }); ※nextはbutton要素のid です。 ここで質問させていただきます。この次の行にaudのsrcに指定したファイルを再生するのですが、 #nextを押しても再生されるファイルが変わってない(urlに指定していある「u」の値が反映されていない)ため、 思うように作動させることが出来なくて困っています。 なお、この関数は最初に呼び出されていると共に、一番上に書いてある関数です。 どなたかご教授願います。。。 : Name_Not_Found [sage] 2018/07/13(金) 02:50:10.84ID:??? 5が全角なのはギャグか? : Name_Not_Found [sage] 2018/07/13(金) 06:16:38.93ID:??? alert(u); : Name_Not_Found [] 2018/07/13(金) 09:58:34.45:5pSsdTZj コピペする過程で全角になってしまった可能性があります。というのもuが1になった時のファイルは再生されるので...... : Name_Not_Found [] 2018/07/13(金) 14:11:40.54:RFgBSoyz ずっと1が表示されます : Name_Not_Found [sage] 2018/07/13(金) 16:09:42.60ID:??? 1のファイルとやらはvideoタグの初期ロードファイルだったりしないか +で連結する前に、uと".mp3"について、それぞれ末尾にtoString()つけて、toString()含めて括弧で括る : Name_Not_Found [sage] 2018/07/13(金) 17:49:19.43ID:??? ttps://jsfiddle.net/hnyvm7p5/ : Name_Not_Found [sage] 2018/07/13(金) 19:51:17.84ID:??? > コピペする過程で全角になってしまった可能性があります コピペでそんなこと発生しないような コピペした後、手入力し直したのが原因 : Name_Not_Found [sage] 2018/07/13(金) 19:59:33.00ID:??? っていうか自分の質問の原因のコードと 自分が質問のために書いたコードなのに、可能性があります ってなんや : Name_Not_Found [sage] 2018/07/13(金) 20:36:49.17ID:??? 何れにせよ単純なミスっぽいし まずはエラーメッセージを見て確認してみるのが 正攻法として勉強になると思うよ : Name_Not_Found [sage] 2018/07/13(金) 21:42:43.41ID:??? なにもしてないのに、全角になったんです。 : Name_Not_Found [sage] 2018/07/13(金) 22:00:51.87ID:??? なにもしてないのにjavascriptがこわれた : Name_Not_Found [sage] 2018/07/13(金) 22:13:54.69ID:??? なにもしてないのに〜が壊れたの90割は何かしてる : Name_Not_Found [sage] 2018/07/13(金) 22:27:47.72ID:??? 何もしてないのに「コピペする過程で全角になってしまった可能性があります」と書けるのか それとも、何もしてないのに、そう書いていたのか 結論「何もしてなかった」 : Name_Not_Found [] 2018/07/13(金) 22:27:48.65:RFgBSoyz - var i = Math.floor(Math.random()*5+1); var num = i.toString(); aud.attr('src', " ttps://xxx.xx"+num+".mp3"); で解決することができました!!皆様本当にありがとうございました!!! : Name_Not_Found [sage] 2018/07/13(金) 22:35:34.20ID:??? それ、toString() は要らんのだがね 原因「なにもしてないのに、全角になったんです。」 : Name_Not_Found [] 2018/07/13(金) 22:38:43.81:RFgBSoyz の者ですがとは私の投稿ではないです 5が5と全角になった理由としては当初random()*5はrandom()*2であり、 「1の値のみが返ってくる原因として Math.floor()以降の数字が小さい数字であるのでは」という疑問を解消するため大きい数字を入れて テストしていました。その後投稿する際に日本語入力のまま2を5に変更したため5が全角に なってしまったのだと思います。混乱を招いてしまい、すいませんでした。。。 : Name_Not_Found [sage] 2018/07/14(土) 00:06:04.24ID:??? テストと投稿が関係あるとしたら 投稿時に書き直す必要はないし、そもそも全角の5に気づかないって何のテストになったんだという話 テストと投稿が関係ないんだったら 投稿時に2を5に変える必要がどこにもないよね : Name_Not_Found [sage] 2018/07/14(土) 00:32:27.87ID:??? ええやん別に お前らもうちょい優しく甘くなろうぜ おかんやないんやから : Name_Not_Found [sage] 2018/07/14(土) 00:38:38.21ID:??? 概ね同意だけど、おかんはどっちかって言うと「何もしてないのに〜」って言う側やろ : Name_Not_Found [sage] 2018/07/14(土) 01:01:39.32ID:??? なにもしてないのに怒られた : Name_Not_Found [sage] 2018/07/14(土) 01:36:50.75ID:??? なにもしてないから怒られる : Name_Not_Found [sage] 2018/07/14(土) 03:30:24.67ID:??? で、結局の原因はなんだったの : Name_Not_Found [sage] 2018/07/14(土) 03:41:12.33ID:??? 複数安価で355がNGなってただけで原因みれたわ : Name_Not_Found [sage] 2018/07/14(土) 04:01:09.95ID:??? Canvasでクロスフェードをしたいのですが、思うようにいきません 具体的には、例えば2枚の画像A,Bを半分ずつ重ねた状態を作るには、 アルファを0.5同士で重ねると良いように思えますが実際にそれをすると背景が透けます 0.5A画像+0.5B画像ではなく、 0.5(0.5背景+0.5A画像)+0.5B画像になってしまうということです 画像だけ分けて合成してから背景と合わせればいいだろうと思うかもしれませんがそれも上手くいきません AB合成画像のαが(1-(1-(1-0)[無背景]*(1-0.5)[A画像])*(1-0.5)[B画像])=0.75[AB合成画像]となってしまい背景が0.25混じってしまうためです 解決方法を思いつかれた方はご教授ください : Name_Not_Found [sage] 2018/07/14(土) 04:11:43.68ID:??? てかよくよくみたら原因は、全角のみじゃん。 ふつう「単に全角になってただけでした、すいません笑」みたいな返しが自然だが 時点で、全角が原因だとまだ気づいてない or 別の原因があったことにしたい風なテンションはなんなん・・? : Name_Not_Found [sage] 2018/07/14(土) 07:58:32.00ID:??? javascriptじゃなくそういう画像作れば? : Name_Not_Found [sage] 2018/07/14(土) 12:27:23.78ID:??? <div id="a"></div> スクロール必要な長いソースコードが続く <div id="b"></div> こういう状態で#bにいったときにアクションをしたいのですが 検出方法やどういったイベントを使うのでしょうか? : Name_Not_Found [sage] 2018/07/14(土) 12:32:48.65ID:??? #bにいったときって? : Name_Not_Found [sage] 2018/07/14(土) 12:35:00.85ID:??? マリア「なにもしてないのに子どもが出来ました!」 : 366 [sage] 2018/07/14(土) 12:37:34.38ID:??? 縦スクロールです 例えばこのスレを開いてからスクロールしていって のところで画面にalertをジャンと出すような感じです : Name_Not_Found [sage] 2018/07/14(土) 12:50:56.79ID:??? ユーザーの目 ↓ 画像A(50%) ↓ 背景 この時点でユーザーからは背景と画像Aが1:1で混ざった状態に見えるのは分かる?これに画像Bを50%で更に足すと、それにさらに1:1で混ざった画像になっちゃうわけ。背景:画像A:画像B=1:1:2 背景が透けて見えるのがおかしいと認識してるんだから、次のようにすればいいと分かるよね? ユーザーの目 ↓ 画像B(50%) ↓ 画像A(100%) ↓(以下は見えない) 背景 割合を変更するには、画像Bのところだけをいじる。画像A:画像B=95%:5%にしたいなら画像Bのアルファを0.05(5%)にする。画像Aはいじらない。 : Name_Not_Found [sage] 2018/07/14(土) 13:00:16.18ID:??? のところって? : 366 [sage] 2018/07/14(土) 14:10:13.38ID:??? #bの位置yを取得して window全体をscrollイベントで現在の位置y'を監視して yがy'になったら発火で良さそうですが これだと常時scrollイベントが発生するので(位置yになったら解除するにしても) 環境によっては重い 電池消耗が激しいなどの問題に見舞われるので そのへんうまくできないかなと思ったのですが : Name_Not_Found [sage] 2018/07/14(土) 16:10:47.05ID:??? YouTube とか、その要素が表示されたら、画像を読み込むとかだろ その要素が表示されたらとか、そういうイベントは無いの? : Name_Not_Found [sage] 2018/07/14(土) 17:07:28.37ID:??? ご回答有り難うございます 確かに同形同位置の2枚の画像のフェードの場合はおっしゃる通りなのですが 実際は透過部分を持った不定形不定位置不定数枚のpngが動的に現れたり消えたりし得るというフェードであります つまり、画像Aに画像Bを重ねる場合 画像Aを100%のままにしておくと画像Bが重ならない部分に問題が出てしまうということです フェードが50%に達した段階では、 画像Aの画像Bに重ならない部分は背景と1:1で交わってほしく 画像Bの画像Aに重ならない部分は背景と1:1で交わってほしく 画像Aと画像Bの重なる部分はそれぞれ1:1で交わって背景は交わらさせたくないということです ここからはフェードが同期的に始まったという場合で例を書きますが もし画像Aのアルファが元々0.5である部分Дと、画像Bのアルファが元々1である部分Бが背景部分Gの上で交わるときは フェードが50%に達した段階で0.25Д+0.5Б そしてのこる 0.25の部分がGとなってほしいです もし画像Aのアルファが元々0.6である部分Дと、画像Bのアルファが元々0.7である部分Бと、 画像Eのアルファが元々0.8である部分Ёが背景部分Gの上で交わるときは フェードが50%に達した段階で0.3Д+0.35Б+0.4Б これは1を超えるので、全ての係数の形が1となるように調整し Gは全く含まれない、というような挙動にしたいです 要するに、αはフェード段階と画像のアルファに基づいて各画像分加算し、色もフェード段階と画像のアルファに基づき単純に加算する ただしそのときαの合計が1を超える場合、αを1とし色の合計を調整して、最後に背景と重ねる というようなうまくいくかどうか分からないアルゴリズムまでは考えたのですが ピクセル操作などを行わずこういうようなことが簡単にできませんかね ライブラリのフェードも試してみましたが、やはり問題は起こるようです(少しちらつくというか、浮くように見える) 今まで他の方はどうやって対処されてきたのでしょうか : Name_Not_Found [sage] 2018/07/14(土) 17:47:49.01ID:??? これは見てる? ttps://developer.mozilla.org/ja/docs/Web/API/CanvasRenderingContext2D/globalCompositeOperation : Name_Not_Found [sage] 2018/07/14(土) 17:51:26.77ID:??? 画像をうまいこと願望どおりに重ねたい、っていうのにjavascript関係ある? : Name_Not_Found [sage] 2018/07/14(土) 18:11:11.87ID:??? まさにこういったことでできるのであれば良いと思っているのですが、 どう使ったら良いのか検討もつかないので色々試しても上手くいきません このオプションごとにどういう計算式が使われてるかが分かればまだやりようがあるかもしれません : Name_Not_Found [sage] 2018/07/14(土) 18:38:30.94ID:??? そもそもcanvasでないといかんのかね? css の transition で済むように思えるが : Name_Not_Found [sage] 2018/07/14(土) 18:49:22.19ID:??? フルCanvasのゲームなので何とも…… ビュー層をHTMLにしたこともありますが パフォーマンスや表示互換性、スクリーンショットなどの機能の実現の容易さから 今はCanvasを使って進めています : Name_Not_Found [sage] 2018/07/14(土) 21:01:41.87ID:??? 読み込むjavascriptのファイルを1つに統一することって出来ますか? 出来るならどんな風にやったらいいでしょう? 変数や関数名がかぶったりすると思うのでそこを解決しないといけないのと あとライセンス的にどうなのかなという問題もありますが /*** なんたら.js author Nantara ttp://nantara.example.com/ MIT License **/ /*** うんたら.js author Untara ttp://untara.example.com/ Apache License **/ こんなかんじで同ファイルに列挙すればいいのかとか : Name_Not_Found [sage] 2018/07/14(土) 21:18:43.89ID:??? ごくごく一般的に行われています。 なぜならhttp1.1では一つにまとめたほうがセッションを節約でき大抵の場合パフォーマンスも良くなるからです。 複数のjsファイルを一つにまとめたものはバンドルファイルなどと呼んだりします。 ツールはたくさんあります。 私はwebpack使ってますがcssや画像もバンドルできたりするカオスツールなのでもっとシンプルで使いやすいの選んだほうがいいかもです。 : Name_Not_Found [sage] 2018/07/14(土) 21:57:18.23ID:??? どうもありがとうございます さっそくwebpackがどういったものか調べて 類似ツールでよさそうなの探してみます : Name_Not_Found [sage] 2018/07/15(日) 05:43:29.99ID:??? なぜ類似ツールを使う?w : Name_Not_Found [sage] 2018/07/15(日) 10:45:05.39ID:??? コピペした時に半角数字を全角に自動変換するにはどうすればいい? : Name_Not_Found [sage] 2018/07/15(日) 15:30:26.71ID:??? charCodeAt(0) + 0xFEE0でググレ : Name_Not_Found [sage] 2018/07/16(月) 01:40:30.93ID:??? たった10個しか無いんだから列挙すべきだと思うけどな 判定処理+ String.fromCharCode(n.charCodeAt()+0xFEE0) より "0123456789"[n] || n の方が明らかに良いだろ : Name_Not_Found [sage] 2018/07/16(月) 15:12:04.25ID:??? 違うドメインで発生したjavascriptのエラーを捕捉することってできませんか? : Name_Not_Found [sage] 2018/07/16(月) 16:03:17.03ID:??? 違うドメインでエラー発生した際にキャッチしてシリアライズルール決めてjsonで送信 受け取ったらデシリアライズしてスロー : Name_Not_Found [sage] 2018/07/16(月) 16:55:16.11ID:??? 文字も混同した場合のをやりたかったのでを参考に var str="あ3い45う6え6 お2かき47く8け"; var newstr=str.replace(/[0-9]/g, n=>'0123456789'[n]); : Name_Not_Found [sage] 2018/07/16(月) 19:14:23.03ID:??? 横からですまんが n=>'0123456789'[n] この記法なんていうの? 無名関数で置き換えるとどんなかんじかな? : Name_Not_Found [sage] 2018/07/16(月) 19:23:33.88ID:??? アロー関数 (n)=>n function(n){ return n; } function(n){ return '0123456789'[n]; } : Name_Not_Found [sage] 2018/07/16(月) 19:27:43.20ID:??? 文字列型の\dを投げてるのに本来整数型のindexとしてそのまま扱うのはちょっともにょる この例では問題が出ないだろうとはわかっていても : Name_Not_Found [sage] 2018/07/16(月) 22:33:44.44ID:??? ありがとう 少し賢くなった : 14 [sage] 2018/07/16(月) 23:17:40.53ID:??? 分かってはいたけど人いなかった ttps://mevius.5ch.net/test/read.cgi/hp/1507885112/ 誰か分かる方あっちのvue.jsスレで助けてください 今日はプロジェクト一回消して明日やり直します : Name_Not_Found [sage] 2018/07/17(火) 12:58:33.17ID:??? JSの全てのプロパティは文字列型じゃないの? : Name_Not_Found [sage] 2018/07/17(火) 19:04:47.34ID:??? stringとsymbol : Name_Not_Found [sage] 2018/07/18(水) 08:17:48.34ID:??? 青島「事件(エラー)はサイトで起こってるんじゃない。ブラウザで起こってるんだ!」 : Name_Not_Found [sage] 2018/07/18(水) 08:59:43.72ID:??? 違うドメインから目的のドメインに送れ ttps://developer.mozilla.org/ja/docs/Web/API/Window/postMessage : Name_Not_Found [sage] 2018/07/18(水) 10:37:04.38ID:??? 非同期処理は、異なるコンテキスト(流れ)だから、 例外機構は使えないので、戻り値などで知らせてもらうしかない : Name_Not_Found [sage] 2018/07/19(木) 02:49:03.03ID:??? ジャバスクリプトに スリープがない合理的な理由って何かあるの? ブラウザの表示が目的だから、 表示を止めないために 必ず処理をする仕様だとか そんなもんなのかな。 : Name_Not_Found [sage] 2018/07/19(木) 02:55:01.39ID:??? まあ、理屈上は内部でsetTimeoutみたいに扱えばいいだけだとも思えるんだけどね : Name_Not_Found [sage] 2018/07/19(木) 03:00:57.70ID:??? 使いにくいんですよね。 よくあるスリープの代替手段は メモリ食うし。 スリープ実行でメモリ食うとか、最悪ですよ。 : Name_Not_Found [sage] 2018/07/19(木) 08:54:56.43ID:??? ,402 sleepを使う合理的理由がないから : Name_Not_Found [sage] 2018/07/19(木) 09:05:22.92ID:??? sleepって何に使うんだろうな? 待たせたい時?何を? : Name_Not_Found [sage] 2018/07/19(木) 09:09:53.62ID:??? 「真のプログラミング言語にはSleepなど必要ない」ワロタwww ruby信者のruby擁護みたいな言い種wwwww : Name_Not_Found [sage] 2018/07/19(木) 10:33:26.69ID:??? sleep代わりにpromiseじゃだめなの? 直接的ではないにしろ事足りよね : Name_Not_Found [sage] 2018/07/19(木) 11:04:04.96ID:??? スリープを使うメリットは メモリの使用量を減らしたいときとか ブラウザが固まらないようにとか 任意のタイミングで処理を実行したりとか とにかくあれば便利だ まあ、私が初心者というのもあるけど ジャバスクリプトは、すごくやりづらいです : Name_Not_Found [sage] 2018/07/19(木) 11:45:20.15ID:??? これはひどい転嫁。 ブラウザが固まらないようにsleep?? pythonなど他の言語でも10秒sleepしたら10秒固まるのでは? 任意のタイミングで処理を実行?? まさにsetTimeoutやsetIntervalの出番では? : Name_Not_Found [sage] 2018/07/19(木) 12:47:47.80ID:??? async関数使えば 例えば for(){ await fetch() await sleep(1000) } みたいに出来るよ 場合によっては良い感じになると思うし : Name_Not_Found [sage] 2018/07/19(木) 13:29:04.12ID:??? sleepとpromise(コールバックなど含む)の違いは、 sleepは他の処理が終わってようが終わってまいが、 指定された時間ただ待つだけ promiseなどは他の処理が終われば即座に それがわかるわけで待つやり方としてはこっちのほうが良い 他の処理の完了を効率よく待つのはsleepでは実現できないんだけど なんでsleepがいるの? : Name_Not_Found [sage] 2018/07/19(木) 13:32:03.57ID:??? > 「真のプログラミング言語にはSleepなど必要ない」ワロタwww 実際そうじゃね? ただ単に待つだけの処理なんて意味ないよ 他の何かが準備できるまで待ちたいなら、 他の何かが準備できたら通知してくれる方が良い 他の何かが準備できるのを待つことに対してはsleepはいらないんだから、 じゃあ他に何にsleepを使うのかと : Name_Not_Found [sage] 2018/07/19(木) 14:18:47.41ID:??? さすがに「ちょっとしたデバッグのために」とかじゃないよな・・ それこそコンソール使えばいいし : Name_Not_Found [sage] 2018/07/19(木) 14:51:26.03ID:??? 何のためにsleepを使うか 重い処理をやってるときに途中途中で画面に反映したいとき setTimeoutでもなんとかなるけどsetTimeoutの再帰呼出では迂遠になるケースがある 処理Aと処理Bの間にちょっとウェイトを入れたいとき アニメーションとか。setTimeoutでできるんだけど重なると面倒だしsleepの一行でできると楽 : Name_Not_Found [sage] 2018/07/19(木) 14:53:28.90ID:??? というか他言語でのsleepも原則「他処理にいったん明け渡したい」用途がデフォじゃない? 待つ用途で使うというよりも : Name_Not_Found [sage] 2018/07/19(木) 15:01:30.30ID:??? そういう処理ならsleepの一行じゃ無理じゃん。ループの中に書かないと。 一方のjsはsetInterval一発なのであったw : Name_Not_Found [sage] 2018/07/19(木) 15:05:08.99ID:??? 例の前者のほうはループ必要だけどサブルーチン化は原理的には必要ない setTimeoutやsetIntervalはサブルーチン化を強いられる しかも再設定と離脱の仕組みを入れなきゃいけない分、どうしても複雑になるだろう 例の後者のほうはループ不要 : Name_Not_Found [sage] 2018/07/19(木) 15:18:34.74ID:??? も書いてるけどsleepくらい自分で定義して使えば? async関数で囲ってIIFEにして使うのが気に入らないかもしれないけどそのうちトップレベルawaitが入るとそれも要らなくなる。 ちなgoogle様謹製のsleep実装↓ const sleep = ms => new Promise(resolve => setTimeout(resolve, ms)); : Name_Not_Found [sage] 2018/07/19(木) 15:24:56.78ID:??? まあそういう風にやっちゃえば良くもあるんだけどね ms待機とms以上待機とは厳密には違うということもあるけど実際そうそう問題にならないし ただ、言語側で用意しようよという話 : Name_Not_Found [sage] 2018/07/19(木) 15:47:06.82ID:??? 使いやすいところにsleep()があって気軽に使えるようになると 全体的にみればページロード完了までの所要時間が伸びるから それを嫌ったのが実際のところじゃないかと : Name_Not_Found [sage] 2018/07/19(木) 17:33:33.33ID:??? > 何のためにsleepを使うか > > 重い処理をやってるときに途中途中で画面に反映したいとき sleepなんだからそこで処理は止まりますよ? 画面に反映する処理もしませんよ だってsleepして止まってるんだから ほんと何言ってるんでしょうかw : Name_Not_Found [sage] 2018/07/19(木) 17:35:39.13ID:??? > というか他言語でのsleepも原則「他処理にいったん明け渡したい」用途がデフォじゃない? 今どきのOSはマルチタスクなんでー sleepなんかしなくても他処理に明け渡されます。 : Name_Not_Found [sage] 2018/07/19(木) 19:00:57.33ID:??? 昔のゲーム宜しく sleep(10); //これを挟むとなぜか動く でもやりたいんか : Name_Not_Found [sage] 2018/07/19(木) 19:03:26.23ID:??? setInterval(hogehogefunction, 0); //こうするとなぜか動く : Name_Not_Found [sage] 2018/07/19(木) 19:06:21.42ID:??? 別にsleep使えばいいじゃん 自分で1行で定義すればasync関数内でそれっぽく使えるんだからさ 勿論setTimeoutというか、ブロッキングが気になるなら requestIdleCallbackのようなものも検討していいケースもあると思うよ でもsleep=悪ってことは無いと思うね 例えば同じように悪だと言われるevalよりも遥かに有用なテクニックだろうよ : Name_Not_Found [sage] 2018/07/19(木) 19:11:14.34ID:??? sleep10秒挟むとなぜか動くってなに 興味がわいてしょうがないんだが : Name_Not_Found [sage] 2018/07/19(木) 19:34:06.30ID:??? 昔のゲームはOSなど無いに等しくハードウェアを直接操作していた。 そしてハードウェアの特定の命令は処理に時間がかかり 命令を出してから一定時間たたないと処理が終わらないことがあった そういう場合はちゃんとハードウェアの仕様として最低Nミリ秒待つなどと書かれていた しかし今の時代ハードウェアはOSやドライバが処理し、そのような処理に 一定時間かかるような、割り込みによって完了が知らされるようになった。 これにより処理が終われば通知されるため、スリープのように待ちすぎるようなことも無くなった。 もちろんブラウザでもOSやドライバ、それらを経由して 何かの処理に時間がかかるような場合は、コールバック関数が呼ばれることとなった そのためブラウザでsleepは不要となった。またsleepは処理が止まり、 表示されたページも固まるのでユーザーインターフェースとしても不適切であり 避けるべきものとなった : Name_Not_Found [sage] 2018/07/19(木) 19:34:10.33ID:??? 10秒じゃなくて10ミリ秒だろ つうか今でもJSみたいなイベント駆動じゃなくて その対極に位置するポーリングタイプの言語環境では ビジーループ回してsleepしながらポーリングするっていうのは普通になされていること 例えばゲームではコントローラーの状況をループでずっと確認し続けて 前回と変わっていれば変化があったと見なす そういうのは普通に行われていること : Name_Not_Found [sage] 2018/07/19(木) 19:40:53.35ID:??? 直前にdomを操作する処理がある場合、非同期のため、hogehogefunction()とそのまま呼ぶとdom更新前に実行されてしまうことがある。 setInterval 0でラップするとdomが安定した状態で実行させることができる。 サイ本に書いてある。 : Name_Not_Found [sage] 2018/07/19(木) 19:44:58.75ID:??? だから何度も言ってるけど、sleepしたら処理が止まるだろ 画面書き変わらなくなるぞ : Name_Not_Found [sage] 2018/07/19(木) 19:46:43.57ID:??? > 直前にdomを操作する処理がある場合、非同期のため、hogehogefunction()とそのまま呼ぶとdom更新前に実行されてしまうことがある。 違う。逆 直前にdomを操作する処理がある場合、同期処理のため、hogehogefunction()とそのまま呼ぶとdom描画前に実行される。 : Name_Not_Found [sage] 2018/07/19(木) 20:01:46.29ID:??? ああミリ病を想定してたのか 細かいのはsleep(0)とかusleepを使うもんだとばっかり : Name_Not_Found [sage] 2018/07/19(木) 20:04:17.34ID:??? ゲームじゃなくても今のPCハードでも イベントが軸になってるフレームワーク使わないで普通にcで書くと sleepさせないで重い処理すると「応答がありません」ってなるんじゃないんか : Name_Not_Found [sage] 2018/07/19(木) 20:05:17.30ID:??? sleepは秒指定だよな・・・ : Name_Not_Found [sage] 2018/07/19(木) 21:09:54.86ID:??? えっ? 自分の書き込み良く読み直してごらんよ。 直前のdomを操作する処理がもし同期処理なら、hogehogefunction()とそのまま呼んでもdom更新後に実行されるでしょ。 そうではなく非同期だからsetTimeout でくるむテクニックがあるわけで。 : Name_Not_Found [sage] 2018/07/20(金) 00:13:54.37ID:??? じゃあなんか再現する例出してみなよ DOMの操作は同期処理。 だから何か操作した後にすぐに参照しても操作後のデータが得られる。 ただしDOM描画は同期じゃないがな : Name_Not_Found [sage] 2018/07/20(金) 00:15:46.72ID:??? > そうではなく非同期だからsetTimeout でくるむテクニックがあるわけで。 非同期とか関係なく、他の操作によるDOMの画面更新の後に処理したいからsetTimeoutを使う : Name_Not_Found [sage] 2018/07/20(金) 06:17:27.61ID:??? sleepを使う言語の多くにおいて描画スレッドは別だろ むしろ他のスレッド、プログラムにCPUを明示的に明け渡さないと プログラムはフリーズするしPCも重くなる : Name_Not_Found [sage] 2018/07/20(金) 06:42:35.75ID:??? 最近のブラウザで言うと正確には操作の時点で同期処理とは限らないよ 例えば要素の形を変えたりするような操作は非同期である程度まとめて扱われる もしgetClientRectsを読んだりするとその時点でブロックして構築・計算される : Name_Not_Found [sage] 2018/07/20(金) 07:05:01.10ID:??? 「操作の時点で同期処理とは限らない」ってことは、同期なものも非同期なものもある、ってことだよな DOM「操作」そのもので、非同期なもの・非同期になる場合って 具体的にどのブラウザの何? getClientRects()は操作側じゃなくて描画側の今現在の状態取得なんだから例として不適切では : Name_Not_Found [sage] 2018/07/20(金) 07:11:46.85ID:??? 仕様を読めば分かると思うが、JavaScriptはHTMLパーサに割り込んで同期的に処理されるぞ : Name_Not_Found [sage] 2018/07/20(金) 07:21:08.93ID:??? そのレス先jsの話じゃなくね : Name_Not_Found [sage] 2018/07/20(金) 12:01:40.14ID:??? > sleepを使う言語の多くにおいて描画スレッドは別だろ そうだよ? だから描画スレッドでsleepは使えないって言ってるんだが? だから何度も言ってるけど、(描画スレッドで)sleepしたら処理が止まるだろ 画面書き変わらなくなるぞ : Name_Not_Found [sage] 2018/07/20(金) 12:42:54.29ID:??? 認めない系jser : Name_Not_Found [sage] 2018/07/20(金) 12:44:03.61ID:??? 入力フォームが整数かどうかチェックする関数ってないですか? isNaNは文字列だとダメみたいだしありそうなのに出てこない : Name_Not_Found [sage] 2018/07/20(金) 12:51:34.92ID:??? type number で stepを1にしておけばデスクトップでは整数入力になるでしょ その後念の為数値を|0すればいいんじゃない : Name_Not_Found [sage] 2018/07/20(金) 13:05:26.86ID:??? async関数外でもawait使えるようになる予定あんの!? nodeにそういうモジュールあるのは見たけど : Name_Not_Found [sage] 2018/07/20(金) 13:12:55.90ID:??? ttps://github.com/tc39/proposal-top-level-await 現在stage2 : Name_Not_Found [sage] 2018/07/20(金) 13:13:30.10ID:??? 文字列なんだから普通に正規表現でいいんじゃないの : Name_Not_Found [sage] 2018/07/20(金) 14:33:56.02ID:??? ありがとうございます しかも最大最小チェックまでできるんですね JSで値チェックして確認するアクションを作ろうとしてしてたんですけど必要なくなったので嬉しい HTML5すごいですね 自分にとっては正規表現は普通じゃないんです あんな意味不明な文字列かけるの理系のエリートだけじゃないの? : Name_Not_Found [sage] 2018/07/20(金) 16:09:20.52ID:??? > あんな意味不明な文字列かけるの理系のエリートだけじゃないの? バレターカ : Name_Not_Found [sage] 2018/07/20(金) 16:44:08.15ID:??? そんな大したもんじゃないけどな まずはワイルドカードの豪華版と考えて使い始めてみては? : Name_Not_Found [sage] 2018/07/20(金) 18:12:35.14ID:??? 便乗で質問 html5のstepで0.100ってやりたいけど 0.1になってしまう 変更されるたびに0付け足さないとだめな感じ? : Name_Not_Found [sage] 2018/07/20(金) 18:44:20.13ID:??? html5のstepの意味が分からないので力になれない : Name_Not_Found [sage] 2018/07/20(金) 19:14:29.13ID:??? ゼロ固定の小数2位、3位を表示させたい必要がわからない 0.001じゃだめなの : Name_Not_Found [sage] 2018/07/20(金) 19:23:49.36ID:??? stepとは別の挿入する定数が0.123とか1.234で で、リセット値は0.100 stepを0.001ではあまりに細かすぎるので 固定値挿入後に0.123→リセット→0.100→step 0.2→固定値 1.234 みたいに桁数がころころ変わる : Name_Not_Found [sage] 2018/07/20(金) 19:50:48.14ID:??? てかそもそも例えば 0.111のあとにstep0.100したら0.2になったわ・・ 0.211になるかと思ってたけど。 : Name_Not_Found [sage] 2018/07/20(金) 19:51:47.17ID:??? そこまで拘るんならもうPaintAPIとか使って好きなカスタム要素を0から作るしか無いだろうね : Name_Not_Found [sage] 2018/07/20(金) 19:55:38.65ID:??? よくわからんけど、常に末尾に 00 を付けたいなら それ専用の要素を配置して重ねればいいじゃない 00固定でもいいし、*1000して%100した値で更新し続けてもいいし : Name_Not_Found [sage] 2018/07/20(金) 20:07:41.00ID:??? こちらの都合上、むしろ挙動はで構わないけど 00省略は、数字が真ん中や右揃えだとぴょこぴょこなってちょっとだけ気になる 別の設定値 や step0.1で1.0が1になったり があるので末尾00固定は難しいけど そもそも小数点使わない方法だと設定値の数字見た目そのものに意味があるので若干扱いづらい (例えば3.14みたいな) もう妥協することにしたわ そこまで使用頻度高くないし : Name_Not_Found [sage] 2018/07/20(金) 20:15:54.12ID:??? どうせ妥協するなら諦めなくとも elem.onchange=e=>{e.target.value=e.target.valueAsNumber.toFixed(2)} とかで妥協しても良いんじゃない? : Name_Not_Found [sage] 2018/07/20(金) 20:23:14.02ID:??? なんじゃこりゃ初めて知った : Name_Not_Found [sage] 2018/07/20(金) 20:49:13.79ID:??? 自分の環境だけかもしれないがinputの上下矢印にmouseONのままclickだと最初しか反映されず mouseOUTすると反映 キーボードからは常時反映で良い感じ 外部からjqueryのvalで値を変更すると無反応 : Name_Not_Found [sage] 2018/07/20(金) 21:40:17.15ID:??? イベントトリガには深い闇があってな : Name_Not_Found [sage] 2018/07/20(金) 22:01:16.21ID:??? まあ今回はそんな闇は関係ないが : Name_Not_Found [sage] 2018/07/20(金) 22:37:47.58ID:??? 結局セミコロン;はつけるの?つけないの? : Name_Not_Found [sage] 2018/07/20(金) 22:48:33.59ID:??? 今どきはスタイルの制限というものはない 公開される時には整形で揃うから : Name_Not_Found [sage] 2018/07/20(金) 22:57:18.49ID:??? thx便利になるな : Name_Not_Found [sage] 2018/07/20(金) 22:58:40.09ID:??? 配列とかリストとか最後のアイテムにカンマつける? : Name_Not_Found [sage] 2018/07/21(土) 06:12:04.43ID:??? 誤解してるんじゃない? ただ単にモジュールの非同期読み込み時にもawaitが使えるというだけだぞ 大抵はDOMContentLoadedを待ったりするだろうしそんな便利になるようなものではないよ : Name_Not_Found [sage] 2018/07/22(日) 09:30:47.82ID:??? 明言してくれても良いのよ? ttp://www.atmarkit.co.jp/ait/articles/1807/20/news047.html : Name_Not_Found [sage] 2018/07/22(日) 10:46:42.18ID:??? 次のガンはSafari : Name_Not_Found [sage] 2018/07/23(月) 12:14:45.42ID:??? ブラウザ用でもnode.jsでもいいのですが 英語の形態素解析ライブラリってないですか? 検索の時に活用のゆらぎを吸収するのに使いたいです madeもmakeでヒットするようにするなど : Name_Not_Found [sage] 2018/07/23(月) 12:56:01.18ID:??? それは形態素解析と言わない : Name_Not_Found [sage] 2018/07/23(月) 13:09:56.05ID:??? いや形態素解析で出来ますよね? 原形が分かるので。 品詞を分析しない単純な置換だと、本来正規化する必要のない語まで置き換えかねないので 形態素解析でやる方がいいと思います : Name_Not_Found [sage] 2018/07/23(月) 13:31:29.98ID:??? 形態素解析では出来ない それは解析結果を使ってるだけ。形態素解析でやってるわけではない。 : Name_Not_Found [sage] 2018/07/23(月) 19:59:38.03ID:??? いや解析結果を使うには形態素解析が必要ですよね? ようは形態素解析ライブラリがあれば万事解決なんですよ しょうもない詭弁はいらないんです : Name_Not_Found [sage] 2018/07/23(月) 20:14:55.31ID:??? はやく形態素解析ライブラリだしてくださいよ 期限は今週中なんですよ : Name_Not_Found [sage] 2018/07/23(月) 20:15:36.29ID:??? 形態素解析ではできないよ : Name_Not_Found [sage] 2018/07/23(月) 20:53:46.76ID:??? いやなりすましはやめて下さい 出来ますよ アホなんですか? : Name_Not_Found [sage] 2018/07/23(月) 21:08:27.24ID:??? Web Assemblyが主流になればjavascript終わるの・・? : Name_Not_Found [sage] 2018/07/23(月) 21:09:02.95ID:??? 形態素解析には辞書が不可欠だけどブラウザ稼動で辞書読み込ませるん? : Name_Not_Found [sage] 2018/07/23(月) 21:19:10.06ID:??? 出来ないよ。 新幹線で大阪まで行って道頓堀に飛び込むことは出来るけど、 新幹線で道頓堀に飛び込むことはできないよ。 日本語を勉強しよう。 質問は相手に伝わらないと意味がないよ。 : Name_Not_Found [sage] 2018/07/23(月) 21:24:19.44ID:??? wasmって要するにこれだよな 何やってるプログラムなのか読むのがものすごくめんどいjavascript : Name_Not_Found [sage] 2018/07/23(月) 21:39:10.94ID:??? 自分も形態素解析興味あるので横からだが まとめると、例えば下のような文章があったとすると 【文章】 「私の名前は学(まなぶ)です。」 「私は歴史を学ぶ。」 【辞書ライブラリ】 学 - 学ぶ - 学んだ 【やりたいこと】 人名の 「学」 を 「學」 に置換したい それ以外の 「学」 は置換したくない ので、形態素解析にまず通して、人名だけ抽出 辞書ライブラリに通して、人名の「学」だけを抽出 みたいなこと?(あくまで一例だが) : Name_Not_Found [sage] 2018/07/23(月) 21:40:46.34ID:??? 頭良さそうだなお前 : Name_Not_Found [sage] 2018/07/23(月) 22:02:05.85ID:??? 例えば簡単な暗号化を返したいとき (1)入力された文字列 (2)文字列をリバース、md5に通してリバース、さらにmd5 (3)前から10文字だけ返す みたいなことをしたかったら javascriptの生ソースで置いて読み込んでたらバレバレなのは当たり前だけど バラしたくなければ、例えばサーバーサイド言語で(2)(3)の部分だけを サーバに置いてコールバックで受け取る、みたいなのが今までの手法? でもwasmだと(2)(3)の部分がコンパイル済みなので ハッキング以外にはバレない、みたいなことが可能なのでしょうか・・? そうであればウェブ言語だけでシリアルナンバーとか生成できそうで便利だと思ったのですが : Name_Not_Found [sage] 2018/07/23(月) 22:06:58.17ID:??? 逆汗されたら無力だけど気軽には見られないよね 程度の認識がいいと思う : Name_Not_Found [sage] 2018/07/23(月) 22:12:44.37ID:??? なるほど・・ おそらく逆汗封じというか、極力わかりにくくするような技もあるんでしょうね : Name_Not_Found [sage] 2018/07/23(月) 23:44:45.33ID:??? ないよ。まったく無駄。そういうことのために用意された訳じゃない。 : Name_Not_Found [sage] 2018/07/24(火) 00:16:52.66ID:??? >ウェブ言語だけでシリアルナンバーとか生成できそうで便利だ この結論部分が何言ってんのか全く理解できない : Name_Not_Found [sage] 2018/07/24(火) 00:49:46.84ID:??? (仮に)逆汗無しという前提であれば (1)シリアルキー発行するwasm (2)(1)のシリアルキーを認識できる圧縮解凍フォーマットwasm を用意すれば ウェブ系の言語だけでとか、オフラインでもとか、ブラウザのみでとか それぞれ(サインアップなど必要とせず)プロテクト付きのコンテンツをやり取りできそうで便利、 という意味 でもアンチ逆アセンブラは無理そうなのでタラレバですね : Name_Not_Found [sage] 2018/07/24(火) 00:58:28.90ID:??? バカか。そんな前提無意味。winやmacのネイティブアプリがシリアルキー発行してるか? 常識で考えろバカ。 クラッカーに「いや逆アセンブル無しでお願いします」言ってまわんのかバカが。 : Name_Not_Found [sage] 2018/07/24(火) 00:59:16.40ID:??? md5で?md5で? 「シリアルキー発行」をwasmすなわちクライアント側がやってどうすんの? 圧縮ないし暗号化されたものを、伸張ないし復号化された後のものをどうこうされたら無駄では? : Name_Not_Found [sage] 2018/07/24(火) 01:06:52.60ID:??? 通信量やロード時のコストは変わるかもしれないけど実際の処理速度は変わらんのだろ 当たり前だけど じゃあ他に何が良いかって、javascript以外の記述が使えることを除けばあとは 難読化よりももう少しバレにくい、以外無いじゃん バレたくないどんな処理をさせるつもりだよ どんな処理させられてるかわからないコードなんて受け入れたくないわ : Name_Not_Found [sage] 2018/07/24(火) 01:14:20.13ID:??? ウェブ言語というものからしてもう誤解してそう 知ったか系SE : Name_Not_Found [sage] 2018/07/24(火) 01:23:47.60ID:??? バレにくくするために用意された仕組みではありません。 お前のような泡沫ザコプログラマ以外にとっては、コンピューターで現実時間で解析的に解ける難読化は無いのと一緒です。 : Name_Not_Found [sage] 2018/07/24(火) 01:35:20.03ID:??? >クラッカーに「いや逆アセンブル無しで 仮に、逆汗無し=逆汗ができないとすると という意味です・・・ できてしまうというのはなんとなく流れでわかりました なので 仮に です md5どうのこうの例は単に説明のために簡単な例をあげただけなので・・・ (適当にmd5を選んだだけです) 例えば、とか、みたいな、って結構強調したつもりなんですけどねぇ・・・ >復号化された後のものをどうこうされたら無駄では? もちろん復号化されたデータが拡散されたら終わりですし シリアルキーが流出したら終わりです (どんなコンテンツかにもよりますが) はい、もみましたしそのタイミングでのレスが来たので 答えるとすれば時点での認識で「仮の」話をしなきゃいけなかったのです なのでそれ以降、例えばとか仮にとかクドいかなと思いつつ書きまくったんです でもこのありさまなんですよねぇ・・・ 「例えばもしも」から話してるのに 投げ返された会話のボールが妙にズレている気がしてなりません・・・ : Name_Not_Found [sage] 2018/07/24(火) 01:39:39.81ID:??? 意味の無いしょうもない仮定に付き合う必要はない。 「もし朝起きたときチンコが松茸になっていたとして〜」 このあとは聞く必要はない。そういうこと。 : Name_Not_Found [sage] 2018/07/24(火) 01:40:15.06ID:??? 簡単な例が云々とか説明のため云々はいいから md5で何をどうやって? : Name_Not_Found [sage] 2018/07/24(火) 01:42:18.42ID:??? クライアントサイドでシリアルナンバー発行とお考えになった理由はノータッチなんですか : Name_Not_Found [sage] 2018/07/24(火) 01:45:18.19ID:??? ジャップ真でくれ : Name_Not_Found [sage] 2018/07/24(火) 01:47:03.57ID:??? スレをミスったわ : Name_Not_Found [sage] 2018/07/24(火) 01:48:40.27ID:??? なーにが会話のボールだ ボールにウンコ付けて投げといて相手がキャッチしないとブー垂れるバカかww 取るわけねーだろバーカwwww : Name_Not_Found [sage] 2018/07/24(火) 01:58:15.59ID:??? 「解析されにくい」が前提にあればできることなら 例えばflashなどで実現されてたはずの手法ってことにならんかね あれわりとブラックボックスだろ : Name_Not_Found [sage] 2018/07/24(火) 02:00:08.75ID:??? は入力された文字列をトリップみたいなもので返してほしいな、 程度の話で、の最後の行とのシリアルキーのくだりはmd5云々とは別の話です シリアルのくだりを強いて言うなら例えば、 (1)シリアルキーを発行するwasm 例)「3284443」や「7138751」という素数シリアルキーを発行する (2)シリアルキーを解読できる圧縮解凍フォーマットwasm 例)「3284443」や「7138751」を素数判定して解凍 みたいな感じです 仮に、素数も(1)(2)のソースコードもバレなければ、復号化が難しい みたいな感じです ただし、シリアルコードが流出することや復号化されたデータが流出することには対応できません みたいな感じです さすがにくどいと思いますが、もちろんシリアルキーが素数というのはあくまで例なので そのままの意味で受け取らないでくださいね もっと良い例があると思うので脳内変換してください あとこのレスはの通りです : Name_Not_Found [sage] 2018/07/24(火) 02:01:45.44ID:??? 訂正 >仮に、素数も(1)(2)のソースコードもバレなければ 仮に、みんな素数も知らず、1)(2)のソースコードもバレなければ でした : Name_Not_Found [sage] 2018/07/24(火) 02:10:35.73ID:??? 素数……ソース…… ふふっ : Name_Not_Found [sage] 2018/07/24(火) 02:20:40.25ID:??? ttps://blog.mbaas.nifcloud.com/entry/2018/01/31/104952 ちなみにこの記事 >WebAssemblyとは? >バイナリ、つまりコンパイルされていますのでソースコードが読まれることはありません。 てあるけど : Name_Not_Found [sage] 2018/07/24(火) 02:22:34.44ID:??? 見事に「ウェブ言語だけでシリアルナンバーとか生成」が意味不明なままなんだが コンテンツに対するプロテクトのくだりだけ拾っても >シリアルキーを認識できる >シリアルキーを解読できる ってどんな処理を想定してんの 暗号化分野に関わらないほうがいいと思う : Name_Not_Found [sage] 2018/07/24(火) 02:23:05.83ID:??? 「ソースコードが」読まれないからなんだっつーんだよ : Name_Not_Found [sage] 2018/07/24(火) 02:37:49.65ID:??? はじめから最後まで処理フローを書き起こしてみると問題点がわかるようになると思うよ 書く能力があるならね : Name_Not_Found [sage] 2018/07/24(火) 02:57:14.70ID:??? >ってどんな処理を想定してんの 一言でいうと、コンテンツのプロテクトです まず、の(1).wasmと(2).wasmをみんながインストール?する (例えばchromeの拡張でもアプリでもなんでもいいので読み込む) Aさんがコンテンツをアップロード(アップロード先の指定なし) その際、(2).wasmで圧縮(や暗号化など) → 暗号化されたコンテンツA (コンテンツAは公開されており、不特定多数がコンテンツAをダウンロードできる状態(*1)。 が、内容の閲覧はシリアルキーがないので、できない) BさんがAさんのコンテンツを購入 →(1).wasmによりシリアルキーが発行される →コンテンツAをダウンロード →(2).wasmに従い、コンテンツAを復号化 これが可能ならば従来のデータサーバと決済プラットフォームの集中型BtoCではなく (1).wasmと(2).wasmと購入→発行.wasmを配布するコストだけなので、 決済もデータサーバも場所にこだわらないCtoCが可能なのではと思いました (もちろんBtoCかつ、データだけ別というのもあり) もちろんこのままだとコンテンツA以外のどのコンテンツ(BCDE、、、)も同じシリアルキーで閲覧できてしまうので 今はパス付きzipみたいなものとの差別化、程度です もっと深い解決策は賢い人に任せます (*1)コンテンツ自体は暗号化せず、シリアルキーをログインに必要なデータにしてもよい : Name_Not_Found [sage] 2018/07/24(火) 03:00:24.39ID:??? あと、購入→(1).wasmではなく、購入→認証→(1).wasmです : Name_Not_Found [sage] 2018/07/24(火) 03:54:20.50ID:??? 他人の企画にタダで添削してあげる趣味はないんだけど あえて言うと 原則的にファイルとしての取得をさせずブラウザ上でのみ閲覧/使用等が可能、 ・・・と出来なければ、絵に描いた腐った餅では それをなんとかできないのであれば 「.wasm・シリアルキー・暗号化済み製品コンテンツ、以上3つが揃わないとコンテンツを復号化できない」 という仕組みにする意義がない 既存の方法の改悪に過ぎなくなり、の5段目などは根拠に欠ける論理飛躍となる あと、そんな仕組み想定だとて「ウェブ言語だけでシリアルナンバーとか生成」「シリアルキーを解読できる」は意味不明のまま 説明スキルの欠如なども鑑みると、正直いって企画・設計に携わらないほうが良いと言っておきたい : Name_Not_Found [sage] 2018/07/24(火) 04:26:11.26ID:??? 擁護レスが皆無 : Name_Not_Found [sage] 2018/07/24(火) 04:46:47.64ID:??? > の5段目などは根拠に欠ける論理飛躍となる あれ・・?そうですかね 例えばBtoCサービスによるCtoCの補助サービスな感じで .wasmの生成や配布が企業により保証されていれば、ハードルが低いというか 「うちのサービス使うならこのアプリ使ってね」や 「こちらからユーザに紐付いたコンテンツ別の.wasmを生成してね」 なんかは自然な流れだと思いますね 完全CtoCかつ個人で決済もシリアル発行も、は利用者のリテラシ上ハードルは高そうです ですが、上にも書いたよう.wasm生成・配布サービスが保証されていれば インストールする前に、企業連携でハッシュ値の確認をすればいいだけのような >ウェブ言語だけでシリアルナンバーとか生成 そもそも始まりの、自分の認識が 「WebAssemblyのソースコードって読めちゃうの?」 「逆汗で中で何やってるか丸わかりなの?」 みたいなところから来てるのでとくに深い意味もなく 説明としてはですね 要は、webassembly使えばお手軽にシリアルキー発行できるか否か 程度の話です >シリアルキーを解読 これはよくあるプロダクトキーの照会と捉えていいかもですね ただ、キーを.wasmに投げた後の処理が照会→キーの解析→閲覧などあります コンテンツ売買のくだりも、企画設計を想定しているというか >ってどんな処理を想定してんの という質問が来たので、例えばこういうのできたら面白そうだなと 即席で考えた感じです。もっと単純に言えば 「複数のIDが事前に登録されており、ランダムにechoするだけの.wasm」 これが実行される前に ・バイナリデータから全登録IDを取得できるのだろうか? ・逆アセで全登録IDはバレバレ(丸見え)なのだろうか というが知りたかっただけです : Name_Not_Found [sage] 2018/07/24(火) 04:55:28.73ID:??? 単純な話、 ウェブ上でみんな同じファイル(.wasm)を読み込んでいるのに キー発行のアルゴリズムがバレずに独自キーを発行できる って何かすごい気がする と思っただけというか : Name_Not_Found [sage] 2018/07/24(火) 05:18:24.34ID:??? 今の心境を語るなら、仕様バグに突っ込みを入れたときの、担当者の言い分を聞いている感覚に似ている : Name_Not_Found [sage] 2018/07/24(火) 07:05:47.46ID:??? そうです 自分がやりたいのは英語の置換なので、 英語の活用形と何の繋がりもないのに綴りが同じ名詞がないこともないだろうと。 あと単純に、形態素解析なら、原形に置換するための辞書を用意する必要がないというのもあります 一度で、二度おいしい : Name_Not_Found [sage] 2018/07/24(火) 07:11:45.90ID:??? ということで今週中にお願いします 納期が迫ってるんです : Name_Not_Found [sage] 2018/07/24(火) 08:31:42.95ID:??? while( !answer ){ you.hair.fallOut(); if( xday < (new Date()).now() ) you.die(); } : Name_Not_Found [sage] 2018/07/24(火) 08:58:56.23ID:??? だからやりすますのやめて下さい 納期なんてないです : Name_Not_Found [sage] 2018/07/24(火) 09:32:01.79ID:??? if(you.hair.empty()) : Name_Not_Found [sage] 2018/07/24(火) 12:35:18.76ID:??? 確かにWASMにすればソースコードはわからないけど、 バレたくないのって特許的なアルゴリズムだったり、計算に纏わる各種数値でしょ そのくらいであれば簡単に解析できるよ バイナリとは言えasm.jsを圧縮したようなもんだから、アセンブリとは違って逆コンパイルも単純だし その状態でも確かにメモリアクセスを理解するのはやや煩雑だがロジックは簡単に読める : Name_Not_Found [sage] 2018/07/24(火) 12:53:58.23ID:??? WASM側(jsの方がわかりやすいので) var atari={ 'Z3845fHc':'アマギフコード1', '83F8y838':'アマギフコード2', ・ ・ ・ ]; JavaScript側 //WASM読み込み&ためのコード console.log( instance.exports.atari[id] ); //WASM(ry 例えばこういうのでもWASMのバイナリコードを読み込んだ時点で 事前にアマギフコードが全部バレちゃうってこと? : Name_Not_Found [sage] 2018/07/24(火) 12:57:15.24ID:??? 訂正 atariは}で閉じ : Name_Not_Found [sage] 2018/07/24(火) 13:13:19.76ID:??? WebAssembly Studioみる限りそのままコードをバイナリにしてるぽいので の変換後も普通に突っ込めばできそうなんだが今ちょっと試せない : Name_Not_Found [sage] 2018/07/24(火) 17:28:23.75ID:??? この長文の人ってと同一? 構ってもらえる訳ないだろ : Name_Not_Found [sage] 2018/07/24(火) 17:56:48.27ID:??? 今ちょっと試せないで草 : Name_Not_Found [sage] 2018/07/24(火) 20:31:27.96ID:??? そのままコードを置き換えてるという点では 既存のミニマライザ程度の難読化効果はあるだろうがそこまでだからな その状態でも通信すれば内容は抜けるし どんなに難読化しようと最終的にCanvasに書き出せばそれは簡単に取得できる そしてでっかいABをメモリに見立てて使うと言う点では その1つのABさえ監視しておけば全ての重要なデータがそこに含まれてるのだから ネイティブのゲームなんかのハックでCheat Engine使ってプロセスメモリ解析するようにABを解析するようにすれば、 むしろミニマイズされたコードの流れをデバッガで必死に追いかけていくよりもチートが容易いかもしれない 既存のチート対策のようにメモリ管理を丸ごと自前で構築して 頻繁に割当を移動させるだとか、値をXORしたりする方法はあるかもしれない でもWASMの問題は逆コンパイルが容易でそういうコードもバレやすいし、ランタイムの改ざんも非常にしやすい : Name_Not_Found [sage] 2018/07/24(火) 20:54:41.14ID:??? つまりjavascriptの難読化するやつは悪人ってことですね : Name_Not_Found [sage] 2018/07/24(火) 21:19:13.81ID:??? さらにもうちょい具体的に知りたいです 例えば ttps://webassembly.studio/?f=adur0vruy59 (上タグのBuildでmain.wasm化できます) 入力値をnとすれば instance.exports.main(n); 1を入力したら120 3を入力したら360 10を入力したら1200 という具合に、単にnに120掛けているだけ というのは予測できるが、 nに 2*3*4*5 を掛けているのか、60*2 を掛けているのかetc かどうかは、Build後のmain.wasmからは読み取れない という認識で合っていますでしょうか? : Name_Not_Found [sage] 2018/07/24(火) 21:21:04.42ID:??? 協力会社の人に聞くことにします : Name_Not_Found [sage] 2018/07/24(火) 21:23:19.06ID:??? 強力な協力会社です : Name_Not_Found [sage] 2018/07/24(火) 23:22:50.84ID:??? コンパイル最適化で定数の120にされるのでそれはわからない わからないと言うか実際はただ120をかけてるだけ でもそこが分かっても分からなくても大したこと無いだろうよ : Name_Not_Found [] 2018/07/24(火) 23:37:44.04:wx4nKfcH 今ふと思ったのですが、power shell で.jsファイルを実行することって 可能なんですかね.... ちょっとやってみたら、もちろんprintはできませんでした : Name_Not_Found [sage] 2018/07/24(火) 23:44:40.87ID:??? .pyならpythonコマンドを、.jsならnodeコマンドを呼べば出来るだろ。シェルをなんだと思ってるんだ。 すぐ制御戻ってくるのが嫌ならStart-Process -Wait使え : Name_Not_Found [sage] 2018/07/25(水) 00:11:41.90ID:??? >コンパイル最適化 なるほど ありがとうございました : Name_Not_Found [sage] 2018/07/25(水) 10:13:39.34ID:??? JavaScript Lemmatizer ttps://github.com/takafumir/javascript-lemmatizer このライブラリは英語の動詞や名詞の原形を取得できるものですが ttp://takafumir.github.io/javascript-lemmatizer/html/lemmatizer_sample.html このサンプルページを実行しても、今のchromeだとエラーになって動作しません どうすればいいのでしょうか? : Name_Not_Found [sage] 2018/07/25(水) 12:41:54.47ID:??? 変換テーブルだけ使わせてもらうのもアリかと思いのソースを見てみたのですが、 どういう基準が選ばれたのか分からない、不思議な連語が結構含まれていて、謎みがあります おそらく、元になったライブラリから流用されたものだと思いますが。 それでふと思ったのですが、語を一つ一つ英和辞典で引くことでも、変換テーブルは作成可能ですよね? 英和辞典なら、複数形で引けば単数形が出るし、過去形で引けば現在形が出るはずです コマンドラインで引ける(プログラムから引きやすい)英和辞典はないものでしょうか? : Name_Not_Found [sage] 2018/07/25(水) 12:43:23.16ID:??? 自演臭い : Name_Not_Found [sage] 2018/07/25(水) 13:31:39.30ID:??? そんなどこの馬の骨とも分からんような未メンテ放置のライブラリよりnaturalのstemmer使えよ。 ttps://github.com/NaturalNode/natural : Name_Not_Found [sage] 2018/07/25(水) 13:59:21.77ID:??? 「JavaScript 英語 動詞 原形」とかで検索したら最初に出てくるページですが? ありがとうございます 語幹だけを取り出すプログラムはstemmerっていうんですね そういうキーワードになる術語も知らなかったので助かります : Name_Not_Found [sage] 2018/07/25(水) 14:57:21.24ID:??? IPFSで簡単なサイト作ってみようとして疑問に思ったことがあります ajaxでよくある、クロスドメインの問題です IPFSにjsファイルをアップロードして読み込む場合、 これはブラウザ側で許可する以外に方法はないのでしょうか? : Name_Not_Found [sage] 2018/07/25(水) 15:10:29.40ID:??? ajaxでよくある、クロスドメインの問題です ぐぐりましょう : Name_Not_Found [sage] 2018/07/25(水) 16:16:40.48ID:??? node.jsのnaturalっていうのは、自然言語関係の一般的なアルゴリズムを集めたもので 辞書は含まれていないようですね すべてをアルゴリズム的に処理するので、不規則動詞を原形にしたりは出来ないようです WordNetにアクセスするモジュールもあったので期待したのですが WordNeは意味を中心に語を体系づけたものなので、語の外形についての情報はないっぽいです・・ : Name_Not_Found [sage] 2018/07/25(水) 17:25:53.97ID:??? そうかそりゃすまんかった : Name_Not_Found [sage] 2018/07/25(水) 20:26:13.96ID:??? いえいえ、キーワードを知れただけでも助かりました、ありがとうございます WordNetというキーワードからPDICという辞書ソフトを見つけて それ用の辞書はCSVとして出力可能なので、データソースとして使えるかも?というあたりまできました : Name_Not_Found [sage] 2018/07/25(水) 20:28:11.18ID:??? これなら今週中の納期に間にあうかな? : Name_Not_Found [sage] 2018/07/25(水) 20:34:28.97ID:??? というかwebapiに丸投げとかしちゃいけないの? : Name_Not_Found [sage] 2018/07/25(水) 21:49:37.98ID:??? どうせならTensorFlow.jsでモデル作ろうぜ : Name_Not_Found [sage] 2018/07/25(水) 22:11:01.44ID:??? 不規則動詞を原形にするのにニューラルネット使うなんてミスマッチ過ぎるw はやりに踊らされるディープバカ。 : Name_Not_Found [sage] 2018/07/26(木) 06:38:06.00ID:??? ニューラルネットってWebと相性が良いと思う データの量にかかわらず指定したサイズと計算負荷のモデルを作ることができるし それを蒸留してモバイル向けにサイズと計算負荷が1/5のものを用意するとかも簡単にできる : Name_Not_Found [sage] 2018/07/26(木) 08:36:01.63ID:??? ディープバカwwww : Name_Not_Found [sage] 2018/07/26(木) 14:38:27.64ID:??? JavaScriptの正規表現でgスイッチを使うと グループ化が機能しないことに気づきました console.log("0123ABCD".match(/\d+(\w)/)); =>["0123A", "A"] console.log("0123ABCD".match(/\d+(\w)/g)); =>["0123A"] gスイッチもグループ化、どちらもが配列で返すので、 機能的にバッティングしているのが理由かと思いますが そこは配列の配列を返せばいいだけのような? 違いますか? : Name_Not_Found [sage] 2018/07/26(木) 15:11:24.15ID:??? 法廷ドラマみたいな問い質し方でワロタwwwww : Name_Not_Found [sage] 2018/07/26(木) 17:59:31.42ID:??? console.log("0123AB456CD".match(/\d+(\w)/g)); =>["0123A", "456C"] : Name_Not_Found [sage] 2018/07/26(木) 19:41:58.68ID:??? str = "11A22B33C" reg = /\d+(\w)/g ary = [...Array(str.match(reg).length)].map(_=>reg.exec(str)) // [["11A", "A"], ["22B", "B"], ["33C", "C"]] : Name_Not_Found [sage] 2018/07/26(木) 20:11:46.36ID:??? なぜ2回、matchするんだ? : Name_Not_Found [sage] 2018/07/26(木) 20:34:38.81ID:??? 言う前に先越されたかw そんな、RegExpの挙動をちゃんと知らないと理解できないような 読み解くのに時間がかかるようなコードかかないで 分かりやすくかけよ。だからみたいなレスが来る ary = [...Array(str.match(reg).length)].map(_=>reg.exec(str)) // ...Array 大好き人間かよ。 新しい技を手に入れたらそればっかり使いたくなる癖は直したほうが良いぞ ary = str.match(reg).map(_=>reg.exec(str)); // 短いがこれも分かりづらい。_を捨てて何故動くんだよ?ってなる reg1 = /\d+\w/g reg2 =/\d+(\w)/ ary = str.match(reg1).map(i=>reg2.exec(i)); // 推奨。わざわざ変数に入れなくてもよいが : Name_Not_Found [sage] 2018/07/26(木) 20:37:34.81ID:??? > // 推奨。わざわざ変数に入れなくてもよいが 変数に入れなくて良いのは正規表現ね ary = str.match(/\d+\w/g).map(i=>/\d+(\w)/.exec(i)); ということ : Name_Not_Found [sage] 2018/07/26(木) 20:39:22.88ID:??? var arr = "11ABC22BCD33CDEF".split(/(\d+(\w))/); // arr.shift();arr.pop(); console.log(arr); : Name_Not_Found [sage] 2018/07/26(木) 20:43:23.88ID:??? Ruby なら、 str = "11A22B33C" reg = /\d+(\w)/ str.scan(reg).to_a #=> [["A"], ["B"], ["C"]] : Name_Not_Found [sage] 2018/07/26(木) 20:45:08.53ID:??? 数字消えとるやんw まあ残せとか書いてないけどさ : 560 [sage] 2018/07/26(木) 20:51:23.28ID:??? うーん、でも普通(?)にwhile使えば正規表現処理は1回ですむんだよな これもう少しうまくかけないかな str = "11ABC22BCD33CDEF" var reg = /(\d+(\w))/g; var ary = []; while (a = reg.exec(str)) { ary.push(a); } console.log(ary); : Name_Not_Found [sage] 2018/07/26(木) 21:09:10.20ID:??? それが基本 も無駄が多い : Name_Not_Found [sage] 2018/07/26(木) 21:13:22.78ID:??? え?の無駄って? 言えないなら黙ってろよw : Name_Not_Found [sage] 2018/07/26(木) 21:22:47.40ID:??? IDちゃんと見ろよ。 とは同一人物だ : Name_Not_Found [sage] 2018/07/26(木) 21:29:30.54ID:??? var arr = "11ABC22BCD33CDEF".split(/(\d+(\w))/).filter((_,i)=>(i%3!==0)); console.log(arr); //=>["11A", "A", "22B", "B", "33C", "C"] : Name_Not_Found [sage] 2018/07/26(木) 21:29:46.43ID:??? 同一人物だからいってる 正規表現処理の回数を気にしてるぐらいだし、伝わると思うが : 560 [sage] 2018/07/26(木) 21:35:53.24ID:??? RegExp.exec()がコールバック関数を受け取れば良いのかなー 第二引数に関数が渡されていればmapのような挙動をするとかいう仕様なら 互換性保ちながら拡張できそうだと思った str = "11ABC22BCD33CDEF" var reg = /(\d+(\w))/g; var ary = reg.exec(str, a => a) console.log(ary); 正規表現の処理的には無駄が多いってわかってるからを書いたんだけど? そんな俺が言ったことを復唱するようなレスされてもなーw の本質は、無駄かどうかじゃなくて、分かりやすくかけよって話だから : 559 [sage] 2018/07/26(木) 21:47:25.05ID:??? 知らんがな そう思うなら、で推奨なんて書くなよ >559に絡めて、代弁者にでもなったつもりか : Name_Not_Found [sage] 2018/07/26(木) 22:00:20.09ID:??? > なぜ2回、matchするんだ? matchは二回してないぞw > ary = [...Array(str.match(reg).length)].map(_=>reg.exec(str)) このクソ分かりづらいコードが、クソ分かりづらいことを 証明するために説明してあげる。こんな説明が必要だからクソってことね ボコボコにするからは泣くなよ?w まず [...Array(str.match(reg).length)] と map(_=>reg.exec(str)) に分ける 前半の部分 の [...Array(str.match(reg).length)] は実は str.match(reg) でよい Array(・・・.length) は、「正規表現でマッチした配列」のlengthだけを使い 「正規表現でマッチした配列」と同じサイズの「空の配列」を作るという意味 普通はこんなことせずに、空の配列に変換せずにそのまま正規表現でマッチした配列を使えばよい そして、[...空の配列] は 空の配列をカンマ区切りの引数にして配列に戻している つまり[ary[0], ary[1], ary[2],・・・] と同じ。配列を展開して配列に戻す無意味な処理ってこと 知ったばかりの [...Array]という技を使いたがってるだけというのはこういうこと はい、前半部分で2つ意味不明な処理が入ってましたw : Name_Not_Found [sage] 2018/07/26(木) 22:00:54.30ID:??? 結局前半部分は、なんのために存在するかと言うと、後半部分を正規表現でマッチした数だけ繰り返すため match において reg = /\d+(\w)/g のキャプチャ部分は意味を持たないようだ。 reg = /\d+\w/g と一緒。ついでに後半部分の exec では今度は/gが意味を持たないようだ つまり前半部分は、 /\d+\w/g という意味で使い、 後半部分は /\d+(\w)/ という意味で使っている このような、無視されることで書いたものとは違う解釈がされることを前提にしている。これも分かりづらい点の一つ で、後半部分は、結局 reg.exec(str) を配列でマッチした数だけ繰り返すという意味でしか無い だから _ は不要。regオブジェクトは状態を持っていて、 reg.exec(str) 1回目・・・["11A", "A"] reg.exec(str) 2回目・・・["22B", "B"] reg.exec(str) 3回目・・・["33C", "C"] というふうに異なった値を返す。 このよう挙動はregオブジェクトのexecメソッドは起きる。 先のmatchメソッドは、strのメソッドであることに注意 : Name_Not_Found [sage] 2018/07/26(木) 22:04:36.72ID:??? 関数型風のコードの書き方としては 推奨で問題ない は手続き型風のコード。だからコードが長くなってしまっている。 根本的な解決方法は>571なのだろう : Name_Not_Found [sage] 2018/07/26(木) 22:23:22.04ID:??? 「手続き型だからコードが長くなる」 待遇を取って、 「コードが短ければ手続き型ではない(≒関数型である)」 これはそうとは限らない(アセンブラなど)、つまり偽だから命題は否定された。 : Name_Not_Found [sage] 2018/07/26(木) 22:23:39.78ID:??? 原因はjavascriptのregexpがクソということでok? : Name_Not_Found [sage] 2018/07/26(木) 22:33:02.73ID:??? もともと関数型言語じゃないからな。 最近のトレンドが入ってきてJavaScriptでも mapとかreduceとか使えるようになったけど、 それすらも昔は無かった関数 : Name_Not_Found [sage] 2018/07/26(木) 22:33:45.01ID:??? どうせならこうしようぜ str = "11A22B33C" reg = /\d+(\w)/g ary = str.match(reg).map(_=>reg.exec(str)) // [["11A", "A"], ["22B", "B"], ["33C", "C"]] 圧 倒 的 ス マ ー ト : Name_Not_Found [sage] 2018/07/26(木) 22:37:33.92ID:??? 関数型言語じゃないけど、長い間メインストリーム言語の中で唯一関数型言語である条件のひとつ、関数が第一級オブジェクトである、を満たしている言語だった(過去形) : Name_Not_Found [sage] 2018/07/26(木) 22:37:38.07ID:??? に書いてあるやん > ary = str.match(reg1).map(i=>reg2.exec(i)); : Name_Not_Found [sage] 2018/07/26(木) 22:39:57.35ID:??? そっちはそっちで正規表現オブジェクト2つ使ってて無駄というか 直球回答じゃないそもそも論的なやつじゃん : Name_Not_Found [sage] 2018/07/26(木) 22:44:57.78ID:??? while > 正規表現2回のうち片方省コスト化 > 正規表現2回 ってだけのことだろ そもそも論の直球回答としてはで完全終了してしまう : Name_Not_Found [sage] 2018/07/26(木) 22:51:38.19ID:??? だから論点は無駄かどうかじゃなくてわかりやすいかどうかだって メソッドによって違うように解釈されるような使い方したらいかんよ 知らない人が見たらmatchでキャプチャされた文字部分を繰り返すとか読めてしまうだろ : Name_Not_Found [sage] 2018/07/26(木) 23:28:22.43ID:??? i=>reg2.exec(i)のiって何の略なのかおしえてください : Name_Not_Found [sage] 2018/07/26(木) 23:31:43.78ID:??? インデックス(index)です : Name_Not_Found [sage] 2018/07/26(木) 23:36:40.38ID:??? 要素、要素のインデックス、回してる配列の順なのに要素の名前にiを使うというセンスの無さが光る。 jQueryのと混乱してるのだろうか? : Name_Not_Found [sage] 2018/07/27(金) 00:37:13.02ID:??? イテレーター : Name_Not_Found [] 2018/07/27(金) 01:14:44.84:a94F3qFI コンストラクタに入れ子にしたメソッドを示すにはどのようにすれば良いですか? どうやらthis.はコンストラクタを示してしまい、メソッド自身を示せない様です : Name_Not_Found [sage] 2018/07/27(金) 02:14:14.59ID:??? iと同じくjもよく使われてますがこのjはなんですか? : Name_Not_Found [sage] 2018/07/27(金) 02:16:46.36ID:??? 残念 イテレーター(iterator)だね : Name_Not_Found [sage] 2018/07/27(金) 02:17:46.70ID:??? 単に、i, j, k と、アルファベット順 : Name_Not_Found [sage] 2018/07/27(金) 02:30:38.31ID:??? ttps://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/String/replace string のreplace には、コールバック関数を渡せる。 match には渡せないけど : Name_Not_Found [sage] 2018/07/27(金) 06:18:22.10ID:??? ここまで matchAll 無し [..."11A22B33C".matchAll(/\d+(\w)/g)] // [["11A", "A"], ["22B", "B"], ["33C", "C"]] : Name_Not_Found [sage] 2018/07/27(金) 06:27:28.83ID:??? phpではphp4の時代からpreg_match_allが使えたのにね : Name_Not_Found [sage] 2018/07/27(金) 06:52:14.30ID:??? matchAllって何なのかと思ったらまだStage3か でももう一つステージが上がったら以後はこれのポリフィルを使うでFAだな : Name_Not_Found [sage] 2018/07/27(金) 07:18:17.87ID:??? また読み込むJavaScriptファイルが増えるのか : Name_Not_Found [sage] 2018/07/27(金) 09:19:26.93ID:??? やったね : Name_Not_Found [] 2018/07/27(金) 12:33:44.69:sDvYZF1o JavaScriptをはじめて触ろうとしている初心者で右も左もわからず途方に暮れております。 どうかググり方のヒントだけでもよろしくお願いします。 【環境】 windows7 / firefox62 【条件】 ページ内に特定の文字列が存在する場合にimacrosを起動させたい ttps://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q14140898114 【何をしたいのか】ページ内に「陽性反応」の文字列が存在する場合に、「iimPlay("#Current1");」というコマンドでimacrosを起動させたい 【期待する結果】・ページ内に「陽性反応」の文字列が存在する場合に<input type="button">を押して次のページへ進む ・ページ内に「陽性反応」の文字列が存在しない場合には「何もしない」 : Name_Not_Found [sage] 2018/07/27(金) 12:44:57.83ID:??? 最低でも99$か・・・ : Name_Not_Found [sage] 2018/07/27(金) 14:10:16.80ID:??? こういうことではなく? class Hoge { constructor(){ this._fuga1 = function(){ console.log('_fuga1') }; } fuga(){ console.log('fuga') } } hoge=new Hoge(); hoge.fuga(); // fuga hoge._fuga1(); // _fuga1 : Name_Not_Found [sage] 2018/07/27(金) 14:25:32.56ID:??? ほげー ふがー : Name_Not_Found [sage] 2018/07/27(金) 14:47:55.62ID:??? フランケン ざますー ざますー : Name_Not_Found [sage] 2018/07/27(金) 15:02:11.00ID:??? 怪物くんかよオッサン過ぎるだろ : Name_Not_Found [sage] 2018/07/27(金) 15:45:36.27ID:??? 香取慎吾主演ドラマ 2010年だよ おっさんじゃねーよ みてねーけどな : Name_Not_Found [sage] 2018/07/27(金) 17:54:47.47ID:??? コードを作ってくださいなのか 自分でやりたいので出来るための道筋たててくださいなのか どっち? 基礎からやればすぐ出来るレベルの話なんだけど : Name_Not_Found [sage] 2018/07/27(金) 18:09:07.05ID:??? お箸を持つ方が左で、お茶碗を持つ方も左です。 : Name_Not_Found [sage] 2018/07/27(金) 19:02:17.19ID:??? お箸を持つほうが右で コップを持つほうが左 ナイフは右で、フォークは左 スプーンは状況に応じて右だったり左だったり : Name_Not_Found [sage] 2018/07/27(金) 19:10:01.29ID:??? イタリア人は(スプーン使わず)フォーク1本でスパゲッティ食うが、その時はほとんどの人が普通に右で持ってたはず。 : Name_Not_Found [sage] 2018/07/27(金) 19:20:33.03ID:??? 鉛筆は右で、消しゴムは左 電卓は左で、テンキーは右 : Name_Not_Found [sage] 2018/07/27(金) 19:34:37.81ID:??? マウスは右で、左手はちん : Name_Not_Found [sage] 2018/07/27(金) 20:46:05.85ID:??? XPath, text() ttps://developer.mozilla.org/ja/docs/Web/API/document/evaluate : Name_Not_Found [sage] 2018/07/28(土) 00:29:58.66ID:??? >【何をしたいのか】ページ内に「陽性反応」の文字列が存在する場合に、 >「iimPlay("#Current1");」というコマンドでimacrosを起動させたい ページ内という表現があいまい。 F12 開発者ツールを起動して、XPath, CSS セレクターで、どの要素か特定する <div id="abc">陽性反応あり</div> id は、# で指定できるから、jQuery なら、#abc jQuery のCSS セレクターを勉強すれば? : Name_Not_Found [] 2018/07/28(土) 01:17:07.29:VfG+xZou 100 : Name_Not_Found [sage] 2018/07/28(土) 01:51:20.21ID:??? var resAry = []; function replacer(match, p1) { resAry.push(p1); }; var oldStr = "11A22B33C"; var reg = /\d+(\w)/g; // 第2引数は、コールバック関数 oldStr.replace(reg, replacer); console.log(resAry); // ["A", "B", "C"] : Name_Not_Found [sage] 2018/07/28(土) 08:29:21.48ID:??? 数値の後に続く英字だけが欲しいならこう書けるよ "111A222B333C".match(/(?<=\d+)[A-z]/g); // ["A", "B", "C"] : Name_Not_Found [sage] 2018/07/28(土) 09:00:55.34ID:??? とりあえず、それだとちょっとだけ記号が引っかかっちゃったりしないか [a-zA-Z]ではなく[A-z]だとASCII表的に [ ] \ とかが : Name_Not_Found [sage] 2018/07/28(土) 09:27:25.75ID:??? 元の\d+(\w)も「123」とかにもマッチしちゃうし細かいことはいいんじゃない? 実際は条件が限定されてるだろうしそれに合うように適当に書けばいいと思うよ : Name_Not_Found [sage] 2018/07/28(土) 10:04:14.18ID:??? 言われてみりゃ確かに : Name_Not_Found [sage] 2018/07/28(土) 13:28:14.83ID:??? そうそう。細かい仕様は言ってないので、 そこを変えてあれこれいっても意味ない ただ出されたコードに明らかに無意味なことをしてる 分かりづらいコードがあったから それを指摘しただけ() : Name_Not_Found [sage] 2018/07/28(土) 13:30:03.36ID:??? そうかよくやった!君は偉いねぇ : Name_Not_Found [sage] 2018/07/28(土) 13:38:05.81ID:??? 偉いつもりはないが、そう見えたならそうなんだろう : Name_Not_Found [sage] 2018/07/28(土) 14:09:44.62ID:??? javascriptで後読み言明って使えるん? 手元のfirefoxとchromeでは使えなかった : Name_Not_Found [sage] 2018/07/28(土) 14:18:07.92ID:??? こんにちは、諸葛孔明です。 : Name_Not_Found [sage] 2018/07/28(土) 14:21:14.53ID:??? カエレ : Name_Not_Found [sage] 2018/07/28(土) 15:07:04.13ID:??? Chromeでは62から使えるらしい ttps://www.chromestatus.com/feature/5668726032564224 ES2018 ttps://github.com/rwaldron/tc39-notes/blob/master/es8/2018-01/jan-23.md#conclusionresolution-16 : Name_Not_Found [sage] 2018/07/28(土) 15:29:38.49ID:??? カエザル : Name_Not_Found [sage] 2018/07/28(土) 15:30:19.34ID:??? 先にある文字があるかどうかなのになぜ先読みではなく後読みになるの?おかしくない? : Name_Not_Found [sage] 2018/07/28(土) 15:31:29.37ID:??? あいう いの前にあがあるよね。そして いの後にうがある。おかしい! : Name_Not_Found [sage] 2018/07/28(土) 16:01:47.02ID:??? (?<=\d+) なら数値の後ろの位置にマッチする 後ろを見る→lookbehind→後読み 「後読み」ではなく「後ろ見」と覚えると良い : Name_Not_Found [sage] 2018/07/28(土) 20:17:19.45ID:??? lookbehindそのままが一番勘違いしないわこれで覚えます : Name_Not_Found [sage] 2018/07/28(土) 23:35:26.12ID:??? str="りんご03の値段は、100円です。"; 100円の数値部分だけreplaceするとき、 円まで上書きせずに正規表現するにはどうしたらよいのでしょうか? (?<=...)この表記の直後版みたいな感じです \d+(?<=円)とかやってみましたがうまくいきません : Name_Not_Found [sage] 2018/07/28(土) 23:59:07.07ID:??? str.replace(/\d+(?=円)/,'20') //"りんご03の値段は、20円です。" : Name_Not_Found [sage] 2018/07/29(日) 00:00:23.72ID:??? もしくはこう str.replace(/\d+(円)/,'20$1') //"りんご03の値段は、20円です。" : Name_Not_Found [sage] 2018/07/29(日) 00:04:35.37ID:??? そうです! をみたいにしたかったんです! ありがとうございます すっきりしました : Name_Not_Found [sage] 2018/07/29(日) 00:54:51.57ID:??? var oldStr = "りんご03の値段は、100円です。"; var reg = /(\d+)円/; // 第2引数は、コールバック関数 var newStr = oldStr.replace(reg, "50円"); console.log(newStr); // りんご03の値段は、50円です。 : Name_Not_Found [] 2018/07/29(日) 01:36:13.95:0NVc570g そこまでするなら、そもそもりんごの値段変更のためのプログラムだから 古い値段の広告 新しい値段の広告=古い値段の広告.置換(値段変更のためのルール,"50") console.log(新しい値段の広告) とかの方がわかりやすくない? 具体的な変数名はまったく思いつかないけど : Name_Not_Found [sage] 2018/07/29(日) 02:27:56.88ID:??? 連続してajaxで画面内用かえたいんだけど2回目以降どうしたらいいの? <div id="ajax"> <script> var onsubmit = () => { var xhr = new XMLHttpRequest(); // data xhr.send(dta); xhr.onreadystatechange = () => { if( xhr.status == 200 ) { getElementById("#ajax").innerHTML=xhr.responseText; } } return false; } </script> <form onsubmit="onsubmit()"> //入力 </form> </div> みたいな内容を毎回サーバーから返しても formの部分は変化するけどJSの部分は認識されない JSの内容も動的にかえるって無理なのかな 必要な処理は最初に全部定義しておかないとダメなのかな : Name_Not_Found [sage] 2018/07/29(日) 02:44:32.18ID:??? .innerHTML=xhr.responseTextのところで、<script>うんたら</script>みたいなのも返ってきて実行したいってこと? : Name_Not_Found [sage] 2018/07/29(日) 05:41:58.32ID:??? hoverとマウスオーバーは同じ意味と考えていいですか? : Name_Not_Found [sage] 2018/07/29(日) 08:00:50.59ID:??? no : Name_Not_Found [sage] 2018/07/29(日) 08:30:39.51ID:??? 具体的にどこが違うんですか? : Name_Not_Found [sage] 2018/07/29(日) 09:55:50.73ID:??? そうです!!! : Name_Not_Found [sage] 2018/07/29(日) 10:53:03.95ID:??? > JSの内容も動的にかえるって無理なのかな 無理ではないが、良くないやり方。 JSの内容は静的に最初にページを表示させた時に すべて読み込んでおく : Name_Not_Found [sage] 2018/07/29(日) 11:01:38.36ID:??? どうしても動的にスクリプトを読み込みたければ 一番マシなのはimport()メタ関数を使うことだな : Name_Not_Found [sage] 2018/07/29(日) 11:04:06.82ID:??? の質問に答えられる人はここにはいないのでしょうか? : Name_Not_Found [sage] 2018/07/29(日) 11:44:22.80ID:??? hoverは擬似クラスだからマウスが継続して乗っかり中であるという状態区分を表しているが mouseoverはマウスが乗ったという瞬間のイベントという違いがある : Name_Not_Found [sage] 2018/07/29(日) 11:46:49.87ID:??? なるほど 分かりやすい説明ありがとうございました : Name_Not_Found [sage] 2018/07/29(日) 12:53:11.02ID:??? JavaScript にあるかどうか知らないけど、他の言語では、 eval でソースコード文字列を、そのまま実行できる ただし、他人の文字列を実行するのは、危険! : Name_Not_Found [sage] 2018/07/29(日) 12:55:20.19ID:??? そもそも、ajax は、jQuery を使ってよ 素のJavaScript は、可読性が低い : Name_Not_Found [sage] 2018/07/29(日) 13:01:52.16ID:??? >素のJavaScript は、可読性が低い jQuery慣れしてるだけ 他言語から初めてJavaScriptきた人間ならそうは思わない : Name_Not_Found [sage] 2018/07/29(日) 13:15:50.99ID:??? jQuery覚えるの面倒くさい 本職はバックエンドだし あまり色々覚えるの嫌なんだわ : Name_Not_Found [sage] 2018/07/29(日) 13:17:37.44ID:??? 内容以前に書き方がくっさい : Name_Not_Found [sage] 2018/07/29(日) 13:19:27.68ID:??? jQueryは害悪でしかない 百害あって一利なし 触れない方がいい : Name_Not_Found [sage] 2018/07/29(日) 13:26:03.48ID:??? jQueryは多言語から来た人には分かりにくいんだろうね ウェブのフロントバッチリやって来た人なら有用性は自明なんだけども 俺は教育的配慮から他言語から来た人にはjQuery使わないと死ぬような案件をワザと降っている そうでないと覚えてくれないからね : Name_Not_Found [sage] 2018/07/29(日) 13:36:09.41ID:??? $.ajax(selector).on('click', req).done().fail().always() 何このマヌケなコード if elif else関係をif if ifでやってんのか : Name_Not_Found [sage] 2018/07/29(日) 13:56:36.29ID:??? ちゃんとルビふらなきゃ いやがらせ 教育的配慮 : Name_Not_Found [sage] 2018/07/29(日) 14:05:04.33ID:??? 要素数が10万のハッシュをJavaScriptに持たせても、 性能的に問題ないでしょうか? (通信速度は別として) : Name_Not_Found [sage] 2018/07/29(日) 14:11:11.31ID:??? >jq使わないと死ぬ案件 それ「ゼロから設計し直して書き直したほうが早い」案件では : Name_Not_Found [sage] 2018/07/29(日) 14:12:28.31ID:??? 私大文系が偉そうに教育的配慮www ヴァ〜カ! : Name_Not_Found [sage] 2018/07/29(日) 14:17:05.51ID:??? そろそろfetch使おうぜ : Name_Not_Found [sage] 2018/07/29(日) 14:26:29.91ID:??? フロント1ページ作るのに設計? : Name_Not_Found [sage] 2018/07/29(日) 14:27:38.82ID:??? $.ajax(selector).on('click', req).done().fail().always() 何このマヌケなコード if elif else関係をif if ifでやってんのか 形を変えてelse使うヴァカ 何も考えてない屑の証拠 : Name_Not_Found [sage] 2018/07/29(日) 14:28:43.23ID:??? jQuery使わないと死ぬような案件って、超絶しょっぼい案件ってことなの? : Name_Not_Found [sage] 2018/07/29(日) 14:28:57.76ID:??? ,645,649 基本的にはできないんですね bookmarkletみたいにクリック先のJSを毎回実行するみたいなイメージ想像してたけど… ありがとうございました jQueryって何ができるんですか? ちょっと前は jQuery じゃないとできないことがおおかったけど 今 pure JS でもわりといろいろサポートされてて 書き方が違うだけでできることほとんどかわらなくなったから覚えなくていいっていわれたんですけど : Name_Not_Found [sage] 2018/07/29(日) 14:30:20.13ID:??? どんな案件でも設計は重要 似非PGには理解できないだろうが : Name_Not_Found [sage] 2018/07/29(日) 14:32:07.58ID:??? 荒らしてる奴、マー版から出てくるな >ヴァカに混じってJSをやる事になったのだが >Angularのドキュメント書いた奴氏ねよ > >私大文系が格好付けてワザと分かりにくく書いてるだろ >何言ってるのかさっぱりだわ > >ヴァカに文章かかせるなよ Angularの説明文も理解できない低知能が何言ってるのか。 : Name_Not_Found [sage] 2018/07/29(日) 14:32:51.08ID:??? マー板ってなに : Name_Not_Found [sage] 2018/07/29(日) 14:34:08.06ID:??? プログラマー版 : Name_Not_Found [sage] 2018/07/29(日) 14:34:33.26ID:??? 「マ板」なら知ってるけど : Name_Not_Found [sage] 2018/07/29(日) 14:35:35.62ID:??? 司法試験に一発且つ首席で合格するのと10歳でフィールズ賞を受賞するのはどっちの方が凄いですか? : Name_Not_Found [sage] 2018/07/29(日) 14:36:50.25ID:??? 十で神童十五で才子二十過ぎればただの人 : Name_Not_Found [sage] 2018/07/29(日) 14:37:02.04ID:??? プログラマー版にはライブラリーをライプラリーと書いたヴァカもいたよな : Name_Not_Found [sage] 2018/07/29(日) 14:37:29.66ID:??? よう!私大文系ww : Name_Not_Found [sage] 2018/07/29(日) 14:37:40.84ID:??? プロプライエタリと混ざったんじゃねーの(適当) : Name_Not_Found [sage] 2018/07/29(日) 14:38:37.02ID:??? プログラマー版はaccessだのvbだの屑の巣窟 アホだらけだよ : Name_Not_Found [sage] 2018/07/29(日) 14:39:51.87ID:??? 平均的な囲碁棋士と平均的なプリンストン大生はどっちの方が賢いですか? : Name_Not_Found [sage] 2018/07/29(日) 14:42:11.05ID:??? ヴァカ沈黙www 勝利 : Name_Not_Found [sage] 2018/07/29(日) 14:46:21.22ID:??? こちらはJS如きで労力使いたくねーんだよ jQuery覚えろ? まっぴらごめんだわ : Name_Not_Found [sage] 2018/07/29(日) 14:58:02.39ID:??? jQueryは害悪でしかない 百害あって一利なし 触れない方がいい 触れるとヴァカになる : Name_Not_Found [sage] 2018/07/29(日) 15:10:23.13ID:??? >>jq使わないと死ぬ案件 > >それ「ゼロから設計し直して書き直したほうが早い」案件では 普段何やってんの? 俺はreactだけど、jqは認めてるぞ ゼロから設計ってなんだそりゃ? : Name_Not_Found [sage] 2018/07/29(日) 15:12:07.25ID:??? プログラムをちょっと齧っただけの知識でドヤ顔してるニートが多いから頓珍漢なレスばかりになる : Name_Not_Found [sage] 2018/07/29(日) 15:37:34.14ID:??? いや俺がreactだ : Name_Not_Found [sage] 2018/07/29(日) 16:20:23.17ID:??? > jQuery覚えるの面倒くさい 覚えるの面倒くさい VS 長いコード書くの面倒くさい 俺は後者だな。自分で書いたらその分テストをしなきゃいかん : Name_Not_Found [sage] 2018/07/29(日) 16:21:18.30ID:??? > 俺はreactだけど、jqは認めてるぞ jQuery覚えるの面倒くさいなら、 Reactも覚えるの面倒くさいってことだよ 自分でガシガシ書く面倒くささを取るってさ(笑) : Name_Not_Found [sage] 2018/07/29(日) 16:24:28.99ID:??? > $.ajax(selector).on('click', req).done().fail().always() > 何このマヌケなコード > if elif else関係をif if ifでやってんのか ただのPromiseの書き方の親戚じゃん promise.then().catch().finally() これがわからないってことはjQueryがわからないんじゃなくて JavaScriptも知らない。ただの初心者ってことだろ : Name_Not_Found [sage] 2018/07/29(日) 16:45:07.37ID:??? jqueryも使えない爺さんワロタw ネット使えるなら初見でも余裕なのに : Name_Not_Found [sage] 2018/07/29(日) 17:09:29.07ID:??? jQuery のソースコードは、1万行! 無数のデバイスに対して、何十箇所もパッチを当てている。 これを人力でやるのは無理。 単純に、10個のデバイスに対応するだけでも、無理 もし、jQueryを使わなかったら、色々なデバイスで誤動作する : Name_Not_Found [sage] 2018/07/29(日) 17:26:01.68ID:??? そういうデバイスは動かないで自然淘汰されていけばいいと思うよ : Name_Not_Found [sage] 2018/07/29(日) 17:27:20.15ID:??? 全てのサイトを動かなくするのは不可能だろw ほとんどのサイトは見れるのだから淘汰されない。 ただお前のサイトだけ見れないって判断されるだけ : Name_Not_Found [sage] 2018/07/29(日) 17:28:09.36ID:??? YouTubeぐらい影響力があるサイトなら 見れないから新しいのに買い替えとかあるかもしれんがね(笑) : Name_Not_Found [sage] 2018/07/29(日) 17:28:20.74ID:??? 古いブラウザーは切り捨てろよ ヴァカ : Name_Not_Found [sage] 2018/07/29(日) 17:33:55.59ID:??? Androidスマホを買い換えろとでも言う気か? : Name_Not_Found [sage] 2018/07/29(日) 17:35:21.47ID:??? 売り上げ何百億のサイトだとシェア率1パーセントのブラウザー切っただけで数億円の損失なんだけど? お前代わりに払ってくれるのか : Name_Not_Found [sage] 2018/07/29(日) 17:42:46.29ID:??? 一番簡単な考え方として、非モダンブラウザはJS無効組の扱いにすればいいだけだと思うけどな 1万行くらいのコード良く外様ライブラリ使わずに書くけど Chrome向けだけで書いててFirefoxとか別のモダンブラウザでいきなり試しても 1箇所手を加えるくらいで完璧に問題なく動くよ というかどういうところで非互換性が問題になるのかが良く分からない モダンブラウザ間でDOMの基本的な操作のAPIに非互換性は無いはずだ 多分CSSやら色々適応したり見た目に凝ってるところなんだろうけど 自分はそういうところは躊躇なくCanvasを使ってる Canvas APIの表示互換性はテキスト周りを除いて極めて高い ただ粒度が大きいから、Houdiniが普及したらPaint APIとかでやりたいね : Name_Not_Found [sage] 2018/07/29(日) 17:48:29.54ID:??? サポートを切ったところでそのサイトにアクセスできなくなったり 画面が真っ黒になったりするわけではあるまい 大げさだよ でも最近大手サイトがTLS1.0や1.1のサポートやめたじゃん そういうのはJSのサポートなんかとは比べにならない 本当の意味で「切った」ってことだけど お金第一ではなく悪いものを排除するってことは ネット社会上大切な技術者の義務だよ : Name_Not_Found [sage] 2018/07/29(日) 17:57:27.75ID:??? 間を取れば良いんじゃない プログレッシブエンハンスメントってやつ JSが無効でも最低限見れるべきだし 老体のPCに乗ってる老体ブラウザに大きなライブラリ載せて 若者と同じリッチな体験をさせようというのにも無理があると思う 何でもポリフィルしたりライブラリで抽象化するのがよいとは思えない それよりも段階的なサポートを提供すべき : Name_Not_Found [sage] 2018/07/29(日) 18:00:00.50ID:??? > 一番簡単な考え方として、非モダンブラウザはJS無効組の扱いにすればいいだけだと思うけどな 非モダンブラウザの判定が大変そうですな(笑) : Name_Not_Found [sage] 2018/07/29(日) 18:00:59.32ID:??? > というかどういうところで非互換性が問題になるのかが良く分からない そりゃそうだろ。一見モダンブラウザに見えて問題なく動くように見えて マイナーな例で問題があるのがバグなんだから。 想定外の挙動なんて、わかるわけないよ : Name_Not_Found [sage] 2018/07/29(日) 18:02:40.05ID:??? > でも最近大手サイトがTLS1.0や1.1のサポートやめたじゃん そうだね。使われなくてって、切っても問題ないと判断してから 切らないといけないよね。 古いスマホを使っている人がいなくなってから切らないと大問題になる : Name_Not_Found [sage] 2018/07/29(日) 18:08:31.91ID:??? そもそもWebで想定内だなんておこがましい お前さんのサイトはAppleWatchの今度のブラウザで見ても想定内な見え方 動作の仕方する自身があるのか そしてそこで問題が出たとき、ライブラリに頼り切ってるお前さんは修正できるのか : Name_Not_Found [sage] 2018/07/29(日) 18:12:32.87ID:??? そこまで互換性に拘るのなら尚更jQueryは良くないと思うな React Native for Webくらいのフレームワークを使うべきだと思う : Name_Not_Found [sage] 2018/07/29(日) 18:13:30.32ID:??? 何をどこまでサポートしてコストを払うかのサポートポリシーは各自で決めてよ 他人にどうこう言われるもんじゃ無い : Name_Not_Found [sage] 2018/07/29(日) 18:19:24.43ID:??? 自信ないよ?だからjQueryとか使うんじゃん。 : Name_Not_Found [sage] 2018/07/29(日) 18:20:57.64ID:??? 以前jQueryがFirefoxの何バージョンも前の不具合に対応してることを誇らしげに述べてるやつが居たが じゃあお前はそれぞれのブラウザが6週間ごとに更新されてjQueryが対応したら 即座に全てのjQueryを最新版に差し替えてるのかと問いたいわ CDNが更新されるのを待っていたら間に合わないぞ 自分で適当にパッチがあたったところで落として検証しないといけない そこまでして初めて「一見モダンブラウザに見えて問題なく動くように見えてマイナーな例で問題がある」 とやらにライブラリで対応できるということになる : Name_Not_Found [sage] 2018/07/29(日) 18:22:02.96ID:??? でもreact重いじゃん。jQueryよりも重いものを 使わないといけないの嫌だし 結局サポートブラウザ減るんだよね : Name_Not_Found [sage] 2018/07/29(日) 18:25:21.36ID:??? > じゃあお前はそれぞれのブラウザが6週間ごとに更新されてjQueryが対応したら > 即座に全てのjQueryを最新版に差し替えてるのかと問いたいわ いや、jQueryのバージョンが更新されない限り 差し替える必要ないでしょう? 6週間?jQueryは安定してるから(その安定性の高さも重要) 最新版のjQuery 3.3.1がリリースされてから半年たってるよ24週間な : Name_Not_Found [sage] 2018/07/29(日) 18:45:38.81ID:??? 結局の所彼にとってjQueryが対応した範囲がサポートすべき範囲で 彼にとってのサポートとはjQueryを導入することなんでしょ 本当にただそれだけ ブラウザが六週間で更新され新しいデバイスだって無限に生まれてて Webは安定していないのでそういう思考停止は良くないのではというようなことを言われてるのに 平気でjQueryは安定してるからと言う 安定してるのではなく付いてこられていないのに気づいてない : Name_Not_Found [sage] 2018/07/29(日) 18:50:41.95ID:??? 多分住んでる世界が違うんだろ JQがなければ死ぬ案件とか言ってるし 実際そういう案件しか来ない過酷な環境で生きてるとそういう思考になるんだろ : Name_Not_Found [sage] 2018/07/29(日) 18:56:38.24ID:??? アンチjQueryの人って極論多くないか。 本気で言ってんの? 過酷な環境と言えば過酷だが、少なくとも業界の超大手で人から笑われるような会社じゃないつもりだ。 : Name_Not_Found [sage] 2018/07/29(日) 19:00:54.63ID:??? 大手ほどヴァカが多いんだよ。 私大文系でプログラム書けない奴がPMやら何やら名乗って高い給与とって、手を動かす現場の人間はみな腐っているのさ。 ジャップランドのITはみんなそう。 大手=無能。学歴主義のヴァカの集団。 : Name_Not_Found [sage] 2018/07/29(日) 19:03:08.53ID:??? ふーん。あなたは普段どんな仕事やってんの? : Name_Not_Found [sage] 2018/07/29(日) 19:06:32.66ID:??? > 結局の所彼にとってjQueryが対応した範囲がサポートすべき範囲で それ以上対応したければ、その部分だけ対応するコードを書けばいいだけでは? > ブラウザが六週間で更新され新しいデバイスだって無限に生まれてて > Webは安定していないのでそういう思考停止は良くないのではというようなことを言われてるのに なんか勘違いしてないか? jQueryの差し替えの話だっただろ 新しいバージョンが出てないんだから、jQueryは差し替えなくていい。 そしてなに?お前、ブラウザが六週間で更新され新しいデバイスだって無限に生まれてるから、 それに対応するために、頑張ってるの?言ってることめちゃくちゃじゃない? jQueryを差し替えるてるのか?と頑張ってることに驚く一方で 自分で新しいブラウザとデバイスに対応するのに頑張ることは普通なんだろ? どうみてもお前のほうが頑張ってるんだが > 即座に全てのjQueryを最新版に差し替えてるのかと問いたいわ なんで、差し替えてるのかと問いたくなってんだ? 頑張ることが良いことなのか良くないことなのか、はっきりしろよw 行きあたりばったりで、いちゃもんつけるよやめなよ。 : Name_Not_Found [sage] 2018/07/29(日) 19:08:56.37ID:??? ただのニートに一票 jQuery使うなんて要件から間違ってて作り直しなんて言っちゃう君なんだから まともに仕事なんてしてないだろうな : Name_Not_Found [sage] 2018/07/29(日) 19:10:29.25ID:??? の件ですが indexeddbを使ったら少なくとも全てオブジェクトに入れるよりはメモリの節約になるのでは? と思いました そうでしょうか? : Name_Not_Found [sage] 2018/07/29(日) 19:15:27.44ID:??? 結論から言うと、jQueryを使わなくても、 サポートを切ったはずの古いブラウザでも 動いちゃうかもしれないんだよね いつまでも古いブラウザサポートするの?と言われても 動いちゃうものはしょうがない : Name_Not_Found [sage] 2018/07/29(日) 19:16:05.51ID:??? 「jQuery使うなんて、ゼロから設計し直して書き直したほうが早い案件」 これはWeb制作板の名言として後々まで残すべき。 凄いですよ! : Name_Not_Found [sage] 2018/07/29(日) 19:17:25.71ID:??? ヴァ〜カ!!! : Name_Not_Found [sage] 2018/07/29(日) 19:17:53.04ID:??? どんだけ恥さらさせるんだよw : Name_Not_Found [sage] 2018/07/29(日) 19:19:56.78ID:??? 難しくてよくわからない話になってきたけど jQueryなら >> 638 の2回目以降 $(#ajax).html(...) ってうごくの? : Name_Not_Found [sage] 2018/07/29(日) 19:20:41.44ID:??? 立てた 後々まで残しましょう 馬鹿 「jQuery使う?設計し直したほうが早い案件」 ttps://mevius.5ch.net/test/read.cgi/hp/1532859593/ : Name_Not_Found [sage] 2018/07/29(日) 19:21:00.58ID:??? thx : Name_Not_Found [sage] 2018/07/29(日) 19:22:19.71ID:??? jq便利じゃん 使えるものは使って如何に時間、労力を減らすかも能力の内でしょ いろんな派閥あるし今までどんな教育者に当たってきたかにもよるから別にjq否定派がいることに驚かないけど 否定してる人の数倍使ってる人がいるから更新され続けてるのが現状なんじゃないか : Name_Not_Found [] 2018/07/29(日) 19:33:51.63:BwzzkSUT jquery使うなって言われてるのは フレームワーク使った時に直接DOMをいじったら整合性が取れなくなるからで jqueyで操作しようが直接DOMをいじろうが同じことなので jqueryは本質的な問題じゃないですよね? しょうもない話を延々続けてる人達は何なんですか?? : Name_Not_Found [sage] 2018/07/29(日) 19:37:06.44ID:??? ttps://w3techs.com/technologies/history_overview/javascript_library ttps://w3techs.com/technologies/history_overview/javascript_library/all 2015年ごろに脱jQuery、古い、オワコン、有害などと一部で話題になったが 2018年7月のw3techsの統計によるとJavaScriptライブラリを使用しているサイトが 前年より0.9%増加し、97.1%になったことが判明した。 またウェブ全体のjQueryのシェアは前年から0.6%伸び73.3%となり JavaScriptを使用してないサイトは0.1%へって24.4%となった。 jQueryに次いでBootstrapの17.7%、Modernizrの11.5%と続いている。 jQueryの代替になると噂される、Angularは0.4%、Reactは0.1%と jQueryに大幅な差をつけられている状態である。 👀 Rock54: Caution(BBR-MD5:1341adc37120578f18dba9451e6c8c3b) : Name_Not_Found [sage] 2018/07/29(日) 19:38:30.92ID:??? > しょうもない話を延々続けてる人達は何なんですか?? 流行りで何も考えずにjQueryディスってしまって後に引けなくなった人達 : Name_Not_Found [sage] 2018/07/29(日) 19:39:18.48ID:??? その通りだよね。 『SPAの時はDOMの直接操作やめましょう。つまりjQuery使うと便利に出来るようなヤツ』ということに過ぎないのに、何故かjQueryは害悪みたいに言い出してる。 ネイティヴのJSでもDOMの直接操作したらjQueryと同じ。 SPAのコンセプトを誤解してるだけじゃないのかなぁ。 : Name_Not_Found [sage] 2018/07/29(日) 19:48:24.66ID:??? angular理解出来ない人が 流行にのってjQuery否定だけをしてるんかな 偉そうなこと言うなら、ちゃんと勉強してから来いよ : Name_Not_Found [sage] 2018/07/29(日) 21:19:26.08ID:??? jQueryの役目はquerySelectorが入った時点で終わってる : Name_Not_Found [sage] 2018/07/29(日) 21:20:45.39ID:??? 旧環境を切らず旧環境のサポートは考えても javascript:OFFにしているユーザは切るの? セキュリティ等の理由でOFFにしている人は 新旧環境に関わらず一定数いるけど : Name_Not_Found [sage] 2018/07/29(日) 21:41:26.77ID:??? if elif elseとcatch finallyを一緒にする阿呆 .done().fail().always()のうちalwaysはfinallyに相当するからまあいいとしよう というかそのツッコミしてくる阿呆は絶対いるだろうなと思った : Name_Not_Found [sage] 2018/07/29(日) 22:23:35.21ID:??? いや、jQueryの実行速度はquerySelectorが入ることで さらに速くなったというべきだろ。パフォーマンスアップ。鬼に金棒 jQueryはセレクタエンジンが素晴らしいのではなくて、 セレクタに"処理を適用できること"が素晴らしいんだよ : Name_Not_Found [sage] 2018/07/29(日) 22:25:29.73ID:??? そもそも、ajaxのdone,fail,alwaysは if elif else ではないというツッコミを使用か? done,fail,always は then,catch,finallyと同等 違うのは、if elif else : Name_Not_Found [sage] 2018/07/29(日) 22:30:37.69ID:??? 俺も今ではNodeListで十分な印象だな : Name_Not_Found [sage] 2018/07/29(日) 22:38:06.29ID:??? でもこの先ExtensibleWebが進んでHoudiniとかバンバン使った ブラウザを低レベルから仕切り直したフレームワークがでてくると 結局FlashやSilverlight使ってた時代と対して変わらなくなるのでは? : Name_Not_Found [sage] 2018/07/29(日) 22:39:21.77ID:??? ただしNodeListは罠があるので注意という落ちw ブラウザによって使える書き方が違うから気をつけろ : Name_Not_Found [sage] 2018/07/29(日) 22:41:00.37ID:??? Array.fromっていつからサポートされてるんだっけ? スマホとか大丈夫? NodeListをどう使うのが多くのブラウザに 対応できるのかわからないよ : Name_Not_Found [sage] 2018/07/29(日) 22:41:37.00ID:??? NodeListのforEachって全部のブラウザで使えるんだっけ? : Name_Not_Found [sage] 2018/07/29(日) 22:42:19.02ID:??? NodeListはmapが無いからなぁ : Name_Not_Found [sage] 2018/07/29(日) 22:44:29.54ID:??? これが一番安全なのでは? Array.prototype.slice.call(document.querySelectorAll("a")).forEach( function(e){ console.log(e.href)}) : Name_Not_Found [sage] 2018/07/29(日) 22:45:44.90ID:??? NodeListは ES6の for of で回せるけどFirefoxでしか使えなかったんだっけ? : Name_Not_Found [sage] 2018/07/29(日) 22:47:29.59ID:??? 全てのa要素を赤にする書き方 $('a').css({color: 'red'}) VS Array.prototype.slice.call(document.querySelectorAll("a")).forEach( function(e){ e.style.color = 'red'}) : Name_Not_Found [sage] 2018/07/29(日) 22:49:25.01ID:??? Chromeでも回せる : Name_Not_Found [sage] 2018/07/29(日) 22:49:58.66ID:??? え? Androidスマホで動かなかった記憶があるけど? : Name_Not_Found [sage] 2018/07/29(日) 22:51:04.49ID:??? よくこの例みるけど全てのa要素を赤にするとか使いどころ無さすぎ 任意のタイミングでstyle変えたい要素に専用classつけとけばいいんじゃないの : Name_Not_Found [sage] 2018/07/29(日) 22:51:21.90ID:??? いつから動くようになったんだっけ? 確認するの面倒くさいな : Name_Not_Found [sage] 2018/07/29(日) 22:52:02.96ID:??? はい、どうぞ $('a').addClass('hoge') : Name_Not_Found [sage] 2018/07/29(日) 22:52:13.66ID:??? Silverlight使ってた時代は俺には無かったわ : Name_Not_Found [sage] 2018/07/29(日) 22:53:30.20ID:??? サンドイッチが欲しいと言われてパン関係食品全部持ってくるやつ : Name_Not_Found [sage] 2018/07/29(日) 22:53:54.49ID:??? flashってなんで消えたんだっけ : Name_Not_Found [sage] 2018/07/29(日) 22:55:06.13ID:??? なぜAndroidが出てくるんだよ @@iteratorを拡張したら? : Name_Not_Found [sage] 2018/07/29(日) 22:55:14.78ID:??? お前はサンドイッチだけで生きてるのか? 実際の開発ではもっといろいろ使うだろうって話だ : Name_Not_Found [sage] 2018/07/29(日) 22:56:08.39ID:??? > なぜAndroidが出てくるんだよ Androidスマホにもテレビにもブラウザは搭載されてるんだよ。 NodeListにいろんな書き方が割るのがわかったが、 ちゃんと動くことを確認しないといけない。 そうしないとサポートできるのかどうかもわからないだろ : Name_Not_Found [sage] 2018/07/29(日) 22:57:00.74ID:??? 結局動かなくても構わないって思ってるやつが NodeList使うんだろうな : Name_Not_Found [sage] 2018/07/29(日) 22:57:52.76ID:??? NodeListをそのまま使うから冗長になる ラップすればいいだけ。 ラップして便利にしたものがjQueryだ : Name_Not_Found [sage] 2018/07/29(日) 22:59:32.42ID:??? forEachにもいえるけど、Arrayのそれを流用すれば、Polyfillを簡単に書けるじゃない : Name_Not_Found [sage] 2018/07/29(日) 23:00:31.70ID:??? 車輪の再発明? : Name_Not_Found [sage] 2018/07/29(日) 23:05:10.36ID:??? それぞれのサポートポリシーが違うところで議論したって意味ないよ 自分はモダンブラウザの最新版と考えるよ、そこで動けば十分だよ : Name_Not_Found [sage] 2018/07/29(日) 23:05:41.30ID:??? ただ補助輪が欲しいってとき もう一台自転車を買ってきてデッカイ車輪を付けるか 車輪部分だけ材料買ってきて作って付けるか 俺は後者の方を選ぶけどね : Name_Not_Found [sage] 2018/07/29(日) 23:07:20.27ID:??? 真面目な話IEを切り捨てるのなら最初からjQueryを導入する必要はない モダンブラウザなら普通に書けばあってもちょっとの修正で済むのだから : Name_Not_Found [sage] 2018/07/29(日) 23:07:56.16ID:??? 今乗ってる自転車じゃ進めないときは自転車かついで徒歩でいけばいいじゃない理論 : Name_Not_Found [sage] 2018/07/29(日) 23:09:08.87ID:??? 例えがおかしい。 自分で補助輪作るか、大手メーカーの補助輪使うかの違いでしょ? : Name_Not_Found [sage] 2018/07/29(日) 23:09:58.24ID:??? 障害者に優しくないサイトだっつって訴訟起こされた会社があったな : Name_Not_Found [sage] 2018/07/29(日) 23:10:25.73ID:??? > 真面目な話IEを切り捨てるのなら最初からjQueryを導入する必要はない でもさ、jQuery使わないでも、IEを切り捨てることなんてできないんだよ。 JavaScript使って書いてもIEで動いちゃう IEで動くのに一部動きませんって苦情くるよね? どうせ切り捨てられないなら、動くほうが良いじゃない : Name_Not_Found [sage] 2018/07/29(日) 23:11:01.74ID:??? > モダンブラウザなら普通に書けばあってもちょっとの修正で済むのだから ちょっとの修正で動く VS 何も修正しないで動く なら後者を取るなぁw : Name_Not_Found [sage] 2018/07/29(日) 23:11:39.45ID:??? 1箇所で使い始めると使うのを止めるのが面倒なのがjquery : Name_Not_Found [sage] 2018/07/29(日) 23:12:47.57ID:??? 大丈夫。jQueryは、生JavaScriptとの互換性が高いから、 混ぜて使うことが簡単にできる。 そこがAngularやReactとの大きな違い。 だからjQueryをやめる必要がない。 : Name_Not_Found [sage] 2018/07/29(日) 23:13:23.51ID:??? jQuery便利すぎるもんな。 一回使うと便利すぎて やめられない、とまらない 状態になってしまう。 : Name_Not_Found [sage] 2018/07/29(日) 23:14:17.72ID:??? どこかの有名なポリフィル使うという話ならそうだが jQueryは補助輪レベルじゃないじゃん : Name_Not_Found [sage] 2018/07/29(日) 23:15:00.98ID:??? そろそろflash見直してもいいんじゃないかと思いかけたがappleがなあ : Name_Not_Found [sage] 2018/07/29(日) 23:15:56.50ID:??? それはIEを特別視し過ぎ 単なるシェアの問題ならもうちょっと待っててよ その内消えるから : Name_Not_Found [sage] 2018/07/29(日) 23:16:25.94ID:??? Flashは別にオーサーリングツールとしては生き残ってるでしょ 出力がsfwなのかhtmlなのかが重要なわけで : Name_Not_Found [sage] 2018/07/29(日) 23:16:53.75ID:??? 補助輪だよ。便利すぎる補助輪 : Name_Not_Found [sage] 2018/07/29(日) 23:17:15.28ID:??? IE消えても古いスマホは消えないだろうからな。 : Name_Not_Found [sage] 2018/07/29(日) 23:18:23.02ID:??? オーサーリングw : Name_Not_Found [sage] 2018/07/29(日) 23:20:08.57ID:??? jQueryとDOM APIは組み合わせて 使えるってところが強い 普段は便利なjQueryを使ったコードを書いて、 jQueryではできない所だけDOM APIを使う そしてDOM APIとjQueryはシームレスにつなげることができる : Name_Not_Found [sage] 2018/07/29(日) 23:21:49.37ID:??? 上でTLSの話があったけどTLS1.1で接続掛けてくることよりもサポート切れてるIEを使ってる方が危険でしょ そんでもう1年でサポート切れるwin7を除きサポートが続くIE11が乗ってるwindowsにはEdgeという素晴らしいものが乗ってるんだからさ うちではIEからのアクセスは「microsoft-edge:」で飛ばしてEdgeを開かせるようにしてる それが唯一のIEサポート : Name_Not_Found [sage] 2018/07/29(日) 23:22:05.14ID:??? どうでもいいがDOMってたまにDQNに見えるよな 俺だけじゃないよな : Name_Not_Found [sage] 2018/07/29(日) 23:23:41.30ID:??? すいません。今TLSの話はしてないんです。 : Name_Not_Found [sage] 2018/07/29(日) 23:24:27.09ID:??? え?古いJavaScriptは危険でしょ? JavaScript使うの辞めてjQuery使わなきゃ! : Name_Not_Found [sage] 2018/07/29(日) 23:24:48.42ID:??? そういう話をしたくてTLSを出したんでしょ? : Name_Not_Found [sage] 2018/07/29(日) 23:24:58.03ID:??? エンジンもエアバッグもライトもついてる補助輪だろ 無駄なんだよ 補助輪だけで良いのに : Name_Not_Found [sage] 2018/07/29(日) 23:25:09.69ID:??? いえ、だからTLSは関係ないんです。 : Name_Not_Found [sage] 2018/07/29(日) 23:25:56.52ID:??? ie11はまだいいよ 少なくともサポート外の環境をサポートする義理は無いってだけで : Name_Not_Found [sage] 2018/07/29(日) 23:27:07.22ID:??? いやIE11はEdgeに飛ばしたほうが良い IE11をサポートするしないは超絶に違う : Name_Not_Found [sage] 2018/07/29(日) 23:27:40.23ID:??? 補助輪って言ったから、あなた混乱しちゃったのかな? あれはたとえであって補助輪は忘れましょう ブラウザだってたくさん機能持ってるよね? でもクッキーだけ使えればばいいんですってはならないよね? 少なくともウェブの世界では機能は多いほうが便利なんだよ。 : Name_Not_Found [sage] 2018/07/29(日) 23:28:33.67ID:??? IE11をサポートするしないは 生JavaScriptで書くと 超絶に仕事の量が違う うーん、ならやっぱりjQueryを使ったほうが良いのでは? : Name_Not_Found [sage] 2018/07/29(日) 23:29:45.23ID:??? そうか。そもそもjQueryを使わないから、 古いブラウザ切って、NodeListが正しく動くコードはどれで ポリフィルはいれなきゃいけないなーって話になってるのか : Name_Not_Found [sage] 2018/07/29(日) 23:30:40.55ID:??? そうだね。今話題になってる(そしてこれからも話題になる) 問題の元凶はjQueryを切り捨てようとするからだよ jQueryを使っていれば問題はそもそも発生しない : Name_Not_Found [sage] 2018/07/29(日) 23:32:29.20ID:??? IE11をサポートするならその通り : Name_Not_Found [sage] 2018/07/29(日) 23:33:15.78ID:??? 切るなら要らない : Name_Not_Found [sage] 2018/07/29(日) 23:36:53.71ID:??? そこで第三の選択肢がでてくる。 IE11を切るがjQueryは使うという選択肢だ これのメリットは名目上はIE11を切っているため サポートする必要はないが、jQueryを使っているため IE11を含めて多くの環境で、同じように動くことが保証される その上仕事の量も減って開発コストも減るということだ 頭が固い人は、サポートを打ち切る = あえて動かなくすることだと考えるが jQueryを使わなくても、JavaScriptは古いブラウザで動いてしまう。 そこで頭が固い人は、古いブラウザ動かなくするためにコストを支払うわけだ。 IE11をサポートしないが動いてしまうのは受け入れるという選択肢 それが一番いい方法だ : Name_Not_Found [sage] 2018/07/29(日) 23:37:14.14ID:??? 別に古いブラウザではJS動かさなきゃ良いんじゃない? どうせJS切ってる環境でも動くようにするんだろうし 自分はもうtype="module"使ってnomoduleでChromeのDLリンク出してるよ : Name_Not_Found [sage] 2018/07/29(日) 23:38:26.94ID:??? テレビにchromeをインストールする方法を教えてほしい インターネット対応のテレビなんだ : Name_Not_Found [sage] 2018/07/29(日) 23:38:38.21ID:??? そもそもおれたちってなんでprototype.jsからjQueryに推し変したんだっけ・・? : Name_Not_Found [sage] 2018/07/29(日) 23:39:26.49ID:??? 代入文を1行書く程度のコードを「車輪の再発明」というならそうかもね : Name_Not_Found [sage] 2018/07/29(日) 23:39:26.64ID:??? jQueryで多くの環境で同じように動くというのが良く分からない 最近のブラウザではDOM操作のAPIに差はほぼ無く ほかのWeb APIやCSSの差の方が大きいだろう : Name_Not_Found [sage] 2018/07/29(日) 23:40:33.65ID:??? お前の仕事は、代入文を一行書くだけで終わる仕事なのか? ここでの少ないサンプルコードだけで判断するな。 仕事ではもっと多くのことをやる。 だからライブラリを使うんだよ : Name_Not_Found [sage] 2018/07/29(日) 23:41:29.79ID:??? > jQueryで多くの環境で同じように動くというのが良く分からない 最近のブラウザであってもバグがあって挙動が違うところがあるんだよ そういうバグに対応している。 : Name_Not_Found [sage] 2018/07/29(日) 23:41:38.19ID:??? jQuery使ったほうがはやいの? 昔 Rails 使ってメモリバカ食いで高級鯖契約することになってひどいめにあったから FWなしですむ単純な仕様はなるべくつかわないようにしてるけど パフォーマンスメリットがあるなら今度から使うわ : Name_Not_Found [sage] 2018/07/29(日) 23:43:11.15ID:??? 君の古い環境ではJSが働かない軽快なページが表示されるから安心するといいよ どうしても入れたくばUSBデバッグを有効にして入れれば良いんじゃない 大抵UIに問題出たりするから運次第だけど : Name_Not_Found [sage] 2018/07/29(日) 23:44:23.15ID:??? 確かそれ24週間だか前の話でしょ? : Name_Not_Found [sage] 2018/07/29(日) 23:47:21.79ID:??? パフォーマンスって測るの難しいけど DOM操作はたいしたことないと言うか 色々なデバイスがアクセスするWebで そこでギリギリの性能を追求するもんじゃない やっぱ一番はネットワークかな ServiceWorker入れてSPAにするのが一番手っ取り早いよ : Name_Not_Found [sage] 2018/07/29(日) 23:48:52.31ID:??? prototype.jsとjQueryでは後者のほうが洗練されており セレクタが使えるのでHTML/CSSとの相性がよく 圧倒的にコードが短く書けるという違いがあった prototype.jsの方が先にリリースされていたが純粋に ライブラリ同士を比較すると最初からjQueryの方が優れていた それでも先にリリースされていたprototype.jsはそれなりに使われていた 両者拮抗している中、jQueryの圧倒的普及を決定づけたのは、 prototype.jsがウェブの標準を壊してしまうという出来事 prototype.jsが提供する Array.prototype.reduce が ウェブ標準で追加されたそれと互換性がないということ この結果、ブラウザでは多くの実行環境が存在し、ユーザーが使う 実行環境(ブラウザ)を制限できないため、ブラウザの基本オブジェクトを 拡張してしまうと、予期せぬ問題が発生することが認知された その結果prototype.jsからjQueryへ多くの人が流れた : Name_Not_Found [sage] 2018/07/29(日) 23:49:15.05ID:??? ライブラリ任せの人には分からないだろうけど、@@iteratorの拡張に長いコードは不要 : Name_Not_Found [sage] 2018/07/29(日) 23:50:33.00ID:??? > 確かそれ24週間だか前の話でしょ? なんの話してるの? 24週間の間には新しいバグが見つかってないから jQueryはバージョンアップしてないってだけで 24週間よりも前に見つかったバグはたくさんあるんだよ そういうバグに対応している : Name_Not_Found [sage] 2018/07/29(日) 23:51:07.36ID:??? じゃあ短いコードが必要なんですねw @@iteratorの拡張に対応してないブラウザはどうするんですか?w : Name_Not_Found [sage] 2018/07/29(日) 23:52:07.11ID:??? jQueryが速いのは開発速度 それでいて、ReactやAngularよりも圧倒的に メモリ使用量が少なく速い。ライブラリのサイズも小さい : Name_Not_Found [sage] 2018/07/29(日) 23:52:17.99ID:??? うーん @@iteratorを拡張するより queryAll()みたいな自作関数を用意する方が良くない? 結局document.querySelectorAll()ってクソ長いしさ map使いたくて[...]すればもっと長くなるし : Name_Not_Found [sage] 2018/07/29(日) 23:52:49.25ID:??? そしての考えを発展させたのがjQuery : Name_Not_Found [sage] 2018/07/29(日) 23:55:22.38ID:??? forEachを使えばいいでしょ 元々、Androidを引き合いに出していたくせに都合が悪くなると、条件後出し 格好悪いよ : Name_Not_Found [sage] 2018/07/29(日) 23:59:12.04ID:??? なんでそんな適当な嘘つくの? ブラウザは毎日沢山のバグが見つかってるしjQueryのissuesにもいくつもの報告が挙がってるし 一方とっくに解決された問題も数多あるのにただjQueryが更新されてないだけでしょ jQueryは6週間のサイクルに全然追いつけてない いい加減認めたほうが良いよ : Name_Not_Found [sage] 2018/07/30(月) 00:01:31.13ID:??? > ブラウザは毎日沢山のバグが見つかってるしjQueryのissuesにもいくつもの報告が挙がってるし それを手動で対応するは大変だな。 そんな事やってるの? お前が自分で作ったものは毎日たくさん修正が必要だってことなんだなw : Name_Not_Found [sage] 2018/07/30(月) 00:06:42.31ID:??? このスレにはアホとバカとマヌケしかおらんのかえ : Name_Not_Found [sage] 2018/07/30(月) 00:08:33.54ID:??? そうだよ?ってかそうじゃないの? 毎日色んなバグ報告チェックしてトラッキングしてブラウザのバージョンアップ前には ベータ版で確認して毎日のようにブラウザやライブラリにissuesを飛ばす そして毎日カット入れて更新する それが毎日の仕事でしょ 君毎日何してるの? : Name_Not_Found [sage] 2018/07/30(月) 00:10:09.52ID:??? ちょっと興味ある 詳しく聞きたい : Name_Not_Found [sage] 2018/07/30(月) 00:14:51.93ID:??? ん?言い方が悪かったな。 お前が書いたJavaScriptのコードは 毎日のようにブラウザのバグに対応する修正を してるのかって話だよ。 : Name_Not_Found [sage] 2018/07/30(月) 00:15:44.03ID:??? どうせきっと関係ないバグの話を持ち出してくるぜーw みてな。 : Name_Not_Found [sage] 2018/07/30(月) 00:19:09.46ID:??? どこぞのブラウザのバグに対応するなんて 本質的じゃない仕事は他人に任せて 自分がやるべき仕事をしたいな だからライブラリを使う : Name_Not_Found [sage] 2018/07/30(月) 00:20:14.20ID:??? 勿論するよ テストもターゲット環境も毎日変わるし ブラウザやフレームワークもbetaやdev版も使ってるから毎日何か発見があるからね そこで今動いていても将来的に不味そうならきちんと修正する 殆どはブラウザ側やライブラリ側の問題で そういうときは基本的には報告したりパッチを書いて向こうに直してもらうけどね : Name_Not_Found [sage] 2018/07/30(月) 00:20:22.19ID:??? 屁理屈で相手を打ち負かそうとしてるのか知らんが下手すぎだろw : Name_Not_Found [sage] 2018/07/30(月) 00:21:11.18ID:??? だからー、お前が書いたJavaScriptコードを 修正しているかどうかに、はい か いいえ で答えろよ。 : 816 [sage] 2018/07/30(月) 00:22:15.25ID:??? 網羅的でなくても(できれば日本語だとうれしいけど)このURL見ろでも良い それを元に/それに対して批判や意見書くつもりはない 普段jQueryほとんど使わないんで知識がないから 参考程度でも事例を知りたいというだけだから : Name_Not_Found [sage] 2018/07/30(月) 00:22:21.95ID:??? -> -> -> 論点に一貫性がない奴だな 食いつけそうな場所を見つけて反論してるだけで、前に発言した持論をガン無視 : Name_Not_Found [sage] 2018/07/30(月) 00:22:44.35ID:??? で? : Name_Not_Found [sage] 2018/07/30(月) 00:24:20.23ID:??? わずか12秒半 : Name_Not_Found [sage] 2018/07/30(月) 00:24:31.95ID:??? ライブラリを使わないやつって、毎日のように あのブラウザで動かなかった、このスマホで動かなかったと 特定のブラウザに対応するために修正してるんだなーって思った 大変だなーって思った : Name_Not_Found [sage] 2018/07/30(月) 00:24:56.79ID:??? 自作自演バレバレw : Name_Not_Found [sage] 2018/07/30(月) 00:25:09.41ID:??? ただの感想 実にいい加減な奴だと思った : Name_Not_Found [sage] 2018/07/30(月) 00:25:33.99ID:??? あぁ、理解できないんだねw : Name_Not_Found [sage] 2018/07/30(月) 00:25:41.01ID:??? ライブラリとかUAのバグとかで悩まなくて良い方向に持ってく努力 : Name_Not_Found [sage] 2018/07/30(月) 00:26:23.58ID:??? ライブラリを使わないやつの仕事は 各ブラウザのバグや互換性のなさに 対応するコードを書くことなんですよ。 一体いつの時代に仕事なんですかねw : Name_Not_Found [sage] 2018/07/30(月) 00:27:08.90ID:??? じゃあjQueryなどのライブラリを使えば良いのでは? 毎日の無駄な仕事から解放されるよ。 : Name_Not_Found [sage] 2018/07/30(月) 00:28:46.44ID:??? 気づいてないようだけど、ブラウザのバグを報告して正しく 動くようになれば、jQueryも正しく動くようになる だからjQueryをバージョンアップする必要はないってことになるんやで? : Name_Not_Found [sage] 2018/07/30(月) 00:29:21.93ID:??? 彼は逃亡中だから、そっとしておいてあげて : Name_Not_Found [sage] 2018/07/30(月) 00:29:23.71ID:??? 全員が全部のライブラリ使えるわけじゃないし 学習コストを各人のオフの時間に転嫁するのは倫理的にどうかと思うからな : Name_Not_Found [sage] 2018/07/30(月) 00:30:21.37ID:??? なお報告しても正しく動くようになることは決して多くなかったIE : Name_Not_Found [sage] 2018/07/30(月) 00:31:04.97ID:??? 誰も全部のライブラリを使えるようになれなんていってませんー よく使われてるライブラリ ttps://w3techs.com/technologies/history_overview/javascript_library この上位3つぐらい使えるようになってれば十分だろw : Name_Not_Found [sage] 2018/07/30(月) 00:32:30.72ID:??? 開発コスト > 学習コスト これが成り立たないのが初学者なんやでプロじゃない プロは開発コストを減らすために学習する だけど素人は開発しないので学習コストのほうが高く見える : Name_Not_Found [sage] 2018/07/30(月) 00:33:02.75ID:??? ブラウザの互換性問題なら、PolyfillとBabelで十分だな : Name_Not_Found [sage] 2018/07/30(月) 00:33:23.86ID:??? w3techsの統計がよく挙がるけど w3techsの統計って検証可能なの : Name_Not_Found [sage] 2018/07/30(月) 00:35:27.33ID:??? 可能 FAQにどうやってデータを集めているか書いてある ttps://w3techs.com/faq > How do you know which technologies are used by a site? > > Primarily, we use information provided by the site itself when downloading > web pages. In other words, we fetch web pages very much like a search > engine, and analyze the results. Additionally, we use publicly available > information from sources such as Alexa, Google, Microsoft and ipinfo.io. : Name_Not_Found [sage] 2018/07/30(月) 00:37:43.75ID:??? そこで解決したならば、jQueryも問題なく動くっつー訳やな : Name_Not_Found [sage] 2018/07/30(月) 00:38:21.25ID:??? データ提供元が書かれてるだけだし、publicly available informationっていっても具体的に何よ?と Alexaって度々個人情報関係で問題起こしてたり、サイトランキングとか言って出鱈目なアクセス数出してるところでしょう GoogleやMicrosoftがデータを出してるなら、 GoogleやMicrosoft自身がjavascript利用状況の統計を出してそうなものだけど : Name_Not_Found [sage] 2018/07/30(月) 00:39:13.37ID:??? > GoogleやMicrosoft自身がjavascript利用状況の統計を出してそうなものだけど なんのために? : Name_Not_Found [sage] 2018/07/30(月) 00:39:19.27ID:??? w3techsが自前で収集したというデータがあるんだったら それが何らかの形で独立して公開されてないと検証不可能 : Name_Not_Found [sage] 2018/07/30(月) 00:40:44.00ID:??? じゃあ自分でデータ集めて解析すれば良いんじゃないですかね? 嘘か本当かわからないから、 俺は信じない!じゃだめでしょw : Name_Not_Found [sage] 2018/07/30(月) 00:41:57.20ID:??? 私の感を信じてください! : Name_Not_Found [sage] 2018/07/30(月) 00:44:06.62ID:??? せめて対象サイト一覧ぐらいは無いと、同じようにデータを集めるということができないんじゃね : Name_Not_Found [sage] 2018/07/30(月) 00:44:23.98ID:??? 問題なく動くことと採用することは等価ではない : Name_Not_Found [sage] 2018/07/30(月) 00:45:06.30ID:??? はい。知っています。 動かない場合があっても採用しますよ。 どうせ生JavaScript使っても 動かない場合があるんですから : Name_Not_Found [sage] 2018/07/30(月) 00:46:19.33ID:??? > せめて対象サイト一覧ぐらいは無いと、 ttps://w3techs.com/faq > Which websites do you count? Do you crawl all the web? > For the surveys, we count the top 10 million websites according to Alexa, Alexaのトップ1000万ページだってさ : Name_Not_Found [sage] 2018/07/30(月) 00:46:21.85ID:??? いや、いいでしょ 嘘か本当か分からないものを根拠に「jQueryのシェアが延びてる」と主張する方がおかしい : Name_Not_Found [sage] 2018/07/30(月) 00:46:27.41ID:??? どうせ何使っても動かない場合があるんならjavascriptやめようw : Name_Not_Found [sage] 2018/07/30(月) 00:47:22.86ID:??? 詳しくは ttps://w3techs.com/technologies を見れって書いてあるな : Name_Not_Found [sage] 2018/07/30(月) 00:48:23.31ID:??? 誰も検証しないからどうでもいいんだよ オープンソースでも誰も検証しなくて問題が表沙汰にならないのと同じ : Name_Not_Found [sage] 2018/07/30(月) 00:48:39.81ID:??? それはお前さん自身が勝手にやれ のような反応をする意味は何だ? : Name_Not_Found [sage] 2018/07/30(月) 00:49:26.69ID:??? 嘘か本当かじゃなくて、 w3techsの調査を信用するかどうかでしょ? で俺は信用してるし、お前は信用してないってだけ。 お前は誰も信用してないんでしょ? なら何も言う資格はないよ だってお前のことも信用出来ないんだから : Name_Not_Found [sage] 2018/07/30(月) 00:51:55.63ID:??? alexaのトップ1000万サイトそれぞれのURLって誰でも自由に取って来れんの : Name_Not_Found [sage] 2018/07/30(月) 00:53:35.63ID:??? 意味と言われてもね。 上の方で(逃げたみたいだが) 自分で書いたJavaScriptのコードがブラウザのバグで動かない場合に どうするんだ?って聞いたら(自分で書いたJavaScriptのコードをなおすのではなく) ブラウザ開発者に報告している、毎日報告するのが仕事だって言ったから、 じゃあ、ブラウザのバグがなおればOKっていうのなら、 jQueryだってブラウザのバグがなおったら、解決するって話じゃんって指摘しただけ その延長で、jQueryの土台となるJavaScriptやブラウザ側で対応できるなら、 jQueryをそんなに頻繁にバージョンアップしなくても、なおせるんですよーっていう話 : Name_Not_Found [sage] 2018/07/30(月) 00:53:43.83ID:??? 統計は集計方法が変われば、がらりと変わるものだからな jQueryが下降しているデータもある ttps://ferret-plus.com/8989 : Name_Not_Found [sage] 2018/07/30(月) 00:53:53.90ID:??? 詳しくは ttps://w3techs.com/technologies を見れって書いてあるな : Name_Not_Found [sage] 2018/07/30(月) 00:55:11.37ID:??? そのサイトが信用に値するという根拠を教えてください。 全てはそこですよ。信頼できる根拠があるかどうか : Name_Not_Found [sage] 2018/07/30(月) 00:56:52.99ID:??? どうだろう? jQueryに関する質問が減ったら、 使われてないことにならないだろうか? ちょっと試してみよう みたいなことはやめてくださいw 直ぐにバレますから : Name_Not_Found [sage] 2018/07/30(月) 01:00:09.62ID:??? 上の方など、知らん 同じ奴と見なしてレスするのを止めろ そもそも、ブラウザ個別のバグにPolyfillで対処などせんぞ : Name_Not_Found [sage] 2018/07/30(月) 01:00:45.18ID:??? 質問の数が減らないのは、今までの質疑応答で解決できてない新たな問題がたくさんあるってことやで・・・ : Name_Not_Found [sage] 2018/07/30(月) 01:05:40.23ID:??? 誰も信用してないってどこから来たんだ? 頭大丈夫か? : Name_Not_Found [sage] 2018/07/30(月) 01:07:05.53ID:??? 賢いな : Name_Not_Found [sage] 2018/07/30(月) 01:09:26.64ID:??? ttps://w3techs.com/ が信用に値するという根拠を教えてください : Name_Not_Found [sage] 2018/07/30(月) 01:11:03.76ID:??? stackoverflowは質問者以外にも質問をクローズする権限があるんだが : Name_Not_Found [sage] 2018/07/30(月) 01:14:52.03ID:??? FAQ読んで納得したよ 多く使われてるのに質問が少ない 殆ど使われてないのに質問が多い ReactとAngularは後者 : Name_Not_Found [sage] 2018/07/30(月) 01:18:00.65ID:??? 870の内容を無視したレスをされてもな : Name_Not_Found [sage] 2018/07/30(月) 01:24:50.36ID:??? なら、その質問をクローズする権限を持っていることが、 どう影響するのか、その根拠を示してくれないか? : Name_Not_Found [sage] 2018/07/30(月) 01:27:02.08ID:??? ははw どうせ何も知らんってw クローズされた質問が、統計データに 含まれているかどうかすらも調べてないだろ だいたい質問の数と使われている数は関係ないのに 自分の都合の良い別のデータを持ち出してきて 勝手に独自解釈してるだけなんだからさ : Name_Not_Found [sage] 2018/07/30(月) 01:28:48.19ID:??? 最後の2行、まさにそのとおり 統計なんてそんなもんだよな : Name_Not_Found [sage] 2018/07/30(月) 01:28:56.90ID:??? 答えになっていません それで納得するなら、stackoverflowも「helpを読んで納得」すればいいんじゃないですか ttps://stackoverflow.com/help それにしても、当該サイトの説明だけで納得するとは、他人の言を裏をとらずに鵜呑みにするタイプなんですかね : Name_Not_Found [sage] 2018/07/30(月) 01:29:19.43ID:??? 同じトレンドなら、StackOverflowの質問だけのトレンドじゃなくて Googleトレンドのほうがまだ信用できるかな ttps://trends.google.co.jp/trends/explore?date=all&geo=JP&q=jquery,angular,angularjs,react : Name_Not_Found [sage] 2018/07/30(月) 01:30:09.05ID:??? > それで納得するなら、stackoverflowも「helpを読んで納得」すればいいんじゃないですか 質問サイトであるstackoverflowのhelpには 質問サイトの使い方しか乗ってません。 統計データを集めてるサイトじゃないんですから・・・ : Name_Not_Found [sage] 2018/07/30(月) 01:30:14.20ID:??? 2-3行目ってお前は調べて書いてんの? : Name_Not_Found [sage] 2018/07/30(月) 01:30:49.95ID:??? javascriptコードやライブラリロードの有無じゃなくて javascriptがOFFでも動くサイトの割合とか 特定ライブラリが実際に使われているかどうかの統計どっか出してくんねーかな : Name_Not_Found [sage] 2018/07/30(月) 01:31:21.34ID:??? そういうのって、このデータを信じてください!って 持ってきてるほうが出すのが筋じゃないの?w : Name_Not_Found [sage] 2018/07/30(月) 01:32:07.52ID:??? 結局、答えになっていませんが、運営のいうことを鵜呑みにする理由は何なんですかね? : Name_Not_Found [sage] 2018/07/30(月) 01:32:22.75ID:??? > javascriptがOFFでも動くサイトの割合とか javascriptがOFFだと「JavaScriptを有効にしてください」って 書いてあるだけのページが表示されるサイトも、 動くってことにして良いのか? : Name_Not_Found [sage] 2018/07/30(月) 01:33:02.74ID:??? そりゃ「統計データ」がどういうふうに 集められたかを書いてあるかどうかでしょw : Name_Not_Found [sage] 2018/07/30(月) 01:33:39.68ID:??? それはただの言いがかりじゃないの? 可能性の視点なら、いくらでもいちゃもんつけられるでしょ? : Name_Not_Found [sage] 2018/07/30(月) 01:34:01.17ID:??? stackoverflowのデータに、世界中のサイトを 調べて回ったって書いてありましたっけ? あくまでstackoverflowに寄せられる質問の数だけでは? : Name_Not_Found [sage] 2018/07/30(月) 01:36:04.15ID:??? stackoverに寄せられた質問をもとにしたデータが、世界中のサイトを 調べた結果でないのは可能性ではなく、明らかなことでは? : Name_Not_Found [sage] 2018/07/30(月) 01:36:55.64ID:??? というか、根拠を示せというなら、も根拠を示さなければ、公平ではないのでは? : Name_Not_Found [sage] 2018/07/30(月) 01:38:09.77ID:??? 多く使われてるっていうのは、 ttps://w3techs.com/ で 一応は納得するけどさ : Name_Not_Found [sage] 2018/07/30(月) 01:38:23.63ID:??? 2-3行目と書いてるのに、なぜ関係ない方を持ってくるの? : Name_Not_Found [sage] 2018/07/30(月) 01:39:10.29ID:??? stackoverflowのデータが質問の数であることは納得してるよ。 それと世界中のサイトで使用されている数とをごっちゃにするなってこと : Name_Not_Found [sage] 2018/07/30(月) 01:39:53.76ID:??? だから2-3行目を持ってくるのは、 このデータを持ってきたやつの仕事だって言ってるだろ 無視して同じこと言わせるな : Name_Not_Found [sage] 2018/07/30(月) 01:48:56.39ID:??? 常識的に考えるとそこはNOだよな サイトの本旨が達成できないといけない 逆も同じで文字サイズ変更のためのjsコードがあっても 画像を拡大するためのjsコードがあってもサイトの本旨は達成できる だから面倒なんだよな 他の項目も同じで実情が反映されないと : Name_Not_Found [sage] 2018/07/30(月) 01:50:28.79ID:??? それはあんたの論でしょ で否定してんのに、関係ない話でレスすんなよ : Name_Not_Found [sage] 2018/07/30(月) 01:51:33.60ID:??? 2ch/5chの質問スレの数やレス数をみただけでは質問数なんて計れないのと同じ 将棋板だか将棋スレなんてテンプレだけでかなり占めてたりするしな : 870 [] 2018/07/30(月) 01:53:42.66:Wg5QXmFw お前の拡大解釈だぞ stackoverflowの統計情報がjQueryのシェアと一致するとは、一言も書いてないのにどうしてそういう解釈になるんだ? : Name_Not_Found [sage] 2018/07/30(月) 01:55:35.02ID:??? お前らこんなとこでサボってないで仕事しろよ 納期迫ってんぞ : Name_Not_Found [sage] 2018/07/30(月) 01:58:40.30ID:??? の最終行に根拠がなく、あなたの決めつけにしかなってないのですが : Name_Not_Found [sage] 2018/07/30(月) 02:19:52.48ID:??? 全てはこいつが悪い > 861 名前:Name_Not_Found[sage] 投稿日:2018/07/30(月) 00:53:43.83 ID:??? > 統計は集計方法が変われば、がらりと変わるものだからな > jQueryが下降しているデータもある > ttps://ferret-plus.com/8989 変わったのは集計の方法じゃない。 集計の内容が変わってる。 世界全体のシェアの話をしている所に stackoverflowの質問の割合を持ち出してきて 「jQueryが(目的からして違うデータだけどそれ隠してやろう。ぷぷぷ)下降しているデータもある」 と言い出したのが悪い : Name_Not_Found [sage] 2018/07/30(月) 02:36:07.17ID:??? ロードしているけどろくに使われていない・古いコードが残っているだけの可能性 シェアを直接反映しているかどうかわからないsofの質問数 もう何も信用できない!! : Name_Not_Found [sage] 2018/07/30(月) 03:25:08.23ID:??? がを拡大解釈したミスはの責任ではない : Name_Not_Found [sage] 2018/07/30(月) 03:46:29.87ID:??? ことにしたい : Name_Not_Found [sage] 2018/07/30(月) 04:01:33.16ID:??? もうお前らプププランドでやってくれよ : Name_Not_Found [sage] 2018/07/30(月) 08:10:23.86ID:??? 恥の上塗りを続ける馬鹿が必死すぎるな : Name_Not_Found [sage] 2018/07/30(月) 08:20:13.67ID:??? 責任転嫁君 : Name_Not_Found [sage] 2018/07/30(月) 09:11:19.57ID:??? なんだ?1日で一体何があったんだ : Name_Not_Found [sage] 2018/07/30(月) 09:18:25.89ID:??? 俺の髪の毛がまた抜けたんだよ : Name_Not_Found [sage] 2018/07/30(月) 10:26:21.36ID:??? jqueryでも特に困らないのでvueなどに移行するタイミングがありません 一度飛び越えてしまえば、移行して良かった〜ってなりそうな気もしますが どうしたらいいですか? : Name_Not_Found [sage] 2018/07/30(月) 11:12:16.10ID:??? str = `あいう$ えおか$ きくけ$`; $前の文字列を取り出したい時、 それぞれ文字列は(ひらがなだけではなく)$以外の文字で 長さも異なります、スペース込みでもいいです str.match(/[^\$]+(?=\$)/g);//["あいう", " えおか", " きくけ"] で取り出せるのですが [^\$]の部分は、こう書くしかないでしょうか? str.match(/.+(?=\$)/g);//["あいう$ えおか$ きくけ"] もやってみましたが$もふくまれてしまい、"け$"からマッチしてしまうのです : Name_Not_Found [sage] 2018/07/30(月) 12:04:28.20ID:??? だと思う 正規表現を使わない方向で、$でsplitして得た配列の末尾の1要素を消してもいいけど ところで、[]の中では、\以外のメタキャラクタは \つけなくてもメタキャラクタ扱いされないんじゃなかったっけ : Name_Not_Found [sage] 2018/07/30(月) 12:05:20.46ID:??? ああ、 ] / なんかも\つけないとダメか : Name_Not_Found [sage] 2018/07/30(月) 12:07:03.77ID:??? [\\]のときは特別だということでしょうか? : 912 [sage] 2018/07/30(月) 12:07:46.69ID:??? あ、かぶりましたすみません : Name_Not_Found [sage] 2018/07/30(月) 12:13:38.06ID:??? splitとmapで一行いけるかも 複数行使ってpopとか空文字列要素削除をやった方が読みやすいけど : Name_Not_Found [sage] 2018/07/30(月) 12:25:04.34ID:??? var str = 'ab$cde$$fgh$ijklmn$opq'; console.log( str.split(/\$+/).slice(0, -1) ); // [ 'ab', 'cde', 'fgh', 'ijklmn' ] : Name_Not_Found [sage] 2018/07/30(月) 12:56:34.36ID:??? match(/[^$]+/g) でも実際には問題ないのでは? : Name_Not_Found [sage] 2018/07/30(月) 16:39:33.44ID:??? > jqueryでも特に困らないのでvueなどに移行するタイミングがありません > どうしたらいいですか? 作るものを変える必要がある。いまウェブサイトを作ってるなら、 アプリケーションに変える。スマホアプリなんかを想像するといいだろう。 ウェブサイトは基本的に静的なものとして作るので、動的なものが 作りやすいフレームワークっていうのは根本的に相性が悪い jQueryは静的なものに対して、追加で動的なものを追加できるので ウェブサイトと相性がいいが、最近のJavaScriptフレームワークは すべてを動的なものとして作ろうとするからウェブサイトとは相性が悪い。 まあ顧客を変えるか、仕事を変えるしかないね 相性が悪いものに移行しても後悔するだけだよ : Name_Not_Found [sage] 2018/07/30(月) 20:46:23.84ID:??? つまりはPWAとAMPです : Name_Not_Found [sage] 2018/07/30(月) 21:53:35.90ID:??? PWAってステキだけどいかんせんServiceWorkerの扱いが難しい 特に更新周り アプリならまあバージョンJSON用意しといて タイトル表示中くらいまでにそれだけ必ず最初にキャッシュレスで取得して 更新されてたらSW含めて全キャッシュ破棄してリロードでいいんだけど ニュース記事みたいのだと難しい 最近いつも考えてる : Name_Not_Found [sage] 2018/07/30(月) 22:46:32.73ID:??? 動的なJSのフレームワークにjQuery入れたらダメ? DefferedとかやっぱりjQuery便利だよね : Name_Not_Found [sage] 2018/07/31(火) 06:42:35.75ID:??? uncatchもコンソールに表示してくれるしPromiseで良くね
凡例:
レス番
100 (赤) → 2つ以上レスが付いている
100 (紫) → 1つ以上レスが付いている
名前
名無しさん (青) → sage のレス
名無しさん (緑) → age のレス
ID
ID:xxxxxxx (赤) → 発言が3つ以上のID
ID:xxxxxxx (青) → 発言が2つ以上のID
このページは2ch勢いランキング が作成したアーカイブです。削除についてはこちら 。