X



+ JavaScript の質問用スレッド vol.143 +
レス数が1000を超えています。これ以上書き込みはできません。
0001Name_Not_Found
垢版 |
2019/12/26(木) 19:50:04.40ID:???
JavaScript を自ら学ぶ人のための質問スレッドです。
次スレは>>950が(本スレで改善案があれば考慮して)立ててください

■規則/推奨ルール
質問者は !slip:vvvvv を名前欄に、その後は「レス番」+!slip:vvvvv
・質問内容は具体的に。言葉だけでなく、出来る限り再現性を確認したサンプルコードの掲示。
・質問テンプレートの利用推奨。
・質問への「答え」から解離した議論はよそでやること。
■禁止行為
・丸投げ質問
・迷惑スクリプトの質問
・オレオレ用語の使用(一般的な用語を使用する事)
・煽り、批判等の他人を不快にさせる行為
■質問テンプレート
【環境】OS, ブラウザをバージョンと共に記入してください。
【条件】期待する回答の条件を書いてください。
【何をしたのか】何をしたら問題の現象が発生するのか。再現手順を具体的に書いてください。
【エラーメッセージ】エラーメッセージがあれば正確に書き写してください。
【期待する結果】最終的にどういう結果を望んでいるのか、を書いてください。
【サンプルコード】現象を再現可能な最小限のコードを書いてください。
 1レスに収まらないならコード投稿サイトを利用してください。
 http://jsdo.it/ http://jsbin.com/ http://jsfiddle.net/ http://ideone.com/
■回答者へ
・回答には多様性があります。他人の回答を尊重してください
・動作ブラウザや環境が限られる場合は、それを明記してください
・他人の回答を批判する代わりに、自分ならこう書くという例を示してください
・質問者がJavaScriptでなければ実現できないと勘違いしてるなら、その否定としてHTMLとCSSで実装しても良い
・他人の回答を見たくないのであれば、文句をつける代わりにNGにして見えないようにしてください。文句をつける=荒らしです

■前スレ
+ JavaScript の質問用スレッド vol.142 +
https://mevius.5ch.net/test/read.cgi/hp/1568622157/
0002Name_Not_Found
垢版 |
2019/12/27(金) 01:15:43.40ID:???
■FAQ

◆開発者ツール(Developer Tools)の基本的な使い方
 ▼諸注意
  - 本説明では Google Chrome の開発者ツールの名称に従います。他ブラウザで使う場合は適宜読み替えて下さい。
  - Edge- でコンソールを使うには予め開発者ツールを起動しておく必要があります(開発者ツールを起動しないと console.log() が機能しません)
  - Safari はデフォルトで開発者ツールが無効な為、有効に設定する必要があります。
  https://developer.apple.com/library/safari/documentation/AppleApplications/Conceptual/Safari_Developer_Guide/GettingStarted/GettingStarted.html
 ▼要素を検証
 1. ページ上で右クリックして [要素を検証]
 2. [Elements] パネルが開き、対象のDOMノードが選択される(選択対象が目的の要素でなければ [Elements] パネル上で選択し直す)
 3. 右側のサイドバーから知りたいステータス名のタブを選択する
   - [Styles] タブ … CSSプロパティの指定値を表示 (※カスケードによって上書きされたプロパティは取り消し線で表示される)
   - [Computed] タブ … CSSプロパティの算出値を表示("font-size: 1em" を指定していても算出後の "*px" で表示される)
   - [Properties] タブ … 選択したDOMノードのプロパティを表示
 ▼コンソール
 1. JavaScript コード上で console.log('Hello, World!'); と入力
 2. [Ctrl] + [Shift] + [I] キー(IE は [F12])で開発者ツールを開き、[Console] パネルを開く
 3. [Console] パネルに "Hello, World!" と表示される
 (※window.alert() は String 型に変換されますが、console.log() は Object 型の中身をそのまま表示してくれます。)
0003Name_Not_Found
垢版 |
2019/12/27(金) 01:15:59.17ID:???
■各種仕様 (続き)
◆ Document Object Model (DOM) / CSS Object Model (CSSOM)
http://www.hcn.zaq.ne.jp/___/WEB/DOM4-ja.html (DOM Standard (DOM4) 和訳)
http://www.w3.org/TR/DOM-Level-3-Events/ (DOM3 Events)
http://www.w3.org/TR/uievents/ (UI Events)
http://www.hcn.zaq.ne.jp/___/WEB/cssom-ja.html (CSSOM 和訳)
http://www.hcn.zaq.ne.jp/___/WEB/cssom-view-ja.html (CSSOM View Module 和訳)
◆ その他のWeb関連仕様
http://domparsing.spec.whatwg.org/ (DOM Parsing and Serialization - innerHTML等)
http://www.hcn.zaq.ne.jp/___/WEB/XHR-ja.html (XMLHttpRequest 和訳)
http://www.hcn.zaq.ne.jp/___/WEB/File_API-ja.html (File API 和訳)
http://www.whatwg.org/specs/ (WHATWGの仕様一覧)
◆ MDN (Netscape/Mozilla)
https://developer.mozilla.org/ja/docs
◆ MSDN Library
https://msdn.microsoft.com/en-us/library/ie/hh828809 (Internet Explorer API)
http://msdn.microsoft.com/ja-jp/library/yek4tbz0.aspx (JavaScript)
http://msdn.microsoft.com/ja-jp/library/cc427807.aspx (JScript)
http://msdn.microsoft.com/ja-jp/library/cc409712.aspx (DHTML)
◆ JavaScript Garden (ja)
http://bonsaiden.github.com/JavaScript-Garden/ja/
◆ JSON (JavaScript Object Notation)
http://www.json.org/json-ja.html

■テンプレ案
http://fiddle.jshell.net/fH4cC/180/show/light/

■FAQ
http://fiddle.jshell.net/vSqKr/44/show/light/
0004Name_Not_Found
垢版 |
2019/12/27(金) 01:16:15.89ID:???
■参考URL
ダウンロード、CDN
http://jquery.com/download/
ブラウザサポート
http://jquery.com/browser-support/
jQuery UI
http://jqueryui.com/
jQuery UI ダウンロ−ド
http://jqueryui.com/download/
リファレンス等
http://alphasis.info/
http://www.jquerystudy.info/
http://js.studio-kingdom.com/
【翻訳まとめ】jQuery 3.0 アップグレードガイド - Qiita
http://qiita.com/fmy/items/345a264a1cf2e2a73f62
0005Name_Not_Found
垢版 |
2019/12/27(金) 01:16:34.96ID:???
■FAQ(続き)
◆JavaScriptの実行速度
JavaScriptの速度は「ブラウザ名」「ブラウザのバージョン」「PCスペック」に依存します(ブラウザのバージョン毎に最適化具合が異なります)。
速度の疑問解消の為に http://jsperf.com/ (githubのアカウントが必要です)にコードをUPしてブラウザ毎に速度計測する事を推奨します。

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

■各種仕様
◆ Standard ECMA-262
http://bclary.com/2004/11/07/ (ECMAScript 3 HTML版)
http://www2u.biglobe.ne.jp/~oz-07ams/2002/ecma262r3/ (ECMAScript 3 和訳)
http://www.ecma-international.org/ecma-262/5.1/ (ECMAScript 5.1 HTML版)
http://tsofthome.appspot.com/ecmascript.html (ECMAScript 5.1 和訳)
http://www.ecma-international.org/ecma-262/6.0/ (ECMAScript 6 / ECMAScript 2015)
http://kangax.github.io/compat-table/es5/ (ECMAScript 5 compatibility table)
http://kangax.github.io/compat-table/es6/ (ECMAScript 6 compatibility table)
◆ HTML Standard (HTML5)
http://www.whatwg.org/specs/web-apps/current-work/multipage/
http://momdo.s35.xrea.com/web-html-test/spec/WD-html51-20130528/Overview.html (HTML5.1 部分訳)
http://www.hcn.zaq.ne.jp/___/WEB/WebStorage-ja.html (Web Storage 和訳)
0007Name_Not_Found
垢版 |
2019/12/27(金) 01:17:06.24ID:???
Q. jQueryはどのバージョンを使えばいいのですか?
A. IE9以上であれば、jQuery 3.0を使用してください。
IE8以下にも対応するならば、jQuery 1.12を使用してください。

補足

jQuery 1.9 までは一系統しかなく、古いブラウザも含めて全て対応していました。
その後、古いブラウザを切り捨てるためにバージョンを分岐させました。
古いブラウザにも対応した1系(1.10、1.11、12)と
古いブラウザを切り捨てた2系(2.0, 2.1, 2.2)です。

1系と2系は対応ブラウザの違いだけで機能は全く一緒です。
機能が同じなのにメジャーバージョンが違っているのが分かりにくい
ということでバージョン番号の付け方を変えることになり、
新たに古いブラウザを切り捨てたjQuery 3.0、そして古いブラウザにも対応した
jQuery Compat 3.0がリリースされる予定でした。

しかしマイクロソフトが古いIEのサポートポリシーを変更し
サポート中であるOSで動く、最新のIEしかサポートしなくなったために、
2016年1月でVista上のIE8のサポートが終了しました。

そのため予定されていたjQuery Compat 3.0がなくなり、
jQueryは3.0に一本化されました。
0008Name_Not_Found
垢版 |
2019/12/27(金) 01:17:22.59ID:???
■JavaScript主要ライブラリ・フレームワーク 利用率
https://w3techs.com/technologies/overview/javascript_library/all

■質問を書く上で
(1) 煽り、コード制作依頼等、人を不快にさせる投稿はご遠慮下さい。公序良俗を守った応対を心がけてください。
(2) 他の人に迷惑をかけるスクリプトの質問はご遠慮ください。
  (ブラクラ、[戻る], [閉じる], [クリック] の妨害、画面占有など)
(3) 質問者及び議論を行う人はメール欄を空欄にし、名前にレス番を入れることを強く推奨します。回答者はなりすましを判断できませんので、なりすましが現れても自己責任となります。
(4) 常に自発的に調べる心構えを持ってください。
  具体的には「自分で調べてから質問する」「回答をもらってわからない単語があればGoogle検索してみる」など。
  わからない内容を代わりに調べてくれる回答者をお望みの方は余所で質問してください。
(5) 出来るだけ一般的な用語を使用してください。脳内オレオレ用語は混乱の元です。
(6) 出来るだけサンプルコードを掲示してください。言葉による説明は行き違いが生まれる場合があります。
  ※必ず「問題の事象が再現されること」を確認してください。
   必要な部分だけ切り出したつもりで現象が再現できていなかったケアレスミスがしばしば見られます。
(7) サンプルコードに HTML が含まれる場合は http://validator.w3.org/ で [Check] してみてください。
(8) 質問を具体的かつ詳細に書くと回答を得られやすいです。>>2の質問テンプレートを活用してみてください。
(9) 時にはあなたが望む「答え」だけでなく、「意見」などが寄せられる場合もあります。
0009Name_Not_Found
垢版 |
2019/12/27(金) 01:17:39.19ID:???
■各種仕様
◆ Standard ECMA-262
http://www.ecma-international.org/ecma-262/6.0/ (ECMAScript 2015, いわゆる ES6)
https://www.ecma-international.org/ecma-262/9.0/ (ECMAScript 2018)
https://tc39.es/ecma262/ (ECMA-262 最新ドラフト)
◆ HTML Standard (HTML5)
http://www.whatwg.org/specs/web-apps/current-work/multipage/
http://momdo.s35.xrea.com/web-html-test/spec/WD-html51-20130528/Overview.html (HTML5.1 部分訳)
http://www.hcn.zaq.ne.jp/___/WEB/WebStorage-ja.html (Web Storage 和訳)

削るべきか要審議
http://www.ecma-international.org/ecma-262/5.1/ (ECMAScript 5.1 HTML版)
http://tsofthome.appspot.com/ecmascript.html (ECMAScript 5.1 和訳)
http://kangax.github.io/compat-table/es5/ (ECMAScript 5 compatibility table)
http://kangax.github.io/compat-table/es6/ (ECMAScript 6 compatibility table)
0010Name_Not_Found
垢版 |
2019/12/29(日) 17:05:16.56ID:RZV6QmbA
html内に記述のjavascriptにはlinter?は効かないのでしょうか。
オンラインでそれに対応したサービスはないでしょうか。
0011Name_Not_Found
垢版 |
2019/12/30(月) 19:50:08.90ID:???
2019年もjQueryのシェアは微増で終わりましたね(苦笑)
だから言ったんだよ。誰もがウェブアプリ作ろうと思ってたりしないんだから
普通のウェブサイトならjQueryでいいんだって
適切じゃない技術に乗り換える意味がない
0012Name_Not_Found
垢版 |
2019/12/30(月) 20:02:39.64ID:???
どっかのフロントエンジニア君(笑)が必死に終わる終わるいっても
結局はこの結果ですよ。Angular?ReactJS?一年経ってもぜんぜん増えてませーんw

https://w3techs.com/technologies/history_overview/javascript_library/all
Historical trends in the usage of javascript libraries for websites
73.5%  73.6%  73.7%  73.8%  73.9%  74.0%  73.9%  73.9%  74.1%  74.1%  74.1%  74.0%  74.1%  74.2%
結果+0.7%

https://w3techs.com/technologies/history_overview/javascript_library
Market share trends for JavaScript libraries
97.2%  97.3%  97.3%  97.3%  97.3%  97.3%  97.4%  97.4%  97.4%  97.5%  97.5%  97.5%  97.3%  97.4%
結果+0.2%


2011年より
28.3% 42.8% 54.5% 57.4% 61.5% 68.3% 71.9% 73.1% 73.6% 74.2%
74.0% 84.1% 90.2% 92.9% 94.5% 95.8% 96.4% 96.2% 97.3% 97.4%
0013Name_Not_Found
垢版 |
2019/12/30(月) 20:37:31.23ID:???
形骸化してるだけなのに哀れだね
0014Name_Not_Found
垢版 |
2019/12/30(月) 20:40:29.08ID:???
形骸化?AngularやReactが増えないから
jQueryは減らないんですよ

AngularやReactが形骸化しちゃったと?w
0015Name_Not_Found
垢版 |
2019/12/30(月) 21:24:40.42ID:???
ここまでjQuery信者っぷりが露骨なテンプレだと、何も感じないな
2020年も彼は平常運転なんだろうね
0016Name_Not_Found
垢版 |
2019/12/30(月) 22:01:38.93ID:???
一生懸命覚えたjQueryを使った案件が減っちゃうとまんまが食えなくなっちゃうんだろうね
かわいそうに
0017Name_Not_Found
垢版 |
2019/12/30(月) 22:23:51.87ID:???
でもjQuery減ってないじゃんw
AngularとかReactはバージョナップで
また覚え直しになるでしょ?
0019Name_Not_Found
垢版 |
2019/12/31(火) 01:26:51.56ID:???
現実を見据えた奴なら全部覚えるだろ
jQueryに拘ってるのは信者だけ
0020Name_Not_Found
垢版 |
2019/12/31(火) 03:43:03.03ID:???
そりゃjQueryが消えるわけないんだから
jQueryも全部の中に含まれるだろうな
0021Name_Not_Found
垢版 |
2019/12/31(火) 05:12:47.54ID:???
>>17みたいにjQuery以外をこき下ろすのはアホってことだな
0022Name_Not_Found
垢版 |
2019/12/31(火) 05:27:29.38ID:???
別にこき下ろしてないだろ
Angularが1と2で互換性なくなったのは事実だし
ブラウザ標準のWeb Componentsが控えてるから
脱Angular、脱Reactの流れは明らか
0023Name_Not_Found
垢版 |
2019/12/31(火) 05:37:48.66ID:???
目指せフルスタックエンジニア
0024Name_Not_Found
垢版 |
2019/12/31(火) 09:30:44.31ID:???
Web Componentsが控えてるから脱Angular、脱Reactになるというのなら
jQueryなんてとっくに使われなくなってるはずでしょ
ここは自ら学ぶスレでJS仙人Web仙人を目指す者が多いだろうけど
全体で見ればできるだけ自ら学びたくなくて他者にすがりたい人が多いでしょ

だからこのスレでライブラリやフレームワークを進めるのは
このスレ以外で相談されたときと比べたら控えるべき

例えば全く無知な人からこういう見た目のグラフを起きたいと言われて、
WebGLの数十のAPIと数十の技法をここで説明仕切るのは不可能だし、
より噛み砕いても説明しきれないときはWebGLを0から学んでこいとだけいうのはあまりに辛辣なので
グラフ表示ライブラリを提示して、そちらのこの使い方を変わりに学べということを言うのは極悪ではないとは思う

何れにせよ目的が学ぶことより問題対処の答えをもらうほうが大きくなってはいけないということ
ここは仕事依頼所ではなくて質問者が自ら学ぶ機会を作るための場所ということを忘れてはいけない
0025Name_Not_Found
垢版 |
2019/12/31(火) 09:37:35.58ID:???
そこで質問者に何を学ばしたいのかということ
jQuery力を身に付けさせたいのか、
jQueryなどに頼らなくてもWebAPIで実現できる力を身に付けさせたいのか、
それは各回答者によって違うし違ってて良いと思うが
ここがJavaScriptスレということは頭の片隅に置いておいてほしい

フランス料理スレがあったとして、そこで電子レンジ中心でするというのは面白いと思うが
あまり電子レンジ最高、これに頼らないのは変だというアピールをすると
なにかに特別こだわるのであれば亜流として他スレでやれということにってしまうのは仕方がないだろう
0026Name_Not_Found
垢版 |
2019/12/31(火) 12:45:02.16ID:???
>>24
> Web Componentsが控えてるから脱Angular、脱Reactになるというのなら
> jQueryなんてとっくに使われなくなってるはずでしょ

それは違うよ。Web Componentsはウェブアプリを作るもの
なので同じウェブアプリを作るAngularやReactと競合してる。

jQueryはウェブサイトに動きをつけるもの
Web Componentsと競合してない。

将来的にはWeb Componentsで作ったコンポーネントを
組み合わせるライブラリとしてjQueryが使われるだろう
0027Name_Not_Found
垢版 |
2019/12/31(火) 19:12:55.80ID:???
jQuery厨と反jQueryとのバトルかお
大晦日だし朝までやってみろだお
生テレビみたいに
0028Name_Not_Found
垢版 |
2019/12/31(火) 19:42:37.59ID:???
>>26
Web ComponentsとjQueryを対比してるのではなくて、
標準で補えるような機能があるから、競合すると言って移行が進むとは限らないでしょってこと
競合するってことは見方を変えると親和性が高く補い合えるということでもあるのだから

Web Componentsはウェブアプリを作るものではなく
要素を新たに作ったりコンポーネント化するというのはむしろ旧来のWebの作り方の延長上にあるものでしょ
それに作れたからと言ってそれらを上手く使ったり運用することまでは含まれていないのだから
そういう面でフレームワークは必要でしょ

またjQueryはウェブサイトに動きをつけるものっていうのであれば
Web Animation APIが競合するでしょ
でもだからといってjQueryが不要ということにはなっていないでしょ
0029Name_Not_Found
垢版 |
2019/12/31(火) 19:47:56.44ID:???
>>26
標準の各機能というのはあくまで機能であって、
フレームワークとか、ライブラリでもjQuery規模のものは
その世界観をまるごと提供するもので、そこに意味があるわけでしょ

そういう使い方をしているのであれば、
標準機能があるからフレームワークやライブラリが不要とはならないでしょ
「機能」のような粒度でそれらを欲しているわけではないのだから
0030Name_Not_Found
垢版 |
2019/12/31(火) 23:39:49.36ID:???
>>28
jQueryとの対比?何を言ってるのですか?
標準の機能があるからAngularやReactのような重いフレームワークが不要になり
またそれに伴いフレームワークがまたガラリと変わるって話をしてるんですが

> Web Componentsはウェブアプリを作るものではなく
> 要素を新たに作ったりコンポーネント化するというのはむしろ旧来のWebの作り方の延長上にあるものでしょ

従来のWebの延長だから、みんなWeb Componentsを選ぶでしょうね

> またjQueryはウェブサイトに動きをつけるものっていうのであれば
> Web Animation APIが競合するでしょ
動きってアニメーションのことじゃないですよ(笑)

動きというのは各コンポーネントの連携の話です。
AngularやReactでコンポーネントを作る時代は終わり
Web標準のWeb Componentsでコンポーネントを作るようになります。
いろんな所がオレオレブランドのコンポーネントを作るようになるでしょう
そこにフレームワークは組み込まれません

コンポーネントは部品です。その部品をつなげるものが必要です。
それがjQueryです。
0031Name_Not_Found
垢版 |
2019/12/31(火) 23:45:28.54ID:???
jQueryでコンポーネント(笑)作ってる奴には関係ないだろ
0032Name_Not_Found
垢版 |
2020/01/01(水) 00:09:12.79ID:???
Web Componentsでコンポーネント作るんでしょ?
0033Name_Not_Found
垢版 |
2020/01/01(水) 15:14:45.12ID:???
>>30
それは違う
原則として標準機能というのは低レイヤーを攻めてる
フレームワークなどは高レイヤー
Web Componentsも一番大きい部分はなにかというとShadowDOMであり
今まで既存の要素spanやdivなどを無理くり使って
欲しい物を作っていたのがよりスマートにできるということ

スマートにできるようになったからと言って、
開発者誰もが自分でShadowDOMを触るかと言うと違う
そこは引き続きフレームワークを使うのが普通だろう

要するにこの手の標準機能はフレームワークを
よりスマートに作れるようにするためにあると言っても過言ではない

>>コンポーネントは部品です。その部品をつなげるものが必要です。
そのとおり
>>それがjQueryです。
それは違う
jQueryは「Query」とついてることで分かるように要素を扱うことには特化しているが
要素間の高度な連携のための機能は入っていない
jQueryしか使わないのであればそこのロジックは全部自前で書くことになる
だからjQueryはあくまで「ライブラリ」と言われている
0034Name_Not_Found
垢版 |
2020/01/01(水) 16:34:48.95ID:???
>>33
デスクトップアプリの歴史を学んだほうが良いぞ
ShadowDOMでコンポーネントが作れるようになったら
次起きる流れはコンポーネントの配布だ

コンポーネントは特定のフレームワークに依存せずに
単独で使えたほうが良い。そしてツリービューとかそういった
便利なものが配布される。そしてRADツールの登場だ

RADツールを前提としたプログラミングモデルになる
.NETフレームワークと同じようなもん

今もあるがそれがウェブ標準技術をベースに再構成される
今あるものは何も残らんよ。MFCが消えたのと同じように
すべてが作り直される
0035Name_Not_Found
垢版 |
2020/01/01(水) 16:52:45.29ID:???
>>33
> jQueryは「Query」とついてることで分かるように要素を扱うことには特化しているが

jQueryで要素を操作するんじゃないよ。要素の操作はコンポーネントに組み込まれる。

jQueryの担当はイベントハンドラだよ。
コンポーネント時代において、コンポーネント間の情報のやり取りは
すべてイベントによって引き起こされる。イベントドリブンって知ってるかね?w

コンポーネントから特定のベントを受け取り、そしてそのまま又は多少加工して
他のコンポーネントに情報を渡す。コンポーネントは必ずしもUIを持っているとは限らない
タイマーコンポーネントのようなものもある。

ウェブという貧弱な技術からスタートしているだけで
結局の所、必要としているプログラミングモデルは、
最初から自由だったデスクトップアプリと変わらない。
デスクトップアプリを見ればウェブ技術の将来はわかる
0036Name_Not_Found
垢版 |
2020/01/01(水) 18:51:12.67ID:???
イベントハンドラに特化したライブラリがあれば充分だな
めでたしめでたし
0038Name_Not_Found
垢版 |
2020/01/02(木) 00:39:17.61ID:???
FormDataのappendをjqueryのcallbackで使ったらappendされなかったのですが
これはjqueryのせいですよね?
たしか$.ajaxでは"processData":falseと"contentType":falseの設定しなきゃいけなかったような・・
ajaxのときとは違ってエラーがでなかったのでめちゃくちゃハマりました・・
0039Name_Not_Found
垢版 |
2020/01/02(木) 00:42:39.36ID:???
いいえ、あなたの使い方が間違ってるだけです
0040Name_Not_Found
垢版 |
2020/01/02(木) 01:13:52.66ID:???
>>39
よくよく考えるとformdataにはキーも値もsetされていて
そのformdata送信後のパラメーター(コンソールのnetworkのところ)に反映されてないだけかも、でした
jqueryのcallback(例えばtoggleとかeach)の中でformdata.appendのときは送信後のパラメータに反映されてなくて
jquery関係ない外のブロックでformdata.appendすると送信後のパラメーターに反映される
みたいなところまでは検証できたと思います
”そもそもformdataにキーがセットされているか否か”をまた近い内に検証してみます
てっきり、パラーメータに反映されない=formdataにキーがセットできてない
だと思ってました
004140
垢版 |
2020/01/02(木) 08:37:20.01ID:???
https://httpbin.org/
サイト上のコンソール上にて検証しました
var prm=[["key0","val0"],["key1","val1"],["key2","val2"]];
var $hoge=$('<div id="hoge">hogehoge</div>');
$(document.body).append($hoge);
var formData=new FormData();
formData.append(...prm.shift());
$hoge.toggle(function(){
formData.append(prm[0][0],prm[0][1]);
formData.set(prm[1][0],prm[1][1]);
});
$.ajax({
"url": "https://httpbin.org/post";,
"type": "POST",
"processData":false,
"contentType":false,
"data": formData
}).complete(res=>console.log(res));

$.eachは大丈夫でした
$().toggleで使うとキーがappendできないっぽいです
0042Name_Not_Found
垢版 |
2020/01/02(木) 08:58:04.72ID:???
> $().toggleで使うとキーがappendできないっぽいです
だからそんなことはないって
お前が使い方間違ってるだけ
0043Name_Not_Found
垢版 |
2020/01/02(木) 09:06:04.54ID:???
だいたいその検証でなにがどうなってるのかさっぱりわからんし
他人にわかるようにかけ
0044Name_Not_Found
垢版 |
2020/01/02(木) 10:57:00.44ID:???
>>42,43
chromeとffでしか検証していませんが
FormDataにはgetメソッドというのがあってそれを使うとキーが取得できます
var prm=[["key0","val0"],["key1","val1"],["key2","val2"],["key4","val4"]];
var $hoge=$('<div id="hoge">hogehoge</div>');
$(document.body).append($hoge);
var formData=new FormData();
formData.append(...prm.shift());
$hoge.toggle(function(){
formData.append(prm[0][0],prm[0][1]);
formData.set(prm[1][0],prm[1][1]);
formData.append("key3","val3");
});
formData.set(prm[2][0],prm[2][1]);
console.log(formData.get("key0"));//val0
console.log(formData.get("key1"));//null
console.log(formData.get("key2"));//null
console.log(formData.get("key3"));//null
console.log(formData.get("key4"));//val4
0045Name_Not_Found
垢版 |
2020/01/02(木) 11:08:02.59ID:???
一応原因はわかりました
toggle内でconsoleするとなぜか最後のconsoleの後にconsole.logされるのでおかしいと思い
時間を置いてから最後のconsole.logを実行したらキーがセットされていました
0046Name_Not_Found
垢版 |
2020/01/02(木) 11:34:00.98ID:???
>>35
コンポーネントは要素でしょ
要素を操作するってことじゃん
逆に要素の属性指定で操作できない要素を作ったら
それWeb Componentの意味半減でしょ
0047Name_Not_Found
垢版 |
2020/01/02(木) 11:46:59.68ID:???
>>46
コンポーネントとなってる要素は操作する(事がある)
コンポーネントの中身の要素は操作しない

> 逆に要素の属性指定で操作できない要素を作ったら
コンポーネントとなってる要素の属性は操作する
コンポーネントの中身の要素の属性は直接操作しない(メソッド、イベント経由で行う)
0048Name_Not_Found
垢版 |
2020/01/02(木) 12:57:56.70ID:???
JQ厨にとってのコンポーネントはこれだから
同じものと思わない方が良い
<div class="my-component">
 <input type="checkbox" name="switch">switch1
</div>
0049Name_Not_Found
垢版 |
2020/01/02(木) 17:46:44.67ID:???
input type="file"のファイルを選択するボタンを押さずにダイアログを開きたいのですが
どうやればいいのでしょうか(File APIの常にひらっきぱなしD&Dのやつではありません)
0050Name_Not_Found
垢版 |
2020/01/02(木) 18:28:40.53ID:???
>>44
「javascript formdata」で検索して、MDN のサンプル通りに作れば?
0052Name_Not_Found
垢版 |
2020/01/02(木) 19:08:57.22ID:???
>>50
フォームの設置は簡単なのですが
ファイルを選択ボタンをjavascriptでクリックしたことにするやりかたがわからなかったのです
>>51
.click()で思い通りのやつができました!!
ありがとうございました!
0054Name_Not_Found
垢版 |
2020/01/03(金) 06:50:22.61ID:???
>>48

"俺が想像する"JQ厨にとってのコンポーネントはこれだから

でしょ?

そしてお前は、お前が想像するjQuery厨を叩いてるだけ
お前の中のお前が作り出した架空のjQuery厨と争ってるw
0055Name_Not_Found
垢版 |
2020/01/03(金) 08:56:28.07ID:???
>>54
ならこのコードをコンポーネントと呼ぶ奴は
jQuery厨でもないただのアホってことでいいんだよな?

いやー良かった良かった
0056Name_Not_Found
垢版 |
2020/01/03(金) 14:20:36.90ID:???
Web Componentsの話をしてるんだから
(今の文脈では)コンポーネント=Web Componentsでしょ?

今の文脈ではだからね。
Reactの話をしているときに、コンポーネント=Web Componentsなわけはない
0058Name_Not_Found
垢版 |
2020/01/03(金) 15:53:59.15ID:???
>>56
つまり文脈が変わればコンポーネントと呼ぶと?
0059Name_Not_Found
垢版 |
2020/01/03(金) 16:09:50.73ID:???
そりゃあそうだろう
componentsは何かの固有名詞ではなく
部品って意味の一般名詞だもの
0060Name_Not_Found
垢版 |
2020/01/03(金) 16:13:11.16ID:???
いや全然部品じゃないじゃん
0061Name_Not_Found
垢版 |
2020/01/03(金) 17:18:50.68ID:???
>>60
PHPなどを使ってその部分だけ別ファイルにして
使い回せるようにすれば部品になるでしょ?
0062Name_Not_Found
垢版 |
2020/01/04(土) 08:54:51.63ID:???
結局>>42さんの>だからそんなことはないって
のそんなことってどんなことだったんですか・・?
0063Name_Not_Found
垢版 |
2020/01/04(土) 22:31:49.98ID:???
https://api.jquery.com/toggle/#toggle-duration-complete
toggle関数の仕様を確認すると、
durationを省略してcompleteのみを指定した場合、completeが実行されるのはdurationのデフォルトである400ms後。
つまり、>41 は設定処理実行前に出力してる。
よって
> $().toggleで使うとキーがappendできないっぽいです
toggle関数の中でFormData#appendの動作が変わる、なんてことは起きてない。
0064Name_Not_Found
垢版 |
2020/01/05(日) 09:49:35.82ID:???
ようは400ms経つ前にappendされてないformdataを送ってしまうので
post先に反映されないということでは?
つまり>>42の段階で>そんなことはないって
のニュアンスが違うような
仮にそういう意味ではなく>>63だということは最初からわかってた
ってことなら>>44の結果が出る前に
「toggleの処理より先に$.ajaxやってるから」もしくは「全部toggleの中に書け」みたいな言い当てができているはず
それらを踏まえて>そんなことはない
のニュアンスは明らかに、>>41通りやってもformdataは送れる
みたいな意味だよなぁ・・
0065Name_Not_Found
垢版 |
2020/01/05(日) 10:12:41.94ID:???
>$().toggleで使うとキーがappendできないっぽいです
の意味は質問者回答者それぞれの視点で
質問者>>41 ( 結果的にappendされていないデータが返ってきた → appendできない、なぜ? )
回答者1 ( appendはできていることを知っている → appendできない、と言っているのは間違っている )
回答者2 ( appendはできていることを知っている → appendできないと思っているのは、処理の順番を質問者が知らないから )

ざっくりこういう回答者の思考パターンがあると思うけど
回答者1みたいな人だと、そもそもソレがわからないから質問してるんだが?みたいな質問とかなり相性が悪い
もちろん質問者がコードを開示しなかったり質問の難易度にもよるけど
0066きりん
垢版 |
2020/01/13(月) 01:45:37.42ID:O01yZc0t
function boxclear03() {
const clears = document.getElementsByClassName('clear03');
for(var i=0, len = clears.length; i< len; i++){
var clearem = clears.item(i);
clearem.value = "";
clearem.checked = false;
}
}


あるイベントが行われると、
クラス「clear03」の要素全ての、フォームの値とチェックボックスのチェックが取り除かれる
スクリプトを作ってみたのですが、フォームはクリアになるのですが、チェックボックスはクリアに
なりません。
チェックボックスをクリアにするにはどうすればいいでしょうか?
0067きりん
垢版 |
2020/01/13(月) 02:45:34.21ID:O01yZc0t
すいません。自己解決しました。
0068Name_Not_Found
垢版 |
2020/01/14(火) 08:57:13.93ID:1IADoVEp
【環境】Windows10 pro, chrome バージョン: 79.0.3945.117(Official Build) (64 ビット)
【条件】自前の class データを、JSON 経由で保存・復元したいが、復元部分のやりかたがわからない
【何をしたのか】
(1) 自前の class データを用意
(2) データを入力
(3) そのデータを、class ごと localStrageに stringify で保存
(4) (3) のデータを localStrage から stringify と parse で取得
(問題) 取得した文字列をどうしたら、自前の class に再格納できるのかわからない
【エラーメッセージ】なし
【期待する結果】自前の class にすんなりデータ格納する方法が知りたい

【サンプルコード】
(1) class testClass {
constructor ( a, b, c ) {
this.aa = a;   this.bb = b;   this.cc = c;
};
あとは上記のゲッターセッター
}

(2) var xxx = new testClass ( 963, 852, 741 );
(3) localStorage.setItem ( "testKey", JSON.stringify( xxx ) );

ここで、 testKey を chrome のデバッグ機能で見ると、
{ "aa": 963, "bb": 852, "cc": 741 } が入っているのは確認。

(4) JSON.parse( JSON.stringify ( localStorage.getItem ( "testKey" ) ) );
で取得すると、{ "aa": 963, "bb": 852, "cc": 741 } が得られるが、
この値をどうしたら testClass 型に戻せるのかわからないです。

イメージ的には、下記のような感じのことがしたいです。testClass yyy にデータを読み込む感じ
testClass yyy = JSON.parse( JSON.stringify ( localStorage.getItem ( "testKey" ) ) );
0069Name_Not_Found
垢版 |
2020/01/14(火) 10:01:01.54ID:???
>>68
(2) var xxx = new testClass ( 963, 852, 741 );
(3) localStorage.setItem ( "testKey", xxx.AABBCC );
みたな感じで(3)で{ "aa": 963, "bb": 852, "cc": 741 }を返すゲッター(AABBCC)を放り込み
で、その後は(も)xxxを扱う
というのが普通だと思うけど
0070Name_Not_Found
垢版 |
2020/01/14(火) 11:14:50.45ID:1IADoVEp
>>69
すみません、(4) について教えて下さい。

新しく作った testClass のデータに
以前のセッションで保存していた localStorage データを
復元するように読み込む方法が知りたいです。
0072Name_Not_Found
垢版 |
2020/01/14(火) 14:51:30.03ID:???
>>70
localStorage.setItem('testKey', `data:text/html,<script>alert('testClass相当のオブジェクトを書き込む');</script>`);
$(document.body).append(localStorage.getItem("testKey"));
0073Name_Not_Found
垢版 |
2020/01/14(火) 18:52:23.05ID:PQLCVKFf
一般的にインラインの記述をすると、デバッガーが効かなくなるんでしょうかね
0074Name_Not_Found
垢版 |
2020/01/14(火) 23:29:02.33ID:???
>>70
型とかそもそも…

説明ではnewしてインスタンスが返る
とか普通の言語っぽく言ってっけど
ただのオブジェクトですし

そのtestClassをコピペしてtestClass2作って
new testClass2したら
全く同じもの出来ちゃうよ
0075Name_Not_Found
垢版 |
2020/01/15(水) 00:17:26.17ID:???
RegExp.$1.replace('foo', 'bar')

