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

レス数が900を超えています。1000を超えると表示できなくなるよ。
2017/04/02(日) 23:30:38.56ID:Qcd0Qmy10
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
837デフォルトの名無しさん (ワッチョイ c56e-zxq2 [150.246.100.179])
垢版 |
2021/09/09(木) 06:09:13.65ID:MrnZHVcA0
>>828
これで解決しました
ありがとう

加算にしないと駄目なんですね(´・ω・`)、、、
2021/09/09(木) 08:16:04.83ID:gVcxc3AP0
eslint、こんなのあるんですね ありがとうございます
839デフォルトの名無しさん (ワッチョイ c56e-zxq2 [150.246.100.179])
垢版 |
2021/09/09(木) 15:28:43.86ID:MrnZHVcA0
プログラミンコードの校正ってどこでアドバイスもらえますか?
ストップウォッチ作ったはいいものの、コードぐちゃぐちゃで読んでて分からない
分かりやすく書く方法を教えてほしいのです(´・ω・`)、、、
2021/09/09(木) 15:40:55.41ID:MjE68I3R0
処理や変数など要所にコメント入れるようにして、
自分でわかるように書き直してみたらいい。
理解も深まるし無駄なところもわかったりする。
841デフォルトの名無しさん (ワッチョイ c56e-zxq2 [150.246.100.179])
垢版 |
2021/09/09(木) 15:52:13.51ID:MrnZHVcA0
https://ideone.com/O5tsDV
ideonにupしました(´・ω・`)、、、
コメント入れているのですが、改善点のアドバイスもらえますか?
コメントアウトしている部分はとりあえずは使わない機能です。
2021/09/09(木) 16:17:46.87ID:MjE68I3R0
>>841
適当にコード拾ってきてつなぎ合わせたのでなけりゃ、十分理解できるコードだと思うが。
それなりにコメント入ってるし。
むしろ具体的にどこがわからんのよ。

自分で理解して書いたコードだったら、一回全内容にコメント入れてみたら?
843デフォルトの名無しさん (ワッチョイ c56e-zxq2 [150.246.100.179])
垢版 |
2021/09/09(木) 19:26:54.34ID:MrnZHVcA0
>>842
どういう部分と言われても難しいですが、しばらく放置してから見ると動きを理解するのに少し時間がかかるというか
この程度の短いコードですが

複数ファイルに分けたりしたほうがいいのでしょうか?

おそらく、良くわからないのは実行の流れです
フローチャートなどは苦手で書いていません
2021/09/09(木) 20:13:16.49ID:B3AuMWY60
>>843
できるだけ関数化するのと、その関数の名前にはこだわった方がよいかも
ファイルは分けなくてよい
フローチャートは自分も書いたことはない

例えばタイマの初期化が先頭部分とリセットボタンクリックイベントの2箇所にあるが、読みづらい上に不具合のもと
実際にリセットボタンクリック時にはミリ秒がクリアされるのに
起動時にはミリ秒がクリアされていないように見える(ローカルストレージから前回の値を拾ってきてる?)

関数外にはグローバルっぽく扱いたい変数の宣言のみを置いて
初期化は名前を付けて関数にする

イベント内の処理も関数化する

そうするとソースを読むとき、先頭から追いかけるときは
原則関数だけが並んでいる形になり、そこでは細かな処理を気にする必要はない

イベントの処理ではイベント関数の先頭からソースを追いかけるが、
そこでも関数だけがあって細かな内容は気にしなくてよい、という形にする

あとはセンスも必要になるけど、処理の内容を的確に表す分かりやすい関数名であれば、
関数名それ自体がコメントのような役割をはたすので、さらに読みやすくなる
2021/09/09(木) 20:27:52.09ID:sZM33J3R0
フレームワーク無しで開発すると、最後には暴発する。
デザインパターン・ファイル分割などが、統一的に決まっていないから

他人のクソコードを誰も読みたくない

だから、Ruby on Rails を使って、
全員が同じ規約で、レールに乗る。Rails Way

Rails では、Node.js, React, Vue.js, Bootstrap を使う。
これらもフレームワークだから、規約で決まっている

だから、独自のデザインパターンを使うことや、我流は、すべて禁止されている。
つまり、全てフレームワークに従う

コードレビューも、フレームワークに従っていない部分を、修正させられる。
フレームワークのやり方と違いますよと

例えば、伊藤淳一のコードレビュー。
YouTube 動画、2018/10

RSpecで書かれたRailsチュートリアル 第6章のテストコードをレビューしてみた
2021/09/09(木) 20:34:47.79ID:B3AuMWY60
>>844
関数化すると、レビューやテストがやりやすくなる
というのも追加で

あと、関数化といっているのは規模が小さいからで、
規模が大きくなってきたらクラス化したりファイルを分けたりとかの考慮は当然必要になる
2021/09/09(木) 20:52:57.96ID:kZqbipt0M
関心事がごっちゃ混ぜだから分かりにくい

アプリケーションが管理する状態(モデル)とその状態をユーザーに見せる表現(ビュー)に対する処理を意識して分けること
MVCの基本を学ぶと良い

モデルの初期化処理やビューの初期化処理、モデルのsave/load処理を関数等でまとめること

モデルの変更イベント(mode: stopped -> running)をリッスンしてビューを更新する作りにすると関心事の分離的にも依存性の方向的にも見通しがよくなる
2021/09/09(木) 21:53:27.14ID:t1bpdD770
ねこ
2021/09/10(金) 00:38:04.25ID:mUaFezuu0
eslint、入れてみたところ明らかに怒られる筋合いのない箇所で大量に怒られが発生して鎮火に試行錯誤してたらクソ時間食って本末転倒だったので切ってしまいました・・・
2021/09/10(金) 11:56:08.39ID:L+jftwLU0
糞コード書くなゴラーかな?
851デフォルトの名無しさん (ワッチョイ 396e-GwBl [150.246.100.179])
垢版 |
2021/09/10(金) 15:55:30.36ID:rOEuM+530
>>844
変数は出来るだけローカルにして、関数化出来る部分は出来るだけ関数化するということですよね。
MVCも調べているところです。
これはMVCの3つのクラスに分ければいいんでしょうか?
2021/09/10(金) 21:07:41.01ID:kAVp3Lay0
Ruby on Rails が、MVC の代表

React, Vue.js のFlux 系フレームワーク。
Store, View, Action

サーバーがRails のAPI モード・Web Socket などで、
クライアント側のHTML が、React, Vue.js, Bootstrap が多い
2021/09/11(土) 04:28:54.23ID:TBXgXRUv0
>>851
ソースを修正してみた
https://codepen.io/cocotto/pen/OJgmXyo

自分はMVCとかよく分からんので、元のロジックは基本的にそのままで
機械的に細かく関数に分けてみただけだが

一応意識したのはタグの操作(insertAdjacentHTMLとかsetAttributeなどの行)は
ソースとしては非常に読みづらいので1行2行でも関数化したのと、
ボタンの状態変化をupdateButtonStatus()の1箇所にまとめ、
アクションの種類によらずその1種類の関数だけを呼べばよいようにしたことくらい
854デフォルトの名無しさん (ワッチョイ 396e-GwBl [150.246.100.179])
垢版 |
2021/09/11(土) 06:58:37.14ID:Uw+xpz9o0
mvcってどうやってエリアを分けるんでしょうか?
model controller viewのエリアです
単にコメントアウトで分けるのですか?
855デフォルトの名無しさん (ワッチョイ 396e-GwBl [150.246.100.179])
垢版 |
2021/09/11(土) 07:18:42.95ID:Uw+xpz9o0
>>853
回答どうも
似たような

タグの操作というのはmvcでいうところのviewですよね。
ボタンの状態もviewですよね。

controllerはキーイベントなどのことだと思います。

modelってどの部分が該当するんでしょうか
2021/09/11(土) 09:52:12.58ID:IblrjkB00
100年やっても、MVC を作れない。
MVC のRuby on Rails をやった方が良い

それで、React, Vue.js のFlux 系フレームワークで、
Store, View, Action

Model, Store は、データ
View は、HTML
Controller は、それ以外の雑多なもの
Action は、データを変更するイベント
2021/09/11(土) 09:56:20.99ID:sItjqXqz0
スネークマンショーのチリ紙交換のコント思い出したw
2021/09/11(土) 13:02:57.50ID:TBXgXRUv0
>>855
modelはビジネスロジックを扱う部分
今回のプログラムでは
modeなどの状態管理や累積時間を操作する処理が該当

>>似たような
最初からロジックは変更してないといっている

MVCやフレームワークはアプリを作成する上の考え方やお作法なので、
多人数のプロジェクトに参加する場合には覚えて使いこなすことが必須で、
理解している人同士では話が通じやすい

一方で、たとえばLaravelというフレームワークでは新規にプロジェクトを作成すると、
コードを1行も書いていない状態で、数千のファイルが生成される
開発ではお作法に従って適切なファイルを適切に修正していく必要があるが、
そもそもお作法を理解するまでに学習コストがかかり、理解するまでは読みやすいとは限らない
1ページ2ページのwebアプリでフレームワークを導入すべきかも検討が必要

とはいえ小規模なプログラムでも
ビジネスロジック部分ではUI操作を混ぜない、
UI操作の途中でビジネスロジックに影響を与えない、
などとした方が読みやすく保守性も上がる、とは言われていて、
本来的にはMVCなどの考え方を導入すべきかもしれないが、
小規模な趣味的アプリならUI操作部分を関数化して追い出すだけで
多少見やすくなるんじゃないか、というのが 853 の例

趣味でなく就職のトレーニングのつもりならMVCでもフレームワークでも頑張って勉強してもらうしかない
859デフォルトの名無しさん (ワッチョイ 396e-GwBl [150.246.100.179])
垢版 |
2021/09/11(土) 20:24:46.63ID:Uw+xpz9o0
↑回答どうも
趣味程度ですね。

ただ、それでも分かりやすくはしたいので、mvcの考え方だけ取り入れます。
本物のmvcがよくわかりませんけどね。
2021/09/11(土) 22:16:23.61ID:V1xpgUeJ0
>>859
早速、teratailでMVCの質問をしたんだな...
https://teratail.com/questions/358996
861デフォルトの名無しさん (ワッチョイ 396e-GwBl [150.246.100.179])
垢版 |
2021/09/12(日) 10:42:23.75ID:9YHRam0P0
javascriptだとmvcがなじまないから何らかのフレームワークを使うってことなんですかね?
2021/09/12(日) 11:03:01.64ID:iEJNB1kw0
>>861
それはhentaimanに直接聞くべき内容だと思うが
2021/09/12(日) 12:19:17.43ID:jZMYjdNi0
>>856
に書いたように、

Ruby on Rails は最初から、Node.js, Webpack, Babel を使う

多いのは、React, Bootstrap。
日本では、Vue.js も使う

最近の転職では、Vue.js, TypeScript も有利だと、
YouTube で有名な、雑食系エンジニア・KENTA が言ってる

サーバー側がRailsのAPIモードで、
フロントエンドが、React, Vue.js

ほとんどのベンチャー・学校・サロンは、これ
2021/09/12(日) 12:24:38.96ID:jZMYjdNi0
例えば、食べチョクでは、AWS, Ruby on Rails, React

若い娘が1人で起業するような場合は、Heroku, Rails, Bootstrap とか
2021/09/12(日) 14:42:19.18ID:KICGsmTmM
テラワロスな回答が2つもついててteratailのレベルの低さに驚愕した
一番基本のクライアントサイドのMVCを知らずにまともなUIコードを書けるわけがない
866デフォルトの名無しさん (ワッチョイ 396e-GwBl [150.246.100.179])
垢版 |
2021/09/12(日) 16:49:42.17ID:9YHRam0P0
javascriptでmvcは使うんですか?
違う概念があるんでしょうか?
2021/09/12(日) 17:04:40.45ID:jZMYjdNi0
YouTube で有名な、雑食系エンジニア・KENTA のサロン・動画を見ればわかるけど、

基本的には、どこの会社も転職用ポートフォリオは、Ruby on Rails のみ。
他のフレームワークのシェアが少ないので、それらで作っても誰も見ない。
Laravel, Django など

React, Vue.js も、バックエンドで使うかと言われれば、使わない

だから基本、サーバー側は、Rails のAPI モードで、
フロントエンドに、React, Vue.js, Bootstrap を使う
2021/09/12(日) 17:40:45.71ID:jZMYjdNi0
単純な例では、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 も必要になる
2021/09/12(日) 20:26:44.95ID:DMcq09zza
ttps://radiko.jp/reader/
Widgets: Google Tag Manager
JavaScript Libraries and Functions: Moment JSMoment JS
Web Servers: nginx
2021/09/13(月) 17:35:06.53ID:1UYrFVx4M
xamppのローカル上では何故かjQueryが作動してくれるのですが、そのファイルをエックスサーバーに上げると作動してくれません、、
気になったのはCDNの位置で、何故かheader.phpに記載されています
jQuery本文はindex.phpに記載してます

phpのファイルにはbodyが無いため、ネットで調べても検索結果が無いのですが・・確認すべき点があればご指摘いただけませんか?

教えていただきたいのは
jQueryを読み込ますCDNの位置とjQuery本文の記載場所です、、

宜しくお願い致しますm(_ _)m
2021/09/13(月) 17:39:20.42ID:AXurLSEfa
cdnはhead内
header.phpがどうなってるか知らんがそこにheadタグがあるならそこ
本文?はcdnのjQueryの読み込みより後ならhead内でもbody内でもいい
bodyが無いというのは抜け落ちてるか見落としかどっちか
2021/09/13(月) 18:25:35.94ID:grNREgJpM
もしかしてWordPress?
回答に必要な情報があるならちゃんと書いてね
2021/09/13(月) 20:51:33.89ID:HGulW+Fz0
header.php が単に、メニューバーなどを定義した、
部分テンプレート・パーシャルなのか、
それとも、HTML の<head>タグなのか?

<head>タグなら、body よりも、先に読み込まれるでしょ?
試しに、bodyの終了タグ直前で、読み込んでみれば?

もちろん、jQuery は、自分のコードよりも先に読み込まないと動かない
2021/09/13(月) 22:43:40.11ID:+vyrVLS2M
>>871-873
皆様有難うございます!
業者にwordpressで作成していただいたものをカスタマイズしてます
素人で検索ワードも効率的に選べなかったのですが、アドバイスをもとにネット検索をして少しだけわかってきました
今回、改修したいファイルはindex.phpですが、headとbodyはheader.phpにありました(何故か</body>は見当たらず・・)
なので、明日は</body>を書き込み、その直前にjQueryの本文を入れて試してみようと思います
2021/09/13(月) 23:20:03.86ID:grNREgJpM
まず今日までの作業は忘れて「WordPress jQuery」で検索
大抵jQueryは導入済で、自作のスクリプトの側を工夫すれば使える
正直不理解なまま業者の納入物をブッ壊してるように見えるぞ
2021/09/14(火) 00:46:24.59ID:b3xfsiCuM
>>875
有難うございます!
確かにCDNでjQueryが導入済みだったので、いきなりFanction以下の本文を記入してもxampp上では動いてくれたのですが、、
一応、ローカル環境だけでいじくり回して解らなくなったらバックアップのデータで復元してます

何故かサーバーにアップしたら動かない、、
ライブラリのバージョンが違うのかはどうやって判断すれば良いのでしょうか?
業者は2.2.1でしたが、3.6.0にすべきかどうか?
なぜ、bodyの終了タグが無いのか?
一応、body自体を消してみたけど、何ら崩れたりもせず動いてました

header.phpのheadの終了タグの前にjQueryの本文を記入しましたが、レイアウトが崩れました
index.phpに記載した内容に影響のあるscriptなので、別のファイルに記載したら駄目なのか?

一晩寝て、アドバイスの通り検索から始めて理解を深めてから先に進むことにします、、
2021/09/14(火) 08:12:14.43ID:b3xfsiCuM
>>873
一晩寝て思いついたのですが
header.phpはメニューだけを記述したファイルのようです
そこのheadにhtmlの宣言?CSSの呼び出し、CDNが記載されてました
他にhead,body,CDNを記述したファイルは見つかりません

そもそも.htmlというファイルが無いサイトって成り立つのでしょうか?
index.phpはトップページの内容を記述してますが、headもbodyも記述がありません、、
index.phpに記載の内容に対してjQueryを作動させたいのですが、、
xampp上では何故か上手くいってるんですよね
index.phpにbodyを新たに記述するってのは違反行為でしょうか?

そもそもhtmlの知識もなくカスタマイズしようとしてまして、、
2021/09/14(火) 09:07:31.26ID:O4ZAi6mt0
>>877
一般に公開するwebならその程度の知識でいじるのはやめといた方がいいよ
2021/09/14(火) 09:10:16.30ID:Hja/bGISM
body云々の話はどうでもいい
(header.php、footer.phpでワンセット)
htmlの勉強も必要だけどまずWordPressのお作法を勉強しろ(WordPress javascriptで検索)
原因を探るならページを表示した際のソースをxamppと本番環境で見比べてみればいい
2021/09/14(火) 09:35:33.82ID:b3xfsiCuM
>>878-879
ご指摘はごもっともですが、他に適任者は居なく業者からも実装したことが無いと放り投げられてるのでやるしか無いのです
上でも指摘していただきましたが、wordpressで jQueryは設定されていて、私の作成したfunctionの記述を再確認したところ上手く作動するようになりました!
やはり壊していたのは自分自身だったと・・
2021/09/14(火) 09:48:24.43ID:O4ZAi6mt0
>>880
その流れだと普通は他の業者探さないか?
2021/09/14(火) 10:56:51.75ID:GhPBnB570
自己責任で勝手に会社のをいじるのか、人生ひっくり返されないようにな
2021/09/14(火) 11:48:37.64ID:PLVDzGSa0
wordpressネタで色んなスレで暴れてる釣り師だよ
2021/09/14(火) 12:44:48.80ID:6heBbDMW0
<style>
#test_id{
filter:sepia(80%) blur(1px);
}
</style>
のようにcssで設定されているfilterをjavascriptで取得するにはどうすればいいんですか?
getComutedStyleとgetPropertyValueでも取得できませんでした。
885デフォルトの名無しさん (ワッチョイ 6910-8YoP [180.12.82.129])
垢版 |
2021/09/14(火) 17:37:23.97ID:6heBbDMW0
ちゃんと確認したらできました
2021/09/14(火) 18:10:22.42ID:b3xfsiCuM
>>881-882
ECサイトとかじゃなくて単なる零細企業の企業サイトですから・・
2021/09/15(水) 02:21:53.09ID:LKRHWte30
例えば、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>
2021/09/15(水) 02:22:34.90ID:LKRHWte30
WordPress はプロ向きじゃない。
デザインの本ばかりで、Railsみたいに、フレームワークの仕組みを学べる本がない

プログラミングはコーディングするものじゃない。
ほぼ、ずっとフレームワークの仕組みを読むこと。
これが、開発のほとんどの時間を占める

だから、WordPressの仕組みは、web制作管理板のWordPressのスレで聞くように言ってる。
各テンプレートを読み込む順番とか、どれが本体のHTMLなのかとか

この板で聞いても、個別のフレームワークの仕組みは誰も知らない

だから皆、専用のサロンへ入る。
例えばRailsなら、YouTube で有名な、雑食系エンジニア・KENTA のサロンへ、3千人が入っている

そういうコミュニティーへ入らないと無理。
独学では作れない。教えてもらわないと無理
2021/09/15(水) 02:34:09.70ID:Vtvma65V0
宣伝死ね
2021/09/15(水) 03:16:07.67ID:LKRHWte30
>>884
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 );
} );
2021/09/15(水) 17:19:00.06ID:fabzU8Xg0
classでインスタンスを作っている人いますか?
これってすごく中途半端でかえって分かりにくいです。
2021/09/15(水) 18:11:45.71ID:vQolsmrqa
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);
}
2021/09/15(水) 18:15:59.59ID:dBireG1MM
何が中途半端か分からんけどTypeScriptでも触ってみたら
2021/09/15(水) 19:02:24.83ID:fHmj5hYp0
スクレイピングすると地獄へ落ちるって本当ですか?
2021/09/15(水) 19:09:57.19ID:h5Z3dkgZ0
やり方を間違えるとあり得ます
2021/09/15(水) 20:59:30.06ID:bTnM7Fek0
>>891
それを作らないなんてとんでもない
2021/09/16(木) 00:08:14.89ID:tvb8xhvB0
class 構文を使わず、継承チェーンを自作しているようなコードは、地獄

そういう香具師は追放
898デフォルトの名無しさん (ワッチョイ 6935-s7zK [180.145.179.243])
垢版 |
2021/09/16(木) 00:11:22.80ID:pYXDlrUq0?2BP(1000)

>>897
継承自作はガチでやばい
2021/09/16(木) 00:40:41.07ID:R/NquzpN0
ES2015まではclass無かったんですよね?それまではどうしていたんですか?
2021/09/16(木) 00:56:38.22ID:xJePaYnO0
>>899
関数宣言
2021/09/16(木) 10:55:25.86ID:wCLjpPvb0
リサイズイベントが複数設置していて、望んだ順番で発火して欲しいのですが、
何か方法はありますでしょうか?

現状は各リサイズイベントにて、setTimeoutを用いてイベントの発火を間引いていますので、
その間引く時間をそれぞれ変更して対応しています。
2021/09/16(木) 13:22:43.27ID:Xq6qjUgGa
クラスにして引数渡すメソッドにすりや良いんじゃね?
2021/09/16(木) 15:22:17.42ID:gkVPGX300
すいません
windowsのローカルで動くスクリプトを書いてて質問です。(JSX)

children = folder.getFiles();

でディレクトリにあるファイル一覧を取得してるんですが

children[0].path = decodeURI(children[0].path);

みたいにファイルのパスをURLデコードしても、デコードしたパスが上書きされません。

ファイルパスに日本語が含まれていると後の処理でエラーが出るので
色々試してる途中なのですが、むしろ「日本語がURIエンコードされている」ことが問題なのかなと思ったので
いったんデコードを試みてる次第です。

どなたかよろしくお願いいたします。
2021/09/16(木) 19:34:45.06ID:h22xAZJO0
classは非推奨になると思う。
2021/09/16(木) 19:40:28.89ID:yn0gOKRBa
>>903
一行でやらずに間挟んでみたら?
tmp = decodeURI(children[0].path);
children[0].path = tmp;
2021/09/16(木) 21:28:13.93ID:h22xAZJO0
classを導入するならjavaみたいにクラスベースにするべき。
2021/09/16(木) 21:57:57.90ID:xJePaYnO0
>>906
なぜ?
2021/09/16(木) 22:58:46.10ID:h22xAZJO0
>>907
中身がプロトタイプのままならfunctionでコンストラクタを書いた方が、
プロトタイプチェーン、this、継承の挙動が把握しやすいから。
2021/09/16(木) 23:06:18.36ID:xJePaYnO0
>>908
糖衣構文と把握できない人にはそうかもしれないな
2021/09/17(金) 05:14:25.65ID:O1PoA15N0
>>903
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 から始めた方がよい
2021/09/17(金) 07:38:30.25ID:rB1Uwify0
>>909
従来のままのほうが分かりやすくない?
何のためにclassを追加したのだろうか?
2021/09/17(金) 07:41:06.43ID:rB1Uwify0
https://note.affi-sapo-sv.com/js-class.php
JavaScriptのクラスは、内部的にはsuperキーワードが追加された以外は以前と変わっていません。



そのため、以前できなかったことは、今でもできません。



クラス定義を使えば、わかりやすいコードを作れるという意見もありますが、誰にとってわかりやすいかいまいち不明。
prototypeを隠蔽しているので、初心者がJavaScriptの本質を理解しにくくなる気もします。



class構文は内部でどんな置き換えをしているのか、ということを理解してからでないと、勉強にならないですね。
でも理解したら、わざわざclassを使う必要がない気がします。



使いたければ使えばいいんじゃない?と思います。
913デフォルトの名無しさん (ワッチョイ cbdb-qDHA [217.178.96.78])
垢版 |
2021/09/18(土) 09:19:17.64ID:BWPa8IS40
classでインスタンスを生成した場合、関数の入れ子・クロージャ・関数の合成は
どのように実装すればいいのでしょうか?
2021/09/18(土) 09:21:08.79ID:BWPa8IS40
>>907
分かりにくいから。
2021/09/18(土) 09:25:01.08ID:bSvCP7tNM
jsonファイルをfetchで読み込んで表示するページ作りたいんですが読み込んだjsonファイルの更新日時を取得する方法ってありますか?
2021/09/18(土) 09:30:36.71ID:GAwwwwFC0
HTTPのレスポンスヘッダーにLast-Modifiedがあれば
2021/09/18(土) 18:47:47.12ID:ijIYuONW0
>>914
理解してない機能はわかりにくい
理解した機能はわかりやすい
それだけの話
2021/09/20(月) 12:44:45.58ID:ocNzoCY30
関数の呼び出しコストという文言を見るのですが、具体的にはどのようなコストなのでしょうか?
関数スコープが生成される?的なコストと処理量などでしょうか?
2021/09/20(月) 12:54:03.49ID:RSxALu1Ia
検索の時間
家の本棚から探すのと図書館に行って探してくるのとの違い
2021/09/20(月) 17:33:22.90ID:BvjsWEuY0
プログラミング初心者+αです。

const a = オブジェクト.length
console.log(a);

ということをやると
undefined:undefined
つまり未定義と表示されて正常に認識してくれない。

console.log(オブジェクト.length);
ならうまくいくのに。
プロパティの値を変数に割り当てられないのでしょうか。
2021/09/20(月) 17:38:24.56ID:StmUbSXka
定数にメソッドは登録出来ないんじゃない
2021/09/20(月) 17:52:12.71ID:iZ97v5vcM
オブジェクトって具体的には?
2021/09/20(月) 17:59:21.71ID:VxCTC9AS0
>>920
再現しないんだが
Objectにはlength無いけどなんの話か教えてくれ
2021/09/21(火) 20:13:00.16ID:2i3b3P5F0
>>919
ありがとうございます。

オーバーヘッドと似たようなもんだと考えてよいのでしょうか?

forEach が遅いのは関数呼び出しだからってのを、何処かで見まして、
インライン関数でも遅いので、自分の中で『検索』ってのと繋がらないです…
2021/09/21(火) 20:47:54.79ID:e5t1mBAya
>>924
ゴメン、CDNのボトルネック的な事かと思っただけで
コールスタックとかリターンアドレスやらメモ化なんて知らないです。

どっちにしろ人間もコンピュータも間接的な呼び出しは遅いようだ
以下参考

2019年版: JavaScriptのループの考察
https://qiita.com/shibukawa/items/4cae2a1410754d519232

【Python】関数呼び出しのコストを計測してみた
https://qiita.com/stokes/items/e8440329fb6f37944a9b
2021/09/23(木) 18:37:57.95ID:dJQXrT5o0
>>918
Function Callの処理コスト
https://262.ecma-international.org/11.0/#sec-function-calls

>>924
Array.prototype.forEachの仕様を確認すべし
https://262.ecma-international.org/11.0/#sec-array.prototype.foreach
2021/09/26(日) 10:15:24.86ID:A/CchEjW0
元のhtmlが<td id=***>文字列</td>と言う形でユニークなidが振られています。文字列の部分がokだった場合、字色を赤に変えたいのですがどのようなコードとすればよいでしょうか
試しに該当箇所にreplaceでspan styleを当てると元のタグが消えてテーブルが破壊されてしまいました
2021/09/26(日) 10:34:01.51ID:q8w8Ww110
>>927
td要素ノードにスタイルを割り当てればいいのでは?
style属性よりclass属性がいい気はするが
https://developer.mozilla.org/ja/docs/Web/API/Element/classList
2021/09/27(月) 20:29:49.49ID:TnqJLtde0
>>928
ヒントありがとうございます
解決しました
2021/09/28(火) 16:18:59.44ID:0wKuF6nP0
下記のように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になる
}
2021/09/28(火) 18:40:20.62ID:tB/ieqJ50
下にも [0] をつけたら?
2021/09/28(火) 18:42:29.73ID:0wKuF6nP0
alert( hoge.text() );
にするとマークアップ部分を抜いたテキストを取得できることに気付きましたが
マークアップも含んだ状態のインナーhtmlが欲しいんですよね…
2021/09/28(火) 18:45:06.33ID:0wKuF6nP0
>>931
まさかと思ってやってみたらいけました、そうかー配列で持ってたのかー
ありがとうございます
2021/09/28(火) 20:00:42.73ID:cv/tD/fj0
配列とHTMLcollectionは似て非なるものやぞ
2021/09/28(火) 21:27:29.09ID:54PfDNUt0
>>934
hogeはHTMLcollectionじゃないぞ
2021/09/28(火) 21:44:32.49ID:54PfDNUt0
>>933
getでもいける
https://api.jquery.com/get/
レス数が900を超えています。1000を超えると表示できなくなるよ。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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