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

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

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

1 :デフォルトの名無しさん(ワッチョイ efff-U/Pn [183.76.238.232]):2017/04/02(日) 23:30:38.56 ID:Qcd0Qmy10.net
JavaScript を自ら学ぶ人のための質問スレッドです。
>>2-6のテンプレを読んだ上で質問してください。次スレは>>950>>2のテンプレ案(本スレで改善案があれば考慮)を元に立ててください

■質問を書く上で
(1) 煽り、コード制作依頼等、人を不快にさせる投稿はご遠慮下さい。公序良俗を守った応対を心がけてください。
(2) 他の人に迷惑をかけるスクリプトの質問はご遠慮ください。
  (ブラクラ、[戻る], [閉じる], [クリック] の妨害、画面占有など)
(3) 質問者及び議論を行う人はメール欄を空欄にし、名前にレス番を入れることを強く推奨します。回答者はなりすましを判断できませんので、なりすましが現れても自己責任となります。
(4) 常に自発的に調べる心構えを持ってください。
  具体的には「自分で調べてから質問する」「回答をもらってわからない単語があればGoogle検索してみる」など。
  わからない内容を代わりに調べてくれる回答者をお望みの方は余所で質問してください。
(5) 出来るだけ一般的な用語を使用してください。脳内オレオレ用語は混乱の元です。
(6) 出来るだけサンプルコードを掲示してください。言葉による説明は行き違いが生まれる場合があります。
  ※必ず「問題の事象が再現されること」を確認してください。
   必要な部分だけ切り出したつもりで現象が再現できていなかったケアレスミスがしばしば見られます。
(7) サンプルコードに HTML が含まれる場合は http://validator.w3.org/ で [Check] してみてください。
(8) 質問を具体的かつ詳細に書くと回答を得られやすいです。>>2の質問テンプレートを活用してみてください。
(9) ライブラリ関連の質問は禁止です。関連スレにあるライブラリ質問スレで質問して下さい。
(10) 時にはあなたが望む「答え」だけでなく、「意見」などが寄せられる場合もあります。

※前スレ
+ JavaScript の質問用スレッド vol.122 +
http://echo.2ch.net/test/read.cgi/tech/1472426483/
VIPQ2_EXTDAT: checked:vvvvvv:1000:512:----: EXT was configured

2 :デフォルトの名無しさん (ワッチョイ efff-U/Pn [183.76.238.233]):2017/04/02(日) 23:31:20.89 ID:J0EiWdZO0.net
■質問テンプレート
【環境】OS, ブラウザをバージョンと共に記入してください。(ex: IE8, Firefox4)
【何をしたのか】何をしたら問題の現象が発生するのか。再現手順を具体的に書いてください。
【エラーメッセージ】エラーメッセージがあれば正確に書き写してください。(Windows なら「コピット」を活用)
【期待する結果】最終的にどういう結果を望んでいるのか、を書いてください。
【サンプルコード】現象を再現可能な最小限のコードを書いてください。
 1レスに収まらないならコード投稿サイトを利用してください。
 http://jsdo.it/ http://jsbin.com/ http://jsfiddle.net/ http://ideone.com/

■前スレ
+ JavaScript の質問用スレッド vol.120 + [無断転載禁止]c2ch.net
http://echo.2ch.net/test/read.cgi/tech/1463914293/

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

■テンプレ案
https://fiddle.jshell.net/6018r9tu/1/show/light/

■関連スレ
JavaScript ライブラリ総合質問所 vol.5 [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/hp/1465399470/
JavaScript & jQuery 質問用スレッド vol.6 + [無断転載禁止]c2ch.net
http://echo.2ch.net/test/read.cgi/hp/1465566635/
【node.js】サーバサイドjavascript 4【io.js】 [無断転載禁止]c2ch.net
http://echo.2ch.net/test/read.cgi/tech/1460359714/
(X)HTML/CSS の質問に優しく答えるスレ23 [無断転載禁止]c2ch.net
http://echo.2ch.net/test/read.cgi/hp/1467511443/
Canvasについて語ろう
http://peace.2ch.net/test/read.cgi/hp/1305093769/

3 :デフォルトの名無しさん (ワッチョイ efff-U/Pn [183.76.238.234]):2017/04/02(日) 23:31:42.41 ID:eyqt1DHr0.net
■FAQ
http://fiddle.jshell.net/vSqKr/44/show/light/

◆開発者ツール(Developer Tools)の基本的な使い方 (全部はhttp://fiddle.jshell.net/vSqKr/44/show/light/#Browser-Developer-Tools )
 ▼諸注意
  - 本説明では Google Chrome の開発者ツールの名称に従います。他ブラウザで使う場合は適宜読み替えて下さい。
  - IE9- でコンソールを使うには予め開発者ツールを起動しておく必要があります(開発者ツールを起動しないと 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プロパティの算出値を表示(

4 :デフォルトの名無しさん (ワッチョイ efff-U/Pn [183.76.238.235]):2017/04/02(日) 23:32:04.43 ID:JvqUgcKr0.net
■FAQ(続き)
◆JavaScriptの実行速度
JavaScriptの速度は「ブラウザ名」「ブラウザのバージョン」「PCスペック」に依存します(ブラウザのバージョン毎に最適化具合が異なります)。
速度の疑問解消の為に http://jsperf.com/ にコードをUPしてブラウザ毎に速度計測する事を推奨します。
例外として、仕様における理論上の速度が明確になっている場合があります。
例えば、正規表現によるマッチング処理を考えた場合、「RegExp#test > RegExp#exec > String#match」は ES5 仕様で保証されています。
ES5 仕様において RegExp#test が最も処理数が少なく、String#match が最も処理数が多いことが明確だからです。
ブラウザによっては RegExp#test の最適化が十分でなく、String#match の最適化が RegExp#test より十分であれば逆転する可能性はありますが、各メソッドの最適化が一律であればこの前提が崩れる事はありません。

■各種仕様 ( http://fiddle.jshell.net/vSqKr/44/show/light/#Link も参照 )
◆ 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 和訳)

5 :デフォルトの名無しさん (ワッチョイ efff-U/Pn [183.76.238.236]):2017/04/02(日) 23:32:27.34 ID:9H7Qlx/w0.net
■各種仕様 (続き)
◆ Document Object Model (DOM) / CSS Object Model (CSSOM)
http://www.hcn.zaq.ne.jp/___/WEB/DOM4-ja.html (DOM Standard (DOM4) 和訳)
http://www.w3.org/TR/DOM-Level-3-Events/ (DOM3 Events)
http://www.w3.org/TR/uievents/ (UI Events)
http://www.hcn.zaq.ne.jp/___/WEB/cssom-ja.html (CSSOM 和訳)
http://www.hcn.zaq.ne.jp/___/WEB/cssom-view-ja.html (CSSOM View Module 和訳)
◆ その他のWeb関連仕様
http://domparsing.spec.whatwg.org/ (DOM Parsing and Serialization - innerHTML等)
http://www.hcn.zaq.ne.jp/___/WEB/XHR-ja.html (XMLHttpRequest 和訳)
http://www.hcn.zaq.ne.jp/___/WEB/File_API-ja.html (File API 和訳)
http://www.whatwg.org/specs/ (WHATWGの仕様一覧)
◆ MDN (Netscape/Mozilla)
https://developer.mozilla.org/ja/docs
◆ MSDN Library
https://msdn.microsoft.com/en-us/library/ie/hh828809 (Internet Explorer API)
http://msdn.microsoft.com/ja-jp/library/yek4tbz0.aspx (JavaScript)
http://msdn.microsoft.com/ja-jp/library/cc427807.aspx (JScript)
http://msdn.microsoft.com/ja-jp/library/cc409712.aspx (DHTML)
◆ JavaScript Garden (ja)
http://bonsaiden.github.com/JavaScript-Garden/ja/
◆ JSON (JavaScript Object Notation)
http://www.json.org/json-ja.html

6 :デフォルトの名無しさん (ワッチョイ efff-U/Pn [183.76.238.237]):2017/04/02(日) 23:34:03.16 ID:yMf85zTs0.net
姉妹スレ

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

+ JavaScript の質問用スレッド vol.129 + [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/hp/1456242505/

jQuery 質問スレッド vol.7 [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/hp/1478055094/

7 :デフォルトの名無しさん (ワッチョイ efff-U/Pn [183.76.238.238]):2017/04/02(日) 23:34:22.33 ID:/e4PIjSH0.net
テンプレ終了

8 :デフォルトの名無しさん (ワッチョイ efff-U/Pn [183.76.238.240]):2017/04/02(日) 23:43:11.66 ID:j3L/IfxA0.net
ワッチョイとは
BBS_SLIP
http://info.2ch.net/index.php/BBS_SLIP
スレ立て主が設定する事で、レスした人のIPアドレスからIDを変換して名前欄の横に表示が出ます。
荒らし対策という名目で広がったのですが、一言でいえば強制固定ハンドルネームのようなものです。
中段あたりに解説がありますが、浪人という名前の有料専用ブラウザを導入すれば、ワッチョイ表示なしで書き込む事も出来るようになります。

●注意点
ワッチョイ(SLIP)の変換は全板共通です。
IPアドレスから特定の法則で文字列に変換しているだけなので、IPアドレスが変わらない限り全部同じになります。
ですので、漫画板のワッチョイスレで○○かわえー、なんてレスした後、他のお硬い板のワッチョイスレで大議論になったり
なんかしてて議論相手にあなたのワッチョイのIDググられれば普通に他の板の書き込みがヒットします、
全く関係ないスレで別のスレの恥ずかしいレスを相手に突っ込まれたりする可能性があったりします。
これらを自覚してレスをしていないと、あるスレで下の名前をレスして、別の板のスレで苗字をレスして、
と...実は自分から身バレをしていたという可能性も無い訳ではありません。何万人もレスしてますからね、誰かがそういうポカをする事だってあり得ます。

変換自体は一週間でまた変わるので一生同じIDという訳ではないですが、注意しなければならないのはIPアドレスそれ自体が表示されているSLIPスレ。

IPアドレスは固定アドレスにしない限り変動すると思いがちですが、今は変動アドレスでも
殆ど固定と変わらない事が多いのです。下手をすればプロバイダ解約するまで同じIPアドレス。
IPアドレス表示されるスレに一度でもレスすれば、ワッチョイ=IPアドレスの関係がバレてしまうので
他のワッチョイスレでもIP表示で書き込んでる事と実質同じになってしまいます。
2週に渡ってIPアドレス表示のスレに書き込めば、ワッチョイIDは変わってますがIPは同じなので週を
跨いでも同じ人というのがバレますね。同じIPの過去のワッチョイIDをググればいくらでも過去に遡れる事になります。

9 :デフォルトの名無しさん (ワッチョイ efff-U/Pn [183.76.238.241]):2017/04/02(日) 23:44:59.15 ID:VQKc27JK0.net
掲示板を見れば閲覧者のIPアドレスは管理者にわかるので日常的に第三者に渡っている情報ですが、
2chのレスでIPが残る(Googleの検索に引っ掛かる)となると少し意味が違ってきます。
IPアドレスからは接続地域と回線種類くらいしかわかりません。それぞれが情報を持っていても
外に開示している情報ではないので個々の情報では価値が薄いのですが、2chにレスがあれば情報を共有できます。一つ一つは薄い情報でも繋げれば意味が出てきます。
また、IPアドレスと本名住所を元々知っている相手にはどうでしょうか?
まず普通に家族が家のIPをググったら2chのレスを見られますね。
あなたの2chの書き込みが全てわかる訳です。趣味嗜好、悩み等を書き込んでいれば筒抜け。
あなたの知り合いがふざけてこのIPの奴○○って奴だよ、と書き込む事だってあるかもしれません。
例えば本名IP掴んでる通販業者が2chググってレス見て病気で悩んでいたのが知れたらその情報を心霊治療の業者に流されたりする可能性だってあります。

まぁそういう可能性も無いとは言えないのでIP表示のスレだけは気をつけて下さい。
先にその危険性を知っていればレスの内容も気をつけるでしょうけど、現状はその危険性をそもそも全く知らずに呑気に匿名だと思ってレスしている人が大半なのです。

10 :デフォルトの名無しさん (ワッチョイ f2a8-zcaE [59.85.147.21]):2017/04/08(土) 00:59:32.54 ID:/cdCDPu40.net
ゴミ屑みたいなアンギュラ1.2の保守やらされて死にそう
今日も終電帰り
なにがSPAだ死ね

11 :デフォルトの名無しさん (ササクッテロル Sp57-410j [126.236.128.137]):2017/04/08(土) 04:20:53.67 ID:kzatgIpup.net
>>132
お前みたいなネトウヨがアベ糞の擁護してるんだな
俺は日本生まれの日本人市民だよバ〜カ
バカのひとつ覚えの国籍透視みっともねーな

12 :デフォルトの名無しさん (ワッチョイ edd8-ZLad [36.2.194.98]):2017/06/28(水) 13:02:29.11 ID:QB56clcA0.net
これ読んだけど、なんで関数内で設定されているのに
グローバル変数なのかわけわからん。
この言語設計したやつ頭おかしいわ。


関数呼び出しパターンの「this」はいかに…
関数呼び出しパターン
function show() {
console.log(this);
this.value = 1; // 注1
}
show(); // thisはグローバルオブジェクトをさす
この場合は「this」は「グローバルオブジェクト」を指してしまいます。
なので、注1の「value」は「グローバル変数」となります。
これを抑えておくのがポイントです。
次の例を考えてみましょう。

13 :デフォルトの名無しさん (ワッチョイ eb4b-q+YL [121.85.119.194]):2017/06/28(水) 13:24:39.86 ID:jRWvPNDP0.net
thisがグローバルオブジェクトを参照してるからthisのプロパティもグローバルになる
var hoge = {};
function fuga(){
hoge.hage = 1;
}
fuga();
を実行するとグローバル変数hogeが参照するオブジェクトに関数内でプロパティhageが追加されるが
hogeがグローバルだからhoge.hageもグローバルなのと同じ

14 :デフォルトの名無しさん (ワッチョイ 35a9-cBwf [218.221.143.177]):2017/07/04(火) 08:09:29.12 ID:G1Se2kAk0.net
そもそもただの関数にthis使う違和感はない?
そっちのほうが気になるけど

15 :デフォルトの名無しさん (オイコラミネオ MM96-cdfR [61.205.2.215]):2017/07/30(日) 13:27:23.77 ID:0zCGyZpbM.net
複数のテキストボックスの名前をhoge1、hoge2…とかつけて、数字部分を変数にして回そうとすると、evalの中身が超面倒くさい感じになるんだけど、そんなもんなの?

16 :デフォルトの名無しさん (ワッチョイ 2e6f-ZO1u [121.118.118.251]):2017/07/30(日) 14:14:20.78 ID:zJPw7vAu0.net
eval?

17 :デフォルトの名無しさん (ワッチョイ e123-cdfR [124.215.138.88]):2017/07/30(日) 15:15:18.38 ID:uMgAwl9u0.net
>>16
せめてググるぐらいしてから書き込め

18 :デフォルトの名無しさん (ワッチョイ 2e4b-l5iw [121.82.15.200]):2017/07/30(日) 15:49:56.33 ID:L4eXpSrk0.net
>>15
配列を使えばevalを使わないし多分めんどくさくない

19 :デフォルトの名無しさん (ワッチョイ 2e6f-ZO1u [121.118.118.251]):2017/07/30(日) 18:30:42.36 ID:zJPw7vAu0.net
>>17
いや
document.getElementById('hoge' + i)
やろ?
なんでevalと思って

20 :デフォルトの名無しさん :2017/09/13(水) 17:04:50.55 ID:6xoNDnWp0.net
Chromeのブラウザで←で戻るのと
onClick="history.back()で戻るのとでは仕様が少し違うようだ
上の方法で戻すボタンが作りたのだが何か良い方法はないだろうか

21 :デフォルトの名無しさん :2017/09/15(金) 00:06:49.27 ID:Ed3viw7ea.net
>>20
仕様がどう違うと思っているのだ?

22 :デフォルトの名無しさん :2017/09/15(金) 15:09:41.30 ID:rU1xFhYp0.net
上のは前の状態表示させているので情報はそのまま
下のは前のページを再表示しているので情報はリセットされている

23 :デフォルトの名無しさん :2017/09/17(日) 00:06:44.50 ID:+lojCGns0.net
いろいろ試しましたが難しいようです。
ChromeはショートカットキーのAlt+←で同じことができるのですが、
javaScriptでボタンのクリックでAlt+←と同じようなことはできるのでしょうか?

24 :デフォルトの名無しさん :2017/09/17(日) 12:17:26.41 ID:imu4JSFLM.net
>>23
出来ない
- 「任意のキー入力をエミュレート出来る」は「任意の動作を誘発させる」と同義で非常に危険
- [Alt] + [←] を誘発させる実装は [Alt] + [←] に別の動作を割り当てるな、と主張してるのと同義でユーザビリティが悪い

25 :デフォルトの名無しさん :2017/09/17(日) 19:53:01.24 ID:THymvUqj0.net
>>24
お前の思い込みを世間の常識みたいに語るなよ

26 :デフォルトの名無しさん :2017/09/17(日) 21:40:14.41 ID:imu4JSFLM.net
>>25
思い込みとは何のことだ?

27 :デフォルトの名無しさん :2017/09/19(火) 18:28:59.52 ID:wwWOD2e70.net
>>23
お返事遅くなってしまいすいません。
できないという事がわかっただけでも助かりました。
ありがとうございます。

28 :デフォルトの名無しさん :2017/09/19(火) 18:29:54.45 ID:wwWOD2e70.net
すいません。
上は>>24です。

29 :デフォルトの名無しさん :2017/10/06(金) 17:17:12.64 ID:TJk1AKwf0.net
そもそも違いなんてあるか?

30 :デフォルトの名無しさん :2017/11/11(土) 14:41:47.21 ID:o3JCbP+4a.net
Angularってどれくらいの勢力を誇っていますか
勉強する価値はありますか?
それともその内廃れて消えますか?

31 :デフォルトの名無しさん :2017/11/12(日) 04:45:54.55 ID:R+fVxE0p0.net
勉強なんて数日ありゃできるから気に入ったなら使ってみればいい

32 :デフォルトの名無しさん :2017/11/12(日) 18:38:18.63 ID:gQq+Xagd0.net
React>Vue>>Angular

33 :デフォルトの名無しさん :2017/11/19(日) 16:06:59.97 ID:ANnOsUYp0.net
投票です。

現在JavaScript関連にはまともなスレがありません。
新しいスレを立てた方がいいと思いますが賛同する方はいますか?

新しいスレの内容の条件

・JavaScriptだけを扱う(AltJSやBabelやTypeScript禁止)
・ブラウザのDOM APIだけを使う(jQueryなどのライブラリやフレームワーク禁止)
・サーバーサイド禁止(nodejsなど禁止)

34 :デフォルトの名無しさん :2017/11/19(日) 16:08:48.43 ID:ANnOsUYp0.net
賛同者が多ければ、新しいスレたてまーす

35 :デフォルトの名無しさん :2017/11/19(日) 16:22:04.41 ID:AZU6DnHQ0.net
Web制作板の荒らしの立てたスレを再利用しているスレから誘導で来た

新スレ(復活)には賛同するけど、以前ここに立っていたJS質問スレと同じ轍を踏む気がする
あれが落ちた原因はJS関連スレに長年巣食っている荒らしとは別の荒らしだったし

一応最後にまともなテンプレで立ってた最後のWeb制作とここの両スレを貼っておく

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

36 :デフォルトの名無しさん :2017/11/19(日) 17:11:11.54 ID:CDwPHEzDa.net
ここに書き込むのは久方ぶりだな。上に同じく、Web制作板の再利用スレか来た。

>>35
そのスレのテンプレ案がこちら。

Web制作板 vol.127 テンプレ案
http://fiddle.jshell.net/fH4cC/174/show/light/
プログラム板 vol.121 テンプレ案
https://fiddle.jshell.net/6018r9tu/1/show/light/

乱立スレの1もなかなか綺麗にまとまっていると思った。
https://mevius.5ch.net/test/read.cgi/hp/1501503056/1

37 :デフォルトの名無しさん :2017/11/19(日) 17:26:50.32 ID:CDwPHEzDa.net
>>35
> 新スレ(復活)には賛同するけど、以前ここに立っていたJS質問スレと同じ轍を踏む気がする
原因と対策を考える必要があが、あなたはどう考える?

前回の失敗は事実上1人にテンプレ案作成をまかせていて、その人が保守しなくなったからテンプレ維持がままならなくなった気がする。
- 苦言や提案はするけど、テンプレ作るのは面倒くさい
- 2chなんだから適当でいいだろ
こういうスタンスでは間違いなく破綻する。
最低でも、3人はテンプレ保守する人が必要だと思うな。

38 :デフォルトの名無しさん :2017/11/19(日) 17:29:24.70 ID:ANnOsUYp0.net
現在プログラム板にあるJavaScript関係の質問スレ

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

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

【node.js】サーバサイドjavascript 4【io.js】 [無断転載禁止]©2ch.net (2016/04/11- 882レス )
http://mevius.2ch.net/test/read.cgi/tech/1460359714/

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

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

+ JavaScript の質問用スレッド vol.123 + [無断転載禁止]©2ch.net (2017/04/02- 36レス )
http://mevius.2ch.net/test/read.cgi/tech/1491143438/

JavaScript 4(c)2ch.net (2014/12/05- 319レス )
http://mevius.2ch.net/test/read.cgi/tech/1417749547/

+ JavaScript の質問用スレッド vol.121 + [無断転載禁止]©2ch.net (2016/07/08- 10レス )
http://mevius.2ch.net/test/read.cgi/tech/1467906869/

jQuery,.js [無断転載禁止]©2ch.net (2016/09/13- 7レス )
http://mevius.2ch.net/test/read.cgi/tech/1473773598/

39 :デフォルトの名無しさん :2017/11/19(日) 17:34:25.31 ID:ANnOsUYp0.net
>>37
> 最低でも、3人はテンプレ保守する人が必要だと思うな。

その三人の中に裏切り者がいたらどうしましょうか?
まずその人が信頼できる人か素性を調べる必要があるのでは?
その上で公平な投票システムが必要でしょう
荒らしがIPアドレス変えて大量に投票したら意味ないですからね

40 :デフォルトの名無しさん :2017/11/19(日) 17:34:54.01 ID:CDwPHEzDa.net
>>33
> 新しいスレを立てた方がいいと思いますが賛同する方はいますか?
賛成。

> ・JavaScriptだけを扱う(AltJSやBabelやTypeScript禁止)
反対。
スレッドが埋まるほどAltJS質問が来るならともかく、現状分化する程の量はないと思う。
採用するなら誘導先のスレッドが必要。

> ・ブラウザのDOM APIだけを使う(jQueryなどのライブラリやフレームワーク禁止)
賛成。
ライブラリ荒らしがひどいので、ライブラリスレへ誘導すべき。

> ・サーバーサイド禁止(nodejsなど禁止)
微妙。禁止するなら、誘導先スレを決めるべき。
サーバサイドJavaScriptスレがあるならいいが、今あるのはnode.jsスレか。

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

41 :デフォルトの名無しさん :2017/11/19(日) 17:36:10.38 ID:ANnOsUYp0.net
あとそもそも疑問なんですが、テンプレをちゃんと管理していれば
スレの内容はテンプレしたがってくれるんでしたっけ?
運営と連携したブロックする仕組みが必要になるのかな?

42 :デフォルトの名無しさん :2017/11/19(日) 17:46:27.64 ID:CDwPHEzDa.net
>>39
> その三人の中に裏切り者がいたらどうしましょうか?
それは別の問題。
俺が危惧しているのは、あなたのいうところの「裏切り者」だけが存在し、良識あるテンプレ保守者がゼロの状態。
こうなると「裏切り者」がやりたい放題になる。

粘着質な荒らしはいつまでも5chに常駐していられるが、我々は人間だから疲れもするし、諦めもする。
あなたも今は元気な状態だが、今後もずっとテンプレ保守をして面倒になっても投げ出したりしない、とはいえないだろう。
一人が欠けても機能する為には、複数人での協力体制が必要。

43 :デフォルトの名無しさん :2017/11/19(日) 17:48:54.08 ID:ANnOsUYp0.net
> こうなると「裏切り者」がやりたい放題になる。

「やりたい放題」って具体的に何をやるんですか?
それを防ぐにはどうしたらいいのでしょうか?

44 :デフォルトの名無しさん :2017/11/19(日) 17:55:31.71 ID:ANnOsUYp0.net
3人の管理者には給料だした方がいいですかね?

45 :デフォルトの名無しさん :2017/11/19(日) 18:02:33.77 ID:CDwPHEzDa.net
>>41
勿論、テンプレだけ直してもダメだな。
5chでシステム的な強制力は期待できないので、基本的には利用するユーザの良識ある姿勢が必要になる。
模範となる人間が複数人いて、悪意あるユーザが荒らしても是正されたり、無視される文化(空気)がなければならない。
外部サイトになるが、https://ja.stackoverflow.com/questions/tagged/javascript にはそれがあるな。
昔の2chでは一時期その空気があったのだが、vol.115でlodashを啓蒙する荒らしが出たころからおかしくなった。
今、その空気を作り出す為には、最低三人の人間が回答/テンプレ保守に参加する姿勢が必要だと思う。

+ JavaScript の質問用スレッド vol.88 +
http://www2.atpages.jp/mirror/2ch/javascript/read.php/1308664388/

大分前のスレだが、この頃は比較的まともだった。

> 運営と連携したブロックする仕組みが必要になるのかな?
システム的な是正を問うなら、「他のフォーラムへ移行しよう」が結論になるだろうな。

46 :デフォルトの名無しさん :2017/11/19(日) 18:04:27.49 ID:ANnOsUYp0.net
なぜ三人の人間が必要なのでしょうか?
結論ありきで語ってませんか?

47 :デフォルトの名無しさん :2017/11/19(日) 18:06:32.16 ID:ANnOsUYp0.net
「他のフォーラムへ移行しよう」が結論で良いのでは?
だってテンプレだけを必死に守ったって
意味ないんでしょう?

48 :デフォルトの名無しさん :2017/11/19(日) 18:08:39.76 ID:AG+sglXv0.net
新スレ建てるのは別に良いと思う
ただ詳細なテンプレに従う行儀の良い奴は少ない
ecmascript&DOMオンリーくらいハッキリしたスレタイにしないと同じ轍を踏む事になると思う

49 :デフォルトの名無しさん :2017/11/19(日) 18:08:59.72 ID:CDwPHEzDa.net
>>63
例えば、次のシナリオが考えられる。

1. テンプレを改変してライブラリ許容したルールの新スレを立てる
2. 新スレで「なんでもかんでも、ライブラリを推奨するな」と苦情が来る
3. 1が「このスレのルールを守れ」と反論し、「jQueryがいかに有用か」を懇切丁寧に語る
4. 不毛な議論

Web制作板で現在進行形で起きている問題だな。

50 :デフォルトの名無しさん :2017/11/19(日) 18:11:10.34 ID:ANnOsUYp0.net
まず、

1. なにをするためにを書く
2. 案をだしてそれが有効な根拠を書く
3. そして最後に結論としてやることを書く

このスタイルで書いてくれないかな?

51 :デフォルトの名無しさん :2017/11/19(日) 18:12:07.28 ID:CDwPHEzDa.net
>>47
> 「他のフォーラムへ移行しよう」が結論で良いのでは?
では、「質問スレを立てる必要はない」があなたの結論?
質問ばかりであなたの考えがはっきりしないな。
あなたはどうすべきだと考えている?

52 :デフォルトの名無しさん :2017/11/19(日) 18:15:46.01 ID:CDwPHEzDa.net
>>50
>>45で書いた通りだが。

1. (目的) 荒らされない空気を作り出す為
2. (行動) 複数人の良識ある回答者/テンプレ保守者が定期的に投稿する
3. (結論) 同上

53 :デフォルトの名無しさん :2017/11/19(日) 18:19:07.84 ID:ANnOsUYp0.net
>>52
荒らされないことではなくて、
荒らされない「空気を作るだけ」ってこと?
空気作ったって荒らす人は荒らすでしょ?

54 :デフォルトの名無しさん :2017/11/19(日) 18:31:26.65 ID:CDwPHEzDa.net
俺が言いたいことは、「テンプレ(ルール)は守る人間がいて初めて機能する」という事。
テンプレがあっても守られなければ、「ここはテンプレ通りに質問/回答しなくていいのか、じゃあ好き勝手に質問/回答しよう」となる。

はっきりいって「テンプレなんて守る人はいない」という意識でいるなら、新しくスレを立てても上手くいかないと俺は思うぞ。
ルールを簡潔にしても守らない人は守らない。
ルールを率先して守る人間が複数人いて、ルールから外れた事を是正する働きかけがないと上手くいかない。
「最低、3人」といったのは1人が欠けても複数人(2人)で事に当たれるから。
スレに張り付いている荒らしと1対1になると持久戦で負ける。
お互いに生活リズムがあるのだから、生活リズムの異なる人間が複数人いるのが望ましいといえるが、それは難しいだろうな。

現状は「ルールなんて守る人はいない」「2chに何を求めているんだ?」状態の人が多いので、むやみに新スレだけ立てても上手くいかない、と俺は思う。
その空気を変える必要がある。

55 :デフォルトの名無しさん :2017/11/19(日) 18:35:13.14 ID:CDwPHEzDa.net
>>53
全員にルールを守らせるのは無理に決まってるだろう?
(それとも、あなたには全員にルールを守らせる素晴らしい案があるのだろうか)
日本人は空気に敏感だから、それを利用した方が良い。

あなたの考える「現在の 問題点」と「対策」を教えてくれ。
悪いが、質問攻めで疲弊するのを待っているようにも読める。

56 :デフォルトの名無しさん :2017/11/19(日) 18:43:39.45 ID:ANnOsUYp0.net
俺が言いたいのは手段が目的になってるんじゃないかってこと
目的を実現できないのに手段だけを作って苦労したって意味が無いだろ
目的が達成できない手段だから、その手段は廃れるんだよ
前の人がテンプレを管理しなくなったのも同じ理由
目的が達成できないのに仕事だけやらされて何もメリットがない

57 :デフォルトの名無しさん :2017/11/19(日) 18:52:02.15 ID:CDwPHEzDa.net
>>56
もっと具体的に頼む。
それと批判だけでなく、対案をいってくれ。
あなたの考える「現在の 問題点」と「対策」を教えてくれ。

58 :デフォルトの名無しさん :2017/11/19(日) 18:56:38.41 ID:ANnOsUYp0.net
現在の問題点、スレの内容が関係ない話で荒らされること
解決するわけがない問題は終わることもはないから延々と荒らされるだけ

対策、スレと関係ない話はどっか隔離スレでやってくれ、ここのように

59 :デフォルトの名無しさん :2017/11/19(日) 19:08:00.77 ID:CDwPHEzDa.net
>>58
> 対策、スレと関係ない話はどっか隔離スレでやってくれ、ここのように
何が対策なのか不明だが、スレ違いの話題が出る度に「スレと関係ない話はどっか隔離スレでやってくれ」とお願いするのか?
今までも適切なスレに誘導されて上手くいかなかったはずだが、どうしてそれが上手く機能する?

60 :デフォルトの名無しさん :2017/11/19(日) 19:11:16.76 ID:ANnOsUYp0.net
現にうまく機能してるよ。新しいスレ立てるか立てないかみたいな、
jQueryはJavaScriptとして認めるかどうかみたいな
意味がない議論は、こっちに誘導できた
元スレはJavaScriptに関係ある話だけになった

61 :デフォルトの名無しさん :2017/11/19(日) 19:16:32.68 ID:CDwPHEzDa.net
話が噛み合わないと思ったが、「なんでもいいからスレを立てさせて隔離スレとして利用させよう」という腹積もりの人か。
時間を無駄にしたな。

62 :デフォルトの名無しさん :2017/11/19(日) 19:22:40.32 ID:ANnOsUYp0.net
別に新しいスレを立てるに賛同するものが少なければ
立てなくていいと思うよ。少なくともここに隔離されてる分には
本スレは平和だからいい

63 :デフォルトの名無しさん :2017/11/19(日) 21:34:42.00 ID:oda4btU40.net
> ・ブラウザのDOM APIだけを使う(jQueryなどのライブラリやフレームワーク禁止)
反対

jQuery, lodash(Underscore) で、すぐに書ける事が多いので、便利。
JavaScript だけを使えとか、非効率な事で、時間を浪費させる奴がいる。
そいつが荒らし

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

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

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

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

64 :デフォルトの名無しさん :2017/11/19(日) 21:39:54.28 ID:oda4btU40.net
CSS の質問に、SASS で答えたら「死ね」とか、
新技術・新ライブラリで答えると、荒らしてくる奴がいる

新しい知識を邪魔しよる。
人に新技術を教えると、教えるなって荒らしてくる

教えると、自分が食えなくなるから、荒らしてくる

65 :デフォルトの名無しさん :2017/11/19(日) 22:02:08.40 ID:jY4FOG+m0.net
便所の落書き程度の内容に目くじら立てすぎ

66 :デフォルトの名無しさん :2017/11/19(日) 22:28:43.77 ID:4vEA1DleM.net
ちゃんとしたテンプレで建てるのはいいと思うけど
建てたところで間違いなくテンプレ無視したレスと煽りを繰り返された挙げ句に後半また改竄したテンプレでスレを乱立して乗っ取られるよ

同じことをもう5年くらい繰り返してるんだよ
5chのシステムだと常駐している荒らしに利用者が抵抗するのは無理

67 :デフォルトの名無しさん :2017/11/19(日) 22:46:41.75 ID:oda4btU40.net
荒らしは放っておくべき。
相手をする奴がいるから、いつまでも荒らしてくる

相手をしなければ、書くことが無くなるはずだが、
荒らしに反論するから、荒らしが喜んで書き込んでくる

68 :デフォルトの名無しさん :2017/11/20(月) 11:42:33.22 ID:VyTKZ5qIM.net
乗っ取られた、という考え方がもうすでに見当違い。
いつからお前のものになったのかと

69 :デフォルトの名無しさん :2017/11/28(火) 12:23:36.35 ID:lxdnA1vD0.net
最後にフォーカスがあったウィンドウのキャレット位置にテンプレートのテキストを書き込むアプリを作りたいのですがjavascriptで可能でしょうか。

70 :デフォルトの名無しさん :2018/02/16(金) 06:46:55.50 ID:W1XJdyx10.net
☆ 日本の、改憲を行いましょう。現在、衆議員と参議院の
両院で、改憲議員が3分の2を超えております。
『憲法改正国民投票法』、でググってみてください。国会の発議は
すでに可能です。平和は勝ち取るものです。お願い致します。☆☆

71 :デフォルトの名無しさん :2018/05/11(金) 08:34:24.43 ID:aEco1fjbM.net
仕事でIEのブラウザ上を普通にctrl cコピーしてExcelに貼ることが多いんだけど、セル一枠がクレジットカード番号のみ情報が混じってると勝手に16文字目が0にされてしまう
セルに直接クレジットカード番号打ち直せばいいんだけど、いちいち結構な手間になってしまう
特にブラウザのCSSのデザインもExcel上に残したいからなおさら

Excelのフォーマットの文字列に該当する設定ってJavaScriptでできたりする?

72 :デフォルトの名無しさん :2018/05/11(金) 10:03:04.34 ID:yUktgmmn0.net
あの、すみません、スレチだったり、既出だったらゴメンナサイ。

CSSでID=AAAを「display:none;」にしてある状態(今このDivは非表示になってます)で、
Javasceipt側で

function Button() {
 document.getElementById('AAA').style.display = 'block';
 alert('OK');
}

これでHTML側のButton()を実行すると、

ChromeとFireFoxでは先にアラートが出て、アラートを閉じるとAAA属性のDivが表示される。
IEだと意図した通りAAA属性のDivが表示されてからアラートが出る。

ChromeやFireFoxで意図した通りの動作をさせる工夫などはできますでしょうか?
ちなみにアラートの手前に疑似Sleepを5秒とか挟んでもダメでした。
document.get〜〜〜の部分を、同じ記述を10行連続で書いてもダメでした。

どうぞ宜しくお願いします。

73 :デフォルトの名無しさん :2018/05/11(金) 11:28:21.90 ID:yUktgmmn0.net
72です
すみません、自己解決しました。

74 :デフォルトの名無しさん :2018/05/11(金) 16:36:05.22 ID:avRTxrQg0.net
疑似sleepをどうやって作ったのかが気になる

75 :デフォルトの名無しさん :2018/05/12(土) 03:41:37.50 ID:hwxaPbIq0.net
JS の話題は、この板よりも、

web制作管理板の方へ書き込んで

76 :デフォルトの名無しさん :2018/05/12(土) 03:45:24.23 ID:eof7Lg4H0.net
>>74
無限ループっぽくすればできるよ

77 :デフォルトの名無しさん :2018/05/23(水) 19:25:54.79 ID:Au5e7VGg0.net
僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』

FKHQT

78 :デフォルトの名無しさん :2018/06/30(土) 06:33:23.34 ID:N4Bz9b1e0.net
ようやくリリース来たね
http://www.ecma-international.org/publications/standards/Ecma-262.htm

79 :デフォルトの名無しさん :2018/07/05(木) 01:55:13.62 ID:RfoszcD20.net
F15

80 :デフォルトの名無しさん :2018/08/07(火) 04:43:19.27 ID:xLB66AnX0.net
すいません。
frameの取得方法で教えてください。
var frame = document.getElementsByName("header")[0].contentWindow.document;
frame.getElementById('main').value;//取得できる

frame.getElementsByName('tdBody')[0].innerText;//取得できない

この違いは何でしょうか。どちらもページ内埋め込みフレームですが、getElementsByNameのほうはこのメソッド自体使えないと出てしまいます。

81 :デフォルトの名無しさん:2019/02/05(火) 04:46:22.39 ID:kWJBisTJ9
先輩方よろしくお願いします。
https://www.youtube.com/watch?v=DIVfDZZeGxM&index=2&list=PLillGF-RfqbbnEGy3ROiLWk7JMCuSyQtX
この動画(コードがディスクリプションにあります)の中でこのような記述があります。以下はinnerHTMLにアペンドする際javascriptでHTMLを記載する際の1行です:

' <a onclick="deleteBookmark(\''+url+'\')" class="btn btn-danger" href="#">Delete</a> ' +
deleteBookmark関数に変数urlを渡す際に「(\''+url+'\')"」と記述するのはなぜでしょうか?動画の中では「ちょっとここ変だけど」としか説明されていません。
エスケープするのは分かるのですが、関数(この場合はdeleteBookmark)にjs内のHTMLから変数を渡す際のルールを教えてくれませんでしょうか?

82 :デフォルトの名無しさん :2019/04/21(日) 18:38:01.87 ID:XAIRd91T0.net
Windows8.1 64bit 環境での質問です
JScriptはjavascriptではないと言われそうですが、この環境では

let i = 0;

のようなコードは全てエラーになると考えて良いのでしょうか?


また
var stdout = WScript.StdOut;
for ( var i = 0; i < 5; i++ ) {
stdout.Write("i ");
stdout.writeline(i);
//stdout.writeln(i);
}
stdout.writeline(i);
で5を表示するような挙動はECMA Scriptでは一般的でしょうか

83 :デフォルトの名無しさん :2019/05/04(土) 12:56:56.84 ID:adnCRUw60.net
https://www.atmarkit.co.jp/ait/articles/0904/20/news124_2.html
> 例えば、WebブラウザでJavaScriptを実行する場合には、
セキュリティ上の制約でJavaScriptからクライアントマシン上のファイルを
読み込んだり、書き出したりすることはできません。

しかし、ファイルシステムAPIというのが検索すると出てきます。
現在のJSの「できること、できないこと」は何ですか?

84 :デフォルトの名無しさん :2019/05/04(土) 13:36:33.55 ID:adnCRUw60.net
もう一つ質問です。
JSは通信に関する制限があるようですが、
オフラインで動作するデスクトップアプリに近いようなもの(ブラウザで動いても良い)を
作ったとして、それも通信が制限されますか?

85 :デフォルトの名無しさん :2019/05/04(土) 14:08:37.00 ID:cfO7GTAv0.net
JSはIOも持たないスクリプト言語だからそれだけでは何もできない
何ができるかはどんな外部APIが与えられてるかによる

86 :デフォルトの名無しさん :2019/05/04(土) 14:37:28.46 ID:j+k4q4Y+0.net
>>83
ローカルでどうのこうのはnode.jsを調べてくれ
言語の問題じゃない

87 :デフォルトの名無しさん :2019/05/04(土) 15:21:23.82 ID:adnCRUw60.net
質問し直します。

WEBブラウザ上で動作するJSはlocalhostとのHTTP通信ができますか?
その他どんな制限がありますか?

88 :デフォルトの名無しさん :2019/05/04(土) 15:52:03.60 ID:cfO7GTAv0.net
それはもちろんWebブラウザによる
これは意地悪で言ってるわけではなく本当にブラウザによってポリシーや機能は様々だから
気になるブラウザスレで聞いたほうが良い

89 :デフォルトの名無しさん :2019/05/04(土) 16:06:09.43 ID:adnCRUw60.net
もう一つ聞きたいです。

GitHubでJSが非常に人気があるようです。
https://githut.info/

言語人気ランキングによっては7位。
https://www.tiobe.com/tiobe-index/

これが意味する事は使ってる人は少なめだけど活発に使っているという事になりますか?
JSにこれほど人気がある理由は何だと思いますか?

90 :デフォルトの名無しさん :2019/05/05(日) 00:45:28.67 ID:tvdtPjB+0.net
この板には、あまり回答者がいないから、
詳しくは、この板よりも、web 制作管理板のJavaScript スレの方へ、書き込んでください!

>JSは通信に関する制限があるようですが
JS も、Ruby などと同じで、単なる言語です。
その言語の実行環境には、基本的なものしか含まれていないので、たいした事は出来ない

JSの実行環境には主に、ブラウザ・Node.js の2つがある

ブラウザはセキュリティーが厳しいので、
各ブラウザで機能は異なるが、基本的には、ローカルPC・クロスドメインにはアクセスできない

ローカルPC内のHTML を、ダブルクリックすると、ブラウザで見れる。
jQuery も使える。
これぐらい単純なら出来る

一般的には、ローカルファイルにアクセスするには、
実行環境にNode.js を使った、Electron などで作る。
VSCode も、Electron製

91 :デフォルトの名無しさん :2019/05/05(日) 02:10:00.63 ID:VtQYfSta0.net
>>89
基本的に言語というのはどれでもいい。
大抵のことはどの言語でもできる。

ただ稀にこの言語でなければダメという理由がある。
(他の言語でも不可能ではないが大きく不便になる)
その理由は言語そのものではなくて、言語を取り巻く環境にある。

JavaScriptもその一つ。ブラウザでそのまま動く言語はJavaScriptしかない。
他にも機械学習系のライブラリが揃ってるのはPythonだし、
Linuxでカーネルやドライバを作ろうと思ったらC言語しかろくにサポートされてない。
これらは言語の差じゃない。環境の違い。

今はウェブサービスの開発が主流なので、それにうまくハマってるのがJavaScriptというわけ

92 :89 :2019/05/05(日) 02:32:25.11 ID:tvdtPjB+0.net
Ruby, Python など、多くの言語では、ローカルファイルアクセスなどのライブラリも、
最初から、その言語の標準ライブラリに入っている

これを、battery included と言う。
製品を買ったら、電池も入っていること

ところが、JS では、言語に標準装備のライブラリが少ないから、
各人で、誰かが作ったライブラリを探さないといけない

ブラウザ・Node.js, Electron, Cordova, jQuery とか、各人で機能を調べる

まあ詳しくは、この板よりも、web 制作管理板のJavaScript スレの方で、聞いてください!

93 :デフォルトの名無しさん :2019/05/05(日) 20:03:49.62 ID:yGiei76k0.net
> Ruby, Python など、多くの言語では、ローカルファイルアクセスなどのライブラリも、
> 最初から、その言語の標準ライブラリに入っている

それは利点でも有るが、JavaScriptが対象とするブラウザでは逆にデメリットとなる
なぜならセキュリティの観点からローカルアクセスできてはいけないからだ。

ブラウザのための言語だから当たり前ではあるが、
こういう点もJavaScriptでなければいけない理由になってる。
かつてはブラウザでRubyなどを動かそうという計画もあったんだ

94 :デフォルトの名無しさん :2019/05/06(月) 08:25:29.89 ID:r9zJcDQk0.net
連休最後でやっと自主学習できます。
よろしくお願いします。
値が入っている場合と、入っていない場合の判定なのですが

var val=20;
if(val){alert(val);}

------------------
var val;
if(!val){alert(null);}

という真偽判定で問題なく稼働しますか?
誤作動したりしないでしょうか?

95 :デフォルトの名無しさん :2019/05/06(月) 08:38:39.09 ID:XhX25YODM.net
web作成板に行きなボーイ

96 :デフォルトの名無しさん :2019/05/07(火) 17:11:26.08 ID:bWNU7R7F0.net
>>90
> JSの実行環境には主に、ブラウザ・Node.js の2つがある

cscript さんの存在も
たまには思い出してください


えっ
古くさくて誰も顧みない?

97 :デフォルトの名無しさん :2019/05/07(火) 17:45:56.58 ID:bWNU7R7F0.net
hta: ボクはブラウザ上で実行される環境だけど、知名度ほとんどないし、まれに出て来てもウィルス扱いだよぉ

98 :デフォルトの名無しさん :2019/05/08(水) 23:28:03.48 ID:PvsGTftQ0.net
>>94
> という真偽判定で問題なく稼働しますか?
> 誤作動したりしないでしょうか?

0とかをどう扱う仕様かによるかと
https://developer.mozilla.org/ja/docs/Glossary/Falsy
とか見るとよいかも

99 :デフォルトの名無しさん :2019/05/12(日) 13:25:33.21 ID:4nx2To9cr.net
ム板にspreadsheetのスレって無いんだな

100 :デフォルトの名無しさん :2019/05/16(木) 00:32:29.55 ID:tjD61nda0.net
だれだよ Web 管理制作板へ誘導した奴

マウントばっかりしてマトモに回答しないクズの巣じゃねえか
知恵袋へ誘導した方がまだマシというか、知恵袋だと運営に通報されてBANだろアレ

101 :デフォルトの名無しさん :2019/05/16(木) 06:56:43.56 ID:s5lihM+Nr.net
jsスレは質問者が酷いからまともに回答する人はほぼいなくなった

102 :デフォルトの名無しさん :2019/05/16(木) 09:28:35.68 ID:+WwLqBdS0.net
うるせえteratailでも行ってろ!

103 :デフォルトの名無しさん :2019/05/16(木) 11:09:06.27 ID:tjD61nda0.net
質問者に「それだけでは返答できない」と確認を促し
答えたら「1行返答」とかいうのがマトモな回答?

104 :デフォルトの名無しさん :2019/05/16(木) 12:06:09.08 ID:BUJhrwgQ0.net
この板のJS スレは、本来の場所じゃない。
web制作管理板のスレが荒らされて、この板に緊急避難しただけ!
もうこの板には、住民はいない

荒らしも、この板にやってきた。
スレタイに、jQuery, Lodash, ライブラリの話は禁止って書いて、スレ立てする奴

漏れらは、荒らしの立てたスレに書き込まないように誘導したり、荒らしを排除しようとした

今はこちらの板で、Ruby禁止って書いて、スレ立てしてる。
くだすれPython(超初心者用) その43【Ruby禁止】

今は、あちこちのスレで、Ruby 死ねとか書き込んでる

とにかく、荒らしと会話しないこと。
荒らしに反応すると、ずっと居座るだけ

105 :デフォルトの名無しさん :2019/05/16(木) 12:23:00.17 ID:s5lihM+Nr.net
>>103
https://mevius.5ch.net/test/read.cgi/hp/1555750241/829 のことかな
使うか使わないかのYes/No質問だしおかしくはないと思うけど

106 :デフォルトの名無しさん :2019/05/16(木) 12:37:50.39 ID:M/ddkVVC0.net
>>103

「来週の休日どこに行く?」
「来週の休日の天気を言わなければ返答できない」
「え?天気?晴れるんじゃないかな?」
「水族館に行こう」
(天気関係ないじゃん)

こういう感じなw

なんで天気聞いたのか追求すると、今度は台風だったらとか
極論言い出したりするし「晴れなら〜雨なら〜」という
答えかたをすることもできない。

一種のコミュニケーション能力不足かな
質問に対して、唯一の正解を答えるものだと思っている
だからすべての条件を先に聞き出し(後から言うと怒り出す)
返答は自分が考えた唯一の正解だけ(他の候補は間違い扱い)だから一行になる

107 :デフォルトの名無しさん :2019/05/16(木) 23:18:13.54 ID:+WwLqBdS0.net
>>106
ローカル君wwww
ム板でも元気にガイジパワー発揮!w

108 :デフォルトの名無しさん :2019/05/16(木) 23:43:32.63 ID:bssc8EEh0.net
必死チェッカーもどき
http://hissi.org/read.php/tcg/20190403/UjBqN1Q2aDIw.html

【報酬制カード】DUELEAGUE【デュヱリーグ】90
325 :名無しプレイヤー@手札いっぱい。 (ワッチョイWW 9fb1-PIOM [221.91.136.7])[]:2019/04/03(水) 11:15:34.81 ID:R0j7T6h20
とりあえず其の頬に流れてる嫉妬まる出しグショ泣き悔し涙ふけよクソ漏らし>>323負・け・イ・ヌ( ´∀`)σ)Д`)

【報酬制カード】DUELEAGUE【デュヱリーグ】90
330 :名無しプレイヤー@手札いっぱい。 (ワッチョイWW 9fb1-PIOM [221.91.136.7])[]:2019/04/03(水) 17:26:25.26 ID:R0j7T6h20
俺は運営の思考分かるよ

お前みたいな害悪野郎に書き込んでほしくないんだよ

109 :デフォルトの名無しさん :2019/05/17(金) 12:44:41.69 ID:5yXwvpw50.net
あんな奴が許容されがちだから「コミュニケーション能力のある人」が求められるんだよ。

>>105
たしかに Yes / No question に対する返答としては「文法的には」正しい。

しかし、そもそも相手に補足情報を要求しておいてアレは無い。
一般的に、「過去の状況・現在の状況・将来の見通し」くらいの返答は、社会通念上、期待される範囲。
まして相手に補足情報を要求した以上、自身も「当然期待されているであろう」返答を返すべきだよ、社会通念上。

110 :デフォルトの名無しさん :2019/05/17(金) 17:00:32.07 ID:iNSpWQN90.net
>>108
必死チェッカーで反撃した気分になってるのカ・ワ・イ・イ♥

111 :デフォルトの名無しさん :2019/05/17(金) 20:11:06.84 ID:5yXwvpw50.net
「人を憎んで罪を憎まず」ってことだからな

112 :デフォルトの名無しさん :2019/05/17(金) 20:57:13.33 ID:r1fGMmwur.net
>>109
社会常識を問うなら、質問者にもそれなりの社会常識があるべき
https://mevius.5ch.net/test/read.cgi/hp/1555750241/833 は新たな「さすがに」を生み出しいるだけで何の返答にもなっていない
端的な質問に端的な回答を返されるのは自業自得

113 :デフォルトの名無しさん :2019/05/18(土) 00:07:55.85 ID:ZrO4zGTX0.net
…生産性ゼロの発言して楽しい?

114 :デフォルトの名無しさん :2019/05/18(土) 20:58:10.90 ID:3xvYFUWfF.net
生産性を考えるなんてつまらないことだよ

115 :デフォルトの名無しさん :2019/05/18(土) 21:04:18.33 ID:ZrO4zGTX0.net
RFC1149(イヤナンデモナイ

116 :デフォルトの名無しさん :2019/05/19(日) 15:21:39.30 ID:dLV4jWSc0.net
>>94
> 値が入っている場合と、入っていない場合の判定

http://blog.tojiru.net/article/205007468.html
そのまんまなページだな…コレで「不足ある」って気付いた人が居たら教えていただきたいものだわね

117 :デフォルトの名無しさん :2019/05/19(日) 15:37:44.32 ID:dLV4jWSc0.net
可読性に関しては void 0 ってCのキャストっぽくて分かりやすいかもしんない

118 :デフォルトの名無しさん :2019/05/19(日) 18:24:38.02 ID:jyVnriUQ0.net
ははっ。 2011年の記事じゃん。void 0 とかもはや過去のもの
undefinedとの比較はundefinedと比較すればいい。
void 0とか使わんでいいよ

119 :デフォルトの名無しさん :2019/05/19(日) 22:00:42.37 ID:dLV4jWSc0.net
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/undefined
> While it is possible to use it as an identifier (variable name)
> in any scope other than the global scope (because undefined is not a reserved word),

バカ対策は基本的に入れといた方が良いとおもう(私見
100%オレオレコードなら問題ないだろう

120 :デフォルトの名無しさん :2019/05/20(月) 03:49:09.84 ID:g68Ac+XT0.net
バカがいるとしたら、バカに気づくことが重要なのであってバカを隠すことではない

お前は、undefinedを変更するコードがあったとして、
そんなコードが入ってるものを安心して使えるか?

121 :デフォルトの名無しさん :2019/05/20(月) 17:17:31.88 ID:VU00A0n20.net
>>120
100%オレオレコードだったり、その部分を書き換えても問題ないのであれば
「書かない」「書き換える」はアリでしょ

122 :デフォルトの名無しさん :2019/05/24(金) 21:30:29.52 ID:DoRS/4HK0.net
イベントハンドラを使うときにhtmlに書くと

<button id="btn" onclick="func();">クリック</button>
関数名()と実行まで書くのに

イベントハンドラをJavaScript内に書くと
document.getElmentById("btn").onclick=func;と関数名だけで()を付けないのは何故ですか?

onclick=func;←これは、イベントハンドラ(onclick)に関数を代入をしてるんですか?

そもそもイベントハンドラは属性ということで、もう何をやってるのかよく分からなくなってて、
これは理屈抜きで覚えるべきですか?

お願いします

123 :デフォルトの名無しさん :2019/05/24(金) 22:58:59.71 ID:iaDShfK2a.net
>>122
理屈も覚えるべきだろう
https://www.google.com/search?q=onclick+%E3%82%B3%E3%83%BC%E3%83%AB%E3%83%90%E3%83%83%E3%82%AF%E9%96%A2%E6%95%B0+addeventlistener+%E6%8B%AC%E5%BC%A7+-site%3Asejuku.net

124 :デフォルトの名無しさん :2019/05/25(土) 07:47:58.32 ID:FkX8hFOL0.net
>>123
ありがとうございます。

初学本を終えた段階でコールバック関数について全く知りませんでした

詳しく読んでみます

125 :デフォルトの名無しさん :2019/05/25(土) 13:07:15.19 ID:yzyBLtFl0.net
>>122
無名関数のことかしら

あと、こんにちでは var を新規で積極的に使う意味は無いとおもう

・プログラミング疎いので全部 let にする
・基本的に const を使い、結び付けられる対象となる値が変化する可能性がある場合のみ let を使う

あたりが方針としてベターだと思う
Hoisting とかクソでしょ

126 :デフォルトの名無しさん :2019/05/25(土) 13:09:46.07 ID:yzyBLtFl0.net
foobar.onclick = function ...

とあったら「ああ、無名関数のことね」でスルーしてよし、と

127 :デフォルトの名無しさん :2019/05/25(土) 20:19:18.66 ID:3c9sJ6MS0.net
ホイスティングがクソという理由を述べよ
いいじゃんKOOLな機能だと思うけど?
なんでクラスはホイスティングされないんだろうなあ

128 :デフォルトの名無しさん :2019/05/25(土) 22:17:01.85 ID:XvQPNj6a0.net
>>125
どこからvarがでてきた?
それにどこにも無名関数のことなど書かれていてないようだが…

129 :デフォルトの名無しさん :2019/05/26(日) 15:33:48.96 ID:W10tX16pM.net
俺は女が買いたいんだ!おっぱいおっぱい!

130 :デフォルトの名無しさん :2019/05/26(日) 15:44:40.60 ID:l5IzIEQ20.net
Javascriptはウェブ板へって書いてあるのにな。

131 :デフォルトの名無しさん :2019/05/27(月) 13:26:21.97 ID:BM/UqAnC0.net
>>130
あっちの現状を分かっていて、その上で敢えて発言しているのかしらん

132 :デフォルトの名無しさん :2019/05/31(金) 00:19:02.96 ID:Cb7G0CcH0.net
度々の質問で申しわけありません

google chromeのデベロッパーツールを使っているのですがコンソールにjavascriptのメソッドなどを表示していたらエラー
faild to load resource:err_failedと表示され
それ以来ブラウザを閉じてもファイルを削除しても chromeをインストールし直してもエラーが消えず数ヶ月間騙し騙し使っていたのですが
今度はjqueryを使うとchromeのデベロッパーのsources画面のbreak pointsに黄色い文字でエラーが表示されて固まるようになり
やはり新たにjqueryをダウンロードしても変わらず、色々試したところ
jqueryのファイルをjqueryという名前のフォルダーから出して
<script src=jquery/jquery.〜>→<script src=jquery.〜>
このようにsourceを変えたところエラーが出なくなったのですが、どうしていいのかちょっと分からなくて
このスレの趣旨とは違うかもしれませんが詳しい方がいれば教えて頂きたいです

おそらくコンソールのエラーと同じでパソコンの方に記録が残ってしまっているのが原因だと思うのですが
アドバイスをいただければ嬉しいです

パソコンはMacでosはMojaveです

133 :デフォルトの名無しさん :2019/05/31(金) 00:22:15.26 ID:Cb7G0CcH0.net
パソコンはMacでosはMojaveです

お願いしますm(__)m

134 :デフォルトの名無しさん :2019/06/01(土) 02:55:40.47 ID:Xek9EwMI0.net
console.log("Hello, world!");

は動くんだろうな?

135 :デフォルトの名無しさん :2019/06/02(日) 01:02:45.52 ID:4INaUA9H0.net
>>134
chromeを開いて最初のページ(chromeのホームページ?)上でデベロッパーツールからコンソールを開いて
そこにjavascriptの関数や文を直接コピペしていたらエラーが出て
それからそのページでコンソールを開くとエラーが表示されるようになりましたが
ただ、別のページでコンソールを開くとエラーの表示は出ません
今はchromeを開いてGoogle.co.jpに移動してそこでコンソールを開いて使ってます

かなり次元の低い質問をしてると思いますが、どういう状態なのか散々調べたのですが分からないんです^^;

スレの趣旨と違うのでこの質問はこれでやめますm(._.)m

136 :デフォルトの名無しさん :2019/06/02(日) 02:50:58.82 ID:Ajv++wtF0.net
とるあえず閲覧履歴全削除でキャッシュクリア

137 :デフォルトの名無しさん :2019/06/02(日) 08:03:33.34 ID:zfmIH2Wv0.net
>>135
から
console.log("Hello, world!");
が動くのか否か判別ができない

<!doctype html>
<html>
<head><meta charset=”utf−8”></head>
<body>
<script>
console.log(”Hello, world!”);
</script>
</body>
</html>

が動くかどうか、だけの問題なのに

138 :デフォルトの名無しさん :2019/06/02(日) 08:04:05.86 ID:zfmIH2Wv0.net
コレなら charset=us-ascii でも行けるか

139 :デフォルトの名無しさん :2019/06/03(月) 00:03:05.29 ID:gVwmYwdG0.net
>>136
履歴を消したりアンインストールしてもダメでした

>>137
すみません、それなら問題ありません hello worldと表示されます^^;
自分で作ったhtmlファイルをchromeで開いてコンソールを表示した場合もエラーは出ません

エラーが出るのはchromeを起動して初めに表示されるページ、トップページ?でコンソールを開いた場合だけです。そのページでだけコンソールにエラーが表示されます


同じような現象がjqueryで起こってしまったので原因が気になり質問しました

ありがとうございました。いざとなったらパソコンを初期化します

140 :デフォルトの名無しさん :2019/06/03(月) 18:31:15.92 ID:+eb4McoS0.net
「トップページ」が悪いだけじゃん

ブラウザも javascript も jQuery も問題は無かろう
jQuery の古いバージョンは知らんけど、たぶん

<script src=”http://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js”></script>
<script src=”http://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js”></script>

とか書くぶんには問題ないんじゃね

141 :デフォルトの名無しさん:2019/06/06(木) 09:28:33.44 ID:7PasqtOL.net
テスト

142 :デフォルトの名無しさん:2019/06/06(木) 09:30:48.54 ID:7PasqtOL.net
1クリックで文字をコピーできるプログラムを作りたいのですが、Androidでしか動かないプログラム、iOSでしか動かないプログラムがあります
どうにか共通化させたいのですが、教えて頂けないでしょうか
https://dotup.org/uploda/dotup.org1865674.txt

143 :デフォルトの名無しさん :2019/06/06(木) 10:36:50.66 ID:fXMCZ+fj0.net
共通化しなくていいやん

144 :デフォルトの名無しさん :2019/06/06(木) 11:53:32.33 ID:l8NOJW7w0.net
iOS用の方でaddRangeする前にremoveAllRangesする

145 :デフォルトの名無しさん:2019/06/06(木) 15:32:42.95 ID:7PasqtOL.net
教えて頂いたとおり、window.getSelection().removeAllRanges();を追加したらAndroid iOSどちらでも動きました!
ありがとうございます!

146 :デフォルトの名無しさん :2019/06/06(木) 16:11:09.57 ID:LQgeHIgB0.net
いいってことよ(´・ω・`)

147 :デフォルトの名無しさん :2019/06/06(木) 17:33:16.19 ID:Qxsak61t0.net
>>139
トップページでコンソールを開くと、エラーになるのは、
例えば、回線が遅くて、Ajax で読み込むデータが、まだ到着していないとか?

例えば、5ch を開いても、広告の読み込みでエラーになることもある

148 :デフォルトの名無しさん :2019/06/06(木) 20:20:12.65 ID:vks0COQh0.net
スピードダイヤルは普通のwebページじゃないから…

149 :デフォルトの名無しさん :2019/06/11(火) 18:38:53.24 ID:vib91KXZ0.net
初歩的な質問で申し訳ありません
https://qiita.com/takkyun/items/c6e2f2cf25327299cf03
こちらを読んでいたら、序盤にある以下のコードの意味がよくわからずでして

function test() {
console.log(this)
}

var obj = {} //(1)
obj.test = test //(2)
obj.test() // => {test: ?}

(1)
1つ下の行でobj.testとしていますが、なぜこれが許されるのでしょうか?
var obj = { test : 'てすと' }; とかになっているのならわかるのですが、
objは中身は空っぽで、ドット演算子で繋げられるの何も無いですよね?

(2)
左辺のtestと右辺のtest、どちらが function test( ) なのでしょうか?
また、testとtest( ) の違いは何なのでしょうか?(後者は関数なのはわかるのですが、かっこ無しの場合がわからずでして)

よろしくお願いします。

150 :デフォルトの名無しさん :2019/06/11(火) 18:52:05.71 ID:6xCanE8hr.net
>>149
悪いが、なぜobj.testに代入が許されないと思っているのか、理解出来ない

var obj = {};
obj.test = 1;
console.log(obj);

と何も変わらないと思うが、このコードも理解できない?

151 :デフォルトの名無しさん :2019/06/11(火) 19:04:23.38 ID:vib91KXZ0.net
>>150
ありがとうございます
すみません、ダメだと勝手に思っていました
実行してみたのですが、その場合はobjのオブジェクトとしてtestが登録?されるのですね

(2)の方は、左辺のobj.testのtestは変数で、右辺のtestがfunction test() ということで、
(2)は obj = {test : function test( )} になったということですか?

152 :デフォルトの名無しさん :2019/06/11(火) 19:59:25.40 ID:/ckGx9mb0.net
>>149
const func = test;
const ret = test();

console.log(typeof func);
console.log(typeof ret);

の結果を読むと参考になるかもしんない

153 :デフォルトの名無しさん :2019/06/11(火) 20:19:37.39 ID:/ckGx9mb0.net
"this" の挙動で悩ましい・悩ましかった部分については

var self = this

でググると色々分かるとおもう

154 :デフォルトの名無しさん :2019/06/12(水) 08:18:21.06 ID:0T71Qniwr.net
>>151
言葉で説明するよりも、コンソールデバッグや要所にbreakpointを設定して確かめる方がわかりやすいと思う

var obj = {};
console.log(test);
console.log(obj.test);
obj.test = test;
console.log(obj.test);

おそらく、基礎的な知識が足りてないので、「オブジェクト初期化子」「オブジェクト」「プロパティ」をキーワードにリファレンスをあたってみるべき
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Operators/Object_initializer
横着して、基礎を疎かなままに、入門している印象がある

155 :デフォルトの名無しさん :2019/06/12(水) 12:30:14.19 ID:vXZu8+ru0.net
便乗質問なんだけど、一般論として

const obj = {};
obj.test = 1;

とか書いたとき、

・前者は「オブジェクト初期化子」と呼ばれる
・後者は「プロパティ」を新たに定義して、値を結び付けている

という理解でok?

156 :デフォルトの名無しさん :2019/06/12(水) 12:47:51.89 ID:0T71Qniwr.net
>>155
概ね、その理解でいいかと
呼び名に関しては、アクセサ、ドット記法、ブラケット記法などあるが
https://tc39.es/ecma262/#sec-property-accessors

157 :デフォルトの名無しさん :2019/06/12(水) 13:13:57.48 ID:vXZu8+ru0.net
>>156
ご返答ありがとうございます。

ちなみに

>>149
> 1つ下の行でobj.testとしていますが、なぜこれが許されるのでしょうか?

これって、Cの構造体とか、C++ / Java のクラス定義からのインスタンス生成あたりが念頭にある気がするんですけど
気のせいですかねえ…。

158 :デフォルトの名無しさん :2019/06/12(水) 13:34:09.25 ID:vXZu8+ru0.net
https://paiza.io/projects/XNcmQ1UsoTrp11cEdW7nYQ

これでいきなり p.test = 1; とか書いたらコンパイルエラーになるっしょ

159 :デフォルトの名無しさん :2019/06/12(水) 22:43:10.82 ID:u6W2+u+x0.net
違う言語だもの

160 :デフォルトの名無しさん :2019/06/12(水) 23:06:46.69 ID:BQdPzZx+0.net
>>149
> 1つ下の行でobj.testとしていますが、なぜこれが許されるのでしょうか?

>>150
> 悪いが、なぜobj.testに代入が許されないと思っているのか、理解出来ない

この一連の流れ、ちゃんと読んでる?
質問者の自然な感覚としては obj.test が許される理由が分からんと言ってるんだよ
「そういう考え方が何故出て来るのか」って話だよ

161 :デフォルトの名無しさん :2019/06/13(木) 10:04:10.06 ID:BF3Tm3uUd.net
javascriptは何でもありだからなあ。

162 :デフォルトの名無しさん :2019/06/20(木) 00:28:57.80 ID:iJJms4bW0.net
ホームページのドロワー部分で躓いています。
ドロワーが開いているときに、iosでも背景を固定してかつドロワーはスクロールできるようにするにはどうすればいいでしょうか?
ネットで探して試したことは、
event.preventDefault();をpassive: falseで使うやつ。(ドロワーもスクロールできなくなるので却下)
overflow:hidden;(iosだと効かない)
position:fixed;(スクロールが一番上に移動してしまうので却下)
です。

あとは、「ドロワー以外のtouchmoveではスクロール量を変化させない」という方法で出来ないかとやってみたのですがうまくいきませんでした。

163 :デフォルトの名無しさん :2019/06/20(木) 07:18:00.12 ID:So5aQwHx0.net
>>155
var obj = { };
obj.test = 1;

これは、Singleton

そのインスタンスだけに、そのプロパティを作った。
そのインスタンスだけに、そのプロパティは存在する

同じだけど、下のように書いた方が、わかりやすい

上だと、インスタンスの外部から設定したように見えるが、
下では、内部で設定したように見える。
あくまでも、印象に過ぎないけど

var obj_2 = { test: 1 };

>>162
この板よりも、web制作管理板のスレの方へ、書き込んで!
この板のスレは、向こうのスレを荒らされて、緊急避難用に作っただけなので、見てる人が少ないから

164 :デフォルトの名無しさん :2019/06/20(木) 07:33:26.10 ID:A8TT12fta.net
>>163
>>157で解決済
向こうは荒れてるから、こちらで質問されても全く問題ない

165 :デフォルトの名無しさん :2019/06/21(金) 00:50:19.10 ID:h1wQF7Na0.net
test

166 :デフォルトの名無しさん :2019/06/21(金) 00:53:12.91 ID:CWdRTwZC0.net
za

167 :デフォルトの名無しさん :2019/06/26(水) 00:13:18.62 ID:kt7frSjI0.net
質問です。setTimeout内で引数渡しのある即時関数の書き方を教えてください。
下のコードでは"F1="+i+"<BR>"が1秒ごとにwriteされるようにしたいのですが、
待ち時間なしで処理されてしまいます。

F0(0);
function F0(stage){
if(stage<5){
setTimeout((function(i,j){
F1(i,stage);
})(stage*2,stage), 1000);
}else{
document.write("end");
}
}
function F1(i,j){
document.write("F1="+i+"<BR>");
j++;
F0(j);
}

168 :デフォルトの名無しさん :2019/06/26(水) 00:38:45.47 ID:OukDf0at0.net
>>167
色々言いたいことはあるけど

>function(i,j){
> F1(i,stage);
>})(stage*2,stage)
即時実行してるから当然の結果

ちゃんと渡し方があるから↓読んで
setTimeout(function,delay,stage*2,stage);
https://developer.mozilla.org/ja/docs/Web/API/WindowTimers/setTimeout

169 :デフォルトの名無しさん :2019/06/26(水) 04:22:30.93 ID:7Iy6MpfG0.net
>>167
こういうこと?

let id_interval;
let i = 0;

const p = document.createElement("p");
document.body.appendChild(p);
p.innerHTML = "";
const show = function() {
if (i === 5) {
p.innerHTML += "end<br>";
clearInterval(id_interval);
} else {
p.innerHTML += "F1=" + i * 2 + "<br>";
i++;
}
}
id_interval = setInterval( show, 1000);

170 :166 :2019/06/26(水) 22:30:11.20 ID:J30P6jfD0.net
>>168のリンクの通り4〜6行目を
setTimeout(function(i,j){
F1(i,stage);
}, 1000,stage*2,stage);
にしたら動きましたー
単なる構文間違いですね…

171 :デフォルトの名無しさん :2019/06/27(木) 09:21:42.75 ID:fQHO+2au0.net
>>170
せめて document.write 使うのは止めよう

https://jsbin.com/bupupay/edit?html,js,output
たとえばこんな感じ(これも、innerHTML 使ってる上にサニタイズしてないから、本来はあんまり良くない)

172 :デフォルトの名無しさん :2019/06/27(木) 10:12:39.75 ID:fQHO+2au0.net
https://jsbin.com/sakuwif/edit?html,js,output

「サニタイズ」とか意識しなくて良く、また、都度で <div> を入れているので <br> 不要なのがコレ

173 :デフォルトの名無しさん :2019/06/27(木) 20:38:38.32 ID:LMazrfctd.net
document.write なんて何年ぶりに見たかな。
タイムスリップしてきたのかよ。

174 :デフォルトの名無しさん :2019/06/30(日) 10:29:23.95 ID:fZGHIByLa.net
>>172
> setTimeout(function(i, j){
>  F1(i, stage);
> }, 1000, stage*2, stage);
どう見ても無名関数式が無駄と思うが、無名関数式を使うべき理由があるだろうか
https://jsfiddle.net/gc0f8ev5/

汎用性を上げるならこう
https://jsfiddle.net/cyuLj0qg/

175 :デフォルトの名無しさん :2019/06/30(日) 13:53:46.21 ID:THYklFdH0.net
>>170 までの流れを見ると end 即時表示希望にみえる
end 表示まで1秒かかってません?

176 :デフォルトの名無しさん :2019/06/30(日) 13:59:18.64 ID:THYklFdH0.net
あと const とか使うなら

variableName + ' = ' + i * multiple

`${variableName} = ${i * multiple}`

とか

177 :デフォルトの名無しさん :2019/06/30(日) 14:58:27.84 ID:KLBxkGT0a.net
他人に指摘する前に質問に答えるのが先と思うのだが

>>175
修正した。
https://jsfiddle.net/6gj37qvr/

>>176
Polyfillで吸収不可能なIE11非対応機能は使用していない

178 :デフォルトの名無しさん :2019/06/30(日) 15:02:36.29 ID:THYklFdH0.net
>>177
元質問者のコードから document.write 消しただけだが?
わたしゃ知らんがな

179 :デフォルトの名無しさん :2019/06/30(日) 15:12:50.60 ID:1phNYyF+a.net
>>178
質問者のコードは即時関数で>>170が無名関数式を使用したように読めるが…

あと、他人に指摘はするが、自分に指摘されたら「知らんがな」はあまりにも誠意がない
より良いコードを追求するが故の改善案と認識していたが、あなたには違う目的があるのかもしれないと思い始めてる
Web制作板の「ワッチョイ **8f」と同じ人ならいうだけ無駄かもしれんが

180 :デフォルトの名無しさん :2019/06/30(日) 15:16:59.04 ID:Xr7FFEwba.net
× 質問者のコードは即時関数で>>170が無名関数式を使用したように読めるが…
〇 質問者のコードは即時関数で>>171が無名関数式を使用したように読めるが…

181 :デフォルトの名無しさん :2019/06/30(日) 16:36:21.06 ID:THYklFdH0.net
逆引きすると eaccess

182 :デフォルトの名無しさん :2019/07/01(月) 00:35:59.51 ID:EBI1AAR2r.net
165.82.91.58.in-addr.arpa name = p117165-ipngn4601funabasi.chiba.ocn.ne.jp.

inetnum: 58.88.0.0 - 58.95.255.255
netname: OCN
descr: NTT Communications Corporation
descr: OTEMACHI PLACE WEST TOWER 2-3-1 Otemachi Chiyoda-ku,Tokyo 100-8019 Japan

183 :デフォルトの名無しさん :2019/07/05(金) 18:33:03.43 ID:RUF6TsjL0.net
上から目線だった割にダンマリか

184 :デフォルトの名無しさん :2019/07/13(土) 02:17:04.73 ID:P33eZqk80.net
https://leetcode.com を始めました。
そこで、質問です。

var toLowerCase = function(str) {
const length = str.length
let str_result = ""
for (let i = 0; i < length; i++) {
const char_code = str.charCodeAt(i)
if ((0x41 <= char_code) && (char_code <= 0x5a)) {
str_result += String.fromCharCode(char_code + 0x20)
} else {
str_result += String.fromCharCode(char_code)
}
}
return str_result
}
console.log(toLowerCase("Hello"))
console.log(toLowerCase("here"))
console.log(toLowerCase("LOVELY"))

こんなコードを書くのは少数派でしょうか?

Runtime: 52 ms, faster than 75.91% of JavaScript online submissions for To Lower Case.
Memory Usage: 33.8 MB, less than 39.71% of JavaScript online submissions for To Lower Case.
だそうで、効率は良いっぽいのですが…。

185 :デフォルトの名無しさん :2019/07/13(土) 02:23:13.18 ID:P33eZqk80.net
質問age

186 :デフォルトの名無しさん :2019/07/13(土) 13:09:30.00 ID:P33eZqk80.net
+ JavaScript の質問用スレッド vol.141 +
https://mevius.5ch.net/test/read.cgi/hp/1562318008/215

「マルチイクナイ」防止

187 :デフォルトの名無しさん :2019/07/13(土) 13:53:56.27 ID:iFENtaMCa.net
>>184
「少数派」は統計の媒体依存なので、回答不可
質問の意図が全く分からない
主流とか流行とかなら気にする必要は全くない

188 :デフォルトの名無しさん :2019/07/13(土) 16:08:39.17 ID:P33eZqk80.net
アルファベット26文字に対する変換問題のようです

配列なりハッシュテーブルなりを使うのが一般的回答かもなあと思いまして。
どのような別解があるのか、と。

189 :デフォルトの名無しさん :2019/07/13(土) 16:13:41.95 ID:GYG1iQvda.net
>>188
別解はいくらでもある
質問範囲が広すぎる

'ABCdefGHI'.replace(/[A-Z]/g, Function.prototype.call.bind(String.prototype.toLowerCase))

190 :デフォルトの名無しさん :2019/07/13(土) 16:22:58.73 ID:GYG1iQvda.net
>>188
> 配列なりハッシュテーブルなりを使うのが一般的回答かもなあと思いまして。

要件次第でいくらでも変わるコードに「一般解」を求める事が愚策だと思う
「主流」「一番使われる書き方」「現場での書き方」の質問全てにそう思う

191 :デフォルトの名無しさん :2019/07/14(日) 10:50:06.44 ID:ZHLRDDy6a.net
>>188
https://mevius.5ch.net/test/read.cgi/hp/1562318008/229

> 229 215 (ワッチョイ 7e8f-XC/u)2019/07/14(日) 09:32:34.14ID:c8hg/KPq0
> >>223
> プログラム板に別解があるようだが、あれで満足?
>
> うーん
> どこからどう見ても練習問題なのに…

「練習問題」という条件はなかったし、具体的な要件は掲示されていなかった
そして、「練習問題」という要件が何を表すのか全く示されていない
後出しで条件追加するぐらいなら初めから全てを「具体的に」書いてくれ

それから、マルチポストしたなら、全てのマルチポスト先で進捗結果を報告してくれ
https://ja.wikipedia.org/wiki/%E3%83%9E%E3%83%AB%E3%83%81%E3%83%9D%E3%82%B9%E3%83%88#%E5%A4%B1%E7%A4%BC%E3%81%AB%E3%81%AA%E3%82%89%E3%81%AA%E3%81%84%E6%96%B9%E6%B3%95

192 :デフォルトの名無しさん :2019/07/14(日) 11:14:56.21 ID:QCCP5GQI0.net
text に含まれる改行位置で分割して、それぞれの行の文字数を図りたいです。
繰り返しが上手く組めません。宜しくお願いします。

193 :デフォルトの名無しさん :2019/07/14(日) 11:27:30.89 ID:ZHLRDDy6a.net
>>192
「出来上がっているコード」や「繰り返しの何を理解して、どこが理解できないのか」を示していない時点でコード制作依頼にしか読めないが…
'abc\ndefg\nhijkl'.split(/\n/).map(s=>s.length); // [3, 4, 5]

194 :デフォルトの名無しさん :2019/07/14(日) 16:29:44.23 ID:QCCP5GQI0.net
それはすみません

bodyがフィーム送信されたテキストとしまして
var line = body.split("¥n");
var cline =0;
これを繰り返し展開し  length > ○○ で cline++;
したいのですが、javascriptの繰り返しがどうしても理解
できないのです。

195 :デフォルトの名無しさん :2019/07/14(日) 17:08:22.63 ID:QCCP5GQI0.net
全く理解できないけど
for ( var i = 0; i < line.length; i++ ){
if(line[ i ].length > 長さ){
cline++;
}
}

で長さを超えている行数が獲得できました。
結局mapは使えませんでしたが、有り難うございました。

196 :デフォルトの名無しさん :2019/09/11(水) 12:29:38.26 ID:MLxC+C0x0.net
js のfor文はまじでゴミだから使わないほうがいいよ

197 :デフォルトの名無しさん :2019/10/02(水) 19:50:54.77 ID:N+fsnVWC0.net
Acrobatのスタンダード版で、Javascriptを使おうとすると、
この機能はライセンスに含まれていないと表示され、使えません。

実際、プロとスタンダードの比較表を見ても、後者では使えないことになってるのですが、
なぜか、コマンドボタンに書いたJavascriptは使えます。

一体何が違うのでしょうか?

198 :デフォルトの名無しさん (ワッチョイ 6552-ndj0 [118.243.40.87]):2019/10/13(Sun) 13:12:43 ID:KO9wMRnb0.net
https://mohayonao.hatenadiary.org/entry/20111108/1320756534

ここでやっているようなプログラムを作っても別タブを開いている間は止まります。
同じような経験をしていらっしゃる方いませんか?

workerの部分を別ファイルを使っても、blobを使って単一ファイルにまとめても
同じようになります。

https://qiita.com/mohayonao/items/b4f713bf8ab9de8907f1
ちなみにここのやつをそのままコピーしてやっても、workerありでも
無しでも同じような結果になりました。

199 :デフォルトの名無しさん (ワッチョイ 6552-ndj0 [118.243.40.87]):2019/10/13(Sun) 21:59:21 ID:KO9wMRnb0.net
197ですが、情報が少なすぎました。

200 :デフォルトの名無しさん (ワッチョイ 6552-ndj0 [118.243.40.87]):2019/10/13(Sun) 22:04:01 ID:KO9wMRnb0.net
ブラウザはChrome、Operaと試しました。
workerも使えない。上記のカウンターを数えるだけのプログラムですが
別タブに行くとworkerがあろうとなかろうと、タイマーが止まってしまいます。
何かいい方法ないでしょうか。
ちなみに誰か、これらのプログラムを試してみて成功した方いらっしゃいませんか?
というより、プログラムは動くので、別タブに行ってもタイマーが止まるかどうか気になります。

201 ::2019/10/13(Sun) 23:50:22 ID:vCIvkSJf0.net
qiitaのやつのBlobBuilderのところをBlobを使うように修正して動かしてみたけど、タブの切り替えでしっかりカウンターがずれて表示されたよ

202 :デフォルトの名無しさん :2019/10/14(月) 00:16:28.97 ID:qXl8FtHN0.net
そりゃ、テトリスなどのゲームをプレイしていても、
別タブへ移動したら、ゲームは止まる。
そして戻ってきたら、止まっていた所から始まる

フォーカスを失うと、アクティブ(フォアグラウンド)プロセスじゃないから、CPU スライスが割り当てられない!
GUI では、アクティブなプロセスは、常に1つだけ

バッググラウンドでも動き続けるには、バッググラウンドプロセスにする。
それか、worker スレッド

この板のこのスレは、web制作管理板が荒らされたときに立てた緊急避難用スレで、今は使われていません!
web制作管理板のJavaScript のスレへ、移動してください!

203 ::2019/10/14(Mon) 01:02:16 ID:BvwKSjSca.net
使われていない、は誇大表現

204 :デフォルトの名無しさん (ワッチョイ 6552-ndj0 [118.243.40.87]):2019/10/14(Mon) 06:14:41 ID:sewBjWGo0.net
>>201-202
ありがとうございます。
条件とかを無視してBlobbuilder() をBlob()に換えただけですが
ずれて表示されませんでした。
worker使ってもタイマーは止まったまま。
web制作管理板の緊急避難スレとのことでそちらに移動しますね。

205 ::2019/10/15(Tue) 19:12:53 ID:T3rV/Bv4a.net
Node.jsで普通のJavaScriptライブラリを使いたい場合は
どうすればいいのでしょうか?

206 ::2019/10/15(Tue) 20:26:19 ID:vw6XmgDra.net
>>205
ライブラリ自体は大きいのですが使っている関数が一つだけだったので
それをexportする処理をライブラリ末尾に加えることにしました

207 :デフォルトの名無しさん :2019/11/05(火) 20:35:01.78 ID:5aM3HiNlM.net
変数がnullだったら
プログラムを停止させる
ようにするには
どうしたら良いのでしょうか?

208 :デフォルトの名無しさん :2019/11/06(水) 08:15:45.88 ID:OMUD4Mtcr.net
>>207
if arg === null throw new TypeError

209 :デフォルトの名無しさん :2019/11/12(火) 15:38:30.38 ID:8eof7ZBb0.net
ES6の導入後って、プレースホルダーを使わないただの文字列でも
とりあえず全部バッククォートで囲んでしまっていいのでしょうか……?

210 :デフォルトの名無しさん (スップ Sd7a-Tjez [49.97.100.119]):2019/12/08(日) 09:13:34 ID:Zz4LoxFtd.net
forEachのループ順ってインデックスの順番と一致が保証されてますか?

211 :デフォルトの名無しさん (ブーイモ MM7a-F/t0 [49.239.68.141]):2019/12/08(日) 16:43:16 ID:I8sMvbYLM.net
>>210
MDNくらいは見てから質問しようぜ

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach

212 :デフォルトの名無しさん (スップ Sd7a-Tjez [49.97.100.119]):2019/12/09(月) 07:21:26 ID:OnUQvyFpd.net
>>211
初期化されてない要素はスキップされるんですね
知りませんでした、有り難う御座います

213 :デフォルトの名無しさん (ワッチョイ 5a2c-+J45 [219.162.234.204]):2019/12/09(月) 17:09:29 ID:+FpDkG8n0.net
JavaScript の質問は、web制作管理板の方へ書き込んでください!

この板のこのスレは、web制作管理板のスレが荒らされたときに、
緊急避難用として立てたもので、向こうの方が本当のスレです!

214 :デフォルトの名無しさん :2019/12/19(木) 12:42:06.08 ID:/4qn7A36r.net
ずっと、Web制作板に誘導してる奴がいるが、俺はどちらに書いてくれても構わん
ID出てくれた方が安心感はある

215 :デフォルトの名無しさん :2020/02/15(土) 10:53:01.82 ID:TiEPdFSJ0.net
最近canvas(2d)を勉強している関係で、勉強がてら自分でライブラリを少しずつ作ろうと
思ったのですが、何を描画するにもコンテキストが必要ですよね
汎用的な描画関数を書く場合、必ず引数にコンテキストを与える必要がでてくるのですが
どの描画関数にも同じ引数を常に渡すのはかったるい…かといってグローバル変数に
コンテキストが定義されている前提でライブラリの関数を書きたくない…

といった場合、何かすっきり解決する方法はあるのでしょうか?
ライブラリをクラスにしてプロパティにコンテキストを持たせるくらいですかね

216 :214 (ワッチョイ ab5f-oFCC [106.73.72.193]):2020/02/17(月) 10:17:26 ID:Wzb8VqtA0.net
解決しました
やっぱクラスしかないですね

217 :デフォルトの名無しさん :2020/02/29(土) 06:47:52.40 ID:mVNyKwOHd.net
forループ文で
for(var i=0; i<5; i+=0.1){}
これだとiが5を超える前でループを抜けますが

for(var i=0; i<5; i+=1>>2){}
このようにビットシフトを使うと無限ループになってしまうのは何故ですか?

お願いします

218 :デフォルトの名無しさん :2020/02/29(土) 06:50:31.88 ID:mVNyKwOHd.net
無限ループになってしまうのは何故ですか?

お願いします。

219 :デフォルトの名無しさん (スッップ Sd5a-TmTD [49.98.140.14]):2020/02/29(土) 11:53:15 ID:mVNyKwOHd.net
自己解決しました
何度0を足しても0ですよね
ビット演算とか分からん

220 :デフォルトの名無しさん :2020/02/29(土) 12:38:22.32 ID:M0mcpz9x0.net
ビット演算って難しいですよね!!!
だれかビット演算のまとめお願いします!!!
ここで直書きで説明お願いします!!!

221 :デフォルトの名無しさん (ワッチョイ 8f02-Y96Y [114.16.82.189]):2020/03/01(日) 13:30:18 ID:SX/qa6HC0.net
ブラウザ側JavaScriptで
簡単にsync化する方法ありますか?
オブジェクト指向化が難しすぎる。
非同期メソッドをクラス内で使った時に
this(このインスタンス的な意味で)を
参照するのが難しすぎます。

222 :デフォルトの名無しさん (ワッチョイ 3a2c-rVtL [219.162.234.204]):2020/03/01(日) 22:59:36 ID:NSpMdQYF0.net
非同期は、文脈(コンテキスト)が異なるから、
this とか、例外もキャッチできないだろ

非同期を同期的に書けるのは、async, await。
ちょっと前は、promise だった

JavaScript の質問は、この板ではなくて、web制作管理板の方へ書き込んでください!
この板のスレは以前、荒らしが出たときに、緊急避難用に立てたものだから

223 :デフォルトの名無しさん :2020/04/15(水) 05:54:30.29 ID:+ql6+04R0.net
windowを新規オープンしてから、SetIntervalで60秒に一回関数を呼んで異なるURLに遷移させているのですが、どうも上手く動きません
Windows7 FireFox 7.5.0 64bit

メイン
winObject = window.open("about:blank", "_blank","");
winObject.location.href = "https://www,google.com/"; ← ここまでは動く

https://blog.hello-world.jp.net/javascript/3822/
こういう記事をみつけたんで、(iOS9じゃないけどだめもとで)インターバルで呼ぶ関数内の記述を
winObject.location.href = url;
から
setTimeout(function() { // 次のイベントループで処理
winObject.location.href = url;
}, 100);
にしてみたところ、chromeでは動くようになったもののFireFoxでは動かず

JavaScriptは初心者なもんで、こっちの記述が悪いのかどうかFireFoxが悪いのか判断できず
どうなんでしょう?

224 :デフォルトの名無しさん :2020/04/15(水) 07:07:58.29 ID:OHQRQza90.net
ユーザインタラクション以外から触って効くんだっけ?

225 :デフォルトの名無しさん (ワッチョイ 5161-BqNS [60.39.11.193]):2020/04/15(水) 17:04:32 ID:RzJA8PqV0.net
Firefox75以降のバグのような気はするけど同一オリジンでなくなった時点でlocation効かなくなるな

226 :デフォルトの名無しさん (ワッチョイ 9301-IHcq [221.88.230.3]):2020/04/16(木) 10:08:39 ID:s+KHkjW/0.net
>>225
FireFoxなんですかね
FireFoxのちょっと前のバージョンだと、遷移部分をlocation.url=ではなくて毎回windows.openにしてても新規にウィンドウ開くことなく同じ
ウィンドウで新しいURLを開けてたんですよ。JavaScriptの仕様的にそれがおかしいから直したら、ついでにバグ入れちゃったのかなあ?

227 :デフォルトの名無しさん :2020/05/03(日) 21:36:56.65 ID:4npkj+7k0.net
JavaScriptって関数のネスト地獄だと思うんですが、何かいい解決策ってあるんですか?(*´ω`)

os.cpus().forEach(cpuInfo => {
fs.appendFile(dataPath, `${cpuInfo.model}\n`, () => {
// ここに追加で色々処理を書くと、関数のネストがひどくて後々つらくなるのでは?
});
});

forEachとかappendFileを使わなくて書く方法は知ってるけど、今回はサンプルなのでわざと使ってるYo!

228 :デフォルトの名無しさん :2020/05/03(日) 21:45:02.73 ID:zP3ZF/rE0.net
引数に関数リテラルを書いてネストが深くなるのが嫌なら外で定義すればいい

229 :デフォルトの名無しさん :2020/05/04(月) 23:00:12.61 ID:CBUb3t9r0.net
javascriptでandroidアプリ作れるって聞いたんだけど
仕組みはどうなってんの?
ブラウザでキャッシュにプログラム全部落として実行ってこと?

230 :デフォルトの名無しさん (オッペケ Sre5-uNVC [126.133.200.176]):2020/05/04(月) 23:04:22 ID:8w+RiBVnr.net
>>229
javascript android 仕組みでぐぐれば出てくるけど、どうなってんの?
なんにも調べてないの?

231 :デフォルトの名無しさん (ワッチョイ ab61-A5SY [49.253.78.66]):2020/05/04(月) 23:24:39 ID:CBUb3t9r0.net
>>230
そんなことを書くためだけにレスしたの?アホなの?

232 :デフォルトの名無しさん (ワッチョイ 2901-uNVC [126.163.163.60]):2020/05/04(月) 23:51:06 ID:Y30cj42h0.net
>>231
君がアホということは皆分かってるから、そう喚くなよ

233 :デフォルトの名無しさん (ワッチョイ 0b2c-aEdY [153.194.236.234]):2020/05/05(火) 02:27:53 ID:rwJ86+M00.net
この板のJavaScript のスレは、荒らし対策で緊急避難用に作られたもの。
web 制作管理板のスレへ書き込んだ方がよい

こちらには、荒らししかいない

荒らしは必ず、2回書き込む。
自分のレスに、リンクを付けて「そうだよな」みたいに自演する

多くの人が言ってるように見せかける。
午前、3時とかでも、同時に2つのレスを書くw

234 :デフォルトの名無しさん (オッペケ Sre5-+JgD [126.133.200.176]):2020/05/05(火) 10:47:47 ID:Y/up7PlTr.net
>>233
独自ルールで自演認定乙
お前が>>229の可能性も否定出来ないが

235 :デフォルトの名無しさん (ワッチョイ 129f-Vijk [133.203.132.132]):2020/05/08(金) 08:57:30 ID:dckQgcH50.net
もう一個のスレはガイジがレスバトルしてて答えは返ってこないしこのスレは自治ガイジが暴れてるしこんなとこで質問しない方がいいが

236 :デフォルトの名無しさん (ワッチョイ d361-INBt [218.231.250.166]):2020/06/03(水) 19:07:48 ID:jt2kVIBa0.net
javascriptで、1秒毎にGPSの位置情報を表示したいのですが、毎回、アクセス権確認が出てしまいます。
アクセス許可の確認ボックスが表示されるのを、最初の一回だけに出来ないでしょうか?

var timer;
timer = setInterval(test,1000);

function test() {
 navigator.geolocation.getCurrentPosition(test2);
}
function test2(position) {
 var geo_text = "緯度:" + position.coords.latitude + "\n";
 geo_text += "経度:" + position.coords.longitude + "\n";
 var date = new Date(position.timestamp);
 geo_text += "取得時刻:" + date.toLocaleString() + "\n";
 var a = document.getElementById("AAA");
 a.innerHTML = geo_text;
}

237 :235 :2020/06/03(水) 19:40:21.72 ID:jt2kVIBa0.net
watchPositionで
自己解決しました


バックグラウンド等々でも動作を継続させるのはどうしたら良いのでしょうか?

238 :デフォルトの名無しさん :2020/06/10(水) 03:27:21.19 ID:nXyeYMB9d.net
正規表現の質問です

2020/6/10
2020-6-10
2020.6.10

これをstringオブジェクトのsplitメソッドを使い日付の区切り部分で、"/"、"-"、"."のいずれの文字でも分割できるように

var reg=/\/|\-|\./gi;
console.log(2020/6/10.split(reg));

として
length(3) ["2020” , “6” , “20”]
期待通りの結果が出たのですが

var reg=/\/|\-|\./gi;←この部分を
var reg=/(\/|\-|\.)/gi;このようにグループ化したところ

length(5) ["2020” , “/” , “6” , “/“ , “20”]
上と違う結果になってしまったのですが、どういう理屈でこういう結果になったのか教えてくださいm(__)m

正規表現の
a|b|cはaかbかcのいずれかで、[a-c]これと同じ意味ですよね?

239 :デフォルトの名無しさん :2020/06/10(水) 04:08:41.09 ID:+QBvSnI00.net
>>238
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/String/split
separator が、キャプチャする括弧を含む正規表現だった場合、 separator が一致するごとに、キャプチャする括弧の結果が (未定義の結果であった場合を含め) 出力配列に追加されます。

グループ化だけしたいなら(?:〜〜)で囲め

240 :デフォルトの名無しさん (スプッッ Sd1f-Zi0f [1.75.211.253]):2020/06/10(水) 05:49:33 ID:nXyeYMB9d.net
>>239
ありがとうございます。

括弧を含んだ正規表現の場合〜と解説してる文献があるんですね^_^;
こういうの自分で探せないわ…

何故そうなるのかはほとんど正規表現の知識がないので分かりませんが、とりあえず括弧で括った場合にはそういう挙動になるということは分かりました。

ありがとうございます

241 :デフォルトの名無しさん :2020/06/15(月) 20:45:26.99 ID:1F3a2yyn0.net
https://github.com/mdn/webextensions-examples/tree/master/borderify

githubでダウンロードするにはどうしたらいいんでしょうか
ダウンロードボタンがないです

242 :デフォルトの名無しさん :2020/06/15(月) 21:10:05.21 ID:JS6xK7rfH.net
マルチポストはやめましょう

243 :デフォルトの名無しさん :2020/06/15(月) 21:13:50.22 ID:1F3a2yyn0.net
スレを間違えただけです

244 :デフォルトの名無しさん :2020/06/15(月) 21:41:15.07 ID:7MR1R7860.net
>>243
指摘されるまで質問を撤回しなかった理由は?

245 :デフォルトの名無しさん :2020/06/15(月) 23:53:35.57 ID:6c4s/wK/0.net
JavaScript の質問は、web制作管理板の方へ書き込んでください!

この板のスレは、荒らしが出た時に、緊急避難用として立てられたもので、現在は使われていない!

246 :デフォルトの名無しさん :2020/07/05(日) 23:47:37.29 ID:S84HRZFZM.net
javascript初心者で右も左もよくわからないんだけどconsole.log();ってみなさんchromeなら検証からやって

247 :デフォルトの名無しさん (ワッチョイ 0101-INtO [126.140.245.39]):2020/07/06(月) 05:50:27 ID:JmzGvw7e0.net
>>246
2行目がイミフなんだが、
DevelopperToolsを閉じてみなさんスルーしてやって

248 :デフォルトの名無しさん :2020/07/06(月) 14:11:59.36 ID:YRhjpfSA0.net
>>247
やっていますか? でした

249 :デフォルトの名無しさん :2020/07/06(月) 14:50:26.97 ID:L/pk2yTgr.net
>>248
それでも、エスパー案件

「右クリックメニューの[検証]からコンソールパネルを開いてますか?」

と質問してるのか?
---
ショートカットキーを覚えろ
https://developers.google.com/web/tools/chrome-devtools/shortcuts

そして、正しい日本語で質問することも覚えろ

250 :デフォルトの名無しさん :2020/07/06(月) 15:11:39.18 ID:AsDEr6ShM.net
>>249
そうです
理解があいまいで正しく伝達できませんでした

251 :デフォルトの名無しさん (ワッチョイ 0101-INtO [126.140.244.253]):2020/07/06(月) 20:10:50 ID:FMGmKD1v0.net
>>250
PCの基本が載ってる本を買って勉強した方がいい

252 :デフォルトの名無しさん :2020/07/07(火) 00:22:17.39 ID:wqab1oePa.net
すみません、自作JavaScriptをブラウザで見ようとしてブラウザが反応しなくなった時に
止める方法はありますですか?
ctl+alt+del押してタスクマネージャーから落とす以外に無いかですか?

253 :デフォルトの名無しさん (ワッチョイ 8d4e-yZ94 [210.138.216.243]):2020/07/07(火) 04:38:45 ID:7NRV/JzE0.net
いくらでもあるのでは?
ハンマーでPCごと叩き壊すとか

254 :デフォルトの名無しさん :2020/07/07(火) 08:04:49.16 ID:ZqIgROior.net
>>252
Chrome駕止めるか聞いてきたら、止める

255 :デフォルトの名無しさん :2020/08/13(木) 21:43:17.29 ID:cLv1fX6M0.net
こういう配列があったとして
const hoge = [
{name: "taro", age: 15, group: "A"},
{name: "hanako", age: 25, group: "B"},
]

最終的にこんな感じにしたい(ageだけ2倍に)
const hoge = [
{name: "taro", age: 30, group: "A"},
{name: "hanako", age: 50, group: "B"},
]

mapを使えばいいと思ったんですが、書き方が分かりませんでした…
(元のオブジェクトを展開して、ageだけ2倍するみたいなことが出来ると思った)
const newHoge = hoge.map(h => {...h, age: h.age * 2})

256 :デフォルトの名無しさん :2020/08/13(木) 21:55:53.88 ID:PyxE/Q5zM.net
>>255
=> {}って書くとアロー関数のパースが変わるので、()で囲むと良い

const newHoge = hoge.map(h => ({...h, age: h.age * 2}))

257 :デフォルトの名無しさん :2020/08/13(木) 21:59:50.51 ID:cLv1fX6M0.net
>>256
できましたーーーーー(泣)(1時間かかった)
ありがとうございました

258 :デフォルトの名無しさん :2020/08/17(月) 12:12:35.63 ID:Ew8mgsp/0.net
てs

259 :デフォルトの名無しさん :2020/08/18(火) 19:36:32.49 ID:65jirDTbd.net
これを
const hoge = "【aaa】bbb【ccc】【ddddd】eee【fff】gggg";

最終的にこういう配列にしたいんですが
const newHoge = hogeFunc(hoge);
console.log(newHoge)
["【aaa】",
"bbb",
"【ccc】",
"【ddddd】",
"eee",
"【fff】"]

indexOfで【】の位置特定して、sliceして、みたいなごり押し以外で何かスマートに処理する方法あるでしょうか?
lodash的な便利ライブラリを使用する方法とかでも構わないので知りたいです

260 :デフォルトの名無しさん :2020/08/19(水) 03:50:29.18 ID:5OSwc30i0.net
>>259
hoge.split(/(【[^】]*】)/).filter(Boolean)

261 :デフォルトの名無しさん :2020/08/19(水) 03:58:30.68 ID:5OSwc30i0.net
ggggが要らなければ要素数が3の倍数になるように配列を切り詰めて

262 :デフォルトの名無しさん :2020/08/19(水) 08:10:31.51 ID:VKqi5gMNr.net
>>259
hoge.match(/【[^】]*】|[^【】]+/)

263 :261 (オッペケ Srb1-P3ox [126.179.253.120]):2020/08/19(水) 08:16:32 ID:VKqi5gMNr.net
>>259
hoge.match(/【[^】]*】|[^【】]+/g); // gフラグ付け漏れ修正

264 :デフォルトの名無しさん (ワッチョイ dd5f-N59K [106.72.170.129]):2020/08/20(木) 11:15:49 ID:N3Xth98n0.net
>>260
>>262
ありがとうございました
正規表現ってぱっと見何やってるか分からなくて嫌いでしたが便利ですね

265 :デフォルトの名無しさん :2020/09/14(月) 13:19:22.86 ID:tp+/+C8Z0.net
この方法だとSJISの機種依存文字(崎の大じゃなくて立の文字)が文字化けしないんですが
reader.readAsText(file, "shift-jis");

ここのサンプル通りに
http://polygonplanet.github.io/encoding.js/tests/detect-file-encoding.html
reader.readAsArrayBuffer(file);
var unicodeString = Encoding.convert(codes, {to: 'unicode', from: 'SJIS',type: 'string'});
としても機種依存文字が化けてしまいます

そういうもんでしょうか?

266 :デフォルトの名無しさん :2020/09/14(月) 15:14:02.04 ID:zNKtsudb0.net
Encoding.jsはブラウザが持ってる変換ではなく自前の変換テーブル使ってやってるのでそういうもんなんだろうけど
IBMのFAB1はUNKNOWN、NECのED95からは変換できるので必要ならgithubで要望出してみれば?

267 :デフォルトの名無しさん :2020/09/14(月) 16:05:43.73 ID:tp+/+C8Z0.net
>>266
そういうもんでしたか

UTF-8からSJISは問題なく変換できるので
なにか間違ってるのかと思いました

ありがとうございました

268 :デフォルトの名無しさん :2020/09/17(木) 20:09:46.76 ID:QWldExKKr.net
下記のコードでクリックした要素のidを取得したいのですが、取得できません。
$("li").on('click', function(e){
let k = $(this).attr('id');
});

取得する要素はjavascriptで動的にデータベースから値をとってきて表示しているのですが、
ページリロードした際にある要素しか上記のコードは有効でない、など、何か動かない条件などがあるのでしょうか。
よろしくお願いいたします。

269 :デフォルトの名無しさん :2020/09/17(木) 20:20:53.83 ID:fy5bwxWur.net
取得できないとは具体的にどういう状況を指すのか説明orコードが足らん
あとletで宣言したら外で使えないけどそれで良いの?

270 :デフォルトの名無しさん :2020/09/17(木) 20:27:23.84 ID:NHfa1bvj0.net
li が1つだけなら、取得できた。
2つ以上あったら、知らないけど

<ul>
<li id="abc">リスト 1</li>
</ul>

$( "li" ).on( 'click', function( e ) {
let k = $( this ).attr( 'id' );
console.log( k )
} );

Javascript, jQuery の質問は、web制作管理板の方へ書き込んでください!
この板のスレは、荒らしが出たときに、一時的に使っていたものなので

271 :269 :2020/09/17(木) 20:30:39.20 ID:NHfa1bvj0.net
li が2つ以上あっても、クリックしたものが取得された

正常に動く

272 :デフォルトの名無しさん :2020/09/17(木) 20:36:46.60 ID:gD3Eguk90.net
動的に追加された要素に対して適用できてないとかそんなオチだろ

273 :デフォルトの名無しさん :2020/09/18(金) 09:35:45.84 ID:WV/PPbI+H.net
取得できそうなもんだけどなぁ
エスパー過ぎてわからん

274 :デフォルトの名無しさん :2020/10/01(木) 18:40:48.93 ID:3EMbehP20.net
enchant.jsでゲームを作り
自分のレンタルwebサーバにUPしたら
ブラウザで「NET::ERR_CERT_AUTHORITY_INVALID」のエラーが出て
他の誰にもゲームを見てもらえません。

なにがどうなっているのでしょうか?

275 :デフォルトの名無しさん :2020/10/01(木) 18:58:58.89 ID:by80Zctlr.net
明らかにサーバー(SSL証明書エラー)の問題
此処で情報を詳しく出しても良いけど
当該レンサバのスレで質問する方が近道だと思う

276 :デフォルトの名無しさん :2020/10/01(木) 19:08:37.71 ID:3EMbehP20.net
>>275
XSERVERでございます

277 :デフォルトの名無しさん :2020/10/01(木) 19:09:26.51 ID:3EMbehP20.net
SSLとか証明書とか意味がさっぱりわからないのですが
なにがどうなっているのでしょうか?

278 :デフォルトの名無しさん :2020/10/01(木) 19:12:56.72 ID:fSnOANSlM.net
Cloudflareでも通しとけ

279 :デフォルトの名無しさん :2020/10/01(木) 19:21:47.87 ID:3EMbehP20.net
Cloudflareとは何じゃ
良い子はそんなの使ってません。

280 :デフォルトの名無しさん :2020/10/01(木) 20:39:45.05 ID:by80Zctlr.net
>>277
SSLが分かんないのにURLがhttpsになってたら設定見直せとしか
「独自SSL」とかその辺見たらいいんじゃない
いずれにせよJS関係無いので向こうで聞いてみたら
XSERVER エックスサーバー Part6
https://mevius.5ch.net/test/read.cgi/hosting/1568069691/

281 :デフォルトの名無しさん :2020/10/01(木) 22:31:33.76 ID:theiHz1p0.net
AWS のS3 とか、知らんのか?w
HTTPS, SSL の証明書とか、システム構築運用の初歩の初歩だがw

無料の証明書、let's encrypt とか

282 :デフォルトの名無しさん :2020/10/03(土) 14:18:04.93 ID:l4QjehZB0.net
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q14232251614?sort=1&page=2
abiko tetuってやつヤバすぎ

283 :デフォルトの名無しさん :2020/10/14(水) 10:58:53.79 ID:asjsDRkW0.net
sort関数に追加の引数を渡すことってできますか?
array.sort(mySort())に引数を与えて条件によって処理を変えたいのですが。

普通にmySort()に引数を入れるとソートで使われる引数に値が入ってしまってダメでした。

284 :デフォルトの名無しさん :2020/10/14(水) 11:29:33.74 ID:B+LQat5m0.net
function mySort(value) {
if(value===1) {
return (a, b) => a-b
} else if (value===2) {
return (a, b) => b-a
}
}

array.sort(mySort(1)) // 昇順
array.sort(mySort(2)) // 降順

285 :282 :2020/10/14(水) 11:48:53.44 ID:asjsDRkW0.net
ありがとうございます。
新しいjsでは大丈夫でしたが、ES3という超古いバージョンなのです。
書き忘れていました。後出しで申し訳ありません。
(アドビのソフトで使われているjsです)

286 :デフォルトの名無しさん :2020/10/14(水) 12:41:33.59 ID:p6YQijR2r.net
>>285
bindみたいな引数束縛する関数を作る

287 :デフォルトの名無しさん :2020/10/14(水) 12:44:22.07 ID:p6YQijR2r.net
>>285
http://www2u.biglobe.ne.jp/~oz-07ams/2002/ecma262r3/15-4_Array_Objects.html#section-15.4.4.11

288 :282 :2020/10/14(水) 13:05:25.23 ID:asjsDRkW0.net
>>286
ちょっと自分のスキルでは難しそうです。

289 :デフォルトの名無しさん :2020/10/14(水) 13:40:46.13 ID:z5Uy/Vd30.net
Function.prototype.bind()
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Function/bind

bind this か?

290 :デフォルトの名無しさん :2020/10/14(水) 13:53:20.67 ID:z5/Y8RhDr.net
ソート関数なんて自前で作ればいい

291 :デフォルトの名無しさん :2020/10/14(水) 13:58:43.04 ID:bGR5EKGW0.net
ES3だと
return (a, b) => a-b

return function(a, b) { return a - b; };
じゃね?

だいたいsortと比較関数でクロージャにしちゃって引数でなくローカル変数でやっちゃうよね

292 :282 :2020/10/14(水) 14:10:27.29 ID:asjsDRkW0.net
returnの挙動はともかく、
mySort(value)自体がES3だとできないのです。(aにvalueが入ってしまう)
とりあえず今はグローバル変数で対応していますが、
引数でやる方法がないのかと思いまして。

293 :デフォルトの名無しさん :2020/10/14(水) 16:00:56.30 ID:zqMcknRo0.net
比較関数はどうやって指定しているんですか?

294 :デフォルトの名無しさん :2020/10/14(水) 17:00:41.74 ID:Tfis7AoIM.net
>>292
ES3でもできるよ
できないと思ってるコードを書いてくれれば原因わかる

295 :282 :2020/10/14(水) 17:08:39.53 ID:asjsDRkW0.net
>>294
今やってることは大雑把には以下の通りで、
mySortにa,b以外の値cを渡してそれを元に処理を追加したいのですが
cの渡し方がわかりません。
var ary=[10,12,53,41,5,6,];
ary.sort(mySort);
function mySort(a,b){
return a-b;
}

296 :デフォルトの名無しさん :2020/10/14(水) 17:20:07.02 ID:Azmo5ss/0.net
var ary=[10,12,53,41,5,6,];
ary.sort(mySort(-1));
function mySort(c){
return function(a,b){
return c<0 ? a-b : b-a;
};
}

297 :282 :2020/10/14(水) 17:28:28.99 ID:asjsDRkW0.net
ありがとうございます。まさに希望どおりです。
こんな書き方もできるんですね。

298 :デフォルトの名無しさん :2020/10/14(水) 18:41:11.04 ID:Azmo5ss/0.net
高階関数やクロージャについて調べてみると理解進むよ。
ちなみに今でも全然通用する概念。

299 :デフォルトの名無しさん :2020/10/24(土) 02:35:59.30 ID:gS1xqNx8M.net
質問させてください。

nodejsで line botを作っていて応答文字に改行を入れたいのですが
ダブルクォートで囲った中に”\n”で改行するという仕様のようなのです。



return client.replyMessage(ev.replyToken, {
type: "text",
text: “あああ\nいいい”
});

しかし今作っているbotは文字列を変数に格納しており

const aaa = スクレイピングで拾ってきた文字列
const bbb = スクレイピングで拾ってきた文字列

const ccc = aaa + “\n” + bob

return client.replyMessage(ev.replyToken, {
type: "text",
text: ccc
});

では改行されませんでした。
text: `${ccc}` でもダメでした。

\nがそのまま表示されてしまいます。

ダブルクオートで囲い直す方法ってございませんでしょうか?
よろしくお願い致します。

300 :デフォルトの名無しさん :2020/10/24(土) 11:37:48.17 ID:4WVjWXseM.net
>>299
wrap: true

301 :デフォルトの名無しさん :2020/10/24(土) 12:36:00.80 ID:gS1xqNx8M.net
>>300
ありがとうございます。
しかしダメでした、、
やっぱり \n がそのまま表示されてしまいます。

302 :デフォルトの名無しさん :2020/10/24(土) 13:25:10.82 ID:gS1xqNx8M.net
すみません。自己解決しました。
\ではなくバックスラッシュでした。
ありがとうございました。

303 :デフォルトの名無しさん :2020/10/24(土) 21:42:06.09 ID:6VJCwZcaM.net
そもそも文字列はシングルクオートで囲う癖つけとくと便利だと思う
テンプレート文字列にするのもいいけど

304 :デフォルトの名無しさん:2020/11/04(水) 19:02:40.51 ID:M+x6liG8u
期間工ブログの収入は1500万円でした。【フリーランスの現実&底辺からの復活編】
https://www.youtube.com/watch?v=aijLjFLOuC4
工場勤務、30代フリーターが「ブログ」で200万稼げた理由! ◯◯があったから?
https://www.youtube.com/watch?v=Cjmk4XusQVM
ブログで月200万稼ぐ、フリーランスの1日
https://www.youtube.com/watch?v=jaV2GyBgNX4
ブログ収益を報告します【ネタバレ:1,000万円でした】
https://www.youtube.com/watch?v=GIa9OZ2CIPU
【完全初心者向け】ブログの始め方【徹底解説の動画セミナー/保存版】
https://www.youtube.com/watch?v=dyHk5l-GxH8
【悪用厳禁】ブログをパクる際のコツを解説【2つの手順です】
https://www.youtube.com/watch?v=UOK1PXndP9U&t=3s
プログラミングとブログで、どちらが稼げますか【裏ワザを紹介する】
https://www.youtube.com/watch?v=NVzTKTuYyAM

305 :デフォルトの名無しさん :2020/11/08(日) 22:08:22.01 ID:EfB5Dlnya.net
requirejsやってるんだけどシェルのexportコマンド的なの無いの?

306 :デフォルトの名無しさん:2020/11/24(火) 13:11:50.94 ID:FWk6XcjL.net
function hoge(){} //引数なし
hoge(a=11,b=33)
名前付き引数を可変的に追加できて
関数hoge側でkey(aとb)名も受け取れるようにしたいんだけど無理?
argumentsはkey名は無視されたし
hoge({a=1,b=3})で関数内でfor key in objみたいにするしかないのかな

307 :デフォルトの名無しさん :2020/11/24(火) 14:02:04.95 ID:cyXA9vgjM.net
function foo(a, b, ...rest)

308 :デフォルトの名無しさん:2020/11/25(水) 01:19:47.68 ID:UPK+j49C.net
>>307
無理でした

309 :デフォルトの名無しさん :2020/11/25(水) 16:04:16.70 ID:zD7zhP2P0.net
いまいち何がしたいのかよくわかんないけど
function hoge(o = {}){
console.log(Object.keys(o))
}

hoge({a: 1, b: 3})
//=> ["a", "b"]

310 :デフォルトの名無しさん:2020/11/25(水) 16:45:55.85 ID:UPK+j49C.net
>>309
端的にいうと
引数は
hoge(x=1,y=2,a="ho",b="ge")
hoge(z=2,x="abc")
みたいに指定できて
{x:1,y:2,a:"ho",b:"ge"}や{z:2,x:"abc"}
みたいに関数で受け取りたい
(もちろんx,yやa,b,cみたいなkey名はこれに限らず)

311 :デフォルトの名無しさん :2020/11/25(水) 17:12:47.42 ID:ulXBn3sm0.net
JSにそういう記法はないので無理
Pythonを使え

312 :デフォルトの名無しさん :2020/11/25(水) 17:15:26.00 ID:zD7zhP2P0.net
えっ…じゃあこうだけど??
function hoge(o = {}){
console.log(o)
}

hoge({x: 1, y: 2, a: "ho", b: "ge"})
//=> {x: 1, y: 2, a: "ho", b: "ge"}

313 :デフォルトの名無しさん:2020/11/25(水) 17:52:06.24 ID:UPK+j49C.net
>>311
なるほど
他の言語だとこういう書き方があったのでもしかしたらJSにもあるのかなとおもったのですがないのですね
ありやした

>>312
それはもちろん
しかしそれだとそもそも{}表記なんで

314 :デフォルトの名無しさん :2020/11/25(水) 19:21:16.56 ID:zD7zhP2P0.net
>>313
あーそうゆうことね。
()呼び出しでなくタグ付きテンプレート呼び出し、
eval使っていいなら、

function hoge(s) {
let o={},p=new Proxy(o,{set:(o,p,v)=>(o[p]=v,!0),has:()=>!0});
eval(`with(p){${s[0]}}`)

console.log(o);
}

hoge`x=1,y=2,a="ho",b="ge"`
//=> {x: 1, y: 2, a: "ho", b: "ge"}

315 :デフォルトの名無しさん :2020/11/25(水) 19:29:03.94 ID:zD7zhP2P0.net
hoge`
x = 1,
y = 2,
a = "ho",
b = "ge",
z = x + y,
c = a + b
`
//=> {x: 1, y: 2, a: "ho", b: "ge", z: 3, c: "hoge"}

316 :デフォルトの名無しさん:2020/11/25(水) 19:36:00.93 ID:UPK+j49C.net
>>314,315
なるほど
そんな書き方もできるんですね
ありがとうございます

317 :デフォルトの名無しさん :2020/11/25(水) 21:38:45.31 ID:3CNxpkun0.net
const hoge = [{id:"xxx",
num:5000},
{id:"yyy",
num:2000},
{id:"zzz",
num:9000},]

こういう配列でnumが一番大きいobjectを取得するシンプルな方法ってありますか?
思いついたのは
const foo = hoge.find((i)=>{
return i.num === Math.max(...hoge.map((v) =>{
return v.num
}))
})
なんですけどこれだけの処理に二重でループ回すのはナンセンスな気がしてしまって・・・

318 :デフォルトの名無しさん :2020/11/25(水) 21:48:23.27 ID:UiakocYp0.net
>>317
sortかfotEachしたら?

319 :デフォルトの名無しさん :2020/11/25(水) 22:03:22.81 ID:UiakocYp0.net
>>317
あるいはreduceか
forとかfor-ofで書けるようになった方がいいとは思うけどね

320 :デフォルトの名無しさん :2020/11/25(水) 22:12:00.77 ID:3CNxpkun0.net
自分で書いといてなんなんですが>>317のnumは存在しない場合もありました

>>318,319
sortはアリかなと思いました
他のメソッドはパっと思いつく感じ最初の関数と似たようなものしか思いつきませんでした・・・

321 :デフォルトの名無しさん :2020/11/25(水) 22:14:27.47 ID:zD7zhP2P0.net
const foo = hoge.sort((a, b) => a.num - b.num).pop()
とか
const foo = hoge.sort((a, b) => b.num - a.num)[0]
とか。
しかし両者ともhogeを書き換えてしまうので、
const foo = [...hoge].sort((a, b) => a.num - b.num).pop()
とか
const foo = [...hoge].sort((a, b) => b.num - a.num)[0]
のほうが望みのものかもね。
あとは
const foo = hoge.reduce((acc, r) => r.num > acc.num ? r : acc)
とか。

322 :デフォルトの名無しさん :2020/11/25(水) 22:26:19.76 ID:iWjekW4fM.net
sortしなくていいケースでsortするのは無駄

reduceかfor-ofで

323 :デフォルトの名無しさん :2020/11/25(水) 22:29:12.37 ID:zD7zhP2P0.net
>>320
> numは存在しない場合もありました

このような後出し要件の場合は、安全なアクセス関数を追加で用意して差し込むのが簡単。
例えば、
const getNumSafe = ({num = -Infinity}) => num
const foo = hoge.reduce((acc, r) => getNumSafe(r) > getNumSafe(acc) ? r : acc)
のように。

324 :デフォルトの名無しさん :2020/11/25(水) 22:30:06.01 ID:drNJreauM.net
ライブラリ可ならlodashのmaxBy

325 :デフォルトの名無しさん :2020/11/25(水) 22:50:57.62 ID:3CNxpkun0.net
>>321-324
ありがとうございます
参考に自分のパターンに合うものを書いてみたいと思います

326 :デフォルトの名無しさん :2020/11/27(金) 01:16:52.95 ID:lOUpIwv20.net
Lodash は多くのライブラリも使っているから、使うべき!

プロジェクトのライブラリの依存関係を検索すると、
多くのライブラリが、Lodash に依存してる

327 :デフォルトの名無しさん :2020/11/27(金) 03:15:11.50 ID:W+zDVYCR0.net
Netflixはlodash切って素のJSで書き直したけどな。

328 :デフォルトの名無しさん :2020/11/27(金) 12:17:00.93 ID:Syvn71JBr.net
ライブラリが必要な程、複雑な処理ではない気がするけどな

hoge.reduce((max, current) => max < current.num ? cutrent.num : max, -Infinity);

329 :デフォルトの名無しさん :2020/11/27(金) 18:55:39.16 ID:gUqD3P5er.net
使うモジュールだけにしときな

330 :デフォルトの名無しさん :2020/11/30(月) 16:28:41.73 ID:gpUfY6cE0.net
動的型付け言語って本当にわかりづらい

javascriptでオブジェクト指向的なプログラムを組もうと思って
簡単な本でjavascriptを勉強してるんだけど
interfaceないのにどうやってオブジェクト指向的な開発してるんですか?
typescriptしたほうがいいんだろうか?

331 :デフォルトの名無しさん :2020/11/30(月) 16:37:41.46 ID:0Mqgtux2r.net
>>330
してください

332 :デフォルトの名無しさん :2020/11/30(月) 19:07:05.83 ID:CqWD2gHur.net
>>330
class使って下さい

333 :デフォルトの名無しさん :2020/11/30(月) 19:08:03.35 ID:1U/wXaEH0.net
>>332
インターフェイスやabstracut使わずにどうやれと

334 :デフォルトの名無しさん :2020/11/30(月) 19:19:23.06 ID:CqWD2gHur.net
>>333
あるもので何とかする気のない人にどう答えろと

335 :デフォルトの名無しさん :2020/11/30(月) 21:04:19.76 ID:1U/wXaEH0.net
javascriptでオブジェクト指向開発は、今のところは無理ってことですかね?

336 :デフォルトの名無しさん :2020/11/30(月) 21:19:10.37 ID:4TqWiQB+0.net
>>335
君にとってはそうだな

337 :デフォルトの名無しさん :2020/11/30(月) 21:50:12.17 ID:owcTZSsV0.net
バカは何使おうが無理

338 :デフォルトの名無しさん :2020/11/30(月) 23:43:04.66 ID:TJ10WaD1a.net
独学におすすめの本はありますか?
プログラム自体はphpの基礎ができる程度です

339 :デフォルトの名無しさん :2020/12/01(火) 06:15:24.88 ID:Zg5lb2px0.net
>>336
あなたには出来ると言いたげですね

340 :デフォルトの名無しさん :2020/12/01(火) 08:10:06.86 ID:RQP4Xz+Pr.net
>>338
『JavaScript for impatient programmers』

341 :デフォルトの名無しさん :2020/12/01(火) 10:44:14.97 ID:L1BkVMXS0.net
javascriptって面白い挙動するんだね
class s{
constructor(){
this.s1="s1";
let .s2="s2";
alert(); }// ---@
alert(){window.alert();}} //---A

new s();
-------------------
@を
alert(s1) ×
alert(this.s1) 〇
alert(s2)  〇
alert(this.s2) ×
と、Aで引数を受け取らなくてもalertで値が表示される

@alert(s2)とし
Aalert(){window.alert(this.s1):}
とすると、s2がalertされるし

@alert()とし
Aalert(){window.alert(this.s1):}
とするとalertには何も表示されない
とても不可思議な挙動

342 :デフォルトの名無しさん :2020/12/01(火) 11:40:52.32 ID:bVbF5nud0.net
>>341
(1)で(2)を呼びたいならthis.alert()でないとだめ
ブラウザ上ではwindow.は省略可能なので(1)のalertはwindow.alertその物
スクリプト系の言語ではc++やc#等とは違ってthis相当の物を省略できないのが多い

343 :デフォルトの名無しさん :2020/12/01(火) 12:07:45.77 ID:WP+WGTcn0.net
>>338
プロ向きなら、サイの表紙の2冊のサイ本

初めてのJavaScript 第3版 ――ES2015以降の最新ウェブ開発、オライリー、2017
JavaScript 第6版、2012、David Flanagan

ただし、これらは、Google などの開発者が読む、プロ向きの本。
最低でも、Ruby は出来ないと、難しすぎて読めないと思う

JavaScript は、言語仕様が肥大化してる。
Rubyみたいに、簡単には学べないから、適当にお茶を濁した方がよい。
キリがない

344 :デフォルトの名無しさん :2020/12/01(火) 13:31:02.54 ID:53WLqSe7r.net
>>343
> ただし、これらは、Google などの開発者が読む、プロ向きの本。

さすがにこれは嘘
Ruby知らない俺でも読めた

ES2020などの最新仕様に対応した和書がないのは認める
日本語に拘らなければある(>>340)し、概ね日本人著者よりも英語圏の著者が優秀

345 :デフォルトの名無しさん :2020/12/01(火) 19:23:33.17 ID:Zg5lb2px0.net
>>342
勉強になります、ありがと先生!

346 :333 :2020/12/02(水) 10:31:40.93 ID:B0C6cOGW0.net
javascriptの挙動を確認したいので
本体が何処にあるか調べてるのですが不明です
javascript本体はどこにあるのでしょうか?

347 :デフォルトの名無しさん :2020/12/02(水) 13:01:48.46 ID:PzRtqWYIr.net
>>346
本体の定義は何?

348 :デフォルトの名無しさん :2020/12/02(水) 13:44:59.62 ID:vDg6xkSY0.net
Node.js なら、コマンドプロンプトで、
where node
と入力すると、

C:\Program Files\nodejs\node.exe

349 :デフォルトの名無しさん :2020/12/02(水) 14:00:48.75 ID:s/Tj40p50.net
「javascript本体はどこにあるのか」か。
ちょっと哲学的な問いだな。
俺としては、「Ecma International にある」説を推したい。
しかし物理的実体があるわけではないので Ecma International 本部があるジュネーヴにはない。

350 :デフォルトの名無しさん :2020/12/02(水) 17:09:47.94 ID:ll4y5RKs0.net
ブラウザに組み込まれてるのでは?(クソザコ素人)

351 :デフォルトの名無しさん :2020/12/02(水) 18:10:51.81 ID:PzRtqWYIr.net
>>346>>330,341と同じ人なので深い答えは期待出来ないかと

352 :デフォルトの名無しさん :2020/12/02(水) 18:15:26.80 ID:kLO/ox290.net
単純にコードはどうやって見られますかって話では。

353 :デフォルトの名無しさん :2020/12/04(金) 08:30:08.52 ID:0LJPp7yer.net
質問は放置されたか

354 :デフォルトの名無しさん :2020/12/04(金) 15:48:35.50 ID:Q52RE+DV0.net
書き込み不可でした
質問の仕方が悪くてすみません

javascriptが関数などをどう処理してるのかを知りたくて
javascriptのソースファイルを見たいなって思ってました
googleのchromeファイルを見てたんですけどちょっと分からなくて質問してみました

実際にはバイナリなりで読めない状態なのかもしれませんけど
所在だけでもしっておきたいなと

355 :デフォルトの名無しさん :2020/12/04(金) 16:14:05.08 ID:2+VKdPy10.net
>>354
そういう説明が欲しかった。
chromeのJavaScript実行エンジンはV8だから、V8のソース読めばおk。
以下に手順が説明されているよ。
https://v8.dev/docs/source-code

356 :デフォルトの名無しさん :2020/12/04(金) 17:56:05.68 ID:Q52RE+DV0.net
>>355
ありがとうございます!
時間のあるときに落として読んでみます
本当にありがとうございました!

357 :デフォルトの名無しさん :2020/12/04(金) 18:35:57.72 ID:mOVEEZtP0.net
function(5, 10){
この5や10を別の数字や文字に変更することは出来ますか?

358 :デフォルトの名無しさん :2020/12/04(金) 19:13:20.61 ID:0LJPp7yer.net
>>357
そもそも、仮引数に数値は指定出来ないと思うのだが…
要件が成立しない

359 :デフォルトの名無しさん :2020/12/04(金) 19:23:39.37 ID:UxB6Tf8eM.net
関数に引数で渡された変数の中身じゃなくて変数の名前って取得できますか?

360 :デフォルトの名無しさん :2020/12/04(金) 19:25:42.17 ID:mOVEEZtP0.net
>>358
文字は適当に書いただけで意味はないです
ようするに()内の文字(呼び出し時に送った文字列とか)を加工できるかどうかの質問です
わかりにくくてすみません

361 :デフォルトの名無しさん :2020/12/04(金) 19:34:15.00 ID:0LJPp7yer.net
>>359-360
変数値は再代入で変えられる

変数名はグローバル変数を除いて変更(元の名前を削除)出来ない
そもそも、変数名を変えようとするのは不具合の種になる
オブジェクトのプロパティやnew Mapのkey等、限られた空間で安全に変更するのが好ましい

362 :デフォルトの名無しさん :2020/12/04(金) 19:36:52.05 ID:0LJPp7yer.net
>>359
無理

363 :デフォルトの名無しさん :2020/12/04(金) 19:41:14.45 ID:0LJPp7yer.net
>>359
と思ったが、Function#toStringをparseすれば、ユーザ定義関数に関しては出来なくはないな
目的次第では別の手段にすべきと思うが

364 :デフォルトの名無しさん :2020/12/04(金) 20:52:39.53 ID:mOVEEZtP0.net
>>361
ありがとうございます

365 :デフォルトの名無しさん :2020/12/04(金) 21:02:15.15 ID:8jcPt1TuM.net
JavaScriptの効率的な学習方法を教えて下さい

入門書のひらがなJavaScriptは終わりました。
次は、Progateか一つ上の書籍かと思っていますが、どの書籍にすべきか迷っています

366 :デフォルトの名無しさん :2020/12/04(金) 23:49:00.70 ID:73Qqn1aF0.net
山田何とかの著書一択

367 :デフォルトの名無しさん :2020/12/05(土) 07:37:21.02 ID:7XRe2Ndx0.net
>>365
> JavaScriptの効率的な学習方法を教えて下さい

目指している目標に依る

何かを作るだけならサンプルコードのコピペに行き着く人が多い

基礎から下積みするなら、一日でも早く仕様書を読めるようになる事が最も効率的なので、仕様書に近い書籍を選ぶ事になる

368 :デフォルトの名無しさん :2020/12/05(土) 07:48:18.47 ID:T+MIshnP0.net
最初からtypescriptを使うことが最も近道

369 :質問者 :2020/12/05(土) 07:57:03.24 ID:wSoVmOU1d.net
目的は参照ボタンを選択してファイル選択ダイアログを開き、選択したローカルファイルの中を読む事です。
ただ、
<input type=`file`〜>で表示されたファイルパスを取得する事は出来ない(セキュリティ上)?
ローカルファイルを読むにはファイルパスが必要なので、どうすれば良いでしょうか?
すみませんよろしくお願いいたします。

370 :デフォルトの名無しさん :2020/12/05(土) 08:04:08.32 ID:7XRe2Ndx0.net
>>365
『ひらがなJavaScript』が見つからないのだが…
https://www.google.com/search?q=%E3%81%B2%E3%82%89%E3%81%8C%E3%81%AAJavaScript

371 :デフォルトの名無しさん :2020/12/05(土) 08:16:49.84 ID:7XRe2Ndx0.net
>>369
質問者ではどの質問者か分からん
文脈的には>>367へのレスで>>365本人か?(IP違うが)

名前にレス番ふって、レス相手にレス相手アンカーするぐらいはしてくれ

372 :367 :2020/12/05(土) 08:53:46.63 ID:wSoVmOU1d.net
>>371

全く新しい質問です。

373 :デフォルトの名無しさん :2020/12/05(土) 09:52:09.52 ID:7XRe2Ndx0.net
>>372
把握した

>>369
File APIを使えば良い
https://developer.mozilla.org/ja/docs/Web/API/File/Using_files_from_web_applications
https://triple-underscore.github.io/File_API-ja.html

374 :367 :2020/12/05(土) 12:30:15.84 ID:wSoVmOU1d.net
>>373

ありがとうございます。
これでフルパスを取得できるんですね。

375 :デフォルトの名無しさん :2020/12/05(土) 13:25:14.38 ID:r/OmkE6S0.net
フルパスは取れないファイルが読めるだけ

376 :367 :2020/12/05(土) 18:02:57.10 ID:wSoVmOU1d.net
>>375

すみません。
ローカルファイルで読む為にフルパスが必要なんです。セキュリティの問題で取りにくいのは知ってます。それで
>>369
に書いた質問をしたのです。
よろしくお願いいたします。

377 :367 :2020/12/05(土) 18:22:16.72 ID:wSoVmOU1d.net
補足

すみません。
サブ画面ではファイルパスの設定だけ。
メイン画面ではじめて、サブ画面で設定したファイルを読み込むという事をしたいのですが、無理なのでしょうか?
よろしくお願いいたします。

378 :デフォルトの名無しさん :2020/12/05(土) 20:51:52.66 ID:uqDUGTNRM.net
> セキュリティの問題で取りにくいのは知ってます。

ぜんぜん知ってない。知ったかするな。
取り「にくい」だけで頑張れば取れるのなら何のセキュリティ対策にもならないだろ。

379 :デフォルトの名無しさん :2020/12/05(土) 21:00:16.20 ID:BzIEWbaf0.net
フルパスがあればローカルファイルが読める環境というのがよくわからんがそれならElectronとか使えばいいんでねよくわからんが

380 :デフォルトの名無しさん :2020/12/05(土) 21:12:05.00 ID:3OUqO/Qz0.net
ブラウザ内のHTML から、ローカルPC 内の情報が取れるのか?

Node.js みたいなサーバーを立てていないと無理なのでは?
Electron も内部で、Node.jsを使っているし

381 :367 :2020/12/05(土) 21:32:44.16 ID:wSoVmOU1d.net
>>378

すみません。出来ないんですね。
設計者はサブ画面でファイル選択ダイアログを使用してexcelファイルを選択して、メイン画面でexcelファイルを取り込む事をやりたいんでしょうが、無理なんですね。設計者に言います。

それにしても、
POI技術で
https://blog.java-reference.com/poi-read-excel/
最初に
is = new FileInputStream("D:sample.xlsx");
パスを指定してますが、これは一般的には固定のローカルファイルパスを指定するもんなんですね。

>>379
ありがとうございます。調べてみます。

382 :デフォルトの名無しさん :2020/12/05(土) 21:36:30.80 ID:r/OmkE6S0.net
javascriptじゃないじゃん

383 :デフォルトの名無しさん :2020/12/05(土) 21:37:30.98 ID:ryDIbbB50.net
>>367
返答ありがとうございます、仕様書の様な書籍とはどんなものでしょうか?、目指すところは現在webコーダーなのですが、JavaScriptでフロントエンドやサーバーサイド開発が出来る様になりたいです

>>370
「スラスラ読める JavaScriptふりがなプログラミング」が正式な書籍名でした、すみません


>>368
なるほどTypeScriptですか、やってみます

384 :デフォルトの名無しさん :2020/12/05(土) 23:22:08.87 ID:7XRe2Ndx0.net
>>376
ファイル内容読むのにフルパスは必要ない

>>377
フルパスを受け渡す必要はない
ファイル内容を渡せばいい
https://developer.mozilla.org/ja/docs/Web/API/Window/postMessage

385 :367 :2020/12/06(日) 10:25:22.76 ID:odok9c0Cd.net
>>384

ありがとうございます。内容はこれで渡せるんですね。
フルパスは取り扱えないんですね。

javascriptとは関係ないですが、フルパスを要求するJAVA POIは使えないので困ってます。こういうjavascriptとサーバー側処理を含んだ質問はどこですれば良いのでしょうか?

386 :デフォルトの名無しさん :2020/12/06(日) 10:36:59.07 ID:zDpqJVzS0.net
>>385
> フルパスを要求するJAVA POIは使えないので困ってます。

何が問題なのか、さっぱりわからん
状況を過不足なく伝える技術を身につけろ

フルパス要求する端末にJavaをインストールしえ取れないのか?
Javaの問題はJavaスレで解決すれば良い

387 :デフォルトの名無しさん :2020/12/06(日) 11:49:41.53 ID:5/KOVLSv0.net
最初の>>369はブラウザ上の処理だと思うが、Javaをどこで動かしたいと言っているんだろう?
クライアントからアップロードしたファイルをサーバー側で処理する話かね?

388 :367 :2020/12/06(日) 14:13:40.86 ID:odok9c0Cd.net
皆さん、javascriptだけでないレス違いの質問に回答ありがとうございます。

やりたいことは以下です。
1.選択したローカルのexcelファイルをクライアントからサーバーにアップロードする事はしたくない。
2.excelファイルから必要な情報を抜き出してそれのみをDBサーバーに登録したい。

389 :デフォルトの名無しさん :2020/12/06(日) 14:47:02.74 ID:O4KrEoM80.net
情報小出しで全体像が分からんけど
sheetjsなりで解析してから送りゃエエんちゃう

390 :デフォルトの名無しさん :2020/12/06(日) 16:49:56.97 ID:atqZF9NJ0.net
Ruby on Rails の、SQLite3 などのデータベース(DB)を使えば?

普通に、Rails プロジェクトの開発環境を作れば、
バックエンドのPuma サーバー・DBも、
フロントエンドのブラウザ、HTML, CSS, JavaScript も、ローカルPC 内にある

Node.js サーバーと、Chromium ブラウザを含む、Electron と同じ

391 :デフォルトの名無しさん :2020/12/06(日) 17:23:44.10 ID:I5tPmPco0.net
>>389
これだな
>>390
死ね

392 :デフォルトの名無しさん :2020/12/06(日) 19:31:15.25 ID:qbV+R5u90.net
>>388
めちゃ普通のしょり

393 :デフォルトの名無しさん :2020/12/06(日) 23:31:54.81 ID:zDpqJVzS0.net
>>388
サーバにアップロードしたくないのなら、Java POIはローカルにインストールされているんだよな?

394 :367 :2020/12/07(月) 08:15:51.20 ID:ytf7dk5Ud.net
皆さんレスありがとうございます。

sheetjsを調べてみます。
Java poiはインストールされています。

395 :デフォルトの名無しさん :2020/12/07(月) 10:06:30.93 ID:dnWGY9bnr.net
益々謎が深まるばかりだな
だったらブラウザなんて使わず操作画面から通信まで全部Javaで作ればいいのに

396 :367 :2020/12/07(月) 17:23:01.27 ID:s3DToMe4d.net
すでに使われているwebシステムの回収で、ボタンを押したら、ローカルexcelファイルのファイル選択ダイアログを表示して選択する。
メイン画面で登録を押したら、excelファイルから必要な情報を取り込んでDBに登録する機能追加なんです。
sheetjsでやることに決めました。
後、画像もファイル選択ダイアログでよみこんで、リンクで表示できるようにする。登録で初めてサーバーにアップロードするという機能追加です。

397 :デフォルトの名無しさん :2020/12/22(火) 13:54:36.05 ID:BKKJJQMZ0.net
http://s.kota2.net/1608612653.png

画像の様なグリッドの中でA,Bなどの矩形の面積が一番多く含まれる
グリッド(赤色部分)の座標を得たいのですが、どのように考えたらよいのでしょう?
この手の考え方は皆目わかりません。

398 :デフォルトの名無しさん :2020/12/22(火) 14:42:45.10 ID:4jX11jcP0.net
矩形の中心点が含まれるグリッドを計算しろ

399 :395 :2020/12/22(火) 14:48:28.47 ID:BKKJJQMZ0.net
なるほど。ありがとうございます。
それで試してみます。

400 :デフォルトの名無しさん:2020/12/23(水) 02:46:19.78 ID:qoTDedlh.net
templateタグをcloneしてすぐそれにidを追加したいんすけど
なんか無理っぽいですね??
appendした後にその要素を特定する作業(追加した最後の要素を見つける)をしてから
その要素を改めて取得してから、idを追加することはできるみたいですけど
どうにかなりませんかね

401 :398 :2021/01/05(火) 07:55:22.65 ID:RngV7BRKd.net
初見失礼します。

私は今、スマホのメモ帳系のアプリでjavascriptを勉強しています。

それなりに行数増えてきたので、そろそろ外部JSファイルからの読み込みに手をつけてみようと思い、
いろいろなサイトを見ながら四苦八苦していたのですが、殆ど上手く行きません。

何故か唯一、test.jsという名前のファイルだけ正常に開けているのが現状です。
そのファイルの名前に、2とかつけると読み込まれなくなります。

test.jsは何か特別な機能を持ったファイルなのでしょうか?

また、外部jsファイルを普通に読み込めない原因について、見当のつくことがあったら教えて貰いたいです。

よろしくお願いします。

402 :399 :2021/01/05(火) 07:56:15.13 ID:RngV7BRKd.net
さっきの名前欄のレス番間違えました。

403 :デフォルトの名無しさん :2021/01/05(火) 12:18:47.00 ID:zD1ciQHW0.net
この板よりも、web制作管理板の方へ書き込んで、聞いて下さい!
この板のスレは、一時的に作られたものなので

JSFiddle のサイトなどで、コーディングすれば?

基本、HTML, CSS, JavaScript の3つのファイルが必要です

たぶん、何かのファイルに、test.jsを読み込むように書かれているだけでしょう

404 :399 :2021/01/05(火) 14:14:30.47 ID:9ncSzFMad.net
>>403
ありがとうございます。

また色々と検索、勉強してみます。

405 :デフォルトの名無しさん :2021/01/05(火) 14:40:22.86 ID:tS+yAQzda.net
>>401
どういうエラーメッセージが出ているの?

406 :デフォルトの名無しさん :2021/01/05(火) 14:43:42.88 ID:Uu3wwMSXM.net
>>405
ディスプレイに「エライこっちゃ」と表示されます

407 :デフォルトの名無しさん :2021/01/05(火) 16:55:55.29 ID:S6fGmzIM0.net
>>401
安くてもいいから、とりあえずPCとかMacとか呼ばれている電子計算システムを購入したほうがええで。
JAVA Script学ぶのはそのあとでいい。

408 :デフォルトの名無しさん :2021/01/05(火) 17:01:53.12 ID:S6fGmzIM0.net
そしてGoogleの提供してるビジュアルプログラミング環境
現在はJAVA SCRIPTでコードジェネレート出来る。
https://developers.google.com/blockly/

409 :デフォルトの名無しさん:2021/01/05(火) 18:13:58.89 ID:dtgDs0Q+M
ブラウザの開発者モードを表示してクッキーをコピペで書き換える作業が辛くて、
javascriptで書き換えようと思ったのですが、
httponly属性が付いていて出来ません
何とか出来ないでしょうか

410 :デフォルトの名無しさん :2021/01/26(火) 16:31:42.32 ID:pYM5EHna0.net
modalってもしかしてjqueryのほうがVueより全然簡単?
Vueだとよくわからんエラーばっかり出るわ

411 :デフォルトの名無しさん:2021/02/11(木) 02:23:58.54 ID:VegncXCD+
プログラミングにはやってはいけない勉強法がある!?爆速で成長する王道のプログラミング学習法を紹介!
https://www.youtube.com/watch?v=ZJqVQJwvwNI
あなたの技術力が伸びない本当の理由!体系的な問題解決方法を学べ!
https://www.youtube.com/watch?v=K579MYZgti0
慶應主席レベルの秀才がプログラミングの独学に失敗した理由
https://www.youtube.com/watch?v=F2m1bsqaAHg
知らずに転職したら失敗する!ブラックIT企業を見分ける11のポイントを徹底解説
https://www.youtube.com/watch?v=a8qDFMsYAqM
営業マンが独学のみでプログラマーに転職して1年で月収80万超えた話
https://www.youtube.com/watch?v=94YQSckQGCs
未経験から2年でフリーランスエンジニアに!安定的に稼げるようになるための5ステップ
https://www.youtube.com/watch?v=oGNpEmFOEcU
フリーランスエンジニアになるなら大規模ベンチャー or 小規模ベンチャー どっち?
https://www.youtube.com/watch?v=-39tg9icRlU
生産性10倍!知らないと損する3つの最強デザインツール
https://www.youtube.com/watch?v=z6x1R1455Kc

412 :デフォルトの名無しさん :2021/02/14(日) 05:19:12.94 ID:+oGfnxrkM.net
オフショアの人らが全く同じ関数を1つの.jsの中で3回も書いてた…
動いてるし俺の担当じゃないから触らなかったけど

413 :デフォルトの名無しさん :2021/03/02(火) 05:22:50.76 ID:LrhU88Z30.net
Adobe製品がこれで動作するから使い始めた

414 :デフォルトの名無しさん :2021/03/02(火) 20:14:12.81 ID:TGKntu6+M.net
>>413
PhotoShopも?

415 :デフォルトの名無しさん :2021/03/03(水) 10:06:47.42 ID:Jucxwhrg0.net
全機能を制御できるわけではないけど、
PhotoshopでもJavaScript(extend script)は使えるよ。

416 :デフォルトの名無しさん :2021/03/03(水) 10:51:04.90 ID:H0i/cbqk0.net
>>415
よっしゃ!
で、なにができますの?

417 :デフォルトの名無しさん :2021/03/03(水) 10:51:27.69 ID:D2xhgaADM.net
>>415
よっしゃ!
で、なにができますの?

418 :デフォルトの名無しさん :2021/03/04(木) 18:56:07.87 ID:h0znVjIN0.net
>>414
もちろん
https://www.adobe.com/devnet/photoshop/scripting.html

419 :デフォルトの名無しさん :2021/03/12(金) 15:48:21.50 ID:LA00op8vd.net
一回躓くと次の一歩踏み出すのが困難なのは何でも同じか〜とか考えながら勉強の日々

420 :デフォルトの名無しさん:2021/03/14(日) 18:13:43.56 ID:XMH1AJguA
「ブラック企業社員」のお助けアプリが誕生 開発したのは22歳金髪大学生、開発のきっかけとは?
https://news.yahoo.co.jp/articles/b9d5e3b84e4aa78fab64d3eb8e0c02f72911287e
レシート買い取りアプリONEの17歳起業家、サービス一時停止から「怒涛の3カ月」で気づいたこと
https://www.businessinsider.jp/post-175983
ビジネス版マッチングアプリ「yenta(イェンタ)」全国展開 開始!
https://prtimes.jp/main/html/rd/p/000000023.000021544.html
ギフティング「TANP」運営がGCPほかから5億円調達
1日1200件の「リアルギフト」送付も可能に、U25起業家の新たな挑戦
https://thebridge.jp/2019/08/gift-ec-tanp-raised-500m-yen-from-gcp
アプリ開発での起業は難しくない!成功するために覚えておくべきこと
https://www.biz.ne.jp/subject/blog/2004433/
【稼ぎ方が知りたい!】アプリの開発の収入って実際どれくらい?
https://itpropartners.com/blog/1657/
ネット関連事業で起業した成功例8選!ネットで成功するには○○が重要!?
https://www.official.or.jp/internet-entrepreneurship-success/

421 :デフォルトの名無しさん :2021/03/16(火) 09:49:45.28 ID:cgV0lGB90.net
javascritpは文法がしっかりしてないから
最初に学ぶには非推奨だね
学習体系がしっかりし参考情報が豊富な言語から始めたほうがいい

422 :デフォルトの名無しさん :2021/03/16(火) 19:45:10.52 ID:1XRg7m9v0.net
>>421
どこがしっかりしてない?

423 :デフォルトの名無しさん :2021/03/16(火) 20:15:20.99 ID:Z8nieuaQM.net
>>422
変数に関数が代入できること

424 :デフォルトの名無しさん :2021/03/16(火) 20:32:36.45 ID:KskiDkBIr.net
>>423
第一級関数と文法の関係性は?

425 :デフォルトの名無しさん :2021/03/16(火) 20:55:27.51 ID:A0PxCKQ0a.net
中途半端な変数宣言がちょっとね
整数とちゃんと宣言するか
まったく宣言しないかどちらかにしてほしかった

426 :デフォルトの名無しさん :2021/03/16(火) 20:58:41.67 ID:FsMQS6uyM.net
その基準で除外したらモダン言語ほぼ全滅じゃね

427 :デフォルトの名無しさん :2021/03/16(火) 20:59:24.04 ID:FsMQS6uyM.net
>>426>>423

428 :デフォルトの名無しさん :2021/03/16(火) 21:29:17.58 ID:fMHJVTaAa.net
JSXっってbabelで変換しないとnodeで動かんのか?

429 :デフォルトの名無しさん :2021/03/16(火) 22:17:20.61 ID:Z8nieuaQM.net
関数の引数に関数というのがあるけど
その引数の関数の中からは外のすべての変数にアクセスできるの?

例は
something.addEventListener(function(){
この中から外の変数はすべて見えるのか
});

430 :デフォルトの名無しさん :2021/03/16(火) 22:24:28.16 ID:vnvvoE6k0.net
>>426-427
だよね

>>423
お勧めの言語は何?

431 :デフォルトの名無しさん :2021/03/16(火) 23:07:50.72 ID:Z8nieuaQM.net
>>430
Javaだ

432 :デフォルトの名無しさん :2021/03/16(火) 23:33:01.12 ID:J1HBzpcA0.net
すまん、変数に関数を代入できちゃ初学者に向いてない理由がわからんのだが

433 :デフォルトの名無しさん :2021/03/16(火) 23:51:36.72 ID:vnvvoE6k0.net
>>431
Javaも第一級関数あるから>>423の理由でお勧め出来ないはずでは?
https://qiita.com/YutaKase6/items/2ff6cba4b059dde92b8b

434 :デフォルトの名無しさん :2021/03/16(火) 23:55:56.03 ID:vnvvoE6k0.net
>>433は間違いなので忘れて
お勧めというかJavaしか知らないから他言語に慣れてないだけなんじゃないの?

435 :デフォルトの名無しさん:2021/03/19(金) 01:31:12.91 ID:viE/4wrJg
創価学会公明党は
イチ漫画家志望者の仲間健之介
大阪の本名)仲間健二という人間を10年にわたって盗聴盗撮生配信を行っている。
何年にもわたりリンチを加えている。

仏罰で仲間が自殺するまで続けるらしい
集団ストーカー犯罪

436 :デフォルトの名無しさん :2021/03/26(金) 19:37:25.16 ID:HXfe9mSBa.net
F12 > Ctrl + Shift + K
以下の二行をコピペして一度に実行後、リンクをクリック

'knar-csed-etad=s&tpircsavaj=k?s/pj.oc.nozama.www//:sptth'
.split('').reverse('').join('')

437 :デフォルトの名無しさん:2021/04/22(木) 13:40:05.75 ID:Wc1Mrwyv.net
document.querySelectorAllの:last-child使えなくなってる??
セレクタでjqueryでいうところの:eq()があればいいのにな

438 :デフォルトの名無しさん :2021/04/22(木) 20:12:48.08 ID:8EAXe+l90.net
:last-childはマッチした中の最後じゃないで?

439 :デフォルトの名無しさん :2021/04/23(金) 05:59:03.22 ID:mhaEwNEM0.net
>>437
[0]を忘れてるのでは?
querySelectorの方が良いと思うけど

440 :デフォルトの名無しさん :2021/04/29(木) 08:41:41.15 ID:+/R4Bs830.net
(function aaa(){})のように関数を()で囲むのはどういう意味があるんですか?

441 :デフォルトの名無しさん :2021/04/29(木) 09:34:41.24 ID:Z1D+EN2jM.net
>>440
関数が寒くて風邪をひかないように服を着せているんです。

442 :デフォルトの名無しさん :2021/04/29(木) 10:05:07.56 ID:BtaOKSdt0.net
>>440
ここで質問している人は回答を貰っても何故無反応なのですか?

443 :デフォルトの名無しさん :2021/04/29(木) 10:27:52.89 ID:RErNGDPY0.net
IIFE (Immediately Invoked Function Expression; 即時実行関数式) は、
定義されるとすぐに実行される、JavaScript の 関数 です

関数を定義して即実行したい場合、( ) で囲んで、式にする

JS の質問は、web制作管理板の方へ書き込んでください!
この板のスレは、荒らしが出た時に、緊急避難用に作られたものだから

444 :デフォルトの名無しさん :2021/04/29(木) 12:23:48.15 ID:+/R4Bs830.net
>>443
どうもどうも
web版のスレは新スレが立ってないのでこっちに書いてみた

445 :デフォルトの名無しさん :2021/05/03(月) 00:14:59.29 ID:8d3P1jQsp.net
仕事でWebアプリケーションを作ってる方にお聞きしたいんですが、
jsやcssをいわゆるmin化するのに何使ってます?

Web上のサービスでやるのはセキュリティ的によろしくないのでローカルで完結できるものがあればと思いまして調べたら何個かあるみたいなのですが、主流はどれなのかなと…

446 :デフォルトの名無しさん :2021/05/03(月) 17:20:40.35 ID:iRbOallH0.net
全Rubyistに今すぐ伝えたいwebpackとwebpacker
https://qiita.com/jesus_isao/items/1f519b2c6d53f336cadd

Ruby on Rails では、この2つを使っているらしい

webpacker の内部のpackage.json

"mini-css-extract-plugin": "^1.0.0",
"terser-webpack-plugin": "^4.0.0"

この2つは、webpack のサイトにも載ってる
https://webpack.js.org/plugins/

447 :デフォルトの名無しさん :2021/05/07(金) 11:11:04.70 ID:37C3PSFQ0.net
質問です。

下記みたいに複数の配列の各要素を合算した配列を作成するために、
スマートなやりかたはありますでしょうか。

function sumItems(hogearray, fugaarray){
let len = hogearray.length;
let sumarray = [];
for (var i = 0; i < len; i++) {
sumarray.push(hogearray[i] + fugaarray[i]);
}
return sumarray;
}

let arr1 = [1, 2, 3, 4];
let arr2 = [4, 5, 6, 7];

console.log(sumItems(arr1, arr2));
→(4)?[5, 7, 9, 11]

上記のsumItemsをもうちょっと賢く行いたいです。
lodashもざっくり見たのですが無さそうなので・・・。
(本当に欲しいものはこのような配列を不特定多数渡して合算した配列を作りたいです。
 ChartJsの積み上げグラフで、合計の線グラフを差し込むのにあればいいなと思っています)

448 :デフォルトの名無しさん :2021/05/07(金) 12:18:29.36 ID:wve6cwVf0.net
>>447
for使うコードとしては十分にスマートだと思うが…
関数型がスマート打と思うならArray#mapとか

449 :デフォルトの名無しさん :2021/05/07(金) 14:03:34.51 ID:37C3PSFQ0.net
>>448
なるほど!Array.mapにindex使えばよかったんですね!
これで出来ました!(newarrのところ)

function sumItems(hogearray, fugaarray){
let len = hogearray.length;
let sumarray = [];
for (var i = 0; i < len; i++) {
sumarray.push(hogearray[i] + fugaarray[i]);
}
return sumarray;
}

let arr1 = [1, 2, 3, 4];
let arr2 = [4, 5, 6, 7];

let newarr = arr1.map((value, index) => {
return value + arr2[index]
});

console.log(sumItems(arr1, arr2));
console.log(newarr);


(4)?[5, 7, 9, 11]
(4)?[5, 7, 9, 11]

ありがとうございました!

450 :デフォルトの名無しさん :2021/05/07(金) 14:50:50.30 ID:KJXYv0kP0.net
無理に関数型で書くのはどうかと思う
↑で十分

451 :デフォルトの名無しさん :2021/05/07(金) 21:41:50.48 ID:wve6cwVf0.net
>>450
スマートというふわふわした理由でfor文を毛嫌いしないで欲しいとは思う

452 :デフォルトの名無しさん :2021/05/07(金) 22:28:49.44 ID:Z7WMK8Ny0.net
Ruby では、zip で、

pp result = [1,2,3].zip( [4,5,6], [7,8,9] ).map( &:sum )

出力
[12, 15, 18]

453 :446 :2021/05/07(金) 22:34:04.42 ID:Z7WMK8Ny0.net
Lodash にも、zip ある

_.zip( ['a', 'b'], [1, 2], [true, false] );

// [ ['a', 1, true], ['b', 2, false] ]

454 :デフォルトの名無しさん :2021/05/08(土) 08:52:00.58 ID:7rFmOzwXM.net
極論だけどあんまり内包表記とかラムダ式とか関数型的な書き方ばかりしてるとあの人のコードは短いけど読みにくいから一緒に仕事したくないって言われるぞ

455 :デフォルトの名無しさん :2021/05/08(土) 19:17:06.73 ID:WfIS/Rbs0.net
var data_array = [];

〜いろいろと処理〜

このとき、処理に分岐によって、配列を空にしたときって
data_array.splice(0);
っとしているのですが、配列を空にするなら
data_array = []の方がいいのでしょうか?

456 :デフォルトの名無しさん :2021/05/08(土) 20:14:59.28 ID:S9UZYXd4F.net
data_array.length = 0;

457 :デフォルトの名無しさん :2021/05/10(月) 01:09:13.09 ID:+rwW6yZ/0.net
https://jsfiddle.net/s1awpc0b/

すみません、JS、jQuery初心者なのですが質問させてください。
「リストの中の文字をホバーしたら、タイトル内のテキストがその文字列に置き換わる」
という機能を実装したいと考えております。

しかし、実際にやってみると、何故か最初に一回変わるだけで他のリストにホバーしても
最初と同じ文字列が出てきてしまうのと、ホバーを外した際にタイトル内のテキストを
元の文字に戻す方法が分からず、困っております・・・

この場合、有効な手段などあれば教えて下さい。よろしくお願いします

458 :デフォルトの名無しさん :2021/05/10(月) 01:32:31.24 ID:J1VXMlcp0.net
.parent(ttl)ってbodyを指してるからじゃないの
jqueryは知らんからどう置き換えたらいいかは分からんけど

459 :デフォルトの名無しさん :2021/05/10(月) 02:00:41.51 ID:KPRKVCIQ0.net
ttl.find('p').text(navtxt);

460 :デフォルトの名無しさん :2021/05/10(月) 23:59:24.06 ID:ViCp850r0.net
const navtxt = $(this).find('p').text();

find() メソッドは、提供されたテスト関数を満たす配列内の、最初の要素 の 値 を返します。
最初の要素だから、p が複数あるなら、別々に指定しないといけない

テスト1 のp
テスト2のp
テスト3のp

個別に、クラスか何かを付ければ?

461 :デフォルトの名無しさん :2021/05/11(火) 02:35:02.21 ID:x0DsNnEv0.net
var l = data_array.length;
if (l > 51) {
l = 50;
}
for (var i3 = 0; i3 < l; i3 += 1) {〜略〜}

なんか、書き方がダサい気がする、かっこよくて見やすい書き方
をご教授願います。

462 :デフォルトの名無しさん :2021/05/11(火) 02:53:40.06 ID:PayOhuVJ0.net
const l = Math.min(data_array.length, 50)
for(let i3 = 0; i3 < l; i3++){}

変数名がダサいのは直してない

463 :デフォルトの名無しさん :2021/05/11(火) 03:24:41.76 ID:x0DsNnEv0.net
>>462
早速の回答、ありがとうございます。
変数名や関数名の付け方がよくないのは
上司によく言われますが、直しません。

464 :デフォルトの名無しさん :2021/05/11(火) 03:50:48.88 ID:62zfmCQO0.net
Ruby なら、Range で、0以上・len未満

( 0...len ).each { |index| p index }

出力
0
1
2

465 :デフォルトの名無しさん :2021/05/11(火) 06:41:38.89 ID:OOK6Bznl0.net
>>462
l=51の時、>>461と結果が違う

466 :デフォルトの名無しさん :2021/05/11(火) 13:35:37.63 ID:x0DsNnEv0.net
>>465
すいません。元のコードが間違えていました。
lに入る値の最大値が50が正しいです。

467 :デフォルトの名無しさん :2021/05/13(木) 23:48:22.88 ID:VBQJX34F0.net
複数の画像を全て読み込んでからfunc1を実行したい場合、このような書き方で間違いがあったら教えてください
var img_obj_list = [];
var img_file_list = ["./test1.png","./test2.png","./test3.png"];

for(let n=1;n<=3;n++){
img_obj_list[n-1] = new Image();
img_obj_list[n-1].src = img_file_list[n-1];
}

var img_load_count = 0;

for(let n=1;n<=3;n++){

img_obj_list[n-1].onload = function(){

img_load_count++;

if(img_load_count == 3){

func1();

}
}
}

function func1(){alert("");}

468 :デフォルトの名無しさん :2021/05/14(金) 00:39:39.82 ID:MdZ1BMbg0.net
細かくは確認してないけどonloadはpromiseでwrapするといい

469 :デフォルトの名無しさん :2021/05/14(金) 00:40:22.23 ID:QMgVBpCt0.net
画像の読み込み完了は、非同期処理か。
そりゃ難しい

async/await とか使えないのか?

470 :デフォルトの名無しさん :2021/05/14(金) 02:11:40.87 ID:iF93BKYb0.net
>>467
Promise.allを使うか、handleEventを持つオブジェクトにload回数を埋め込んで管理すれば良い

471 :デフォルトの名無しさん :2021/05/14(金) 07:15:30.72 ID:GbcY98b30.net
promiseっていうやつですか
調べてみます

472 :デフォルトの名無しさん :2021/05/15(土) 08:00:49.27 ID:cqN6MRht0.net
aaa.pngという幅100ピクセル、高さ100ピクセルの画像があるとして

<img src="aaa.png" id="aaa">

var elm = document.getElementById("aaa");
var rect = getBoundingClientRect();
としたら
rect.leftが8でrect.rightが108でした。

これって幅が101になるのでおかしくないですか?
rect.rightは107にならなければならないのに。

473 :デフォルトの名無しさん :2021/05/15(土) 08:24:12.13 ID:cqN6MRht0.net
訂正elm.getBoundingClientRectです

474 :デフォルトの名無しさん :2021/05/16(日) 00:04:05.86 ID:R/k6sd0e0.net
正直言って、

(a)=>{

475 :デフォルトの名無しさん :2021/05/16(日) 00:07:02.23 ID:R/k6sd0e0.net
間違いw

正直言って

(a)=>{
 bar(a);
}

を引数に渡すのって可読性どうなんだろう?数学的には
美しいのかもしれないけど、世の中の大部分のプログラムは
そういうところまで行ってないプログラマが組んでるわけで。

そのうち、「大多数のプログラマにとって理解しやすいかどうか」理論
みたいのが出てこないかと…。

476 :デフォルトの名無しさん :2021/05/16(日) 07:43:31.39 ID:dwn8WkYe0.net
「大多数のプログラマ」じゃなくて「一年後の自分」で考えればいい
一年経ったら成長するだろ?その時に自分が辛くなるようなコードを書きたいと思うか?

プログラマを一年程度で使い捨てにしているところなら、
そりゃ一年以内の知識だけでやりゃあいいだろうさ
一年後にはプログラマをやってないわけだからな

成長するたびに自分が苦しくなるようなコードを
書き続けなければいけないのは地獄だってわかるかい?

477 :デフォルトの名無しさん :2021/05/16(日) 07:43:31.96 ID:F1fTQsai0.net
四則演算も出来ないのか....

478 :デフォルトの名無しさん :2021/05/16(日) 10:19:50.12 ID:cOSshUEk0.net
>>475
その関数だけ見せられてもなにを意図したコードかわからんからなんともいえない

479 :デフォルトの名無しさん :2021/05/16(日) 12:32:29.26 ID:WhxfrR+Z0.net
>>477
x座標8〜108だと101ピクセルあるので幅101になる
108-8=幅100ピクセルではない
なので107にならなければおかしいので間違ってないですよ

480 :デフォルトの名無しさん :2021/05/16(日) 18:22:27.95 ID:8eqrVBsX0.net
>>479
width=0ならleft,right値が何になると思ってる?

481 :デフォルトの名無しさん :2021/05/16(日) 19:39:53.23 ID:8eqrVBsX0.net
>>472,479
あなたのロジックではこうなる

width=100なら、left=8,right=107
width=1なら、left=8,right=8
width=0なら、left=8,right=7

座標に1*1pxの実体があると認識してそう

482 :デフォルトの名無しさん :2021/05/16(日) 19:59:20.58 ID:8eqrVBsX0.net
>>475
コードが断片的でわからんが、https://medaka.5ch.net/test/read.cgi/prog/1582181395/27 のことか?
> 27 仕様書無しさん 2020/05/24(日) 15:41:00.93
> 最近の言語って、
>
> Button.addEventListener('click', () => {
> //TODO ずらずらー
> })
> みたいな書き方が、主流のようなんだけど、
>
> 関数は関数できちんと宣言して書いて
> ButtonClick_Function(){
> ずらずらー
> }
> 他の関数(){
> ずらずらー
> }
>
> で、メインの部分で
>  Button.addEventListener('click', ButtonClick_Function());
>  オブジェクト.addEventListener('他のイベントA', 他の関数A());
>  オブジェクト.addEventListener('他のイベントB', 他の関数B());
>  オブジェクト.addEventListener('他のイベントC', 他の関数C());
> と、ロジックはロジック、コールはコールとかで並んでたほうが可読性高くね??
> (以下略)

483 :デフォルトの名無しさん :2021/05/16(日) 21:30:12.14 ID:WhxfrR+Z0.net
>>481
MSペイントを拡大してドットを打つと一番左上のドットが(0,0)で右隣が(1,0)になってるよ

484 :デフォルトの名無しさん :2021/05/16(日) 22:14:20.49 ID:8eqrVBsX0.net
>>483
MSペイントとCSSで同一のロジックが通用する根拠は何だ?

485 :デフォルトの名無しさん :2021/05/16(日) 22:43:10.57 ID:WhxfrR+Z0.net
<img src="test.png" id="test" style="border:Solid 20px #0000ff;padding:10px ">
の画像のブラウザ上での絶対座標はどうやって求めるんですか?
getBoundingClientRectのleft,topだとborderとpaddingを含んだ座標になるので
これらを含まない画像のみの座標で

486 :デフォルトの名無しさん :2021/05/16(日) 22:55:03.32 ID:hDCl+pisr.net
htmlと画像は別物なんだから同じサイズになるわけないだろ
あとhtmlは仮想サイズ使ってるからドットバイドットじゃない

487 :デフォルトの名無しさん :2021/05/16(日) 23:19:05.48 ID:8eqrVBsX0.net
>>480,484はスルーか

488 :デフォルトの名無しさん :2021/05/17(月) 01:35:41.32 ID:gVr4HB+y0.net
HTML の要素内の位置とか、求めるのは無理じゃないか?

ピクセル操作なら、WebGL, Canvas みたいな所に描かないと無理かも

489 :デフォルトの名無しさん :2021/05/17(月) 08:40:57.94 ID:P4sOaxft0.net
>>486
html上の座標もpxピクセルで指定するのに何が違うのかわからん
>>487
width=0ならleft=8,right=7になるのでwidth=0ならエラー処理にする

490 :デフォルトの名無しさん :2021/05/17(月) 20:48:45.14 ID:jWYFqK5I0.net
>>489
CSSボックスモデルはwidth=0を認めているのでエラー処理にするのは間違い

491 :デフォルトの名無しさん :2021/05/18(火) 08:20:27.46 ID:5OXOj7Ej0.net
やっとわかった
ワイが言ってたのはグリッド座標ではなくピクセル座標のことか
四角形の場合ピクセル座標の右端を+1すればグリッド座標になるな
左端は同じだけど

492 :デフォルトの名無しさん :2021/05/18(火) 08:27:50.81 ID:5OXOj7Ej0.net
>>488
element.clinetLeftで左側のborderの幅を、element.clinetTopで上側のborderの幅をピクセルで取得できるので
getBoudingClientRectのleftとtopの座標にそのぶん加算すれば座標取得できたけど
問題はpaddingの幅をピクセルで取得できないこと
element.style.paddingLeftだとem指定の場合ピクセルで取得できないし

493 :デフォルトの名無しさん :2021/05/18(火) 08:48:41.79 ID:+V2+gEGW0.net
>>492
computedStyle

494 :デフォルトの名無しさん:2021/05/23(日) 14:05:12.55 ID:XOXv7yfnC
文字列を一文字ずつ分割して配列に入れる[Javascript]
https://qiita.com/DecoratedKnight/items/70b9ae716ba144e683ac
JavaScriptで1文字ずつ表示するサンプルをドラクエ風に作ってみる
https://blog.ver001.com/javascript-message-typing/
JavaScriptでタグの中身を1文字ずつ表示する
https://note.com/cm11_ike/n/n9e82dd3897ef
【JavaScript】入力した文字を先頭から1文字ずつ表示させる方法
https://wagtechblog.com/programing/html-javascript-increase-text.html
JavaScriptで文字列を1文字ずつ分割して配列に入れる方法を現役エンジニアが解説【初心者向け】
https://techacademy.jp/magazine/32457

495 :デフォルトの名無しさん :2021/05/30(日) 12:34:06.53 ID:V/qTlijF0.net
ググるとforは普通のカウンターがだいたい最速のようですが
普通の言語は高速化のためにeach系があるはず

でも自分のサイトはEgdeで見る限り、forEachの方が若干速いような(ほとんど差はないですが)
forEach>forカウンター>for of
(for ofはforEachの改良版だと思ったんですが…)

でも基本的にjavascriptは驚くほど速いと思います
カウンターとeach系があまり変わらないのはeach系の性能が悪いというより、添え字検索が工夫されてるんでしょうか?
最後に見た要素の位置が保持されてて、次に来た添え字が1つ上なら再検索せず、each系のように次を返すとか

496 :デフォルトの名無しさん :2021/05/30(日) 13:00:26.46 ID:Gk//zzeB0.net
そりゃ固定長の配列なら、リストをたどらないで、数値インデックスだけで計算できる。O(1)

例えば、8バイト固定長で[100]なら、800バイト先に内容のアドレスが書いてあるから、
そのアドレスから内容を読み込めばよい

一方、Elixir の片方向リストでは、先頭要素だけが速いだけで、
末尾要素はリストをたどって行くから、O(N)

Ruby では両方向リストだから、末尾も速いけど、メモリを食う

つまりデータを、固定長の配列の並びか、リストで構成しているかによる

497 :デフォルトの名無しさん :2021/06/01(火) 16:14:06.00 ID:IytVAIyJ0.net
http://newpuru.doorblog.jp/
このサイトは何でfeedを取得しているのでしょうか?
ライブドアブログなのでphpは使えないはずです。

498 :デフォルトの名無しさん :2021/06/01(火) 18:22:57.66 ID:Dbf622Mk0.net
どこかのサーバーで、Ruby など何かの言語で、データを集めておいて、
JavaScript(JS)で、そのサーバーにアクセスして結果をもらっているとか?

それか、サーバーを使わずに、
JSで直接データを集めて、集計しているとか?

499 :デフォルトの名無しさん :2021/06/02(水) 19:45:33.58 ID:WXREuJ2A0.net
javascriptでh1やh2を検出して、ページ内リンクを作ることは可能ですか?
ライブドアブログで作ろうかと思います。
アンカーつけるのが面倒なので。

見出しにはアンカーはありません。
その場合でも場所を指定して、飛べるんでしょうかね。

500 :デフォルトの名無しさん :2021/06/02(水) 20:23:28.73 ID:/y2aURPw0.net
jQueryですぐできそう

501 :デフォルトの名無しさん :2021/06/02(水) 20:54:14.32 ID:zWQOQ4Z00.net
他の言語とかフレームワークのスレ行ってみたけど糞みたいな流れでうんざりしました
ここの住人いい人多かったのね…
いつもありがとうございます。

502 :デフォルトの名無しさん :2021/06/03(木) 02:44:28.14 ID:Ers5yK+g0.net
本当は、web制作管理板で、JavaScript のスレを立てるべきだけど、誰も立てない。
jQuery のスレはある

この板のスレは、web制作管理板が荒らされた時に、緊急避難用に立てられたもので、
本来は板違い

503 :デフォルトの名無しさん :2021/06/03(木) 07:23:01.03 ID:5tjzxwfy0.net
Web制作板は荒れ放題だったし、存在価値を感じない
質問者のマナーの悪さはこちらでも変わらない

504 :デフォルトの名無しさん :2021/06/03(木) 12:05:06.51 ID:IjUlafEd0.net
>>500
jqueryありじゃないとだめなのですか。
なんにしろ見出しにidを付与しないとだめですよね

505 :デフォルトの名無しさん :2021/06/03(木) 12:11:00.36 ID:Ers5yK+g0.net
素のJavaScript は、ややこしい

そのブログシステム自体が、jQuery を使っているかも知れない。
その場合、そのまま使えるかも

506 :デフォルトの名無しさん :2021/06/03(木) 12:22:40.14 ID:IjUlafEd0.net
jQuery学ぶのも大変なのでjsでやろうとしてます
とりあえず動的にidを追加することがまず必要ですよね

507 :デフォルトの名無しさん :2021/06/03(木) 13:24:01.98 ID:OUEycLqE0.net
idを付けずに実現するとしたら……
・querySelectorAll()で見出し要素をリストアップして表示
・それぞれのonclickイベントにwindow.scrollBy()でその要素の座標に飛ぶ関数を充てる
とか

508 :デフォルトの名無しさん :2021/06/03(木) 14:33:40.15 ID:yp2V3QDA0.net
>>499
テンプレのFAQ>>3が素のJSで書いていた
hx要素を拾ってid拾うだけだし、そんなに難しくはない

509 :デフォルトの名無しさん :2021/06/03(木) 14:36:56.38 ID:yp2V3QDA0.net
>>506
@適当なプレフィックス文字列を指定して、後ろに連番を付ける
Aid衝突確認→衝突したらインクリメントし続ける

510 :デフォルトの名無しさん :2021/06/03(木) 16:51:19.75 ID:IjUlafEd0.net
>>507 501 502
ありがとうございます。
つまづいたらまた来ます。

511 :デフォルトの名無しさん :2021/06/03(木) 17:35:57.65 ID:T3CLqBZA0.net
>>506
jQueryは学習コストめちゃんこ低いよ
慣れたら素のJSでDOMいじるのだるくなる

512 :デフォルトの名無しさん :2021/06/03(木) 20:57:45.05 ID:Lw6VCoxx0.net
教えてください。
https://gist.github.com/withmama/2925509

(function (global, oDOC, handler) {
〜中略〜
if (oDOC.readyState == null && oDOC.addEventListener) {
oDOC.readyState = "loading";
oDOC.addEventListener("DOMContentLoaded", handler = function () {
oDOC.removeEventListener("DOMContentLoaded", handler, false);
oDOC.readyState = "complete";
}, false);
}
})(window, document);

上記のようなコードがあるのですが、引数にhandlerに値を渡していないのに
handlerが引数にあります。
これって何か意味があるのでしょうか?

(function (global, oDOC) {
var handler;
if (oDOC.readyState == null && oDOC.addEventListener) {
oDOC.readyState = "loading";
oDOC.addEventListener("DOMContentLoaded", handler = function () {
oDOC.removeEventListener("DOMContentLoaded", handler, false);
oDOC.readyState = "complete";
}, false);
}
})(window, document);
っでよくないでしょうか?

513 :デフォルトの名無しさん :2021/06/03(木) 21:06:53.79 ID:yp2V3QDA0.net
>>512
関数スコープで変数を生成するだけならどっちでもいい
最も変数はなくても実装可能だが

514 :デフォルトの名無しさん :2021/06/03(木) 21:20:16.57 ID:yp2V3QDA0.net
>>512
そもそも、readyStateは読み取り専用なのに再代入するとは…
仕様を理解しているとは思えんコードだな

515 :デフォルトの名無しさん :2021/06/03(木) 22:32:19.08 ID:Lw6VCoxx0.net
>>513
ありがとうございました。関数で変数生成しているのですね。
よく考えますと handler = function () でなくてもいいですね。下記のように。
oDOC.addEventListener("DOMContentLoaded", function() {
oDOC.removeEventListener("DOMContentLoaded", handler, false);
oDOC.readyState = "complete";
}, false);

>そもそも、readyStateは読み取り専用なのに再代入するとは…
そういえば、readyStateって勝手に値が変わるはずなのに、代入しないですね普通。

516 :デフォルトの名無しさん :2021/06/03(木) 22:54:07.50 ID:bve/jcTT0.net
>>515
それじゃremoveEventListenerに渡してるhandlerが…
でもそのブロックの上のコメント見るとFirefox3.5以下用のポリフィルみたいだから今時いらんでしょ

517 :デフォルトの名無しさん :2021/06/03(木) 23:08:16.39 ID:yp2V3QDA0.net
>>515
あなたのコードが間違っているのは2回目なんだが… >>466
検証済のコードを示すように心がけた方がいい

518 :デフォルトの名無しさん :2021/06/03(木) 23:12:45.89 ID:Lw6VCoxx0.net
/*
if (oDOC.readyState == null && oDOC.addEventListener) {
oDOC.readyState = "loading";
oDOC.addEventListener("DOMContentLoaded", handler = function() {
oDOC.removeEventListener("DOMContentLoaded", handler, false);
oDOC.readyState = "complete";
}, false);
}*/

こうですね。ありがとうございます。

519 :デフォルトの名無しさん :2021/06/03(木) 23:53:51.85 ID:Lw6VCoxx0.net
>>517
はい。ありがとうございました。

520 :デフォルトの名無しさん :2021/06/04(金) 11:50:08.32 ID:s3nDY94/0.net
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/String/link
javascriptではクラスという概念はないのでしょうか?
リンク先はdocumentクラスのlinkプロパティと考えているのですが、クラスという文字が出てきませんね。

521 :デフォルトの名無しさん :2021/06/04(金) 11:56:45.37 ID:s3nDY94/0.net
連投すみません。
prototypeというのは、クラスのプロパティにアクセスするための記述と考えてもいいでしょうか?
prototype=組み込み、といった意味だと思いますし、、、。

522 :デフォルトの名無しさん :2021/06/04(金) 12:13:36.89 ID:s3nDY94/0.net
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/String/link
javascriptでlinkメソッドが非推奨になったようですが、代わりに何を使ってリンクをつけるんでしょうか?

523 :デフォルトの名無しさん :2021/06/04(金) 12:14:09.97 ID:srwg4nuv0.net
>>520
糖衣構文としての class はあるが、クラスの概念はない
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Classes

[[Prototype]] とプロトタイプチェーンの理解が必要

524 :デフォルトの名無しさん :2021/06/04(金) 12:19:22.31 ID:srwg4nuv0.net
>>521
組み込みはビルトイン
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects

プロトタイプは原型の意だろう
https://www.weblio.jp/content/%E3%83%97%E3%83%AD%E3%83%88%E3%82%BF%E3%82%A4%E3%83%97
https://developer.mozilla.org/ja/docs/Web/JavaScript/Inheritance_and_the_prototype_chain

525 :デフォルトの名無しさん :2021/06/04(金) 12:20:38.14 ID:srwg4nuv0.net
>>522
createElement
https://developer.mozilla.org/ja/docs/Web/API/Document/createElement

526 :デフォルトの名無しさん :2021/06/04(金) 18:27:11.43 ID:s3nDY94/0.net
let get_ul = document.querySelector("#test_ul");
let str = "hogehoge";
get_h2.insertAdjacentElement("beforebegin",str);

こうするとstrはオブジェクトじゃない、というエラーが出ます。
javascriptにおいてのオブジェクトとは、dom、つまりhtmlの構造を持つもののことでしょうか?
文字列を入れたいのなら、htmlと連結するのでしょうか。

>>523,524,525
ありがとうございます。全部見させてもらいます。

527 :デフォルトの名無しさん :2021/06/04(金) 18:29:25.67 ID:i71rVHGC0.net
insertAdjacentText

528 :デフォルトの名無しさん :2021/06/04(金) 18:32:49.09 ID:s3nDY94/0.net
↑上でやりたかったことはタグの中に文字列を挿入したかったのです
<a></a>
↑ここに「あああ」をはさみたいのです
innnerhtmlより、insertadjacenthtmlがいいと聞いて使ってみたんですが、文字型はオブジェクトじゃないと、、、。

529 :デフォルトの名無しさん :2021/06/04(金) 18:38:54.51 ID:srwg4nuv0.net
>>528
textContent
createTextNode

530 :デフォルトの名無しさん :2021/06/04(金) 18:44:54.98 ID:srwg4nuv0.net
>>526
あなたはまず、DOMのノードの概念を学んだ方がいい
https://uhyohyo.net/javascript/2_1.html
HTMLタグで捉えるから本質とかけ離れた考え方をするようになる

531 :デフォルトの名無しさん :2021/06/04(金) 18:56:14.50 ID:s3nDY94/0.net
>>529
回答どうも
タグで包んだ場合はいけました

文字列だけの場合はtextContentですね

しかし、これはすべての内容物を書き換えてしまいます
そこでinsertadjacentを使いたかったです

532 :デフォルトの名無しさん :2021/06/04(金) 19:14:18.33 ID:srwg4nuv0.net
>>531
挿入ならappendChildでも良い

533 :デフォルトの名無しさん :2021/06/04(金) 20:28:32.31 ID:s3nDY94/0.net
>>532
ありがとうございます。
オブジェクトとそうでないものの違いってなんでしょうか?
全てはオブジェクトだと思うんですが。
stringはオブジェクトじゃないと。

534 :デフォルトの名無しさん :2021/06/04(金) 21:09:03.37 ID:s3nDY94/0.net
連投すみません。
既存のタグの中にある文字を挟み込むように、新たなタグを挿入するにはどうしたらいいのでしょうか?

<div id="target_div">もじ</div>
↑これを
<div id="target_div"><p>もじ</p></div>
↑こうしたいです

let target = document.querySelector("#target_div");
let parag = document.createElement("p");
target.insertBefore(spa);

https://gray-code.com/javascript/add-html-element/
appendChild,before,after,insertBeforeはどれも違うようです。
前のpと閉じpを別に挿入することはできそうです。

まずtarget_divに対してpタグを先に追加して、innerhtmlで文字列を挿入したほうがいいのでしょうか?

535 :デフォルトの名無しさん :2021/06/04(金) 21:45:58.82 ID:srwg4nuv0.net
>>533
オブジェクトでもあるが、ノード
困ったらMDNを読めば大体分かる
https://developer.mozilla.org/ja/docs/Web/API/Node/appendChild

>>534
replaceChild

いい加減、体系的に学ばないとリファレンスが読めるようにはならないと思うが >>530

536 :デフォルトの名無しさん :2021/06/05(土) 21:16:58.18 ID:LNHYK+7R0.net
javascriptでボタンを押したときにaaaという変数の値(現在100)を変えるには
<input type="hidden" id="aaa" value="200">というのを作って
ボタンを押したときに
var aaa = document.getElementById("aaa").value;を呼び出すというやり方でやっていますが
この方法以外で変数の値を変えるやり方あったら教えてください

537 :デフォルトの名無しさん :2021/06/05(土) 21:54:26.82 ID:i9T/HxKS0.net
>>536
ボタンが押されたどうこうは変数値を変える機能に直線関係していない

変数値を変えるのは代入演算子
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Operators/Assignment
グローバル変数ならdefineProperty等のプロパティ操作系機能も使える

538 :デフォルトの名無しさん :2021/06/06(日) 06:22:02.86 ID:weTrX2zS0.net
>>535
オブジェクトの種類の1つがノードってことですね
yagniってのを信じてて、使うことだけを勉強すると

>>530
domってのはつまり、ただの階層構造ですよね

539 :デフォルトの名無しさん :2021/06/06(日) 07:01:24.97 ID:AEZk3bsc0.net
現実で実践するのは良いがやり過ぎは友達無くすよ
文字通り要らんのかもしれんけど

540 :デフォルトの名無しさん :2021/06/06(日) 09:39:10.77 ID:6dX5kGmx0.net
javascriptの書物とか動画のおすすめとかある?
すでに書かれてあったらスマソ

541 :デフォルトの名無しさん :2021/06/06(日) 11:35:27.06 ID:weTrX2zS0.net
javascriptでは単なる文字列はオブジェクトではない、とみなされるようです
ノード(つまりタグ)に対して付与されるものであって、文字自体はオブジェクトじゃないということですよね

542 :デフォルトの名無しさん :2021/06/06(日) 12:08:34.85 ID:uClmKKSG0.net
んなあワケない

543 :デフォルトの名無しさん :2021/06/06(日) 12:46:12.70 ID:weTrX2zS0.net
>>542
どうも勘違いしていたようです
使用している関数の引数として適切ではないという意味だったようで

544 :デフォルトの名無しさん :2021/06/06(日) 12:57:18.59 ID:weTrX2zS0.net
insertAdjacentTextとinsertAdjacenetHtmlの違いってなんでしょうか?
<div>あああ</div>
どちらでも↑を↓の状態に出来ました。
<div><span>あああ</span></div>

動作の違いは感じられませんが

545 :デフォルトの名無しさん :2021/06/06(日) 13:11:29.85 ID:weTrX2zS0.net
↑ああ、分かりました
adjacenthtmlだと、"<span>"などとしたときに閉じタグが付与されますね 勝手に

546 :デフォルトの名無しさん :2021/06/06(日) 13:47:28.77 ID:deO9fsXQ0.net
これは、プロ用の初心者向けの本。
かなり難しい

初めてのJavaScript 第3版 ――ES2015以降の最新ウェブ開発、オライリー、2017

547 :デフォルトの名無しさん :2021/06/06(日) 17:40:54.85 ID:HeHF5+P0d.net
開眼JavaScript

548 :デフォルトの名無しさん :2021/06/06(日) 19:54:43.32 ID:weTrX2zS0.net
vscodeでjavascriptをhtml外から呼び出した場合、補完は効かないのですか?
htmlファイルとjsファイルを分けた場合、jsファイルでhtmlのidを取りたいなんていう場合
入力補完は当然出ません

このような場合はどうしてるのでしょうか?

549 :デフォルトの名無しさん :2021/06/07(月) 14:09:10.93 ID:Y/i97Tuu0.net
10数年ぶりにプログラミングやってみようかなと思い立った初心者です
JavaScriptをやってみようと思っているのですが、学習ルートとしてまずES6
その後TypeScriptに行くべきか、Reactに行くべきか迷っています
AltJSとフレームワークなので一概にどちらが先とは言えないかも知れませんが、あえて選ぶならどちらから学ぶべきでしょうか?
もちろん最終的にはReactをTypeScriptで書いてWebアプリを作ってみたいと思っています
どっちでも良いと言われるような気はするのですが、それでもあえて諸先輩方のご意見をお伺いしたいです

550 :デフォルトの名無しさん :2021/06/07(月) 14:43:46.50 ID:OvPzoGrd0.net
いずれTypeScriptやること決めてるならわざわざJavaScript挟む意味ない
TypeScriptやってReact進めばいいだろ

551 :デフォルトの名無しさん :2021/06/07(月) 17:15:28.63 ID:cP5Yb5w50.net
javascriptのオブジェクトが、多言語でのクラスということですか?

552 :デフォルトの名無しさん :2021/06/07(月) 17:28:09.54 ID:OvPzoGrd0.net
違います
そもそも他言語のクラスとかひとまとめに我こそがスタンダードみたいに言うけど、そのクラスの用法ってクラスベースオブジェクト指向特有のものでしょ。
まぁJSも追従しちゃったけどさ。

553 :デフォルトの名無しさん :2021/06/07(月) 17:29:49.37 ID:PmtxqO8T0.net
ボクのオブジェクトも暴発しそうです

554 :デフォルトの名無しさん :2021/06/07(月) 17:35:37.04 ID:PmtxqO8T0.net
父のプロトタイプから包茎を継承してしまったようです

555 :デフォルトの名無しさん :2021/06/07(月) 17:42:33.71 ID:toxQnbWm0.net
(;´д`)

556 :デフォルトの名無しさん :2021/06/07(月) 18:28:53.16 ID:50KNDDY70.net
>>551
https://ja.wikipedia.org/wiki/%E3%82%AF%E3%83%A9%E3%82%B9%E3%83%99%E3%83%BC%E3%82%B9#%3A%7E%3Atext%3D%E3%82%AF%E3%83%A9%E3%82%B9%E3%83%99%E3%83%BC%E3%82%B9_%28%E8%8B%B1%3A_class-%2C%E3%81%99%E3%82%8B%E3%80%81%E3%81%A8%E3%81%84%E3%81%86%E3%82%B9%E3%82%BF%E3%82%A4%E3%83%AB%E3%81%A7%E3%81%82%E3%82%8B%E3%80%82
https://ja.wikipedia.org/wiki/%E3%83%97%E3%83%AD%E3%83%88%E3%82%BF%E3%82%A4%E3%83%97%E3%83%99%E3%83%BC%E3%82%B9#%3A%7E%3Atext%3D%E3%83%97%E3%83%AD%E3%83%88%E3%82%BF%E3%82%A4%E3%83%97%E3%83%99%E3%83%BC%E3%82%B9_%28%E8%8B%B1%3A_prototype-%2C%E3%82%92%E3%82%AF%E3%83%A9%E3%82%B9%E3%83%99%E3%83%BC%E3%82%B9%E3%81%A8%E5%91%BC%E3%81%B6%E3%80%82

557 :デフォルトの名無しさん :2021/06/07(月) 18:46:01.96 ID:50KNDDY70.net
>>549
その二択ならTypeScript
文法を先に学ばないと躓く

ES6は2015年の仕様で今から学ぶには古すぎる
ES2020を学ぶ方が効率は良い
http://www.ecma-international.org/ecma-262/11.0/

558 :デフォルトの名無しさん :2021/06/07(月) 19:06:44.87 ID:XflghCQg0.net
うせやろ
ES6で古いんだ
IE対応しないと駄目だったのでアロー関数使ってないから忘れたのに…
もう駄目だな…

559 :デフォルトの名無しさん :2021/06/07(月) 19:18:18.21 ID:50KNDDY70.net
>>558
IEをサポートする必要かあるのか、検討すべきでは?
https://docs.microsoft.com/ja-jp/lifecycle/faq/internet-explorer-microsoft-edge#internet-explorer--------------------------
https://kangax.github.io/compat-table/es2016plus/

560 :デフォルトの名無しさん :2021/06/08(火) 11:33:50.39 ID:V6KC1q9F0.net
オブジェクトリテラルはプロパティと同義ですかね?
オブジェクトの持つデータですよな

561 :デフォルトの名無しさん :2021/06/08(火) 12:01:34.57 ID:pZSU03Zb0.net
>>560
違う

あなたは先日からおかしな前提の質問ばかり
知識の穴が多すぎて一問一答で出来る範囲を超えている
YAGNI信じてるようだが、必要になったら基礎学習する習慣をつけるべき

562 :デフォルトの名無しさん :2021/06/08(火) 12:26:14.97 ID:Vw+6EMs10.net
> prototype=組み込み、といった意味だと思いますし、、、。


専門用語が分からない

そうだ英単語の意味から推測しよう

英単語の意味から間違えている

いくらなんでも酷すぎ
プログラミング関係なく問題解決の取り組み方が杜撰で稚拙すぎ
辞書引くことすら失敗するとか一体どういう教育受けてきたの

563 :デフォルトの名無しさん :2021/06/08(火) 18:29:25.55 ID:pZSU03Zb0.net
自分で調べるより専門家に聞いた方が早いと思うタイプの人なんだろう

>>562のようにちょっと調べればわかるはずの内容を質問したり、回答したURLを全く読んでないかのような反応が返ってくる
DOMもプロトタイプチェーンも学習した形跡がない

564 :532 :2021/06/08(火) 18:39:03.92 ID:spIl1qf+M.net
忍耐強く付き合ってくれる方々が居るうちはYAGNIで上手く行くのかも知れない
早々に匙を投げてしまった自分が言える立場じゃないけど

565 :デフォルトの名無しさん :2021/06/08(火) 21:06:17.76 ID:6yn9zQdn0.net
オナニーメソッドは定義されてますが
セックスメソッドが見当たりません

566 :デフォルトの名無しさん :2021/06/09(水) 11:50:43.35 ID:+7j1Uic/0.net
C#の拡張メソッドはやってることが分かりやすいね
staticと宣言され、thisが第1引数
ただ宣言と利用で引数が違うのが気持ち悪い

C#で基礎的に多い使いどころはnull処理や型変換
なんでも型としてobjectがあるので
でもやたら型に煩いので中の分岐が面倒

javascriptの引数は全てなんでも型だが、逆にprototypeのthisだけは型が必要
なので、null処理や型変換は、普通の関数にしてる
そもそも「メソッドチェーンはnullで止まる」とか、最初から言われてたり

567 :デフォルトの名無しさん :2021/06/09(水) 12:14:45.43 ID:mxnL56NS0.net
>>566
> javascriptの引数は全てなんでも型だが、逆にprototypeのthisだけは型が必要

後半はちょっと意味がわからない

this値はStrictModeで指定値をそのまま使い、SloppyModeで指定値をObject型に変換した値を使う
型の制約はないはず

568 :デフォルトの名無しさん :2021/06/09(水) 12:35:56.32 ID:+7j1Uic/0.net
>>567
失礼、nullが駄目なだけだね

569 :デフォルトの名無しさん :2021/06/09(水) 12:40:37.25 ID:muvslTP60.net
オナホールに型があるとは知りませんでした
密閉型のつもりで射精したら貫通型だったらしくリークしてしまったようです

570 :デフォルトの名無しさん :2021/06/09(水) 13:01:14.82 ID:+7DuCF3D0.net
arrayとDocument.createDocumentFragment()の違いってなんでしょうか?
createElementで作成したタグを、ターゲットに複数追加したい場合、後者を使います。
しかし、arrayにもアンカーは格納されているようです。

571 :デフォルトの名無しさん :2021/06/09(水) 13:53:10.87 ID:mxnL56NS0.net
>>568
nullでも問題はない
実証コードを書いて、問題が起きるパターンを整理してみては?
Object.prototype.toString.call(null)

572 :デフォルトの名無しさん :2021/06/09(水) 13:54:10.75 ID:mxnL56NS0.net
>>570
回答スルーして新規質問を量産してるが、何がしたいんだ?

573 :デフォルトの名無しさん :2021/06/09(水) 14:01:43.46 ID:w6w52mg40.net
createDocumentFragment は、jQuery でも使っている

ソースコード内を検索してみ

574 :デフォルトの名無しさん :2021/06/09(水) 15:23:28.36 ID:+7j1Uic/0.net
>>571
Object.prototype.foo=function(s){略}
null.foo() こう書けないなら

function foo(s){略}
foo(null) こうせざるを得ない、ということなんですが

null.foo().bar() この利点は
bar(foo(null)) これより目に優しいという

575 :デフォルトの名無しさん :2021/06/09(水) 18:17:53.95 ID:mxnL56NS0.net
>>574
いろいろと誤解があるので、プロパティアクセサ、プロトタイプチェーンについて再学習することをお勧めする
(ちなみに、あげられている問題は「this値」は全く関係していない。用語定義も見直したほうが良いと思う。)

Object.prototype.foo を定義してfooプロパティを参照できるのは、new Objectかプロトタイプチェーン上に Object.prototype が存在するオブジェクトに限定される
プロパティアクセスする際、それがPrimitive値であるなら、Object型に変換してプロパティ参照を試みるが、null, undefined はObject型に変換できず、TypeErrorとなる

(null).toString; // TypeError: Cannot read property 'toString' of null
(undefined).toString; // TypeError: Cannot read property 'toString' of undefined

なお、null,undefinedでなくても、プロトタイプチェーン上に Object.prototype が存在しなければ、Object.prototype.foo をプロパティアクセサで参照できない

Object.prototype.foo = 1;
console.log(Object.create(null).foo); // undefined

Object.prototypeの影響範囲は大きいが、それでも全てのデータに影響を及ぼすものではない

576 :デフォルトの名無しさん :2021/06/10(木) 08:41:17.28 ID:U1CAdJt50.net
>>575
だからnullは駄目ってことですよねw
(C#ではそれができるという違い)

577 :デフォルトの名無しさん :2021/06/10(木) 08:57:10.02 ID:O1fj45xU0.net
>>576
null.foo()が動かない背景の説明>>574,566が何一つ正しくなくて比較対象として成立していない、という話

578 :デフォルトの名無しさん :2021/06/12(土) 12:09:15.43 ID:TONJAMor0.net
JavaScriptは初心者向けの簡単な言語と言われているけど、ものすごく難しくないですか?
Javaとアセンブラも出来るけど、JavaScriptの方が圧倒的に難しい。

579 :デフォルトの名無しさん :2021/06/12(土) 13:07:42.11 ID:gwGFqR/Mr.net
当たり前だけど初級レベルはそれほどでもない
しかし製品レベルを作るとなると一気にナンジャコレ的な書き方でジャバパーたちには理解不能になる
そこにDOM、jsxやstyle componentとかも入ってくるからもはや宇宙語になる

580 :デフォルトの名無しさん :2021/06/12(土) 13:10:20.75 ID:sFAMwcrAM.net
まずJavaが出来るとはどこまで出来るのか

581 :デフォルトの名無しさん :2021/06/12(土) 13:34:25.97 ID:dSUYOhsd0.net
JavaScriptはWEBブラウザを誰でも持っていて環境が身近だから試してみやすいというだけで、言語自体が初心者向けというわけではないだろ。

まともに使おうとしたらかなり筋の悪い言語。所詮はWEB用のDSL。
Excelは持ってるからVBAやってみるみたいなもんだよ。

582 :デフォルトの名無しさん :2021/06/12(土) 15:13:04.15 ID:TONJAMor0.net
>>580
ボラクルのシルバー

583 :デフォルトの名無しさん :2021/06/12(土) 15:55:52.61 ID:uZPmX/A70.net
>>578
JavaScriptの理解が難しくなる下地は十分にある

- 複数の仕様書
- 複数ブラウザで動作確認
- 新機能作成時の制約(一定の後方互換性を担保)

それ以前にESレベルの基本を分かってない人が多過ぎな気はするが

- 型
- [[Prototype]]
- プロトタイプチェーン
- スコープチェーン

584 :デフォルトの名無しさん :2021/06/12(土) 17:03:36.21 ID:th+ACTev0.net
JavaScript(正しくはECMAScript)ほど仕様しっかりしてる言語は今メインストリームの言語でそんなにはないと思うけどな。Cはしっかりしてるけど、かなりコンパクトな言語だからドキュメント量が全然違う
RubyやPythonにいたっては酷いもんだ。思い付きで作ってるレベル

585 :デフォルトの名無しさん :2021/06/12(土) 17:20:10.36 ID:7X99TIl20.net
仕様が複数あると言っても、Babel使ってES2020から入るのが正解だろうね。
余計なことを学ぶ必要性が減る。プロトタイプチェーンなんて最初は知らなくていい。

586 :デフォルトの名無しさん :2021/06/12(土) 17:33:15.15 ID:oYBdY7Ja0.net
Babelで後方互換性担保できるといっても
Setみたいに色々なことができるせいで機械的な書き換えができないコンストラクターがあるからなあ
業務端末が古いandroidのイントラ案件でSet動いてないの気付かず3時間くらい無駄にしたわ

587 :デフォルトの名無しさん :2021/06/12(土) 17:52:32.79 ID:uZPmX/A70.net
JavaScript関連の仕様はECMAScriptの他に、DOM,HTML,UIEvents,fetch,Selectors,CSDOM等、多くの仕様がある
Babelを使えば、ECMAScriptをES2020に一本化出来るが、他の仕様は読まなければならない
仕様書の中には日本語訳がなく、英語を読まなければならない場合もある

対して、Ruby,Pythonは公式マニュアルの日本語訳一つを読めば事足りる

資料の読みこなしの面では、JavaScriptの難度は非常に高い
不正確な二次情報に惑わされたり、MDNも時々間違ってたり、罠が多い

588 :デフォルトの名無しさん :2021/06/12(土) 18:08:20.99 ID:7X99TIl20.net
DOMを扱うならDOMを学ばなきゃならんというだけでJavaScriptとは関係ないが?
RubyやPythonを使ったとしてもDOMを扱うなら同じように必要だろう。

Webだけで学ぼうとすると古い情報に惑わされやすいというのはその通りだな。
ちゃんとした書籍を1冊用意して学ぶのが吉。

589 :デフォルトの名無しさん :2021/06/12(土) 19:05:50.66 ID:uZPmX/A70.net
>>588
Python公式文書はDOM APIの説明があるので、DOM仕様書を読まずともある程度の情報は得られる
https://docs.python.org/ja/3/library/xml.dom.html

ESにはDOM,HTML,fetch,CSSOM等のAPI情報は当然ない
MDNがこの役割に近いが、仕様程の信頼性がなく、英語版と日本語版で情報に差異があったり、仕様と比べて情報鮮度が落ちている部分がある
体系的な一カ所にまとまった一次情報と呼べるものがJavaScriptにはない
実装が複数仕様を実装する形なので当然だが、調査コストが高いのは事実

Pythonは仕様と実装が同一なので、仕様と実装の差を区別する必要がない
ドキュメントも仕様と実装の2つ分を読む必要がなく、最新の情報に整備されている

590 :デフォルトの名無しさん :2021/06/12(土) 19:38:43.59 ID:7X99TIl20.net
糞どうでもいいさにしか思えないがそこまでして優劣をつけたいんだろうか

591 :デフォルトの名無しさん :2021/06/12(土) 21:01:08.50 ID:uZPmX/A70.net
>>590
ちゃぶ台返しだな
>>578>>588にいってやれ

592 :デフォルトの名無しさん :2021/06/12(土) 21:06:47.07 ID:7X99TIl20.net

DOMを持ち出すのは関係ないし糞どうでもいいことなのは変わらんが?

593 :デフォルトの名無しさん :2021/06/15(火) 08:09:22.25 ID:V8tE61t00.net
1個の商品の金額の場合オブジェクトでvar shouhin = {};と宣言してshouhin.kingakuとすればいいんですが
複数の商品の場合shouhin[1].kingaku、shouhin[2].kingakuのようにしたいんですが
宣言や関数で引数として渡す場合はどうすればいいですか?

594 :デフォルトの名無しさん :2021/06/15(火) 08:57:01.65 ID:+pZThSMJ0.net
配列にするだけじゃん。

595 :デフォルトの名無しさん :2021/06/17(木) 11:44:35.91 ID:Y2s/MWh/0.net
内部関数をコールバックに渡せるのは超楽だね
同名のグローバル関数があってそっち行くかな?と思ったらちゃんと内部関数に行った
(そもそも普通の関数に内部関数をほいほい書ける時点で超楽だが)

コールバックがグローバルに限定された言語の場合、名前管理が増えるのが嫌で、
なんとかコールバック使わずに、とか頭をひねっちゃう

596 :デフォルトの名無しさん :2021/06/17(木) 12:31:17.20 ID:hYDgxsHQ0.net
classを使ってる奴いる?
今まで通りfunctionのコンストラクタで十分だよな。

597 :デフォルトの名無しさん :2021/06/17(木) 14:39:14.89 ID:jYVCbF5R0.net
>>596
誰のためにあるかという話だわな。
なおクラス構文導入議論時、反対派の旗手だったのはグッドパーツ著者でありJSONの発明者でもあるダグラスクロックフォード。

https://www.graat.co.jp/blogs/ckn8ourdkezx50b95h4v5uk1o
障害物 #1: .NET開発者のチーム参加
概念実証の後は、クライアントのアウトソーシングチームの開発者が合流した。 知識共有はまだ始めておらず、CTOから「やあ、Răzvan。明日は本物のアウトソーシングチームと会わないといけないね」とメールが送られてきた。

我々はミーティングを設け、テクニカルリードは私を質問と解決策で迎え撃った:

「依存性の注入はどこですか?『必要ない』とはどういうことですか?」:これはInversifyJSだよ!
「関数コンポーネント? ダメダメダメ。我たちは好きじゃないからクラスコンポーネントを使いましょう!」
「なぜこれらの関数はただぶら下がっているだけなのですか? なぜ静的にするためサービスクラス内でカプセル化しないのですか?」
「APIのリトライポリシーはどこですか? PollyJSで実装しましょう」
「なぜクラス名がパスカルケースの場合にファイル名がダッシュケースとなるのですか? クラス名を反映させるため、今後はSomePageComponent.tsxという名前にします」
そして、私をもっとも悩ませた件:「Visual Studio CodeでなくVisual Studioで実行するにはどうすればよいでしょうか?」
私は確信した。彼らはReactで .NETのガイドラインとデザインパターンを使いたがっている。私は何度もこのような出来事を見てきた — 新しい技術のやり方に適応できず苦労している開発者だ。



9か月後、我々は50ページ以上を作成していた。開発者たちは関数コンポーネントがクラスコンポーネントと同じくらい良いことに気づき、それらを使い始めた。その結果、進行中のプロジェクトは元々のコーディング規約に従わなくなっていた。


本当.NET老害ってクソだわ。
自分が分からないからって意味ない(できることが増えるわけでもない)クラスベースに固執しといて、単純な関数で同じことできると気づいたらお前らのワガママに合わせて作ってやったコーディング規約破って勝手に使い出すんだからな。
いや、言いだしっぺなんだからクラス使い続けろや!

598 :デフォルトの名無しさん :2021/06/17(木) 16:52:43.35 ID:hYDgxsHQ0.net
>>597
結局これも将来的には非推奨になりそうですよね。
中途半端な機能を増やされると現場はかえってしんどい。

599 :デフォルトの名無しさん :2021/06/20(日) 16:40:52.66 ID:WIbUxISs0.net
要素を取得して、appendchildしたいのですが、appendchildは移動になるんですよね。
そこでassignでコピーしたいと思います。
以下のspanをコピーした後、別のspan内に入れたいです。

<span id="test_span" style="background-color: skyblue;">てすとな</span>
<ul id="table_of_content"></ul>

let toc = document.getElementById("table_of_content");
let span = document.getElementById("test_span");
let copy = Object.assign(document.createElement("span") ,span);
toc.appendChild(copy);
しかし、これだとtable_of_contentにspanは挿入されますが、spanの中身がありません。

let copy = Object.assign(document.createElement("span") ,textContent:span.textContent);
こうへんこうしてもだめです。
let copy = Object.assign(document.createElement("span") ,{textContent:span.textContent});

これならokです。
なぜこのような結果になるのでしょうか?

マージするオブジェクトの型?みたいなものが一致していないとだめなのですか?
1つ目はタグにタグをコピーしているだけ
2つ目はタグにプロパティをコピーしている
3つ目はタグオブジェクトに、オブジェクトリテラル?をコピーしている?

この辺のことを教えて下さい

600 :デフォルトの名無しさん :2021/06/20(日) 20:46:26.62 ID:sZ7GtS6K0.net
Nodeオブジェクトに元から存在するプロパティは列挙可能になってないからそのままObject.assginしても何もコピーされない
textContentプロパティだけを取り出してObject.assignするくらいなら
let copy = document.createElement("span");
copy.textContent = span.textContent;
でいいじゃない

もっともノードの複製は
let copy = span.cloneNode(true);
で一発。ただしid等の一意であるべき属性も存在する場合は複製されることに注意

601 :デフォルトの名無しさん :2021/06/21(月) 11:08:34.75 ID:qJrDRmsU0.net
>>600
ノード全体をコピーする場合はcloneで、タグ名などを変えたい場合は教えてもらった方法でやることにします。
1行目なんですが、「 Nodeオブジェクトに元から存在するプロパティは列挙可能になってないからそのままObject.assginしても何もコピーされない 」というのはどういう意味でしょうか?
1つめのやり方に対してだと思いますが、どちらのspanエレメントもtextContentプロパティは持っていると思います。

とりあえず、中身もコピーする場合はプロパティにまでアクセスしないといけないことは分かりました。
object.assignというのはループを回しているわけですよね。おそらく。

602 :デフォルトの名無しさん :2021/06/21(月) 18:44:30.50 ID:uOMSqfSW0.net
素のJS書いてます
DOM要素の中身をまるまる消したいんですが、もっといいやり方ないですか?
今はinnerHTML=""で消してます

603 :デフォルトの名無しさん :2021/06/21(月) 23:17:22.43 ID:K1IZmgnQM.net
それだと気に入らない点は?

604 :デフォルトの名無しさん :2021/06/22(火) 01:04:49.78 ID:kGm2q7jg0.net
var el = document.querySelector('#nakamikiero');
while (el.firstChild) el.removeChild(el.firstChild);

別にinnerHTMLでいいと思う

605 :デフォルトの名無しさん :2021/06/22(火) 01:23:10.83 ID:XaKTjWfC0.net ?2BP(1000)
http://img.5ch.net/ico/nida.gif
初心者です。
chrome拡張機能を作っているのですが、自分のコードが他の人から見たら、見づらかったりするのか気になったので評価してくれませんか?
一人で作っているのでコメントはほぼないです。
https://harigami.net/cd?hsh=b5c6452f-fa81-4b69-b554-d68bf8194d75

606 :デフォルトの名無しさん :2021/06/23(水) 17:45:18.28 ID:XH4Ry57E0.net
constって値の変更できないのであとから値を変更したくなった場合letに書き直さないといけないので
最初からconstよりlet使った方が無難だよね?
constの方が速度が速いってこともないだろうし

607 :デフォルトの名無しさん :2021/06/23(水) 18:05:46.06 ID:9X5+Yxrt0.net
JITの最適化に影響することはあるんじゃない?知らんけど
個人プログラムならそう困ることないし別にいいと思う

608 :デフォルトの名無しさん :2021/06/23(水) 18:16:29.13 ID:uY7z/n/mM.net
letってスコープ外からアクセスできないのであとからアクセスしたくなった場合let消してグローバル変数にしないといけないので
最初からletよりグローバル変数使った方が無難だよね?
letの方が速度が速いってこともないだろうし

609 :デフォルトの名無しさん :2021/06/23(水) 18:20:16.91 ID:XH4Ry57E0.net
>>608
グルーバルはどこからでも変更できちゃうので基本使わない
せやから変数はバケツリレーしてでも引数として渡す

610 :デフォルトの名無しさん :2021/06/23(水) 20:29:20.42 ID:XbDUStol0.net
>>609
それが分かるなら、「letはスコープ内で改変可能なので、再代入が必要な変数以外では使用しない」に辿り着くはずなんだがな

611 :デフォルトの名無しさん :2021/06/23(水) 21:08:19.92 ID:rlUBqderr.net
なんか新次元の考え方してるのがおるな

612 :デフォルトの名無しさん :2021/06/23(水) 21:53:55.51 ID:L1j5jH/CM.net
再代入が必要な変数が全体の何割あるかまず眺めてみたらいいんじゃね
更にあとから再代入の必要性に気付くパターンに絞って何割あるのか

613 :デフォルトの名無しさん :2021/06/24(木) 21:15:11.64 ID:hag/RBI30.net
>>609
>>608 がアイロニーだってことくらい気づけよ。

614 :デフォルトの名無しさん :2021/06/25(金) 16:01:35.51 ID:CvkTX/L1M.net
DIVの中にline-hightを設定したテキストを入れた時と同じ場所になるようにDIVと同じサイズのCanvasの中に文字を書き込みたいんだけどどうやるの(´;Д;`)

615 :デフォルトの名無しさん :2021/06/26(土) 17:26:43.66 ID:JTIK8PSO0.net
>>614
ボックスモデルと同じ計算を実装すればいい
https://developer.mozilla.org/ja/docs/Web/CSS/CSS_Box_Model/Introduction_to_the_CSS_box_model

616 :デフォルトの名無しさん :2021/06/26(土) 18:57:01.42 ID:JMJiYaB90.net
>>615
line-height内でのテキストの上下方向の位置を合わせる方法がわからない

617 :デフォルトの名無しさん :2021/06/26(土) 19:10:04.18 ID:JTIK8PSO0.net
>>616
border,line-height,paddongを計算すればいい
というか、ボックスモデルを読め

618 :デフォルトの名無しさん :2021/06/26(土) 19:52:17.54 ID:JMJiYaB90.net
ボックスというかベースラインの話
今サンプル作る

619 :デフォルトの名無しさん :2021/06/26(土) 20:25:23.61 ID:JTIK8PSO0.net
>>618
ではvertical-alignを作れ
https://developer.mozilla.org/ja/docs/Web/CSS/vertical-align

当初のline-hightが関係なくなってる
現象を切り分けしてから質問してくれ

620 :デフォルトの名無しさん :2021/06/26(土) 20:30:25.16 ID:JMJiYaB90.net
>>619
そのベースラインの座標がわからない

621 :デフォルトの名無しさん :2021/06/26(土) 20:35:43.90 ID:JMJiYaB90.net
サンプルがこれなんだが、最後の 80*0.64 って奴がline-height*割合で
割合を調整してベースラインの位置に来るように調整してあるんだがfont-sizeやline-heightを変えると0.64じゃ一致しなくなる
https://codepen.io/as124680/pen/wvdwWyO

622 :デフォルトの名無しさん :2021/07/12(月) 23:42:04.57 ID:wbIA3J3A0.net
<table id="tb">
<tr>
<td><img src="./test1.png"></td>
<td><img src="./test.2png"></td>
<td><img src="./test3.png"></td>
</tr>
</table>

tableの中にあるimgのelementを取得したいんですけど
imgに個別にidやclassを設定しなくてもそれぞれのimgのelementを取得できる方法があったら
やりかたを教えてください

623 :デフォルトの名無しさん :2021/07/13(火) 00:00:08.97 ID:orpWKMoQM.net
>>622
document.querySelectorAll("#tb td > img");
セレクタの指定は適当なので目的に応じて考えてくれ

624 :デフォルトの名無しさん :2021/07/13(火) 03:42:43.38 ID:dtNqNBdW0.net
「css セレクタ」で検索!

x y は、xの子孫(子・孫・玄孫なども含む)のy。
x > y は、xの子(直下のみ)のy

JavaScript の質問は、web制作管理板の方へ書き込んでください!
この板のスレは、荒らしが出た時に、緊急避難用に立てられたもので、今は使われていません

625 :デフォルトの名無しさん :2021/07/18(日) 14:00:13.55 ID:5EoIqaKx0.net
プログラミングするときは必要な処理を必ず日本語化したほうがいいですか?
まず、必要な機能をすべて書き出してから、フローチャート的なものを作る

ぶっつけでコードを書き始めると駄目ですかね。

626 :デフォルトの名無しさん :2021/07/18(日) 14:03:11.59 ID:V5WXwT7R0.net
いや全然

627 :デフォルトの名無しさん :2021/07/18(日) 16:06:28.09 ID:5EoIqaKx0.net
ストップウォッチを作っています。
1:スタートボタンを押した時にカウントアップを開始し
2:もう1度押すと停止します
3:もう1度押すと途中からのカウントアップを開始します

この途中からのカウントアップのやり方がわからないのでヒントを教えて下さい。
addTime変数にカウントアップ途中の数値をセットし、3に加算すればいいわけですが、上手くイカなかったので教えて下さい。
わからないのはaddTimeの取得方法と、加算のタイミングです。

628 :デフォルトの名無しさん :2021/07/18(日) 16:08:02.80 ID:5EoIqaKx0.net
https://ideone.com/Fq7ki3
コードはこちらになります。

別の質問なんですが、コードのペーストサービスってどこがいいんでしょうか?

629 :デフォルトの名無しさん :2021/07/18(日) 16:09:17.45 ID:EvgeERSZ0.net
一人で作る場合はそんなことしてる奴ほぼいないと思う
チームで作るならそれをするのはPMの仕事

630 :デフォルトの名無しさん :2021/07/18(日) 18:28:56.11 ID:V5WXwT7R0.net
>>628
ごめんコード見てない
https://jsfiddle.net/bLce9az3/

631 :デフォルトの名無しさん :2021/07/18(日) 20:54:37.23 ID:H/NN8O820.net
JSFiddle が多いかも。
Ideone とか

Codepad は、バージョンが古い感じ

日本なら、paiza.IO

632 :デフォルトの名無しさん :2021/07/18(日) 23:43:41.81 ID:5EoIqaKx0.net
>>630
どうも
performanceを使うといいんすね

差分の部分も参考にさせてもらいす
わからなかったら聞きます

633 :デフォルトの名無しさん :2021/07/19(月) 14:43:39.83 ID:Dj9cyoNJ0.net
jaavscriptって型あるんですか?
let ms= 1000
としてもデータオブジェクト?じゃないので、getUTCSeconds()などが使えません
let ms = new Date(1000)

これでokです

>>631動作確認しやすいのでjsfiddleにしときます

634 :デフォルトの名無しさん :2021/07/19(月) 19:11:44.96 ID:ailiffqUM.net
JSは動的型付け言語なので当然型はある
あと所詮60の除算をしてるだけなので、いちいちDate型に変換するのはぶっちゃけ大仰

635 :デフォルトの名無しさん :2021/07/19(月) 20:25:14.80 ID:Dj9cyoNJ0.net
>>630
performance.nowって時刻を取得して差分を求めるより、正確なタイマーになるんでしょうか?
utcの時刻です。

636 :デフォルトの名無しさん :2021/07/19(月) 21:04:01.22 ID:xti7QTCXM.net
ブラウザ次第としか
最近は敢えて精度を落としてることもあって、多分変わらんかも

637 :デフォルトの名無しさん :2021/07/19(月) 21:45:19.83 ID:09ZI50XP0.net
>>628
k4aのコードに似てるのは気のせいか?https://teratail.com/questions/348862

>>635
同じ質問者が質問して得た回答に答えはある
https://teratail.com/questions/348048

638 :デフォルトの名無しさん :2021/07/20(火) 06:08:39.83 ID:VV+336kW0.net
>>637
performanceについての質問はしてないですよ。
performanだとcpu性能などに影響されるのか分かりません。

639 :デフォルトの名無しさん :2021/07/20(火) 06:28:13.06 ID:znznH+MD0.net
>>638
失礼、performance.now()には触れてなかったな
だが、リファレンスに書いてある

https://developer.mozilla.org/ja/docs/Web/API/Performance/now
> performance.now() メソッドは、ミリ秒単位で計測された DOMHighResTimeStamp を返します。

---

https://teratail.com/questions/348048
> あらゆるイベントに timeStamp というプロパティがあり、これが 0.005ms 程度の精度だそうです。

こう回答されたら、俺ならtimeStampプロパティを使うが

640 :デフォルトの名無しさん :2021/07/20(火) 11:44:45.80 ID:VV+336kW0.net
>>639
performanceはタイムスタンプを取得しているそうですが、その取得にはcpu性能が影響するのでしょうか。
最初のタイムスタンプの取得が遅れたとしても、終了時のタイムスタンプも同様に遅れるわけですから、差分は変わらないと考えればいいでしょうか。

641 :デフォルトの名無しさん :2021/07/20(火) 18:05:59.91 ID:2nw+devd0.net
>>640
CPUに影響しない処理はほとんどないも思うが、GPU演算を期待してるのか?
ハードウェアアクセラレーションは門外漢なので分からん
専門家に確認してくれ

そこまで気にしていて、requestAnimationFrameが候補に挙がらない理由が謎

642 :デフォルトの名無しさん :2021/07/20(火) 19:59:06.20 ID:VVNKYXKQM.net
質問の意図がよく分からないので何とも
完全無欠なタイマーが作りたいって話なら力にはなれん

643 :デフォルトの名無しさん :2021/07/20(火) 22:23:21.73 ID:VV+336kW0.net
>>641
ありがとうございました。
gpuを期待しているわけではないです。
非力な環境で正確な動作をするかどうか分からないのです。

644 :デフォルトの名無しさん :2021/07/21(水) 21:55:42.60 ID:eII+w+/h0.net
msから時間(hour)を取得する関数はあるのでしょうか?
getutchourとgethourだと、時刻?が取得されるみたいです。
http://www.htmq.com/js/date_getUTCHours.shtml

1日が86400000msなので、何時間か得るにはこうします
86400000 / 3600000 = 24

getutchoursを使用すると結果は0となります。

let dt = new Date(86400000);
console.log(dt.getUTCHours());

645 :デフォルトの名無しさん :2021/07/21(水) 22:38:44.52 ID:EEgQ3OP9M.net
ありません

646 :デフォルトの名無しさん :2021/07/21(水) 22:45:53.25 ID:EEgQ3OP9M.net
割り算すら面倒ならMoment.jsでも使ったら

647 :デフォルトの名無しさん :2021/07/21(水) 23:23:26.06 ID:DMdKV/rn0.net
>>644
剰余

648 :デフォルトの名無しさん :2021/07/22(木) 01:35:46.57 ID:pUylfiot0.net
最近javascriptを始めた者ですが、最初の段階からつまづいています。
参考にしているのはこの本ですが「https://www.sbcr.jp/product/4815601577/
ブラウザのコンソール機能を使って文字を表示させるのですが、上手くいきません。
「>console.log('おうむ返し');」と打ち込んでも、「Uncaught SyntaxError: expected expression, got '>'」
と言うエラーメッセージが出て上手く表示されません。
本に書いてある通りにやっているつもりなのですが、何故なんでしょうか?
宜しくお願いします。

649 :デフォルトの名無しさん :2021/07/22(木) 01:46:58.75 ID:VUYJjhRP0.net
console.log('おうむ返し');
と打ち込んでください

650 :デフォルトの名無しさん :2021/07/22(木) 01:47:21.36 ID:QbcHd2I2r.net
エラーメッセージにそのまま書いてるだろ
なんで読まないんだよ

651 :デフォルトの名無しさん :2021/07/22(木) 02:05:33.27 ID:pUylfiot0.net
>>649
「illegal character U+FF1B」と出るのですが・・・

652 :デフォルトの名無しさん :2021/07/22(木) 02:13:03.04 ID:pUylfiot0.net
自己解決しました。
「:」を付けるなと言うエラーでした。
しかし、本には「>」「;」を付けろと書いてあるのですが
付けてはいけないのでしょうか?

653 :デフォルトの名無しさん :2021/07/22(木) 03:43:27.82 ID:kFdJ5CFB0.net
「javascript console.log」で検索してみれば?

654 :デフォルトの名無しさん :2021/07/22(木) 03:43:40.04 ID:ZZMUYXj4M.net
u+ff1bは全角のセミコロン(;)
;みたいな半角にすれば上手くいく
セミコロンに限らずプログラムを書く時は文字列、コメント以外は基本全角を使ってはいけないことを意識した方がいい
JavaScriptの場合文字列にあたるのは"文字列"、'文字列'、`文字列`の3種類

655 :デフォルトの名無しさん :2021/07/22(木) 03:57:29.35 ID:af5EgLY0M.net
言い忘れてたけど>はコンソールの入力を表してるだけだからそれ自体は入力しない
javascriptと直接は関係ないけど$とか#も同様

656 :デフォルトの名無しさん :2021/07/23(金) 07:07:08.07 ID:UhHw7gdf0.net
まああとエラー文くらいは英語でも読もうぜ
せっかくエラー出してくれてるんだから

657 :デフォルトの名無しさん :2021/07/23(金) 14:12:58.59 ID:/dxGnZSf0.net
都道府県のデータを地図上に表示させる場合、なにかしらapiを使いますか?
例えば、人口のデータ。
東京10万人、大阪5万人というデータだった場合、東京を赤に、大阪を青にします。

cssのareaとif文でできそうですが、グラフィカルに出来るやり方はあるんでしょうか?

658 :デフォルトの名無しさん :2021/07/23(金) 16:25:33.46 ID:Nx0yKcVz0.net
知らないけど、Google MAP と契約するのじゃないの?

659 :デフォルトの名無しさん :2021/07/24(土) 05:34:58.11 ID:rkiLuKXr0.net
>>658
googlemapほど高機能じゃなくてもいいんですよね。
単なるグラフ化するライブラリなりあれば

ただ、地図ですが

660 :デフォルトの名無しさん :2021/07/24(土) 06:42:23.52 ID:UbTxoyB20.net
https://github.com/geolonia/japanese-prefectures
適当に探したらあった

661 :デフォルトの名無しさん :2021/07/24(土) 10:50:15.00 ID:a8zY8PyNF.net
https://www.gsi.go.jp/kizyunten.html
https://www.gsi.go.jp/gis.html

662 :デフォルトの名無しさん :2021/07/24(土) 17:07:18.18 ID:Qi1mUWJh0.net
JavaScriptエンジニアって国内に何人いるのだろう?
JQueryとAltJSは省いて純粋にJavaScriptを書ける人を対象にした場合。

下のゲータは明らかにおかしい。なんでCSS < JavaScriptになってんの?


21種類のプログラミング言語別エンジニア数

HTML :325,954人
JavaScript :299,426人
Ruby :215,270人
Java :190,343人
CSS :187,243人
Python :176,419人
PHP :168,821人
C :131,520人

663 :デフォルトの名無しさん :2021/07/24(土) 17:07:44.11 ID:Qi1mUWJh0.net
>>662
ゲータ

データ

664 :デフォルトの名無しさん :2021/07/24(土) 17:14:34.88 ID:sZSMrghJa.net
>>662
というかHTML書けてCSS書けないってどういう状態か不明で草

665 :デフォルトの名無しさん :2021/07/25(日) 05:41:30.41 ID:u3F8MSWe0.net
>>660
cssだけでできませんかね?

666 :デフォルトの名無しさん :2021/07/25(日) 07:43:41.11 ID:Ie3kKwwU0.net
たぶん、アンケート調査で、HTML, JS, Ruby には使う印を付けるけど、

CSS には付けないのだろう

667 :デフォルトの名無しさん :2021/07/25(日) 10:58:38.88 ID:o/IC5DrD0.net
JavaScript技術者は約30万人もいるのか…。

668 :デフォルトの名無しさん :2021/07/25(日) 11:00:31.66 ID:o/IC5DrD0.net
>>667
アレ?
CやPHPより多いというのはどういうことだ?
JQureryを貼ってるだけでJavaScriptエンジニアを名乗っている奴もいるということか?

669 :デフォルトの名無しさん :2021/07/25(日) 11:41:43.27 ID:fy+dKQKDr.net
cssできないプログラマーが圧倒的に多い

670 :デフォルトの名無しさん :2021/07/25(日) 17:17:31.43 ID:o/IC5DrD0.net
>>669
え、本当ですか?



JavaScript技術者は日本国内では実際にどの程度いるか分かる方いますでしょうか?
JQueryのみは除外した場合で。

671 :デフォルトの名無しさん :2021/07/25(日) 20:29:40.21 ID:dvyEJYNq0.net
javascriptわからない奴がjqueryを使いこなせるとも思えんが

672 :デフォルトの名無しさん :2021/07/25(日) 21:03:55.43 ID:o/IC5DrD0.net
>>671
とりあえず貼り付けて使ってた女子社員がいた。
当然プロトタイプって何? 美味しいの? という感じだった。

673 :デフォルトの名無しさん :2021/07/26(月) 01:07:59.65 ID:6/oCpeEp0.net
まともなwebデザイナーならjsやjqueryくらいなら当たり前に使えるし

674 :デフォルトの名無しさん :2021/07/26(月) 01:25:28.37 ID:JGevQeHg0.net
まともなWebデザイナが少ないと思ってる
このスレでも余所でも何もわかってない丸投げ質問が少なくない

675 :デフォルトの名無しさん :2021/07/26(月) 03:26:52.00 ID:E2xde8po0.net
5chに丸投げ質問してる人が何でWebデザイナだってわかるの?

676 :デフォルトの名無しさん :2021/07/26(月) 09:03:30.22 ID:KQdxaJrk0.net
そりゃ思い込んでるんだから自分が正義なんですよ

677 :デフォルトの名無しさん :2021/07/26(月) 09:54:32.14 ID:reKMNeG90.net
>>673
JavaScriptがよく分かってない人は多い。





で、国内のJavaScriptエンジニアはどのくらいの数がいるの?

678 :デフォルトの名無しさん :2021/07/26(月) 10:24:11.39 ID:JGevQeHg0.net
>>677
不毛な質問だと思うけどね
https://www.itra.co.jp/webmedia/programming_language_ranking.html

679 :デフォルトの名無しさん:2021/08/15(日) 14:13:29.94 ID:5n7R/LJ4p
大学で学ぶ物理を板書1枚にまとめてみた
https://www.youtube.com/watch?v=naBcXoq4aOI
物理の研究分野を板書1枚にまとめてみた
https://www.youtube.com/watch?v=4W-pWuXUaZQ
理学部と工学部の違いとは?
https://www.youtube.com/watch?v=eJH4nKU6mJA&t=80s
大学と大学院の違い
https://www.youtube.com/watch?v=xBKAEvTegN8
高校と大学の積分は決定的に違う?微分積分学の基本定理は実はすごい!
https://www.youtube.com/watch?v=V9i_zlbssbs&t=475s
数学にはどんな研究分野がある?数学の世界地図を一枚に描いて紹介してみた!
https://www.youtube.com/watch?v=fK_JGVti5y8

680 :デフォルトの名無しさん:2021/11/16(火) 12:06:21.59 ID:NLkn6VEDz
ひとの訪ねに妨害だけするやつはカスらしいな

681 :デフォルトの名無しさん:2022/01/05(水) 18:36:15.11 ID:FxFbqP9BX
https://youtu.be/gJbOe2cqbPU

682 :デフォルトの名無しさん (ワッチョイ 6ecb-qCnf [223.132.6.112]):2021/07/26(月) 10:54:00.67 ID:Ak80SZap0.net
javascriptが動かない環境ってまだまだあるんでしょうか?
ブログの見出しをjavascriptで取得して、ページ内リンク(目次)にしたいのですが。
wordpressならそのようなアドオンがあるんですが、ライブドアブログなので。

見出しは記事内に手書きしたほうがいいでしょうか?

683 :デフォルトの名無しさん (ワッチョイ e22c-MYQi [211.11.11.1]):2021/07/26(月) 11:03:46.60 ID:DTdYSzy80.net
JavaScript の質問は、この板ではなく、web制作管理板の方へ書き込んでください!

この板のスレは、荒らしが出た時に、一時的に緊急避難用に立てたものです

684 :デフォルトの名無しさん (エムゾネ FF22-Hgw+ [49.106.192.109]):2021/07/26(月) 15:01:24.78 ID:9wDqt6nuF.net
今来てるのがあらしなら
隔離がうまく機能してると言える訳で
本スレや本板を教えるのは逆効果

685 :デフォルトの名無しさん (ワッチョイ 4240-3Z6B [157.147.40.213]):2021/07/27(火) 20:06:25.72 ID:TjjVMu0r0.net
const thumbs = document.querySelectorAll('.thumb');

thumbs.forEach(function(item,index) {

item.onclick = function() {

document.getElementById('bigimg').src = this.dataset.image;

}

});

686 :デフォルトの名無しさん (ワッチョイ 0702-pCDs [106.157.31.133]):2021/07/30(金) 18:19:58.69 ID:7AkGA5GJ0.net
スクレイピングしたいんですけど何を勉強すればいいですか
不正アクセスに問われたりしないでしょうか?
セキュリティ対策はどのようなことに注意すればよいでしょうか?

687 :デフォルトの名無しさん (オッペケ Sr5b-ETFs [126.157.113.194]):2021/07/30(金) 19:50:46.65 ID:zsw/1kdSr.net
質問場所が違う

スレ立てるまでもない質問はここで 157匹目
https://mevius.5ch.net/test/read.cgi/tech/1624024239/

688 :デフォルトの名無しさん (ワッチョイ 87da-msd5 [58.93.72.223]):2021/07/31(土) 18:56:31.47 ID:2qGqiONC0.net
>>686
python

689 :デフォルトの名無しさん (ワッチョイ 6759-MjzU [150.246.99.135]):2021/08/01(日) 11:31:04.39 ID:9TmqVOhq0.net
ブログ記事のヘッダ(h要素)を取り出して目次化する機能をjavascriptで作りました。
目次ってのは直接、idを指定して作ったほうがいいんでしょうか?

このような疑問を持ったのは、javascriptが動かない場合を考えてです。

690 :デフォルトの名無しさん (ワッチョイ 7f63-dmHj [153.228.32.95]):2021/08/01(日) 12:45:35.34 ID:82X2qjYn0.net
大抵のブログにはもともとそういう機能あると思う

691 :デフォルトの名無しさん (ワッチョイ 6759-MjzU [150.246.99.135]):2021/08/01(日) 14:53:40.48 ID:9TmqVOhq0.net
>>690
ワードプレスならプラグインがあるんですが、ライブドアブログなんですよね。
調べましたが、おそらくないと思います。

692 :デフォルトの名無しさん (ワッチョイ df2c-QEAr [211.11.11.1]):2021/08/01(日) 22:39:15.41 ID:179nLIS60.net
JavaScript の質問は、この板ではなく、web制作管理板の方へ書き込んでください!

この板のスレは、荒らしが出た時に、一時的に緊急避難用に立てたものです

693 :デフォルトの名無しさん (ワッチョイ 6759-MjzU [150.246.99.135]):2021/08/02(月) 06:44:39.43 ID:DD4JIXiO0.net
そうなんですか?

694 :デフォルトの名無しさん (ワッチョイ e701-v6iq [60.70.246.83]):2021/08/02(月) 06:59:02.24 ID:jaaCrc6o0.net
>>693
元々はWeb制作板が本スレだが、Web制作板もある時から次スレが立たなくなり、重複スレの再利用しかされなくなっている
既に本スレがどちらといえる状況ではない為、好きな方に書き込めば良い

695 :デフォルトの名無しさん (ワッチョイ 6759-MjzU [150.246.99.135]):2021/08/02(月) 20:51:31.31 ID:DD4JIXiO0.net
はい

696 :デフォルトの名無しさん (ワッチョイ 676e-dtsT [150.246.100.179]):2021/08/06(金) 14:39:15.85 ID:bbEiQUtR0.net
最近、ステップ実行というデバッグ方法をはじめてみたんですが、使い方がよくわかりません。
質問です。

1:ステップ実行はブラウザの機能を使うのが普通なんでしょうか?firefoxです
2:ブレークポイントから実行されるようですが、行末までいったらブレームポイントに戻るという挙動似できないのでしょうか?
firefoxです

697 :デフォルトの名無しさん (ワッチョイ 822c-2tbN [211.11.11.1]):2021/08/06(金) 15:12:12.08 ID:13Hyhr+y0.net
Node.js, VSCode をインストールするのが基本

VSCodeの拡張機能も一杯あるし、デバッグも出来る

698 :デフォルトの名無しさん (ワッチョイ 676e-dtsT [150.246.100.179]):2021/08/07(土) 05:29:09.18 ID:Xvs4IZ+y0.net
>>697
どうも
htmlファイル内のjsをデバッグする場合はブラウザになるんですかね?

699 :デフォルトの名無しさん (ワッチョイ 6f5f-yRf5 [14.11.194.224]):2021/08/07(土) 05:55:47.26 ID:t0yXEgao0.net
Firefoxの挙動を調査するにはFirefoxを使う

700 :687 (ワッチョイ 822c-2tbN [211.11.11.1]):2021/08/07(土) 13:14:23.80 ID:D2Nz4xRW0.net
VSCode で、break point を付けたりして、1行ずつデバッグする。
好きなブラウザも起動される

例えば、ボタンをクリックした時のコールバック関数に、break point を付けて、
ブラウザでボタンをクリックすると、そこで止まる

そこから、1行ずつデバッグするような感じ

まあ、VSCodeの使い方・おすすめ拡張機能を学ぶのが先。
YouTube でも見れば?

この板にも、VSCodeのスレがある

701 :デフォルトの名無しさん (ワッチョイ 676e-dtsT [150.246.100.179]):2021/08/08(日) 13:12:16.33 ID:w9BUoWYn0.net
>>699
>>700
どうも
ブラウザで動かすものなので、すべてブラウザ上のデバッグツールでは駄目なんでしょうか?

702 :デフォルトの名無しさん (ワッチョイ ff01-VGi0 [126.224.116.160]):2021/08/08(日) 13:28:13.29 ID:JUV9pqbq0.net
>>701
そのWebページを訪れる全てのWebブラウザでデバッグするのが正しい

703 :デフォルトの名無しさん (ワッチョイ 676e-dtsT [150.246.100.179]):2021/08/08(日) 13:59:15.55 ID:w9BUoWYn0.net
node jsとvscode使ってみたんですが デバッガーのタブを開いて、node.jsをデバッガーとして開き、runcurrent fileを洗濯するという手順でいいんすかね?

704 :デフォルトの名無しさん (ワッチョイ 676e-dtsT [150.246.100.179]):2021/08/08(日) 15:22:47.76 ID:w9BUoWYn0.net
>>702
vscode上でのデバッグだとまとめて出来るという意味でしょうか?

705 :デフォルトの名無しさん (ワッチョイ ff01-VGi0 [126.224.116.160]):2021/08/08(日) 17:28:52.75 ID:JUV9pqbq0.net
>>704
どのようなロジックでそのように解釈した?

VScodeはブラウザではないし、>>701のあなたの考えから飛躍している
意味がわからない

706 :デフォルトの名無しさん (ワッチョイ 676e-dtsT [150.246.100.179]):2021/08/08(日) 20:33:00.96 ID:w9BUoWYn0.net
>>705
node.jsを使ったデバッグだとまとめてできるのかなと思いこんでました
node.jsはブラウザをvscode上で再現するものではないのですか?
console.logの結果をdebug consoleに表示出来たり。

707 :デフォルトの名無しさん (ワッチョイ ff01-VGi0 [126.224.116.160]):2021/08/08(日) 21:20:49.18 ID:JUV9pqbq0.net
>>706
調べてからものを言うべきだ
https://nodejs.org/ja/about/

708 :デフォルトの名無しさん (ワッチョイ 6f5f-yRf5 [14.11.194.224]):2021/08/08(日) 21:49:22.54 ID:0ZQufo+I0.net
>>697あたり見て言ってるんでしょ
何が基本なのか知らんけど

709 :デフォルトの名無しさん (ワッチョイ ff01-VGi0 [126.224.116.160]):2021/08/08(日) 21:52:29.48 ID:JUV9pqbq0.net
>>708
そんなんだろうが、そこから憶測で物事を決め付け過ぎる

710 :デフォルトの名無しさん (ワッチョイ 676e-dtsT [150.246.100.179]):2021/08/08(日) 22:25:01.50 ID:w9BUoWYn0.net
ボタンを無効化したいです

button.setAttribute("disabled");
これだとdisabledがセットされないのですが、なにか間違っているでしょうか?
valueを追加しても同じです。

サンプルコード通りにやってみたんですが、、、

711 :デフォルトの名無しさん (ワッチョイ ff01-VGi0 [126.224.116.160]):2021/08/08(日) 22:30:55.91 ID:JUV9pqbq0.net
>>710
調べずに憶測で決めつけるな、と何度いえば理解出来るんだ?
https://developer.mozilla.org/ja/docs/Web/API/Element/setAttribute

712 :デフォルトの名無しさん (ワッチョイ 676e-dtsT [150.246.100.179]):2021/08/09(月) 06:27:35.78 ID:Azri5LRy0.net
>>711
どの部分が間違っているのでしょうか?

713 :デフォルトの名無しさん (ワッチョイ 6f5f-yRf5 [14.11.194.224]):2021/08/09(月) 08:22:05.11 ID:E1wGpq5K0.net
valueは必須
>>1読んでからサンプルコードがあるならまずそれを出して

714 :デフォルトの名無しさん (ブーイモ MM7b-oAUT [202.214.125.141]):2021/08/09(月) 09:38:38.41 ID:8MKojLvJM.net
ここは答えだけ教えてもらえる場所じゃないから
それを求めてるなら別の場所に行って

715 :デフォルトの名無しさん (ワッチョイ ff01-VGi0 [126.159.232.76]):2021/08/09(月) 09:50:15.30 ID:IV0s5u8n0.net
>>712
第二引数が省略可能とどこに書いてある?
省略時に属性値が何になったか確かめたか?

setAttributeでdisabled属性を指定する方法をぐぐったか?
setAttributeのMDN英語版を読んだか?

716 :デフォルトの名無しさん (ワッチョイ 676e-dtsT [150.246.100.179]):2021/08/09(月) 10:18:05.96 ID:Azri5LRy0.net
了解っす。

717 :デフォルトの名無しさん (ワッチョイ 822c-Lto6 [211.11.11.1]):2021/08/09(月) 13:39:27.94 ID:78aLRiJY0.net
JavaScript の実行環境には、Node.js・ブラウザの2つある。
Node.jsを入れておくと、JavaScript のコード片を、
ブラウザを使わずに実行できるので便利

例えば、拡張機能・Quokka.js では、
console.log しなくても、オブジェクトの中身が表示される

let a = 1
a //=> 1

拡張機能・Code Runner では、右クリックメニューから、
ファイル全体または選択したコード片を実行できる

上の2つは、Node.jsの実行環境

一方、ブラウザで実行するなら、
拡張機能・open in browser では、ローカルファイルアクセスになる

一方、拡張機能・Live Server では、
自分のPC 内にサーバーを立ててから、そこから配信されるので、テストしやすい

ローカルファイルアクセスでは、CORS など、ブラウザの色々な制限がある

どの道、Node.js は絶対に必須。
npm/yarn, webpack, babel など、様々なツール・プロジェクトで使っているから。
Ruby on Rails でも必須

718 :デフォルトの名無しさん (ワッチョイ 676e-dtsT [150.246.100.179]):2021/08/09(月) 20:37:20.30 ID:Azri5LRy0.net
ロジックが分からないといった場合、デバッグは役に立たないのですか?

719 :デフォルトの名無しさん (テテンテンテン MMce-yRf5 [133.106.52.17]):2021/08/09(月) 21:38:55.96 ID:NcFB2G4xM.net
ごめん質問のロジックが分からない

720 :デフォルトの名無しさん (ワッチョイ ff01-VGi0 [126.159.232.76]):2021/08/09(月) 22:31:45.41 ID:IV0s5u8n0.net
>>718
ロジックが分からなければ、コードは書けない
デバッグ以前の問題

721 :デフォルトの名無しさん (ワッチョイ 1b63-TqrN [122.24.253.162]):2021/08/10(火) 05:43:40.17 ID:0l8E5sfU0.net
>>719
座布団1枚!

722 :デフォルトの名無しさん (ワッチョイ 676e-dtsT [150.246.100.179]):2021/08/10(火) 05:53:52.56 ID:4Mt5Fls80.net
>>720
で、ですよね、、、(´・ω・`)

723 :デフォルトの名無しさん (ワッチョイ 676e-dtsT [150.246.100.179]):2021/08/10(火) 21:33:07.35 ID:4Mt5Fls80.net
ステップ実行というのは同じ範囲を何度もループ出来るんでしょうか?
例えばクリックするごとに数字が加算されていくというばあい、同じ範囲をループさせる必要があります

<button id="button1">ボタン</button>
<script>
let button1 = document.getElementById("button1");
mode = false;
num = 0;
button1.addEventListener("click" , function()
{
switch(mode)
{
case false:
mode =true;
num += 1;
break;
case true:
mode = false;
num += 1;
break;

}
console.log(num);

});


</script>

このコードのaddEventListenerの範囲を何度もループさせたいのですが。

724 :デフォルトの名無しさん (テテンテンテン MMce-yRf5 [133.106.36.142]):2021/08/10(火) 21:48:11.22 ID:EVIw2nypM.net
イベントにブレークポイント仕込んで
何回もクリックすればええやん

725 :デフォルトの名無しさん (ワッチョイ ff01-VGi0 [126.159.232.76]):2021/08/10(火) 23:01:22.02 ID:qESkJ6RT0.net
>>723
反復処理を入れれば良い

726 :デフォルトの名無しさん (ワッチョイ 676e-dtsT [150.246.100.179]):2021/08/11(水) 11:45:51.34 ID:fyzMDiGk0.net
>>724
すみません
firefoxなんですが、例えばブレークポイントを以下のように仕込んでもループしません
開発環境によって違うのでしょうか?
以下の0と5にブレークポイントを仕込み、step inを連打しているのですが、この範囲をループしません
console.log("0");
console.log("1");
console.log("2");
console.log("3");
console.log("4");
console.log("5");

>>725
どうも
調べてきます

727 :デフォルトの名無しさん (ワッチョイ 822c-Lto6 [211.11.11.1]):2021/08/11(水) 13:18:09.70 ID:Z6PNV5dP0.net
「javascript 繰り返し」で検索!

for, do...while, while
label, break, continue
for...in, for...of

728 :デフォルトの名無しさん (ワッチョイ 676e-dtsT [150.246.100.179]):2021/08/11(水) 14:14:15.47 ID:fyzMDiGk0.net
ideやブラウザではなく、コードの方で対処するということですか?

729 :デフォルトの名無しさん (テテンテンテン MMce-yRf5 [133.106.36.142]):2021/08/11(水) 14:16:43.01 ID:P1BrY25qM.net
コードに書いてない動作をしたら
デバッグにならんでしょ

730 :デフォルトの名無しさん (ワンミングク MM52-IXul [153.155.90.122]):2021/08/11(水) 14:26:13.53 ID:7y0t+82QM.net
コードで繰り返してないのに繰り返したらおかしいじゃん

何度もクリックすればいいってのは、イベント仕込んだ要素をってことでしょ
ステップイン連打って、どこをどうしたらそういう理解になるのかわからん

731 :デフォルトの名無しさん (ワッチョイ 467b-7521 [153.185.174.10]):2021/08/11(水) 14:38:47.36 ID:qXwnbK0x0.net
>>726
カウントが追加されているかを確認したいんだったら、
デバッグ用にクリック時に変数値を表示するアラートでも出したら?
なんか根本的な部分がわかってない気もするんだけど。

732 :デフォルトの名無しさん (ワッチョイ 676e-dtsT [150.246.100.179]):2021/08/11(水) 16:45:11.40 ID:fyzMDiGk0.net
>>731
ステップ実行を使いたいんですよね
ステップ実行で繰り返しは出来ないんですよね

確かに根本は理解出来ていないです

733 :デフォルトの名無しさん (ワッチョイ 822c-Lto6 [211.11.11.1]):2021/08/11(水) 17:21:03.66 ID:Z6PNV5dP0.net
>>723
ブラウザを起動して、HTML を読み込んで、
開発者ツールのコンソールを開きながら、ボタンをクリックしていくと、

コンソールに、1, 2, 3 と表示されて、ちゃんと1ずつ増えていく

734 :デフォルトの名無しさん (ワッチョイ ff01-VGi0 [126.159.232.76]):2021/08/11(水) 17:40:28.99 ID:Hj9OBthu0.net
>>732
ステップ実行でもbreakpointでもコードにない動きはしない

735 :デフォルトの名無しさん (ワッチョイ 822c-Lto6 [211.11.11.1]):2021/08/11(水) 17:45:17.95 ID:Z6PNV5dP0.net
click イベント内で、break point で止めてから、step 実行していっても、
callback 関数を抜けると、実行が止まる

そこで一旦、ブラウザに戻って、またボタンを押さないと、
callback関数が呼ばれない

つまり、イベントの場合は、VSCode だけでは出来ない。
同時にブラウザも操作して、イベントを起動しないといけない

736 :デフォルトの名無しさん (ワッチョイ ff01-VGi0 [126.159.232.76]):2021/08/11(水) 18:04:02.19 ID:Hj9OBthu0.net
>>735
ステップ実行が何かを調べる事から始めるべき

737 :デフォルトの名無しさん (テテンテンテン MMce-yRf5 [133.106.32.1]):2021/08/11(水) 18:22:34.40 ID:/4PQgF5iM.net
マジですまんが何がやりたいのか分からないのでまともなアドバイスが出来ない
「ステップ実行で繰り返し」が最終目標なら諦めて

738 :725 (ワッチョイ 822c-Lto6 [211.11.11.1]):2021/08/11(水) 18:50:49.65 ID:Z6PNV5dP0.net
click イベント内のcallback 関数は、VSCode だけでは実行できない

同時にブラウザも操作して、イベントを起動しないと、
callback関数が呼ばれない

739 :デフォルトの名無しさん (ワッチョイ ff01-VGi0 [126.159.232.76]):2021/08/11(水) 19:12:40.02 ID:Hj9OBthu0.net
>>738
dispatchEventで発火可能
https://developer.mozilla.org/ja/docs/Web/API/EventTarget/dispatchEvent

740 :デフォルトの名無しさん (ワッチョイ 676e-dtsT [150.246.100.179]):2021/08/11(水) 20:12:32.61 ID:fyzMDiGk0.net
>>733
ボタンをクリックしていけばそうなんですが、ステップ実行のstep inの連打でそのような挙動をさせたいのですが、無理なんでしょうか?

741 :デフォルトの名無しさん (ワッチョイ 467b-7521 [153.185.174.10]):2021/08/12(木) 08:52:00.10 ID:uKIopBoH0.net
>>740
ステップ実行はあくまで、ブレークポイントまでを順に降りて実行するだけ。
意味もなくステップ実行にこだわるなよ。

742 :デフォルトの名無しさん (ワッチョイ 37ad-8kGE [124.145.12.157]):2021/08/12(木) 09:29:13.14 ID:u+CTgfOO0.net
ん?イベントハンドラの中をステップ実行したいの?
ソコが少し分からん。
あと、バベってたりしない?うまく掛からん事があるよ。

743 :デフォルトの名無しさん (ワッチョイ ff01-VGi0 [126.159.232.76]):2021/08/12(木) 11:30:17.02 ID:yKSWdRAq0.net
複数から>>728-730,734といわれて、未だにステップ実行で繰り返し処理しようとしてるのは理解出来ない

744 :デフォルトの名無しさん (ワッチョイ ff01-VGi0 [126.159.232.76]):2021/08/12(木) 11:40:23.94 ID:yKSWdRAq0.net
ステップ実行のロジックを理解しなぎゃ話にならない
>>718は何だったのか

745 :デフォルトの名無しさん (ブーイモ MMb3-gbE1 [210.138.176.97]):2021/08/12(木) 12:06:58.17 ID:rENYiTuxM.net
ChromeならgetEventListeners使ってコンソールから直接イベントを繰り返し発行すればいい

listeners = getEventListeners(button1)
listener = listeners.click[0].listener
// debug(listener) // set breakpoint
for(let i=0;i<10;i++) listener()

746 :デフォルトの名無しさん (ワッチョイ 0b6e-YgaZ [150.246.100.179]):2021/08/13(金) 16:09:16.34 ID:bqxBNW7u0.net
>>743
繰り返し処理のデバッグはステップ実行を使わないのですか?
ステップ実行がどんな場面で必要かよくわかりませんが、

747 :デフォルトの名無しさん (ワッチョイ 1f2c-MEry [211.11.11.1]):2021/08/13(金) 16:27:54.44 ID:S8120IP70.net
質問者はブラウザを操作しないで、VSCode だけで、イベントを繰り返したいのだろ?
ブラウザのボタンをクリックすると、イベントが呼ばれるから簡単なんだけど

クリックなど、ユーザーのアクションが無いと、
イベントが呼ばれない事を知らないのかも

748 :デフォルトの名無しさん (ワッチョイ 0fda-cJil [121.113.50.166]):2021/08/13(金) 19:28:29.54 ID:IsM7Exgl0.net
array.lengthで取得できる配列の長さって、実行時に数えているのでしょうか?
それとも要素数を値として持っているのでしょうか?

749 :デフォルトの名無しさん (アウアウウー Sa0f-1Ri4 [106.128.146.120]):2021/08/13(金) 19:31:32.80 ID:SLSCpe3Qa.net
数えてるという言い方が正しいかわからんが
valueを削除したあとlengthを再取得すると減る

750 :デフォルトの名無しさん (ブーイモ MM8f-/0VW [210.138.179.253]):2021/08/13(金) 19:45:15.15 ID:hEV1L7jtM.net
array.lengthがO(1)かO(n)かってこと?

751 :デフォルトの名無しさん (オッペケ Sr4f-geb/ [126.193.182.237]):2021/08/13(金) 20:04:58.72 ID:VSKjifkAr.net
>>746
繰り返し処理がないコードで繰り返し処理が出来るわけない
コードに繰り返し処理を入れて、デバッグしろ、と何度もいってる

752 :デフォルトの名無しさん (オッペケ Sr4f-geb/ [126.193.182.237]):2021/08/13(金) 20:06:25.53 ID:VSKjifkAr.net
>>747
>>739では出来ない?

753 :デフォルトの名無しさん (ワッチョイ 1f2c-MEry [211.11.11.1]):2021/08/13(金) 20:30:04.92 ID:S8120IP70.net
さすがに、配列の要素数ぐらい持ってるだろ

関数型のElixir では、リストの要素数を、その都度数えるけど。O(N)

754 :デフォルトの名無しさん (テテンテンテン MM7f-K3qo [133.106.50.24]):2021/08/13(金) 20:56:08.85 ID:q1smFUYUM.net
data propertyってあるからとりあえず値は持ってるハズ
https://tc39.es/ecma262/#sec-properties-of-array-instances-length

755 :デフォルトの名無しさん (ワッチョイ 0b6e-YgaZ [150.246.100.179]):2021/08/14(土) 07:42:49.75 ID:ogKvtxQL0.net
>>751
ブレークポイントの範囲内で動かすというようなことが出来るのかなと

756 :デフォルトの名無しさん (ワッチョイ ab01-geb/ [126.159.194.90]):2021/08/14(土) 08:00:11.15 ID:D1XQ/dN70.net
>>755
繰り返し範囲をどうやって設定するんだ?
何か設定をしたのか?

757 :デフォルトの名無しさん (ワッチョイ 0b6e-YgaZ [150.246.100.179]):2021/08/14(土) 11:31:45.65 ID:ogKvtxQL0.net
>>756
ブレークポイントを2つ設定することで、範囲が指定されるのかなと考えていました

758 :デフォルトの名無しさん (ワッチョイ ab01-geb/ [126.159.194.90]):2021/08/14(土) 11:35:01.27 ID:D1XQ/dN70.net
>>757
3つあったら3つ目には永遠に辿り着かない?
あなたの想定する挙動が公式ヘルプのどこに書いてあった?

759 :デフォルトの名無しさん (ワッチョイ 0b6e-YgaZ [150.246.100.179]):2021/08/16(月) 14:04:43.59 ID:HuZbr3zA0.net
>>758
ブレークポイントは2つです。
この範囲内のみの実行が可能かと思っていました。
ヘルプは読んでいないのですが、そういうものかと思いこんでいました。

760 :デフォルトの名無しさん (ワッチョイ 4b2d-ZfRL [220.100.114.30]):2021/08/17(火) 07:58:32.06 ID:O7tce/sS0.net
「ハンズオンJavaScript」と言う難解な本を読んでいます。
classの学習に入る前に、
classを使わずに関数で他のオブジェクトの構造を継承と言うか取り込んだ後、
自身のインスタンスを生成し、
それを返す関数の定義が以下のようにされているのですが、
ここでスプレッド演算子を用いている意味がさっぱり分かりません。
(書籍に説明もありません)
外すとまともに動作しなくなります。
このスプレッド演算子からなる「...parent」は
どういった働きがあるのでしょうか?

function Vector3( x, y, z )
{
let parent = Vector2( x, y );
const o =
{
parent,
...parent,
z,
lengthSq: Vector3_lengthSq,
add: Vector3_add
};
return o;
}

761 :デフォルトの名無しさん (ワンミングク MMbf-YZgY [153.155.90.122]):2021/08/17(火) 12:09:13.23 ID:RF0GATkYM.net
parentで親のプロトタイプチェーンにつないで
…parentで親のプロパティをコピーしてるんではないかな

762 :デフォルトの名無しさん (ワッチョイ 1f2c-sbZG [211.11.11.1]):2021/08/17(火) 12:12:47.41 ID:1q99IGhS0.net
「javascript スプレッド構文」で検索!

763 :デフォルトの名無しさん (ワッチョイ 0fdb-NTPF [217.178.96.78]):2021/08/17(火) 13:59:39.03 ID:Z1wXss9D0.net
javascript技術者は日本国内で何人ぐらいいるのでしょうか?
10万人?

764 :デフォルトの名無しさん (アウアウウー Sa0f-5/Wf [106.129.77.16]):2021/08/18(水) 00:21:17.10 ID:zdciajxTa.net
>>763
https://www.netvisionacademy.com/magazine/3230/
> 経済産業省の調査によると、2020年現在のIT人材数は約100万人、
>不足数は約30万人と推計されています。

765 :デフォルトの名無しさん (ワッチョイ 4b2d-ZfRL [220.100.114.30]):2021/08/18(水) 04:14:03.58 ID:MlgFIKsc0.net
>>761
レスありがとうございます。

ご助言頂いた後に、何故「parent」を包括してるのに
わざわざ「...parent」と展開しているのかに悩まされたのですが、
継承元のメソッドをオーバーライドしているため、
継承元のメソッドを参照するための措置だと理解するに至りました。

何はともあれすっきりいたしました。ありがとうございました。

766 :デフォルトの名無しさん (ワッチョイ 0fdb-NTPF [217.178.96.78]):2021/08/18(水) 12:01:29.72 ID:PUOUx4QT0.net
>>764
100万人の内JavaScript使える奴は50万人はいるね…。

がっかり。

767 :デフォルトの名無しさん (ワッチョイ ebe6-zvAr [14.3.135.95]):2021/08/18(水) 13:25:34.20 ID:tXUUSdLY0.net
デザイナーですらjsバリバリですから

768 :デフォルトの名無しさん (ワッチョイ 4b5c-NTPF [220.212.122.252]):2021/08/18(水) 15:45:08.23 ID:wgqyPKZK0.net
今やデザイナーもJSは必須だよなあ

769 :デフォルトの名無しさん (オッペケ Sr4f-zvAr [126.194.245.205]):2021/08/18(水) 16:45:19.75 ID:UItnOrZNr.net
デザイナーの方が
複雑なアニメションや3Dとか
実装のスキル高かったりしますよ
cssとかのビルドシステムとかも
開発同等ですし

770 :デフォルトの名無しさん (ワッチョイ 0b6e-YgaZ [150.246.100.179]):2021/08/19(木) 20:25:30.16 ID:DoSdBCp10.net
プログラミングにはまる方法ありますか?
もう1日獣コーディング出来るという感じの

771 :デフォルトの名無しさん (ブーイモ MM7f-Vt5m [163.49.207.219]):2021/08/19(木) 20:29:27.31 ID:XQ1nrb4AM.net
百獣の王ライオンのように獣分勉強することが獣要だ。

772 :デフォルトの名無しさん (ワッチョイ 0bac-V791 [150.249.131.45]):2021/08/19(木) 21:40:17.09 ID:1kNwAhId0.net
獣コーディングってカッコいいな
コーディングバトルものにありそう

773 :デフォルトの名無しさん (ワッチョイ 0f63-NG3H [153.228.32.95]):2021/08/19(木) 23:00:55.88 ID:JbrAGmXW0.net
地水火風のコーディング
光と闇のコーダー

774 :デフォルトの名無しさん (ワッチョイ 356e-hCLa [150.246.100.179]):2021/08/20(金) 10:32:33.93 ID:Z+g/1lv60.net
javascriptでゲージを表示出来るライブラリってないですか?
かんたんなものでいいんですが

円形や半円形で、残り時間を表示出来るようなもの

775 :デフォルトの名無しさん (ワッチョイ 757d-FcIJ [118.240.65.15]):2021/08/20(金) 10:52:39.21 ID:kEo814pT0.net
>>769
> cssとかのビルドシステムとか

どういう意味?

776 :デフォルトの名無しさん (ワッチョイ 85e6-Hlob [14.3.135.95]):2021/08/20(金) 11:10:11.76 ID:fkI3imbk0.net
scssとかのcssプリプロセッサやら普通に使うんやから
glupとかGruntとかのビルドシステム組むでしょ
そもそもjsでアニメーションコード書いてんだし

777 :デフォルトの名無しさん (ワッチョイ 85e6-Hlob [14.3.135.95]):2021/08/20(金) 11:13:32.72 ID:fkI3imbk0.net
あと、UI/UXの設計もデザイナー側でやることが多くなった

そうすると、開発屋はデザイナーの下位作業(下請け感がある)ぽくなる

778 :デフォルトの名無しさん (ワッチョイ 0b63-1tx4 [153.228.32.95]):2021/08/20(金) 11:46:11.89 ID:lyH6KwTF0.net
工程として下流になるのはわかるがなんで下請けやねん

779 :デフォルトの名無しさん (ワッチョイ e32c-RUy2 [211.11.11.1]):2021/08/20(金) 13:30:58.07 ID:TjGw1Vbs0.net
JavaScript, CSS のビルドは、Ruby on Rails でも使う。
Webpack, Babel, Gulp など

Bootstrap も、SCSS

>>774
「javascript グラフ ライブラリ おすすめ」で検索!

Google Charts, Highcharts, Chart.js, C3(D3)

780 :デフォルトの名無しさん (ワッチョイ 356e-hCLa [150.246.100.179]):2021/08/20(金) 14:54:30.33 ID:Z+g/1lv60.net
没頭できる方法はないかしら

781 :デフォルトの名無しさん (アウアウウー Sad9-LN3e [106.129.73.97]):2021/08/20(金) 21:46:27.63 ID:a4ptYSCBa.net
>>774
円じゃなくてバーみたいのじゃダメかな?
https://itest.5ch.net/test/read.cgi/future/1476229483/375
http://imgur.com/9yuYIAR.gif

782 :デフォルトの名無しさん (アウアウウー Sad9-LN3e [106.129.73.17]):2021/08/20(金) 22:31:55.01 ID:FxyObMJ7a.net
>>774
円じゃなくてバーみたいのじゃダメかな?
https://itest.5ch.net/test/read.cgi/future/1476229483/375
http://imgur.com/9yuYIAR.gif

783 :デフォルトの名無しさん (ワッチョイ 356e-hCLa [150.246.100.179]):2021/08/21(土) 06:10:37.76 ID:kZOy5p0X0.net
>>782
それにしときます

784 :デフォルトの名無しさん (ワッチョイ 356e-hCLa [150.246.100.179]):2021/08/21(土) 13:43:38.68 ID:kZOy5p0X0.net
プログラミン好きになりたい

785 :デフォルトの名無しさん (オッペケ Srb1-Hlob [126.204.225.74]):2021/08/21(土) 17:31:43.12 ID:8vON4ltjr.net
好き好き好きぃーー好き好き〜〜♪

786 :デフォルトの名無しさん (アウアウウー Sad9-LN3e [106.129.141.43]):2021/08/21(土) 19:36:40.29 ID:IJG/Rocua.net
>>780
JavaScriptでのアプリってさ
静止画で動かないものをプログラミングするよりも
動きのあるものやインタラクションで即応性のあるもののが楽しいと思うよ
canvasやったらお絵描きやら、three.js使ってマウスでグリグリ動かせる3Dも作れるし

787 :デフォルトの名無しさん (ワッチョイ 356e-hCLa [150.246.100.179]):2021/08/22(日) 12:53:46.24 ID:M/f8ZXpG0.net
>>786
ゲームエンジンも使ってますね
確かに楽しい

788 :デフォルトの名無しさん (ワッチョイ 356e-hCLa [150.246.100.179]):2021/08/24(火) 08:35:43.20 ID:MyDy/SP/0.net
コツコツやってれば楽しくなるかしら

789 :デフォルトの名無しさん (アウアウウー Sad9-LN3e [106.128.115.218]):2021/08/24(火) 12:57:17.13 ID:jjxwJFYFa.net
自分の好きなものとか作ってみたいアイデアを形にすれば楽しい

790 :デフォルトの名無しさん (オイコラミネオ MMe1-CXBN [150.66.82.157]):2021/08/26(木) 12:42:23.70 ID:ReNipBHPM.net
セールストークのような短文が浮かんでは消えるようなスクリプトを書きたいです
その場で表示されて、消えて、別の短文が表示されるみたいに
リストした候補を順番、ランダムで代わる代わる表示させるには
どんなキーワードで検索したら似たような機能のスクリプトを探せますか?
素人が引き継ぎをするようになり、webプログラムの機能の専門用語が分からず難儀しています、、

791 :デフォルトの名無しさん (アウアウウー Sad9-LN3e [106.128.113.118]):2021/08/26(木) 17:49:38.75 ID:QBOoVl/3a.net
>>790
そのままJavaScriptアニメーションとかでググればいい
基本的な仕組みは紙芝居やアニメーションと同じで
setIntervalの関数で
DOMの要素なりプロパティを一定時間毎に入れ替えれば良い

792 :デフォルトの名無しさん (オイコラミネオ MM09-GAdy [150.66.89.164]):2021/08/27(金) 00:44:52.42 ID:B3pyqp0/M.net
>>791
有難うございます!
週末に色々試してみます

793 :デフォルトの名無しさん (ワッチョイ 7d6e-+pMA [150.246.100.179]):2021/08/27(金) 13:43:18.46 ID:qCuii4QT0.net
>>789
プログラミン楽しくなった瞬間とかありますか?
やっぱりある程度スキルがつかないとつまらんですわな

まず継続化の時点で躓いている

794 :デフォルトの名無しさん (ワッチョイ 7d6e-+pMA [150.246.100.179]):2021/08/27(金) 14:09:02.43 ID:qCuii4QT0.net
即時関数ってのは全体の構造を把握しやすくするために使うんでしょうか?
関数化すればアウトラインに出ますもんね。

795 :デフォルトの名無しさん (ワッチョイ 6b63-9Rg1 [153.228.32.95]):2021/08/27(金) 15:39:43.68 ID:+rhdjjD60.net
スキルというか目的じゃないかな
出会い系サイトで女に足跡つけまくるスクリプト書いてた時とか楽しかったわ
すぐ対策されたけど

796 :デフォルトの名無しさん (ワッチョイ 1d6e-XeGO [124.219.198.89]):2021/08/27(金) 17:07:32.29 ID:h8MNocFf0.net
java/C++/C#辺りやってたのでオブジェクトの扱いがよく分からないというかプロトタイプベース?というのを聞いて分からない!文化が違う!ってなってます
なんかその辺上手いこと説明してくれてるとこないですかね

797 :デフォルトの名無しさん (アウアウウー Saa1-0BKB [106.128.115.216]):2021/08/27(金) 17:44:28.50 ID:H0yOmdsJa.net
jsもクラス対応してたっしょ

798 :デフォルトの名無しさん (ワッチョイ 7d6e-+pMA [150.246.100.179]):2021/08/27(金) 18:57:04.42 ID:qCuii4QT0.net
>>795
目的あるけど、スキル不足でまだ楽しくない

799 :デフォルトの名無しさん (アウアウウー Saa1-0BKB [106.128.115.4]):2021/08/27(金) 19:32:29.78 ID:eShI7uDWa.net
まず目的を明確にすれば?
「Program」には「計画」と言う意味があって
目的に沿って計画を書くのがプログラミング(手続き型言語)

800 :デフォルトの名無しさん (ワッチョイ a32c-4h9J [211.11.11.1]):2021/08/27(金) 21:24:03.62 ID:cMIVTei20.net
>>790
要素が自動的に流れ続ける、loop slider, slide show とか

801 :デフォルトの名無しさん (ワッチョイ a32c-4h9J [211.11.11.1]):2021/08/27(金) 21:27:41.85 ID:cMIVTei20.net
>>794
IIFE (Immediately Invoked Function Expression; 即時実行関数式)は、内部を隠ぺいできる

外から、内部にアクセスできなくなる

802 :デフォルトの名無しさん (ワッチョイ a32c-4h9J [211.11.11.1]):2021/08/27(金) 21:58:17.72 ID:cMIVTei20.net
>>796
prototype, __proto__ は継承チェーン

let Person = function (name) {
this.name = name;
};

let taro = new Person('太郎');
taro.age = 20;
console.log(taro); //=> Person { name: '太郎', age: 20 }

let jiro = new Person('次郎');
console.log(jiro); //=> Person { name: '次郎' }

taro.age = 20;
みたいに、インスタンスにメンバー(データ・関数)を直接追加しても、
そのインスタンスにしか追加されない。
Ruby の特異メソッドと同じ

1階層上に追加しないといけない。
それをプロトタイプチェーンを遡ると言う

803 :デフォルトの名無しさん (ワッチョイ a32c-4h9J [211.11.11.1]):2021/08/28(土) 19:18:57.18 ID:g8WbsRiO0.net
>>790

function f() {
const ary = ["あ","い","うう"]
let i = 1;

const timer_id = setInterval(function () {
// 0〜配列の要素数未満の乱数を発生させて、少数点以下を切り捨てる。つまり、0〜2
idx = Math.floor(Math.random() * ary.length)
console.log(i, ary[idx]);
i++;

// 指定回数でタイマーを解除する
if (i > 5) { clearInterval(timer_id); }
}, 1000);
}

f()

804 :デフォルトの名無しさん (オイコラミネオ MM09-GAdy [150.66.71.102]):2021/08/29(日) 15:56:34.06 ID:IDEI2UK0M.net
>>803
有難うございます!
これはJavaScript?
自分で考えてからあれこれ加工するまでには全然至っていません・・
アニメーションも探すとcss3でも可能みたいですね

セールストークの文字列が2箇所あって
例「みんなのお役に立てる」「◯◯です」みたいな感じなのですが
こういう場合は一個づつの要素を動かしてあげる方が簡単ですよね?

3つくらいの組み合わせを、季節ごとに変えようとか考えていて色々試行錯誤してます
ワンセットで、1→2→3と時間指定で変えられれば一番楽なのですが

805 :デフォルトの名無しさん (ワッチョイ c502-cE3l [106.166.135.3]):2021/08/30(月) 14:47:37.94 ID:4x4SXrWk0.net
>>803
idxは宣言しないんか?

806 :デフォルトの名無しさん (アウアウウー Saa1-0BKB [106.129.74.51]):2021/08/30(月) 17:56:17.86 ID:RiczHxxva.net
無名関数内スコープでなおかつ実行時未確定乱数だからかなぁ・・

807 :デフォルトの名無しさん (テテンテンテン MMab-OZcf [133.106.47.107]):2021/08/30(月) 18:26:37.84 ID:v1JP3SQOM.net
多分忘れただけでしょ
とりたてて言うことでもない

808 :デフォルトの名無しさん (ワッチョイ cbda-KrGZ [121.116.31.42]):2021/09/03(金) 20:32:19.52 ID:L3QItCYH0.net
オブジェクトのプロパティの値に対して、falseを入れておくと、その一つ下のプロパティの存在チェックが
できるのですが、nullにするとエラーが出てしまいます。
一体どのような理由なのでしょうか?

obj = {
obj.abc = false;
// obj.abc = null;
};
if (obj.abc,def) {...}

809 :デフォルトの名無しさん (ワッチョイ d535-sk6x [180.145.179.243]):2021/09/03(金) 21:34:31.02 ID:KftlCW3D0.net ?2BP(1000)
sssp://img.5ch.net/ico/anime_buun02.gif
>>808
falseはではない(表示しない)
trueはである(表示する)
nullはなにもない(どちらでもない)
だからだと思う

810 :デフォルトの名無しさん (ワッチョイ 4b61-KrGZ [153.217.1.146]):2021/09/03(金) 22:30:41.85 ID:5CZYJcHV0.net
>>808
falseはBooleanなオブジェクトだから
nullでやりたいなら?.使うべし

811 :793 (ワッチョイ 4b2c-3Lnd [153.136.94.40]):2021/09/03(金) 22:57:56.98 ID:pInph4TO0.net
>>803
自己修正

>idx = Math.floor(Math.random() * ary.length)
let が抜けていた

VSCode で、拡張機能・ESLint も入れているけど、
letが無くても警告されない

812 :デフォルトの名無しさん (ワッチョイ cbda-KrGZ [121.116.31.42]):2021/09/04(土) 09:37:20.21 ID:EhGYuF7y0.net
>>809-810
ありがとうございます。
falseはオブジェクトだったのですね。
理解できました!


ちなみに "?." とはなんでしょうか?
ググってみましたが出てきませんでした…

813 :デフォルトの名無しさん (テテンテンテン MM4b-oJEa [133.106.52.57]):2021/09/04(土) 11:16:44.89 ID:F9ZtkFjVM.net
>>812
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Operators/Optional_chaining

814 :デフォルトの名無しさん (ワッチョイ cbda-KrGZ [121.116.31.42]):2021/09/04(土) 14:34:40.34 ID:EhGYuF7y0.net
>>813
新しい文法なんですね
全然知りませんでした。
ちょろっと勉強してみます!!

815 :デフォルトの名無しさん (ワッチョイ 4b2c-3Lnd [153.136.94.40]):2021/09/05(日) 00:45:07.05 ID:UFxCuC9Y0.net
ぼっち演算子・Null条件演算子・Null安全演算子か

Ruby にも導入された。&.
object&.method

816 :デフォルトの名無しさん (ワッチョイ c56e-nzYM [150.246.100.179]):2021/09/05(日) 04:32:46.84 ID:oH2jfftx0.net
戻り値のない関数ってどういうときに使うんでしょうか?

817 :デフォルトの名無しさん (ブーイモ MM6b-0uGf [163.49.215.65]):2021/09/05(日) 06:50:44.94 ID:uH4eg5q/M.net
無数にあるけど例えばalertとか

818 :デフォルトの名無しさん (ワッチョイ c56e-nzYM [150.246.100.179]):2021/09/05(日) 10:32:02.35 ID:oH2jfftx0.net
>>817
alertやconsole.logなどの何らかの出力処理を関数内に含めるか、returnを使うかしないと、外部とのやり取りは出来ないんですよね?

819 :デフォルトの名無しさん (ワッチョイ 955f-oJEa [14.11.194.224]):2021/09/05(日) 11:31:11.96 ID:aRsSXuKi0.net
ごめんけど何言ってるか分からん

820 :デフォルトの名無しさん (ワッチョイ c56e-nzYM [150.246.100.179]):2021/09/05(日) 12:47:36.39 ID:oH2jfftx0.net
>>819
関数は数値などを加工するものだと思います。
その加工した値を取り出す手段がないと、使う意味がないと思うのですが。

821 :デフォルトの名無しさん (ワッチョイ 3501-hAxB [126.28.71.248]):2021/09/05(日) 13:42:05.76 ID:rMLShDrA0.net
>>816
「プログラミング 関数を作る意味」でググっていくつか読めば分かると思う

822 :デフォルトの名無しさん (ワッチョイ d5b0-ypAh [180.46.85.8]):2021/09/05(日) 14:46:48.17 ID:7oSpDR4l0.net
>>818
alertやconsoleに限らず、その関数内から呼び出せる任意の関数を使って外部とのやりとりはできるわけだが。

823 :デフォルトの名無しさん (ワッチョイ c56e-nzYM [150.246.100.179]):2021/09/05(日) 18:55:22.30 ID:oH2jfftx0.net
>>821
>>822
はい

824 :デフォルトの名無しさん (ワッチョイ c56e-nzYM [150.246.100.179]):2021/09/07(火) 11:24:53.81 ID:S+wKaSSK0.net
localStrageに複数のデータを保存して、ループで取り出したいのですが、pushで保存は可能です。しかし、forで取り出すとカンマの区切りが機能していないようです。
[1,2,3]
こういう配列があった場合、forで取り出すと以下のようになります。
1
,
2
,
3
つまりこれは配列ではなく、文字列として扱われているのだと思います。
localStrageへの保存はどのような方法が一般的なのでしょうか?

以下はstartを押すとlocalStrageに配列を保存し、outputで取りだすというものです。
<button id="start">ボタン</button>
<button id="test">output</button>
<div id="timer" style="border:1px solid red;width:500px;height:500px;"></div>
<script>
let startButton = document.getElementById("start");
let testButton = document.getElementById("test");
let timer = document.getElementById("timer");
let num = 0;
let arr = [];
startButton.addEventListener("click" , function()
{num += 1;
timer.insertAdjacentHTML("afterbegin" ,"<div>" + num + "</div>");
arr.push(num);
localStorage.setItem("saveArray" , arr);
});
testButton.addEventListener("click" , function()
{let array = localStorage.getItem("saveArray");
for(let i = 0;i < array.length ; i ++)
{console.log(array[i]);}});
</script>

825 :デフォルトの名無しさん (ワッチョイ 4b61-KrGZ [153.217.1.146]):2021/09/07(火) 11:29:52.51 ID:cJmyi1+i0.net
>>824
JSON.stringify(), JSON.parse()

826 :デフォルトの名無しさん (ワッチョイ c56e-nzYM [150.246.100.179]):2021/09/07(火) 15:35:10.78 ID:S+wKaSSK0.net
>>825
jsonにするということですが、なぜ配列だと駄目なんですかね。

827 :デフォルトの名無しさん (ワッチョイ 4b7b-xzrk [153.185.174.10]):2021/09/07(火) 15:44:10.61 ID:1upJrmlw0.net
pythonにとって読み込んだテキストは単なる文字列だから。
“[1,2,3]”と同じ。

828 :デフォルトの名無しさん (ワッチョイ 4b7b-xzrk [153.185.174.10]):2021/09/07(火) 15:48:32.44 ID:1upJrmlw0.net
おっとpythonスレじゃなかった。javascriptにとってね。

829 :デフォルトの名無しさん (ワッチョイ c56e-nzYM [150.246.100.179]):2021/09/07(火) 15:57:51.34 ID:S+wKaSSK0.net
>>828
そういう仕組だと覚えるしかないですね
localstrageって一種の変数みたいなもんじゃないんでしょうかね

830 :デフォルトの名無しさん (ワッチョイ 4b2c-8qru [153.136.94.40]):2021/09/07(火) 20:38:17.68 ID:YcIWO4/P0.net
外部とのやり取りは、文字列だけ

オブジェクトのシリアル化(直列化)、serialize

831 :デフォルトの名無しさん (ブーイモ MM6b-0uGf [163.49.200.166]):2021/09/07(火) 22:51:34.49 ID:G3yrM4UCM.net
localstorageだと強制的に文字列に変換されるから、それが嫌ならlocalforageとかのラッパーを使うといい

832 :デフォルトの名無しさん (ワッチョイ c56e-zxq2 [150.246.100.179]):2021/09/08(水) 15:58:10.14 ID:Zc9KUQv/0.net
はい(´・ω・`)

833 :デフォルトの名無しさん (ワッチョイ c56e-zxq2 [150.246.100.179]):2021/09/08(水) 21:31:41.92 ID:Zc9KUQv/0.net
innerhtmlはfor内では機能しないのでしょうか?
クリックしたときにtimerの中にnum_arrの中身をセットしたいです。
しかし、console.log(num_arr[i])での展開はされますが、innerhtmlでのセットは機能していないです。
なぜでしょうか?
<button id="test2">
test2
</button>
<div id="timer"></div>
<script>
let testButton2 = document.getElementById("test2");
let num_arr = [1,2,3,4,5];
testButton2.addEventListener("click" , function()
{
for(let i = 0;i <num_arr.length ; i ++)
{
timer.innerHTML = "<div>" + num_arr[i] + "</div>" ;
console.log(num_arr[i]);
}
});
</script>

834 :デフォルトの名無しさん (テテンテンテン MM4b-oJEa [133.106.194.111]):2021/09/08(水) 21:50:08.74 ID:PiHp4Uh3M.net
書いた通りに動いてるじゃん
一瞬で上書きされるから人間の目には何が起きてるか見えんけど

835 :デフォルトの名無しさん (ワッチョイ 6501-nmof [60.72.142.62]):2021/09/08(水) 21:52:59.07 ID:pthgZojC0.net
>>833
> for(let i = 0;i <num_arr.length ; i ++)

i ++ とは?

836 :デフォルトの名無しさん (ワッチョイ 4b2c-8qru [153.136.94.40]):2021/09/08(水) 21:56:09.90 ID:dK8gXF1C0.net
変数timer が未定義だから

let timer = document.getElementById("timer");
が必要なのでは?

837 :デフォルトの名無しさん (ワッチョイ 6501-nmof [60.72.142.62]):2021/09/08(水) 22:05:24.18 ID:pthgZojC0.net
>>836
その方がお行儀がいいのでそうすべきだが、定義はされてる

838 :デフォルトの名無しさん (アウアウウー Sa69-AvaG [106.129.116.79]):2021/09/08(水) 22:13:11.22 ID:6Ur8A06Za.net
>>833
プラスイコールにしてみればわかるよ
timer.innerHTML = "<div>" + num_arr[i] + "</div>" ;
timer.innerHTML += "<div>" + num_arr[i] + "</div>" ;

839 :デフォルトの名無しさん (ワッチョイ 6501-nmof [60.72.142.62]):2021/09/08(水) 23:14:26.26 ID:pthgZojC0.net
>>838
innerHTMLでなくていい気はするが、原因はその通りだな
https://developer.mozilla.org/ja/docs/Web/API/Element/insertAdjacentHTML

840 :デフォルトの名無しさん (ワッチョイ 6501-lYlz [60.126.191.83]):2021/09/09(木) 00:07:10.15 ID:nyRHg+r60.net
chrome拡張機能を作っているのですが、insertRuleしようとするとたまにエラーが出てしまいます。
調べてもよくわからなかったのですが、原因わかる方いますか?
Error handling response: Error: Failed to execute 'insertRule' on 'CSSStyleSheet': Failed to parse the rule 'undefined'.

841 :デフォルトの名無しさん (アウアウウー Sa69-AvaG [106.129.118.72]):2021/09/09(木) 00:10:23.30 ID:4mdtO86la.net
>>833>innerhtmlはfor内では機能しないのでしょうか?

>>838の様にすればinnerHTMLはfor内でも機能してるのが確認出来る

>クリックしたときにtimerの中にnum_arrの中身をセットしたいです。

なら
//num_arr[i] ではなく

timer.innerHTML = "<div>" + num_arr.join() + "</div>" ;

とすべし、あと名前はtimerではなくてtimesだろう

842 :デフォルトの名無しさん (ワッチョイ 4b2c-8qru [153.136.94.40]):2021/09/09(木) 00:21:08.30 ID:sZM33J3R0.net
>>840
そのエラー文字列で、Google 検索すれば?

843 :デフォルトの名無しさん (ワッチョイ 3501-UAwi [126.28.239.133]):2021/09/09(木) 01:04:57.92 ID:gVcxc3AP0.net
jsを勉強し始めたんですがコールする関数タイポしてもコンパイルエラーとかないんで実行してコケて気づいて直す、を繰り返してしまいます。
こういうテスト以前のコーディングミスについて、コンパイル言語のように事前に検知する方法はないでしょうか?
ちなみにvscodeで開発してます。

844 :デフォルトの名無しさん (ブーイモ MM6b-FGfd [163.49.207.128]):2021/09/09(木) 01:27:37.42 ID:BO4ka+Z8M.net
コケちゃいました

845 :デフォルトの名無しさん (ブーイモ MM6b-0uGf [163.49.206.211]):2021/09/09(木) 01:53:20.98 ID:EzLIxC6LM.net
eslintとかtypescript使うとか

846 :デフォルトの名無しさん (ワッチョイ 4b2c-8qru [153.136.94.40]):2021/09/09(木) 03:49:44.49 ID:sZM33J3R0.net
漏れは、VSCode で、スクラッチパッドみたいな拡張機能・Quokka.js で、
コードを入力してるけど、文法エラーでは、赤い波線が表示される

拡張機能・ESLint も使っているからかな?

もちろん、Node.js もインストールしているから、
Quokka.jsに書いたコードは、Node.jsで実行されるので、時刻が9時間ずれる

847 :デフォルトの名無しさん (ワッチョイ c56e-zxq2 [150.246.100.179]):2021/09/09(木) 06:09:13.65 ID:MrnZHVcA0.net
>>838
これで解決しました
ありがとう

加算にしないと駄目なんですね(´・ω・`)、、、

848 :デフォルトの名無しさん (ワッチョイ 3501-UAwi [126.28.239.133]):2021/09/09(木) 08:16:04.83 ID:gVcxc3AP0.net
eslint、こんなのあるんですね ありがとうございます

849 :デフォルトの名無しさん (ワッチョイ c56e-zxq2 [150.246.100.179]):2021/09/09(木) 15:28:43.86 ID:MrnZHVcA0.net
プログラミンコードの校正ってどこでアドバイスもらえますか?
ストップウォッチ作ったはいいものの、コードぐちゃぐちゃで読んでて分からない
分かりやすく書く方法を教えてほしいのです(´・ω・`)、、、

850 :デフォルトの名無しさん (ワッチョイ 4b7b-xzrk [153.185.174.10]):2021/09/09(木) 15:40:55.41 ID:MjE68I3R0.net
処理や変数など要所にコメント入れるようにして、
自分でわかるように書き直してみたらいい。
理解も深まるし無駄なところもわかったりする。

851 :デフォルトの名無しさん (ワッチョイ c56e-zxq2 [150.246.100.179]):2021/09/09(木) 15:52:13.51 ID:MrnZHVcA0.net
https://ideone.com/O5tsDV
ideonにupしました(´・ω・`)、、、
コメント入れているのですが、改善点のアドバイスもらえますか?
コメントアウトしている部分はとりあえずは使わない機能です。

852 :デフォルトの名無しさん (ワッチョイ 4b7b-xzrk [153.185.174.10]):2021/09/09(木) 16:17:46.87 ID:MjE68I3R0.net
>>851
適当にコード拾ってきてつなぎ合わせたのでなけりゃ、十分理解できるコードだと思うが。
それなりにコメント入ってるし。
むしろ具体的にどこがわからんのよ。

自分で理解して書いたコードだったら、一回全内容にコメント入れてみたら?

853 :デフォルトの名無しさん (ワッチョイ c56e-zxq2 [150.246.100.179]):2021/09/09(木) 19:26:54.34 ID:MrnZHVcA0.net
>>852
どういう部分と言われても難しいですが、しばらく放置してから見ると動きを理解するのに少し時間がかかるというか
この程度の短いコードですが

複数ファイルに分けたりしたほうがいいのでしょうか?

おそらく、良くわからないのは実行の流れです
フローチャートなどは苦手で書いていません

854 :デフォルトの名無しさん (ワッチョイ 4bbb-nTGN [217.178.195.45]):2021/09/09(木) 20:13:16.49 ID:B3AuMWY60.net
>>853
できるだけ関数化するのと、その関数の名前にはこだわった方がよいかも
ファイルは分けなくてよい
フローチャートは自分も書いたことはない

例えばタイマの初期化が先頭部分とリセットボタンクリックイベントの2箇所にあるが、読みづらい上に不具合のもと
実際にリセットボタンクリック時にはミリ秒がクリアされるのに
起動時にはミリ秒がクリアされていないように見える(ローカルストレージから前回の値を拾ってきてる?)

関数外にはグローバルっぽく扱いたい変数の宣言のみを置いて
初期化は名前を付けて関数にする

イベント内の処理も関数化する

そうするとソースを読むとき、先頭から追いかけるときは
原則関数だけが並んでいる形になり、そこでは細かな処理を気にする必要はない

イベントの処理ではイベント関数の先頭からソースを追いかけるが、
そこでも関数だけがあって細かな内容は気にしなくてよい、という形にする

あとはセンスも必要になるけど、処理の内容を的確に表す分かりやすい関数名であれば、
関数名それ自体がコメントのような役割をはたすので、さらに読みやすくなる

855 :デフォルトの名無しさん (ワッチョイ 4b2c-8qru [153.136.94.40]):2021/09/09(木) 20:27:52.09 ID:sZM33J3R0.net
フレームワーク無しで開発すると、最後には暴発する。
デザインパターン・ファイル分割などが、統一的に決まっていないから

他人のクソコードを誰も読みたくない

だから、Ruby on Rails を使って、
全員が同じ規約で、レールに乗る。Rails Way

Rails では、Node.js, React, Vue.js, Bootstrap を使う。
これらもフレームワークだから、規約で決まっている

だから、独自のデザインパターンを使うことや、我流は、すべて禁止されている。
つまり、全てフレームワークに従う

コードレビューも、フレームワークに従っていない部分を、修正させられる。
フレームワークのやり方と違いますよと

例えば、伊藤淳一のコードレビュー。
YouTube 動画、2018/10

RSpecで書かれたRailsチュートリアル 第6章のテストコードをレビューしてみた

856 :デフォルトの名無しさん (ワッチョイ 4bbb-nTGN [217.178.195.45]):2021/09/09(木) 20:34:47.79 ID:B3AuMWY60.net
>>854
関数化すると、レビューやテストがやりやすくなる
というのも追加で

あと、関数化といっているのは規模が小さいからで、
規模が大きくなってきたらクラス化したりファイルを分けたりとかの考慮は当然必要になる

857 :デフォルトの名無しさん (ブーイモ MM6b-Ndt7 [163.49.209.85]):2021/09/09(木) 20:52:57.96 ID:kZqbipt0M.net
関心事がごっちゃ混ぜだから分かりにくい

アプリケーションが管理する状態(モデル)とその状態をユーザーに見せる表現(ビュー)に対する処理を意識して分けること
MVCの基本を学ぶと良い

モデルの初期化処理やビューの初期化処理、モデルのsave/load処理を関数等でまとめること

モデルの変更イベント(mode: stopped -> running)をリッスンしてビューを更新する作りにすると関心事の分離的にも依存性の方向的にも見通しがよくなる

858 :デフォルトの名無しさん (ワッチョイ e563-ypAh [124.84.94.103]):2021/09/09(木) 21:53:27.14 ID:t1bpdD770.net
ねこ

859 :デフォルトの名無しさん (ワッチョイ 8901-gPUP [126.28.239.133]):2021/09/10(金) 00:38:04.25 ID:mUaFezuu0.net
eslint、入れてみたところ明らかに怒られる筋合いのない箇所で大量に怒られが発生して鎮火に試行錯誤してたらクソ時間食って本末転倒だったので切ってしまいました・・・

860 :デフォルトの名無しさん (ワッチョイ a9e6-Tf2k [14.3.135.95 [上級国民]]):2021/09/10(金) 11:56:08.39 ID:L+jftwLU0.net
糞コード書くなゴラーかな?

861 :デフォルトの名無しさん (ワッチョイ 396e-GwBl [150.246.100.179]):2021/09/10(金) 15:55:30.36 ID:rOEuM+530.net
>>854
変数は出来るだけローカルにして、関数化出来る部分は出来るだけ関数化するということですよね。
MVCも調べているところです。
これはMVCの3つのクラスに分ければいいんでしょうか?

862 :845 (ワッチョイ 8b2c-aIS6 [153.136.94.40]):2021/09/10(金) 21:07:41.01 ID:kAVp3Lay0.net
Ruby on Rails が、MVC の代表

React, Vue.js のFlux 系フレームワーク。
Store, View, Action

サーバーがRails のAPI モード・Web Socket などで、
クライアント側のHTML が、React, Vue.js, Bootstrap が多い

863 :デフォルトの名無しさん (ワッチョイ 8bbb-dGLa [217.178.195.45]):2021/09/11(土) 04:28:54.23 ID:TBXgXRUv0.net
>>861
ソースを修正してみた
https://codepen.io/cocotto/pen/OJgmXyo

自分はMVCとかよく分からんので、元のロジックは基本的にそのままで
機械的に細かく関数に分けてみただけだが

一応意識したのはタグの操作(insertAdjacentHTMLとかsetAttributeなどの行)は
ソースとしては非常に読みづらいので1行2行でも関数化したのと、
ボタンの状態変化をupdateButtonStatus()の1箇所にまとめ、
アクションの種類によらずその1種類の関数だけを呼べばよいようにしたことくらい

864 :デフォルトの名無しさん (ワッチョイ 396e-GwBl [150.246.100.179]):2021/09/11(土) 06:58:37.14 ID:Uw+xpz9o0.net
mvcってどうやってエリアを分けるんでしょうか?
model controller viewのエリアです
単にコメントアウトで分けるのですか?

865 :デフォルトの名無しさん (ワッチョイ 396e-GwBl [150.246.100.179]):2021/09/11(土) 07:18:42.95 ID:Uw+xpz9o0.net
>>863
回答どうも
似たような

タグの操作というのはmvcでいうところのviewですよね。
ボタンの状態もviewですよね。

controllerはキーイベントなどのことだと思います。

modelってどの部分が該当するんでしょうか

866 :845 (ワッチョイ 8b2c-aIS6 [153.136.94.40]):2021/09/11(土) 09:52:12.58 ID:IblrjkB00.net
100年やっても、MVC を作れない。
MVC のRuby on Rails をやった方が良い

それで、React, Vue.js のFlux 系フレームワークで、
Store, View, Action

Model, Store は、データ
View は、HTML
Controller は、それ以外の雑多なもの
Action は、データを変更するイベント

867 :デフォルトの名無しさん (ワッチョイ 69b0-yMTp [180.46.85.8]):2021/09/11(土) 09:56:20.99 ID:sItjqXqz0.net
スネークマンショーのチリ紙交換のコント思い出したw

868 :デフォルトの名無しさん (ワッチョイ 8bbb-dGLa [217.178.195.45]):2021/09/11(土) 13:02:57.50 ID:TBXgXRUv0.net
>>865
modelはビジネスロジックを扱う部分
今回のプログラムでは
modeなどの状態管理や累積時間を操作する処理が該当

>>似たような
最初からロジックは変更してないといっている

MVCやフレームワークはアプリを作成する上の考え方やお作法なので、
多人数のプロジェクトに参加する場合には覚えて使いこなすことが必須で、
理解している人同士では話が通じやすい

一方で、たとえばLaravelというフレームワークでは新規にプロジェクトを作成すると、
コードを1行も書いていない状態で、数千のファイルが生成される
開発ではお作法に従って適切なファイルを適切に修正していく必要があるが、
そもそもお作法を理解するまでに学習コストがかかり、理解するまでは読みやすいとは限らない
1ページ2ページのwebアプリでフレームワークを導入すべきかも検討が必要

とはいえ小規模なプログラムでも
ビジネスロジック部分ではUI操作を混ぜない、
UI操作の途中でビジネスロジックに影響を与えない、
などとした方が読みやすく保守性も上がる、とは言われていて、
本来的にはMVCなどの考え方を導入すべきかもしれないが、
小規模な趣味的アプリならUI操作部分を関数化して追い出すだけで
多少見やすくなるんじゃないか、というのが 853 の例

趣味でなく就職のトレーニングのつもりならMVCでもフレームワークでも頑張って勉強してもらうしかない

869 :デフォルトの名無しさん (ワッチョイ 396e-GwBl [150.246.100.179]):2021/09/11(土) 20:24:46.63 ID:Uw+xpz9o0.net
↑回答どうも
趣味程度ですね。

ただ、それでも分かりやすくはしたいので、mvcの考え方だけ取り入れます。
本物のmvcがよくわかりませんけどね。

870 :デフォルトの名無しさん (ワッチョイ 1901-dgdc [60.72.142.62]):2021/09/11(土) 22:16:23.61 ID:V1xpgUeJ0.net
>>869
早速、teratailでMVCの質問をしたんだな...
https://teratail.com/questions/358996

871 :デフォルトの名無しさん (ワッチョイ 396e-GwBl [150.246.100.179]):2021/09/12(日) 10:42:23.75 ID:9YHRam0P0.net
javascriptだとmvcがなじまないから何らかのフレームワークを使うってことなんですかね?

872 :デフォルトの名無しさん (ワッチョイ 1901-oYEl [60.72.142.62]):2021/09/12(日) 11:03:01.64 ID:iEJNB1kw0.net
>>871
それはhentaimanに直接聞くべき内容だと思うが

873 :845 (ワッチョイ 8b2c-Le98 [153.136.94.40]):2021/09/12(日) 12:19:17.43 ID:jZMYjdNi0.net
>>866
に書いたように、

Ruby on Rails は最初から、Node.js, Webpack, Babel を使う

多いのは、React, Bootstrap。
日本では、Vue.js も使う

最近の転職では、Vue.js, TypeScript も有利だと、
YouTube で有名な、雑食系エンジニア・KENTA が言ってる

サーバー側がRailsのAPIモードで、
フロントエンドが、React, Vue.js

ほとんどのベンチャー・学校・サロンは、これ

874 :845 (ワッチョイ 8b2c-Le98 [153.136.94.40]):2021/09/12(日) 12:24:38.96 ID:jZMYjdNi0.net
例えば、食べチョクでは、AWS, Ruby on Rails, React

若い娘が1人で起業するような場合は、Heroku, Rails, Bootstrap とか

875 :デフォルトの名無しさん (ブーイモ MMcb-JeCy [163.49.204.117]):2021/09/12(日) 14:42:19.18 ID:KICGsmTmM.net
テラワロスな回答が2つもついててteratailのレベルの低さに驚愕した
一番基本のクライアントサイドのMVCを知らずにまともなUIコードを書けるわけがない

876 :デフォルトの名無しさん (ワッチョイ 396e-GwBl [150.246.100.179]):2021/09/12(日) 16:49:42.17 ID:9YHRam0P0.net
javascriptでmvcは使うんですか?
違う概念があるんでしょうか?

877 :845 (ワッチョイ 8b2c-Le98 [153.136.94.40]):2021/09/12(日) 17:04:40.45 ID:jZMYjdNi0.net
YouTube で有名な、雑食系エンジニア・KENTA のサロン・動画を見ればわかるけど、

基本的には、どこの会社も転職用ポートフォリオは、Ruby on Rails のみ。
他のフレームワークのシェアが少ないので、それらで作っても誰も見ない。
Laravel, Django など

React, Vue.js も、バックエンドで使うかと言われれば、使わない

だから基本、サーバー側は、Rails のAPI モードで、
フロントエンドに、React, Vue.js, Bootstrap を使う

878 :845 (ワッチョイ 8b2c-Le98 [153.136.94.40]):2021/09/12(日) 17:40:45.71 ID:jZMYjdNi0.net
単純な例では、a.html に、
<button id="btn_1">押して</button>
と書いて、jQuery を読み込んでから、ボタンを押すと、ajax で、a.json を読み込む

$( function ( ) {
$('#btn_1').click(function(){
$.ajax({
url: 'a.json',
type: 'GET',
dataType: 'json'
}).done(function(data){
console.log( data )
});
});
} );

a.jsonには、
{ "title": "指輪物語" }
と書いておく

a.html上で、右クリックメニューから、
VSCode の拡張機能・Live Server を起動すれば、HTMLが表示される
(VSCode, Node.js は、インストールしておく)

a.jsonがデータ(モデル)で、a.htmlがView。
データがデータベースになれば、Rails などの本格的なフレームワークを使う

他にも、多くのページ・routing を設定するなら、Controller も必要になる

879 :デフォルトの名無しさん (アウアウウー Sa9d-pyjS [106.154.8.48]):2021/09/12(日) 20:26:44.95 ID:DMcq09zza.net
ttps://radiko.jp/reader/
Widgets: Google Tag Manager
JavaScript Libraries and Functions: Moment JSMoment JS
Web Servers: nginx

880 :デフォルトの名無しさん (オイコラミネオ MM95-y+jp [150.66.75.61]):2021/09/13(月) 17:35:06.53 ID:1UYrFVx4M.net
xamppのローカル上では何故かjQueryが作動してくれるのですが、そのファイルをエックスサーバーに上げると作動してくれません、、
気になったのはCDNの位置で、何故かheader.phpに記載されています
jQuery本文はindex.phpに記載してます

phpのファイルにはbodyが無いため、ネットで調べても検索結果が無いのですが・・確認すべき点があればご指摘いただけませんか?

教えていただきたいのは
jQueryを読み込ますCDNの位置とjQuery本文の記載場所です、、

宜しくお願い致しますm(_ _)m

881 :デフォルトの名無しさん (アウアウウー Sa9d-s4ta [106.129.114.211]):2021/09/13(月) 17:39:20.42 ID:AXurLSEfa.net
cdnはhead内
header.phpがどうなってるか知らんがそこにheadタグがあるならそこ
本文?はcdnのjQueryの読み込みより後ならhead内でもbody内でもいい
bodyが無いというのは抜け落ちてるか見落としかどっちか

882 :デフォルトの名無しさん (テテンテンテン MMeb-PBPl [133.106.46.103]):2021/09/13(月) 18:25:35.94 ID:grNREgJpM.net
もしかしてWordPress?
回答に必要な情報があるならちゃんと書いてね

883 :デフォルトの名無しさん (ワッチョイ 8b2c-Le98 [153.136.94.40]):2021/09/13(月) 20:51:33.89 ID:HGulW+Fz0.net
header.php が単に、メニューバーなどを定義した、
部分テンプレート・パーシャルなのか、
それとも、HTML の<head>タグなのか?

<head>タグなら、body よりも、先に読み込まれるでしょ?
試しに、bodyの終了タグ直前で、読み込んでみれば?

もちろん、jQuery は、自分のコードよりも先に読み込まないと動かない

884 :デフォルトの名無しさん (オイコラミネオ MM95-y+jp [150.66.96.172]):2021/09/13(月) 22:43:40.11 ID:+vyrVLS2M.net
>>881-883
皆様有難うございます!
業者にwordpressで作成していただいたものをカスタマイズしてます
素人で検索ワードも効率的に選べなかったのですが、アドバイスをもとにネット検索をして少しだけわかってきました
今回、改修したいファイルはindex.phpですが、headとbodyはheader.phpにありました(何故か</body>は見当たらず・・)
なので、明日は</body>を書き込み、その直前にjQueryの本文を入れて試してみようと思います

885 :デフォルトの名無しさん (テテンテンテン MMeb-PBPl [133.106.46.103]):2021/09/13(月) 23:20:03.86 ID:grNREgJpM.net
まず今日までの作業は忘れて「WordPress jQuery」で検索
大抵jQueryは導入済で、自作のスクリプトの側を工夫すれば使える
正直不理解なまま業者の納入物をブッ壊してるように見えるぞ

886 :デフォルトの名無しさん (オイコラミネオ MM95-y+jp [150.66.96.172]):2021/09/14(火) 00:46:24.59 ID:b3xfsiCuM.net
>>885
有難うございます!
確かにCDNでjQueryが導入済みだったので、いきなりFanction以下の本文を記入してもxampp上では動いてくれたのですが、、
一応、ローカル環境だけでいじくり回して解らなくなったらバックアップのデータで復元してます

何故かサーバーにアップしたら動かない、、
ライブラリのバージョンが違うのかはどうやって判断すれば良いのでしょうか?
業者は2.2.1でしたが、3.6.0にすべきかどうか?
なぜ、bodyの終了タグが無いのか?
一応、body自体を消してみたけど、何ら崩れたりもせず動いてました

header.phpのheadの終了タグの前にjQueryの本文を記入しましたが、レイアウトが崩れました
index.phpに記載した内容に影響のあるscriptなので、別のファイルに記載したら駄目なのか?

一晩寝て、アドバイスの通り検索から始めて理解を深めてから先に進むことにします、、

887 :デフォルトの名無しさん (オイコラミネオ MM95-y+jp [150.66.96.172]):2021/09/14(火) 08:12:14.43 ID:b3xfsiCuM.net
>>883
一晩寝て思いついたのですが
header.phpはメニューだけを記述したファイルのようです
そこのheadにhtmlの宣言?CSSの呼び出し、CDNが記載されてました
他にhead,body,CDNを記述したファイルは見つかりません

そもそも.htmlというファイルが無いサイトって成り立つのでしょうか?
index.phpはトップページの内容を記述してますが、headもbodyも記述がありません、、
index.phpに記載の内容に対してjQueryを作動させたいのですが、、
xampp上では何故か上手くいってるんですよね
index.phpにbodyを新たに記述するってのは違反行為でしょうか?

そもそもhtmlの知識もなくカスタマイズしようとしてまして、、

888 :デフォルトの名無しさん (ワッチョイ 8b7b-dqLI [153.185.174.10]):2021/09/14(火) 09:07:31.26 ID:O4ZAi6mt0.net
>>887
一般に公開するwebならその程度の知識でいじるのはやめといた方がいいよ

889 :デフォルトの名無しさん (テテンテンテン MMeb-PBPl [133.106.50.185]):2021/09/14(火) 09:10:16.30 ID:Hja/bGISM.net
body云々の話はどうでもいい
(header.php、footer.phpでワンセット)
htmlの勉強も必要だけどまずWordPressのお作法を勉強しろ(WordPress javascriptで検索)
原因を探るならページを表示した際のソースをxamppと本番環境で見比べてみればいい

890 :デフォルトの名無しさん (オイコラミネオ MM95-y+jp [150.66.96.172]):2021/09/14(火) 09:35:33.82 ID:b3xfsiCuM.net
>>888-889
ご指摘はごもっともですが、他に適任者は居なく業者からも実装したことが無いと放り投げられてるのでやるしか無いのです
上でも指摘していただきましたが、wordpressで jQueryは設定されていて、私の作成したfunctionの記述を再確認したところ上手く作動するようになりました!
やはり壊していたのは自分自身だったと・・

891 :デフォルトの名無しさん (ワッチョイ 8b7b-dqLI [153.185.174.10]):2021/09/14(火) 09:48:24.43 ID:O4ZAi6mt0.net
>>890
その流れだと普通は他の業者探さないか?

892 :デフォルトの名無しさん (ワッチョイ c149-m40g [114.160.215.18]):2021/09/14(火) 10:56:51.75 ID:GhPBnB570.net
自己責任で勝手に会社のをいじるのか、人生ひっくり返されないようにな

893 :デフォルトの名無しさん (ワッチョイ 1901-dGLa [60.80.149.95]):2021/09/14(火) 11:48:37.64 ID:PLVDzGSa0.net
wordpressネタで色んなスレで暴れてる釣り師だよ

894 :デフォルトの名無しさん (ワッチョイ 6910-8YoP [180.12.82.129]):2021/09/14(火) 12:44:48.80 ID:6heBbDMW0.net
<style>
#test_id{
filter:sepia(80%) blur(1px);
}
</style>
のようにcssで設定されているfilterをjavascriptで取得するにはどうすればいいんですか?
getComutedStyleとgetPropertyValueでも取得できませんでした。

895 :デフォルトの名無しさん (ワッチョイ 6910-8YoP [180.12.82.129]):2021/09/14(火) 17:37:23.97 ID:6heBbDMW0.net
ちゃんと確認したらできました

896 :デフォルトの名無しさん (オイコラミネオ MM95-y+jp [150.66.96.172]):2021/09/14(火) 18:10:22.42 ID:b3xfsiCuM.net
>>891-892
ECサイトとかじゃなくて単なる零細企業の企業サイトですから・・

897 :デフォルトの名無しさん (ワッチョイ 8b2c-0MLo [153.136.94.40]):2021/09/15(水) 02:21:53.09 ID:LKRHWte30.net
例えば、Ruby on Rails なら、部分テンプレート(Partial)で、
メインの内容・ヘッダー・フッター・サイドメニューなど、
ページの各部分をバラバラに作る

_main_content.html.erb
_header.html.erb
_footer.html.erb
_sidemenu.html.erb

上の各部分を、全体のテンプレート・application.html.erb で読み込む

拡張子ERB は、Rubyの構文で書いて、HTML へ変換する。
a.php と同じ。PHPの構文で書いて、HTMLへ変換するだろ

Rubyでは、ERB内で、<% 〜 %>, <%= 〜 %> に、Rubyの構文を書けば、
それが解釈されて、HTMLへ変換される。例えば、

ERB
<% price = 100 * 1.1 %>
<p>値段は<%= price %>円です</p>

変換されたHTML
<p>値段は110円です</p>

898 :887 (ワッチョイ 8b2c-0MLo [153.136.94.40]):2021/09/15(水) 02:22:34.90 ID:LKRHWte30.net
WordPress はプロ向きじゃない。
デザインの本ばかりで、Railsみたいに、フレームワークの仕組みを学べる本がない

プログラミングはコーディングするものじゃない。
ほぼ、ずっとフレームワークの仕組みを読むこと。
これが、開発のほとんどの時間を占める

だから、WordPressの仕組みは、web制作管理板のWordPressのスレで聞くように言ってる。
各テンプレートを読み込む順番とか、どれが本体のHTMLなのかとか

この板で聞いても、個別のフレームワークの仕組みは誰も知らない

だから皆、専用のサロンへ入る。
例えばRailsなら、YouTube で有名な、雑食系エンジニア・KENTA のサロンへ、3千人が入っている

そういうコミュニティーへ入らないと無理。
独学では作れない。教えてもらわないと無理

899 :デフォルトの名無しさん (ワッチョイ 8b63-s4ta [153.174.21.88]):2021/09/15(水) 02:34:09.70 ID:Vtvma65V0.net
宣伝死ね

900 :デフォルトの名無しさん (ワッチョイ 8b2c-0MLo [153.136.94.40]):2021/09/15(水) 03:16:07.67 ID:LKRHWte30.net
>>894
jQuery なら、sepia(0.8) blur(1px)
と、文字列で出力された。
JavaScript のオブジェクトにならなかった!

<img src="a.jpg" id="img_01">

<style>
#img_01{ filter:sepia(80%) blur(1px); }
</style>

$( function ( ) {
prop = $( '#img_01' ).css( 'filter' )
console.log( prop );
} );

901 :デフォルトの名無しさん (ワッチョイ 8bdb-dGLa [217.178.96.78]):2021/09/15(水) 17:19:00.06 ID:fabzU8Xg0.net
classでインスタンスを作っている人いますか?
これってすごく中途半端でかえって分かりにくいです。

902 :デフォルトの名無しさん (アウアウウー Sa9d-lpFL [106.128.137.244]):2021/09/15(水) 18:11:45.71 ID:vQolsmrqa.net
three.jsのオブジェクトはこんな感じで作ったりするけど?

for (let i = 0; i < 1000; i++) {
const sprite = new THREE.Sprite(material);
// ランダムな座標に配置
sprite.position.x = 500 * (Math.random() - 0.5);
sprite.position.y = 100 * Math.random() - 40;
sprite.position.z = 500 * (Math.random() - 0.5);
// 必要に応じてスケールを調整
sprite.scale.set(10, 10, 10);

scene.add(sprite);
}

903 :デフォルトの名無しさん (テテンテンテン MMeb-PBPl [133.106.49.138]):2021/09/15(水) 18:15:59.59 ID:dBireG1MM.net
何が中途半端か分からんけどTypeScriptでも触ってみたら

904 :デフォルトの名無しさん (ワッチョイ 716a-dGLa [42.125.40.41]):2021/09/15(水) 19:02:24.83 ID:fHmj5hYp0.net
スクレイピングすると地獄へ落ちるって本当ですか?

905 :デフォルトの名無しさん (ワッチョイ 7b02-dGLa [119.106.222.232]):2021/09/15(水) 19:09:57.19 ID:h5Z3dkgZ0.net
やり方を間違えるとあり得ます

906 :デフォルトの名無しさん (ワッチョイ 1901-oYEl [60.74.201.152]):2021/09/15(水) 20:59:30.06 ID:bTnM7Fek0.net
>>901
それを作らないなんてとんでもない

907 :デフォルトの名無しさん (ワッチョイ 8b2c-0MLo [153.136.94.40]):2021/09/16(木) 00:08:14.89 ID:tvb8xhvB0.net
class 構文を使わず、継承チェーンを自作しているようなコードは、地獄

そういう香具師は追放

908 :デフォルトの名無しさん (ワッチョイ 6935-s7zK [180.145.179.243]):2021/09/16(木) 00:11:22.80 ID:pYXDlrUq0.net ?2BP(1000)
sssp://img.5ch.net/ico/anime_buun02.gif
>>907
継承自作はガチでやばい

909 :デフォルトの名無しさん (ワッチョイ 8901-gPUP [126.28.239.133]):2021/09/16(木) 00:40:41.07 ID:R/NquzpN0.net
ES2015まではclass無かったんですよね?それまではどうしていたんですか?

910 :デフォルトの名無しさん (ワッチョイ 1901-oYEl [60.74.201.152]):2021/09/16(木) 00:56:38.22 ID:xJePaYnO0.net
>>909
関数宣言

911 :デフォルトの名無しさん (ワッチョイ 0bda-wHYb [121.114.118.84]):2021/09/16(木) 10:55:25.86 ID:wCLjpPvb0.net
リサイズイベントが複数設置していて、望んだ順番で発火して欲しいのですが、
何か方法はありますでしょうか?

現状は各リサイズイベントにて、setTimeoutを用いてイベントの発火を間引いていますので、
その間引く時間をそれぞれ変更して対応しています。

912 :デフォルトの名無しさん (アウアウウー Sa9d-lpFL [106.128.148.126]):2021/09/16(木) 13:22:43.27 ID:Xq6qjUgGa.net
クラスにして引数渡すメソッドにすりや良いんじゃね?

913 :デフォルトの名無しさん (ワッチョイ fbc3-wHYb [159.28.152.184]):2021/09/16(木) 15:22:17.42 ID:gkVPGX300.net
すいません
windowsのローカルで動くスクリプトを書いてて質問です。(JSX)

children = folder.getFiles();

でディレクトリにあるファイル一覧を取得してるんですが

children[0].path = decodeURI(children[0].path);

みたいにファイルのパスをURLデコードしても、デコードしたパスが上書きされません。

ファイルパスに日本語が含まれていると後の処理でエラーが出るので
色々試してる途中なのですが、むしろ「日本語がURIエンコードされている」ことが問題なのかなと思ったので
いったんデコードを試みてる次第です。

どなたかよろしくお願いいたします。

914 :デフォルトの名無しさん (ワッチョイ 8bdb-dGLa [217.178.96.78]):2021/09/16(木) 19:34:45.06 ID:h22xAZJO0.net
classは非推奨になると思う。

915 :デフォルトの名無しさん (アウアウウー Sa9d-lpFL [106.128.150.73]):2021/09/16(木) 19:40:28.89 ID:yn0gOKRBa.net
>>913
一行でやらずに間挟んでみたら?
tmp = decodeURI(children[0].path);
children[0].path = tmp;

916 :デフォルトの名無しさん (ワッチョイ 8bdb-dGLa [217.178.96.78]):2021/09/16(木) 21:28:13.93 ID:h22xAZJO0.net
classを導入するならjavaみたいにクラスベースにするべき。

917 :デフォルトの名無しさん (ワッチョイ 1901-oYEl [60.74.201.152]):2021/09/16(木) 21:57:57.90 ID:xJePaYnO0.net
>>916
なぜ?

918 :デフォルトの名無しさん (ワッチョイ 8bdb-dGLa [217.178.96.78]):2021/09/16(木) 22:58:46.10 ID:h22xAZJO0.net
>>917
中身がプロトタイプのままならfunctionでコンストラクタを書いた方が、
プロトタイプチェーン、this、継承の挙動が把握しやすいから。

919 :デフォルトの名無しさん (ワッチョイ 1901-oYEl [60.74.201.152]):2021/09/16(木) 23:06:18.36 ID:xJePaYnO0.net
>>918
糖衣構文と把握できない人にはそうかもしれないな

920 :デフォルトの名無しさん (ワッチョイ cb2c-QiSa [153.136.94.40]):2021/09/17(金) 05:14:25.65 ID:O1PoA15N0.net
>>913
Node.jsでglobモジュールでワイルドカード指定する方法とディレクトリ除外する方法
https://confrage.jp/node-js%E3%81%A7glob%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%E3%81%A7%E3%83%AF%E3%82%A4%E3%83%AB%E3%83%89%E3%82%AB%E3%83%BC%E3%83%89%E6%8C%87%E5%AE%9A%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95%E3%81%A8/

Windows, Node.js でもファイル操作できる。
日本語のファイル名でも、普通に表示できる

でも初心者が、サーバー側・バックエンドをJavaScript で作るのは推奨しない。
10年以上掛かる。非同期処理も難しい

ファイル操作・テキスト処理なら、Ruby から始めた方がよい

921 :デフォルトの名無しさん (ワッチョイ cbdb-qDHA [217.178.96.78]):2021/09/17(金) 07:38:30.25 ID:rB1Uwify0.net
>>919
従来のままのほうが分かりやすくない?
何のためにclassを追加したのだろうか?

922 :デフォルトの名無しさん (ワッチョイ cbdb-qDHA [217.178.96.78]):2021/09/17(金) 07:41:06.43 ID:rB1Uwify0.net
https://note.affi-sapo-sv.com/js-class.php
JavaScriptのクラスは、内部的にはsuperキーワードが追加された以外は以前と変わっていません。



そのため、以前できなかったことは、今でもできません。



クラス定義を使えば、わかりやすいコードを作れるという意見もありますが、誰にとってわかりやすいかいまいち不明。
prototypeを隠蔽しているので、初心者がJavaScriptの本質を理解しにくくなる気もします。



class構文は内部でどんな置き換えをしているのか、ということを理解してからでないと、勉強にならないですね。
でも理解したら、わざわざclassを使う必要がない気がします。



使いたければ使えばいいんじゃない?と思います。

923 :デフォルトの名無しさん (ワッチョイ cbdb-qDHA [217.178.96.78]):2021/09/18(土) 09:19:17.64 ID:BWPa8IS40.net
classでインスタンスを生成した場合、関数の入れ子・クロージャ・関数の合成は
どのように実装すればいいのでしょうか?

924 :デフォルトの名無しさん (ワッチョイ cbdb-qDHA [217.178.96.78]):2021/09/18(土) 09:21:08.79 ID:BWPa8IS40.net
>>917
分かりにくいから。

925 :デフォルトの名無しさん (ブーイモ MM89-dF90 [202.214.231.39]):2021/09/18(土) 09:25:01.08 ID:bSvCP7tNM.net
jsonファイルをfetchで読み込んで表示するページ作りたいんですが読み込んだjsonファイルの更新日時を取得する方法ってありますか?

926 :デフォルトの名無しさん (ワッチョイ 4b2d-IhC7 [121.102.56.182]):2021/09/18(土) 09:30:36.71 ID:GAwwwwFC0.net
HTTPのレスポンスヘッダーにLast-Modifiedがあれば

927 :デフォルトの名無しさん (ワッチョイ c501-iPGG [60.74.201.152]):2021/09/18(土) 18:47:47.12 ID:ijIYuONW0.net
>>924
理解してない機能はわかりにくい
理解した機能はわかりやすい
それだけの話

928 :デフォルトの名無しさん (ワッチョイ 4bda-IhC7 [121.114.118.84]):2021/09/20(月) 12:44:45.58 ID:ocNzoCY30.net
関数の呼び出しコストという文言を見るのですが、具体的にはどのようなコストなのでしょうか?
関数スコープが生成される?的なコストと処理量などでしょうか?

929 :デフォルトの名無しさん (アウアウウー Sac9-ONKb [106.129.142.181]):2021/09/20(月) 12:54:03.49 ID:RSxALu1Ia.net
検索の時間
家の本棚から探すのと図書館に行って探してくるのとの違い

930 :デフォルトの名無しさん (ワッチョイ e336-PGCt [115.37.69.254]):2021/09/20(月) 17:33:22.90 ID:BvjsWEuY0.net
プログラミング初心者+αです。

const a = オブジェクト.length
console.log(a);

ということをやると
undefined:undefined
つまり未定義と表示されて正常に認識してくれない。

console.log(オブジェクト.length);
ならうまくいくのに。
プロパティの値を変数に割り当てられないのでしょうか。

931 :デフォルトの名無しさん (アウアウウー Sac9-ONKb [106.129.143.251]):2021/09/20(月) 17:38:24.56 ID:StmUbSXka.net
定数にメソッドは登録出来ないんじゃない

932 :デフォルトの名無しさん (ブーイモ MM89-M1dG [202.214.231.204]):2021/09/20(月) 17:52:12.71 ID:iZ97v5vcM.net
オブジェクトって具体的には?

933 :デフォルトの名無しさん (ワッチョイ f55f-C5lN [14.11.194.224]):2021/09/20(月) 17:59:21.71 ID:VxCTC9AS0.net
>>930
再現しないんだが
Objectにはlength無いけどなんの話か教えてくれ

934 :デフォルトの名無しさん (ワッチョイ 4bda-IhC7 [121.114.118.84]):2021/09/21(火) 20:13:00.16 ID:2i3b3P5F0.net
>>929
ありがとうございます。

オーバーヘッドと似たようなもんだと考えてよいのでしょうか?

forEach が遅いのは関数呼び出しだからってのを、何処かで見まして、
インライン関数でも遅いので、自分の中で『検索』ってのと繋がらないです…

935 :デフォルトの名無しさん (アウアウウー Sac9-ONKb [106.129.110.217]):2021/09/21(火) 20:47:54.79 ID:e5t1mBAya.net
>>934
ゴメン、CDNのボトルネック的な事かと思っただけで
コールスタックとかリターンアドレスやらメモ化なんて知らないです。

どっちにしろ人間もコンピュータも間接的な呼び出しは遅いようだ
以下参考

2019年版: JavaScriptのループの考察
https://qiita.com/shibukawa/items/4cae2a1410754d519232

【Python】関数呼び出しのコストを計測してみた
https://qiita.com/stokes/items/e8440329fb6f37944a9b

936 :デフォルトの名無しさん (ワッチョイ 9501-W1il [126.241.232.202]):2021/09/23(木) 18:37:57.95 ID:dJQXrT5o0.net
>>928
Function Callの処理コスト
https://262.ecma-international.org/11.0/#sec-function-calls

>>934
Array.prototype.forEachの仕様を確認すべし
https://262.ecma-international.org/11.0/#sec-array.prototype.foreach

937 :デフォルトの名無しさん (ワッチョイ 46bb-c8WL [217.178.151.136]):2021/09/26(日) 10:15:24.86 ID:A/CchEjW0.net
元のhtmlが<td id=***>文字列</td>と言う形でユニークなidが振られています。文字列の部分がokだった場合、字色を赤に変えたいのですがどのようなコードとすればよいでしょうか
試しに該当箇所にreplaceでspan styleを当てると元のタグが消えてテーブルが破壊されてしまいました

938 :デフォルトの名無しさん (ワッチョイ b701-2jFH [60.72.88.234]):2021/09/26(日) 10:34:01.51 ID:q8w8Ww110.net
>>937
td要素ノードにスタイルを割り当てればいいのでは?
style属性よりclass属性がいい気はするが
https://developer.mozilla.org/ja/docs/Web/API/Element/classList

939 :デフォルトの名無しさん (ワッチョイ 46bb-c8WL [217.178.151.136]):2021/09/27(月) 20:29:49.49 ID:TnqJLtde0.net
>>938
ヒントありがとうございます
解決しました

940 :デフォルトの名無しさん (ワッチョイ 4ec3-2Lmd [159.28.152.184]):2021/09/28(火) 16:18:59.44 ID:0wKuF6nP0.net
下記のようにhtmlを変数の中に入れて、複数ある.itemクラスを順番にループして
その中の.hogeクラスのインナーを取得したいです。

しかしhoge変数に入れて処理しようとすると何故かunderfindになってしまいます。
どなたかアドバイス頂けないでしょうか
(いったん変数に入れた方がすっきりするのでそうしたいです)




var DOM = $('#test').html(document.getElementById('text').value);
DOM.find('.item').each(function(i){
var hoge = $('.hoge',this);

alert(this.getElementsByClassName('hoge')[0].innerHTML);//こっちはinnerHTMLの中身がちゃんと表示される
alert(hoge.innerHTML);//こっちはunderfindになる
}

941 :デフォルトの名無しさん (ワッチョイ 0e02-zD50 [119.106.222.232]):2021/09/28(火) 18:40:20.62 ID:tB/ieqJ50.net
下にも [0] をつけたら?

942 :930 (ワッチョイ 4ec3-2Lmd [159.28.152.184]):2021/09/28(火) 18:42:29.73 ID:0wKuF6nP0.net
alert( hoge.text() );
にするとマークアップ部分を抜いたテキストを取得できることに気付きましたが
マークアップも含んだ状態のインナーhtmlが欲しいんですよね…

943 :デフォルトの名無しさん (ワッチョイ 4ec3-2Lmd [159.28.152.184]):2021/09/28(火) 18:45:06.33 ID:0wKuF6nP0.net
>>941
まさかと思ってやってみたらいけました、そうかー配列で持ってたのかー
ありがとうございます

944 :デフォルトの名無しさん (ワッチョイ c663-1Pud [153.174.21.88]):2021/09/28(火) 20:00:42.73 ID:cv/tD/fj0.net
配列とHTMLcollectionは似て非なるものやぞ

945 :デフォルトの名無しさん (ワッチョイ b701-2jFH [60.69.102.75]):2021/09/28(火) 21:27:29.09 ID:54PfDNUt0.net
>>944
hogeはHTMLcollectionじゃないぞ

946 :デフォルトの名無しさん (ワッチョイ b701-2jFH [60.69.102.75]):2021/09/28(火) 21:44:32.49 ID:54PfDNUt0.net
>>943
getでもいける
https://api.jquery.com/get/

947 :デフォルトの名無しさん (ワッチョイ 86da-2Lmd [121.114.118.84]):2021/09/30(木) 21:24:16.30 ID:JO+wR1m50.net
if (true) {}
if (a === 300) {}

if文は真偽値だけの判定と比較の判定だったら、真偽値だけの方が速いとかありますか?
複数個所で同じ比較の判定が必要な場合、結果を真偽値にして使い回した方がよいのか
知りたいです。

948 :デフォルトの名無しさん (ブーイモ MMfe-8vXF [163.49.203.189]):2021/09/30(木) 21:59:02.86 ID:3EHFK4tiM.net
初学者あるあるだけどそんなの誤差だから保守しやすいコードを書くのが正しい

949 :デフォルトの名無しさん (ワッチョイ 86da-2Lmd [121.114.118.84]):2021/09/30(木) 22:15:02.92 ID:JO+wR1m50.net
誤差なのですね
何の真偽値か調べるの手間ですもんね
ありがとうございました。

950 :デフォルトの名無しさん (ワッチョイ 5301-6zG6 [60.72.78.63]):2021/10/01(金) 04:55:16.35 ID:v3zEWc5J0.net
>>947
前者が速いが、フラグ変数を使わずにすむロジックを考案するのが最も効率的

951 :デフォルトの名無しさん (ワッチョイ 5301-6zG6 [60.72.78.63]):2021/10/01(金) 04:59:49.85 ID:v3zEWc5J0.net
>>947
ちなみに複数箇所で同じ判定をしなければならない判定は、フラグ変数を使う方が保守性が高い
将来、判定処理を更新する際に更新箇所が一つですむし、複数箇所に同じ判定があると更新漏れのリスクがある

>>950でいったように、判定箇所が一カ所になるようロジックをくむのが最適

952 :デフォルトの名無しさん (ワッチョイ 235f-2jfQ [106.73.229.192]):2021/10/01(金) 14:19:20.76 ID:ktZsKgGi0.net
最近vueやらreactやら仕事で触ることになったんだけど、
みんなこの巨大なvueのtemplate構文とかどうやって読み解いてるんだ・・・?
実際のUIがイメージできるようになるのかコツとかある?

953 :デフォルトの名無しさん (ワッチョイ cfdb-2jfQ [217.178.96.78]):2021/10/01(金) 16:21:28.18 ID:mSSK0hBl0.net
>>952
慣れ。

954 :デフォルトの名無しさん (ブーイモ MM97-kSLT [202.214.230.0]):2021/10/01(金) 18:40:19.96 ID:CrVDBOnRM.net
ありがとう。慣れんのかな・・・

955 :デフォルトの名無しさん (ワッチョイ cfdb-2jfQ [217.178.96.78]):2021/10/01(金) 19:42:32.31 ID:mSSK0hBl0.net
>>954
知らんけど。

956 :デフォルトの名無しさん (ワッチョイ 13ac-JAZD [150.249.131.45]):2021/10/01(金) 20:18:01.29 ID:7qQOgpPT0.net
vueはGoogleの拡張いれたら分かりやすくやった

957 :デフォルトの名無しさん (ワッチョイ d3da-M2B7 [220.108.72.80]):2021/10/05(火) 00:55:13.12 ID:HvgDlsKq0.net
>>950-951
台風でネット繋がらなくて、お礼言うの遅れてすみません…

すっごい腹落ちしました。
どうしても複数になる場合はフラグ変数使っていこうと思います。

958 :デフォルトの名無しさん (ワッチョイ 936e-2zGE [124.219.198.89]):2021/10/12(火) 02:32:16.48 ID:BSPiPdYi0.net
javascriptで関数はオブジェクトって書いてあったんですよ
でもオブジェクトって例えばconst o = { name: "noname", mail:"sage}みたいに定義されるものではないのですか?

959 :デフォルトの名無しさん (ワッチョイ fb01-lofH [126.53.126.47]):2021/10/12(火) 05:05:04.25 ID:9QJCYXKb0.net
>>958
関数はObject型
{}はnew ObjectでありObject型
new ArrayもObject型
https://tc39.es/ecma262/#sec-typeof-operator

960 :デフォルトの名無しさん (ワッチョイ 9fb1-ZO17 [123.48.67.16]):2021/10/20(水) 02:51:41.42 ID:7Ch1Hu5l0.net
スクレイピングに興味があるのですが1時間に1回の頻度のGETだけで訴えられる危険があるって本当ですか?

961 :デフォルトの名無しさん (ワッチョイ b74e-U/wz [210.138.216.243]):2021/10/20(水) 03:28:52.56 ID:g1WESx5+0.net
次スレ立てる義務を果たしたら答えてあげる

962 :デフォルトの名無しさん (ワッチョイ b749-qebH [114.160.215.18]):2021/10/20(水) 10:49:03.56 ID:Y4tLRZgw0.net
PHPスレとのマルチやん

963 :デフォルトの名無しさん (ワッチョイ f502-WU2P [106.156.74.236]):2021/10/22(金) 10:33:33.27 ID:qGJ2lg5d0.net
jqueryなんですが
jqXHRオブジェクトから逆算してクエリ文字列を得る方法ってありませんか?

var a = $("index[name=hoge]");
a.xxxx()= → "index[name=hoge]" みたいな関数とかプラグインとか

964 :デフォルトの名無しさん (ワッチョイ 1d01-xD/y [126.243.28.128]):2021/10/22(金) 13:52:34.02 ID:D6Qp5iob0.net
>>963
ない

965 :デフォルトの名無しさん (ワッチョイ e54e-rXG9 [210.138.216.243]):2021/10/22(金) 16:50:13.59 ID:5KYadqzO0.net
>>963
あった
a.selector
が、1.9で消された

966 :デフォルトの名無しさん (ワッチョイ 1d01-xD/y [126.243.28.128]):2021/10/23(土) 06:37:42.27 ID:k4puVD/c0.net
>>965
これか
https://bugs.jquery.com/ticket/9469

967 :デフォルトの名無しさん (ワッチョイ 1d01-7Ax+ [126.159.224.31]):2021/10/25(月) 21:08:09.07 ID:r2R6qwLM0.net
>>963
やはり、放置か

968 :デフォルトの名無しさん (ワッチョイ 9e46-BvZE [111.98.111.65]):2021/10/30(土) 07:24:51.67 ID:1pYlSmze0.net
>>958
JSの型には、String Number Boolean Null undefined Symbolなどの他、Objyectがあります
プリミティブでない型は全てObject型です

Objectの例は
let o={};
let a=[];
let f=function(){}
function f(){}
などがあります

969 :デフォルトの名無しさん (ワッチョイ 9e46-BvZE [111.98.111.65]):2021/10/30(土) 10:09:55.72 ID:1pYlSmze0.net
>>958
あと、オブジェクトという意味合いは結構あいまいです

JSではプリミティブはそれ自体に関数やパラメータなどを保持しません
ObjectはObject()の派生ですので関数やパラメータを持ちます
型という意味合いでは、typeof でObject型なのか判定できますのでお試しを

オブジェクトを目的物、対象物という表現でとらえれば
文字や数字も、扱う対象物として、オブジェクトと表現できますが
型としの意味合い(始祖Object()を継承してるか)なのか
対象物という意味合いなのか、混乱したときには整理してみるといいかもです

970 :デフォルトの名無しさん (ワッチョイ 9302-BvZE [106.156.74.236]):2021/10/30(土) 10:14:21.41 ID:3mlVFK4h0.net
オブイェークト

971 :デフォルトの名無しさん (ワッチョイ 17ad-Q+wr [110.132.110.81]):2021/10/30(土) 10:46:44.64 ID:3QCmGqxi0.net
なんかまた新しいものが出てきたのかと思った

972 :デフォルトの名無しさん (ワッチョイ 4b4e-twJP [210.138.216.243]):2021/10/30(土) 10:50:46.34 ID:5VdQtJkF0.net
ほら泣くぞ

973 :デフォルトの名無しさん (ワッチョイ 8701-rKqH [126.243.172.43]):2021/10/30(土) 11:05:17.84 ID:H0dMqvNA0.net
>>970
ようやく、>>963が出てきたと思ったら、ただの感想か
相変わらず、このスレの質問者は自己中だな

974 :デフォルトの名無しさん (ワッチョイ 56db-BvZE [217.178.96.78]):2021/10/30(土) 12:45:13.50 ID:zzEdTkV90.net
アロ関とthisが分かりにくい。
全部バインドしとけばいいの?

975 :デフォルトの名無しさん (ワッチョイ 8701-rKqH [126.243.172.43]):2021/10/30(土) 12:56:38.70 ID:H0dMqvNA0.net
>>974
慣れ
違いを何度も意識すれば分かる

976 :デフォルトの名無しさん (ワッチョイ 56db-BvZE [217.178.96.78]):2021/10/30(土) 22:52:40.11 ID:zzEdTkV90.net
>>975
thisだけでなくselfをもっと活用すればいいのでしょうか?

977 :デフォルトの名無しさん (ワッチョイ 775f-HN+8 [14.11.194.224]):2021/10/30(土) 22:56:14.00 ID:8E+HWsPL0.net
そもそも典型的な場面を除いてthisを多用しない

978 :デフォルトの名無しさん (ワッチョイ 9302-BvZE [106.156.74.236]):2021/10/30(土) 23:44:50.08 ID:3mlVFK4h0.net
またおまえか
ストーカーかよ
いい加減にしろ

979 :デフォルトの名無しさん (ワッチョイ d6b5-rbIv [153.136.126.167]):2021/10/31(日) 01:31:34.39 ID:XZxuOuys0.net
質問です。
https://developer.mozilla.org/ja/docs/Web/JavaScript/A_re-introduction_to_JavaScript

var input;
do {
input = get_input();
} while (inputIsNotValid(input));
を実行したら、
Uncaught ReferenceError: get_input is not defined
と出ました。

get_input()は自作関数だと思いますかが、
どんな関数になるのか教えて下さい。

980 :デフォルトの名無しさん (ブーイモ MM43-8RSS [202.214.167.80]):2021/10/31(日) 03:14:18.94 ID:s/NdT1yMM.net
<input id="address">

function get_input(){
return document.querySelector("#address").value
}

981 :デフォルトの名無しさん (ワッチョイ d6b5-rbIv [153.136.126.167]):2021/10/31(日) 04:01:17.10 ID:XZxuOuys0.net
>>980
こんな深夜にありがとうございます。

ただ、すみません、
Uncaught ReferenceError: document is not defined
というエラーが出ました。
このdocumentというのはどのように定義したらよいですか?

あと、
<input id="address">
は同じフォルダにindex.htmlのような名前で保存すればよいですか?

982 :デフォルトの名無しさん (ワッチョイ 9e46-BvZE [111.98.111.65]):2021/10/31(日) 07:37:28.36 ID:CEq1n28F0.net
>>979
var input;
do{
input=get_input();
}while(inputIsNotValid(input));

function get_input(){
return confirm('input!');
}
function inputIsNotValid(input){
return !input;
}

983 :デフォルトの名無しさん (ワッチョイ 9e46-BvZE [111.98.111.65]):2021/10/31(日) 07:45:13.63 ID:CEq1n28F0.net
>>979
サンプルコードは、

inpu=get_input() // 入力されたものをinputに代入する

do-whileは、inputIsNotValid()関数の戻り値がtrueの時に繰り返す

inputIsNotVarid()は、入力されたinput値が不適切の時にtrueを返す

という内容を説明しています

get_input()がどのような入力になるのか
inputInNotValid()で、inputの適否をどう判定しているのかは問いません、ということです
このようなコードを見たときには、関数名で働きが説明できている、という前提ですので
関数名をよく読んで、戻り値を推測して読んでください

984 :デフォルトの名無しさん (ワッチョイ 9e46-BvZE [111.98.111.65]):2021/10/31(日) 07:53:36.67 ID:CEq1n28F0.net
>>979
あと、このコード自体は
「有効な値が入力されるまでループする」というコードです

confirm関数はシンプルな入力関数で、OKボタンでtrueを、キャンセルボタンでfalseを返します

985 :デフォルトの名無しさん (ワッチョイ 775f-HN+8 [14.11.194.224]):2021/10/31(日) 07:58:15.87 ID:tih+/c060.net
>>982
理想的な必要十分なコードだけど
promptじゃね

986 :デフォルトの名無しさん (ワッチョイ 9e46-BvZE [111.98.111.65]):2021/10/31(日) 08:40:51.23 ID:CEq1n28F0.net
45億年もの長きにわたり僅かな変化を積み重ねた塩基配列の微妙なズレと
あなたと私の養育環境における、例えば接種してきたたんぱく質や食物繊維の種類や量
照射された日照量や、退社した細胞数の数、知り合った女性や先生が持つ遺伝子配列とのずれとの調和
そのような本当に些細な差が、promptなのかconfirmなのかを決したのだと思います
そこには完全な正解はないのかもしれませんが、バリデーションチェックという意味ではpromptで説明すべきかもしれません

987 :デフォルトの名無しさん (ワッチョイ 8701-rKqH [126.243.172.43]):2021/10/31(日) 09:24:41.87 ID:hyBzQr2G0.net
>>976
「〜が分かりにくい」でお茶を濁さず、アロー関数とthis値の性質を学習して、分からない部分を具体化してから、調査or質問せよ
ということだ

>>976で書いてるような「〜すればいい」を理屈を度外視して、方法論だけ求めるのは思考停止
現状だと質問の体を成してない

988 :デフォルトの名無しさん (ワッチョイ 8701-rKqH [126.243.172.43]):2021/10/31(日) 09:26:03.48 ID:hyBzQr2G0.net
>>978
質問を立て逃げ、誹謗中傷
そんなことしてる人にいわれてもな

989 :デフォルトの名無しさん (ワッチョイ d661-rbIv [153.216.140.77]):2021/10/31(日) 12:03:01.70 ID:stUnlaEn0.net
>>981
documentがないってブラウザ以外の実行環境なの?

990 :デフォルトの名無しさん (ワッチョイ 9e46-BvZE [111.98.111.65]):2021/10/31(日) 12:05:17.37 ID:CEq1n28F0.net
>>974
とても情緒深く、文学的なご質問で、私のような無知で下賤な者が触れてよいのか悩みましたが
アロー関数自身にアロー関数内のプロパティ、もしくは引数を紐づけたいということなのでしょうか?

991 :デフォルトの名無しさん (ワッチョイ d6b5-rbIv [153.136.126.167]):2021/10/31(日) 21:44:03.28 ID:XZxuOuys0.net
>>982-986 && >>989
> documentがないってブラウザ以外の実行環境なの?

Chromeのコンソールで実行することで望んだ通りの出力になりました。
それまではネットで勧められるままVSCodeで実行していました。
皆さん、ありがとうございました!

992 :デフォルトの名無しさん (ワッチョイ 9e46-BvZE [111.98.111.65]):2021/10/31(日) 21:59:13.71 ID:CEq1n28F0.net
>>991
がんばってくださいね
継続して学んでいれば今感じている疑問の殆どは解消します
一歩を進められたご自身の力を信じて進んでください

993 :デフォルトの名無しさん (ワッチョイ 9e46-BvZE [111.98.111.65]):2021/10/31(日) 22:09:03.92 ID:CEq1n28F0.net
>>991
982の「疑問」=>「疑問や違和感」に訂正です

994 :デフォルトの名無しさん (ワッチョイ 56db-BvZE [217.178.96.78]):2021/11/01(月) 09:39:09.34 ID:i0IYe4C60.net
アロ関は世界を救う。

995 :デフォルトの名無しさん (ワッチョイ 56db-BvZE [217.178.96.78]):2021/11/01(月) 09:56:32.75 ID:i0IYe4C60.net
アロ関十段ここに極まる。

996 :デフォルトの名無しさん (ワッチョイ 52f0-rbIv [61.205.223.183]):2021/11/01(月) 10:30:03.91 ID:Oy+9EmbD0.net
>>990
アロー関数にプロパティを紐づけする必要ないよな
無名関数、即時関数のプロパティに外部からアクセスするようなコードはナンセンスだし

>>991
Chromeのコンソールでコード入力してんのかな?
そんなことしてたら面倒くさいだろな
vscodeでjavascriptを実行すればいいんだけど
支障がるみたいで、どういう感じになってるのか興味ある

997 :デフォルトの名無しさん (ワッチョイ 9e46-BvZE [111.98.111.65]):2021/11/03(水) 17:47:47.22 ID:mbwPounm0.net
.>>1000
そうだな、お前みたいな破廉恥極まりないやつを極刑にできないなんてな

998 :デフォルトの名無しさん (ワッチョイ 8701-rKqH [126.224.146.69]):2021/11/03(水) 17:55:09.21 ID:KPYiFv2L0.net
>>997
先(>1000)をみる前に現在を見つめては

999 :デフォルトの名無しさん (ワッチョイ 7ff0-+Epa [61.205.223.183]):2021/11/09(火) 17:29:38.68 ID:vBEqEZ0H0.net
よろしくお願いします

下記の二つの関数、c1()とc2()でカウンターを作りました
c1()はカウントされず、c2()はカウントされます
同じようなコードなのにc1()を複数回呼び出しても
変数cがインクリメントされないのはなぜなのでしょうか?

function c1(){
let c=0;
return c++;
}

function c2(){
let c=0;
return function(){return c++};
}

let s1=c1();
let s2=c2();

console.log(
s1, // 0
s1, // 0
s2(), // 0
s2(), // 1
);

1000 :デフォルトの名無しさん (テテンテンテン MM4f-hQZx [133.106.48.148]):2021/11/09(火) 18:14:06.92 ID:M98uPrZkM.net
仕様通りとしか
c1のcはc1が呼び出される度に定義されるからカウント不可
そもそも上のコードでc1は1回しか呼び出されていないし

1001 :デフォルトの名無しさん (ワッチョイ ff02-H2rd [119.106.222.232]):2021/11/09(火) 18:42:53.53 ID:/KO0GJnF0.net
c2の中のfunctionの中で書いてないけどcが定義されて、呼び出されるごとにそのcがインクリメントされているような挙動。

1002 :デフォルトの名無しさん (ワッチョイ 5f01-lK5T [126.243.174.47]):2021/11/09(火) 20:03:23.50 ID:zgMlwp7I0.net
>>999
c1は呼び出される度に変数cが初期化される
s2は呼び出されても変数cが初期化されない

1003 :デフォルトの名無しさん (ワッチョイ df4e-9n+R [210.138.216.243]):2021/11/09(火) 20:54:12.85 ID:qOqV7S2Y0.net
そもそもc1一回しか呼び出してないけどな

1004 :デフォルトの名無しさん (ブーイモ MMa3-8Kye [202.214.125.68]):2021/11/09(火) 21:10:09.46 ID:JS6FzrkbM.net
カウンタを初期化する部分を繰り返し呼び出す関数の外に出してやればいい

let c=0;
function c1(){
return c++;
}

1005 :デフォルトの名無しさん (ワッチョイ ff46-H2rd [111.98.111.65]):2021/11/09(火) 22:41:36.85 ID:RTTrqb1f0.net
>>1000はレキシカルを理解してるなら
s1とs2のレキシカルが違うことをだな

1006 :デフォルトの名無しさん (ワッチョイ 5f21-+Epa [222.230.61.102]):2021/11/10(水) 12:09:40.50 ID:KxrU4/8D0.net
うむ

1007 :デフォルトの名無しさん (ワッチョイ 5f21-+Epa [222.230.61.102]):2021/11/10(水) 12:24:11.84 ID:KxrU4/8D0.net
>>999
関数やブロックはプロパティをLexicalという場所に登録するんだけど
プロパティを参照した時には、関数内やブロック内のLexicalを参照し
そこにプロパティが登録されてないとその直外のLexicalを参照します

関数は、呼び出しごとに内部Lexicalが生成されるので
c1();c1();c1()と呼び出すと、別々の3つの内部Lexicalが生成され
それらに別々のlet cが登録されるので、c=0となります

s1にはc1()への関数の参照が格納されてるので
s1を複数回呼び出すと、c1()を複数回参照し
上記と同じ結果になります

一方でc2()がreturnで戻す内部関数は直外のLexicalのあるcを参照します
s2()を複数回呼び出すと、同じLexicalのcを参照するので
s2()の複数呼び出しでcはインクリメントされていくのですね

990先生や994先生のご指摘を血肉にされるといいでしょう

1008 :デフォルトの名無しさん (ワッチョイ df4e-9n+R [210.138.216.243]):2021/11/10(水) 13:11:24.52 ID:ABhSQgxq0.net
ところでクロージャーって用語の使い方について質問があるんだけどc2自体をクロージャーって言うのかc2が返してる無名関数をクロージャーって言うのかどっちが正しいの?

1009 :デフォルトの名無しさん (ワッチョイ 7f52-hQZx [61.87.108.223]):2021/11/10(水) 15:30:26.98 ID:jxD2VXPG0.net
質問中すまんが次スレ
+ JavaScript の質問用スレッド vol.124 +
https://mevius.5ch.net/test/read.cgi/tech/1636525464/

1010 :デフォルトの名無しさん (ワッチョイ 5f21-+Epa [222.230.61.102]):2021/11/10(水) 17:31:05.10 ID:KxrU4/8D0.net
closer != function
closer == function + environment.information

JSで説明されてるクロージャーは
関数、関数の内部情報、外部参照ポインタのセット
っていう大まかな理解でいいと思います

function f(){let a;}の場合、
関数f、内部プロパティa、外部参照ポインタの参照先(グローバル)、というセットがクロージャー
ちょっと大まかすぎますか?

返される無名関数はクロージャーの仕組みを
コードで理解するために多用されているために
それ自体をクロージャーと認識する人も多いでしょう

また関数内プロパティは外部から直接アクセスできないので
外部からクローズになっているという意味で
関数自体をクロージャーといっていたり
外部から関数内にアクセスできない状態をクロージャーという人も多いでしょう


次スレで先生方からアドバイスいただけますといいですね
私も心待ちにしています

>>1009様、ありがとうございます

1011 :2ch.net投稿限界:Over 1000 Thread
2ch.netからのレス数が1000に到達しました。

総レス数 1011
335 KB
掲示板に戻る 全部 前100 次100 最新50
read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★