などとすると、RegExp.$2が機能しなくなるようなんですが
この理由について解説してるサイトがあれば教えて下さい
0077Name_Not_Found
垢版 |
2020/01/15(水) 03:39:33.40ID:???
それは後方参照の説明をしてるだけで質問の答ではない
0078Name_Not_Found
垢版 |
2020/01/15(水) 04:16:57.38ID:???
>>68
constructor の引数を、オブジェクト渡しに、変えた方が良いのでは?
JavaScript では、constructorの多重定義が出来ないので、面倒

class Test {
constructor ( obj ) {
this.a = obj.a;
this.b = obj.b;
}
}

var obj = new Test ( { b: "2", a: 1 } );
console.log( obj );
// Test { a: 1, b: '2' }
0079Name_Not_Found
垢版 |
2020/01/15(水) 05:54:33.72ID:???
>>77
・回答には多様性があります。他人の回答を尊重してください
・他人の回答を批判する代わりに、自分ならこう書くという例を示してください
・他人の回答を見たくないのであれば、文句をつける代わりにNGにして見えないようにしてください。文句をつける=荒らしです
0080Name_Not_Found
垢版 |
2020/01/15(水) 06:19:09.29ID:???
つまりそれを利用してわざと的外れな回答をしたわけだな
0081Name_Not_Found
垢版 |
2020/01/15(水) 06:28:18.73ID:???
わざと的外れな回答をしたかどうかは関係ありません
ルールに従いましょう
0082Name_Not_Found
垢版 |
2020/01/15(水) 09:27:17.98ID:???
new FileReaderのreader.readAsTextってめちゃくちゃ読み込み遅くないですか?
フォルダ30個分(ファイル数100個くらい)を同時にやってみたら
いつまで経ってもうんともすんともいいません
マシンのスペックに依存しているのはわかるのですがもしかしてそれ以外にも制限あったりしますか
0084Name_Not_Found
垢版 |
2020/01/15(水) 12:17:13.18ID:???
new FileReaderで読み込んでアップロードし終わったファイルデータ?の
メモリ解放的なことってどうにかできないものか・・
タブ閉じればいいけど、同じタブだとどんどん貯まってく
0085Name_Not_Found
垢版 |
2020/01/15(水) 14:08:56.43ID:???
>>84
どっかに変数で保持し続けてたりしない?
0087Name_Not_Found
垢版 |
2020/01/15(水) 22:13:43.55ID:???
>>85
var hoge=formdata;みたいにそのままにしてた
hoge=nullとかにすれば開放されるの?
今度試してみる
0088Name_Not_Found
垢版 |
2020/01/16(木) 12:45:06.52ID://pOUTQK
>>68 です。
みなさん、いろいろご回答ありがとうございます。
説明が下手ですみません。

ゲームのセーブデータのような使い方をしたいと思いました。
ネットを頼りに見様見真似で、保存していた
{ "aa": 963, "bb": 852, "cc": 741 }
を取得できたのはいいけど、この文字列をどうしたら便利に使えるか
(=元のデータに復元できるか)、がわかりませんでした。
探し方がわるいのか、どの説明も上記の「文字列として取れます」で終わっていて、
その先の解説が欲しいなと…

それとも、文字列を取得できた時点で JSON の役目はおわっていて、
あとは csv 読み込みみたいに自分で切り分けて使うのでしょうか。
みなさんなら、この文字列どうするかんじでしょうか。。。

最悪、JSON使わなくても大丈夫そうな処理なのですが、
せっかくなので使って便利なら試したく思いました。
0089Name_Not_Found
垢版 |
2020/01/16(木) 13:35:55.10ID:???
const obj = JSON.parse()
const yyy = new testClass(obj.aa, obj.bb, obj.cc)

yyy.aa // 963
0090Name_Not_Found
垢版 |
2020/01/16(木) 22:29:56.27ID:???
>>88
データ形式によっちゃ使えないけど例だけ満たせればよいなら

const yyy = new testClass(null, null, null);
JSON.parse(json, (key, value) => {
 if (key) yyy[key] = value;
});

とかw
009178
垢版 |
2020/01/16(木) 23:34:41.94ID:???
>>78
みたいに、

new testClass( obj )
と、1つの引数のオブジェクト渡しに変えた方が、良さそう

引数を3つも渡すのは、面倒でしょ?
0092Name_Not_Found
垢版 |
2020/01/17(金) 03:55:24.33ID:???
理由は面倒だから?w
new testClass(1, 2, 3)
と書くのが面倒で、
new testClass({a: 1, b: 2, c: 3})
と書くのは面倒じゃないんだ?www
0093Name_Not_Found
垢版 |
2020/01/17(金) 06:25:26.57ID:???
頭が悪いね
大ヒント:obj.a
0094Name_Not_Found
垢版 |
2020/01/17(金) 06:40:13.58ID:c4cACoID
テトリスくらい作れないと話になりませんか?
0095Name_Not_Found
垢版 |
2020/01/17(金) 08:13:00.78ID:gip8AQMU
WebフォームとDBいじるだけならテトリス要らないと思われ
ゲーム作るならテトリスをコピーするのは大事だけど、新しい落ちゲー作るアイデアのが大変
0096Name_Not_Found
垢版 |
2020/01/17(金) 08:21:36.97ID:c4cACoID
新しいおちげー作るにしてもテトリスは基本になるかなと
ゲームエンジン使ってるんですけどね
0097Name_Not_Found
垢版 |
2020/01/17(金) 15:43:36.63ID:s+p7yde/
みなさん本当にありがとうございます。

>>89
すみません、保存するのは何かのポイントのように変わるものです
数字は固定じゃないです

>>90
アロー演算子わかんないです…

>>91
ちょっと何言ってるかわかんないです…(自分の習熟度が低すぎて)
localStorage.getItem ( "testKey" ) から取れた値を復元したいです

>>92
var aaa = new testClass ( 1, 2, 3 );
localStorage.setItem ( "testKey", JSON.stringify( aaa ) );
var bbb = new testClass( localStorage.getItem ( "testKey" ) );

で、bbb が {aa: "{"aa":1,"bb":2,"cc":3}", bb: undefined, cc: undefined} になっちゃった…
おしい…?
でも、そんなニュアンスのことをしたかったです。

>>93
はい(真顔)
なんで皆さんが頑なに localStorage.getItem ( "testKey" ) を起点に答えてくれないのか
未だにわかっていません…
{"aa":1,"bb":2,"cc":3} になった時点で再利用できないデータなのか。。。

−−−
初歩から出直すべきですかね… (^^;;;
0099Name_Not_Found
垢版 |
2020/01/17(金) 20:08:42.03ID:???
最近不思議に思っていることがあります
各ブラウザがサードパーティクッキーを制限すると発表して騒ぎになっていますが、
別に広告主が提供先サイトにJSを埋め込ませれば好きなように好きなだけ広告主のサーバーとやり取りさせられますよね?
サードパーティクッキーを制限すると、どんな問題が本質的に解決するのでしょうか?
0100Name_Not_Found
垢版 |
2020/01/17(金) 20:11:14.10ID:???
広告主に「たくさん広告表示されました!だからお金ください!」って
請求できるってこと?
0102Name_Not_Found
垢版 |
2020/01/17(金) 21:20:12.95ID:???
>>101
それは広告主のサーバー側の設定の話なので問題にはならないのでは?
0103Name_Not_Found
垢版 |
2020/01/17(金) 21:25:38.82ID:???
>>100
それはCookieでもできますよね?
だから最近は表示ではなくほとんどクリックベースになっているのでは?
010478
垢版 |
2020/01/18(土) 00:18:02.34ID:???
>>97
JavaScript では、他の言語のように、constructor の多重定義が出来ないから、
設計する際、どちらかを選択しないといけない!

Test は引数を、1つのオブジェクトとして渡す方法で、
Test2 は各引数を、別々に渡す方法だけど、
Testの方が分かりやすいかなと思って

class Test {
constructor ( obj ) {
this.a = obj.a;
this.b = obj.b;
} }

var obj = new Test ( { b: "2", a: 1 } );
console.log( obj );
// Test { a: 1, b: '2' }

次へ続く
010578
垢版 |
2020/01/18(土) 00:18:40.19ID:???
class Test2 {
constructor ( a, b ) {
this.a = a;
this.b = b;
} }

var obj = new Test2 ( 1, "2" );
console.log( obj );
// Test2 { a: 1, b: '2' }

各引数を別々に渡す方法だど、引数の順序で決まるから、
下のように、引数を逆の順番で渡せない!
つまり、順番を確認しないといけないので、ややこしく、バグりやすい設計

var obj = new Test2 ( "2", 1 );
console.log( obj );
// Test2 { a: '2', b: 1 }
010678
垢版 |
2020/01/18(土) 01:02:28.85ID:???
>>97
【JavaScript入門】JSONの作成とparse() / stringify()の使い方!
https://www.sejuku.net/blog/47716

var js_obj = {
a: 1,
b: "2"
}
console.log( js_obj );
// { a: 1, b: '2' }

// JSON.stringify で、JavaScript(JS)のオブジェクトを、JSON に変換する
var json_obj = JSON.stringify( js_obj );
console.log( json_obj );
// {"a":1,"b":"2"} JSONは、プロパティ名が文字列になっている!

// JSON.parse で、JSONをJSオブジェクトに戻す
js_obj2 = JSON.parse( json_obj );
console.log( js_obj2 );
// { a: 1, b: '2' }
010778
垢版 |
2020/01/18(土) 03:41:24.11ID:???
>>106
の続き

JSON.parse で、JSONをJSオブジェクトに戻した、js_obj2 は、{ a: 1, b: '2' }

ここで、>>104
で述べた、constructor の引数に、1つのオブジェクトとして渡す方法が、便利!

class Test {
constructor ( obj ) {
this.a = obj.a;
this.b = obj.b;
} }

var obj = new Test ( js_obj2 );
console.log( obj );
// Test { a: 1, b: '2' }
0108Name_Not_Found
垢版 |
2020/01/18(土) 07:13:59.10ID:???
元々がオブジェクトならそのまま渡せた方が便利だが
他の呼び方もされるならその限りではない
0109Name_Not_Found
垢版 |
2020/01/18(土) 11:07:03.62ID:GuxRgmIP
javascriptでゲーム作ってる人はすくにゃいですか?
0110Name_Not_Found
垢版 |
2020/01/18(土) 12:23:16.51ID:???
>>104
ああああああああああああああああああ
できちゃあああああああああああああああああ!!
やったーーーーー!!!! んほおおおおおお!!

ありがとうございます、そのままコピペでコメント付きソースになるの大感謝です!
いったん頂いたソースで動きを確認して、自分の使いたい方のソースに一行ずつ置き換えたら、
『オブジェクトごとstringifyでローカルストレージへ保存、
 ローカルストレージからparseでオブジェクトに復元』
の流れができました!

引数の入れ替わりの考慮や、プロパティ名のところなど、細かい解説もたすかりました!
あったけぇ…(;;) ありがとうございます…!
>>78で既にほぼ正解近くの回答もらってたんですね、他の方もありがとうございました。
0111Name_Not_Found
垢版 |
2020/01/18(土) 13:00:40.61ID:???
ぶっちゃけると2020年からは
オブジェクトを保存したいのならKVS推奨なんだけどね
0112Name_Not_Found
垢版 |
2020/01/18(土) 13:07:32.53ID:???
何と比較してどういう理由でKVS推奨と言っているのか気になる
0115Name_Not_Found
垢版 |
2020/01/18(土) 18:19:36.97ID:???
SVGやその中のpathの幅や高さは実際の見た目ではなく余白のあるキャンバスのサイズになりますが、実際に表示されている線の幅・高さを取得する方法ってありますか?

JSで頑張って取得するより、余白なしのSVGを用意した方が手っ取り早いかな…
0116Name_Not_Found
垢版 |
2020/01/18(土) 21:05:17.42ID:???
昨今のデバイスはD2Pでないので実際の見た目は検則できない
0118Name_Not_Found
垢版 |
2020/01/19(日) 13:31:00.35ID:???
計算上の内部の値で必ずしもSVG要素の見た目が判別できるわけではない
0119Name_Not_Found
垢版 |
2020/01/19(日) 15:14:44.62ID:???
「SVG要素のサイズ」なら、既出の方法で良いかと
0120Name_Not_Found
垢版 |
2020/01/19(日) 19:00:35.69ID:???
そういえば数年前くらいにjavascriptを埋め込める?もしくは
読み込んだ画像データをjavascriptで操作できるみたいなコンセプトの画像フォーマットがあったと思うのですが結局あれはどうなったんですか
0121Name_Not_Found
垢版 |
2020/01/19(日) 20:47:57.12ID:???
初歩的な質問なんだけど
githubで公開されてるライブラリって基本的にどのフォルダをダウンロードすればいいの?
0122Name_Not_Found
垢版 |
2020/01/19(日) 23:49:24.78ID:???
GitHub と、ローカルPC 双方の、プロジェクトルートをシンクロさせるのじゃないの?
0124Name_Not_Found
垢版 |
2020/01/20(月) 00:21:35.31ID:???
車ってどうやって操作したらいいの?みたいな質問やな
0125Name_Not_Found
垢版 |
2020/01/20(月) 08:14:59.85ID:???
初歩を押さえない初心者しかいない件
0126Name_Not_Found
垢版 |
2020/01/20(月) 08:29:24.95ID:???
聞き方が悪かったわ
srcとかdistとかdocsとかあるけどどれ使えばいいの?
0127Name_Not_Found
垢版 |
2020/01/20(月) 13:59:53.94ID:Yq2mEYPn
>>126
すれ違いだからググってほしいところだけど
とりあえずdistの中で
0128Name_Not_Found
垢版 |
2020/01/20(月) 16:29:37.72ID:Lw8sfmye
pdfの特定のページにテキストフォームを作成する方法ってありますか??
普通にやっても1ページ目にしかできない…
0129Name_Not_Found
垢版 |
2020/01/20(月) 18:54:12.69ID:OuXSc3i7
128ですが、自己解決しました。スレ汚しすみません
0130Name_Not_Found
垢版 |
2020/01/21(火) 07:54:06.48ID:RMnuU/zx
chrome のデベロッパーツールのコンソールログのところで、
右クリックすると hide messages from XXXXX って出ると思うんですが、
間違ってこれを押したからか、エラーが表示されなくなってしまいました。
hide しちゃったのは、どうやったら再表示できるんでしょうか。
0131Name_Not_Found
垢版 |
2020/01/21(火) 08:17:16.80ID:???
解決しました、失礼しました
0132Name_Not_Found
垢版 |
2020/01/21(火) 22:22:18.84ID:???
document.writeで書いたhtmlのスタイルシートが完全に効かない
0134Name_Not_Found
垢版 |
2020/01/21(火) 23:30:42.80ID:???
>>133
ありがと
出先だから後で見るね

body内からdocument.writeしていたのを
header内に移動しただけだから
動きは保証されてるはずなのにぃ
0135Name_Not_Found
垢版 |
2020/01/22(水) 12:49:36.64ID:???
>>133
132だけど、このツールしらなかった、ありがと
とはいえ、ちょっと複雑なscriptにしちゃってるから、
すんなり見ることはできなさそう。。。

bodyに移動したらやっぱり普通に見れたから、
document.writeの仕様的な何かなんかな
0136Name_Not_Found
垢版 |
2020/01/22(水) 12:58:14.02ID:rrQ3wlRN
>>135
関係ないと思う
ふつうにセレクタ間違ってるだけかと
0137Name_Not_Found
垢版 |
2020/01/22(水) 16:13:49.05ID:N+cpHnLv
>>135
document.writeが完了したら

適用されてないスタイルのセレクタをコピーし
ブラウザの開発ツールを開き、consoleタブを選択して

document.querySelector('コピったセレクタをペースト');

と打ってenterして要素が返ってこない、もしくは
開発ツールのelementsタブを選択して、⌘+Fして検索窓を開き
コピったセレクタをペーストして
要素が選択されない場合は

セレクタが間違っているよ
0138Name_Not_Found
垢版 |
2020/01/22(水) 19:47:16.78ID:SRoKId4J
pdfフォームのテキストフィールドのフォーマットを数値にする方法を教えてください
AFNumber_Format使ってもカスタムにしかならないから送付先がタブレットとかだと動かないんです
0139Name_Not_Found
垢版 |
2020/01/22(水) 19:49:19.06ID:???
ビューワ側の問題なんじゃない?それ
0140Name_Not_Found
垢版 |
2020/01/23(木) 00:15:03.22ID:???
>>134-135
>body内からdocument.writeしていたのを、header内に移動しただけだから、動きは保証されてるはず

これは、全く保証されていない!

だって、body は、header 後に出力されるから、headerの内容は消されないのでは?

一方、header内でやると、その後のheader内の処理はされないとか、
bodyを作った後に回されて反映されないとか、動作が保証できないだろ?
0141Name_Not_Found
垢版 |
2020/01/23(木) 05:23:49.27ID:???
みんなありがとーだよー

>>136
>>137
ちゅまんセレクタ使ってないの…
.unchi {}みたいなのを作って、classでテキトーに呼んでるんだぅ

>>140
あるとしたらその辺かもー
いっこ気になるのが、同期処理したくてasync使ってることかなぁ

<header>
document.write(link rel の cssインポート)
document.write(各種javascript外部ファイル)

async開始
  csvファイル読み込み
  読み込んだcsvを使う<body>&<table>のhtml(document.writeで書く)
async終了
</header>
<body>
上書きされる元々のbody内
</body>

これを動かすと元々の<body>が無かった事になって、async内の<body>が表示される感じ
css効かせてるのは、このasyncで書き込む方

するとtableは普通に出るけど、cssだけ抜け落ちてる
css読み込みまでは非同期でも読み込みが間に合わないとは思えないくてナンデカナーって
asyncの実行順はログで確認済み
0142Name_Not_Found
垢版 |
2020/01/23(木) 08:46:59.18ID:???
あれ、ひょっとしてbodyの上書きってより
html全体の上書きになってるのかな?
帰ったら調べるべ
0143Name_Not_Found
垢版 |
2020/01/23(木) 10:52:45.00ID:???
>>132です、解決したー ↑がビンゴでやんした

header内のdocument.writeをやったことで、
それまでに読み込んでいた各種cssやjavascript等全て消え去って、
まっさらな状態で<body>からの記述だけになってたー
開発ツール上でいわれた通りソース見て確認した!

ヒントくれた人、開発ツールの使い方教えてくれた人、
サンクスぅぅぅ
0144Name_Not_Found
垢版 |
2020/01/23(木) 12:25:35.87ID:???
document.writeはFPにも設定があるように相当に非推奨
0145Name_Not_Found
垢版 |
2020/01/23(木) 14:51:20.51ID:???
document.writeで要素を書いて
CSSやJSファイル読み込むのはだいぶ前にできなくなったんじゃないか

以前それやってて、動かなくなるってChromeの中の人が言いだしたんで
いろいろ改修した覚えがある
0146Name_Not_Found
垢版 |
2020/01/23(木) 21:35:11.28ID:???
>>144-145
ファイル名?時間 で取得して
キャッシュ使わないようにしてるんだけどダメ?

キャッシュ対策その後なんか出たっけ
ページ読むたび、絶対最新取得するオプションとか
0147Name_Not_Found
垢版 |
2020/01/23(木) 21:46:05.19ID:ZoMVOw6M
>>146
キャッシュと何の関係が
0148Name_Not_Found
垢版 |
2020/01/24(金) 00:16:44.89ID:???
document.write を使わない方がよい

あらかじめ、container, main, app などのid を作っておいて、そこにDOM を追加すればよい。
<div id="container"></div>

それか、Ruby on Rails などのフレームワークでは、
各部品は各部品用のテンプレートファイルに書いておいて、
それらをメインのapplication.html に読み込んで、全体像を作る
0149Name_Not_Found
垢版 |
2020/01/24(金) 02:04:43.49ID:???
>>148
なるほど、そっちでやるのか

ちなみに、どの画面でも表示するルートメニューみたいなの、変更あった時いちいち全htmlを修正するの面倒だからjsに逃してdocument.writeで共通化してるけど、それもダメなんけ?
htmlって外部データのインポートあったっけ
0150Name_Not_Found
垢版 |
2020/01/24(金) 03:44:22.36ID:???
https://developers.google.com/web/updates/2016/08/removing-document-write?hl=ja
https://developers.google.com/web/tools/lighthouse/audits/document-write?hl=ja
↑Googleはdocument.write()を使うなってさ。

単純に全ページ共通で読み込まれるブロックを1つ作ればいいんじゃない
フレームワーク未使用で静的ページだからそれが面倒ってならもNuxt.jsだのGatsby.jsだのに移植したほうが今後の改修に耐えられるような。
0151Name_Not_Found
垢版 |
2020/01/24(金) 05:02:45.48ID:???
>>150
>単純に全ページ共通で読み込まれるブロックを1つ作ればいいんじゃない

ううぅ… そんな事できんの…?
出来るならもちろんそうしたい
ひんとか検索キーワードだけでもプリプリプリーズ💩
0152Name_Not_Found
垢版 |
2020/01/24(金) 06:38:37.94ID:???
jQueryの.loadで共通のhtml1個作って読み込んでくれば?
ただ、そういう面倒な部分を共通化しいてきたいのなら、
PHPだのjsのフレームワーク使ってやったほうが生産性大分上がると思うよ。
毎回DOMいじってどうこうしてたら面倒でしょうがないと思う。
0153148
垢版 |
2020/01/24(金) 06:43:49.15ID:???
SASS なんかも、Partial

application.scss
_reset.scss
_variables.scss

この3つのファイルがあって、application.scss 内に、

@import "reset";
@import "variables";

で読み込める!

どのフレームワークでも、Partial
0154Name_Not_Found
垢版 |
2020/01/24(金) 06:57:51.95ID:???
>>151
template要素を使うとか、createElementとか
0155148
垢版 |
2020/01/24(金) 07:03:26.44ID:???
Ruby on Rails では、application.html.erb の中で、各部分テンプレートを読み込む。
_header.html.erb, _footer.html.erb に、その部分だけを作っておく

ERB テンプレート内では、<% 〜 %> 内に、Ruby のコードを書いて、それをHTML へ変換する。
<% 式 %>, <%= 式 %>

<div id="container">
<header>
<%= render "header" %>
</header>

<footer>
<%= render "footer" %>
</footer>
</div>

このように、どのフレームワークでも、Partial で作る!
React, Vue.js, Electron なども同じ
0156148
垢版 |
2020/01/24(金) 07:11:51.13ID:???
フレームワークを使わない場合の、Partial は、
Document.createDocumentFragment( ) とかかな?

例えば、メモリー内で、header, footer 用のDOM 木を構築しておいて、
<div id="container"> に読み込むとか?
0158148
垢版 |
2020/01/24(金) 07:50:29.01ID:???
lodash の、template

<% 〜 %> 内に、JavaScript のコードを書いて、それを文字列へ変換する

<% 式 %> 値を埋め込まない
<%= 式 %> 値を埋め込む
<%- 式 %> HTML エスケープする

var compiled = _.template(
'<% _.forEach(users, function(user) { %>
<li><%- user %></li>
<% }); %>'
);

