!extend:checked:vvvvvv:1000:512
JavaScript を自ら学ぶ人のための質問スレッドです。
>>2-5のテンプレを読んだ上で質問してください。次スレは>>950が>>2の「次スレの立て方」を元に立ててください
■質問を書く上で
(1) 煽り、コード制作依頼等、人を不快にさせる投稿はご遠慮下さい。公序良俗を守った応対を心がけてください。
(2) 他の人に迷惑をかけるスクリプトの質問はご遠慮ください。
(ブラクラ、[戻る], [閉じる], [クリック] の妨害、画面占有など)
(3) 質問者及び議論を行う人はメール欄を空欄にし、名前にレス番を入れることを強く推奨します。回答者はなりすましを判断できませんので、なりすましが現れても自己責任となります。
(4) 常に自発的に調べる心構えを持ってください。
具体的には「自分で調べてから質問する」「回答をもらってわからない単語があればGoogle検索してみる」など。
わからない内容を代わりに調べてくれる回答者をお望みの方は余所で質問してください。
(5) 出来るだけ一般的な用語を使用してください。脳内オレオレ用語は混乱の元です。
(6) 出来るだけサンプルコードを掲示してください。言葉による説明は行き違いが生まれる場合があります。
※必ず「問題の事象が再現されること」を確認してください。
必要な部分だけ切り出したつもりで現象が再現できていなかったケアレスミスがしばしば見られます。
(7) サンプルコードに HTML が含まれる場合は http://validator.w3.org/ で [Check] してみてください。
(8) 質問を具体的かつ詳細に書くと回答を得られやすいです。>>2の質問テンプレートを活用してみてください。
(9) ライブラリ関連の質問は禁止です。関連スレにあるライブラリ質問スレで質問して下さい。
(10) 時にはあなたが望む「答え」だけでなく、「意見」などが寄せられる場合もあります。
■前スレ
JavaScript の質問用スレッド vol.124
https://mevius.5ch.net/test/read.cgi/tech/1636525464/
VIPQ2_EXTDAT: checked:vvvvvv:1000:512:: EXT was configured
探検
JavaScript の質問用スレッド vol.125
レス数が900を超えています。1000を超えると表示できなくなるよ。
1デフォルトの名無しさん (ワッチョイ 1301-RMnj [36.240.123.227])
2022/08/07(日) 15:57:40.26ID:TS5TGpUB0832デフォルトの名無しさん (ワッチョイ fa5c-FIIW [203.139.52.200])
2023/05/23(火) 20:57:14.94ID:PscArQu/0 キモ
833デフォルトの名無しさん (ブーイモ MM16-F7IQ [133.159.150.75])
2023/05/23(火) 22:34:28.22ID:y7+F4Fx6M >>831
>例えば関数実行後に初期化してもホイスティングで勝手にundefiedが代入される
これいろいろ間違ってる
>未だにvar使わなければいけない理由ってある?
REPLで繰り返しコードブロックを実行したい場合なんかにvar使う
あとはブラウザ以外の環境でES3しか動かない環境とかね
>今後var使ってる人見たら問答無用で勉強しない人と判断しても良い?
良いと思うけど君もそっち側に片足突っ込んでるから気をつけて
>例えば関数実行後に初期化してもホイスティングで勝手にundefiedが代入される
これいろいろ間違ってる
>未だにvar使わなければいけない理由ってある?
REPLで繰り返しコードブロックを実行したい場合なんかにvar使う
あとはブラウザ以外の環境でES3しか動かない環境とかね
>今後var使ってる人見たら問答無用で勉強しない人と判断しても良い?
良いと思うけど君もそっち側に片足突っ込んでるから気をつけて
834デフォルトの名無しさん (ワッチョイ 9af0-FIIW [211.19.68.36])
2023/05/24(水) 10:07:05.19ID:qaFXRxUx0 スコープの基本だね
レキシカルなのかパラメーターなのか
DOMをいじるとみんな参照になるし変数大切ね
レキシカルなのかパラメーターなのか
DOMをいじるとみんな参照になるし変数大切ね
835デフォルトの名無しさん (ワッチョイ 23a7-xpLh [118.14.167.59])
2023/05/24(水) 10:45:52.94ID:R9+x876F0 匿名イベントを削除する方法って無い?
ググりまくっても全く見当たらんから仕方ないのでElement.prototype.addEventListenerフックしてフィルタしてるんだけど非常に遠回りな事してる気がしてならない
ググりまくっても全く見当たらんから仕方ないのでElement.prototype.addEventListenerフックしてフィルタしてるんだけど非常に遠回りな事してる気がしてならない
836デフォルトの名無しさん (ブーイモ MM86-F7IQ [163.49.208.121])
2023/05/24(水) 11:04:01.62ID:CrZEaXEyM >>835
イベントリスナーへの参照を保持してないと
removeEventListenerは使えない
あとはAbortSignalを使う方法がある
MDNのaddEventListener辺りに全部書いてる
イベントリスナーへの参照を保持してないと
removeEventListenerは使えない
あとはAbortSignalを使う方法がある
MDNのaddEventListener辺りに全部書いてる
837デフォルトの名無しさん (ワッチョイ 2b5f-i/qU [14.12.8.65])
2023/05/25(木) 06:53:07.70ID:djzVD0JU0 くそ素人で申し訳ない
ブックマークレットでCookieを編集する時に有効期限も同時に編集したいのだけれど
どうしたらいいのだろうか
元々は
javascript:document.cookie=%22ipb_member_id=〇〇%22;document.cookie=%22ipb_pass_hash=〇〇%22;
って感じなのだけれど1日くらいしたらすぐ消えてしまう
ブックマークレットでCookieを編集する時に有効期限も同時に編集したいのだけれど
どうしたらいいのだろうか
元々は
javascript:document.cookie=%22ipb_member_id=〇〇%22;document.cookie=%22ipb_pass_hash=〇〇%22;
って感じなのだけれど1日くらいしたらすぐ消えてしまう
838デフォルトの名無しさん (スップ Sd5a-9ehv [49.96.239.55])
2023/05/25(木) 11:10:49.64ID:vvIauVZOd どっかのRFCに載ってるはず
839デフォルトの名無しさん (ササクッテロラ Sp8b-tLvz [126.182.17.102])
2023/05/27(土) 14:04:26.57ID:MkhutBump >>837
そいつは有効期限も一緒に設定しなきゃならんな。
javascript:(function(){
var date = new Date();
date.setDate(date.getDate() + 30); // 30日後に設定
document.cookie = "ipb_member_id=〇〇; expires=" + date.toUTCString() + "; path=/";
document.cookie = "ipb_pass_hash=〇〇; expires=" + date.toUTCString() + "; path=/";
})();
こんな感じでやってみ。
これでipb_member_idとipb_pass_hashが
30日間有効になるぜ。
ただし、ブラウザの設定やCookieの設定によってはJavaScriptから触れないこともあるから、
その辺は自己責任でな。
そいつは有効期限も一緒に設定しなきゃならんな。
javascript:(function(){
var date = new Date();
date.setDate(date.getDate() + 30); // 30日後に設定
document.cookie = "ipb_member_id=〇〇; expires=" + date.toUTCString() + "; path=/";
document.cookie = "ipb_pass_hash=〇〇; expires=" + date.toUTCString() + "; path=/";
})();
こんな感じでやってみ。
これでipb_member_idとipb_pass_hashが
30日間有効になるぜ。
ただし、ブラウザの設定やCookieの設定によってはJavaScriptから触れないこともあるから、
その辺は自己責任でな。
840デフォルトの名無しさん (ワッチョイ 375f-mp2X [106.72.33.97])
2023/05/28(日) 15:24:03.43ID:n14WZ+eY0 documentのinnerHTMLやtextContentの書き換えをしたとき、ブラウザのDOMの計算(?)や再描画(?)は変更があった部分のみか、ページ全体で行われるののどちらでしょうか?
841デフォルトの名無しさん (ワッチョイ 975f-D91p [14.12.8.65])
2023/05/28(日) 23:28:10.35ID:8mVMxOyu0 >>839
ありがとうまじ助かった
ありがとうまじ助かった
842デフォルトの名無しさん (ワッチョイ 975f-f/x0 [14.8.104.32])
2023/05/29(月) 06:35:55.98ID:eVNfBOW80 CookieってPHPみたいなサーバーサイドから設定するのとJSから設定するのどっちが良いんかね?
同僚から受け継いだシステムはPHPでやってたが
同僚から受け継いだシステムはPHPでやってたが
843デフォルトの名無しさん (ワッチョイ 9f00-taKI [221.118.182.138 [上級国民]])
2023/05/29(月) 07:03:02.74ID:nuFuFtG60 HttpOnlyの存在考えるとサーバーサイド一択じゃね?
844デフォルトの名無しさん (ワッチョイ ffbb-dfVX [217.178.27.244])
2023/05/29(月) 08:05:53.64ID:7kZHwtIo0 ステートレスな通信を補助するものだから、処理の起点側でつけると良い
ただ、一般的にはサーバサイドになると思うよ
ただ、一般的にはサーバサイドになると思うよ
845デフォルトの名無しさん (ワッチョイ 5f4b-HhYS [110.2.215.28 [上級国民]])
2023/06/19(月) 13:57:37.11ID:iYcFBKEZ0 if ((a == b && c != d) || (e == f && g != h)){
alert ("正解");
}
こういうコードの書き方は出来ますか?
二重括弧の使い方は正しいでしょうか?
alert ("正解");
}
こういうコードの書き方は出来ますか?
二重括弧の使い方は正しいでしょうか?
846デフォルトの名無しさん (ワッチョイ 5f4b-HhYS [110.2.215.28 [上級国民]])
2023/06/19(月) 14:42:31.77ID:iYcFBKEZ0 ちょっと調べてたんですが、こうでしょうか?
if (((a == b) && (c != d)) || ((e == f) && (g != h))){
alert ("正解");
}
「a == bとc != dの条件が両方ともtrue」か「e == fとg != hの条件が両方ともtrue」なら"正解"と警告を表示したいのですが…
三重括弧なんてあります?
if (((a == b) && (c != d)) || ((e == f) && (g != h))){
alert ("正解");
}
「a == bとc != dの条件が両方ともtrue」か「e == fとg != hの条件が両方ともtrue」なら"正解"と警告を表示したいのですが…
三重括弧なんてあります?
847デフォルトの名無しさん (ワッチョイ ff7b-0fSR [153.185.178.93])
2023/06/19(月) 14:49:42.42ID:G503Uwj70 >>845で大丈夫やろ。
なんで試さんの?
なんで試さんの?
848デフォルトの名無しさん (ワッチョイ ff61-gPkm [153.171.212.140])
2023/06/19(月) 14:54:44.66ID:Glrukv1f0 演算子優先度の理解が追い付いて無いなら好きなだけ括弧使えばいい
849デフォルトの名無しさん (オッペケ Sr33-vDmN [126.157.241.160])
2023/06/19(月) 14:58:41.52ID:3rS08iXar 何重カッコでもいけるけど演算子やカッコが増えると可読性が落ちて条件式を読み解くのが辛くなる
コードは長くなっても条件式をいくつかに分割して変数に入れた方が読みやすくなるよ
const x = (a == b) && (c != d)
const y = (e == f) && (g != h)
if(x || y){
alert ("正解");
}
とか
コードは長くなっても条件式をいくつかに分割して変数に入れた方が読みやすくなるよ
const x = (a == b) && (c != d)
const y = (e == f) && (g != h)
if(x || y){
alert ("正解");
}
とか
850デフォルトの名無しさん (ワッチョイ 5f4b-HhYS [110.2.215.28 [上級国民]])
2023/06/19(月) 15:02:17.21ID:iYcFBKEZ0 皆さん、ありがとうございます
変数に入れるのがいいですね
やってみます
変数に入れるのがいいですね
やってみます
851デフォルトの名無しさん (アウアウウー Sa23-QBJ2 [106.130.41.210])
2023/06/19(月) 23:22:27.82ID:xNSaH23va イテレータ、Map、Setがややこしくて😩なんだけど実務で使う?
一応理解したけどカスタムイテレータ作ってそれをオブジェクトに追加してfor...ofなんて無理だな
プログラマーならバリバリ使うのかな?それとも知識として仕組み知っとくだけ?
一応理解したけどカスタムイテレータ作ってそれをオブジェクトに追加してfor...ofなんて無理だな
プログラマーならバリバリ使うのかな?それとも知識として仕組み知っとくだけ?
852デフォルトの名無しさん (オッペケ Sr33-vDmN [126.205.219.139])
2023/06/20(火) 13:18:59.52ID:es0ShzRur Mapはキーと値の組み合わせのコレクション
Setは重複のない値のコレクション
どちらも実務で出番はある
イテレータは中身を1個ずつ取り出せるものの総称
カスタムイテレータに関してはmdnもおすすめのジェネレータ関数を覚えておけばいいかと
バリバリではないにしてもここぞというときに役に立つ
Setは重複のない値のコレクション
どちらも実務で出番はある
イテレータは中身を1個ずつ取り出せるものの総称
カスタムイテレータに関してはmdnもおすすめのジェネレータ関数を覚えておけばいいかと
バリバリではないにしてもここぞというときに役に立つ
853デフォルトの名無しさん (ワッチョイ ffda-ZcId [223.216.178.53])
2023/06/21(水) 18:20:14.61ID:He5qrAkL0 tableタグのtrをjqueryかjavascriptでアニメーションアコーディオンがうまくアニメーションしないんだけど
slideToggleで開発ツールではheightの数字は変化しているんだけど・・
もしかしてtrにheightという概念が無いから?
<tr class=name><td>名前1</td></tr>
<tr class=detail><td>中身1</td></tr>
<tr class=name><td>名前2</td></tr>
<tr class=detail><td>中身2</td></tr>
・・・
slideToggleで開発ツールではheightの数字は変化しているんだけど・・
もしかしてtrにheightという概念が無いから?
<tr class=name><td>名前1</td></tr>
<tr class=detail><td>中身1</td></tr>
<tr class=name><td>名前2</td></tr>
<tr class=detail><td>中身2</td></tr>
・・・
854デフォルトの名無しさん (ワッチョイ 7d4b-Hjce [110.2.215.28 [上級国民]])
2023/06/26(月) 12:08:05.73ID:QXVTwCFE0 変数って定義する前はundefinedが入ってるんでしょうか?
855デフォルトの名無しさん (ワッチョイ 1501-WolJ [60.109.218.97])
2023/06/26(月) 20:02:32.96ID:nZR6QJ/D0856デフォルトの名無しさん (ワッチョイ 7d4b-Hjce [110.2.215.28 [上級国民]])
2023/06/26(月) 21:13:06.03ID:QXVTwCFE0 >>855
ありがとうございます。
ありがとうございます。
857デフォルトの名無しさん (アウアウウー Sab9-cUyJ [106.130.49.224])
2023/06/29(木) 21:35:42.23ID:I06beN9ya Promiseメソッドなんなの独自ルール多すぎでしょ。もはや別言語に感じる。これよく使用される?
858デフォルトの名無しさん (ワッチョイ 1a00-KjOb [221.118.182.138 [上級国民]])
2023/06/29(木) 22:34:31.96ID:mZg1DRHQ0 Promise周りは最初は取っつきにくいけど、凄く使いやすく作られてるし、物凄くよく使うよ。
859デフォルトの名無しさん (ワッチョイ 1d5f-momQ [14.8.104.32])
2023/06/29(木) 23:09:38.14ID:OBXN/r9b0 async awaitでしかfetchをかけない自分と、thenでしかfetchを書けない前任者のせめぎあい
xhrはなぜか知らんがもう時代じゃないらしいし
xhrはなぜか知らんがもう時代じゃないらしいし
860デフォルトの名無しさん (アウアウウー Sab9-Br7/ [106.128.36.203])
2023/06/30(金) 10:14:20.96ID:Lj29KtNna 的外れな質問だったら申し訳ありません…
クラスAが長くなってしまったこと(1500行くらい)、類似クラスBとある程度共通化できそうな部分があったので関数Cとして
別ファイルに切りだそうと思いました。
その際、関数CからAの複数のメンバ変数/メソッド(Bも同じ名前の変数/メソッドを持っている)を利用したいのですが、
一つ一つ引数で渡していくと記述が煩雑だし、仕様も変わる可能性があります。
そこで、Aのインスタンスから関数Cにthisを引数として渡すようにして、関数Cからは仮引数this.メンバ変数 などのようにして自由にAのメンバにアクセスできるようにしました。
以上のやり方で、動作はしているようですが、なんか良くないやり方の様な気もしています。
上記のやり方は一般的な方法でしょうか。何かデメリットはありますでしょうか。
クラスAが長くなってしまったこと(1500行くらい)、類似クラスBとある程度共通化できそうな部分があったので関数Cとして
別ファイルに切りだそうと思いました。
その際、関数CからAの複数のメンバ変数/メソッド(Bも同じ名前の変数/メソッドを持っている)を利用したいのですが、
一つ一つ引数で渡していくと記述が煩雑だし、仕様も変わる可能性があります。
そこで、Aのインスタンスから関数Cにthisを引数として渡すようにして、関数Cからは仮引数this.メンバ変数 などのようにして自由にAのメンバにアクセスできるようにしました。
以上のやり方で、動作はしているようですが、なんか良くないやり方の様な気もしています。
上記のやり方は一般的な方法でしょうか。何かデメリットはありますでしょうか。
861デフォルトの名無しさん (ワッチョイ 7691-pVx5 [153.223.3.108])
2023/06/30(金) 10:55:58.80ID:qu6f9mWQ0 クラスAたBの同名の変数と関数をBaseクラスにしてAとBに継承すれば同名の変数関数を持ってることが保証できてうっかり名前変えてしまったとかのバグ防げるんじゃない?インターフェースみたいに
それから引数じゃなくてbind使えば関数C内でthisを自然な感じで使えるとか
それから引数じゃなくてbind使えば関数C内でthisを自然な感じで使えるとか
862デフォルトの名無しさん (アウアウウー Sab9-Br7/ [106.128.39.112])
2023/06/30(金) 13:05:23.88ID:2BLecjKja 有り難うございます。
デメリットとしては後でA~Cをいじった時にバグの温床になりやすいこと、くらいの認識で良いんですかね。
基底クラスを継承するかたちにすることも考えたいと思います。
確かにbind/callを使った方が、動作は同じでよりシンプルな気がしてきました。
デメリットとしては後でA~Cをいじった時にバグの温床になりやすいこと、くらいの認識で良いんですかね。
基底クラスを継承するかたちにすることも考えたいと思います。
確かにbind/callを使った方が、動作は同じでよりシンプルな気がしてきました。
863デフォルトの名無しさん (アウアウウー Sa47-NFBa [106.146.70.58])
2023/07/01(土) 04:46:01.59ID:nMEzWNF9a is_a, has_a
継承か包含か、古典的な質問
継承か包含か、古典的な質問
864デフォルトの名無しさん (アウアウウー Sa47-ctHD [106.155.8.134])
2023/07/01(土) 19:38:17.78ID:hPyQUT1Ya javascript:
if((result = prompt("input formula string","")) == "") alert("no formula string"); else alert(eval(result));
if((result = prompt("input formula string","")) == "") alert("no formula string"); else alert(eval(result));
865デフォルトの名無しさん (ワッチョイ 5a00-PRVu [221.118.182.138 [上級国民]])
2023/07/01(土) 22:48:30.73ID:WfKHfAvE0 なんつー邪悪なコード
866デフォルトの名無しさん (ワッチョイ 5b4b-nuDV [110.2.215.28 [上級国民]])
2023/07/05(水) 21:30:37.79ID:74hfvDDi0 (function(){
~
})();
こういう書き方をしてるコードがあったんですけど、これは実行も含めた関数の書き方でしょうか?
最初の(と最後の)()の意味がわかりません
~
})();
こういう書き方をしてるコードがあったんですけど、これは実行も含めた関数の書き方でしょうか?
最初の(と最後の)()の意味がわかりません
867デフォルトの名無しさん (ワッチョイ e301-cWjJ [60.109.218.97])
2023/07/06(木) 00:31:51.01ID:IKcM4kIN0868デフォルトの名無しさん (ワッチョイ 5b4b-nuDV [110.2.215.28 [上級国民]])
2023/07/06(木) 01:40:00.57ID:vc4JCbkY0869デフォルトの名無しさん (ワッチョイ 7679-p0MK [175.105.104.184])
2023/07/07(金) 13:17:53.80ID:tybFBPle0 なるべく自分で考えたキモイ名前は晒したくないからな?
870デフォルトの名無しさん (ワッチョイ a15f-eaRz [14.13.136.34])
2023/07/08(土) 18:01:12.76ID:0tWDp4eO0 今ホームページを制作しているのですが教えて頂きたいです。
下記内容のコードの書き方がわかりません。
5枚の画像があるのですが、全部では無く一旦一枚目のみ表示させたいです。
次に各画像を説明する文字があります。その文字にマウスカーソルを合わせると、その文字にあった画像に2枚目3枚目と切り替わるようにしたいと思っています。
初心者すぎるので例としてコードを作って頂ければ見ながら調整したく思っています。
どなたかお教え頂けませんでしょうか。
下記内容のコードの書き方がわかりません。
5枚の画像があるのですが、全部では無く一旦一枚目のみ表示させたいです。
次に各画像を説明する文字があります。その文字にマウスカーソルを合わせると、その文字にあった画像に2枚目3枚目と切り替わるようにしたいと思っています。
初心者すぎるので例としてコードを作って頂ければ見ながら調整したく思っています。
どなたかお教え頂けませんでしょうか。
871デフォルトの名無しさん (スプッッ Sd73-mu37 [1.75.238.73])
2023/07/08(土) 20:53:43.61ID:S1M2Nutrd >>870
それはもう質問ではない
それはもう質問ではない
872デフォルトの名無しさん (ワッチョイ a15f-vDrU [14.8.104.32])
2023/07/08(土) 21:24:42.99ID:DhofVjWT0 ChatGPTに聴け
873デフォルトの名無しさん (ワッチョイ d101-Ud/M [60.105.201.125])
2023/07/08(土) 23:32:58.73ID:EFUbRXYX0874デフォルトの名無しさん (アウアウウー Sa55-knyK [106.146.116.188])
2023/07/09(日) 01:18:13.12ID:YP8p84HTa よくある、スライダーでしょ?
jQuery でもあるでしょ
Bootstrap のCarousel (カルーセル)
https://getbootstrap.jp/docs/5.0/components/carousel/
jQuery でもあるでしょ
Bootstrap のCarousel (カルーセル)
https://getbootstrap.jp/docs/5.0/components/carousel/
875デフォルトの名無しさん (ワッチョイ a15f-eaRz [14.13.136.34])
2023/07/09(日) 01:44:11.98ID://wYUerL0 なんか色々ルールがあるんですね
諦めて勉強します
ありがとうございます
諦めて勉強します
ありがとうございます
876874 (アウアウウー Sa55-knyK [106.146.114.68])
2023/07/09(日) 19:52:50.68ID:gl6FDMI+a jQuery slider
Bootstrap Carousel などで検索すれば、一杯ある
一杯あるけど、難しいから自作する人はいない。
皆、jQueryUI やBootstrap のCarousel などの既製品を使う
Bootstrap Carousel などで検索すれば、一杯ある
一杯あるけど、難しいから自作する人はいない。
皆、jQueryUI やBootstrap のCarousel などの既製品を使う
877デフォルトの名無しさん (ワッチョイ 9300-Yt8B [221.118.182.138 [上級国民]])
2023/07/09(日) 21:16:30.84ID:VzLiONyC0 え、そんな難しい要素無いよ
878デフォルトの名無しさん (スップ Sd9f-asTj [49.97.111.88])
2023/07/17(月) 23:23:58.12ID:XzfBWjood フォームフィールドが定義されたPDFファイルがすでにあって、ブラウザ上のJavascriptでWebフォームに入力されたテキストをPDF側のフィールドに反映させてダウンロードすることができるpdfライブラリってあまりすか?
使い方のイメージとしては、たとえばPDF上に名前を入力する箇所がいくつかあるけど、ユーザーは単にweb上で普通のinputフォームを入力してsubmitすると名前が入力済みのPDFファイルをダウンロードできる、という感じです。
pdfmake等いくつかライブラリは見たのですが、白紙ベースでPDF作る例しか見あたらなくて(テンプレートは画像背景で切り替え等)、直接PDFフォームを扱えるものは無いかなと。
使い方のイメージとしては、たとえばPDF上に名前を入力する箇所がいくつかあるけど、ユーザーは単にweb上で普通のinputフォームを入力してsubmitすると名前が入力済みのPDFファイルをダウンロードできる、という感じです。
pdfmake等いくつかライブラリは見たのですが、白紙ベースでPDF作る例しか見あたらなくて(テンプレートは画像背景で切り替え等)、直接PDFフォームを扱えるものは無いかなと。
879デフォルトの名無しさん (アウアウウー Sac5-HZc/ [106.130.137.152])
2023/07/29(土) 00:54:23.66ID:s0ko+FdFa プログラミング全く知らない状態からやっとJavaScript一通り学びました
かなり難しかったです。でもJavaScriptは比較的簡単な言語なんですよね?
ES6以降のJavaScriptでもやっぱり簡単なんですか?
それとES6で大規模アップデート合った時は絶望しましたか?
勉強していて苦しんだのがスコープ、this、反復処理の背景(iteratorの動き、yieldは何をしてるか)、非同期処理(Promise、then、async)、その他様々なメソッド、静的メソッド、、、
これら全てES6から導入されましたよね?絶望しませんでしたか?
例えば私がもしES5までのJavaScriptに慣れ親しんでいてES6のアップデートに触れたら絶対絶望してました。概要見ても「?????」となってたはずです
プログラミングに向いてる人はこんな大規模アップデートがあるとワクワクする人なのでしょうか?
絶望せず、「何ができるようになったんだろう!凄い!こんな事やあんな事が出来る!」みたいな人も居ましたか?
かなり難しかったです。でもJavaScriptは比較的簡単な言語なんですよね?
ES6以降のJavaScriptでもやっぱり簡単なんですか?
それとES6で大規模アップデート合った時は絶望しましたか?
勉強していて苦しんだのがスコープ、this、反復処理の背景(iteratorの動き、yieldは何をしてるか)、非同期処理(Promise、then、async)、その他様々なメソッド、静的メソッド、、、
これら全てES6から導入されましたよね?絶望しませんでしたか?
例えば私がもしES5までのJavaScriptに慣れ親しんでいてES6のアップデートに触れたら絶対絶望してました。概要見ても「?????」となってたはずです
プログラミングに向いてる人はこんな大規模アップデートがあるとワクワクする人なのでしょうか?
絶望せず、「何ができるようになったんだろう!凄い!こんな事やあんな事が出来る!」みたいな人も居ましたか?
880デフォルトの名無しさん (ワッチョイ c200-pYoK [221.118.182.138 [上級国民]])
2023/07/29(土) 08:26:35.15ID:wB1gRUiQ0 ES5までは貧弱だったのでそりゃもう大歓喜よ。
それと現代のJavaScript(を使いこなすの)はもはや簡単な部類じゃないように思う。
それと現代のJavaScript(を使いこなすの)はもはや簡単な部類じゃないように思う。
881デフォルトの名無しさん (オッペケ Sr91-xmUq [126.254.133.95])
2023/07/29(土) 09:45:27.72ID:ZQ+RMRi1r 苦しみとか絶望とか>>879は言語の習得を学校の勉強と同じようなものとしか捉えてないフシがある
日本史の勉強範囲が大政奉還までだと思ったら第二次大戦までだった!みたいな感覚
新しく覚えたことは実際のプログラミングで活かせるんだという意識が全く感じられない
日本史の勉強範囲が大政奉還までだと思ったら第二次大戦までだった!みたいな感覚
新しく覚えたことは実際のプログラミングで活かせるんだという意識が全く感じられない
882デフォルトの名無しさん (アウアウウー Sac5-HZc/ [106.130.201.25])
2023/07/29(土) 14:21:53.16ID:LQ1ElLyya883デフォルトの名無しさん (アウアウウー Sac5-HZc/ [106.130.201.25])
2023/07/29(土) 14:27:58.50ID:LQ1ElLyya try,catch,finally文の存在異議が分からなかったけど、今さっき急にasync/awaitのエラーハンドリングに向いてるのに気が付きました
つまりthen,catchのPromiseチェーンをより楽に書けるのに今さっき気が付きました。こんな感じで上手くいかないですね
つまりthen,catchのPromiseチェーンをより楽に書けるのに今さっき気が付きました。こんな感じで上手くいかないですね
884デフォルトの名無しさん (ワッチョイ c200-pYoK [221.118.182.138 [上級国民]])
2023/07/29(土) 15:03:53.70ID:wB1gRUiQ0 .then().catch()の方が綺麗に書けて(副作用的な意味で)好きだなぁ
885デフォルトの名無しさん (ワッチョイ c6bd-g4Mn [119.240.43.146])
2023/07/30(日) 02:24:04.00ID:oecUblNe0 >>879
言語として簡単かっていうとどうだろうね。
Webブラウザがあれば動かせる上にデバッグ環境まで付いてるから、誰でもすぐ始められるし、作ったものをどこででも動かしてもらえるという手軽さはあると思うけど。
言語として簡単かっていうとどうだろうね。
Webブラウザがあれば動かせる上にデバッグ環境まで付いてるから、誰でもすぐ始められるし、作ったものをどこででも動かしてもらえるという手軽さはあると思うけど。
886デフォルトの名無しさん (ワッチョイ 095f-kJnY [14.8.104.32])
2023/07/30(日) 14:24:24.68ID:av5XIWe10 自分はプロトタイプ型オブジェクト指向から入ったから気にならないけどクラス型でプログラム書いてた人は違和感凄いんだろうな
あとクロスブラウザ対応しなきゃいけなかった人達もJSはしんどかったんだろうなと想像
あとクロスブラウザ対応しなきゃいけなかった人達もJSはしんどかったんだろうなと想像
887デフォルトの名無しさん (ワッチョイ e94b-C8We [110.2.215.28 [上級国民]])
2023/08/04(金) 01:16:43.56ID:LzfYm8xL0 rd41 = "";
alert (rd41);
これで「rd41は未定義です」ってエラーは出ますか?
alert(rd41);
これだけだと「rd41は未定義です」ってエラーが出ますよね
実際のコードはalertでは無いのですが、rd41に無を代入して何も表示させたくないのです
rd41 = null;
だと、nullと表示されてしまいます
alert (rd41);
これで「rd41は未定義です」ってエラーは出ますか?
alert(rd41);
これだけだと「rd41は未定義です」ってエラーが出ますよね
実際のコードはalertでは無いのですが、rd41に無を代入して何も表示させたくないのです
rd41 = null;
だと、nullと表示されてしまいます
888デフォルトの名無しさん (ワッチョイ e94b-C8We [110.2.215.28 [上級国民]])
2023/08/04(金) 01:36:14.69ID:LzfYm8xL0 chatGPTに質問したら答えが返ってきた
https://i.imgur.com/5NbJI6w.jpg
https://i.imgur.com/5NbJI6w.jpg
889デフォルトの名無しさん (ワッチョイ febd-FWk2 [49.129.241.111])
2023/08/04(金) 09:00:08.06ID:2wk44tWe0 >>887
delete を調べてみるとどうだろう。
やりたいことによってはブロックスコープで足りるかも。
個人的にはブロックスコープを活用して、変数を小まめに狭い範囲に閉じ込める書き方をおすすめしたい。
delete を調べてみるとどうだろう。
やりたいことによってはブロックスコープで足りるかも。
個人的にはブロックスコープを活用して、変数を小まめに狭い範囲に閉じ込める書き方をおすすめしたい。
890デフォルトの名無しさん (ワッチョイ a101-CknR [60.89.4.138])
2023/08/04(金) 09:14:51.09ID:TEvOuQNU0 >>887
ECMAScriptに「未定義」というエラーはない
Strict Modeで実行すれば、両コードともにReferenceErrorになるだろう
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Strict_mode
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/ReferenceError
ECMAScriptに「未定義」というエラーはない
Strict Modeで実行すれば、両コードともにReferenceErrorになるだろう
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Strict_mode
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/ReferenceError
891デフォルトの名無しさん (オッペケ Sr91-q/g9 [126.254.212.243])
2023/08/04(金) 09:37:58.66ID:EZ9l15Zsr892デフォルトの名無しさん (ワッチョイ f233-yhDR [101.141.60.18])
2023/08/14(月) 23:07:53.97ID:QNJSoVjn0 時報みたいなのを作成中でそのhtmlのページさえ開いておけば
9時、12時、18時(プリセットとかは無く固定)に特定のwavサウンドファイルがaudioElement.play() で再生される用にしています
(タブが非アクティブだとなんか動かない時があったのでwindow.openで表示させてます)
chromeのポリシーみたいなのでユーザーが明示的なアクションをしないと音声の自動再生はされないみたいで
それの良い回避策ってありますか?
実用性考えると携帯のアラームが百倍使いやすいけど
自分用にチープなのを作って遊んでるんだけど解決策が思いつかなくて・・・
9時、12時、18時(プリセットとかは無く固定)に特定のwavサウンドファイルがaudioElement.play() で再生される用にしています
(タブが非アクティブだとなんか動かない時があったのでwindow.openで表示させてます)
chromeのポリシーみたいなのでユーザーが明示的なアクションをしないと音声の自動再生はされないみたいで
それの良い回避策ってありますか?
実用性考えると携帯のアラームが百倍使いやすいけど
自分用にチープなのを作って遊んでるんだけど解決策が思いつかなくて・・・
893デフォルトの名無しさん (ワッチョイ 1f4b-uBRt [110.2.215.28 [上級国民]])
2023/08/15(火) 01:53:58.77ID:Efj8IW440894デフォルトの名無しさん (ワッチョイ 7e63-SF+K [153.218.139.115])
2023/08/21(月) 00:13:21.70ID:v7lFaH3H0 【環境】Windows 11, Chrome最新版
【何をしたのか】PHPで動的に出力されたテキストに replace (new RegExp)
【エラーメッセージ】コンソールには何も出ません
【期待する結果】ページ内に複数生成される動的クラス内テキストを置換したい
【サンプルコード】
<p class="tx-body">おはようございます*2023.08.15</p><span clas="tx-date">0000</span>
<p class="tx-body">ごきげんよう*2023.08.20</p><span clas="tx-date">0000</span>
・
・
tx-dateクラスの中身をtx-bodyの*以降の文字列に置き換えたく、以下を<body>の後半に書きましたが期待する置換変化が起きません、エラーも出ません、
根本的なところわかっていないのだと思うので恐縮ですがお手上げ状態です
window.addEventListener('load', function() {
const ItemList = document.getElementsByClassName("tx-body");
const ItemDate = document.getElementsByClassName("x-date");
for(i=0; i<ItemList.length; i++) {
var tBody = ItemList.item(i).textContent;
var tDate = ItemDate.item(i).textContent;
var replaceDate = tBody .split("*")[1];
tDate = tDate.replace(new RegExp(replaceDate,'g'),'');
}
})
以上ご指導よろしくおねがします
【何をしたのか】PHPで動的に出力されたテキストに replace (new RegExp)
【エラーメッセージ】コンソールには何も出ません
【期待する結果】ページ内に複数生成される動的クラス内テキストを置換したい
【サンプルコード】
<p class="tx-body">おはようございます*2023.08.15</p><span clas="tx-date">0000</span>
<p class="tx-body">ごきげんよう*2023.08.20</p><span clas="tx-date">0000</span>
・
・
tx-dateクラスの中身をtx-bodyの*以降の文字列に置き換えたく、以下を<body>の後半に書きましたが期待する置換変化が起きません、エラーも出ません、
根本的なところわかっていないのだと思うので恐縮ですがお手上げ状態です
window.addEventListener('load', function() {
const ItemList = document.getElementsByClassName("tx-body");
const ItemDate = document.getElementsByClassName("x-date");
for(i=0; i<ItemList.length; i++) {
var tBody = ItemList.item(i).textContent;
var tDate = ItemDate.item(i).textContent;
var replaceDate = tBody .split("*")[1];
tDate = tDate.replace(new RegExp(replaceDate,'g'),'');
}
})
以上ご指導よろしくおねがします
895デフォルトの名無しさん (スッップ Sdca-jTH6 [49.98.168.137])
2023/08/21(月) 11:40:28.26ID:cB09UaOod >>894
まずconsole.log()や開発者ツールを使って自分の書いたコードがどこまで想定通りに動いてるか確認してみよう
まずconsole.log()や開発者ツールを使って自分の書いたコードがどこまで想定通りに動いてるか確認してみよう
896デフォルトの名無しさん (ワッチョイ 534b-ubuk [110.2.215.28 [上級国民]])
2023/08/21(月) 11:51:22.81ID:7Ts4WfMN0 >>894
コードを見る限り、置換を行うためのコードは一見正しく見えますが、複数の潜在的な問題が考えられます。まず、コード内のいくつかのポイントをチェックしてみましょう。
1. **クラス名のスペル**: `tx-date` クラスが正しく `x-date` クラスになっているか確認してください。
2. **期待する置換変化の確認**: 期待する置換変化がどのようなものか確認してみてください。コード内で `tDate` の内容を `console.log()` を使って出力し、実際の値が正しいか確認できます。
3. **変数 `replaceDate` の設定**: `tBody.split("*")[1]` の部分で、正しい位置に `*` が存在しているか確認してください。`split()` メソッドは対象の文字列を指定の文字で区切って配列にしますが、もし `*` が存在しない場合、期待通りの結果が得られない可能性があります。
4. **置換操作の適用**: `tDate` に対して行った置換操作が、実際のDOM要素に反映されていない可能性があります。`tDate` の内容を変更した後、対応するDOM要素の内容を更新するコードが不足しているようです。
これらのチェックポイントを確認した上で、コードを修正するか、デバッグすることをお勧めします。また、具体的なサンプルHTMLコードや置換の例を提供していただければ、より具体的なアドバイスを提供できるかもしれません。
コードを見る限り、置換を行うためのコードは一見正しく見えますが、複数の潜在的な問題が考えられます。まず、コード内のいくつかのポイントをチェックしてみましょう。
1. **クラス名のスペル**: `tx-date` クラスが正しく `x-date` クラスになっているか確認してください。
2. **期待する置換変化の確認**: 期待する置換変化がどのようなものか確認してみてください。コード内で `tDate` の内容を `console.log()` を使って出力し、実際の値が正しいか確認できます。
3. **変数 `replaceDate` の設定**: `tBody.split("*")[1]` の部分で、正しい位置に `*` が存在しているか確認してください。`split()` メソッドは対象の文字列を指定の文字で区切って配列にしますが、もし `*` が存在しない場合、期待通りの結果が得られない可能性があります。
4. **置換操作の適用**: `tDate` に対して行った置換操作が、実際のDOM要素に反映されていない可能性があります。`tDate` の内容を変更した後、対応するDOM要素の内容を更新するコードが不足しているようです。
これらのチェックポイントを確認した上で、コードを修正するか、デバッグすることをお勧めします。また、具体的なサンプルHTMLコードや置換の例を提供していただければ、より具体的なアドバイスを提供できるかもしれません。
897デフォルトの名無しさん (スッップ Sdca-jTH6 [49.98.168.137])
2023/08/21(月) 12:25:10.86ID:cB09UaOod このワッチョイ **4bは質問スレにchatGPTの回答貼るだけのボットみたいなもんだからスルー推奨
NG入れといてもいい
NG入れといてもいい
898デフォルトの名無しさん (アウアウウー Sa7f-7wIC [106.133.165.90])
2023/08/22(火) 23:04:06.56ID:rPfWctd8a 2か所とも、clas="tx-date" になっている!
class でしょ
class でしょ
899898 (アウアウウー Sa7f-7wIC [106.133.165.90])
2023/08/22(火) 23:12:31.83ID:rPfWctd8a >const ItemDate = document.getElementsByClassName("x-date");
x-date は、tx-date じゃないの?
x-date は、tx-date じゃないの?
900898 (アウアウウー Sa7f-7wIC [106.133.165.90])
2023/08/23(水) 00:10:28.94ID:B78POXf5a 一旦、要素 tDate_elem を取得しておいてから、
その textContent に値を設定する。
つまり更新
const tBody = ItemList.item(i).textContent;
const tDate_elem = ItemDate.item(i) // 要素
const tDate = tDate_elem.textContent;
console.log( tDate ); //=> 0000
const replaceDate = tBody.split("*")[1];
console.log( replaceDate ); //=> 2023.08.15
tDate_elem.textContent = replaceDate; // 設定
表示
おはようございます*2023.08.15
2023.08.15
ごきげんよう*2023.08.20
2023.08.20
その textContent に値を設定する。
つまり更新
const tBody = ItemList.item(i).textContent;
const tDate_elem = ItemDate.item(i) // 要素
const tDate = tDate_elem.textContent;
console.log( tDate ); //=> 0000
const replaceDate = tBody.split("*")[1];
console.log( replaceDate ); //=> 2023.08.15
tDate_elem.textContent = replaceDate; // 設定
表示
おはようございます*2023.08.15
2023.08.15
ごきげんよう*2023.08.20
2023.08.20
901デフォルトの名無しさん (スプッッ Sd6a-jTH6 [1.75.209.193])
2023/08/23(水) 10:39:07.30ID:oZ78uDd8d902898 (アウアウウー Sa7f-7wIC [106.146.101.215])
2023/08/23(水) 19:53:27.23ID:ktllvUDta jQuery なら、もっと簡単
$( function ( ) {
$('.tx-body').each(function (index, elem) {
const tx_body = $(elem);
console.log(index + ': ' + tx_body.text());
const replaceDate = tx_body.text().split("*")[1];
console.log(replaceDate);
// tx_body 要素の次の兄弟で、tx-date クラスがある要素。絞り込み
const tx_date = tx_body.next('.tx-date');
console.log(index + ': ' + tx_date.text());
console.log('tx_date.length: ' + tx_date.length); // 0 or 1
// 該当する要素があれば設定する。つまり更新
if (tx_date.length === 1) {
tx_date.text(replaceDate);
}
});
} );
$( function ( ) {
$('.tx-body').each(function (index, elem) {
const tx_body = $(elem);
console.log(index + ': ' + tx_body.text());
const replaceDate = tx_body.text().split("*")[1];
console.log(replaceDate);
// tx_body 要素の次の兄弟で、tx-date クラスがある要素。絞り込み
const tx_date = tx_body.next('.tx-date');
console.log(index + ': ' + tx_date.text());
console.log('tx_date.length: ' + tx_date.length); // 0 or 1
// 該当する要素があれば設定する。つまり更新
if (tx_date.length === 1) {
tx_date.text(replaceDate);
}
});
} );
903デフォルトの名無しさん (アウアウエー Sa22-NwC7 [111.239.174.98])
2023/08/25(金) 21:08:52.47ID:+90wXQAMa chrome拡張どう作ったらいいのでしょう?
こんな感じではリダイレクトが連続してしまってだめでした
urlsのフィルターの仕方、もしくはリダイレクトをせずにそのURLにアクセスする方法が分かれば解決できるとは思うのですが・・・
//aaa.com/xxxx/ へのアクセスを aaa.com/abc/xxx/ へ変換したい (以下は動作しない)
chrome.webRequest.onBeforeRequest.addListener(
function(details)
{
if (details.url.match(/abc/))
{
return {}; //←ここを書き換える方法が分かればいける
}
else
{
details.url = details.url.replace(/aaa.com/g,"aaa.com/abc");
return {redirectUrl: details.url };
}
},
{
urls: [ "*://aaa.com/*/" ], //←ここを書き換える方法が分かればいける
},
["blocking"]
);
こんな感じではリダイレクトが連続してしまってだめでした
urlsのフィルターの仕方、もしくはリダイレクトをせずにそのURLにアクセスする方法が分かれば解決できるとは思うのですが・・・
//aaa.com/xxxx/ へのアクセスを aaa.com/abc/xxx/ へ変換したい (以下は動作しない)
chrome.webRequest.onBeforeRequest.addListener(
function(details)
{
if (details.url.match(/abc/))
{
return {}; //←ここを書き換える方法が分かればいける
}
else
{
details.url = details.url.replace(/aaa.com/g,"aaa.com/abc");
return {redirectUrl: details.url };
}
},
{
urls: [ "*://aaa.com/*/" ], //←ここを書き換える方法が分かればいける
},
["blocking"]
);
904デフォルトの名無しさん (アウアウウー Sa47-rTQJ [106.146.72.134])
2023/08/26(土) 04:11:22.52ID:wsJDYSi/a 「chrome.webRequest.onBeforeRequest」で検索!
webRequest
https://developer.mozilla.org/ja/docs/Mozilla/Add-ons/WebExtensions/API/webRequest
webRequest
https://developer.mozilla.org/ja/docs/Mozilla/Add-ons/WebExtensions/API/webRequest
905デフォルトの名無しさん (アウアウエー Sa5f-/No0 [111.239.174.98])
2023/08/26(土) 12:48:58.33ID:mvAl1l0Ba そこ見てどうすればいいのか分からないからここに来た・・・
906デフォルトの名無しさん (スッップ Sd9f-oH/7 [49.98.169.249])
2023/08/26(土) 17:41:19.65ID:/LQp1jGld return detail.documentUrl
とか?
とか?
907デフォルトの名無しさん (アウアウエー Sa5f-/No0 [111.239.174.98])
2023/08/26(土) 18:56:03.08ID:mvAl1l0Ba return detail.documentUrl;
return {redirectUrl: detail.documentUrl};
どちらもダメ。リダイレクトのURLを返すことになるから、リダイレクトの無限ループに入っちゃう
それなら、リダイレクト止めればいいじゃんって思うんだけど
return {cancel: true};
のようにするとナビゲーション自体が止まってアクセスできなくなっちゃう
return {redirectUrl: detail.documentUrl};
どちらもダメ。リダイレクトのURLを返すことになるから、リダイレクトの無限ループに入っちゃう
それなら、リダイレクト止めればいいじゃんって思うんだけど
return {cancel: true};
のようにするとナビゲーション自体が止まってアクセスできなくなっちゃう
908デフォルトの名無しさん (ワッチョイ cf8a-cMf3 [153.207.237.45])
2023/08/26(土) 19:46:44.48ID:HE/rWC1F0 空のオブジェクト返せばいいんじゃないの?
こんなの見て参考にしては?
https://gitlab.com/ClearURLs/ClearUrls/-/blob/master/clearurls.js?ref_type=heads
こんなの見て参考にしては?
https://gitlab.com/ClearURLs/ClearUrls/-/blob/master/clearurls.js?ref_type=heads
909デフォルトの名無しさん (ワッチョイ e361-NWkk [180.15.228.252])
2023/08/26(土) 21:15:33.19ID:AeqeuiS+0 無限ループしてるって事は条件分岐失敗してるんじゃないの?
console.logデバッグでもしてみたら?
console.logデバッグでもしてみたら?
910デフォルトの名無しさん (オッペケ Sre7-bab6 [126.212.162.196])
2023/08/27(日) 12:33:38.16ID:QiCv/PxZr911デフォルトの名無しさん (ワッチョイ cf63-n242 [153.218.137.10])
2023/09/03(日) 21:37:03.60ID:0BSqvC2P0 サイト内にフォームが設置してあるページが複数あります
お問い合わせ、新規登録、ログイン、パスワードリマインド、などです
一時的に inputタグを入力不可にしたのですが
querySelectorAll("input,button").forEach( e => e.disabled = true );
複数あるページのうちお問合せだけは入力できるように、
現在は下記の効率の悪い記述になっています、、
document.querySelectorAll("#contact input, #contact button").forEach( e => e.disabled = false);
それぞれのページの<body>に idを付与していてそれで判別しているのですが
<body id="contact">
<body id="login">
<body id="remainder">
もっとスマートにお問い合わせページだけ入力できる
ヒントをお願いできませんでしょうか?
お問い合わせ、新規登録、ログイン、パスワードリマインド、などです
一時的に inputタグを入力不可にしたのですが
querySelectorAll("input,button").forEach( e => e.disabled = true );
複数あるページのうちお問合せだけは入力できるように、
現在は下記の効率の悪い記述になっています、、
document.querySelectorAll("#contact input, #contact button").forEach( e => e.disabled = false);
それぞれのページの<body>に idを付与していてそれで判別しているのですが
<body id="contact">
<body id="login">
<body id="remainder">
もっとスマートにお問い合わせページだけ入力できる
ヒントをお願いできませんでしょうか?
912デフォルトの名無しさん (ワッチョイ 4327-g4sH [164.70.253.210])
2023/09/03(日) 21:48:21.38ID:qR1Ry2o90 【環境】windows10 chrome 最新版
【何をしたのか】開発ツールコンソール上でサンプルコードを実行すると
条件文が undefined にもかかわらず if 文内 console.log(1) が実行される
【エラーメッセージ】なし
【期待する結果】 なぜこうなるのか理由が知りたいです
【サンプルコード】
console.log(localStorage && (localStorage.getItem('deck')));
if(localStorage && (localStorage.getItem('deck'))) console.log(1)
if(undefined) console.log(2)
【何をしたのか】開発ツールコンソール上でサンプルコードを実行すると
条件文が undefined にもかかわらず if 文内 console.log(1) が実行される
【エラーメッセージ】なし
【期待する結果】 なぜこうなるのか理由が知りたいです
【サンプルコード】
console.log(localStorage && (localStorage.getItem('deck')));
if(localStorage && (localStorage.getItem('deck'))) console.log(1)
if(undefined) console.log(2)
913デフォルトの名無しさん (ワッチョイ 8361-yzHn [180.15.227.160])
2023/09/03(日) 23:01:09.12ID:zsKKxMoe0 >>912
console.log(localStorage && (localStorage.getItem('deck')));
の結果は本当にundefined?、undefinedの上の行に何か表示されてるよね?
console.log(localStorage && (localStorage.getItem('deck')));
の結果は本当にundefined?、undefinedの上の行に何か表示されてるよね?
914デフォルトの名無しさん (ブーイモ MM7f-sgzH [133.159.150.82])
2023/09/03(日) 23:17:01.93ID:II4MkDPZM915デフォルトの名無しさん (ブーイモ MM7f-sgzH [133.159.150.82])
2023/09/03(日) 23:33:36.04ID:II4MkDPZM >>912
下記のログ出力はどうなる?
console.log(localStorage.getItem('deck') !== undefined ? 'バカめ!!よく確認しろ!!' : 'undefined です');
下記のログ出力はどうなる?
console.log(localStorage.getItem('deck') !== undefined ? 'バカめ!!よく確認しろ!!' : 'undefined です');
916デフォルトの名無しさん (ワッチョイ 4327-g4sH [164.70.253.210])
2023/09/04(月) 13:53:40.48ID:R0PWdUab0917デフォルトの名無しさん (ブーイモ MM7f-gLHL [133.159.151.54])
2023/09/04(月) 14:44:17.50ID:0gdMzEOZM getItemは該当キーに対する値がなければundefinedではなくnullを返すのでlocalStorageが存在していれば
console.log(localStorage && (localStorage.getItem('deck')));は
null
undefined
と出力される
undefinedの上が空行になってるならdeckに対する値が入ってる
それが空文字ならfalsyなのでconsole.log(1)は実行されない
truthyな不可視文字(例えば改行コード)が入っていればconsole.log(1)も実行される
inspectやencodeURIで中身に何が入ってるか確かめればはっきりさる
console.log(localStorage && (localStorage.getItem('deck')));は
null
undefined
と出力される
undefinedの上が空行になってるならdeckに対する値が入ってる
それが空文字ならfalsyなのでconsole.log(1)は実行されない
truthyな不可視文字(例えば改行コード)が入っていればconsole.log(1)も実行される
inspectやencodeURIで中身に何が入ってるか確かめればはっきりさる
918デフォルトの名無しさん (ブーイモ MM7f-gLHL [133.159.151.232])
2023/09/04(月) 14:45:10.48ID:I1Zu7zQTM はっきりさる!
919デフォルトの名無しさん (ワッチョイ 4327-g4sH [164.70.253.210])
2023/09/04(月) 15:37:52.51ID:R0PWdUab0 あー わかりました
"undefined" っていう文字列がすでに入っちゃってたみたいです
丁寧に回答いただいてありがとうございました!
"undefined" っていう文字列がすでに入っちゃってたみたいです
丁寧に回答いただいてありがとうございました!
920デフォルトの名無しさん (ワッチョイ cf63-0HOd [153.218.137.10])
2023/09/04(月) 15:59:10.40ID:KQbfSHx50 ウキキ🐒
input セレクタで解決しましたカッコイイ記述ありがとうございます
input セレクタで解決しましたカッコイイ記述ありがとうございます
921デフォルトの名無しさん (オッペケ Sr07-JKlf [126.255.138.111])
2023/09/05(火) 12:01:10.43ID:y2XoXHZcr >【何をしたのか】開発ツールコンソール上でサンプルコードを実行すると
>条件文が undefined にもかかわらず if 文内 console.log(1) が実行される
不可解な挙動に遭遇したとき、自分が何か勘違いしてないかまずそこを疑ってみようという教訓
あとtruthyやfalsyな値の取り扱いは慎重に
>条件文が undefined にもかかわらず if 文内 console.log(1) が実行される
不可解な挙動に遭遇したとき、自分が何か勘違いしてないかまずそこを疑ってみようという教訓
あとtruthyやfalsyな値の取り扱いは慎重に
922デフォルトの名無しさん (ワッチョイ 2901-pIYl [60.114.101.121])
2023/09/28(木) 14:42:04.81ID:Pzc86hhG0 ほんまに、助かったで!
923デフォルトの名無しさん (ワッチョイ 454b-wchx [110.2.215.28])
2023/10/04(水) 23:59:59.93ID:77DZdeZo0 if(rd41.value){
dofn()
}
これが正しく実行されないのですが(暴走するというか、意味不明な実行結果が現れます)、if文の中で関数の呼び出しは出来ないのでしょうか?
もしそうなら、このコードを正しく動作するように書き換えることは出来ますか?
dofn()
}
これが正しく実行されないのですが(暴走するというか、意味不明な実行結果が現れます)、if文の中で関数の呼び出しは出来ないのでしょうか?
もしそうなら、このコードを正しく動作するように書き換えることは出来ますか?
924923 (ワッチョイ 454b-wchx [110.2.215.28])
2023/10/05(木) 02:54:19.96ID:pCa3KI6i0 普通に動作しました
すみません
すみません
925デフォルトの名無しさん (ワッチョイ 9f05-cJ9m [116.94.11.103])
2023/10/16(月) 00:30:39.82ID:tJl0Ngd50 質問です
下記のURLは音楽サイトJangoの再生ページURLです
https://www.jango.com/stations/400536192/tunein
https://www.jango.com/stations/397649609/tunein
https://www.jango.com/stations/272072365/tunein
これらのページをブラウザで開いた時に出てくる水色のメッセージ
パネルをJavaScriptで閉じる方法を教えてください
Jango plays unlimited music for free and with no commercials.
というメッセージの右隣にある[×]マークをクリックしたいのですが
document.getElementsByClassName("MuiAlert-action")[0].click()
では上手くクリックすることができませんでした
下記のURLは音楽サイトJangoの再生ページURLです
https://www.jango.com/stations/400536192/tunein
https://www.jango.com/stations/397649609/tunein
https://www.jango.com/stations/272072365/tunein
これらのページをブラウザで開いた時に出てくる水色のメッセージ
パネルをJavaScriptで閉じる方法を教えてください
Jango plays unlimited music for free and with no commercials.
というメッセージの右隣にある[×]マークをクリックしたいのですが
document.getElementsByClassName("MuiAlert-action")[0].click()
では上手くクリックすることができませんでした
926デフォルトの名無しさん (ワッチョイ 2e76-tQak [247.119.160.34])
2023/10/16(月) 00:54:14.00ID:SqBXoLFp0 document.querySelectorAll(“.MuiDialog-container,.MuiBackdrop-root”).forEach(e => e.remove())
927デフォルトの名無しさん (ワッチョイ 9f05-cJ9m [116.94.11.103])
2023/10/16(月) 08:33:51.49ID:tJl0Ngd50928デフォルトの名無しさん (ワッチョイ e25c-CexO [211.121.28.151])
2023/10/16(月) 09:38:31.66ID:9MW6cr+O0 document.querySelector(".MuiSnackbar-anchorOriginTopCenter").remove()
929デフォルトの名無しさん (ワッチョイ 9f05-cJ9m [116.94.11.103])
2023/10/16(月) 10:55:49.91ID:tJl0Ngd50 >>928
すいません、それもダメみたいです
すいません、それもダメみたいです
930デフォルトの名無しさん (ワッチョイ 9f05-cJ9m [116.94.11.103])
2023/10/16(月) 11:01:33.63ID:tJl0Ngd50 ブラウザ上の全然関係ない場所をクリックして自己解決しました
document.elementFromPoint(1, 1).click()
根本的な問題から逃げたようで悔しいですけどw
document.elementFromPoint(1, 1).click()
根本的な問題から逃げたようで悔しいですけどw
931デフォルトの名無しさん (ワッチョイ c705-4hWW [210.203.192.54])
2023/10/24(火) 20:00:13.55ID:xAzUmtPF0932デフォルトの名無しさん (ワッチョイ 877c-JmE3 [122.212.18.110])
2023/10/25(水) 13:36:08.76ID:JRNrMb5/0 名前付き引数としてプロパティをもつオブジェクトを引数にする場合のJSDocの書き方ってどう書くのが正しいのでしょうか?
ネットで調べて以下の画像のように書くと、VSCodeで関数の説明で表示される時にプロパティ側の日本後説明部分が表示されません。
http://imgur.com/xhSQcMc.png
構文のほうには型は反映されてるので読み込めてはいるようなのですが…
ネットで調べて以下の画像のように書くと、VSCodeで関数の説明で表示される時にプロパティ側の日本後説明部分が表示されません。
http://imgur.com/xhSQcMc.png
構文のほうには型は反映されてるので読み込めてはいるようなのですが…
レス数が900を超えています。1000を超えると表示できなくなるよ。
ニュース
- 日本の立場説明へ…外務省局長が北京到着 “台湾有事”首相答弁に中国反発 ★3 [煮卵★]
- 国内ホテル、既にキャンセルも 訪日客関連業界、事態見守る ★2 [蚤の市★]
- NHK、受信料の未払い世帯に督促強化へ 民事手続きの新組織を設置 差し押さえなどの強制執行も [1ゲットロボ★]
- 【日本大使館】中国在留邦人は安全確保を [ぐれ★]
- 【外交】日中関係悪化、長期化の様相 2012年には自動車輸出80%減も ロイター★2 [1ゲットロボ★]
- 【野球】井端監督 大谷翔平、山本由伸らのWBCへの参加 「1日も早く返事ほしい」「待っててといっても、国内組が遅くなってしまう」★3 [冬月記者★]
- 【悲報】女性初の総理大臣 高市早苗氏、安倍晋三さんが積み上げてきたものを一瞬でぶっ壊してしまう😱wwwwwwwwwwwwwwwwwwwwww [871926377]
- トランプ聖帝「中国を倒すのではなく協力することでアメリカは強くなる!MAGA!」 高市どうすんのこれ… [878970802]
- 愛国者ナザレンコ「左翼は自己中な差別主義者で偽善者。日本人ファーストを叩いておいて台湾人が死んでも知らな〜いでしょ。中露の犬」 [856698234]
- 【高市悲報】お米券、予算効率が極悪!額面440円を500円で取得。1割以上手数料。これに事務費かけたらムダばかり。マイナ口座で良いだろ [219241683]
- 【悲報】有名ウヨ論客、「現実的に考えて中国と仲直りするしかなくね?」と言ったら野良ウヨから総叩きにあう [856698234]
- 【高市悲報】経団連会長、高市と面談「おい!ちゃんと中国と対話しろよ!😨」 [359965264]