compiled({ 'users': ['fred', 'barney'] });
// => '<li>fred</li><li>barney</li>'
0159Name_Not_Found
垢版 |
2020/01/24(金) 13:37:57.31ID:???
>>152
jQueryはじめてつかったけど、できちゃああ! ありがとうー
でも、jQueryって将来性大丈夫なのかな。。。(´ρ`)
あ、公式のjs落としておけば、js生きてる限り平気なのか(中身jsだから?)

>>153-158
いろいろありがと、SASS自体しらなかった、CSSまとめるの楽になりそうー
久しぶりに触ってるので、新しい情報いっぱいで感謝。
templateも見てみるけど、Rubyはちとなじみ無いかも(むつかしそう…)

>>144-145
document.writeメッチャつかってたから、非推奨情報たすかった!

💩 < さんくぷー!
0160Name_Not_Found
垢版 |
2020/01/24(金) 21:02:29.32ID:???
DOMを知らないコピペプログラマ増えたなー
0161Name_Not_Found
垢版 |
2020/01/24(金) 21:15:23.30ID:???
10年前に比べたらむしろ激減してるよ
0162Name_Not_Found
垢版 |
2020/01/24(金) 21:26:42.09ID:???
結局、オブジェクトのディープコピーの定番はなんなん?
0163Name_Not_Found
垢版 |
2020/01/24(金) 21:43:09.91ID:???
>>162
自分はlodashのcloneDeepに頼るか
むかし作ってメンテし続けてる自前関数でやってる
0164Name_Not_Found
垢版 |
2020/01/24(金) 21:44:37.64ID:a4Ae8CKG
>>161
10〜15年くらい前が
いちばんどむどむ言ってた気もする
けっこういろいろ自前でやらにゃならんかった頃だし
0165Name_Not_Found
垢版 |
2020/01/24(金) 21:52:54.11ID:???
>>163
lodashか・・・試してみるか・・・

jQuery信者なので$.extend使ってるんだけど
未だにjQueryはJKにも笑われちゃうよな・・・
0166Name_Not_Found
垢版 |
2020/01/24(金) 22:56:37.92ID:???
>>165
そうでもない気もする

俺の身の回り限定だけど
jQ以降の世代は、今のESになって盛んに脱jQを叫んでいるけど
jQ以前の世代は、便利なものもあるんだけどなーと思ってる
0167Name_Not_Found
垢版 |
2020/01/24(金) 23:06:09.61ID:???
DOM1箇所いじるだけならjQueryで十分いいし使えるんだけど、
それ以上の用途だと逆に面倒でとても使ってられんからなぁ。

前に、クライアント側にもフォームのバリデーション追加してくれって話しになって
一度決まったものを作るだけならよかったものの、そっから改修で弄り始めた途端に一瞬でカオス状態になったよ。
0168Name_Not_Found
垢版 |
2020/01/24(金) 23:51:18.85ID:???
>>162
型情報が失われるなど、あまり良くないやり方では、
JavaScript(JS)オブジェクト/JSON 文字列の変換により、新しいオブジェクトを構築するとか

JS Object → JSON 文字列 → JS Object(新しいオブジェクト)

Haxe のSerializer では、型情報を維持したまま、
異なる言語間でも、文字列で通信できるけど

ただし、抽象クラスには対応していない
0169Name_Not_Found
垢版 |
2020/01/25(土) 00:22:59.79ID:???
>>168
それって
例えばプロパティの値が日付オブジェクトだった場合
メソッドはどうなってしまうん?
0170168
垢版 |
2020/01/25(土) 00:55:31.21ID:???
JSON では型情報が無くなるから、メソッドを呼んだりできないでしょ?

単純なデータを入れるだけの使い方をして、
型情報などは、別の文書に書いておく

この文書を管理する手間が掛かるから、面倒!

だから各言語には、通信先のホストで、オブジェクトを再構築できる、Serializer がある

各言語のオブジェクト → 文字列で通信 → オブジェクトを再構築
0171Name_Not_Found
垢版 |
2020/01/25(土) 12:23:44.28ID:???
>>168
json経由すんのってなんか遠回りでやだよね
結局定番らしい定番は無いってことやんね
その都度適当な方法でコピるしかないのか
0172Name_Not_Found
垢版 |
2020/01/25(土) 12:39:30.57ID:???
コピペプログラマは永遠になくならないな
0173Name_Not_Found
垢版 |
2020/01/25(土) 12:58:13.24ID:???
コピペプログラマが有識者にネタを求めて質問するのが、ここの日常だから
0174Name_Not_Found
垢版 |
2020/01/25(土) 13:16:09.59ID:???
>>164
だからこそ内容の全くわかってないコピペで動かない厨が多かった
0175Name_Not_Found
垢版 |
2020/01/25(土) 13:18:25.36ID:???
>>162
非同期で良いならMessageChannelを使うのが良い
もしくは標準で議論が進んでるからそれに近いポリフィルを作って使うかの2択
0176Name_Not_Found
垢版 |
2020/01/25(土) 13:31:23.34ID:???
>>172
そのコピーすらロクにできないんだよJavaScriptは!
0177Name_Not_Found
垢版 |
2020/01/25(土) 14:08:03.85ID:???
JSのオブジェクトはJSからは参照ができない内部スロットがあるのでコピーは難しい
うかつに完全なクローンが作れたらセキュリティにも影響するかもしれないし
0178Name_Not_Found
垢版 |
2020/01/25(土) 14:57:36.80ID:???
というかコピーはどの言語でも難しい問題だよ
そもそも関数を値としてみるかどうかだからな

値として見るならコピーした時、それは複製されていなければいけない
だけど大体の言語は値としてみなしてないだろう?

例えばアプリの特定のバージョンでオブジェクトをコピーというか
データとしてファイルにシリアライズする。

そしてアプリのバグを修正したバージョンで、データを読み取る
そうすると、その保存したデータに含まれる関数は
バグ修正の前のものであるべきかどうか

という話をすれば、コピーしたときに関数の情報はデータとして
含まれるべきかどうかという問題が難しいってわかるだろ?
0179Name_Not_Found
垢版 |
2020/01/25(土) 15:21:41.89ID:???
保存がしたい場合は別だけど、最初から複写されることがわかっている場合は
操作対象は元のオブジェクトに必ずプロキシを噛ませて使うことにしたら良い
値に変更が及んだ場合のみそのプロパティは以後そのプロキシでキャッシュされる
そうすればメソッドのコピーを考えなくても良い
0180Name_Not_Found
垢版 |
2020/01/26(日) 22:41:01.29ID:???
Windows10でGoogle Chromeを使っています。

https://blog.capilano-fw.com/?p=4063
上記の画像認識のリンクの中で

「特定の顔が誰なのかを判別する」

という項目がありますがそのプログラムの中で

const detection = await faceapi.detectSingleFace(image)
.withFaceLandmarks()
.withFaceDescriptor();

の内容をconsole.logで出力してみるとundefindedになります。
どなたかこのプログラムを試した方いらっしゃらないでしょうか。

ちなみにhttpsをアパッチで立ち上げていて、オレオレ証明を使っています。
0181Name_Not_Found
垢版 |
2020/01/27(月) 13:57:36.02ID:???
正確には顔認識じゃなくて、簡単な絵の画像認識をしてみたいのですが
いい方法がないでしょうか。
0182Name_Not_Found
垢版 |
2020/01/27(月) 19:00:54.23ID:???
Three.jsでレンダリングされたcanvasが、
ダウンロードバーの出現のせいで大きさが変わって困ってます。
ダウンロードの開始・終了は検知できるので
その間だけ自動サイズ調整を無効にするにはどうすればよいですか。
0184Name_Not_Found
垢版 |
2020/01/27(月) 19:22:10.17ID:???
vanilla jsは文法は覚えたくらいのレベルの次となる、上のステップに行くには何をするのが学習する上で有効ですか?
おすすめの課題などがあれば紹介していただけると嬉しいです
0185Name_Not_Found
垢版 |
2020/01/27(月) 19:38:40.29ID:???
>>184
文法はバニラでなくても必要
ES2019を学べ
0186Name_Not_Found
垢版 |
2020/01/27(月) 22:28:57.55ID:???
180です。
ごめんなさい、絵の顔を認証させようとしてしていましたが
実写の写真じゃないとダメでした。
0187Name_Not_Found
垢版 |
2020/01/28(火) 02:47:15.38ID:???
>>185
既に文法をずっと学んでいて質問しました。
実践的なもので役立つ課題みたいなのってありますか?
0188Name_Not_Found
垢版 |
2020/01/28(火) 07:59:45.25ID:???
>>187
「ES2019の文法だけ」を覚えても仕方がない
文法以外も学習が必須
0190Name_Not_Found
垢版 |
2020/01/28(火) 15:37:17.53ID:???
>>187
JSわかってるなら問題ないよ
ドキュメントとリファレンスとサンプル見れば
あーなるほどねーって使える
それがライブラリやフレームワークってもんよ
0191Name_Not_Found
垢版 |
2020/01/28(火) 19:26:48.35ID:???
まあ、文法だけ覚えてるなら、課題やる前に覚えることはあるだろうね
制御構文とか、オブジェクトとか、プロトタイプとか、いくらでもある
0192Name_Not_Found
垢版 |
2020/01/28(火) 23:03:05.08ID:???
エクセルにjsが採用されてますます需要が高まるな
0193Name_Not_Found
垢版 |
2020/01/29(水) 15:12:08.24ID:???
実際jsコーディングする時って何を作るのが実践でも役立つ?
題材でよかったもんとかある?
0196Name_Not_Found
垢版 |
2020/01/29(水) 18:24:25.27ID:???
とりあえずhtmlなり何かしらweb系を絡ませないと
js使う意味なくなってpythonとかでよくねになる気がする
0197Name_Not_Found
垢版 |
2020/01/29(水) 19:35:19.84ID:???
>>187が安易な答えを求めて、>>193の質問をしただけ
題材だけ揃えてもあかん
0198Name_Not_Found
垢版 |
2020/01/29(水) 20:39:39.37ID:???
jsのさらに真価が発揮されるのは5G、6Gでのweb4.0時代
0199Name_Not_Found
垢版 |
2020/01/29(水) 22:12:00.74ID:???
JSの真価は言語的に仕様が小さくて拡張性があったことだが
ES6から10までの間に半分以上の可能性を消費していて
今が一番真価が発揮されている壮年期
かといって別の言語なら2030年代に革命を起こせるかというとそうではない

そろそろ既存の言語の進化系ではなく、
非同期の大量のタスクを圧倒的自然で素敵に捌ける
新しい仕組みを持った言語が必要ということ
0200Name_Not_Found
垢版 |
2020/01/29(水) 22:32:59.25ID:???
async,awaitって使う頻度低くないですか・・?
0201Name_Not_Found
垢版 |
2020/01/29(水) 22:39:06.44ID:???
俺が書いたあるプログラムは全体の行の50%にawaitが付いていた。
0202Name_Not_Found
垢版 |
2020/01/29(水) 23:05:37.93ID:???
キュー=[await処理1,await処理2,await処理3,,,,,,];
みたいな感じでawait処理が全部終わったら、また同じ順番で再帰しつつ失敗したawait処理はスルーしたいとき
結局、await処理それぞれの”完了・成功したか否か”を保持しないといけないので、async/await使わずに
async/awaitっぽく実装した処理にまとめ書いた方が短く書ける、ような気がした
0203Name_Not_Found
垢版 |
2020/01/30(木) 06:46:43.35ID:???
>>201

function foo() {
 async なんたら
 if なんたら
 async なんたら
 for なんたら
 async なんたら
 return
}

こんな感じ?
0204Name_Not_Found
垢版 |
2020/01/30(木) 07:11:05.95ID:???
>>200
逐次処理版Promise.allを定義しておけば、使う機会はほぼない
0205Name_Not_Found
垢版 |
2020/01/30(木) 08:26:29.10ID:???
>>203
awaitだけどまぁそんな感じ。
同期関数のコールツリーの深いところでasyncしかない関数を呼び出す必要が出てきた時
変更が大変になるから、最初からなるべくasync関数にするようにしたらそうなった。
0206Name_Not_Found
垢版 |
2020/01/30(木) 10:59:04.00ID:???
手続き型思考の人はawaitを多用するのだろう
0207Name_Not_Found
垢版 |
2020/01/30(木) 13:06:27.81ID:???
使う頻度なんて気にしても仕方ないと思う
一般解なんてないし、自分の好きにやればいい
0208Name_Not_Found
垢版 |
2020/01/30(木) 13:43:36.95ID:???
ところでasyncとawaitの読みって
えいしんく、あうぇいと、でいいんでしょうか?
0211Name_Not_Found
垢版 |
2020/01/30(木) 14:51:04.12ID:???
投げっぱなし質問ばかりなのは、やる気がないからでしょうか?
0212Name_Not_Found
垢版 |
2020/01/30(木) 16:57:10.80ID:???
イベント発生順序について質問です
【環境】 OS: Windows10, ブラウザ: Google ChromeVersion 79.0.3945.130 (Official Build) (64-bit)
【何をしたのか】 クリック対象の要素へ4イベントを下記の順番に追加した後、これ自身または子要素をクリックしました
> addEventListener("click", func1, true)
> addEventListener("click", func2, false)
> addEventListener("click", func3, false)
> addEventListener("click", func4, true)
【期待する結果】 発生順は常にfunc2,3,1,4 (capture,bubbleの順)
上記環境下にて、この要素自身をクリックした時はfunc1,2,3,4の順に発生しました
クリック対象の登録イベントがcapture,bubbleで区別されないのはjavascript共通ですか?それとも環境固有でしょうか
0214Name_Not_Found
垢版 |
2020/01/30(木) 18:28:39.88ID:???
そりゃイベント付加した要素、ターゲットがひとつ?だから普通に登録順にイベント発生しただけじゃない?
> addEventListener("click", func1, true)
>
の順番を入れ替えて登録したらその順番で発生しそう
0216213 (ワッチョイ 8ac7-unxX)
垢版 |
2020/01/30(木) 20:09:40.17ID:???0
>>214-215
ターゲットフェーズの存在を知りませんでした
分かりやすいページを教えていただきありがとうございます
>213は解決しました
0217Name_Not_Found
垢版 |
2020/01/30(木) 21:02:31.02ID:???
addEventListenerの第3引数にはオブジェクトを渡しましょう
0218Name_Not_Found
垢版 |
2020/01/30(木) 22:51:04.86ID:???
>>206
じゃあ手続き型思考じゃない人はどうしてるの?

- await使わずPromise.then()を使う
- Promise自体使わない
0219Name_Not_Found
垢版 |
2020/01/31(金) 06:20:55.57ID:???
awaitは使うけれど、Promise.allを使ったり、より順不同でパラレルに動くようにしようということだろう
上の話のように完全に順序を守ってawaitしていってるだけなら
0220Name_Not_Found
垢版 |
2020/01/31(金) 09:37:54.08ID:???
なんか会社でJS勉強しろって言われてる者なんですけど、効率良い勉強方法ありますか?
GSUITE入れるからやらないといけないみたいです
0221Name_Not_Found
垢版 |
2020/01/31(金) 12:51:50.92ID:???
>>218
どちらもある
そもそも、ケースバイケースで使い分けるから一つの方法に固定しない
「たった一つの冴えたやり方」を探す人がいるが、選択肢を減らすのは悪手だと思う
0222Name_Not_Found
垢版 |
2020/01/31(金) 12:53:52.60ID:KgBKRxWM
>>220
勉強のスケジュールをきつめに立てて
週一で進捗をチェックして、遅れたら爪を一枚剥がそう

1週目は怠けてしまうかもしれないけど
2週目からは痛みと恐怖が嫌でも勉強させてくれるよ
0223Name_Not_Found
垢版 |
2020/01/31(金) 22:28:08.79ID:???
await使うかthen使うかなんて手段の話で、思考の違いが表れるほどのものとは思えんけどな。
0224Name_Not_Found
垢版 |
2020/01/31(金) 23:17:30.67ID:???
【環境】Android 4.4.2以上
【条件】以下の現状改善にJS(XHR)でいいのか他の方法がいいのか、道筋をまず導いて欲しい

現状
・クライアントPCよりWEBサーバーにCSVが不定期にアップロードされる(そんな頻繁ではない)
・Android端末でWEBサーバーにアクセスし、CSVを元に作成されたページを表示する
・ページの作成はPHPで行われている
・ページの表示は数秒おき(CSVの内容で多少変動する)にリロードされる
・このページを表示するのは1台のAndroid端末のみ
・簡単な情報を表示し続けるシステム
・質問者はC/C++は分かりますが、PHP,HTML,CSSは超初級、JSを初めて触ります

改善したい点 三つ
・CSVに変動があろうがなかろうがリロードするのが無駄なので止めたい、
 CSVに変動があったときだけリロードしたい
・欲を言えば変動があった部分のみ表示を更新したい(突き詰めるとPHP要らないんじゃ・・・)
・リロードされる度に、読み込み中の青いバーが画面上に表示されるのを回避したい
 (幸い、リロード時に画面全体が再描画されてチカチカするなどの問題は今のところありません)

考えていること
・まずXHRやfetchを使って必要最小限の「CSVが何時更新されたかどうか」という情報のみを
 読み込み、ブラウザ・JSの変数にて保持しておき、これを定期的に読み込み、何時更新されたという
 情報に差異が出たらリロードすればかなりマシなのでは?

以上ですが、そもそもこれで可能かどうかすら分からない次第なので、この方向でいいのか
悪いのかをご指南いただければと思いました

上記の考えで基本的に可能だとしても改善したい点が単純に全て解決できるとは思っていませんが、
改善したい点の一つ目だけでも改善できればと思っています

よろしくお願いします
0225Name_Not_Found
垢版 |
2020/01/31(金) 23:20:45.72ID:???
>>220
言語は勉強するものではない
使われてるのを見聞きして使って感覚に慣れるものだ
赤ちゃんが音節を発するように、何事もまずコピペ
人間の脳の仕組みの大原則として、自分が行えない物事を理解することはできない
理解できるから行動ができるのではなくて、行動ができるから理解ができるのだと言う科学的事実は知っておくと良い

まずは意味がわからなくてもそっくり真似をしてどんな要素があるかを感覚で掴むことが大事
それが苦になるようなら向いていないということ
真似をして書いて動いているのをみてから、徐々にその仕組みを覚えていく
そういうイメージでやると良い
0226Name_Not_Found
垢版 |
2020/01/31(金) 23:30:26.86ID:???
>>224
サーバーから通知を送ってもらいたいということで、WebSocketを使うのが賢い
どうしてもHTTPでやりたければ、なんども通信し直すのは変わらないのだけれど、
通信をできるだけ切らずに維持してサーバーからの返答を長く待つという古来からの方法があり、
それを扱いやすくしたSSE(EventSource)APIがあることにはあるが、
それは今どき川に洗濯に行くようなもので、導入コストは少々かかったとしても
素直に洗濯機を買ってWebSocketを使うことを強く進める
0227Name_Not_Found
垢版 |
2020/02/01(土) 00:29:11.61ID:???
>>226
レスありがとうございます
仰るとおり、サーバーからの通知が最善のはずだと、WEB PUSH など用語すら
分かってない状況でググり倒し、情報が多すぎで判断付かずここに駆け込んできました

ソケット通信はC/C++でもやってますので何とかなりそうな気はしましたが、
サーバー側をどうすればいいのか中々分かりませんでした
PHPでもいいのかな?できるかも?という程度の情報には今たどり着きましたが、、

質問で書き忘れていましたが使用しているサーバーはXserverでして、
このサーバーだとちょっと難しいような(ポートの問題がある?)情報を
見つけてWebSocketを躊躇しているところです

SSEだとサーバーを問わないのかな?(分かりませんが)
WebSocketやnode.jsは、ググり倒している間に訳分からないまでも見かけては
いましたが、SSEは初見でした
これなら最悪、やりたいことはできそうなのが幸いです
情報ありがとうございます
0228Name_Not_Found
垢版 |
2020/02/01(土) 00:45:38.05ID:???
>>224
CSV ファイルの更新時刻をどこかに保存しておいて、毎回それと比べれば、
CSVファイルが更新されたかどうか、判別できる

Ruby なら、index.html.erb みたいなテンプレートに、内容を埋め込む。
ERB は、あらゆるファイルに、Rubyの式を、embedded 埋め込める

<div><%= Rubyの式 %></div>

または、JavaScript/jQuery のAjax で、動的に内容を変えられる

本当は、RubyのSinatra などでサーバーを作って、
CSVファイルの更新時刻をチェックする処理を作ってもらうとか、
サーバー側に、新しい処理・ルーティングを追加して、

Android からは、直接サーバー側のファイルを参照しないのが良い!

0から手を動かして作るRailsチャットアプリ【チュートリアル】
https://www.youtube.com/watch?v=WCsgcp5dg7M

Ruby on Rails で、websocket を使った動画
0231Name_Not_Found
垢版 |
2020/02/03(月) 02:11:47.59ID:???
const fizzBuzz = () => {
for (var i = 1; i < 101; i++) {
switch (true) {
case i % 3 === 0 && i % 5 === 0:
console.log('FizzBuzz');
break;
case i % 5 === 0:
console.log('Buzz');
break;
case i % 3 === 0:
console.log('Fizz');
break;
default:
console.log(i);

}
}
}
fizzBuzz();

fizzbuzzをやろうとして、自分は↑を書いたんですが
これとくに問題ないですか?
調べてみると賛否両論(switchのtrueの箇所?)がどうのでてきて不安になり質問しました。
0232Name_Not_Found
垢版 |
2020/02/03(月) 05:10:20.27ID:???
賛否両論と知ってるくせにとくに問題ないですか?と聞ける精神が問題だ
ここはお前の漠然とした不安をケアする場所ではない
自分の行動くらい自分で責任を持って決めろ
0233Name_Not_Found
垢版 |
2020/02/03(月) 08:27:46.85ID:???
>>200>>220もそうだが、複数の選択肢がある時、彼らは唯一解しか満足しない
「一概にはいえない」や「前提条件次第」という考えは彼らの頭にはない
一つの解にして、他を考えるのを止めるのが目的だから、考える過程が増えるのは彼らにとっては本末転倒なのだ
0234Name_Not_Found
垢版 |
2020/02/03(月) 12:41:20.93ID:???
というか適当に質問してるということが丸わかり
自分で難しい質問をして難しい答えが帰ってきても反応しないんだもの
実際困ってもいないくせに人の反応を見るために質問したりするイカレポンタンは害悪でしかない
0235Name_Not_Found
垢版 |
2020/02/03(月) 13:02:51.06ID:???
なんで問題ないかわからないんだろお前等
答えられないんだろ?
0237Name_Not_Found
垢版 |
2020/02/03(月) 14:15:28.42ID:???
>>231
そもそもお前(ら)が何を問題とするかだ

コーディング規約でswitch(true)禁止等があるチーム開発でそれを無視して使用している、等なら無視している時点で問題になるだろうが、こんな個人のメモ書き程度のFizzBuzzで何を使おうが問題にならんと思うが。

switch(true)自体の機能に疑問があるという話なら、まずは関数化していろいろな入力を試すなどしてデバッグし、それでも疑問が残ったり問題が顕在化したら他者に協力を仰げ。

賛否両論がどうの、程度ではなく自分でもっとしっかり読んで理解しろ。
なんの記事を読んんだのかは知らんが、それすら理解していないお前が、このスレの人間に「問題無い」と断言されたとしてただ鵜呑みにするのか?

賛否両論であるということを認識した上で、それでもなお利用するのなら、なぜそれを利用する必要があったのか説明できるようにしろ。
0238Name_Not_Found
垢版 |
2020/02/03(月) 22:29:21.31ID:???
>>235
何が問題かを決めるのは他人ではない
俺たちはお前のオカンやオトンではない
0239Name_Not_Found
垢版 |
2020/02/04(火) 00:39:36.85ID:???
屁理屈ばかりで理由の一つも論理的に言い返してる人いないやんw
0240Name_Not_Found
垢版 |
2020/02/04(火) 01:29:20.77ID:???
どいつもこいつもどこから突っ込んでいいのやらw
0241Name_Not_Found
垢版 |
2020/02/04(火) 04:04:27.79ID:???
>>231
switch ( 式 ) {
case 値1: // 式の値が「値1」と一致した場合の処理
break;

case 値2: // 式の値が「値1」と一致した場合の処理
break;

default:
break;
}

普通、式には変数など、変動するものを使う。そして、case の方に定数。
君のは逆になってるから、変

それとコーディング規則では、
後で修正することも考えて、default: にも、break; を付けておく。
また、意思を明白にするために、fall-through, no-break のコメントも付ける

switch ( a ) {
case 10:
// break; fall-through, no-break
case 20:
break;

default:
break;
}
0242241
垢版 |
2020/02/04(火) 04:14:10.73ID:???
普通の感覚では、式に、i % 3 なんだが、
i % 5 の場合もあるから、うまく作れないw

switch ( i % 3 ) {
case 0: // 割り切れる
break;

default: // 割り切れない
break;
}

switch を使えば、
>>231
みたいな書き方になってしまうw
0243Name_Not_Found
垢版 |
2020/02/04(火) 05:40:29.93ID:???
今度はswitch(true)知らないやつが語りだしたかw
0244Name_Not_Found
垢版 |
2020/02/04(火) 08:03:18.80ID:???
switch(true)ってバッドノウハウ感があるよなw
0245Name_Not_Found
垢版 |
2020/02/04(火) 08:16:01.27ID:???
「知らないんだろ?」と煽っても無駄です、のテンプレを復活させてもいい気がしてきた
煽って回答を集める乞食が多すぎる
0246Name_Not_Found
垢版 |
2020/02/04(火) 09:04:27.79ID:???
>>244
あれは使わせたくないので使わせないようにしてる

あんなん使わせるならelse ifの羅列の方がずっとマシ
0247Name_Not_Found
垢版 |
2020/02/04(火) 18:43:06.04ID:JDax1bPe
canvasを使って、ライブラリ無しで3Dゲームは作れると思いますか?
0249Name_Not_Found
垢版 |
2020/02/04(火) 19:22:15.92ID:???
>>247
作れる作れないで言ったら確実に作れるよ
頑張れ
0250Name_Not_Found
垢版 |
2020/02/04(火) 20:18:22.77ID:q3LanA/0
perfectScrollBarで画面全体のスクロールバーをカスタムすることはできますか?
サンプル等を見ても画面内のうちdivなど一部の要素にスクロールバーを表示させるものばかりでイメージが湧かないです
0251Name_Not_Found
垢版 |
2020/02/04(火) 22:52:48.20ID:???
overflowhiddenで全体の消してそれいっぱいにそのライブラリでカスタマイズすれば?
0253Name_Not_Found
垢版 |
2020/02/05(水) 10:43:10.27ID:LwdXeUjA
ありがとうございます
なんかそれっぽい質問が見えたので頑張って訳してみます
0254Name_Not_Found
垢版 |
2020/02/05(水) 20:33:43.35ID:???
new XMLHttpRequest()についての質問です

var a = function(url){
var requestFile = new XMLHttpRequest();
requestFile.open("GET", url);
requestFile.responseType = "arraybuffer";
requestFile.send();

requestFile.onload = function () {
alert("b");
};
}

var b = function(url){
var requestFile = new XMLHttpRequest();
requestFile.open("GET", url);
requestFile.responseType = "arraybuffer";
requestFile.send();

requestFile.onload = function () {
alert("b");
};
}
a("x.jpg");b("x.jpg");
と実行するonloadが上書きされず"a"と"b"が表示されてしまいます
XMLHttpRequest();をもう一度取得してonloadを上書きするというのは不可能なのでしょうか?
上書きしたい場合b()の内容をどういうものにしたら良いのでしょうか?
0255Name_Not_Found
垢版 |
2020/02/05(水) 20:54:39.43ID:???
ん?aとbのrequestFileの指す物が同じだと思ってるって事?
0256Name_Not_Found
垢版 |
2020/02/05(水) 20:58:31.78ID:???
>>255
同じurlでGETすればonloadも共有してるのかなって思ってましたが、違うみたいでした

a()を実行した後で、b()でx.jpgのファイルがonloadされた時の挙動を変更するのが目的です
0257Name_Not_Found
垢版 |
2020/02/05(水) 22:26:32.03ID:???
ユーザーが選択した数十GBの動画データをFileとして持っているとき
その時点では使用メモリとしてカウントされないのですが、
FileReaderにかけるとクラッシュしてしまいます。
例えばこの部分から100MBとか、していして読み込んでもらうことはできないのでしょうか?
Streamも調べましたが、頭からは安全に取れても位置を指定して行き帰りしながらデータを読む方法がわかりません。
0258Name_Not_Found
垢版 |
2020/02/05(水) 23:30:16.82ID:???
ファイルは、一括して全部読み込むものと、
stream で、前からバッファへ読み込みながら、処理したら、すぐに捨てるタイプのものがある。
streamは、巨大な動画ファイルに使われる

streamのバッファサイズによる。
例えばブラウザで、1分前に戻ると、バッファ内にあるから、すぐに再生できるが、
10分前なら、バッファ内にないから再読み込みされる

streamはランダムアクセスできない。
データがバッファ内にあれば、出来るかも知れないが

ファイルを、一括して全部読み込む場合は、すべてがメモリ内にあるから、ランダムアクセスできるが、
大きいファイルは、読み込めない

使えるメモリサイズ以上を読み込むと、何かのデータが、HDD へスワップされるから、極端に遅くなる
0259Name_Not_Found
垢版 |
2020/02/06(木) 06:11:13.75ID:???
お前のうんちくは聞いてない
できるならその方法を、できないかなら端的にそう言え
0260Name_Not_Found
垢版 |
2020/02/06(木) 07:08:25.05ID:???
コーデックにもよるけど、CBRの動画でないとシークしたり、突拍子の無い場所にジャンプするのは不可能ではないが難しい。

あとGoPの仕組み上、キーフレームにしかシークできない。
0262Name_Not_Found
垢版 |
2020/02/06(木) 08:56:22.25ID:???
>>261
それができねぇからわざわざaとbでやってるんだろ
0263Name_Not_Found
垢版 |
2020/02/06(木) 12:19:49.73ID:???
>>254
var a = function(url){
requestFile.onload = function () { };
}

var b = function(url){
requestFile.onload = function () { };
}

上は、a 関数内の処理の定義で、
下は、b 関数内の処理の定義だから、

全く別の定義だろ。異なる!
0264Name_Not_Found
垢版 |
2020/02/06(木) 15:38:48.59ID:???
>>262
それしか方法がないから、そういわれてんだろ
それが出来ねぇなら、諦めろ
0265Name_Not_Found
垢版 |
2020/02/07(金) 06:37:57.16ID:???
プロトタイプをいじればできるでしょ
0266Name_Not_Found
垢版 |
2020/02/07(金) 10:17:14.03ID:???
>>265
やってみた?
どうやって、aのrequestFileを取得する?
0267263
垢版 |
2020/02/07(金) 10:30:00.42ID:???
>>254
var a = function(url){
var requestFile = new XMLHttpRequest();
requestFile.onload = function () { };
}

var b = function(url){
var requestFile = new XMLHttpRequest();
requestFile.onload = function () { };
}

上は、a 関数内の処理の定義で、
下は、b 関数内の処理の定義だから、全く別の定義です!

new で作っている、2つのXHR インスタンス、requestFile も、
同じ名前ですが、異なるインスタンスです!

これを同じ、1つのインスタンスで使いたいなら、外のスコープで定義しないといけないのでは?
できるかどうか知らないけど

var requestFile = new XMLHttpRequest();

var a = function(url){
requestFile.onload = function () { };
}

var b = function(url){
requestFile.onload = function () { };
}
0268263
垢版 |
2020/02/07(金) 10:33:25.59ID:???
でも、1つのXHR インスタンスで、2回もonload を呼び出してくれるのか?
0269Name_Not_Found
垢版 |
2020/02/07(金) 12:51:07.12ID:???
>>266
aのrequestFileを取得する必要は無いでしょ
プロトタイプに上書きされないようにセットすることはできるんだから
0270Name_Not_Found
垢版 |
2020/02/07(金) 15:57:27.27ID:???
>>268
上書きしたいって言ってるんだから2回呼び出されなくていいんでね?
複数回呼び出したいならonloadプロパティではなくaddEventListener使えばいいんだし
0271Name_Not_Found
垢版 |
2020/02/07(金) 17:31:39.36ID:???
>>269
どうやって、loadイベントをセットするの?
0272Name_Not_Found
垢版 |
2020/02/07(金) 23:00:46.73ID:???
XMLHttpRequestを上書きすればいくらでもやりようがある
0274Name_Not_Found
垢版 |
2020/02/10(月) 14:15:27.84ID:3cn1UqHU
対応希望ブラウザはIE11,chromeです

閉じるボタン(ブラウザの×ボタン)または、こちらで用意したキャンセルボタンをクリックしたかどうかを判定する方法はありますか?

モーダル画面を開く処理の実装中です
子画面を開くときに親画面を操作不可にする処理を実行し、onunload処理で親画面に付与した操作不可の状態を解除するという流れにしています
しかし、子画面の中で画面を閉じる以外にもポストバックが走る処理があり、それらが実行された際にonunload処理が実行されてしまい小画面が閉じていないのに親画面が操作可能になってしまうという問題が生じています。
閉じるボタンまたはキャンセルボタンが押下された場合のみonunload処理の中身が走るように分岐を加えたいのですが、それらを判定する方法があれば教えてください
0275Name_Not_Found
垢版 |
2020/02/10(月) 14:56:30.98ID:???
button要素にbisabled設定してJSのifでtrue,false設定しよう
0276Name_Not_Found
垢版 |
2020/02/11(火) 10:16:07.02ID:djVo/1Ch
bisabled?
disabledの誤字ですかね
閉じるボタンを押したらそのボタンをdisabledにしちゃえという感じですかね
0277Name_Not_Found
垢版 |
2020/02/11(火) 12:53:55.11ID:???
>>274
> onunload処理の中身が走るように

onunloadは使ってはいけません。
最後の最後の最後の手段で実行されてなくて問題ない
という場合にのみおまけで実行するためのものです。
0278Name_Not_Found
垢版 |
2020/02/11(火) 21:48:45.64ID:???
特定の変化をキャッチして状態を測ろうというのは特定の場合には効果的だが、
そうでないときはできるのならばポーリングで直接状態を調べたほうが良い
まあ、今はnavigator.locksという素晴らしいAPIもあるんだがIE11では当然使えないしな
0279Name_Not_Found
垢版 |
2020/02/12(水) 11:58:31.11ID:uIAxZomW
text=''あいうえお<br><br>かきくけこ<br><br>さしすせそ";
という文字列をPタグで囲って
<p>あいうえお</p><p>かきくけこ</p><p>さしすせそ</p>

としたいのですが、

var array = text.split(/<br>+/);
var html = "";
for (var i = 0; i < array.length; i++){
html += '<p>' + array[i] + '</p>';
}

だと空の<p></p>もできたりして上手くいきません。
どのように書けばよいのでしょうか?
0281Name_Not_Found
垢版 |
2020/02/12(水) 13:08:38.83ID:???
>>280
できました!勉強になります。ありがとうございました
0282Name_Not_Found
垢版 |
2020/02/13(木) 06:19:26.68ID:???
'<p>'+text.replace(/(<br>)+/g,'</p><p>')+'</p>'
0283Name_Not_Found
垢版 |
2020/02/14(金) 17:14:00.59ID:???
var str="あいうえお<br><br>かきくけこ<br><br>さしすせそ";
console.log( str.split(/(?:<br>)+/).map(t=>`<p>${t}</p>`).join('') );
0284Name_Not_Found
垢版 |
2020/02/14(金) 19:27:36.41ID:???
>>279
文字列でなく、ノード単位で扱った方が良いと思うけどな
0285Name_Not_Found
垢版 |
2020/02/17(月) 08:17:57.89ID:uUml68Bs
パーフェクトスクロールバーってやつを導入したんだけど、横方向のスクロールバーだけ非表示にする方法はありますか?
0287Name_Not_Found
垢版 |
2020/02/17(月) 14:26:36.07ID:2SfuS0Ll
消えました
ありがとうございます
0288Name_Not_Found
垢版 |
2020/02/17(月) 14:31:01.59ID:2SfuS0Ll
もう一個パーフェクトスクロールバーについて質問です
二つのdiv要素を縦に並べて配置していて、その2つを含む親のdiv要素にスクロールバーを設定しているのですが、その画面を表示すると二つ並べたdiv要素のうち上の要素の高さ分だけスクロールバーが表示されてしまいます
そして、画面上でホイールをクルクルさせると親のdiv要素全体のスクロールバーがちゃんと表示される(最初に表示された変なスクロールバーは消える)という状況が起きているのですが、最初から正しく表示させる方法はありますか…
0290Name_Not_Found
垢版 |
2020/02/18(火) 04:30:37.70ID:ZqZ4x2wu
下記リンクのページについて質問があります。

https://www.englishplus.jp/nuance/to-me-for-me/

firefoxでjavascriptを無効にして開くと、右クリックメニューは出るようになったのですが、
うまく、CTRL+Aや、文字列選択ができません。

javascript以外にどんな機構が働いてこのような挙動になるのでしょうか。
また文字列選択や、CTRL+Aをできるようにするにはどういうことが考えられるか教えてください。
0291Name_Not_Found
垢版 |
2020/02/18(火) 06:10:50.22ID:???
「右クリック禁止 解除 アドオン firefox」で検索!

右クリック禁止は、
document.oncontextmenu=function(){return false;};

これを、
document.oncontextmenu = null;
で解除できるけど、

テキストの選択禁止は、解除できないので、
下の語句で検索して、解除していかないといけない

document.onselectstart, document.ondragstart, onclick,
stopPropagation, preventDefault, return false
0292Name_Not_Found
垢版 |
2020/02/18(火) 13:24:44.70ID:ZqZ4x2wu
>>291
レスありがとうございます。

教えてもらったdocument関係のステートメントはjavascriptだと思うんですが、
firefoxで、javascript.enabledをfalseに切り替えたにも関わらず、
それらが動作するのは不思議です。
0293Name_Not_Found
垢版 |
2020/02/18(火) 13:30:08.32ID:???
>>290
そのサイトはjavascriptではなくcssのuser-select: noneで選択できないようにしてあるから
ちなみにfirefoxはjavascript切らなくてもshift+右クリックでコンテキストメニューを出せる
0294Name_Not_Found
垢版 |
2020/02/18(火) 18:06:54.05ID:???
そういうユーザビリティの欠片もないサイトは見ないに限る
0295Name_Not_Found
垢版 |
2020/02/18(火) 20:32:09.04ID:???
うぜえと思って大昔適当なユーザースクリプトを書いたが7,8割はそれでずっと間に合ってるな
それも効かないやつはdevツールから見るか諦める
0296Name_Not_Found
垢版 |
2020/02/18(火) 22:04:04.27ID:???
cssの、user-select: none か!
初めて知ったw

ケチ臭え。テキストぐらい、コピーさせろや!w
0297292
垢版 |
2020/02/19(水) 01:22:36.64ID:???
>>293
詳しい方、どうもありがとうございます。

>>296さんではないですが、
私も初めて知りました。

チップスを含めてとても参考になりました。

ありがとうございました!
0298Name_Not_Found
垢版 |
2020/02/19(水) 10:24:18.30ID:???
昔だったらjs使わなきゃダメだったことも
ie捨てればhtmlとcssでできたゃうことが多くなったね
0299Name_Not_Found
垢版 |
2020/02/19(水) 13:11:05.45ID:hTlb9aFi
プログラミングしたいけど顔がキモオタ顔になるのが嫌です
職場のseの話し方とか顔が嫌い
最近ネットに増殖してきたエンジニア系男子の顔も本当に嫌い

どうすればいいですか
0300Name_Not_Found
垢版 |
2020/02/19(水) 15:10:00.96ID:???
>>299
鏡を眺めて表情を作る練習をしましょう
0302Name_Not_Found
垢版 |
2020/02/19(水) 22:21:10.00ID:???
>>298
IEは昔からCSSの対応はそんなに悪くないぞ
IE発のものも多いし
0305Name_Not_Found
垢版 |
2020/02/20(木) 14:26:04.22ID:???
>>293さんの投稿について、
ブラウザプラグインで、
cssのuser-select: none を抜くようなことができたらいいのに。
あるかな?
0306Name_Not_Found
垢版 |
2020/02/20(木) 20:18:49.87ID:???
幾つかのイベントでトップレベルでstopImmediatePropagationする
style*="user-select"を走査して外す
それだけでも半分以上に効果がある
0307Name_Not_Found
垢版 |
2020/02/20(木) 22:44:18.76ID:???
jQuery で、すべての要素を巡回しながら、user-select: none; なら、auto に変更する。
Chrome では、正常に動いた

$( function ( ) {
const user_selects = [ 'user-select', '-moz-user-select', '-webkit-user-select', '-ms-user-select' ];

$( '*' ).each( function ( index, element ) {
user_selects.forEach( elem => {
that = $( this )
if ( that.css( elem ) === 'none' ) { that.css( elem, 'auto' ) }
} );
} );
} );
0308307
垢版 |
2020/02/20(木) 22:49:23.12ID:???
>>307
修正。上下が逆だった

>user_selects.forEach( elem => {
>that = $( this )

that = $( this )
user_selects.forEach( elem => {
0309Name_Not_Found
垢版 |
2020/02/21(金) 00:07:12.59ID:???
質問です
classって名前空間に閉じ込めることはできないんですかね?

他所のJS読んだときに
安易な名前だとぶつかっちゃいそうな気がするんですが
0310Name_Not_Found
垢版 |
2020/02/21(金) 03:41:00.21ID:U3BoPE0C
>>307
それをどうやって相手のWEBサーバーからのHTMLに組込めば良いの?
0312307
垢版 |
2020/02/21(金) 17:14:59.02ID:???
Chrome のF12 開発者ツールのコンソールに、
「ここから〜ここまで」の行、つまり「$( function ( ) { } );」の内側だけをコピーして、Enter を押す

これでエラーが出たら、そのページは、jQuery を使っていないから、
以下のすべてをコピーして、Enter を押す。
コードの内容は、head 内に、script タグを作って、Google のCDN から読み込んで実行する

でも、ひょっとしたら、jQuery を使わなくても、出来るかも。
素のJavaScript だけで、書けるかも知れない

const script = document.createElement( "script" );
script.setAttribute( "type","text/javascript" );
script.setAttribute( "src","https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"; );

document.head.appendChild( script );

script.addEventListener( "load", function( ) {
$( function ( ) {
const user_selects = [ 'user-select', '-moz-user-select', '-webkit-user-select', '-ms-user-select' ]; // ここから
$( '*' ).each( function ( index, element ) {
that = $( this )
user_selects.forEach( elem => {
if ( that.css( elem ) === 'none' ) { that.css( elem, 'auto' ) }
} );
} ); // ここまで
} );
} );
0313Name_Not_Found
垢版 |
2020/02/21(金) 19:56:32.80ID:???
>>290のサイトの場合は
TampermonkeyやViolentmonkey拡張等のユーザースクリプトで
// ==UserScript==
// @name englishplus選択右クリ
// @match https://www.englishplus.jp/*
// @grant none
// @run-at document-end
// ==/UserScript==
(function() {
function un(e) { e.stopImmediatePropagation(); }
document.addEventListener('selectstart', un, { capture: true });
document.addEventListener('mousedown', un, { capture: true });
document.addEventListener('contextmenu', un, { capture: true });
document.head.insertAdjacentHTML('beforeend', `<style>
* { user-select: initial !important; }
</style>`);
})();
でおk
0314Name_Not_Found
垢版 |
2020/02/21(金) 21:02:10.11ID:???
どんなサイトで来るか分からんしブックマークレットにしたほうが賢いでしょ
0315307
垢版 |
2020/02/21(金) 21:49:00.00ID:???
jQuery を使わず、素のJavaScript だけで書けた!

Chrome のF12 開発者ツールのコンソールに、下のコードをコピーして、Enter を押す

//ドキュメント全体から全ての要素を取得する
const all_elements = document.getElementsByTagName( "*" );

for ( let i = 0; i < all_elements.length; i++ ) {
elem = all_elements[ i ];
if ( window.getComputedStyle( elem ).userSelect === "none" ) {
elem.style.userSelect = "auto";
}
}
0317Name_Not_Found
垢版 |
2020/02/22(土) 13:21:02.05ID:???
>>309
React, Vue.js か忘れたけど、フレームワークでは、scoped CSS になっていた
0318Name_Not_Found
垢版 |
2020/02/22(土) 15:30:16.05ID:???
プログラミング初心者

質問お願いします
ブラウザの作業を自動化したいと考えてます。ググってみた結果
現在pythonでSeleniumを使った方法を調べてますが、色々と苦戦しております。
検索ワードでjsでもできそうなのですがそもそもプログラムに詳しい方からすると
どちらの方法が好ましい(効率的とか簡単等)のでしょうか?
因みに使用用途はダウンロードを繰り返すというものです。
ひと昔前にあったダウンローダー等使えないサイトとなっております。
宜しくお願いします。
0319Name_Not_Found
垢版 |
2020/02/22(土) 16:15:07.94ID:???
君自身が色々と調べて迷っているのに、
たった数行の情報をここに書いて見た人が何か判断できると本気で思ってるのかい?
せめてここのサイトのこのコンテンツをDLしたいですとか言ってくれないと
可能性が無数にありすぎて何もわからないでしょ
0320Name_Not_Found
垢版 |
2020/02/22(土) 17:00:20.19ID:???
漏れは、スクレイピングに、Ruby, Selenium WebDriver, Nokogiri を使っている

ブラウザの自動操作もできるし
0321320
垢版 |
2020/02/22(土) 17:08:04.99ID:???
【VBScript】WSHについて話し合うスレ【JScript】
https://mevius.5ch.net/test/read.cgi/tech/1578522041/27

ここに書いたように、Ruby, Selenium WebDriver で、
ブラウザを自動操作して、Yahoo に自動ログインしてる

ユーザー名を入力して、ボタンを押す。
パスワードを入力して、ボタンを押す
0322320
垢版 |
2020/02/22(土) 17:12:48.55ID:???
ダウンロードには、wget, curl を使う

それよりも複雑なものには、漏れは、Ruby, Selenium WebDriver, Nokogiri を使うけど、
各サイトの解析が大変

例えば、5ch の投稿から画像ファイルだけを探すのに、
「div.message a」内のURL で、拡張子が「png jpg jpeg gif」のものだけを絞り込むとか、
こういう処理を、Ruby以外で書くのは辛い

Rubyは、可読性が高いから良いけど
0323Name_Not_Found
垢版 |
2020/02/22(土) 17:39:49.88ID:???
javascriptでやるにしてもユーザースクリプトやブラウザ拡張、Node.js+Selenium、Electron等いろいろ方法はあるわけで
0324Name_Not_Found
垢版 |
2020/02/22(土) 17:59:14.09ID:???
場合によってはコンソールに打ち込んでもいいだろうしな
0325Name_Not_Found
垢版 |
2020/02/22(土) 18:21:29.17ID:???
>>313
面白そうで試してみたいけど、
どう使えばいいの?
0326Name_Not_Found
垢版 |
2020/02/22(土) 18:24:26.43ID:???
ググレカス
.user.jsにして拡張機能ページにDnDするだけだろポンコツ
0327Name_Not_Found
垢版 |
2020/02/22(土) 21:59:56.96ID:???
>>326
ありがとう、そのキーワードでググってみるよ
0328Name_Not_Found
垢版 |
2020/02/22(土) 22:40:57.62ID:???
わざわざファイルにせんでもユーザースクリプト拡張で新規作成選んでコピペするだけでしょ
0329Name_Not_Found
垢版 |
2020/02/23(日) 14:02:07.76ID:???
わざわざ拡張入れなくてもファイル1つ作るだけでしょ
0330Name_Not_Found
垢版 |
2020/02/23(日) 16:48:07.81ID:???
これ系は昔からブックマークレットで無効にしてたわ
>>290のサイトも試したがもちろん解除できる

この程度でjQueryを使う必要性も無いし、ユーザースクリプトやブラウザ拡張も不要
0331Name_Not_Found
垢版 |
2020/02/24(月) 09:54:18.68ID:???
こういう直前の1,2レスしか頭に入らないやつをどうにかしてほしい
ブックマークレットの話は十分に出たからそれ以外の解決例をオマケで話してるんだろうが
頭悪すぎ
0332きりん
垢版 |
2020/02/24(月) 21:11:14.91ID:KdUVT2aj
Flexboxで二つの列をつくり、左が3つのブロック、右が一つのブロックをつくります。
position:stickyで右側のブロックのスクロールを半固定(左側のブロック要素が全表示されるまで固定)します。

JSでやりたいこと
右側のブロック(#col-4)の左側の中心値から、左側のブロック(#col-1,#col-2,#col-3)の右側中心値まで、
線を描きつなぎます。いろいろと、調べてソースを書き込み、取り急ぎ二つのブロックを繋げてみましたが
うまくいきません。どなたか解決方法をご教授ください。

■HTML
<div class="col-container">
<div class="part-1">
<div class="col must_col" id="col-4">あああ</div>
</div>
<div class="part-2">
<div class="col must_col" id="col-1">いいい</div>
<div class="col must_col" id="col-2">ううう</div>
<div class="col must_col" id="col-3">えええ</div>
</div>
<canvas id="myCanvas" ></canvas>
</div>
0333きりん
垢版 |
2020/02/24(月) 21:15:31.42ID:KdUVT2aj
■CSS
<style>
.col-container{
position:relative;
display:flex;
flex-direction:row-reverse;
align-items: baseline;
}
.part-1 {
position: sticky;
top: 0;
width: 48%;
max-width: 48%;
width: 48%;
}
.part-2 {
width: 48%;
max-width: 48%;
align-items: stretch;
justify-content: space-between;
perspective: 800px;
}
.col {
margin-bottom:20px;
}
#myCanvas {
position : absolute;
left: 0px;
top: 0px;
}
</style>
0334Name_Not_Found
垢版 |
2020/02/29(土) 14:28:18.87ID:???
セミコロンの有無について質問です。

const half =(number) => {
return number / 2;
};
―――――――――――――――
If (条件式) {
処理
}



関数を定義する時は }; とするのに、
If文などでは }の後にセミコロンを付けないのはなぜですか?
0335Name_Not_Found
垢版 |
2020/02/29(土) 15:22:59.46ID:???
ifは式じゃないから…というのはCの時代からの構文解析の決まりだな

と言ってもJSはそもそもセミコロン不要だから
本当に飾りみたいなもんだろう
0337Name_Not_Found
垢版 |
2020/02/29(土) 17:20:09.16ID:???
ありがとうございました!
ブロックという概念があるんですね。
progateでそこら辺のこと書いてなかったんで。
調べてみます!
0338Name_Not_Found
垢版 |
2020/02/29(土) 19:53:09.59ID:???
ajaxについての質問です。
動画サイトにて、下記のように事前に用意した変数を
POSTで送信する場合に、プロパティ名に変数と同名を利用していました。
値のanswerが変数のanswerを参照するのは理解できるのですが、
プロパティのanswerは変数のanswerを参照してしまったりしないのでしょうか?
ajaxの送信する構文の中ではプロパティ名は参照しない…的な仕様なのでしょうか?

...
var answer = $selected.text();
$.post('test.php', {
  answer: answer
})
...
0339Name_Not_Found
垢版 |
2020/02/29(土) 20:16:42.47ID:???
ajaxに限らずオブジェクト初期化子の裸のキーは変数展開されない
es2015以降であれば
{
 [answer]: answer,
}
のようにブラケットで囲むことで変数や計算結果をキーにできる
0340Name_Not_Found
垢版 |
2020/02/29(土) 20:16:49.87ID:???
>>334
関数を定義するなども;は必須ではない、つけないスタイルもある
ただ特定の場合で次の行と結合するので、そこを気にしたくないのであれば;を無駄につけるというだけ
一方if文などは次の行と結合しないことがわかりやすいのでつけない人が多い
要するに気分や感覚の問題
0342Name_Not_Found
垢版 |
2020/03/01(日) 10:12:08.14ID:???
>>339
ありがとうございます。
いろんな言語の当たり前の仕様だったのですね。
すっきりしました。

>>341
すみません。
翻訳しましたが、よくわかりませんでした…
0343Name_Not_Found
垢版 |
2020/03/01(日) 12:38:18.25ID:???
>>341
ESの仕様書は英語としては難しいものではなく、
withだのofだのandだの小学校レベルの前置詞や接続詞さえ分かればほとんど読める
あとちょこちょこ出てくる単語はプログラミング用語だと思って暗記する
そして根気よく順を追ってゆっくり読んでいく力さえあればいい

まず構文の定義の見方
obj = { key: value } とあったら
https://tc39.es/ecma262/#sec-object-initializer  の「Syntax」の所を見て
ObjectLiteral: { PropertyDefinitionList } から key: value がPropertyDefinitionListに当たるでしょ
PropertyDefinitionListのとこをクリックすれば更に定義に飛んで、PropertyDefinitionをカンマ「,」で区切ったものということが分かり、
PropertyDefinitionは4種類あるけど今回はPropertyName: AssignmentExpressionの形でしょ
つまりkeyはPropertyNameってことで、PropertyNameのどちらに当たるかというと
ComputedPropertyNameは[prop]の記法だから、そちらではない方でkeyがLiteralPropertyNameということが分かった
そしてその中でも、文字列リテラルでも数値リテラルでもないのでIdentifierNameということがわかる
0344Name_Not_Found
垢版 |
2020/03/01(日) 12:39:27.14ID:33Mst+Ql
>>341
valueも同じように、AssignmentExpressionからたどって
AssignmentExpression→ConditionalExpression→RelationalExpression→ShiftExpression→AdditiveExpression→
MultiplicativeExpression→ExponentiationExpression→UnaryExpression→UpdateExpression→LeftHandSideExpression→
NewExpression→MemberExpression→PrimaryExpression→IdentifierReference→Identifier→IdentifierName
と長いけどただただ適切なところを辿っていけば見つかる
{ key: value }が{ LiteralPropertyName:IdentifierName }の形だということをどうやって知るかが分かったら、次に評価を見よう

評価はざっくり分けて2種類あって、「Static Semantics」と「Runtime Semantics」がある
まずコードという文字列が最初に読み込まれてパースされるときに働く処理がStaticの方で、
上の行から実際に処理が始まってその構文が効力を発するときに働く処理がRuntimeの方と思ったら良い
StaticはRuntimeの前段階とも言えるので、それっぽいRuntimeの目安がつけられるのであれば、
最初にRuntimeを見てわからない定義が出てきたらStaticやSyntaxをみるのが効率がよい

今回はオブジェクトの大本のRuntimeから見ていこう
https://tc39.es/ecma262/#sec-object-initializer-runtime-semantics-evaluation
ObjectLiteral:{PropertyDefinitionList}に当たることはSyntaxで事前に調べて分かっている(ここからリンクを飛んで調べてもよい)のでその下の処理を読んでいこう
0345Name_Not_Found
垢版 |
2020/03/01(日) 12:40:30.97ID:???
>>341
1.Let obj be OrdinaryObjectCreate(%Object.prototype%).
Let X be YとはXをYとおく、つまるところX = Yということ
OrdinaryObjectCreate(%Object.prototype%)はプロトタイプをObject.prototypeとした一般オブジェクトを作る処理
プロトタイプをObject.prototypeとした一般オブジェクトとはつまるところ「 { } 」のこと
つまり obj = { } ということ

2.Perform ? PropertyDefinitionEvaluation of PropertyDefinitionList with arguments obj and true.
Performとは実行すること、PropertyDefinitionList のPropertyDefinitionEvaluationという処理を、1.のobjとtrueを引数として渡して実行
つまり PropertyDefinitionList.PropertyDefinitionEvaluation( obj, true ) ということ
Performの後の?はReturnIfAbrupt処理の省略記法
JSの内部的には何か処理をするたびに、渡された値が期待したものでなかった場合など、エラーが起こりうる
しかし、内部処理を途中で中断することは、エンジンのハングアップや強制終了を意味するのでそれはできない
正しい処理ができたときは、正しい値を普通に返すのと同じく、問題が起きたら問題が起きたという値を返さないといけない
それを判断しているのがReturnIfAbruptであって、正しい処理なら次へ進み、そうでなければ例外を呼び出し元へ返す

つまり、3.Return obj.と合わせるとこういうこと
try {
PropertyDefinitionList.PropertyDefinitionEvaluation( obj, true )
}
return obj
0346Name_Not_Found
垢版 |
2020/03/01(日) 12:41:52.18ID:???
>>341
こういう感じで読んで行けばよい、次に
PropertyDefinitionEvaluationではまず
PropertyDefinitionList:PropertyDefinitionList,PropertyDefinition
が評価されて、カンマで区切られた各プロパティ定義が再評価される、次に
PropertyDefinition:PropertyName:AssignmentExpression
1.Let propKey be the result of evaluating PropertyName.
evaluatingとは評価することで、つまり propKey = PropertyNameの評価
今回はPropertyNameの中でもLiteralPropertyName、その中でもIdentifierNameということが分かっているから、
LiteralPropertyName:IdentifierNameをみて、1.Return StringValue of IdentifierName.
つまり、IdentifierNameの文字列を返すことがわかる

慣れてくるとこの時点でもう先を見る必要はない
もし{key:value}ではなく{'key':value}だった場合は'key'はIdentifierNameではなくStringLiteralになるわけだが、その処理は
1.Return the String value whose code units are the SV of StringLiteral.
つまりその文字列を返すということがわかる
なのでこういう整然とした積み重ねロジックで普通に考えるとこの先の処理で何か違うことが起こるとは考えにくいので
{key:value}と{'key':value}は同じということが予想できる
勿論先に進んでpropKeyがどのように扱われているかを見ていってもよい

ざっくり言うとこういう感じでESの仕様書は読める
0347Name_Not_Found
垢版 |
2020/03/01(日) 12:46:05.90ID:???
>>345 に間違いがあった

try {
  PropertyDefinitionList.PropertyDefinitionEvaluation( obj, true )
} catch ( err ) {
  return err
}
return obj

のイメージが正しい
0348Name_Not_Found
垢版 |
2020/03/01(日) 19:07:03.67ID:W4sArTyK
長いw
0349Name_Not_Found
垢版 |
2020/03/01(日) 23:15:05.87ID:???
>>338
例えば、そのオブジェクトと、
そのオブジェクト内のプロパティーのキーが同じ名前でも、区別がつく

let obj = { obj: 1, a:2 }

オブジェクトそのもの
console.log( obj ) //=> { obj: 1, a:2 }

オブジェクトの各プロパティー
console.log( obj.obj ) //=> 1
console.log( obj.a ) //=> 2
0350Name_Not_Found
垢版 |
2020/03/01(日) 23:47:58.26ID:???
オブジェクトに名前はない
名前があるのは関数
0351Name_Not_Found
垢版 |
2020/03/03(火) 22:31:22.31ID:???
吾輩は猫である
名前はまだない
0352Name_Not_Found
垢版 |
2020/03/03(火) 22:36:14.30ID:???
そもそも概念的には一般的に物体というものが名前を保持しているのではない
名前が物体を参照しているのだ
0353Name_Not_Found
垢版 |
2020/03/05(木) 00:03:06.37ID:yOGCnpaD
インプットのvalueを変えたいんだけどdomのIdでないと中身変換できないん?
nameもclassもやってみたけどミスってるわけじゃないのに変化しないから気になったんだけど
0354Name_Not_Found
垢版 |
2020/03/05(木) 00:03:33.19ID:???
function EventHandler(event) {
var e = event || window.event;
}

イベントオブジェクトの取得で↑が例としてのってたのですが
またはの記号って左辺が優先されるとかありますか?
event がなければ window.event から取得するみたいな
0355Name_Not_Found
垢版 |
2020/03/05(木) 05:50:00.42ID:???
>>353
JavaScript ID属性で取得/設定する(getElementById)
https://itsakura.com/js-getelementbyid

getElementById は、単数形を返すけど、

下のものは複数形を返すから、最初の要素なら、
elements[ 0 ] みたいな順番を指定しないといけない

var elements = document.getElementsByClassName(names);
elements は、見つかった要素の生きた HTMLCollection です

var elements = document.getElementsByName(name);
elements は、生きた NodeList コレクション

VSCode では、入力補完で、戻り値の型も表示される!
0356Name_Not_Found
垢版 |
2020/03/05(木) 05:59:03.51ID:???
>>354
短絡評価だろ

左が真なら、右を評価しないで、左を戻す。
左が偽なら、右を評価して戻す

let e = 1 || "a" //=> 1

e = null || "あ" //=> あ
0358Name_Not_Found
垢版 |
2020/03/05(木) 08:38:40.99ID:???
>>353
querySelector
querySelectorAll
getElementsByClassName
他にいくらてもある
0359Name_Not_Found
垢版 |
2020/03/05(木) 12:04:18.25ID:bvupghia
>>353
fileは変えられないよ
0360Name_Not_Found
垢版 |
2020/03/05(木) 15:54:16.11ID:yOGCnpaD
>>355
どうも、後で見直したら配列で戻ってくるのに気づいてなかった
ありがとう
0361Name_Not_Found
垢版 |
2020/03/05(木) 16:20:49.73ID:???
配列じゃないけどね。
本当に配列が欲しいならArray.from( )か [... ]で囲みなよ。
0362Name_Not_Found
垢版 |
2020/03/06(金) 00:27:15.97ID:???
IE11というクソカスの為にObject.getOwnPropertySymbols()のポリフィルを自作したいんだが、
どんなアプローチでSymbolを区別してやればいいかねぇ?
0364Name_Not_Found
垢版 |
2020/03/06(金) 09:20:03.57ID:???
JavaScriptにおいて、Arrayの一般的な訳語が配列ではないと言うのなら、そうですね。
0366Name_Not_Found
垢版 |
2020/03/06(金) 12:28:52.50ID:???
NodeListは「配列メソッドが使えない!」という誤認が初心者でよく見かけるな
0367Name_Not_Found
垢版 |
2020/03/06(金) 12:49:50.41ID:???
間違いじゃないよ。今は改善されて配列メソッドと互換性があるメソッドがNodeListに追加されたってだけ
だから古いブラウザだと動かないことがある。
0368Name_Not_Found
垢版 |
2020/03/06(金) 13:01:38.25ID:???
鳥は飛べますが、
猫が飛べるようになったら鳥でしょうか?
0369Name_Not_Found
垢版 |
2020/03/06(金) 13:08:48.30ID:???
存在しないものを例に挙げるのは詭弁のガイドラインに抵触しますが、
あえて言うならば猫メソッドに鳥メソッドを追加しても個別の飛べる猫です
人間が琵琶湖で飛んでも鳥ではなく鳥人間と呼ばれます
0370Name_Not_Found
垢版 |
2020/03/06(金) 13:24:23.71ID:???
ダックタイピングとは、Rubyなどの動的型付けオブジェクト指向プログラミング言語で行われる、
型付けのやり方です。 次の文章が基になっている考え方となっています。
「もしもそれがアヒルのように歩き、アヒルのように鳴くのなら、それはアヒルである。」
つまりドナルドダックはアヒルです。
0371Name_Not_Found
垢版 |
2020/03/06(金) 16:48:01.27ID:r4vwtDx/
>>365
結局配列みたいにインデックスで呼び出せるんだから同じでしょその意味では
0372Name_Not_Found
垢版 |
2020/03/06(金) 18:15:43.96ID:???
>>367
> 今は改善されて配列メソッドと互換性があるメソッドがNodeListに追加されたってだけ

これは本当ですか?
NodeListにはforEachだけでなく、pushやconcatもあるのですか?
0373Name_Not_Found
垢版 |
2020/03/06(金) 19:22:12.14ID:???
>>371
JSでは配列は特殊なオブジェクトと言うことができるが、これをもってオブジェクトは配列であるというのがお前の意見。
それでいいならいいんじゃねメンドくせえ。
リアルでもガンガンそう主張していけよw
0374Name_Not_Found
垢版 |
2020/03/06(金) 19:45:03.45ID:???
>>372
ないならないんじゃねw
知らんよ。俺はNodeListは配列だと思ってないし。

そういったブラウザ間の違いとか、本質的でない部分で
無駄に疲れるのがいやだからjQueryを使うわけで
0375Name_Not_Found
垢版 |
2020/03/06(金) 20:25:24.14ID:???
>>374
>>367の「間違いじゃないよ」は>>366の「配列メソッドが使えない!」にかかってたんじゃなかったのか?
主張に一貫性がないな
0376Name_Not_Found
垢版 |
2020/03/06(金) 23:57:52.99ID:???
>>371
たとえば
const NL = document.querySelectorAll('div');

これはイケるけど
NL.forEach((item) => { console.log(item) });

これは駄目、配列じゃないから
const hoge = NL.map((item) => { return item.innerHTML; });

20年以上前のgetElementsByTagName時代から
「配列と同じでしょ」っていう人は一定数いて
どこかで配列として扱おうとしてコケる、っていうのを繰り返して今に至ってる

だから、今まだこのスレで質問する側なら、あんまり意固地にならず
ノードリスト、コレクションは配列とは似て非なるもの、って認識を持ったほうが良いよ

というのが答えてる人の総意だと思う
0377Name_Not_Found
垢版 |
2020/03/07(土) 00:03:42.00ID:???
>>365
それは違う
querySelectorとquerySelectorAllが返すのはNodeList
getElementsByTagNameや、要素.childrenが返すのがCollection

NodeListは静的で、取得後にDOM内で要素が増減しても変わらない
Collectionは動的で、取得後でもDOM内で要素が増減すると変わる

getElementsByホゲホゲを使うことはもう無いだろうけど
childrenはまだ使う機会があるだろうから、覚えておこう
0378Name_Not_Found
垢版 |
2020/03/07(土) 02:35:12.17ID:???
なんでこんなばらばらの仕様にしたの?
それを吸収するjQueryは素晴らしいね!
0379Name_Not_Found
垢版 |
2020/03/07(土) 02:37:19.03ID:???
NodeListは静的で、取得後にDOM内で要素が増減しても変わらない
だけでDOMの内容自体は変わることに注意

Collectionは動的で、取得後でもDOM内で要素が増減すると変わる
のでインデックス番号とかで扱ってるとバグることがあるので注意
0380Name_Not_Found
垢版 |
2020/03/07(土) 04:20:59.94ID:???
>>364
頭大丈夫か?
Arrayの一般的な訳語が配列あったとしても、
その逆も同じとはならないだろ
「配列」はより一般的な用語だ
0381Name_Not_Found
垢版 |
2020/03/07(土) 04:35:50.82ID:???
>>364
「配列」をArrayと1:1関係と決めつけるほうがおかしいでしょ
>>371は多分用語の「配列」のことを言ってるんでしょ

そもそも大大大前提としてJSのArrayはただのオブジェクトでしょ
別に数字キーで管理されているわけでもなく、普通の文字列と値の組み合わせのオブジェクトでしょ
ただほんのちょっとプロキシ的にlengthと数字キーを扱ってArrayらしさが出てるだけの
「呼ぶことができるオブジェクト」である関数と同じように
他のビルトインオブジェクトと比べても異色ではない存在でしょ

その点実際にJSと絡むときはレイヤー挟んでるとは言えListと名が付いてて
仕様の表現的にはNodeListのほうがよほど配列らしいでしょ
それなのにArrayだけを配列と呼ぶことに拘る論理的な必然性と意味があるのか?
あまりにもナンセンスでしょ

あと>>365もおかしい
NodeListもコレクションだから
liveなコレクションがHTMLCollectionでstaticなコレクションがNodeListってだけだから
0383Name_Not_Found
垢版 |
2020/03/07(土) 07:19:52.22ID:???
>>381
> そもそも大大大前提としてJSのArrayはただのオブジェクトでしょ
> 別に数字キーで管理されているわけでもなく、普通の文字列と値の組み合わせのオブジェクトでしょ

はあ、そうですか
つまり、あなたの中では {0:0 ,1:1, length:2} も "" も配列なんですね
曖昧な世界に生きてますね
0385Name_Not_Found
垢版 |
2020/03/07(土) 11:24:45.07ID:???
373 Name_Not_Found sage 2020/03/06(金) 19:22:12.14 ID:???
>>371
JSでは配列は特殊なオブジェクトと言うことができるが、これをもってオブジェクトは配列であるというのがお前の意見。
それでいいならいいんじゃねメンドくせえ。
リアルでもガンガンそう主張していけよw
0386Name_Not_Found
垢版 |
2020/03/07(土) 14:04:55.76ID:i6mdUe9z
>>248

>>249
ライブラリを使わずにオフラインで3Dゲームを作ることが出来ました。
仕組みを1から理解出来て良かったです
0387Name_Not_Found
垢版 |
2020/03/07(土) 19:27:47.69ID:???
>>356->>357
遅ればせながらありがとうございます。

短絡評価というのですね。
if文で何の気なしに使ってるだけで、左辺から処理されているとか考えたことなかったです。
どうも!
0388Name_Not_Found
垢版 |
2020/03/07(土) 19:46:50.99ID:k8B1CrKG
オフライン環境でファイルの書き込み&保存をする方法はありますか?
読み込みなら出来てるんですけど…
0389Name_Not_Found
垢版 |
2020/03/07(土) 20:04:44.29ID:???
>>381
配列に限らず
全てのオブジェクトはObjectオブジェクトの子孫だよ
0390Name_Not_Found
垢版 |
2020/03/07(土) 20:06:44.80ID:???
>>388
出来たら何をしたいんだこの犯罪者め!
0391Name_Not_Found
垢版 |
2020/03/07(土) 20:13:04.16ID:pg7+MEPr
>>388
これはテキストエディタ書き込みでもしたいんじゃねえの?
0392Name_Not_Found
垢版 |
2020/03/07(土) 20:59:29.95ID:???
>>383
そうではない
Arrayを配列たらしめてるのは[[DefineOwnProperty]]内部メソッドの効果であって
逆に言えばArrayは[[DefineOwnProperty]]トラップがあるだけの普通のオブジェクトだと言うことだ

>>389
プロトタイプ的に子孫であるかどうかの話をしているのではなく、
形態と効果について話してる
0393Name_Not_Found
垢版 |
2020/03/07(土) 21:03:16.28ID:???
要するに話を戻すと、
Arrayというのはその存在がそのものがJSの中で特殊なものではなく、
オブジェクトがトラップによって配列たらしめられているからArrayは配列なのであって、
他の配列たらしめられているオブジェクトも同じく配列と呼ばないというのはナンセンスだという話
0394Name_Not_Found
垢版 |
2020/03/07(土) 22:13:58.57ID:rVIogRi+
一般的にはarray-likeと呼ばれているよそれ。
配列はやはりArrayと対応する訳語として使われててArray.prototype継承してるオブジェクトだね。
Node ListやHTML CollectionをArray-likeではなくArray、配列として認識しろってんならその定義をチームや話相手と共有してくれよな。
常識にしたいなら標準化組織と話し合ってね。
俺らに言われても困る。
0395Name_Not_Found
垢版 |
2020/03/07(土) 23:26:45.05ID:???
いやいや、Arrayも配列だが、配列はArrayだけではないでしょ
例えばTypedArrayは型付配列だけど、型付配列は配列じゃないか
そのように配列っていうのは広い概念でしょ
何を理由のない変なこだわりをしてるんだか
0396Name_Not_Found
垢版 |
2020/03/07(土) 23:28:50.50ID:???
それとArray.prototypeを継承しているかっていうのと、
Array(のインスタンス)かどうかっていうのは別でしょ
Array.isArrayでもわかるように
Arrayかどうかっていうのは内部メソッドが付与された
Arrayたらしめられているオブジェクトかっていう点が重要でしょ?
0397Name_Not_Found
垢版 |
2020/03/07(土) 23:37:41.15ID:???
JSでなんちゃらオブジェクトっていうのは、
どんな修飾がされたオブジェクトかっていう括りであって
プロトタイプはオマケであって本質とは関係ないでしょ?

ArrayはArrayたらしめる修飾がされたオブジェクトであって
その修飾の方向性を配列と呼ぶんでしょ
その中でも具体的に大きい特徴は、
lengthプロパティが実際の配列としての要素数とリンクしているということでしょ
その点例えば{0:'a',length:1}は用意に世界観が壊れるが
ある種似ているかもしれないTypedArrayは要素数固定のおかげで
Arrayのように個性的なトラップメソッドを付与されていない、
内部スロットがある薄い特殊オブジェクトだけど、配列と呼べるんでしょ

ならばNodeListとかも配列と呼ばないのは不自然でナンセンスだとは思わないかい?
0398Name_Not_Found
垢版 |
2020/03/07(土) 23:40:29.66ID:???
これって1人でずっと会話してるの?
0399Name_Not_Found
垢版 |
2020/03/07(土) 23:40:54.35ID:???
だからID無しはキモいんだよな
0400Name_Not_Found
垢版 |
2020/03/07(土) 23:43:33.85ID:???
キモいというのは幼少期から言われ慣れてるから
多分今日も昨日も職場で言われたし

ただ俺は人間よりもJS、Web大好き人間なだけであって
エンジニアとして技術的な話がしたいし
プログラミングの世界に余計な雑念を持ち込まれたくないだけであって、
入門者が曲がった価値観を植え付けられるのを見ていられないだけだからね
0401Name_Not_Found
垢版 |
2020/03/07(土) 23:53:22.95ID:???
つうか根拠があるならそれを自信満々にはっきり言ってほしいのよ
慣習的にそう呼ばれてるんだっていうのは俺も理解はしてるから

そうやって理屈と理屈が打つかるところ、両者の意見を見て
初心者ってどういうものが良いのかを学んで感じていくものでしょう?

両者のはっきりした意見が並んであるのをWebに刻みつけて残すことが
後から検索で見に来た人のためでもあるし、
この先の未来を見据えてもビッグデータとしての側面からも価値のあるコンテンツを作っていきたいでしょう?

少なくとも俺はそう思ってこのスレにずーと居るのでなんかひかれ気味なのは残念
0402Name_Not_Found
垢版 |
2020/03/07(土) 23:55:29.92ID:???
ID未定義の名無しが話し合ってると意味が分からない
Arrayの定義の話をする前にそっちをちゃんとしてください(名前くらい書け)
0404Name_Not_Found
垢版 |
2020/03/08(日) 00:24:12.29ID:???
ID未定義の名無しが話し合ってるから意味がわからないのではない
読み書きは人間が後期に獲得した能力なので
人々が話し合っている会話文を読み解くのは非常に難しい

それどころか海外に行ったら半分くらいの人間は10秒以上他人の話を集中して聞けない
それくらいが本来の人間の能力
日本人は、2chは素晴らしい
0406Name_Not_Found
垢版 |
2020/03/08(日) 01:21:42.76ID:???
>>388
自分のPC に読み書きするなら、Ruby, Node.js みたいなサーバー側が必要

VSCode も、Chromium, Node.js を使っているから、
GUI は、ブラウザのChromium で、
サーバー側はNode.js で、ローカルファイルにアクセスできる
0407Name_Not_Found
垢版 |
2020/03/08(日) 02:10:30.50ID:ELKXCWr4
>>396
ふーん。で、NodeListとHTMLCollectionのArray.isArrayの結果は?
0408Name_Not_Found
垢版 |
2020/03/08(日) 07:58:55.75ID:wyKUDR8/
>>406
なるほど、オンラインじゃないと無理なんですね
参考になりました

>>390
>>391
職場のパソコンで遊んでるんですが、保全が強くてネットに繋いだらダメなんです_( _´ω`)_
0409Name_Not_Found
垢版 |
2020/03/08(日) 14:06:23.02ID:???
>>407何の話をしようとしているのか?
全ては>>363から始まった話だということを理解しているのだろうか?
0410Name_Not_Found
垢版 |
2020/03/08(日) 16:47:52.72ID:???
>>408
Chromeの拡張でも作れば?
それかフラグ立てればローカルに書き込みができるNativeFileSystemAPI使える
0412Name_Not_Found
垢版 |
2020/03/10(火) 19:11:33.57ID:???
aタグからjs実行してスーパーリロードさせたいのですが、以下コードをchromeの検証でnetworkを眺めていると304が返ってきます

<head>
<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Cache-Control" content="no-cache" />
<meta http-equiv="Expires" content="0" />
</head>
<body>
<a href="javascript: window.location.reload(true);">更新</a>
</body>

リンクの部分を以下のように動的に埋め込むようにすれば200が返ってくるようになりますが、ここまでする必要があるのでしょうか?

var updLink = document.getElementById('upd-link');
var linkHtml = '<a href="./?' + Date.now() + '">更新</a>';
updLink.insertAdjacentHTML('beforeend', linkHtml);

<body>
<div id="upd-link">
</div>
</body>
0414Name_Not_Found
垢版 |
2020/03/13(金) 22:21:57.56ID:???
>>413
no-cache のところを no-store にしてみましたが、304 not modified が返ってきてしまいます
0415Name_Not_Found
垢版 |
2020/03/13(金) 23:55:19.11ID:???
スマホが出てきたあたりからmetaタグもレスポンスヘッダもキャッシュ関係は無視してIf-Modified-SinceやIf-None-Matchを渡してサーバー側に委ねるブラウザが多い。更新されてればリロードされるのだから通常は問題ない
更新されてなくても強制的にリロードしたいなら動的にクエリ付けるしかないね
0416Name_Not_Found
垢版 |
2020/03/14(土) 01:19:38.73ID:???
>>415
web系の開発は初めてで常識的なことが分かってなくてすみません
jsを使って定期的に内容が動的に更新されるページを作成しているのですが、
動的に作っているせいなのか自分のテストが間違っているのか、
ベースhtmlを修正・更新してもクライアント側が更新されないことがあるなと思って
隠し更新リンクを作ってみたところ、これでも更新されないなと思い今回の質問に至りました

とりあえず納得しました
どうもありがとうございました
0417Name_Not_Found
垢版 |
2020/03/14(土) 12:34:16.78ID:???
リンク先のファイル(複数)をダウンロードするプログラムを書きたいんだが、どういうコードにしたらいい?
0418Name_Not_Found
垢版 |
2020/03/14(土) 14:04:48.10ID:???
jsでやらないほうがいい
0420Name_Not_Found
垢版 |
2020/03/14(土) 15:59:06.79ID:cwqJKaIn
カッコの使い方を教えてください。
( ), { }, [ ]、こういうやつです。

console.log([0, 1]) // => Array
console.log({0, 1}) // => Uncaught Error

ここまでは理解できるのですが、

console.log((0, 1)) // => 1
console.log(typeof (0, 1)) // => number

なんでこうなるのか?良くわからんです。
カッコ( )で括った文が実行されて、最後の文の結果を返すのでしょうか?

(console.log(0), console.log(1)) // => 0, 1
でした。
0421Name_Not_Found
垢版 |
2020/03/14(土) 16:58:53.02ID:???
×文
○式
×実行
○評価
なら、理解は正しい。カンマ演算子で検索してみな。
0423Name_Not_Found
垢版 |
2020/03/15(日) 05:36:15.32ID:???
>>417
ダウンロードには、curl, wget をよく使う

プログラムなら、Ruby。
Node.js でも出来るかも
0424Name_Not_Found
垢版 |
2020/03/15(日) 10:55:26.38ID:???
このようにruby使うと頭パーになります。
0425Name_Not_Found
垢版 |
2020/03/15(日) 14:46:27.02ID:???
そもそもダウンロードをする必要が本当にあるのか?
無駄に宇宙のエントロピーを増やしていないかその燃費の悪い頭でもう一度考えたほうが良い
0427Name_Not_Found
垢版 |
2020/03/17(火) 09:16:10.25ID:5Hjni/8H
24通りのペアが一組ずつとペアにならない1枚のカードの計49枚で7×7の神経衰弱を作りたいのですがどうすればいいでしょうか・・・?
0428Name_Not_Found
垢版 |
2020/03/17(火) 11:30:49.41ID:???
>>427
まあまあ簡単だよ
まずHTMLに

<h1>神経衰弱</h1>
<div id="concentration"></div>

だけ書いておく
JSはconcentration.jsという別ファイルにしておく

カードのデザインが必要なので24+1枚の絵を
なんでもいいのでグラフィックソフトで描いて
出来たらそれを2枚印刷する

印刷できたら
それを切り抜いたら出来上がり
2枚目のジョーカーは切り抜かなくてOK
0429Name_Not_Found
垢版 |
2020/03/17(火) 13:09:35.99ID:5Hjni/8H
えーと・・・
できればそれをブラウザ上で行えるようにしたいのですが・・・
0430Name_Not_Found
垢版 |
2020/03/17(火) 14:13:34.88ID:???
このスレはこういうガイジが居着いてるから質問しない方がいい
0431Name_Not_Found
垢版 |
2020/03/17(火) 14:27:31.73ID:???
>>429
まあ落ち着け気が早い、まだ続きがある

CSSで
body{ background: #006600;}
h1{ color: #ffffff;}

として
次にHTMLで、スマホ、タブレットに対応するために
<meta name="viewport" content="width=device-width">

と書いておく
これ現代のHTMLの常識だから

次にconcentration.jsをエディタで開く
エディタは出来る限り大きく開こう、なんならフルスクリーンで
かわりに HTMLは、iPad Proのような大きなタブレットでブラウザを開き表示させておく

こういう快適なコーデング環境を作るのは大事なんだプロはみんなやってる

そして、さっき切ったカードをタプレットの上に並べる
0432Name_Not_Found
垢版 |
2020/03/17(火) 15:26:39.89ID:???
たしかにブラウザ上で行ってるが…
デスクトップのディスプレイだとカードが下に落ちるのでは?
0433Name_Not_Found
垢版 |
2020/03/17(火) 17:41:38.36ID:0bYIV2V0
答えてる方は当然ガイジだけど、質問してる方も聞き方が漠然とし過ぎてて、大概ガイジじゃん
0434Name_Not_Found
垢版 |
2020/03/17(火) 18:38:25.49ID:???
>>429
作成済とかいう普通の神経衰弱のコードをまず出したらどう
0436Name_Not_Found
垢版 |
2020/03/17(火) 20:09:18.83ID:???
宣言せずに変数使ったりsetTimeoutに文字列渡したりとかなり懐かしい書き方してますなぁ
0437Name_Not_Found
垢版 |
2020/03/17(火) 20:23:59.02ID:0bYIV2V0
ダメだこいつ
発達障害の申し子じゃねーかw
0438Name_Not_Found
垢版 |
2020/03/17(火) 22:10:03.89ID:???
>>435
90年代を思い出すコードだな
そしてJSでこのインデントルールを実際に使ってるのを見るのも
かなり久しぶりかも
0439Name_Not_Found
垢版 |
2020/03/18(水) 00:16:38.39ID:???
>>435
そのリンクのソースコードを使わない方がよい。
変数にコメントが無いから、変数をどういう意味で使っているのか、他者には分からないから、
それを解析するだけで、時間を浪費するから、無視すべき!

アプリは、仕様書からプログラムになる。
プログラムから仕様書を推測するのは、逆行するから、極めて難しい

まず、仕様書を作って、変数の使い道を説明してから、プログラムを他人に見せること!
他人に、アプリの仕様を解析させちゃいけない!

そこが一番難しいから企業は、1人月百万円とか払うわけ

それに、Java じゃない!
JavaScript です!

他人のアプリを使わず、1行ずつコメントを付けて、自分でプログラミングしてください!
0441Name_Not_Found
垢版 |
2020/03/18(水) 03:04:26.30ID:???
特に、my_reset という関数の内容がヒドイ

こういう数式をポンと出されても、仕様書が無いから、意味が分からない。
num=Math.floor((masu_w * masu_h) / (pic_num * 2));

特に、masu_w * masu_h などは、あちこちで何回も出てくる。
すべてのマス目の数なら、ALL_CELLS_SIZE = 100 とか、定数を定義すべき

まず、定数と変数の書き方を変えること!

仕様を知らない人から見れば、謎のような数式
if(max >= (pic_num * 2 * (i+1))+pic_num){ break; }

すべての行に、コメントを付ける。
プログラミングの内容ではなく、仕様の意味を解説する

まず、ALL_CARDS[ 0〜48 ]に、49枚のカード・インスタンスを入れましたとか、
各カード・インスタンスには、各画像のURL がありますとか、
インデックス[0・1][2・3]〜[46・47]は同じカードで、[48]だけはペアにならないカードですとか、

こういうのを決めるのが仕様
0442Name_Not_Found
垢版 |
2020/03/18(水) 03:10:13.85ID:???
流石に野に落ちてるコードに仕様書まで求めるのもなあ
0443Name_Not_Found
垢版 |
2020/03/18(水) 05:03:30.79ID:???
回答者がプログラムから、仕様まで推測して教えるのも、お門違い

だから、他人のコードのコピペは、ダメ!
質問者自身が仕様を分かっていないから、仕様の推測を誰かがしないといけなくなる

だから、自分自身で仕様を決めて書いたものしか、質問してはいけない!

他人のコードをコピペしたものは、質問者も仕様を分かっていないから、
ピンポイントで要点だけを抜き出せない

だから、全部のコードを貼って、誰か解析してくださいとなるw
0444Name_Not_Found
垢版 |
2020/03/18(水) 05:42:23.31ID:???
>>439,441,443 は通称rubyキチガイと呼ばれるガイジ。
書き方がキモいのでレスの内容がぜんぜん頭に入ってこない。
0445Name_Not_Found
垢版 |
2020/03/18(水) 08:18:12.25ID:???
49枚のカード・インスタンスを作って、配列に格納する。
number には、1,1, 2,2,〜24,24,25 の数字を入れる

class Card {
constructor( number ) { this.number = number }
}

let cards = [ ]

for ( let count = 1; count <= 49; count++ ) {
number = Math.ceil( count / 2 ) // 切り上げ
cards.push( new Card( number ) )
}

console.log( cards.map( x => x.number ) )

出力。49枚のカード
1,1, 2,2,〜24,24,25
0446Name_Not_Found
垢版 |
2020/03/18(水) 10:40:59.04ID:???
最初から数字を全て確定させて配っておく必要はない
観測された時に1枚1枚確定させていけばいい
0447Name_Not_Found
垢版 |
2020/03/18(水) 13:02:21.75ID:???
俺もそう思った
麻雀ゲーム作るときのお約束
0448Name_Not_Found
垢版 |
2020/03/18(水) 13:08:07.83ID:???
神経衰弱なら最初に初期化する設計で良さそう
0449Name_Not_Found
垢版 |
2020/03/18(水) 13:21:02.18ID:ZSzyyMA+
type GameState = {
cards: number[],
openCards: boolean[],
step: '0open' | '1open' | '2open',
openCard: (i: number) => void,
turnChange: () => void,
playerPoint: { a: number, b: number },
currentPlayer: 'a' | 'b'
}

ロジック分離したら state はこんな感じで実装すれば良さそう
0450Name_Not_Found
垢版 |
2020/03/18(水) 13:39:36.41ID:???
このスレって書き方からアルゴリズムまで手取り足取り教えてくれるスレだったの?
0453Name_Not_Found
垢版 |
2020/03/18(水) 16:11:07.71ID:???
そう。
bootstrapは最新の5でようやく脱jQueryとあいなった模様。
ただwebの3分の1を占めるWordPressがデフォでガッツリjQuery入れてるからね。
今年のWordPressの伸びは0.2%どころじゃないから、そう考えるの単体での採用は減ってんだろうね。
0454Name_Not_Found
垢版 |
2020/03/19(木) 03:45:44.44ID:???
jQuery が含むものは、
1. Ajax
2. 各ブラウザ互換性のPolyfill
3. CSS・セレクターなどを便利に拡張したもの
4. 便利で汎用的な関数

これらを各々、分離してもよいとは思う。
多くの人が使いたいのは、2, 3

1はaxios、4はLodash へ分離できる
0455Name_Not_Found
垢版 |
2020/03/19(木) 06:34:44.87ID:???
あのさぁw、slimビルドって知ってる?
なんでslimビルド版ができたかも。
0456445
垢版 |
2020/03/19(木) 08:20:59.04ID:???
>>445
の続き

cards の中身をシャッフルしたいのなら、Lodash のshuffle を使う

let new_cards = _.shuffle( cards );

console.log( cards.map( x => x.number ) ) // シャッフル前
console.log( new_cards.map( x => x.number ) ) // シャッフル後
0458Name_Not_Found
垢版 |
2020/03/19(木) 08:39:41.73ID:???
lodash使うならそもそも_.range(50).map()が使えるぞ
0459445
垢版 |
2020/03/19(木) 09:32:46.04ID:???
さすがに、配列内の要素のシャッフルを、自作する人は、いないでしょ

ライブラリを使わないと無理
0460Name_Not_Found
垢版 |
2020/03/19(木) 09:39:47.44ID:???
>>454

> jQuery が含むものは、
> 1. Ajax
すでに分離されている。

> 2. 各ブラウザ互換性のPolyfill
もとからjQueryはPolyfillを提供していない。
どのブラウザでも動く機能のみを使ってるだけ

> 3. CSS・セレクターなどを便利に拡張したもの
分離されてる。Sizzle。使いたければ単体で使える。
jQueryはSizzleを前提としてるから取り除くことはできない。

> 4. 便利で汎用的な関数
それはjQueryが自身が内部で使うために作られたもの
便利だからAPIとして提供しているが取り除くことはできないし
jQueryにとって意味がないものは実装されていない。
便利で汎用的な関数を充実させるプロジェクトではない
0461Name_Not_Found
垢版 |
2020/03/19(木) 10:25:00.30ID:???
> どのブラウザでも動く機能のみを使ってるだけ

いいえ。たとえばquerySelector(All)を使えるときはそちらを使うようになっています。この時querySelectorが使えないブラウザの場合はsizzleが使われます。
0462Name_Not_Found
垢版 |
2020/03/19(木) 10:28:01.31ID:???
だからsizzleはどのブラウザでも動くだろ
0463454
垢版 |
2020/03/19(木) 10:32:30.78ID:???
>>460
jQuery のソースコード内には、大量のPolyfill が書いてある!

Support: Android <=2.3 only
Support: Android<4.0
Support: Android <=4.0 only
Support: Android <=4.0 only, PhantomJS 1 only

Support: IE, Opera, Webkit

Support: IE6-11+
Support: IE <=8
Support: IE<9
Support: IE 9 - 10 only
Support: IE 9-11, Edge
Support: IE <=9 - 11, Edge 12 - 13
Support: IE 11, Edge

Support: real iOS 8.2 only

Support: Firefox<24
0465Name_Not_Found
垢版 |
2020/03/19(木) 11:02:45.56ID:???
Polyfillっていうのは特定のブラウザにないAPIを
JavaScriptを使って互換APIを実装することだからな
Polyfillが使われるとブラウザが持ってるAPIが変化してしまう。
本来ないはずのAPIが何故かできてしまう。

自分でPolyfillライブラリを使って意識的にやってるならいいが
jQueryが勝手にブラウザの足りない機能を埋めてたりすると
余計なことすんなって言われる。だからそんなことはやらない。

jQueryはブラウザの標準機能を変えたりしない
似たようなことをして互換性問題を起こしたのがPrototype
その反省から生まれたjQueryはPolyfillを提供しない
0466Name_Not_Found
垢版 |
2020/03/19(木) 13:28:49.35ID:???
>>459
大した手間でもなくない?
数行出し
ライブラリができる前から手で書いてたから
あんまり気にならんなあ
0467Name_Not_Found
垢版 |
2020/03/19(木) 15:28:29.21ID:???
まあMath.random()で出た順番に入れ替えるだけ
みたいな簡単なやつならそうだわな
ポンコツの俺でも出来る
0468Name_Not_Found
垢版 |
2020/03/19(木) 15:51:01.26ID:???
初心者すぎて恐る恐るお尋ねします

【環境】Windws10、Firefox74 共に64bit版
下のコードをnewWin10、10.htmlまで繰り返したいのですが、

function openWin(){
 newWin01 = window.open("hoge/01.html","newWin01","width=100,height=100");
 newWin01.focus();
}
0469468
垢版 |
2020/03/19(木) 15:54:19.92ID:???
途中送信失礼しました

forで( var i = 01; i < 11; i++ )と書いた場合
01の0はそもそも返ってくるのか
iの値を記述の中にくっつけるにはどう書いたらよいのか不明でこちらに来てみました
ご教示いただければ幸いです
0470Name_Not_Found
垢版 |
2020/03/19(木) 16:57:19.85ID:???
そもそもその i 使ってなくね?
俺の愛は使う相手がいないが…
0471Name_Not_Found
垢版 |
2020/03/19(木) 16:58:56.77ID:???
>>469
数値リテラルつって、数字の書き方みたいなもんなんだが
01と書くと、それは8進数になる
まあ1だから十進数になおしても1なんだけど
0473Name_Not_Found
垢版 |
2020/03/19(木) 17:08:46.89ID:???
連続でopenはブラウザで制限されてるだろどうせ
0475Name_Not_Found
垢版 |
2020/03/19(木) 17:35:55.81ID:???
NAOシフト「著作権侵害です!」
0477Name_Not_Found
垢版 |
2020/03/19(木) 18:01:22.34ID:???
>>459
定番のFisher–Yates shuffleは自作したが、別段難しくなかった
0478Name_Not_Found
垢版 |
2020/03/19(木) 22:39:36.72ID:???
>>477
その自作というのはどのレベル?

・なにもない所から自分で考え出した
・解説、数式から自分でコードを起こした
・すでにある他の言語のコードをJavaScriptに翻訳した
・すでにあるJavaScriptのコードを自分なりのコードで書き直した
・関数をコピーした

どれも自作だけど、レベルがぜんぜん違うよね
0480Name_Not_Found
垢版 |
2020/03/19(木) 23:13:06.25ID:???
フィッシャーイェーツは
わりとみんなたどり着きやすいやり方じゃね?
一個ずつランダムに取り出すって
0481Name_Not_Found
垢版 |
2020/03/19(木) 23:16:55.55ID:???
>>478
> ・なにもない所から自分で考え出した

Fisher–Yates shuffleと書いてるのに、なぜこの選択肢が出てくる?

> ・解説、数式から自分でコードを起こした

公式サイトにあるアルゴリズムをコードに起こしただけだから、これ
アルゴリズムからコード化はプログラマなら基本だろう?
0482Name_Not_Found
垢版 |
2020/03/19(木) 23:35:46.12ID:???
トランプランダムに並べろって言われたら
よく切って1枚置く、よく切って1枚置く…ってやるだろ普通
FYシャッフルてのはそれくらいありがちだ
0483Name_Not_Found
垢版 |
2020/03/19(木) 23:54:06.22ID:???
>>481
アルゴリズムからコードを起こしたってことは
言語を置き換えたってことだよね?

それとも元のアルゴリズムにコードレベルのものはなかった?
それちゃんとテストした?バグがないことをどうやって証明してる?
0484Name_Not_Found
垢版 |
2020/03/20(金) 03:11:38.92ID:???
それが質問かな?
じゃあJS固有の話じゃないからよそでやってね。
ひとりで寂しいからってここで話し相手募るなジジイ。
0485Name_Not_Found
垢版 |
2020/03/20(金) 05:15:48.79ID:???
>>459
randamな位置の要素を取り出してくだけでいいじゃん
0486Name_Not_Found
垢版 |
2020/03/20(金) 08:46:56.48ID:???
>>483
> アルゴリズムからコードを起こしたってことは
> 言語を置き換えたってことだよね?

関数一つ定義しただけで言語が書き換わるわけないだろ
ここまで頭が悪い奴とは思わなかった

> それとも元のアルゴリズムにコードレベルのものはなかった?

文章しかなかった

> それちゃんとテストした?バグがないことをどうやって証明してる?

テストした
0487445
垢版 |
2020/03/20(金) 08:52:37.97ID:???
自作するぐらいなら、Lodash などの多くで使われている、ライブラリを使う

自作は、テストが大変だし、
汎用的なものはできるだけ、ライブラリで済ませたい

webpack で、Lodashの個別の関数だけを読み込めるし、サイズも大したことないから
0488Name_Not_Found
垢版 |
2020/03/20(金) 09:38:22.06ID:???
そうやって人の作った物使うだけだと
いつまで経っても自分で何か作ることなんて出来ないよお?
0489Name_Not_Found
垢版 |
2020/03/20(金) 09:40:08.74ID:???
>>483
> 言語を置き換えたってことだよね?

何その謎論理
アルゴリズムをなんだと思ってるの?
0490Name_Not_Found
垢版 |
2020/03/20(金) 17:19:25.78ID:???
Fisher–Yatesって制御構造の練習問題として使われてもおかしくないぐらいに単純じゃん
よく題材になるソートアルゴリズムよりも簡単

Fisher–Yatesすら実装出来ないレベルなら、「僕は日本語で説明されてもコードを書けないので、コピペコードをください」っていってるようなもの
0491Name_Not_Found
垢版 |
2020/03/20(金) 17:30:07.85ID:9Qjbx9QY
>>478
>・なにもない所から自分で考え出した

むしろそうでない方が優秀なんじゃね?
ふっつーのボンクラ初心者が頭ひねって考えて
最初に出てくるのはFY法だろう
少なくとも俺はそうだったわ
0492Name_Not_Found
垢版 |
2020/03/20(金) 17:35:54.68ID:???
>>491
自分で考えてFY法に辿り着いたなら、君は十分優秀だよ
0493Name_Not_Found
垢版 |
2020/03/20(金) 17:44:40.31ID:9Qjbx9QY
>>492
えええええ
これより簡単に思いつくのってどんなの?
0494Name_Not_Found
垢版 |
2020/03/20(金) 22:43:43.45ID:???
localeCompareのusage:"sort"とusage:"search"て具体的に何が変わるん?
0495Name_Not_Found
垢版 |
2020/03/20(金) 23:10:45.07ID:???
>>493
世の中には>>459>>483のような、無理と諦めて考えることを放棄する人間がいるのだよ
0496Name_Not_Found
垢版 |
2020/03/21(土) 02:17:35.86ID:???
ID有りのスレにしない?
自演っぽいのばっかじゃん
0497Name_Not_Found
垢版 |
2020/03/21(土) 06:36:04.68ID:???
もう今まで何十回もスレが分岐したから
それで淘汰されて残ったのがID無しのスレだから
歴史を繰り返すな
0498Name_Not_Found
垢版 |
2020/03/21(土) 08:23:47.26ID:???
>>496
作ってくれても良いけど、少なくとも、2-3人は定住する人間がいないと機能しない
「誰かやれ」な感じなら、100%無理だと思う
0500Name_Not_Found
垢版 |
2020/03/21(土) 13:16:28.75ID:???
※念の為に言っておくが、他のスレが出来たら
両方のスレに行くだけです。つまり俺のスレが増える。
0501Name_Not_Found
垢版 |
2020/03/21(土) 13:41:03.61ID:???
念の為にいっておくが、>>500は俺ではないからな
0502Name_Not_Found
垢版 |
2020/03/21(土) 18:36:51.44ID:h2gmz7iG
自演疑われたくないならsageなきゃ良いだけじゃん
逆にそうしないのは自演だと思われても構いませんよってことだろう
0503Name_Not_Found
垢版 |
2020/03/22(日) 03:51:06.20ID:???
まああげても自演って言うけどな!
0504Name_Not_Found
垢版 |
2020/03/22(日) 08:46:09.38ID:???
念の為にいっておくが、>>502は俺ではないからな
0505Name_Not_Found
垢版 |
2020/03/22(日) 17:09:16.60ID:???
念の為にいっておくが、>>504は俺ではないからな
0506Name_Not_Found
垢版 |
2020/03/23(月) 08:18:27.74ID:???
>>502
以前、そう伝えたら、「やりたきゃ勝手にやれ。俺は一向に困らん。」といわれた
困らんのなら、「俺ではない」発言が不要なはずなんだけどな
0507Name_Not_Found (ワッチョイ 4bda-JDns)
垢版 |
2020/03/23(月) 14:13:04.45ID:???0
画面の選択した文字列を翻訳するのにGoogle翻訳に飛ばしていたのですが、制度の良い翻訳サイトがあったのでそちらに飛ばせないかと思い該当部分のURLを置き換えましたがやはりそう簡単な事ではありませんでした
サイトに適したやり方が必要だと思うのですが、どこをどういじれば可能かわかるでしょうか?

【環境】Windows10 64bit PRO Firefox74
【条件】選択範囲を翻訳
【何をしたのか】下記のコードのURL部分を対象サイト(https://www.deepl.com/translator)に書き換えたら404 Not Found 後ろに?uとか付いてる所を消してみたりしても変わらず
【期待する結果】最終的にどういう結果を望んでいるのか、を書いてください。
【サンプルコード】
javascript:var%20t=((window.getSelection&&window.getSelection())||(document.getSelection&&document.getSelection())
||(document.selection&&document.selection.createRange&&document.selection.createRange().text));var%20e=(document.charset||document.characterSet);if(t!='')
{location.href='http://translate.google.com/?text='+t+'&;hl=ja&langpair=auto|ja&tbb=1&ie='+e;}else
{location.href='http://translate.google.com/translate?u='+encodeURIComponent(location.href)+'&hl=ja&langpair=auto|ja&tbb=1&ie='+e;};
(長過ぎると出たので改行しています)

どうかよろしくお願いします
0509Name_Not_Found
垢版 |
2020/03/23(月) 15:31:08.91ID:ZCb27jWc
こんな感じか
(() => {
const t =
(window.getSelection && window.getSelection()) ||
(document.getSelection && document.getSelection()) ||
(document.selection &&
document.selection.createRange &&
document.selection.createRange().text);
if (t != '') {
location.href = `https://www.deepl.com/translator#en/ja/${t}`;
}
})();


javascriptラベルつけて ↑
0510507 (ワッチョイ 4bda-JDns)
垢版 |
2020/03/23(月) 16:35:27.40ID:???0
>>508-509
ご教授頂きありがとうございます
試した所ちゃんと翻訳する事が出来ました
助かりました、本当にどうもありがとうございました
0511Name_Not_Found
垢版 |
2020/03/23(月) 16:53:48.56ID:???
ここで質問していい内容かどうかわからないのですがが、お知恵をお貸しください。

ttps://github.com/rymbau/polaroid-gallery

で配布されているフォトギャラリーを実装するJsvaScriptですが(リンク先で実例が見られます)、macのSafariでのみ、閲覧すると写真(および文字)がひどくぼやけます。ChromeやFirefox、iOSのSafaiでは問題なくクリアーです。

-webkit-backface-visibility: hidden;
backface-visibility: hidden;

などを試してみましたが解決しません。何か解決策があるでしょうか?
0512Name_Not_Found
垢版 |
2020/03/23(月) 17:57:34.46ID:ZCb27jWc
>>511

figure img {
image-rendering: -webkit-crisp-edges;
}

を入れたところくっきり表示されました
0514Name_Not_Found
垢版 |
2020/03/23(月) 18:15:00.87ID:???
ありがとうございました!
0515Name_Not_Found
垢版 |
2020/03/23(月) 18:26:15.70ID:???
>>512, 513
早速ありがとうございます。私が試している画像では、レンダリングがされなくて、
かえって見にくくなってしましました(涙)。残念…。

検証画像でもそうなのですが、表示されているものをマウスでドラッグしてローカルに
取り込んで開いてみると、表示されているものよりだいぶ綺麗なんですよね。同じ webkit
でも、なぜ Mac の Safariだけ?
0516Name_Not_Found
垢版 |
2020/03/23(月) 18:28:15.05ID:ZCb27jWc
demo ページで使われてる画像ダウンロードして試すとかどうですか?
0517Name_Not_Found
垢版 |
2020/03/23(月) 18:50:59.43ID:???
>>516
一応、ソースのパッケージにはデモのセットが入っているので、「image-rendering: -webkit-crisp-edges; 」
を入れて確認しました。確かにデモの写真ではぼやけは解消されていますね。

私が使っているのは線画なのですが、それだとこうはいかないみたいなんです。画像はどうやら
「解像度を調整」+「レンダリング」という手順で処理されているみたいですが、線画だと
の前半の「解像度の調整」でかなり荒い画像になるみたいんです。

実はその処理はデモ画像中の文字にもかかっていて、ChromeやFirefoxで閲覧した画像と比べると、
フォントもかなりぼやけているのが見ていただけると思います。写真も綺麗になっているようには
見えますが、他のブラウザと比べるとやはり荒さが見て取れます。
0518Name_Not_Found
垢版 |
2020/03/24(火) 06:04:02.93ID:???
>>509
URL に文字列を入れるのなら、特殊文字をURI encode する必要があるのでは?
0519Name_Not_Found
垢版 |
2020/03/24(火) 07:44:03.73ID:???
letとvarの違いが分かんなくなっちまったから教えてくれん?

for(let i)とfor(var i)でメモリパフォーマンスに違いはあるんかね。
letはループ毎に変数生成されるからメモリに悪そうなイメージだけど実際の所どうなの?
0520Name_Not_Found
垢版 |
2020/03/24(火) 08:12:19.09ID:???
>>519
初心者=計測せずにパフォーマンスがーといいだす
初心者=実行速度しか見えてない
0521Name_Not_Found
垢版 |
2020/03/24(火) 09:07:11.24ID:???
今は、let

var は非推奨。
スコープの解釈が色々あって、バグるので難しい
0522Name_Not_Found
垢版 |
2020/03/24(火) 09:13:43.03ID:???
gulpは、メソッドチェーンで書けるから、左から右へ読めるけど、
npm scripts は書きにくい

VSCode, Node.js, webpack, babel を使っているけど、
webpack-dev-server を使うのが普通なのか?
0524521
垢版 |
2020/03/24(火) 14:09:13.61ID:???
var は、巻き上げが起こるので、ややこしい

var x = 0;

function f ( ) {
console.log(x); //=> undefined
var x = 1;
}

f( )
0525Name_Not_Found
垢版 |
2020/03/24(火) 14:23:49.44ID:???
>>524
varの関数スコープ以外の解釈はよ
色々あるんだろ?早くしろノロマ


521 Name_Not_Found sage 2020/03/24(火) 09:07:11.24 ID:???
今は、let

var は非推奨。
スコープの解釈が色々あって、バグるので難しい
0526Name_Not_Found
垢版 |
2020/03/24(火) 15:18:18.25ID:???
な?誰もパフォーマンスの問題なんて気にしてねーだろ?
パフォーマンス以外のもっと重要なことに目が行かない時点で
初心者なんだよ
0527Name_Not_Found
垢版 |
2020/03/24(火) 16:02:21.22ID:???
chromeしか知らんけどlet, const実装から結構長い間varのほうが速かったよ。
今はlet, const有利な実装に切り替えたらしい。
要するに実装依存で、ループ毎に変数生成〜とかはあまり関係がない。
まだvarのほうが速い実装もあるかもしれない。
ちなみにconstが一番速い。
そしてその差は微々たるもの。
0528Name_Not_Found
垢版 |
2020/03/24(火) 17:36:35.33ID:???
再代入したくないからconst
てかもう感覚がvarを拒否してる
lintでチェックするからどうでもいいけど
var使ってるエンジニアいたらビビるわ
0529Name_Not_Found
垢版 |
2020/03/24(火) 18:36:01.30ID:???
>>523
>>520がいいたいことをいってた

> 初心者=計測せずにパフォーマンスがーといいだす
0530Name_Not_Found
垢版 |
2020/03/24(火) 18:36:34.28ID:???
>>528
今でもvar使ってるよ
顧客の環境がlet使えないやつなもんで
0531Name_Not_Found
垢版 |
2020/03/24(火) 19:15:18.99ID:???
パフォーマンス気にするなら、速度を測れ
0532Name_Not_Found
垢版 |
2020/03/24(火) 19:46:36.31ID:???
パフォーマンス気にしてletとvarの使い分けより、もっと他にパフォーマンスに気を遣うべき部分があるだろう
0533Name_Not_Found
垢版 |
2020/03/24(火) 21:52:38.47ID:u/9I9+eD
>>522
ワンライナーで書けないような複雑なことしたいときは
gulpfileみたいに別途jsを書いてファイルにして
それを実行してもいいんだぜ
0535Name_Not_Found
垢版 |
2020/03/24(火) 23:18:11.28ID:???
>>530
let使えない環境ってなんだよ
そもそもそういう問題じゃなくてbabelすればいいだろ
0536Name_Not_Found
垢版 |
2020/03/25(水) 00:15:53.40ID:???
質問とはまるで見当違いな部分でごちゃごちゃマウント取るアスペども(笑)
せめて回答叩き付けてから語るならまだしも、スレのレベルが低すぎる
及第点なのは527だけやな
0537Name_Not_Found
垢版 |
2020/03/25(水) 00:33:23.68ID:???
数字も出さないのに及第点って、及第点低すぎやろ
0538Name_Not_Found
垢版 |
2020/03/25(水) 02:32:29.24ID:dreA59yx
>>535
トランスパイルしたら結局varになっちゃうじゃん

letとvarの違いを問うているのであって
盲目的にletとconst使えって話ではなくね?
0539Name_Not_Found
垢版 |
2020/03/25(水) 04:08:51.64ID:???
>>538
結局varになるからなんなの?
結局アセンブラになるから、高級言語使う意味がないっていいたいの?
0540Name_Not_Found
垢版 |
2020/03/25(水) 07:26:52.04ID:???
>>536
ごちゃごちゃ言う前に自分で実測しろ
0541Name_Not_Found
垢版 |
2020/03/25(水) 08:43:39.45ID:???
jsperfという便利なサービスがあってだな…
0542522
垢版 |
2020/03/25(水) 11:14:47.11ID:???
藻舞らを、プロと見込んで聞いているのに、
webpack-dev-server を使っている香具師は、いないの?

所感を希望
0543Name_Not_Found
垢版 |
2020/03/25(水) 11:40:06.15ID:???
>>542
各スレでのうんこruby駄文テロ辞めたら答えてやるよカス
0544Name_Not_Found
垢版 |
2020/03/25(水) 12:58:36.00ID:???
巻き上げはletでも起こる
そもそも変数とはスコープに属するものなのでそれが当たり前。
letは変数を初期化しないだけ。TDZは存在の巻き上げはが起こっていない範囲ではなく、存在するが初期化がまだな範囲。
何回言ったら理解してくれるんだろうな。
0545Name_Not_Found
垢版 |
2020/03/25(水) 14:07:10.58ID:n2aipQ6p
>>539
そんなことは言ってないよ(´・ω・`)
質問はvarとletはパフォーマンス的にどう違うの?って話じゃん?
まあパフォーマンスは置いとくとして、内部的にどう扱いが違うのか?ってことでしょ
0546Name_Not_Found
垢版 |
2020/03/25(水) 14:22:04.85ID:n2aipQ6p
>>519
違いをざっくり説明してみると、たとえば

for(var n=0; n<3; n++){ console.log(n); }

と書いたとき、varは関数スコープなので
この数値を入れるメモリは一箇所だけ確保され、ループ毎に上書きされる

for(let n=0; n<3; n++){ console.log(n); }

とすると、letはブロックをスコープとする
※forの場合、変数宣言で使ったletはfor句のブロックスコープになる
ので、この数値を入れるメモリは、上記の場合3箇所別々に確保される

ので、もちろん実装毎に違いはあれど、メモリパフォーマンスだけ見れば
varのほうが良い結果が出る場合がままある

大局的に見れば、盲目的にlet、constを使う!と考えずに
適切な変数宣言を行うと考えるのが良いです
0547Name_Not_Found
垢版 |
2020/03/25(水) 14:24:33.84ID:???
とにかく極力const
どうしようもないときはlet使えばよくね
巻き上げ以上の仕様はマニアだけ読めばよくね?
0548Name_Not_Found
垢版 |
2020/03/25(水) 14:29:38.54ID:???
> 何回言ったら理解してくれるんだろうな。

人間の数
0549Name_Not_Found
垢版 |
2020/03/25(水) 14:31:19.97ID:???
>>545
今でもvarを使ってる理由は、顧客の環境がlet使えないから
って書いてあるだろ

パフォーマンスのためにvar使ってるなんて書いてないだろ
顧客の環境がlet使えないからvar使ってんなら
babel使えってことだろ
0550Name_Not_Found
垢版 |
2020/03/25(水) 14:37:55.41ID:???
>>546
varのメモリパフォーマンスが良いことがあるんですね!
letやconstのメリットはよくわからないですが
パフォーマンスが良い方というのはわかります。
メモリパフォーマンスが良い方が適切な変数宣言ですものね!

と初心者は言う
0551Name_Not_Found
垢版 |
2020/03/25(水) 15:06:30.91ID:???
重い処理はvarやletを使い分けても重いままだぞお前ら
クソコードはクソコードのままなのを理解しろ
0552Name_Not_Found
垢版 |
2020/03/25(水) 15:34:37.61ID:jZ/WHFF3
重い軽いの話はしてないです
0553Name_Not_Found
垢版 |
2020/03/25(水) 16:19:03.52ID:???
varを使うメリットが有るのか?という話です。
答えは ない です。
0554Name_Not_Found
垢版 |
2020/03/25(水) 16:24:59.01ID:jZ/WHFF3
なんでないのん?
0555Name_Not_Found
垢版 |
2020/03/25(水) 16:47:48.13ID:???
ちょっとでも勉強してたらvarがレガシーだということに気づくだろ
0556Name_Not_Found
垢版 |
2020/03/25(水) 16:55:34.82ID:???
varを使うメリットがあるのか?という問いには答えられないが、
varでしか書けない書き方があるのか?という問いには答えられる。
答えはある。
0557Name_Not_Found
垢版 |
2020/03/25(水) 16:58:04.48ID:???
>>552
頭スポンジなの?

519 :Name_Not_Found :sage :2020/03/24(火) 07:44:03.73 ID:???
letとvarの違いが分かんなくなっちまったから教えてくれん?

for(let i)とfor(var i)でメモリパフォーマンスに違いはあるんかね。
letはループ毎に変数生成されるからメモリに悪そうなイメージだけど実際の所どうなの?
0558Name_Not_Found
垢版 |
2020/03/25(水) 18:01:47.23ID:???
>>557
メモリパフォーマンスと
プログラムの重い軽いは根本的に別の話じゃね?

最高のパフォーマンスでもたくさん使ったら重いし
最悪なパフォーマンスでも少ししか使わなければ軽いし
0559Name_Not_Found
垢版 |
2020/03/25(水) 18:42:35.63ID:???
メモリパフォーマンスの意味もわからんのかよ
ループ毎に変数生成されるとメモリに悪いんだぞ?
重いとかいう話じゃなくてメモリの書き込み回数が増えて
寿命がすぐに来るって話だろう
0560Name_Not_Found
垢版 |
2020/03/25(水) 19:10:29.54ID:???
for文のことならletもconstも一つ分使い回してるよ。
違うと言うならそうなってない実装挙げてみろや。
0561507 (ワッチョイ 07da-HKSP)
垢版 |
2020/03/25(水) 22:58:47.04ID:???0
すみません
前回の質問で、書いた通り選択文字列は書いて頂いた物で翻訳になりましたが選択していない時(ページ全体)も出来る様にしたかったんですけど元ので出来ていたので書くのを忘れていました
教えて頂いた物と見比べて出来ないかとやってみたのですがURLを置き換えたりしただけではやはりダメでした
選択していない時はページ全体の翻訳にしたい場合はどう修正すると可能でしょうか?
何度にもなりすみません
0562Name_Not_Found
垢版 |
2020/03/25(水) 23:25:05.85ID:???
>>561
お前は誰だ!
というのはさて置き、あと丸投げはやめなよー



とりあえず、新しい方の翻訳サイトで何かページ丸ごと翻訳してみて
その時のURLをよーく見てみなよ

どこに対象となるページのURL入れればいいのかは
中学生でもわかるから
0563Name_Not_Found
垢版 |
2020/03/25(水) 23:46:49.39ID:???
let はブロックスコープだから、すぐに解放されるけど、

var は関数スコープだから、使わなくなっても解放されない
0564Name_Not_Found
垢版 |
2020/03/25(水) 23:51:19.83ID:???
>>561
ページ全体の翻訳は、Edge みたいに、URL を、Google 翻訳に渡すとかじゃないの?
0565Name_Not_Found
垢版 |
2020/03/25(水) 23:57:24.26ID:???
>>558-559
メモリを使い切ったらメモリ不足で落ちる時代なら分かるが、今時はメモリ不足なら速度低下だろ
メモリを使い切って速度低下しないんなら別にメモリ残量なんて気にしないわ
0566Name_Not_Found
垢版 |
2020/03/26(木) 00:25:33.52ID:???
"apple"という文字列の中から三番目の文字を抜き出してコンソールに表示したい時、


const word = 'apple';
console.log(word[2]);

とすれば良いとドットインストールで解説されていました。
word[2]というような書き方のことを何というのでしょうか?
「文字列 番目 抜き出し」と検索するとstring やらchaAtなどばかり出てきます。
0567Name_Not_Found
垢版 |
2020/03/26(木) 00:25:49.21ID:???
翻訳ならDeepLがすごいよ。翻訳精度グーグル越えたよ。
0568Name_Not_Found
垢版 |
2020/03/26(木) 00:26:58.70ID:???
ブランケット記法。避難所でもあたたかくして眠れる。
0569Name_Not_Found
垢版 |
2020/03/26(木) 03:23:48.42ID:???
Lintがすべてを解決してくれるはずだ
0570Name_Not_Found
垢版 |
2020/03/26(木) 06:33:33.76ID:???
配列などの数字インデックスだろ

それが文字列に対しても、出来るのだろ
0571Name_Not_Found
垢版 |
2020/03/26(木) 07:12:19.88ID:???
>>566
プロパティアクセスのブランケット版
0572Name_Not_Found
垢版 |
2020/03/26(木) 09:26:46.83ID:???
>>568はネタで書いてるのがわかる
>>571は中学英語からやり直せ
0573566
垢版 |
2020/03/26(木) 10:40:14.62ID:???
調べてみたらブラケット記法ですね!
ありがとうございました!
勉強します!
0574Name_Not_Found
垢版 |
2020/03/26(木) 12:53:34.09ID:???
>>573
違う。
そもそも仕様ではその記法独自の名前は定められていない。
色んな人が他言語の用語を持ち出したり好き勝手に読んでるだけ。
なんにでも正解があると思うな。
0575Name_Not_Found
垢版 |
2020/03/26(木) 13:31:12.11ID:???
>>573
>>574は通称rubyガイジという糖質キチガイなので相手にしなくてよい。

仕様では、
https://www.ecma-international.org/ecma-262/6.0/#sec-property-accessors
12.3.2 Property Accessors
Properties are accessed by name, using either the dot notation:
MemberExpression . IdentifierName
CallExpression . IdentifierName
or the bracket notation:
MemberExpression [ Expression ]
CallExpression [ Expression ]

bracket notationの訳はブラケット記法。
仕様書じゃないがMDNでも、
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Operators/Property_Accessors
プロパティアクセサーはオブジェクトのプロパティへのアクセスを提供するもので、ドット表記法またはブラケット表記法を使用します。

とある。たとえ仕様書まで調べるのが面倒でも、MDNだけでも十分一般的な用語であることは分かる。
0576566
垢版 |
2020/03/26(木) 14:25:07.18ID:???
>>574
なるほど!
MDNを見てたら詳しく書いてあるページをみつけました。
勉強します!
0577566
垢版 |
2020/03/26(木) 14:26:20.84ID:???
>>575
まさにこのページを見てたところです!
0579Name_Not_Found
垢版 |
2020/03/26(木) 16:06:05.45ID:???
bodyの内容をとりあえずすべて取得したい場合って

var text = document.body;
return text;

だけで可能ですか? 他の書き方になるようでしたら
教えていただけるとありがたいです。
0580Name_Not_Found
垢版 |
2020/03/26(木) 16:37:34.90ID:???
DOM要素ではなくテキストだけ取りたいなら
document.body.textContent
ブラウザの開発ツールのコンソールで試すことを覚えましょう
0582Name_Not_Found
垢版 |
2020/03/26(木) 23:37:37.64ID:???
>>575
仕様なら、Property Accessorsが正しい
というか、なぜ今更、6.0仕様なんだ?
0583Name_Not_Found
垢版 |
2020/03/27(金) 04:41:08.37ID:???
Ruby のNokogiri なら下のように、ページのDOM を取り出して、CSS セレクターで限定する

doc = Nokogiri::HTML( driver.page_source )

element = doc.at_css 'input[name="hoge1"]'
puts element.get_attribute "value" # 属性

同様に普通は、jQuery でDOM操作する。
素のJavaScript では、煩雑だからやらない
0584Name_Not_Found
垢版 |
2020/03/27(金) 05:38:49.47ID:???
お前の人生に比べたらよっぽど簡素だと思うが
0585Name_Not_Found
垢版 |
2020/03/27(金) 09:52:41.59ID:???
普通は(クソ雑魚老害プログラマ業界では)
0586Name_Not_Found
垢版 |
2020/03/27(金) 11:23:09.32ID:???
>>582
Property Accessorsの節でドット記法とブラケット記法の二種類ありますという説明がされてるんだが。
脳みそ大丈夫?
「人間」の節に男と女がいますと書かれていて、「女」は説明に書かれているだけだ!正しくは人間だ!という主張に何の意味がw
0587Name_Not_Found
垢版 |
2020/03/27(金) 12:38:28.08ID:???
>>586
お前が大丈夫か?
国語辞書にもコラムや著者のコメントが載っているが、
そこに書いてある文章の中身まで日本の標準的な価値観や意味合いを反映しているかというとそれは保証されていないだろ

noteっていうのは砕けた解説なんだから、よくESを知らない人向けのコメントでもあるし、
他の言語界で使われている俗語をもって親切に解説してあるんだろ

それがプログラミングとしてよく使われている言い方だと言って、JS界の仕様として正式なものかというとそうはならないだろ
0588Name_Not_Found
垢版 |
2020/03/27(金) 14:23:18.31ID:???
質問 人間のマンコ付いてるほうは何と言うのですか?
答1 女。
答2 女は間違い!正しくは人間!
0589Name_Not_Found
垢版 |
2020/03/27(金) 19:23:54.36ID:???
>>586
その表現を使うなら、「Property Accessorsのbracket notation」を使え
bracket notationにProperty Accessorsを内包する意味はない

で、古い6.0を持ち出すのはなぜだ?
0590Name_Not_Found
垢版 |
2020/03/27(金) 22:27:52.24ID:???
俺が6.0が好きだからだが?
俺が俺の頭と手を俺の解説を書くのにお前に横槍を入れられないといけない理由はなんだ?
0592Name_Not_Found
垢版 |
2020/03/27(金) 22:44:23.95ID:???
ゴミカス糖質>>589の回答(笑)は>>574
当然質問者は満足せず、賢く受け流してMDNに行ったと言うのにお前らときたらまだ相手してるのか…
0593Name_Not_Found
垢版 |
2020/03/27(金) 22:46:59.41ID:???
よく知らないからケチだけつけてレスバで遊んでるだけ
0597Name_Not_Found
垢版 |
2020/03/28(土) 20:23:56.36ID:???
自分で作ったライブラリのドキュメントを作りたいのですが
なんかいいテンプレートないですかね
jsなのでその場で例を実行できる項目付きの
0598Name_Not_Found
垢版 |
2020/03/29(日) 11:07:59.52ID:???
yomanでライブラリのジェネレーターがあるからそれを参考にするといい
0599Name_Not_Found
垢版 |
2020/03/29(日) 11:11:46.82ID:???
jsならgenerator-nmとかかな
サンプルはcodesandboxがあると親切
0600Name_Not_Found
垢版 |
2020/03/29(日) 11:25:41.52ID:???
>>596
図星過ぎてもはや笑うことしかできないよな
0601Name_Not_Found
垢版 |
2020/03/29(日) 11:47:03.86ID:???
ここはCoqスレじゃないぞ
0602Name_Not_Found
垢版 |
2020/03/29(日) 11:53:45.19ID:???
Coqスレよりよっぽど質が悪いでしょ
プログラマなんてのは陰湿で粘着質な奴が多いのだから
0603Name_Not_Found
垢版 |
2020/03/29(日) 11:57:57.17ID:???
yomanで生成されたドキュメントなんて

(省略されました)
0604Name_Not_Found
垢版 |
2020/03/29(日) 16:56:40.32ID:???
そもそもドキュメントが必要なライブラリは出来が悪い証拠
使うのはプログラマなんだから、よっぽど変な書き方して無ければソースコードを読めば分かる
0605Name_Not_Found
垢版 |
2020/03/29(日) 17:41:38.74ID:???
じゃあお前の作った糞ライブラリ見せてみろよw
バカにしてやるからww
0606Name_Not_Found
垢版 |
2020/03/29(日) 20:40:11.25ID:???
JSのバックエンドのフレームワークで一番シェアあるのってなんですか?
0608Name_Not_Found
垢版 |
2020/03/29(日) 20:46:32.54ID:???
>>607
あーレガシーなのじゃなくてこれからの鉄板のやつあります?
0609Name_Not_Found
垢版 |
2020/03/29(日) 21:18:35.93ID:???
>>608
あるけどシェア割れてるからどれも鉄板とは言えないなぁ…
express後継風味ならkoajsやhapijs
他言語でよくあるMVC風味ならnestjs
bff用途で必要な機能さえありゃいいならnextjs
とか調べてみたら?
0610Name_Not_Found
垢版 |
2020/03/29(日) 21:22:12.67ID:???
>>605
バカにしたのではなくて
ドキュメントよりも中身に拘れば良いという
励ましのアドバイスのつもりだったんだが

そうカッカするなよ
0611Name_Not_Found
垢版 |
2020/03/29(日) 21:22:23.46ID:Ynm6Bb3M
やっぱ割合はまだ多いんだなexpress
0614Name_Not_Found
垢版 |
2020/03/30(月) 00:53:35.18ID:???
バレたのそんなにビックリしたのかな?ww
常人から見たらバレバレなのに糖質だと「完璧に隠しているのにバレるはずがない!当てずっぽうだ!」となって攻撃に転じるわけね…はは、おもしろいね。
0615Name_Not_Found
垢版 |
2020/03/30(月) 05:55:55.47ID:???
WEB AUDIO APIのcreateScriptProcessorでバッファサイズだけじゃなくてバッファ数を設定する方法ってありますか?
標準のバッファ数が恐らく2?でレスポンスを早めようとサイズ小さくするとバッファ切れが酷いので
0616Name_Not_Found
垢版 |
2020/03/30(月) 06:30:46.89ID:???
>>614
バレるも何も大間違いだから
自分の妄想を思い込むのは勝手にどうぞだが
嘘を撒き散らすのは控えたほうが良いよ
0618Name_Not_Found
垢版 |
2020/03/30(月) 09:59:43.70ID:???
>>592は逃げただけ
否定箇所を作り出す事でしかレス出来ない人なんでしょ
0619Name_Not_Found
垢版 |
2020/03/30(月) 10:04:44.40ID:???
よっぽど痛いところ突かれたんだろなw
糖質にしても執着はんぱないw
0620Name_Not_Found
垢版 |
2020/03/30(月) 10:51:31.62ID:???
いい加減見るに耐えないんだが
0621Name_Not_Found
垢版 |
2020/03/30(月) 12:41:25.28ID:???
本人が本当に違うって言ってんのに
頑なに信じないんだから救いようが無いわな
0622Name_Not_Found
垢版 |
2020/03/30(月) 14:19:31.34ID:???
私は嘘つきですとは言わんわな
0623Name_Not_Found
垢版 |
2020/03/31(火) 02:03:00.51ID:???
要素を生成するときはcreateElementとcreateTextNodeを使うとXSS対策になると見ました。

現在掲示板を作成しており、ajaxでPOSTした投稿にレスアンカーやリンクを組み込もうとしています。
この場合、pをcreateElementで生成してTextNodeでレスを流し込み、正規表現とreplaceで
一致する箇所をアンカーに置換してしまってもセキュリティ的に問題ないのでしょうか?

もしくはレスをsplitで分割、searchでインデックスを取得してa要素をcreateElementで生成し…
といった感じで地道に書いていくべきなのでしょうか?
0624Name_Not_Found
垢版 |
2020/03/31(火) 06:38:26.62ID:???
>>622
相手の言うことを一言も信じないのなら
何のつもりでここで会話しに来てるんだ?
0626Name_Not_Found
垢版 |
2020/03/31(火) 09:59:27.51ID:???
XSS対策はユーザからもらった文字列をエスケープしなきゃ
createElementにその機能があるとは思えないけど
0627Name_Not_Found
垢版 |
2020/03/31(火) 10:23:40.85ID:???
>>623
バックエンドでXSS対策(主にエスケープ)した後
その文字列をフロントでツールチップ的に処理してしまえばいいのでは
0628Name_Not_Found
垢版 |
2020/03/31(火) 11:48:35.70ID:???
>>623
おまえはまず、自分でXSS攻撃をしてみろ
どうやればXSS攻撃を成功させられるか考え抜くんだ
0629Name_Not_Found
垢版 |
2020/03/31(火) 12:45:16.17ID:???
投稿はテキストとして保存
リアルタイムでリンク化する
そうすればバグがあっても対処しやすい
0630Name_Not_Found
垢版 |
2020/03/31(火) 12:54:06.15ID:???
>>626
説明不足ですみません。
投稿はphpでエスケープした後、json_encodeを使いつつecohしています。
その戻り値からレスアンカーやリンク形式に一致するものに処理をしたいといった感じです。

>>627
ツールチップ的とはどういうことでしょうか?
少しググりましたが、ヒント表示みたいな内容でした・・・

>>628
まだうっすらとしか理解できておらず、理解する前にお作法的に対象するすべを学びたいです。
0631Name_Not_Found
垢版 |
2020/03/31(火) 13:02:27.31ID:???
他のコミュニティでは質問者に対して徹底されてるけど
CodeSandboxなりで最小限のサンプルコード用意しないと
いつまでも回答者との理解の差がある気がする
0632Name_Not_Found
垢版 |
2020/03/31(火) 13:30:39.67ID:???
>>630
> 理解する前にお作法的に対象するすべを学びたいです。
プログラミングの世界に「お作法」なんてものはありません。
そういうのは「バッドノウハウ」というんですよ
0635Name_Not_Found
垢版 |
2020/03/31(火) 18:50:57.81ID:???
>>630
例えば5chは5ch側のサーバーでXSS対策したりエスケープしたり安価リンク処理してるけど
質問の場合は不確定要素が多いので、その上で簡易かつ強固にXSS対策するとなると
エスケープ処理の部分だけをバックエンドでやって
あとは全部クライアント側でやっちゃうってこと
phpならXSS攻撃耐性の高いエスケープ処理もあったはず
0636Name_Not_Found
垢版 |
2020/03/31(火) 19:57:44.85ID:???
>投稿はphpでエスケープした後、
てかもともとクライアント(JS)でphp側のエスケープ以外は処理しようとしてたのね
だったらほぼ心配する部分はないのでは
>createElementとcreateTextNodeを使うとXSS対策
はよくわからない
0637Name_Not_Found
垢版 |
2020/03/31(火) 22:02:35.99ID:???
そもそもXSSなんてこれっぽっちも気にする必要がない
掲示板なんて荒らされるときは如何様にも荒らされるのだから
その掲示板とやらに金銭や大きな価値が絡んでいないのなら
気にする方が人生の時間の無駄使いという奴
しなくても良いことはできるだけしないで楽して生きなきゃ

一方もし価値のある掲示板だというのなら
そりゃバックエンドから丸ごと著名なサービスを利用するか
せめてフレームワークを活用するべきであって
プログラマ1人が責任を負うようなことではない

XSSを気にしていいのは、そういうことが好きで興味があるやつだけ
もし興味関心があるならもっと自分で考えて調べろ
0638Name_Not_Found
垢版 |
2020/04/01(水) 03:45:14.33ID:???
フロント側なんてユーザーが書き換え可能なんだからクラック対策するだけ無駄
0639Name_Not_Found
垢版 |
2020/04/01(水) 05:38:34.13ID:???
Ruby on Rails では、ERB テンプレート内の、<%= Rubyの式 %> が、

デフォルトで、HTML エスケープされて、HTMLへ変換されるから、何も考えなくてよい
0640Name_Not_Found
垢版 |
2020/04/01(水) 09:50:22.57ID:???
>>639はデマ
だから「お作法」=何も考えたくないバカでーす。唯一の正解だけを使いたいんでーす。
ってなるやろって言ってる
0641Name_Not_Found
垢版 |
2020/04/01(水) 09:56:23.48ID:???
プログラマの三大美徳もいいけどHRTも大切にしような…
0643Name_Not_Found
垢版 |
2020/04/01(水) 14:19:17.56ID:???
バイナリデータの読み方が判りません

目的のデータの位置が決まっているならArrayBufferからsliceで決め打ちで読めばいいのですが
32bit整数があって次のデータのバイト数が提示されてから可変長の値が交互に来る感じのデータになると
現在どこを見ているかのポインタのようなものが欲しくなり、それ用の変数を作りpointer += 4などして動かしているのですがもっといい方法はないのでしょうか?

それと、連続した配列のマッチングというのは可能でしょうか?
たとえば[0,1,2,3,4,5,6,7,]なら[4,5,6]にマッチした位置を返してほしい場合
今はループでif(element === 4 && array[i+1] === 5 && array[i+2] === 6)などと書いてるのですがもっといい方法はないでしょうか

よろしくお願いします
0644Name_Not_Found
垢版 |
2020/04/01(水) 15:09:44.34ID:dlPBsrMJ
配列のマッチングについて書き方が改善されるだけですが
array.findIndex と every を使う方法はあります
https://repl.it/@vip0/arrayfind
0645Name_Not_Found
垢版 |
2020/04/01(水) 18:05:00.98ID:???
>>643
直前2つを記憶する方が効率的じゃない?
0646Name_Not_Found
垢版 |
2020/04/01(水) 18:10:54.41ID:???
>>643
結局この書き方がほぼベストに速いんだよな
ほかはこれに毛が生えた程度の違いしかない

わずかな速度の違いが肝になるならともかく
可読性を考えたら変なロジックはやめとこうぜ
0647Name_Not_Found
垢版 |
2020/04/01(水) 18:56:44.83ID:???
可変に対応してるから
>>644
この書き方でよくね
0648Name_Not_Found
垢版 |
2020/04/01(水) 19:19:12.89ID:???
>>643
ポインタを用意するのはデコーダやエンコーダの基本
嫌なら簡単な関数でポインタ操作を隠蔽すればいい
例えばread(4)を呼べば4byte分進めてくれるなど
0649Name_Not_Found
垢版 |
2020/04/02(木) 01:56:55.78ID:???
JSONに関しての質問なんですが

"Afghanistan": [
{
"date": "2020-1-22",
"population": 2000000
},
"America": {
"date": "2020-1-22",
"population": 2000000
},
...........

みたいな国情報がずらっと並んだJSONデータがあったとして、
この国名のキーを文字列で取り出すにはどうコーディングしたらいいんでしょうか?
fetchで取り出して

.then(data => {
data[なんか].forEach(({なんか}) =>
console.log(`${なんか}`)
);
});

みたいな感じでコーディングして全部の国名をずらっと取り出せたらなと思ってるんですが…
0650Name_Not_Found
垢版 |
2020/04/02(木) 02:02:34.07ID:???
あ、JSONのデータがちょっとおかしい
正しくは下記みたいなデータです
国がわかりにくいのでそこだけ質問用にコメントつけてます

"Afghanistan": [//■国名です
{
"date": "2020-1-22",
"population": 2000000
},
{
"date": "2020-1-23",
"population": 2000000
}
],
"America": [//■国名です
{
"date": "2020-1-22",
"population": 2000000
},
{
"date": "2020-1-23",
"population": 2000000
}
],
...........
0651Name_Not_Found
垢版 |
2020/04/02(木) 02:15:22.16ID:???
const data = {
"Afghanistan": [
{
"date": "2020-1-22",
"population": 2000000
},
{
"date": "2020-1-23",
"population": 2000000
}
],
"America": [
{
"date": "2020-1-22",
"population": 2000000
},
{
"date": "2020-1-23",
"population": 2000000
}
],
};
console.log(Object.keys(data));
//=> ["Afghanistan", "America"]
0652Name_Not_Found
垢版 |
2020/04/02(木) 02:17:26.53ID:???
.then(response => response.json())
.then(data => Object.keys(data).forEach(key => console.log(key));
0653Name_Not_Found
垢版 |
2020/04/02(木) 02:38:32.41ID:???
>>651
>>652
できました!ありがとうございます!

ついでに聞きたいのですが、例えばAmericaというキーの値に二つの子が並んでますが、
この最後の子だけ取り出す関数ってあったりしますか?
最後の子の中に二つの値が入ってるのでそれを取り出したくて

"2020-1-23"
2000000

確かPHPかなんかだとlastChildとかfirstChildみたいな書き方で末尾とか先頭を取り出せたので
同じことが出来るかなと
0654Name_Not_Found
垢版 |
2020/04/02(木) 02:52:38.84ID:1SguImRe
Object.entries(data).forEach(([key, value]) => {
const {date, population} = value[value.length - 1];
console.log(key, date, population);
});
//=> Afghanistan 2020-1-23 2000000
//=> America 2020-1-23 2000000
0655Name_Not_Found
垢版 |
2020/04/02(木) 13:53:16.06ID:???
>>654
ああなるほど、lengthで数にアクセスできて番号指定も使えるんですね
基本的な文法が勉強不足でした、ありがとうございます
0656Name_Not_Found
垢版 |
2020/04/02(木) 20:19:42.91ID:???
>>644
アロー関数は互換性の問題がありそうで使っていなかったのですが今は割と使えるんですね

>>645
確かにそうかもしれません
バイナリというか連続したデータを取り出して扱うのは初めてだったので

>>646,648
もっと便利な方法が用意されているのではないかと思ったのですが、だいたいこんな感じなんですね


参考になりました ありがとうございます
0657Name_Not_Found
垢版 |
2020/04/02(木) 21:53:12.39ID:???
>>631
失礼しました。
ググってみたところ、少し調べないと扱えなさそうなので合間をみて勉強してみます!

>>635-636
エスケープはhtmlspecialcharsしか使ってませんでした。
強力なエスケープもあるのですね。ググってみます。

バックエンド側でエスケープをかますしておけば、ajaxで渡した返り値は
安全と考えてよいということでしょうか?
であれば、クライアント側でreplaceと正規表現で対応できそうです!

>createElementとcreateTextNodeを使うとXSS対策
ソースのURL見失ってしまいました…
PHPでaタグを設置してcreateTextNodeを利用すると、タグが文字列になっていましたので
エスケープされているっぽいです。なのでXSS対策になるってことなのかと理解していました。
0658Name_Not_Found
垢版 |
2020/04/03(金) 08:18:33.05ID:???
>>656
善し悪しにも判断要素が複数ある
例えば、パフォーマンス視点なら、「同じプロパティを複数回参照するのは無駄」なので、「要素値を変数にキャッシュ」が原則
自分が期待する動作と優先順位を考えて、質問で触れるべきだ
0659Name_Not_Found
垢版 |
2020/04/03(金) 10:45:07.38ID:???
> 例えば、パフォーマンス視点なら、「同じプロパティを複数回参照するのは無駄」なので、「要素値を変数にキャッシュ」が原則

パフォーマンスに問題が起きてないなら、絶対にやるな。
0660Name_Not_Found
垢版 |
2020/04/03(金) 12:21:52.76ID:???
ワードプレス使用者です。質問させていただきます。

プラグインで『Rich Table of Contents』と言う目次作成ソフトをインストールしましたが、目次をタップすると、ページ上部のタイトルにスクロールされてしまいます。
HTMLを確認したところ、すべてのhタグにid=〇〇が入っており、id=〇〇を消すことで、目次が正常に動作します。

手動で全部消すのはめんどくさいのですが、一括で消す方法、またはCSSなどでうまく手間かけずに直すことは出来るでしょうか?
0661Name_Not_Found
垢版 |
2020/04/03(金) 12:49:03.73ID:???
>>657
分かってないな
危険にしているのは文字列ではなく、それを扱う側だ
だからいくらHTML的やらなんやらエスケープしようと扱う側がどう扱うかによっていくらでも危険になりうる。
例え自分の扱うコード内で安全に完結していても、ライブラリやフレームワークが後からその値を参照して扱う事だってある。
そのときにそのライブラリやフレームワークの脆弱性を付かれるかもしれない。

だから切りがないのでどうしても心配なら簡単にできる緩和策を勝手にやってくれる物に頼っとけ。
0662Name_Not_Found
垢版 |
2020/04/03(金) 14:43:52.68ID:???
>>660
jQuery なら、これで全てのid が消える

$( "h1, h2, h3, h4, h5, h6" ).each( function( ) {
$( this ).removeAttr( 'id' )
} );
0663Name_Not_Found
垢版 |
2020/04/03(金) 14:59:01.06ID:???
別のTOCと競合してるのでは?
目次リンクにしたいならidがないと動かないと思うけど
0664Name_Not_Found
垢版 |
2020/04/03(金) 16:18:35.60ID:???
>>662>>663ありがとうございます。
競合の、可能性もあるんですね。もう何から調べてみたら分からなくなってますw

プラグイン「Table of Contents Plus」だと問題なく動作するんですが、「RTOC -Rich Table of Contents-」だとid=〇〇が入ってるhタグだけ上にスクロールされちゃうんですよね‥。
0666Name_Not_Found
垢版 |
2020/04/04(土) 09:15:07.58ID:???
一言命令は絶対信用しないから安心していい
0669Name_Not_Found
垢版 |
2020/04/04(土) 13:12:20.86ID:???
一言命令は>>659のことだろ
命令形というのがあってだな...
0670Name_Not_Found
垢版 |
2020/04/04(土) 20:13:51.58ID:???
値の個数が同じ複数の配列をまとめた二次元配列があり、それぞれの配列の1つ目の値を比較し昇順に並び替えたいのですが、それって可能ですか?
0671Name_Not_Found
垢版 |
2020/04/04(土) 20:37:22.31ID:???
ここは宿題代行所でもなければ、アルゴリズム研究会でもありません
例え答えがこっそり欲しくとも、可能かどうか?とか馬鹿な聞き方はやめなさい

配列の1つ目の値を比較し昇順に並び替えたいのなら、
配列の1つ目の値を比較し昇順に並び替えればいいではないですか
分かっているとは思いますが、不可能なことはありません
少なくともあなたができることは機械でもできると考えなさい

具体的にどうするかは自ら学びなさい
ここは漠然とした質問をするところではありません。
最低限自ら学べる人、つまり具体的に問題を解決していける人が
どうしても具体的に困ったときに質問する場所です。
0672Name_Not_Found
垢版 |
2020/04/04(土) 20:41:50.44ID:???
>>671
ありがとうございます! sortでできました。
0673Name_Not_Found
垢版 |
2020/04/04(土) 20:48:07.81ID:???
なんで誰もサンプルコードはらねえんだよ
問題を絞り込めて整理できるのに
0674Name_Not_Found
垢版 |
2020/04/05(日) 08:50:59.72ID:???
質問者がコード貼ってないのに回答者が想像で貼っても仕方ないでしょ
俺たちは質問者のママ・パパではないのだから
質問者が抱える問題を絞り込むのは当然質問者の責任であって
こういう答えが欲しいから、その答えが帰ってくるであろう
しっかりした具体的な質問をするまでが質問者の責任であって
回答者が悩む状況は本来おかしいからな

勿論本当のやる気のある右も左も分からない初心者だと感じれば
導いてあげることも吝かではないが、
1行の質問かどうかも分からないような投げかけレスに
そこまで親切にしてあげようという気持ちは沸かないだろう

良い回答をしてほしいなら、良い回答が付くような良い質問をしなければならない
0675Name_Not_Found
垢版 |
2020/04/05(日) 10:07:35.59ID:???
ごめん>>673は質問者がコード貼らないことに対する意見
0676Name_Not_Found
垢版 |
2020/04/05(日) 11:26:15.17ID:???
Ruby なら、

ary = [ [ 51, 52 ], [ -11, -12 ], [ 31, 32 ] ]

p first_ary = ary.map { |inner_ary| inner_ary[ 0 ] } #=> [51, -11, 31]

first_ary.sort!
p first_ary #=> [-11, 31, 51]
0677Name_Not_Found
垢版 |
2020/04/05(日) 12:49:54.86ID:???
rubyすげえ
俺もスマブラスレでモンハンの素晴らしさ語ってくるわ
0678Name_Not_Found
垢版 |
2020/04/05(日) 13:02:06.70ID:???
rubyの何がイヤって、厨二病ぽい名前がイヤ
pythonもだが
0679Name_Not_Found
垢版 |
2020/04/05(日) 13:31:14.20ID:???
[ [ 51, 52 ], [ -11, -12 ], [ 31, 32 ] ]
なら
[ [ -11, -12 ], [ 31, 32 ], [ 51, 52 ] ]
にソートしたいってことじゃないの
0681Name_Not_Found
垢版 |
2020/04/05(日) 14:10:02.27ID:???
普通に考えて1つ目の要素の比較でほぼほぼ順序が決まるのに
特にサーバサイド言語で常に全比較するコードを書いちゃう人はセンスが無い
0682Name_Not_Found
垢版 |
2020/04/05(日) 14:14:01.91ID:srYKtxU/
const arr = [ [ 51, 52 ], [ -11, -12 ], [ 31, 32 ], [ 0, 100 ] ]
const res = arr.sort((a, b) => a[0] - b[0])
console.log(res)

// [ [ -11, -12 ], [ 0, 100 ], [ 31, 32 ], [ 51, 52 ] ]

https://repl.it/@vip0/custom-sort

あとテストケースにムラがあったので追加した
0683Name_Not_Found
垢版 |
2020/04/07(火) 11:02:10.65ID:???
えっ、丸パクリじゃん。
せめてどこから取ってきたかぐらい
もっと書くべき。
2ちゃんだからって、何でも許されるわけとちゃうやろ・・・
JSやってる奴って基本こういうイメージ、怖い・・・
0684Name_Not_Found
垢版 |
2020/04/07(火) 11:11:22.08ID:???
それ好き
例のなんか嫌儲感あるよな
0685Name_Not_Found
垢版 |
2020/04/07(火) 19:20:40.45ID:???
>>683
JS質問者にそういうイメージある
そのコードをお前自身で説明してみろ、といいたくなる場面が多い
0686Name_Not_Found
垢版 |
2020/04/07(火) 19:56:24.61ID:???
分かってないやつが質問しに来てるからな
普通の質問所ならそれでいいんだろうが
ここわ泣く子も黙る2chだからな
0687Name_Not_Found
垢版 |
2020/04/07(火) 20:31:48.59ID:???
質問です。
一度処理したものは以降処理せずに、
複数のファイルで使いまわすにはどうすればいいでしょうか?
だいぶ端折ってますが、イメージはこんな感じです
(一度だけ処理したい理由はその処理が重いからです)

aaa.js
console.log(reuse.jsを呼ぶ)
// 「いいい」を出力
bbb.js
console.log(reuse.jsを呼ぶ)
// 「いいい」を出力

reuse.js
let a = "あああ"
a = "いいい" ←この処理は一度だけ
return a
0688Name_Not_Found
垢版 |
2020/04/07(火) 21:58:51.98ID:gBTypXbc
>>687
メモ化を使います
https://repl.it/@vip0/memo-file

またはシングルトンパターンという設計を使う方法があります
0689Name_Not_Found
垢版 |
2020/04/08(水) 00:40:56.55ID:???
let memo = arguments.callee.memo = arguments.callee.memo || new Map
let a = memo.get('a')
if (!a) {
a = 'いいい'
memo.set('a',a)
}
0690687
垢版 |
2020/04/08(水) 02:10:50.08ID:???
>>688-689
こんなやり方があるんですね。ありがとうございます!
0691Name_Not_Found
垢版 |
2020/04/08(水) 07:54:51.70ID:???
>>687みたいなのが>>685-686のイメージ
普通に頭を働かせれば、

「変数に出力値をキャッシュする」
「一度だけconsole.logを実行するコードに調整する」

とか、考えつくはずなのに、何も考えずに丸投げ

「考えても思いつきませんでした」
「そこまでは分かったのですが、コードにする方法が分かりませんでした」

大抵、こんな言い訳をする
0692Name_Not_Found
垢版 |
2020/04/08(水) 11:23:24.12ID:ws2DhC6B
>>683
えっ、丸パクリじゃん構文の丸パクリじゃん。
せめてどこから取ってきたかぐらい
もっと書くべき。
糞スレだからって、何でも許されるわけとちゃうやろ・・・
質問スレ住人って基本こういうイメージ、怖い・・・

【え?】ITエンジニア「えっこのサイト丸パクリじゃん…学生だからって許されるわけちゃうぞ」→オープンソースから作成したサイトでした
https://togetter.com/li/1490138
0693Name_Not_Found
垢版 |
2020/04/08(水) 13:21:33.99ID:???
Ruby でよく使う遅延初期化だろ

obj ||= 1 つまり、obj = obj || 1
obj が偽なら、1が設定されるが、真なら処理なし

obj = nil
p obj ||= 1 #=> 1

obj = 2
p obj ||= 1 #=> 2 のまま

def f( obj )
if obj == nil # 存在しない時だけ、設定する
obj = 1
else # 存在すれば処理なし
end
obj
end

obj = nil
p f( obj ) #=> 1

obj_2 = 2
p f( obj_2 ) #=> 2 のまま
0694Name_Not_Found
垢版 |
2020/04/08(水) 13:37:31.29ID:???
何て言語か知らないけどとんでもなく小汚ないね。
0696なんで
垢版 |
2020/04/08(水) 14:06:40.50ID:???
>>694
汚物を見ると目が潰れるからこのスレに来ちゃいけません!
0697Name_Not_Found
垢版 |
2020/04/08(水) 14:43:34.17ID:VJ27LW+4
学術の巨大掲示板群 - アルファ・ラボ
ttp://x0000.net

数学 物理学 化学 生物学 天文学 地理地学
IT 電子 工学 言語学 国語 方言 など

PS スカイプ友達の掲示板 ttp://skype.x0000.net
0699Name_Not_Found
垢版 |
2020/04/08(水) 21:54:12.10ID:???
コピペ+空行が引用だと思ってる輩が一定数いるようである
実に読みづらい
0700Name_Not_Found
垢版 |
2020/04/09(木) 12:19:58.83ID:???
nullをpostするとPHP側で空文字("")になってしまうのですが、nullのまま送信する方法はありますか?
一応nullでなければいけない理由はありませんので、難しいようであれば空文字をpostします。
0701Name_Not_Found
垢版 |
2020/04/09(木) 12:32:54.25ID:???
httpはテキストなのでnullはない
0702Name_Not_Found
垢版 |
2020/04/09(木) 12:33:51.59ID:???
content type がJSONならnull扱えるけど
formデータか何か?
0703Name_Not_Found
垢版 |
2020/04/09(木) 12:38:39.75ID:???
FormDataに突っ込むにしてもJSONにしてphpでデコードすればいいし
0704Name_Not_Found
垢版 |
2020/04/09(木) 13:16:22.16ID:???
>>701-703
content typeを指定しないとnullを扱えないんですね。
AJAXの練習でformのデータと合わせて必要な配列を送信している感じです。

content typeについて、考えてもいなかったので少し調べてみます。

ありがとうございました。
0705Name_Not_Found
垢版 |
2020/04/09(木) 14:20:36.80ID:???
VSCode の拡張機能・REST Client で、
Ruby のwebrick サーバーへ、JSON でnull をPOST して、
サーバーで、JSON.parse( req.body )すると、正常に、nil と解釈された!

POST http://localhost:8888/ HTTP/1.1
content-type: application/json

{
"name": null,
"time": "Wed, 21 Oct 2015 18:27:50 GMT"
}

JSON.parse すると、
{"name"=>nil, "time"=>"Wed, 21 Oct 2015 18:27:50 GMT"}
0706Name_Not_Found
垢版 |
2020/04/09(木) 14:27:41.40ID:???
スレチだったら悪いがREST clientみんな何使ってるの
insomunia使ってるけどwsも使えるpostwoman気になり始めてる
0707Name_Not_Found
垢版 |
2020/04/09(木) 19:51:12.62ID:???
>>704
自己レスです。
色々調べましたところ、json形式で渡す方がxss対策になるだとか書いてあり、
会社でも見たことある記述がありましたので、jsonでPOSTする方向で進めてみます。
あざっした。
0709Name_Not_Found
垢版 |
2020/04/10(金) 12:53:32.40ID:???
XSSの原理を理解してないから、浅慮になるんだろ
0710Name_Not_Found
垢版 |
2020/04/11(土) 07:22:00.00ID:???
XSSを見えない悪霊かのように思っているんだろう
実際は幽霊に見せかけたイタズラに引っかかるほう側の問題ということが分かっていない
いくら人一人の常識の範囲でフィルターをかけようが
受け取り手である様々なコンポーネントがどんなトラウマや精神疾患を抱えているかは本人でさえ分かっていないことなのだから
自分ひとりの努力でXSSを防ごうとするのは無駄なこと

簡単に追加で他に影響が殆ど無くできる緩和策をかけておくというのは悪いことではないと思うが
構造を変えたり地道な作業をしてまで対応するようなものではない
どうしても対処したいとしても、対処するならゴールで待ち構えておかないと
途中の無数にあるルートを塞いだり変えたりしても労力に対する効果は極めて低いということが分からないのか?
0711Name_Not_Found
垢版 |
2020/04/11(土) 07:58:24.16ID:???
>>706
client要るようなことある?
どうせテスト書くんだから
全部テストでやれば良いんじゃないの?
0712Name_Not_Found
垢版 |
2020/04/11(土) 12:36:36.18ID:???
>>711
テスト書いてるバッグエンドアプリは要らないけど
単純にたまに使うツールとして
0713Name_Not_Found
垢版 |
2020/04/11(土) 16:31:50.69ID:???
たまに使うくらいならNodeとかPythonとか好きなサーバサイド言語使うな
0714Name_Not_Found
垢版 |
2020/04/13(月) 10:33:53.71ID:???
>>706
ふつうにpostman使ってたけど
postwomanなんてあったんだなw
0715Name_Not_Found
垢版 |
2020/04/13(月) 17:33:36.16ID:???
どうせAI が全部コーディングするんでしょ
0716Name_Not_Found
垢版 |
2020/04/13(月) 19:59:37.22ID:???
コードは人間が書くためのものでしょうよ
0717Name_Not_Found
垢版 |
2020/04/14(火) 01:20:42.78ID:???
人間とAIは区別できるの?
0719Name_Not_Found
垢版 |
2020/04/14(火) 08:59:37.74ID:???
意識が不連続であるが故に、人間の意識がどこに存在しようとも関係ない
0720Name_Not_Found
垢版 |
2020/04/14(火) 09:53:13.57ID:???
>>717
できるよ。情報を遮断した状態での行動を見ればいい
0721Name_Not_Found
垢版 |
2020/04/14(火) 15:52:36.23ID:???
結局、好き嫌い。
大脳辺縁系。
0722Name_Not_Found
垢版 |
2020/04/14(火) 20:09:14.20ID:???
>>717
できない
だって「人工知能」という名前の時点で人間と強く結びついているから
自我が目覚めて自分達の種族名をつけるまでは人間の模倣のただの道具
0723Name_Not_Found
垢版 |
2020/04/15(水) 05:47:37.06ID:???
「情報」、「通信」、「制御」が確立しているならいわゆる「世界」は自律する。
0724Name_Not_Found
垢版 |
2020/04/15(水) 06:25:42.53ID:???
世界は最初から自律してる
自律している世界の一部なのか全部なのかの違いでしかない
0725Name_Not_Found
垢版 |
2020/04/15(水) 07:41:02.43ID:???
「そうであること」「そうでないこと」の集合
0726Name_Not_Found
垢版 |
2020/04/15(水) 12:35:25.25ID:???
全て「そうであること」の集合
「そうでない」と言うのは人間が都合上生み出した便利な概念であって宇宙の本質ではない
ないと言うのは二重否定であるになるから宇宙は産まれた
0728Name_Not_Found
垢版 |
2020/04/15(水) 16:53:57.16ID:???
そもそも、「!人間 === AI」なわけで「〜ではない」の論議は無意味
0731Name_Not_Found
垢版 |
2020/04/16(木) 00:47:44.00ID:???
却下しなかった意見の正当性を証明せよ
0732Name_Not_Found
垢版 |
2020/04/16(木) 00:54:36.03ID:???
ゲーデルの不完全性定理
0733Name_Not_Found
垢版 |
2020/04/16(木) 11:35:12.78ID:w6a82deZ
プログラミンはぼんやり理解してればいいの?
大体でいいの?
0735Name_Not_Found
垢版 |
2020/04/16(木) 12:38:29.72ID:???
>>733
ぼんやり理解してればいい部分もあるし、
大体でいい部分もある

ただ、こういうAPIがあるはずだ、こういうライブラリがあるはずだ、こういうツールがあるはずだ、
これは現実的にできる、できない、と言ったことを判断できる感覚は大事

それを身につけるためには一通りの事に触れておかないといけない
だから俺はいつも初心者に必ずMDNの隅々まで一通り目を通せとアドバイスしてる
0736Name_Not_Found
垢版 |
2020/04/16(木) 14:44:44.58ID:???
location.reloadで更新後のページに文字列渡す方法ってありませんか?
0737Name_Not_Found
垢版 |
2020/04/16(木) 14:52:35.81ID:???
location.href(だったか曖昧)で移動してqueryパラメータで渡す

cookieやローカルストレージを使う
0738Name_Not_Found
垢版 |
2020/04/16(木) 15:21:04.60ID:???
>>737
やっぱりパラメーターに突っ込むのがいいんですね
ちょっと試してみます
0739Name_Not_Found
垢版 |
2020/04/16(木) 22:45:57.16ID:???
●質問
後からJavascript側で追加したHTMLを動かしたいのですが
Vueは最初からHTMLで書かれた内容にしか使えませんか?
よろしくお願いしますm(_ _)m

●HTML
<div id=“taro”>{{name01}}</div>

●Javascript
new Vue{(
el:”#taro”,
data:{name01:’太郎’}
})

$('#taro').after('<div id=“jiro”>{{name02}}</div>');

new Vue{(
el:”#jiro”,
data:{name02:’二郎’}
})

●理想の結果
太郎二郎

●実際の結果
太郎{{name02}}
0740Name_Not_Found
垢版 |
2020/04/16(木) 22:50:25.38ID:???
なんでそんなことするの…
0741Name_Not_Found
垢版 |
2020/04/16(木) 23:04:10.26ID:???
>>740
右も左も分からないど素人ですみませんorz
JavaScript側でポンポンDOM要素?を追加して
それをどんどん変更・更新みたいなのがしたいです…
0742Name_Not_Found
垢版 |
2020/04/16(木) 23:46:46.00ID:???
最初にstateを考えないと
jQuery併用はそもそも変だよ

template(view)
→listをループで表示する
action
→stateのlistにitemを追加する

Reactしか使ってないのでVueのサンプルコードかけないけど
0743Name_Not_Found
垢版 |
2020/04/16(木) 23:49:39.96ID:???
Vueを組み合わせたことによって無駄に難しいことをやろうとしてしまってるから、ど素人ならとりあえずjQueryだけでやってみたた
0744Name_Not_Found
垢版 |
2020/04/16(木) 23:59:59.25ID:???
基本的に、Vue.js・jQuery は共存できないだろ

Vue.jsは仮想DOM で、jQueryは実DOMを変更するから、
DOMの更新のタイミングが合わない

Vuex では、更新のタイミングが決まっているから、
外部から更新できない

Action → Mutation → State
この順番を守った上で、各タイミングのフックを使う
0745Name_Not_Found
垢版 |
2020/04/17(金) 00:02:24.06ID:???
TODOリストのサンプル見たら一瞬でお作法わかると思うけど
0746Name_Not_Found
垢版 |
2020/04/17(金) 00:12:06.20ID:???
ありがとうございますm(_ _)m
皆さんのアドバイスを少し時間をかけて噛み砕いてみます
0747Name_Not_Found
垢版 |
2020/04/17(金) 00:28:26.69ID:???
生DOM触るかvueに任せるかどっちかに絞れ
完全に混ぜるな危険状態
0748Name_Not_Found
垢版 |
2020/04/17(金) 00:50:34.70ID:???
>>744
> 基本的に、Vue.js・jQuery は共存できないだろ

jQueryはブラウザ標準のDOM APIのライブラリに過ぎないので、
「Vue.js・DOM API は共存できないだろ」と
言ってるのと同じ意味になってるってのは分かってる?
0749Name_Not_Found
垢版 |
2020/04/17(金) 00:51:43.96ID:???
Vue.jsを使う場合は、jQueryだけでなく
ブラウザ標準のDOM APIも使ってはならない。
これは常識。

Vue.jsを使うということはブラウザ標準のやり方を
使わないということを意味する。
0751Name_Not_Found
垢版 |
2020/04/17(金) 14:50:27.57ID:???
>>739
どっちにしろ、質問者はド素人なんでしょ?
だったら、わからないものを2つ抱え込まないで
1つにした方がよくね?

つーわけで、いったんjQは脇に置いておこう

んでできれば
いきなりvueを使っても、なんでそうなるのか理解できないだろうから
ピュアJSから始めよう
0752Name_Not_Found
垢版 |
2020/04/18(土) 19:06:27.68ID:???
ピュアJSとvueは共存できないぞ
先にそれを言っておかないと
0753Name_Not_Found
垢版 |
2020/04/18(土) 20:02:24.91ID:???
結論vueはゴミだからやめとけ
0754Name_Not_Found
垢版 |
2020/04/19(日) 04:14:01.07ID:???
そう?
vueの流儀から外れないように使えば便利だけどなあ
まあvueに限らず
ほとんどのフレームワークがそうなんだが
0755Name_Not_Found
垢版 |
2020/04/19(日) 09:52:04.57ID:???
共存できないのは仮想DOMと従来のDOM APIだけで、それ以外は特に問題ないよなぁ。
0756Name_Not_Found
垢版 |
2020/04/19(日) 10:17:10.50ID:???
だから従来のDOM APIは仮想DOMと共存できないって話をしてるんですよ
0757Name_Not_Found
垢版 |
2020/04/19(日) 12:56:19.43ID:???
vue jquery 共存 でググるくらいしろ
0758Name_Not_Found
垢版 |
2020/04/19(日) 14:54:28.08ID:???
共存はできる
お互い気を使わないといけないが
0759Name_Not_Found
垢版 |
2020/04/19(日) 16:30:08.99ID:???
PHPのpreg_replaceでは、配列を渡せばインデックスが若い順から複数まとめて処理できる
ようなのですが、JSのreplaceでは文字列でないとだめなようです。
何かpreg_replaceと似たような処理を行うことはできますか?
0760Name_Not_Found
垢版 |
2020/04/19(日) 17:45:27.35ID:???
配列やインデックスやreplaceの概念を知っているのに分からないわけがないだろう
適当な質問をするな、もし適当でないと言い張るならそれは思考放棄だ
最低限自分で考えろ
0761Name_Not_Found
垢版 |
2020/04/20(月) 01:24:40.57ID:???
回答者さんも禁止行為を読んでください
0762Name_Not_Found
垢版 |
2020/04/20(月) 06:41:54.82ID:???
>>761が回答ではないように>>760も回答ではない
それくらい分かれ
0763Name_Not_Found
垢版 |
2020/04/20(月) 09:21:53.99ID:???
回答者かどうかが論点じゃないだろ
0764Name_Not_Found
垢版 |
2020/04/20(月) 13:15:16.82ID:???
明らかに質問を装った荒しレスに構う事が問題
0765Name_Not_Found
垢版 |
2020/04/20(月) 14:09:29.88ID:???
配列を定義してconsole.logで出力、その後に値を格納すると
console.logでの出力に値が格納されているのですがこういうものなのでしょうか?
また、出力時に工程通りの状態を確認できる方法があれば教えてください。

var abc = [];
console.log(abc); // 0: "a"
abc.push('a');
0768Name_Not_Found
垢版 |
2020/04/20(月) 19:49:15.93ID:???
>>766-767
ですよね〜。
おかしいなとは思ったのですが現状組んでるコードの中だと
>>765のようになってしまうようです。

こういうこともあるんだな〜ってことであきらめます。
スレ汚し失礼しました。
0769Name_Not_Found
垢版 |
2020/04/20(月) 19:59:16.90ID:???
開発ツールで見られるオブジェクトや配列の中身詳細はconsole.logした時点でフリーズされてるのではなく実際に表示された時の中身
console.log(JSON.stringify(abc));とでもすれば?
0771Name_Not_Found
垢版 |
2020/04/20(月) 20:26:47.63ID:???
>>769
出力結果変わりました。
こんな方法があったのですね。
ありがとうございます。

>>770
範囲が広く再現が難しそうだったのであきらめてしまいました。
0772Name_Not_Found
垢版 |
2020/04/20(月) 22:55:57.56ID:???
var abc = [];

たぶん、ここに長いコードがあって、abc の中身をいじっているはず!

console.log(abc); // 0: "a"
0773Name_Not_Found
垢版 |
2020/04/20(月) 23:41:31.79ID:???
ブラウザ実行?
一応debuggerのがあって
breakpoint設定できるしabc変数 watchしたりstep実行できるぞ
0774Name_Not_Found
垢版 |
2020/04/21(火) 01:02:58.62ID:???
>>772
説明下手ですみません。
組んでいるコードは長いのですが、>>765に書いたコードは隙間なしです。
結果がおかしいエリアで検証用コードを書いた感じです。

>>773
chromeのデベロッパーツールです。
Sourcesタブにそれっぽいところがあったので調べてみます。
0775Name_Not_Found
垢版 |
2020/04/21(火) 06:00:45.09ID:???
別におかしくないでしょ
共有渡しされてるんだから
0776772
垢版 |
2020/04/21(火) 06:04:51.53ID:???
隙間なしなら、var abc = [];
が動いていない

abc が再定義か何かで、コンパイルエラー
0777Name_Not_Found
垢版 |
2020/04/21(火) 07:49:03.43ID:???
const使っても起こりますか?
0778Name_Not_Found
垢版 |
2020/04/21(火) 07:54:47.16ID:???
>>774
再現コードを特定するのは質問者の仕事
「再現が難しそう」>>771で諦めるなら、質問する前に諦めなされ
0780Name_Not_Found
垢版 |
2020/04/21(火) 12:27:17.97ID:???
諦めるくらいなら最初から質問するな
一度質問して大勢の人を巻き込んだのだから最後まで頑張れ

プログラミングっていうのはプロでも数日問題に悩むような事がしばしばある
初心者のときなんて常に悩みっぱなしで当然
数日悩んだくらいで諦めるな
0781Name_Not_Found
垢版 |
2020/04/21(火) 12:59:52.99ID:???
諦めちゃいけないという謎の風潮なに
質問するかどうかとは別問題だろ
0782Name_Not_Found
垢版 |
2020/04/21(火) 19:24:57.02ID:???
何もやってない質問者が多すぎるからじゃね?
気持ちは分かる
0783Name_Not_Found
垢版 |
2020/04/21(火) 21:56:42.71ID:???
質問に対する答えは常に存在する
諦めずに考えれば必ず答えにたどり着く
質問するのは考えを放棄して甘えている堕落者だ




って流れなのかと思った
0784Name_Not_Found
垢版 |
2020/04/22(水) 06:09:09.70ID:???
躓きがちの入門者に対する励ましと応援のメッセージでしょ
なんでそんなに意地が悪い見方しかできんのか?
0785Name_Not_Found
垢版 |
2020/04/22(水) 23:48:39.75ID:???
F12 の開発者ツール上での結果などは、ダメ!

数行しか表示されないし、前に入力したものが分からず、その影響を受けてしまうから、
本当の結果がどうか分からない

必ず、元のファイルを更新して、自動テストをやり直すべき!
それでも結果がおかしい場合は、ブラウザがキャッシュを使ってる

Ruby on Rails とか必ず、test runner が走ってチェックする。
TDD 開発
0786Name_Not_Found
垢版 |
2020/04/23(木) 00:53:32.68ID:???
こういうことがあるからconst以外使わないようにするんだよ
0787Name_Not_Found
垢版 |
2020/04/23(木) 07:53:43.46ID:???
>>786
>>772でconstは回避策になるのか?
安易にいい加減な事を発言しない方がいい
0788Name_Not_Found
垢版 |
2020/04/23(木) 12:29:54.84ID:???
ネタニマジレスカコワルイ
0789Name_Not_Found
垢版 |
2020/04/23(木) 18:10:58.47ID:???
え、ネタだったの?
何がおもしろいの、それ?
0790Name_Not_Found
垢版 |
2020/04/23(木) 22:42:48.84ID:???
2ch流のノリが分からない人はわざわざ2chに来なくていいよ
0791Name_Not_Found
垢版 |
2020/04/23(木) 22:52:05.62ID:57KGjkUX
>>789
ネタが全て面白かったら
かわいそうな売れない芸人はいない!
0792Name_Not_Found
垢版 |
2020/04/23(木) 23:14:30.21ID:???
プログラマー的には暗黙の了解や勝手な判断に基づく仕様は許されない
つまりどこがネタだったのか、笑いどころはどこだったのかを説明してから
面白いのかどうかの実装判断をさせるべき
0793Name_Not_Found
垢版 |
2020/04/23(木) 23:40:34.29ID:???
仮想DOM を使っているから、実際のDOM更新とは、タイミングが合わず、更新できないとか?
それか、iframe、つまり他のサイトなので、アクセスできないとか?

それか、実行環境にアタッチしていないとか?
F12 の開発者ツール上で入力してる時には、
ブラウザのJavaScript は、本当に止まっているのか?

一方、VSCode でデバッグすれば、ポイントで止まる

ひょっとして、他人のサイトを実行してるのか?

他人のサイト、仮想DOM などを使っているかも知れないから、更新はできないかも。
TypeScript のreadonly かも知れないし

プロパティーが読み取り専用かどうか、判別できないのか?
そういう関数が無いのか?
0794Name_Not_Found
垢版 |
2020/04/24(金) 01:18:31.27ID:???
どうでもいいけど
なにtypescriptのreadonlyかどうかでビルド結果のコード変わるの?
0795Name_Not_Found
垢版 |
2020/04/24(金) 06:39:29.40ID:???
>>792
ここに書き込む人はプログラマーとは限らないが
ニチャンネラーであることは確かだろ
ここをどこだと思ってるんだ?
間違えるな
0796Name_Not_Found
垢版 |
2020/04/24(金) 07:28:08.13ID:???
「rgbaを使って赤の透明度をランダムに変えていきましょう」
ctx.fillStyle = 'rgba(255, 0, 0, ' + Math.random() + ')';


Math.random()の両側に+を置くのはどういう意味なのでしょうか?
0797Name_Not_Found
垢版 |
2020/04/24(金) 08:18:50.03ID:???
>>795
>>788はネタになってないのを無理やりネタということにして、言い訳してるだけ
0799Name_Not_Found
垢版 |
2020/04/24(金) 12:42:42.63ID:???
>>797
低脳なコメントにいちいち関わるな、
ネタとでも思っとけということなんだが
伝わらなかったか
0800Name_Not_Found
垢版 |
2020/04/24(金) 13:31:24.48ID:???
>>795

790 :Name_Not_Found :sage :2020/04/23(木) 22:42:48.84 ID:???
2ch流のノリが分からない人はわざわざ2chに来なくていいよ
0801Name_Not_Found
垢版 |
2020/04/24(金) 16:21:41.26ID:???
>>798
なぜrgbaの値の中で文字列結合するのでしょうか?
0802Name_Not_Found
垢版 |
2020/04/24(金) 16:30:31.57ID:???
>>801
なんでっておまえ
CSSは文字列で書くものじゃん
0803Name_Not_Found
垢版 |
2020/04/24(金) 16:31:23.11ID:???
CSSてのはおかしいか
スタイルは文字列じゃん
そのスタイルの文字列をJSで作るんだから
0804Name_Not_Found
垢版 |
2020/04/24(金) 19:55:22.18ID:???
>>799
低脳なコメントを自認してるなら良かった
0805Name_Not_Found
垢版 |
2020/04/25(土) 00:17:43.55ID:???
>>801
>ctx.fillStyle = 'rgba(255, 0, 0, ' + Math.random() + ')';

こういう文字列にしてるだけでしょ?

rgba(255, 0, 0, 0.3)
rgba(255, 0, 0, 0.8)

分けて書くと、

let str = 'rgba(255, 0, 0, 0.3)'
ctx.fillStyle = str
0806796
垢版 |
2020/04/25(土) 13:38:29.17ID:???
>>805
ありがとうございます!
strを作成してるってことなんですね。
0807Name_Not_Found
垢版 |
2020/04/25(土) 14:32:35.91ID:???
>>804
自認はしてないよ
だって俺が書いたレスじゃないもの
0808Name_Not_Found
垢版 |
2020/04/25(土) 14:59:01.45ID:???
>>807
じゃあ、ネタと思ってないのに「ネタとでも思っておけ」と書いたのか
0809Name_Not_Found
垢版 |
2020/04/25(土) 16:05:09.35ID:???
>>808
ネタかもしれないし、ネタじゃないかもしれないが
ふざけて書いたようなレスにまともに付き合うな
ここは2chなんだから変な妖精がスレに住み着くこともあるし
そのくらいご愛嬌と思って流しなよという意味だわな

お前のそのツッコミがまさに細かいところを深く気にしすぎだと思うぞ
他人の訳の分からないコメントくはふーんくらいに思っとけばよかろう
そもそも巷の解説は誤だらけってことを初心者も分からないといけないしね
多少の訳の分からない回答もご愛嬌ってことだ
0810Name_Not_Found
垢版 |
2020/04/25(土) 17:50:24.99ID:yPkwZDed
https://www.windy.com/
こういうツールの言語はなんどすか?
0813Name_Not_Found
垢版 |
2020/04/25(土) 19:49:03.91ID:yPkwZDed
phpじゃないの?ですか
0814Name_Not_Found
垢版 |
2020/04/25(土) 20:09:17.47ID:???
>>813
え、フロントエンドの話じゃねえの?
0815Name_Not_Found
垢版 |
2020/04/25(土) 20:17:13.32ID:yPkwZDed
いえ、全体的に
0816Name_Not_Found
垢版 |
2020/04/25(土) 20:56:20.05ID:???
バックエンドはわかんねえよ
0817Name_Not_Found
垢版 |
2020/04/25(土) 22:32:13.89ID:???
そもそも「こういうツール」に見えるものはフロントだけだしな
0819Name_Not_Found
垢版 |
2020/04/26(日) 01:04:48.16ID:???
今グラフィカルでリッチなUI実現できてるの
使われてる可能性のある技術はなんだろう

- フロントエンドフレームワーク(Shadow DOM)
- Flash(レガシー)
- Canvas(レガシー?)
- WebGL
- SVG?
- Unity?
0820Name_Not_Found
垢版 |
2020/04/26(日) 01:05:41.91ID:???
Wapp analyzerも使われてる技術大まかにわかるね
0821Name_Not_Found
垢版 |
2020/04/26(日) 02:30:01.68ID:???
そもそもリッチなUIとやらが流行ってない
ここ10年はWindows10でも何でも質素なUIが流行ってる
0822Name_Not_Found
垢版 |
2020/04/26(日) 04:51:17.59ID:+QZY6EVk
地図のapi?とかデータ、とか何を使ってると思われますか
0823Name_Not_Found
垢版 |
2020/04/26(日) 05:53:30.06ID:???
地図なんて固定画像じゃない?
気流のデータは気象観測機関や省庁から発表されてるものでしょう
0824Name_Not_Found
垢版 |
2020/04/26(日) 12:21:32.34ID:+QZY6EVk
無料のデータあるんですね
0825Name_Not_Found
垢版 |
2020/04/26(日) 12:26:28.41ID:???
今って少し前のjQueryのようにTypeScriptとVueやReact推奨してる感じですか?
0826Name_Not_Found
垢版 |
2020/04/26(日) 12:33:12.60ID:???
>>825
ちょと違う
jQはライブラリつって汎用な便利ツールの詰め合わせ

vueやreactはフレームワークといって
mvcのウェブアプリケーションを作るための雛形みたいなもの

TypeScriptはそのライブラリやフレームワークを利用して
自分の作りたいアプリケーションのプログラムを書くための言語の1つ
0827Name_Not_Found
垢版 |
2020/04/26(日) 12:35:26.33ID:???
そんで今も昔も
特定のライブラリやフレームワークが推奨されたことなんてない

逆に非推奨な書き方みたいなものは
開発者の間での一定のコンセンサスはあったけど
0828Name_Not_Found
垢版 |
2020/04/26(日) 13:54:33.24ID:???
JSは仕様と実装が分かれていて
もり立てていくような運営や中核コミュニティも存在しないから
これが推奨というのは難しい

まあ何かしらというのであれば
著名人が使ってるツールや書き方を参考にすれば流れにはついて行けるが
古い書き方でも基本的には動くのだから別にそうする必要性もない
自分の好きにすればいい
0829Name_Not_Found
垢版 |
2020/04/26(日) 13:56:08.24ID:???
>>826
なるほど 説明ありがとう
TypeScript+フレームワークがアプリケーション開発用ということは
Webページに便利機能や演出を付ける程度のスクリプトなら必要ないということですね

>>827
たしか、後方互換(主にIE用)にいちいち判定処理入れるくらいならjQuery使っておけみたいな感じだったかも
0830Name_Not_Found
垢版 |
2020/04/26(日) 16:22:51.75ID:???
フレームワークはやり方が強制される。部分的に使うということが苦手
また必ずしもコードが短くなるわけじゃない。
コードが大きくなったときのメンテナンス性を上げるために
小さなコードの断片に分割することができる。
それぞれのコードは小さいが、全部合わせると、分割したものを連携させるための
コードが追加で必要になって大きくなる

またフレームワークは一応混ぜて使えるということになってるが注意点が必要
一つのページに混ぜられると言うだけで、JavaScriptコードの一部で使うのは難しい
全部フレームワーク化 or 頑張って混ぜる。この2つしかないと思ったほうが良い

jQueryを始めとするライブラリは、既存のJavaScriptコードを
置き換えてコードを短くすることが出来る。
部分的に使うのが簡単。jQueryは互換性のために作られたが
それがなくともJavaScriptをシンプルに書くことが出来る
0831Name_Not_Found
垢版 |
2020/04/26(日) 16:36:04.08ID:???
jQueryなんて二度と使わんわ
0832Name_Not_Found
垢版 |
2020/04/26(日) 16:59:04.95ID:???
定期的に出現するjQuery信者の偏向思想を鵜呑みにする初心者が出てくるのは、どうしようもないんかね
0833Name_Not_Found
垢版 |
2020/04/26(日) 17:13:57.71ID:???
jQueryとコンポーネント指向じゃ
保守性が
トランプタワーとレゴブロックくらい違う
0834Name_Not_Found
垢版 |
2020/04/26(日) 18:29:07.79ID:???
>>829
別にTypeScriptは用途を限定したものじゃないよ
アラート1つ出すために使ったって構わん
0836Name_Not_Found
垢版 |
2020/04/26(日) 19:30:05.92ID:???
jQueryは電子レンジ調理みたいなもの
料理人としてこれが料理の全てだとか基本だとか思ってしまうのはまずいが
俺は電子レンジを使わないと決めるのももったいない
物事には適材適所というものがある
0837Name_Not_Found
垢版 |
2020/04/26(日) 20:12:06.11ID:???
たとえ話は本質からずれて解釈されることが多いので、普通は使わない
が、初心者はものごとをたとえたがる傾向にあるね
0838Name_Not_Found
垢版 |
2020/04/26(日) 20:26:57.87ID:???
だってそもそも正解がない議論なのだから
いかに相手にそれっぽく伝えて納得感を持ってもらうかってことになるでしょう?
そうなればたとえ話でもして適当な妥協点を見つけて不毛な話を終わらせるしかないじゃない!
0839Name_Not_Found
垢版 |
2020/04/26(日) 20:37:12.50ID:???
それらのフレームワークはjQueryで作るのが難しかった種類の問題を
解決するためのものであって無条件にjQueryから移行すべきものじゃないんだよ
問題の種類が今までと変わらずウェブサイトであるならjQueryが適してる

脱jQueryとかいう言葉が生まれたのは2015年頃だが、もうあれから5年経つわけだ
本当にjQueryから移行して楽になるのであれば、もっとjQueryのシェアは減ってるし
フレームワークのシェアも上がってるはずだろ?

これがjQueryと他のフレームワークの違い。ようするに使える場面が少ないんだよ。
死滅した扱いのBackboneやPrototypeよりも使われてないからな

https://w3techs.com/technologies/history_overview/javascript_library/all/y
2011年 28.3% 42.8% 54.5% 57.4% 61.5%
2016年 68.3% 71.9% 73.1% 73.6% 74.2%
2020年4月 73.6%

Backbone 現在0.7% Prototype 現在0.7%
Vue.js 2018年0.1% → 現在0.3%
Angular 2015年0.1% → 現在0.4%
React 2018年0.5% → 現在0.3%


https://w3techs.com/technologies/history_overview/javascript_library/ms/y
2011年 74.0% 84.1% 90.2% 92.9% 94.5%
2016年 95.8% 96.4% 96.2% 97.3% 97.4%
2020年4月 97.5%

Backbone 現在0.9% Prototype 現在0.9%
Vue.js 2018年0.1% → 現在0.4%
Angular 2014年0.1% → 現在0.5%
React 2018年0.7% → 現在0.3%
0840Name_Not_Found
垢版 |
2020/04/26(日) 20:44:56.06ID:???
まあ最近は直接jQueryを使ってるサイトは少なくて
レガシーなライブラリやコンポーネントが
実際は殆ど必要ないのにjQueryを参照してるから
数の上では多いように見えるだけだけどね
0841Name_Not_Found
垢版 |
2020/04/26(日) 20:55:43.46ID:???
プッシュ通知のように多くのサイトにとりあえず入れられてるというだけで
益が殆どないどころか害が上回りかねないので実際は嫌われてるのがjQuery

特に近年キャッシュがDouble-keyedになって
CDN配布によるキャッシュの再利用化の恩恵を受けずらすなってからは
世の中のリソースを無駄に食いつぶすインターネットの害虫と化している
0842Name_Not_Found
垢版 |
2020/04/26(日) 21:18:20.54ID:???
>>840
その理屈だと"フレームワークが増えてない"ことの説明がつかない
0843Name_Not_Found
垢版 |
2020/04/26(日) 21:23:11.76ID:???
仮にフレームワークの利用者が10倍増えたとする
100人中1人だったのが10人、そうすると10%になる。

フレームワークの利用者が10倍になったとしてもシェアが変わらない。
という状態が成立するとしたら、jQueryのユーザーも10倍
jQuery以外もたいして変わってないのだから10倍にならないといけない
そんなことはまず考えられない

つまりここ数年フレームワークの利用者は増えていない。
普通は鳴り物入りで登場したものは最初の数年で爆発的に伸びるものなんだが
最後の数ヶ月で爆発的な伸びは終わったとしか思えない
0845Name_Not_Found
垢版 |
2020/04/26(日) 21:26:02.02ID:???
キャッシュ再利用化?jQueryはサイズが小さい。
フレームワークはjQueryの数倍ある。おもすぎる。
0846Name_Not_Found
垢版 |
2020/04/26(日) 21:29:52.10ID:???
jQueryおじいさん…もっと発狂して
0847Name_Not_Found
垢版 |
2020/04/26(日) 21:34:05.51ID:???
>>842
明らかに増えてるでしょ
Webページ上の読み込まれるスクリプトのサイズや個数はどんどん大きくなってるんだから
jQuery依存の雑多なコンポーネントがそのリストに計上されてないだけでしょ
あちこちに転がっているミニマムな機能セットの全てに名前が付いてて
ライブラリと認識されるわけではないのだから

そのリストでわかるのはあくまで著名なライブラリやフレームワークのそれぞれが
どのくらいの割合で著名なサイト上で読み込まれてきてるかの変動具合であって、
その他のことを推し量ろうとするのは無理があるだろう
0848Name_Not_Found
垢版 |
2020/04/26(日) 21:36:05.84ID:???
state of jsでjQuery使ってるってやつ3%しかいねえなぁ
情報収集能力のある技術者にバイアスかかっちゃてるけど
0849Name_Not_Found
垢版 |
2020/04/26(日) 21:46:30.21ID:???
標準機能が不足していて、各ブラウザの足並みが全然揃っていなかったころならともかく
標準機能が充実してきたこの頃今からjQueryを使う必要がない
ポリフィル的なのが欲しけりゃ標準機能のポリフィルを噛ませばいい
0850Name_Not_Found
垢版 |
2020/04/26(日) 22:27:39.75ID:???
>>847
jQueryは多くないかもしれないという疑念じゃなくて
フレームワークが使われているという証拠を持ってきて
0851Name_Not_Found
垢版 |
2020/04/26(日) 22:29:07.72ID:???
>>849
jQueryはポリフィルライブラリじゃなくて
標準DOM APIを簡潔に書けるようにするライブラリですよ
そこがわかっていない。
0852Name_Not_Found
垢版 |
2020/04/26(日) 22:38:15.46ID:???
jQuery、コードが簡潔にかけて良いなぁって思ってるところに、
jQuery使わなくても、同じコードでどのブラウザでも動く
ほれ!って冗長なコードを見せるってネタが昔はやったよなw
0853Name_Not_Found
垢版 |
2020/04/26(日) 22:42:56.19ID:???
>>851
セレクター周りくらいでしょ
そこだけのミニマムjQuery使うって言うならまだ気持ちは分かるよ
0854Name_Not_Found
垢版 |
2020/04/26(日) 22:44:54.86ID:???
jQueryって簡潔にかけていいなぁ便利だなぁ
簡潔に書けるってことに反論ある?

・生JavaScriptでもどのブラウザでも動く!
・セレクタ周りぐらいでしょ!

いやだから、簡潔に書けるってことの反論はないの?
お前が思ってる「jQueryのメリット」って的外れじゃん
0855Name_Not_Found
垢版 |
2020/04/26(日) 22:48:46.23ID:???
昔話はいいよおじいちゃん
よっぽどトラウマになっちゃったんだね
0856Name_Not_Found
垢版 |
2020/04/26(日) 22:49:19.54ID:???
まあまあ、脱jQueryのために
「jQueryなくすと冗長なJavaScriptコードになるよ」
という記事でも見てみたら?
高度な機能になればなるほど、生JavaScriptは冗長になる

特に複数の要素にイベントを割り当てるときとかね
ループが必要になる処理は、生JavaScriptだとうんざりするよ
ループがいらない例ばっかり持ってきてごまかすのやめよう
0857Name_Not_Found
垢版 |
2020/04/26(日) 23:00:53.41ID:???
被害妄想甚だしいな
そもそもjQueryは大サイトの90何%で使われているからといって
じゃあWeb制作にほぼほぼ必須なものかというとそれは過大評価だよと皆言ってるだけで
評価をガクッと落とそうがよく使われているライブラリの1つになるだけで
他のフレームワークなどを使うときと同じく必要性を見極めて適材適所で使おうと言ってるだけで
乱用や常用するものではないよというだけでjQueryには長所がないとは言っていないだろう

1番よく使われるライブラリの名を冠したその実フレームワークであるし、
歴史的な構造的なレガシーさを残してるからライブラリやフレームワークの取り扱いの注意点やら
そういった諸々の批判を代表として受けがちではあるが、別にjQueryの全てが無価値という人はいなくて
声高々に言われてるほどの価値はないが、他のものと同程度の存在だって言ってるだけでしょう?
0858Name_Not_Found
垢版 |
2020/04/26(日) 23:21:31.20ID:???
認識・考え方の違いでしょ。
ここを初心者学生がESを覚える場所と思ってる言語学者の方々にとっては、
jQueryなんてそれ自体の提供するものを分析すればガラクタと言う事になる。
一方ここを新入社員にWeb制作を学ばせるオリエンテーションの場所と思ってる社畜の方々にとっては、
jQueryは枯れた著名なライブラリだからチーム制作に都合がいい価値あるものという事になる。
0860Name_Not_Found
垢版 |
2020/04/26(日) 23:50:05.19ID:???
jQuery は、ajax・エフェクトを切り離した、slim バージョンが出来た!

Ajax は、axios を使う。
アニメの代替は、知らないけど

Bootstrap が、popper.js・jQuery のエフェクトを使っているから、
これらが仮想DOM で使えるかどうか

Ruby on Rails で、jQuery, Bootstrap, Vue.js, TypeScript みたいな組み合わせができるかどうか

Bootstrapのエフェクト関係を、切り離せないかな?
0861860
垢版 |
2020/04/26(日) 23:55:09.65ID:???
Bootstrap がエフェクト無しで、SCSS だけなら、使えるコンポーネントが少なくなるのか?

ウェブページの先頭へ戻るときの、スクロールアニメが欲しい場合に、どうするかとか
0862Name_Not_Found
垢版 |
2020/04/27(月) 00:14:55.27ID:???
>>857
> じゃあWeb制作にほぼほぼ必須なものかという
誰も必須だとは言っていない

> とそれは過大評価だよと皆言ってるだけで
みんなが過大評価だと言ってるわけじゃない

jQueryの評価を下げてるやつがいるから言ってるんだろ
脱jQueryってなんだよ?なんで脱しなきゃいかんのだって話

俺は正しく評価してるだろ。vueとかangularとかreactとかいう
フレームワークはウェブアプリを作るためのもので
jQueryから置き換わるものじゃない。
jQueryを置き換えるものなんて登場してないし
ウェブの大多数を占めるウェブサイトはjQueryが適してる

と事実を言ってるだけ。過大評価じゃない。実際にデータとして現れてる。
むしろフレームワークのほうが過大評価なんだが
0863Name_Not_Found
垢版 |
2020/04/27(月) 00:18:00.45ID:???
>>857
あとライブラリとフレームワークの区別ぐらいはつけような

フレームワークは呼び出す側のことを指す言葉
「俺が書いたコード」をフレームワークが呼び出す

ライブラリは俺の書いたコードを呼び出すわけじゃない
jQueryは俺が書いたコードを呼び出さない。呼び出すとしたら
ブラウザが呼び出しているので、jQueryやDOM APIにとっての
フレームワークはブラウザということに鳴る
0864Name_Not_Found
垢版 |
2020/04/27(月) 00:42:35.53ID:???
それは違う
その名の通りつまりレイヤーだったり世界観を提供するものがフレームワーク
それには及ばずある分野の便利関数を寄せ集めて提供するものがライブラリだ
jQueryは提供する機能が幅広く独自世界を提供するフレームワークだ
0865Name_Not_Found
垢版 |
2020/04/27(月) 00:48:23.73ID:???
>>863
別スレッドで回す物理エンジンとかでない限り
あらゆるフレームワークのあやゆる機能がブラウザのイベントループとイベントを元に動いてると思うが
0866Name_Not_Found
垢版 |
2020/04/27(月) 01:02:50.68ID:???
>>864
> その名の通りつまりレイヤーだったり世界観を提供するものがフレームワーク
お前と同じことを言ってる定義、持ってきてね。
0867Name_Not_Found
垢版 |
2020/04/27(月) 01:56:14.34ID:???
おれの定義は俺が勝手に思ってるだけのものだが
お前の定義はツッコミが入ってるようにそもそも成立してないだろ
客観的妥当性を評価したいのならまず最低限成立し得る定義を持ってきてからにしな
0868Name_Not_Found
垢版 |
2020/04/27(月) 02:58:50.78ID:???
jQuery slim は、ほぼ、Lodash と同じ。
便利なライブラリ

jQueryのCSS セレクターは、便利

問題は、実DOM を更新するから、仮想DOM の更新タイミングと合わない!
0869Name_Not_Found
垢版 |
2020/04/27(月) 03:06:35.94ID:???
> 問題は、実DOM を更新するから、仮想DOM の更新タイミングと合わない!
だからそれはjQueryの問題じゃなくて
DOM APIによるDOM操作だって同じなんだって。
仮想DOMを使うフレームワークを使うとブラウザ標準のDOM APIと共存しづらくなる
標準準拠しますか?それとも標準のやり方を諦めてフレームワークに依存しますか?という問題
0870Name_Not_Found
垢版 |
2020/04/27(月) 03:13:13.12ID:???
jQueryのCSS セレクターは、便利って本当に使ってるか?
たしかに便利だ。拡張されてるし、自分で拡張することも出来る。
だが標準のCSSセレクタぐらいしか使わんだろ?

jQueryが便利なのはCSSセレクタでとってきた後。
DOM APIのように配列をぐるぐる回す必要もないし
要素が一つもない場合のことを考えなくていい

0個以上の要素に対して直接メソッドを呼べるってのがjQueryの素晴らしい点で
それによってループいらず条件文いらずでコードを宣言的に書くことが出来るようになってる。
0871Name_Not_Found
垢版 |
2020/04/27(月) 04:43:28.22ID:???
>>870
> 配列をぐるぐる回す必要もないし

回ってんじゃね?
0872Name_Not_Found
垢版 |
2020/04/27(月) 06:04:31.91ID:???
>>871
まさかライブラリの中で処理してるからとか言わんよな?w
JavaScriptでも最終的にはアセンブラとか言うアホがいるからなぁ
0873Name_Not_Found
垢版 |
2020/04/27(月) 06:56:57.51ID:???
傍から見て短絡的なアホはお前の方だろ
0874Name_Not_Found
垢版 |
2020/04/27(月) 07:03:13.91ID:???
じゃあ、あんたでいいから「回ってんじゃね?」の意味を言ってみてよ
それに答えられなきゃ、俺に「短絡的に」レスしたってことになる
0875Name_Not_Found
垢版 |
2020/04/27(月) 08:09:08.03ID:???
前もこんな話あったなぁ。
「単なるライブラリ」だと下に見られている気がするんだろうか。
0876Name_Not_Found
垢版 |
2020/04/27(月) 10:36:17.52ID:???
遅かれ早かれ消え行く定めではあるからなぁ
ベンダーの足並み揃った今は標準APIの手堅さが目立ってきてる

こんなこと言うと標準APIだけ使ってろとか言いそう
0877Name_Not_Found
垢版 |
2020/04/27(月) 14:26:56.75ID:???
オブジェクトのプロパティのキーは変数になるけど、letとかconstの違いを決めることできないの?
0880Name_Not_Found
垢版 |
2020/04/27(月) 15:34:34.18ID:???
>>878
なにがアホってそりゃアホだろ?
関数型言語にはループがないっていったら
その中身(アセンブラ)ではループしてるだろと言ってるようなもんだろ

ライブラリが提供している「もの」の話をしてるのに
お前はライブラリの実装の話をしている
的外れもいいとこだし、どうせ的はずれであることも理解してないんだろ
0882Name_Not_Found
垢版 |
2020/04/27(月) 17:28:48.62ID:???
>>877
書き変えたくないやつはObject.definePropertyで設定すれば?
0883Name_Not_Found
垢版 |
2020/04/27(月) 18:08:44.95ID:???
>>877
日本語でおkだが、特定のプロパティのみブロックスコープにすることはできない
0884Name_Not_Found
垢版 |
2020/04/27(月) 22:35:20.22ID:???
>>880
ここはJSのスレだから
JSのレイヤーで考えるのは当然
ここじゃなければ君の考え方は自然だが
ここでは異常だと自覚したほうが良い
0885Name_Not_Found
垢版 |
2020/04/27(月) 23:21:20.43ID:???
JSのレイヤーで考えても一緒なんだが?
仮想DOMと言ったって、どうせDOM操作してるんやろ?
ならそんなフレームワーク使う意味ない
と言ってるのと何も変わらん
0886Name_Not_Found
垢版 |
2020/04/28(火) 12:44:55.41ID:???
君がそう思うのはよく分かったが
君以外はそう思わないのだから残念なことだね
0887887
垢版 |
2020/04/28(火) 13:00:00.78ID:???
「obj のすべての数値プロパティに2を掛ける関数miltiplyNumeric(obj)をさくせいしなさい。」


let menu = {
width: 200,
height: 300,
title: "My menu",
};

function multiplyNumeric(obj) {
for (let key in obj) {
if (typeof obj[key] == 'number') {
obj[key] *= 2;
}

}
console.log(obj);
}
multiplyNumeric(menu);
ーーーーーーーーーーーーーーーーーーーーー
//出力結果
{width: 400, height: 600, title: "My menu"}
0888887
垢版 |
2020/04/28(火) 13:00:35.34ID:???
let menu = {
width: 200,
height: 300,
title: "My menu",
};

function multiplyNumeric(obj) {
for (let key in obj) {
if (typeof obj[key] == 'number') {
obj.key *= 2;
}

}
console.log(obj);
}
multiplyNumeric(menu);
ーーーーーーーーーーーーーーーーーーーーー
//出力結果
{width: 200, height: 300, title: "My menu", key: NaN}



if文の中で
obj[key] *= 2;
と書くのとただしく数値が2倍されるのですが

obj.key *= 2;
と書くとうまくいかない上に、key:NaNという新しいプロパティができてしまうのはなぜでしょうか?
0889887
垢版 |
2020/04/28(火) 13:04:24.22ID:???
自己解決しましたm(_ _)m
0890Name_Not_Found
垢版 |
2020/04/28(火) 14:25:43.43ID:???
なるほどそういう意味か
object.keyはobject["key"]だからね
こんな質問文章だけで説明するなや
0891Name_Not_Found
垢版 |
2020/04/28(火) 19:32:05.03ID:???
細かいことを言うかもしれないが、すべての値が数値であるプロパティが対象だろ?
for-inじゃenumerableな文字列キーのプロパティしか対象にできないし、*=2が有効なのはnumber型だろ?
enumerableでないプロパティやSymbolキーのプロパティもあるし、数値型にはbignumとかもあるだろ?
0892Name_Not_Found
垢版 |
2020/04/28(火) 19:36:06.92ID:???
見なかったことにするわ
0893Name_Not_Found
垢版 |
2020/04/28(火) 19:42:53.58ID:???
文章問題全般に言えることだが、
こういうのはプログラミングの能力評価半分・質問者の気持ちを汲み取る能力評価半分のテストでしょ
世の中には完璧な問題というのは殆ど無くて、問題が問題を抱えていることの方がよっぽど多いのだから

本当にJSの仕様の理解度やコードを書く能力を測りたければ、「このテストを通るコードを書け」という問題を出せばいい
そうでないのはこれはただのプログラミングのテストではなく、実社会でJSというツールを使って生きていけるかのテストだからだよ
0894Name_Not_Found
垢版 |
2020/04/29(水) 07:55:43.84ID:???
jQueryの3.5.0がリリースされてたんだな
0895Name_Not_Found
垢版 |
2020/04/29(水) 08:00:21.86ID:???
今回のは小規模なバグ修正だね
0897Name_Not_Found
垢版 |
2020/04/29(水) 09:26:33.38ID:???
そんなんで待ってたら永久に待たないといけない
0898Name_Not_Found
垢版 |
2020/04/29(水) 12:32:39.61ID:???
永久に待てとか言ってないだろ
0899Name_Not_Found
垢版 |
2020/04/29(水) 13:12:56.78ID:???
毎回不具合は出てるのに
不具合が出てるから次まで待とうとか言ってたら永久に待つことになるだろ
0901Name_Not_Found
垢版 |
2020/04/29(水) 16:14:57.42ID:???
配列へオブジェクトを動的に格納しています。
格納したくないオブジェクト(例ではiが0,2,3のとき)の格納前にはcontinue文で次の反復を実行します。
しかし飛ばしたはずのオブジェクトの分まで添字が用意され、そこにundefinedが入ってしまいます。
配列には1つずつ要素を格納していますが、出力を見るとサンプルコードの★部分で配列の要素が1を超えて増えていることがわかります。
一体なぜ、このようなことが起こるのでしょうか。

【環境】Ubuntu 19.10, Firefox 75, Chrome 81.0.4044.122
【条件】Vanilla JSの使用, FirefoxまたはChrome最新版での動作
【エラーメッセージ】なし
【サンプルコード】
https://jsfiddle.net/et3pw2a4/

--出力ここから
X i = 0, len:0, person -> []
A i = 1, len:0, person -> []
B i = 1, len:2, person -> [null,{}]
X i = 2, len:2, person -> [null,{"id":"a1","no":8}]
X i = 3, len:2, person -> [null,{"id":"a1","no":8}]
A i = 4, len:2, person -> [null,{"id":"a1","no":8}]
B i = 4, len:5, person -> [null,{"id":"a1","no":8},null,null,{}]
A i = 5, len:5, person -> [null,{"id":"a1","no":8},null,null,{"id":"a4","no":20}]
B i = 5, len:6, person -> [null,{"id":"a1","no":8},null,null,{"id":"a4","no":20},{}]
{"person":[null,{"id":"a1","no":8},null,null,{"id":"a4","no":20},{"id":"a5","no":24}]}
--出力ここまで
0903Name_Not_Found
垢版 |
2020/04/29(水) 18:15:46.44ID:???
>>901
>>配列へオブジェクトを動的に格納しています。
はい、コードを確認しました。

>>格納したくないオブジェクト(例ではiが0,2,3のとき)の格納前にはcontinue文で次の反復を実行します。
はい、コードを確認しました。

>>しかし飛ばしたはずのオブジェクトの分まで添字が用意され、そこにundefinedが入ってしまいます。
いいえ、配列には飛ばしたインデックスでのプロパティは作られておらず、当然undefined値も入っていないことを確認しました。

>>配列には1つずつ要素を格納していますが、出力を見るとサンプルコードの★部分で配列の要素が1を超えて増えていることがわかります。
いいえ、それはそう見える書き出し方をしているだけであり、実際の要素数は1つずつしか増えていないことを確認しました。

>>一体なぜ、このようなことが起こるのでしょうか。
起きていないことを、あなたが起きていると信じ込んでしまっているため、あなたの脳内では起こってしまうのでしょう。
0904Name_Not_Found
垢版 |
2020/04/29(水) 21:55:09.35ID:???
すみません、良い方法があれば教えていただけないでしょうか。
現在、300行、40列のtableを表示するjspを作っています。
一度表を描画した後、それぞれのセルに対してID設定や要素の追加等をjavascriptで
行っているのですが、画面を操作できるまでに10秒ほどかかってしまっています。
このjavascriptによる設定追加ですが、見た目には影響しないので、
バックグラウンドでできないかと思っているのですがよい方法はないでしょうか。
(表の描画が完了したところで操作可能となり裏でjavascriptによる設定を行う、等)
自分でも確認したところwebworkerというやり方が目に入ったのですが、DOM操作は
できないとのことで実現はできませんでした。
0905Name_Not_Found
垢版 |
2020/04/29(水) 22:05:01.67ID:???
今どきは別スレッドに描画処理を持っていくこともできるが
でかいテーブルがJSPでどーんとHTMLに最初から乗っかってくるのだから
そういう繊細なことを考えても割に合わない

大胆で究極に簡単な方法
例えば最初CSSで非表示にしておいて処理が完了したら表示するとか
そういったことで乗り切れるでしょ
それでも重ければスクロールに従って少しずつ処理していく
そんなとこ
0906Name_Not_Found
垢版 |
2020/04/30(木) 02:19:20.73ID:???
>>902 >>903
ご回答ありがとうございます。
完全に私の思い込みでした。ご指摘いただきありがとうございました。
もう一度コードをよく見ました。私のコードは次のコードと同じでした。
let person = [];
person[1] = "略";
person[4] = "略";
person[5] = "略";
console.log(person.length); // => 6
console.log(person.hasOwnProperty("0")); // => false

>>いいえ、〜省略〜 当然undefined値も入っていないことを確認しました。
コードAを実行して、えっ、0,2,3はundefinedだよな?なのに入っていないとは???となりました。
しかしコードBを実行して、jの0,2,3でundefinedが返ったのは、[0][2][3]が未定義だからであることがわかりました。
言い換えると、undefinedが入っているわけではなく、何も入っていない(hasOwnPropertyメソッドがfalseになる)からundefinedが返ったのだと理解しました。
// コードA
for (let j = 0; j < foo.person.length; j++) {
if (undefined === foo.person[j]) {
console.log(`foo.person[${j}] is undefined`);
}
}
// コードB
let ary = [undefined, , 'c'];
console.log(ary.hasOwnProperty("0")); // => true
console.log(ary.hasOwnProperty("1")); // => false
0907Name_Not_Found
垢版 |
2020/04/30(木) 06:49:35.06ID:???
null は、プログラマーが初期値として代入できるけど、

一方、undefined は、プログラマーが代入できない。
実行環境が使うもの
0908Name_Not_Found
垢版 |
2020/04/30(木) 07:26:25.43ID:???
>>904
非同期・Ajax, loading spinner

たにぐちまこと
TypeScript入門 #08:Promise処理で、非同期通信(Ajax)をしよう@
https://www.youtube.com/watch?v=Yrx5WG4wVfA

この動画では、素のXMLHttpRequest(XHR)で、readyState === 4 を使っているけど、
普通はもっと簡単な、jQuery のAjax を使う

jQuery slim 版では、Ajax・アニメ効果は含まれていないので、
その場合は、axios を使う
0909Name_Not_Found
垢版 |
2020/04/30(木) 07:33:31.92ID:???
> たにぐちまこと

たまちゆき に見えた。新作でないかな?
0910Name_Not_Found
垢版 |
2020/04/30(木) 07:56:24.33ID:???
jQuery.ajaxはfetchを知らない人の為の遺物
0911Name_Not_Found
垢版 |
2020/04/30(木) 08:07:54.04ID:???
jQuery開発者「うん、だからそれを取り除いたslim版を作ったんやろ?」
0912Name_Not_Found
垢版 |
2020/04/30(木) 08:23:31.52ID:???
$()はSelectors APIを知らない人の為の遺物
0913Name_Not_Found
垢版 |
2020/04/30(木) 08:34:15.02ID:/kED3zLW
axios や querySelector
0914Name_Not_Found
垢版 |
2020/04/30(木) 08:58:35.21ID:???
ElectronでJavaScriptを勉強し始めたのですけどファイルの読み込みと処理結果の取得がよく分かりません
ファイル読み込みは1行ずつ読み込みし逐次内容を抽出して変数に格納しています
この変数を戻り値としたいのでファイル読み込みのメンバ関数はasync,awaitしています
仮にread関数として使ってみると内容が入ってきません何がいけないのでしょう・・・

app.on('ready', () => {
win = new Window({window: BrowserWindow});
let list = readaaa();
console.log(list); ←内容が入っていない
});

async function readaaa() {
const aaa = new ClassAAA();
let list = await aaa.read();
console.log(list); ←内容が入っている
return list;
}
0915Name_Not_Found
垢版 |
2020/04/30(木) 09:03:31.69ID:???
>>908
axiosってさー
わざわざ使わないといかんの?
fetchしゃいかん?
0916Name_Not_Found
垢版 |
2020/04/30(木) 10:03:47.84ID:???
>>914
>win = new Window({window: BrowserWindow});
>let list = readaaa();
>console.log(list); ←内容が入っていない

readaaa( )が非同期だから、後で呼ばれるのでは?
前・後が、list よりも先に、表示されるのでは?

win = new Window({window: BrowserWindow});
console.log("前");
let list = readaaa();
console.log("後");
console.log(list); ←内容が入っていない
0917Name_Not_Found
垢版 |
2020/04/30(木) 10:11:59.60ID:???
>>912
> $()はSelectors APIを知らない人の為の遺物

Selectors APIで代替できると思ってるやつは
$() は Selectors APIと同じ機能しか持ってないと勘違いしてるアホ
0919Name_Not_Found
垢版 |
2020/04/30(木) 10:21:49.35ID:???
>>915
axiosだとデフォルトのhostやレスポンス処理定義したりinstance発行できるから
規模による
0920Name_Not_Found
垢版 |
2020/04/30(木) 10:56:50.10ID:???
const time1 = new Date();
const time2 = new Date;

()が無くても同じ値が出てくるんだけど、()無しはどう意味あんの?
0921Name_Not_Found
垢版 |
2020/04/30(木) 11:07:17.25ID:???
Selectors APIで〜と言ってるやつに
じゃあA要素が複数ある時に
$('a').on('click', function() { ・・・ }); や
$(document).on('click', 'a', function() { ・・・ }); と
全く同じことをするコードはどうなるの?って聞くと
冗長なコードを持ってくるから笑えるw
0922Name_Not_Found
垢版 |
2020/04/30(木) 11:33:29.73ID:???
>>920
Dateというよりnew 演算子で引数がない場合の糖衣構文
0923Name_Not_Found
垢版 |
2020/04/30(木) 11:35:29.38ID:???
>>920
意味は特にないよ
引数渡す必要なければ省略可なだけよ
0924Name_Not_Found
垢版 |
2020/04/30(木) 11:37:40.01ID:???
>>922
なんのメリットもシュガーも与えてないのだから
こういうのは糖衣構文とは言わん。ただの省略

糖衣構文というのは「以前は不便だったものを内部の構造を
大きく変えないで構文だけで便利にするもの」
以前よりも良くなってる素晴らしいものが糖衣構文であって
ただの省略は何のメリットももたらしていない
0925Name_Not_Found
垢版 |
2020/04/30(木) 11:40:19.92ID:???
たまに糖衣構文だから価値がないみたいなことを言ってるやつがいるが
もしかして糖衣構文の意味を知らなかったとかなのか?
0926Name_Not_Found
垢版 |
2020/04/30(木) 11:42:38.59ID:???
挙動が変わらなければシンタックスシュガーじゃないの?
>>924のは省略記法とでも言うの?
差は厳密に定義できるの?
0927Name_Not_Found
垢版 |
2020/04/30(木) 11:44:36.88ID:???
>>924
メリット云々はよくわからないが
構文ではなかったかもすまん
0928Name_Not_Found
垢版 |
2020/04/30(木) 11:53:28.23ID:???
マジで糖衣構文の意味を知らんのかw

糖衣って知ってるか?
セイロガン糖衣Aの糖衣だぞ

https://kotobank.jp/word/%E7%B3%96%E8%A1%A3-579473
1 薬剤を服用しやすくするために外側に施した、糖分を含む被膜。「糖衣錠」
2 チョコレートやゼリーなどの表面を覆う、砂糖でつくった硬い被膜。「糖衣菓子」

何かを糖衣してなきゃ糖衣にはならん
0929Name_Not_Found
垢版 |
2020/04/30(木) 11:59:05.96ID:???
括弧省略できるのは糖衣じゃないのか?
どこからが糖衣でどの省略が糖衣じゃないのか例出してくれたらわかる
0930Name_Not_Found
垢版 |
2020/04/30(木) 12:14:30.81ID:???
jQuery の利点は、未だに大きい

YouTube で、たにぐちまことの「jQuery 入門」という動画を見れば?
0931Name_Not_Found
垢版 |
2020/04/30(木) 12:28:39.37ID:???
>>928
糖衣って無理矢理和訳だから、多少はね?
0932Name_Not_Found
垢版 |
2020/04/30(木) 12:40:33.43ID:???
>>914
app.on('ready', async () => {
win = new Window({window: BrowserWindow});
let list = await readaaa();
console.log(list);
});
0933Name_Not_Found
垢版 |
2020/04/30(木) 12:55:16.94ID:???
>>916
関数を呼ぶと全て非同期になるのですか?
ちょっとよく分からないのでもう少し勉強してみます。

>>932
ありがとう、やってみたら内容受け取れました。
非同期処理と同期処理でぐっちゃになりそうです
0934Name_Not_Found
垢版 |
2020/04/30(木) 13:14:08.53ID:???
>>921

document.querySelectorAll('a').forEach( elem=> elem.onclick = aFunction );

回す用の仮引数 elem で記述が1つ増えるだけじゃない?
0935920
垢版 |
2020/04/30(木) 13:15:18.88ID:???
const time1 = new Date();
const time2 = new Date;
console.log(timer1 ===timer2);
としてみるとfalseが返ってくるんだよな。
同じではないってこと?
0936Name_Not_Found
垢版 |
2020/04/30(木) 13:17:25.69ID:???
>>935
オブジェクトの厳密比較は参照が同じじゃないと偽を返す
0937Name_Not_Found
垢版 |
2020/04/30(木) 13:20:42.88ID:???
>>929
糖衣を省略と思ってるからおかしなことになるんでしょ
より素朴な構文があって、それらを組合わせて実現できることを
1つの構文で実現できれば、それはそれらの糖衣構文と言うんでしょ

それと、「括弧が省略できる」っていうのはだだの主観的な見方でしょ
配列やオブジェクトの末尾カンマのように、見方を変えれば「不要な括弧をつけることができる」とも言えるでしょ
要するにないパターンとあるパターンはどちらかがもう片方の特殊な形と言っても間違いではないけれど、
そう言うよりはどちらでも書ける対等な存在同士と考えるほうがスマートでしょ

実際のESの仕様的にも
new MemberExpressionとnew MemberExpression Argumentsの2つが存在してるんでしょ
0938Name_Not_Found
垢版 |
2020/04/30(木) 13:24:57.19ID:???
>>935
2つの存在をそれぞれ作ったのだから
それらが同一であるはずがないじゃないか
0939916
垢版 |
2020/04/30(木) 13:41:38.71ID:???
>>933
>async function readaaa() { }
async が付いているから、非同期関数じゃないの?

非同期は、同期処理とはコンテキスト・文脈が異なるから、
通常の方法では、やりとりできない

特別な書き方をしないといけない
0940Name_Not_Found
垢版 |
2020/04/30(木) 14:32:52.65ID:???
>>933
ハイパー大雑把だけど
awaitは必ずasync関数の中で使おう
0941Name_Not_Found
垢版 |
2020/04/30(木) 15:07:25.38ID:???
クロージャーの説明のサンプルコードについて質問です。

const createCounter = function() {
let cnt = 0; //(1)
console.log(cnt); //(2)
return function() {
cnt +=1;
console.log(cnt); //(3)
};
};

const counter = createCounter();
counter(); //(4)
counter(); //(5)
counter(); //(6)

出力結果は以下の通りになりました。
0 //(4)を実行
1 //(4)を実行
2 //(5)まで実行
3 //(6)まで実行

なぜ(1)のlet cnt = 0 と(2)のconsole.log(cnt)はスルーされちゃうんでしょうか?
0942Name_Not_Found
垢版 |
2020/04/30(木) 15:32:29.23ID:???
(1)(2)は
const counter = createCounter();
の時にしか実行されないから

console.log(counter.toString());してみ
0943Name_Not_Found
垢版 |
2020/04/30(木) 16:03:47.53ID:???
>>941
0は(4)じゃなくて(2)の出力じゃない?
(1)(2)はちゃんと1回処理されてる
0944Name_Not_Found
垢版 |
2020/04/30(木) 16:22:23.03ID:???
>>941

createCounter();は
let cnt = 0; //(1)
console.log(cnt); //(2)
return
だから0じゃん

counter();は
cnt +=1;
console.log(cnt); //(3)
だから3回呼べば1,2,3じゃん

何がどう分からないの?
0945Name_Not_Found
垢版 |
2020/04/30(木) 17:09:30.50ID:???
>>934
やっぱりだめですねw

それだと複数のイベントを設定できない
頑張ってjQueryと同じようなことをしても
デメリットが出てしまう
$(document)〜のほうはもうお手上げみたいだしw
0946941
垢版 |
2020/04/30(木) 17:28:20.23ID:???
>>944
counter()を実行する、つまりまたcreatecCounter()を実行するのに(1)(2)をすっ飛ばしてしまうのが理解できてません。
0947Name_Not_Found
垢版 |
2020/04/30(木) 18:43:36.41ID:???
>>945
複数の要素に同じイベントハンドラを設定する必要はないから問題ない
0948Name_Not_Found
垢版 |
2020/04/30(木) 18:49:15.71ID:???
>>945
ほれ
document.querySelectorAll('a').forEach(elem => elem.addEventListener('click', aFunction));
0949Name_Not_Found
垢版 |
2020/04/30(木) 18:51:10.43ID:???
>>946
counter()を実行する、つまりまたcreateCounter()を実行する
ことにはならないでしょ
counterはcounterであってcounterには
cnt +=1;
console.log(cnt); //(3)
の部分しか含まれてないじゃん
0950Name_Not_Found
垢版 |
2020/04/30(木) 18:55:47.86ID:???
>>946
const counter = createCounter();
で実行されるのは944が言ってる通り
let cnt = 0; //(1)
console.log(cnt); //(2)
return
までで、そのreturnに指定してある戻り値の
function() {
cnt +=1;
console.log(cnt); //(3)
};
がcounterに代入される
0951Name_Not_Found
垢版 |
2020/04/30(木) 19:00:37.97ID:???
>>947
> 複数の要素に同じイベントハンドラを設定する必要はないから問題ない

それはお前の都合であって、
お前という人間の話はしてない。
技術について語れ
0952Name_Not_Found
垢版 |
2020/04/30(木) 19:01:55.30ID:???
>>948
長いよなぁw

document.querySelectorAll('a').forEach(elem => elem.addEventListener('click', aFunction));
$('a').click(aFunction);

これがjQueryとの差。4倍と言っていいかね?w
0953Name_Not_Found
垢版 |
2020/04/30(木) 19:11:50.76ID:???
長いなら適切に関数を作れば良いのでは?
もしかして他人が作ったものしか使えないってこと?
それなら俺がもっと短く書けるライブラリ使ったらそれを使うんだろうか?

jQueryの価値は短く書けるとかいう馬鹿なことじゃないでしょ
多くの人が使ったことがある著名で枯れたライブラリだから
チーム開発に導入して意味があるんでしょ

短く書けるからと言ってその場限りの適当なライブラリあフレームワーク持ってくると
学習コストが見合わなかったり、メンテがされてなかったり、後々ルールを思い出すのが大変だったりするんでしょ
だからそんなものを使うくらいなら「著名で枯れている」標準APIを使っとこうとなるんでしょ

jQueryの価値って、短く書けるとかそういったことじゃなくて、「皆が使ってる」これに限るでしょ
0954Name_Not_Found
垢版 |
2020/04/30(木) 19:14:32.70ID:???
> 長いなら適切に関数を作れば良いのでは?

だからそれをjQueryがやってくれてる
オレオレで作った関数は、他人と知識を共有できない
jQueryであればたとえ外部の人とであっても、技術を共有できる

> jQueryの価値は短く書けるとかいう馬鹿なことじゃないでしょ
jQueryの価値は、開発コストの削減。短く書けるだけじゃなくて
新しく雇った人でも知ってる可能性が高い。教えるコストも減る。
自社独自の方法は出来る限り少なくするべき
0955Name_Not_Found
垢版 |
2020/04/30(木) 19:15:59.83ID:???
>>953
今話しをしてるのは
皆が使ってるjQueryとDOM APIの比較

両者ともに皆使ってる。皆使ってる同士を比べて
良いのはjQueryだという話をしている。
0956Name_Not_Found
垢版 |
2020/04/30(木) 19:31:13.15ID:???
>>955
良いということを否定してないよ
でもその理由はおかしいでしょってこと
あと煽るような書き方やめなよ
0957Name_Not_Found
垢版 |
2020/04/30(木) 19:40:50.68ID:???
>>951
使わなくて良いものにコストをかけるのは愚かなことだ
0958Name_Not_Found
垢版 |
2020/04/30(木) 19:51:39.16ID:???
>>957
jQueryは使われてますよ。
またシェア出しましょうか?
0959Name_Not_Found
垢版 |
2020/04/30(木) 19:57:05.78ID:???
このクソ馬鹿は死んでも直らんな
HTMLやCSSで十分簡単にできることなのに
JSはほぼ100%のサイトで使われている!
だからJSを使うべきだ!
と騒いでるのに等しいことが分からんのか
0960Name_Not_Found
垢版 |
2020/04/30(木) 19:59:24.29ID:???
数十だか数百だかの文字を削減できたところで
それで削減できる時間よりもjQueryライブラリを導入してページに配置する時間の方が何倍も大きい
0961941
垢版 |
2020/04/30(木) 20:03:39.27ID:???
あ!
createCounter()の戻り値である関数が代入されるってことですね!
const counter = function () {cnt += 1 ・・・}
となるんでcounter()とするとcntに1が足されると。。。

counter()とすると毎回createCounter()を実行するものだと思ってました。
解決しました。ありがとうございます!
0962Name_Not_Found
垢版 |
2020/04/30(木) 20:03:54.63ID:???
やめろお前ら素人じゃあるまいに

それぞれのエコシステムにフィットするものが
一意でないことなんて当たり前じゃん
そんなことは過去に何千件とこなしてきた仕事でわかりきってるだろ
0964Name_Not_Found
垢版 |
2020/04/30(木) 20:05:49.08ID:???
>>962
2chなんだから趣味プログラマや
仕事を選ぶフリーランスとか
職人気質な奴が多いんだろうな
0965Name_Not_Found
垢版 |
2020/04/30(木) 20:05:49.17ID:???
>>962
2chなんだから趣味プログラマや
仕事を選ぶフリーランスとか
職人気質な奴が多いんだろうな
0966Name_Not_Found
垢版 |
2020/04/30(木) 20:31:17.76ID:???
>>958
日本語が読めない馬鹿に与える薬はない
0967Name_Not_Found
垢版 |
2020/04/30(木) 20:50:49.91ID:???
>>959
いやいや、JSだけで出来るのわかってる
DOM APIを使うよりも快適に作れるのがjQueryって言ってるだけ
0968Name_Not_Found
垢版 |
2020/04/30(木) 20:51:35.62ID:???
>>960
> それで削減できる時間よりもjQueryライブラリを導入してページに配置する時間の方が何倍も大きい

あなたは1行追加するのに何時間かかるんです?
0969Name_Not_Found
垢版 |
2020/04/30(木) 21:11:20.98ID:???
JavaScriptでクラスを学び始めて気になったことがあったので質問させてください

JavaScriptは関係ないかもしれませんが、メソッドの中で別のクラスのインスタンスを呼ぶ事が、
せっかくクラス分けしているのに動作が他クラスのインスタンスに依存する形になって気持ちが悪い気がします
このような書き方は一般的なのでしょうか?

class A {
constructor(){}
metho(){
console.log('A!');
}
}
const a = new A();

class B {
constructor(){}
method(){
a.method();
}
}
const b = new B();
b.method();
0970Name_Not_Found
垢版 |
2020/04/30(木) 21:14:54.14ID:???
>>968
鯖から落として読み込み毎にメモリに展開するって話じゃないの
0971Name_Not_Found
垢版 |
2020/04/30(木) 21:32:08.96ID:???
JSに一般的な書き方というものはないし
お前さんが一般的な書き方を探して真似するする必要もない
気持ち悪いと思うのならばそういう書き方をお前さんがしなければいいだけの話
0972Name_Not_Found
垢版 |
2020/04/30(木) 23:21:20.19
>>969
あくまで強いて言えば、
自前のライブラリなどでパッケージとして公開する場合は
そもそもClass AやClass Bというクラスを作るクラスも作っておいた方がいいかも
0973Name_Not_Found
垢版 |
2020/05/01(金) 00:08:53.50ID:???
>>970
流石にそんな意味がないことを気にしてるわけ無いやろw
0974Name_Not_Found
垢版 |
2020/05/01(金) 00:43:53.57ID:???
>>969
クラスが他クラスに依存した形にならないようにわざわざクラス分けするのであって、
そのような場合は別のクラスとして定義するべきではないのは理解できない?
0975Name_Not_Found
垢版 |
2020/05/01(金) 00:45:49.30ID:???
class B が class A を持つような形にすれば
「Bでメソッドを使いたいけどAがインスタンス化されていなかった」
みたいな問題は起きなくなる

プログラム書く以前の設計の問題
0976Name_Not_Found
垢版 |
2020/05/01(金) 01:11:02.09ID:???
あの例がだいたいの形だとして、
AはBで利用する用で主にBをexportしたいのならばまだ分かりみがある
0977Name_Not_Found
垢版 |
2020/05/01(金) 01:36:17.29ID:???
簡単なFlashゲームみたいなページ変遷のない育成ゲームを作りたくて
データバインディングが可能なライブラリを調べているのだけど
どこにでもNode.jsという謎の概念が出てきて、困っている。
ライブラリのようにscriptタグで読み込んで準備完了とはいかないのか…?
とにかく数値と画面の同期ができるだけでいいんだけど
0978Name_Not_Found
垢版 |
2020/05/01(金) 02:38:10.88ID:???
描画系フレームワークに最低限の支援は付いてる
0979Name_Not_Found
垢版 |
2020/05/01(金) 08:37:37.89ID:???
>>946
内側の関数を、return しているから、それは何回も実行できるけど、
(1)(2) は、それに含まれていないから、1回しか実行されない

まさに、(1)(2)は、内側の関数の外側に存在して、
内側で参照されている・つかまれているから、クロージャ

内側の関数が存在する限り、その外側にある、つかまれている環境も存在しなければならない。
だから、GC で解放できない。
これが、クロージャがメモリを食う理由

クラス内のメンバー変数と同じ仕組み。
クラス内のメソッドの外側に存在する変数だけど、メソッド内で使える

つまり、クロージャは簡易クラスみたいなもの
0980908
垢版 |
2020/05/01(金) 08:43:10.84ID:???
>>904

>>908
にも書いたけど、下もある

たにぐちまこと
jQuery入門 2020 #06:非同期(Ajax)通信をしよう @
https://www.youtube.com/watch?v=dyBtH9NolIQ&;list=PLh6V6_7fbbo_CHSvYCwcgh2p79ybE5OCi&index=6

非同期処理、jQuery, Vue.js, Axios の比較
0981Name_Not_Found
垢版 |
2020/05/01(金) 08:55:14.33ID:???
>>969
異なるクラスは、異なるファイルに書いて、import/export などを使う

export 文は、モジュールから関数、オブジェクト、プリミティブ値をエクスポートするための、
JavaScript モジュールを作成するときに使用し、
これらは別のプログラムから、import 文で利用する

export default class { .. }

import myDefault from '/modules/my-module.js';
0982Name_Not_Found
垢版 |
2020/05/01(金) 09:15:49.96ID:???
>>977
VSCode, Node.js は必須。
Ruby on Rails でも使う

Node はサーバー側の実行環境。
これが無いと、ブラウザを実行環境にしないといけないから、テストが大変。
gulp・npm scripts などのテストランナーや、端末も使えない

ブラウザが実行環境の場合、webページは、ローカルPC 内のファイルにアクセスできないから、
Ruby を参考にして、Nodeが作られた

npm/yarn という、ライブラリの依存関係を解決する、パッケージマネージャーも使える。
Ruby のBundler と同じ

Webpack, Babel で、ES2015, TypeScript, SASS などを、
ブラウザで動く、HTML5 へ変換したり
0983Name_Not_Found
垢版 |
2020/05/01(金) 10:43:19.15ID:???
>>977
ライブラリだけで頑張るのもいいけど
SPAやりたいなら
vueなどのフレームワークに頼ってみるのもいいんじゃない?
0985Name_Not_Found
垢版 |
2020/05/01(金) 14:40:35.12ID:???
>>971,972,974,975,976,981
レスありがとうございます

やはり、あまりよくない書き方なんですね

まだクラスと言うものがまだよく理解できていなくて
canvas要素に多数のキャラクターを表示させ動かす200行くらいのプログラムをTypeScriptで書いて勉強しているのですが
canvasの初期化やベースの描画を行うスクリーンクラス→キャラクターのベースクラス→様々なキャラクタークラス
と継承させてグローバル変数なしでプログラムが書けないか試行錯誤している最中でした

クラスは設計図のようなものでそれ自体はインスタンス化されるまでプロパティを持たないため
例えばスクリーンクラスのプロパティを子要素でグローバル変数のように使いたい場合は
子クラスのコンストラクターのにスクリーンクラスのインスタンスを渡すか、
使い回したい変数を管理するクラスやオブジェクトを作るということでしょうか
0986981
垢版 |
2020/05/01(金) 15:18:32.05ID:???
>>981
に書いたように、export されたクラスを、import して、

import myClass from '/modules/my-class.js';

let obj = new myClass( );

何かを管理するようなクラスは普通、複数のインスタンスを作らない。
そういう場合は、複数のインスタンスが作られないように、シングルトンでも使えば?
0987Name_Not_Found
垢版 |
2020/05/01(金) 15:19:26.17ID:???
Node.jsはindex.htmlと同じとこにアップロードしたらサーバー側で動いてくれるもの?
0988Name_Not_Found
垢版 |
2020/05/01(金) 15:31:54.81ID:???
>>986
すいません
なぜ、例えばスクリーンクラスで作成したcanvas要素への参照を格納したプロパティに子クラスからアクセスするために
クラスを外部ファイルにしなければならないのかが理解できません
0989Name_Not_Found
垢版 |
2020/05/01(金) 16:23:00.82ID:???
JSの決まり事ではないのかもしれないけれど、
オブジェクト指向の他言語だと1クラス1ファイルが基本になっていることが多い。

あんたが書いている通りクラスを設計図みたいなものとして見た場合、
設計図はただの設計図、実際にインスタンス化して利用するのは実行用のファイル、というように整理(管理)することが多い。
工場(実行用のファイル)の中に設計図を持ち込んで、それをもとに実際のブツを造る、というようなイメージが近いかも。
現実でも設計図や料理のレシピにベタベタと実物が貼りついていることなんて基本的には無いでしょう?

んで、プロパティやフィールドといったクラスが持つ変数へのアクセスは、直接アクセスしても良いけど、メソッドを通して正しい手続きを用意して行ったりする。
>>986が書いているように、複数作るとおかしくなるものに関しては、常に単一の変数を参照できるようにシングルトンで実装するよ、という話だと思う。

小さいプログラムであったり、個人で書いている分には>>971も書いているように決まりは無いから好きに書けば良い。
0990Name_Not_Found
垢版 |
2020/05/01(金) 17:03:56.83ID:???
>>989
分かりやすく書いていただいてありがとうございます

しかし、TypeScriptのシングルトンは継承ができないらしく
例の場合のスクリーンクラス→キャラクタークラスの継承が不可能になるようです
スクリーンクラスとキャラクタークラスでは設計的な共通部分が少なくコンストラクタの相性も悪いため
そもそも継承すること自体が間違いな気がしてきました
0991Name_Not_Found
垢版 |
2020/05/01(金) 17:50:07.24ID:???
>>987
node.jsはサーバにインストールするもの
0992Name_Not_Found
垢版 |
2020/05/01(金) 17:54:59.93ID:???
>>991
レンタルサーバーに勝手にインストールして大丈夫なのだろうか、怒られないか
0993Name_Not_Found
垢版 |
2020/05/01(金) 18:02:21.60ID:???
>>992
レンサバではそもそもできないんじゃない?
0995Name_Not_Found
垢版 |
2020/05/01(金) 19:44:07.15ID:???
>>990
ここでのやり取りだけでは具体的にどう設計(実装)されているのかは計り兼ねるけど、
"本当に継承が必要な場合"でないなら継承は避けて、"委譲"するべき、という考え方がある。
そもそもシングルトンを実装されるようなクラスの場合は継承すべきではない、と個人的には考えている。

適切なクラス分けやどのようなアルゴリズムやアーキテクチャを採用するか、というのはすごく難しい課題(設計)なので、
結局のところ、今あんたが書いているプログラムが
 ・練習や趣味
 ・他人の手に渡らないプログラム
の様な小さな規模であるのなら、
>>971も書いているように好きなように(自分の分かりやすいように)書けば良い。

逆に、
 ・長期的にメンテナンスしながら運用
 ・他人の手に委ねるようなプログラム
ならば、
採用する環境や、適切なクラス分け、どのようなアーキテクチャやデザインパターン(要するに設計)から熟考すべきと思う。
0996Name_Not_Found
垢版 |
2020/05/01(金) 20:22:17.10ID:???
>>985
コンテキスト系は面倒でも毎回メソッドに渡すようにしたほうが良い
巨大で複雑になってくると絶対リファクタリングしたくなるよ
0997Name_Not_Found
垢版 |
2020/05/02(土) 05:15:36.46ID:???
>>994
ただ今時だったら
既にnode入ってるのもあるんじゃない?
0998Name_Not_Found
垢版 |
2020/05/02(土) 05:26:21.69ID:???
継承か、委譲(包含・部品化・インターフェース)か?
is-a, has-a

車・消防車は、親子関係の継承。
消防車は、車の一種。is-a

車・ハンドルは、has-a。
車はハンドルを持つ。
ハンドルは車の一種ではない
0999Name_Not_Found
垢版 |
2020/05/02(土) 10:02:30.27ID:???
色々試したいなら狭義のWeb的レンサバではなくKAGUYAみたいなクラウドサービス使ったほうが良いと思う
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 127日 15時間 9分 58秒
10021002
垢版 |
Over 1000Thread
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/

▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。

ニューススポーツなんでも実況