JavaScript の質問用スレッド vol.126 (308レス)
1-

126
(1): (ワッチョイ fd09-tjaG [210.131.245.99]) 2024/02/05(月)09:44 ID:Q9Y3g4UN0(1) AAS
node.jsの良さはJavaScriptでプログラミングできる事
Electron使えばUIもHTMLで書けるので便利
なれたらJavaScriptでデスクトップアプリを書くのが楽しくなった
127: (ワッチョイ abcf-aUy2 [2001:240:242f:19bc:* [上級国民]]) 2024/02/05(月)15:57 ID:thNH7tNN0(1) AAS
>>126
Electronはファイルがデカいから
俺が何か作る時はCLI一択だわ

対話的な物作る時は
Tauriで作ってみたいなぁと思う
128: (ワッチョイ 9bea-EeOY [2400:2200:395:1aae:*]) 2024/02/05(月)18:19 ID:1m9RfVzn0(1) AAS
>>118
Visual Studio Codeがjavascriptで作られている
129: (アウアウエー Sa13-25ln [111.239.175.167]) 2024/02/05(月)19:17 ID:+Fh+RIwSa(1) AAS
vscodeが糞な理由が分かった気がした
130: (ワッチョイ 436c-OKLl [240b:12:6820:b000:*]) 2024/02/06(火)07:31 ID:JsprpZ5q0(1) AAS
ElectronとAngularで作られてるシステム見させてもらったんだけど、reactに書き換えるって言ってたな

ならnativeでよくね?
131: (ラクッペペ MMcb-0t4v [133.106.91.72]) 2024/02/06(火)14:51 ID:nsw90RpoM(1) AAS
reactとreact nativeって書き換えが必要なの?
ゴミかな?
132: (ワッチョイ bd43-tydm [114.148.57.9]) 2024/02/06(火)15:07 ID:4bvVpi0E0(1) AAS
>>0127
TauriはWebViewなので
Electronの様にWebRequestを簡単に操れない
Rustに拘らないのなら
使い慣れた開発言語でWebViewを組み込んだ方が手っ取り早い
133: (ワッチョイ d58a-MO48 [2001:268:9ae3:e45c:*]) 2024/02/07(水)01:01 ID:8Eizk2eA0(1) AAS
YouTube 動画で見たけど、

北米では、Flutter よりも、React Native が多いらしい
134: (ワッチョイ fd09-tydm [210.131.245.99]) 2024/02/07(水)10:23 ID:Q0zrTHJg0(1) AAS
JavaScriptで書ける環境の話から
かなり脱線気味
135: (ワッチョイ 3743-5kwM [60.32.26.124]) 2024/02/11(日)13:06 ID:4EmF6N4v0(1) AAS
業務がWebアプリなのは危険だと言い出した管理職がいて
Electronでチャチャとデスクトップソフト風にしたら
仕事が早いとお褒めいただいたw
何も変わっちゃいなんだけれどそれはナイショ
136: (ワッチョイ 0e46-9m7S [2001:240:242e:628f:*]) 2024/02/11(日)14:27 ID:cAyMWgFh0(1) AAS
危険だという懸念が素人の無理解から来てるだけなのか妥当な懸念なのか分からないから何とも言えんな
前者なら悪くない回避策
137: (ワッチョイ 7702-yee3 [124.208.87.61]) 2024/02/11(日)21:47 ID:VNWSIW9O0(1) AAS
ブラウザのアドインに情報吸われる危険性は下がるね
138: (ワッチョイ 2279-8TQs [61.192.207.171]) 2024/02/11(日)23:27 ID:Z05z2D4x0(1) AAS
まあ一般的に考えて危険やな
その認識は正しいさすが管理職
139: (ワッチョイ f7cc-5xY/ [2400:2200:7b8:65d5:*]) 2024/02/12(月)12:55 ID:3q7oTZTX0(1) AAS
管理職が正しい
どんなに堅牢なシステムでも狙われたら終わり
だから今はクラウドじゃなくてオンプレ回帰してる
140: (ワッチョイ 025c-Rmwz [211.3.240.74]) 2024/02/12(月)15:27 ID:2z81MgsB0(1) AAS
もうネット使うなよ
141: (ワッチョイ a3e0-uTAv [2404:7a82:3de0:3500:*]) 2024/02/12(月)15:53 ID:BAGnA5Sa0(1) AAS
Access でいいよ
142
(2): (スッププ Sd42-hHXc [49.105.71.123]) 2024/02/17(土)10:17 ID:eAolMzZEd(1/2) AAS
VBAとC#でちょくちょくアプリ作ってる程度のもんなんですけど
最近VS Code使ってjavascriptの勉強始めたわけですよ
デフォルトの環境で扱ってる限り、typoの指摘が甘くて気づくのに時間かかってしまってつらいです
Visual StudioでC#つかってるとかなり丁寧に指摘してくれるんで助かるんですが
Codeはその辺厳しいですね

Code Spell Checkerを入れてみたんですけど、よさそうな対策は他にありますか?
143
(1): (ワッチョイ e200-JaQ4 [221.118.182.146]) 2024/02/17(土)10:48 ID:Hugfzc2R0(1) AAS
JSはデフォだとどんなパラメータも持ちうるのでtypoを機械的に見つけにくい言語。
なのでjsdocゴリゴリ書く(もっとやるなら@ts-checkも)かTypeScript使うと良いよ
144: (スッププ Sd42-hHXc [49.105.71.123]) 2024/02/17(土)14:57 ID:eAolMzZEd(2/2) AAS
>>143
ありがとうございます
TypeScriptも視野にいれてちょい調べてみます
145: (ワッチョイ f7d7-bM9J [240b:12:203:6300:* [上級国民]]) 2024/02/17(土)15:05 ID:MLAS2UwQ0(1) AAS
>>142
VSと比較するならWebStormじゃなきゃ辛いし
VSCodeのままでもLSPなりで魔改造すれば頑張れるやろ
146: (ワッチョイ a2ec-zkg8 [2400:2200:6b4:ee70:*]) 2024/02/17(土)17:54 ID:3rmfz0Aa0(1) AAS
>>142の言うtypoが具体的にどんなのか気になる
厳しいのはCodeじゃなくてJavaScriptなのを誤解してそう
147: (ワッチョイ 47f1-bM9J [2001:240:247a:6078:* [上級国民]]) 2024/02/17(土)18:56 ID:snWQTW2N0(1) AAS
JSもDataflow Proposalsが導入されたら
普通に使い続けるんだがなぁ
148
(1): (ワッチョイ 7310-HqFJ [180.12.82.129]) 2024/02/19(月)18:24 ID:waVDHmuE0(1) AAS
マウスボタンを押しながらマウスを移動させてからマウスボタンを離すと
マウスボタンを離したときにmouseupだけでなくmousemoveも反応してしまうんだけど仕様ですか?
これ知らなくて動作が思うように行かなかった。
149
(1): (ワッチョイ ef5b-WqLa [2400:2200:6b5:cb6f:*]) 2024/02/20(火)00:12 ID:n1uvc9Mt0(1) AAS
手元で試したところmouseup直後に同じ座標でmousemoveが発火してるのを確認
うまく判定して後続処理が走らないようにすれば良さそうではある
150: (ワッチョイ 7310-HqFJ [180.12.82.129]) 2024/02/20(火)12:26 ID:jaWYglX60(1) AAS
>>149
ありがとうございます
そうしてみます
151: (ワッチョイ 1374-A/5V [240b:12:203:6300:* [上級国民]]) 2024/02/20(火)12:38 ID:SYHvuSDa0(1) AAS
>>148
mouseoverはマウスが何かの要素の上を移動すれば毎回出てくるから
マウスを持ってる限り常に垂れ流し続けるぞ

ドラッグアンドドロップを実装したいなら
イベント(関数発火)が非同期かつ大量に垂れ流しになること前提で組む必要がある

一案としては上のスコープで何個か変数を定義

mousedown -> 直下の要素を掴んでhold変数に放り込む
省2
152
(1): よろしくお願いいたします (スップ Sdfa-RtHD [1.72.9.18]) 2024/02/28(水)10:59 ID:j/HFCr6sd(1/4) AAS
はじめて、質問させていただきます。

今やってることはリストボックスの行を以下で選択しています。

document.getElementById('xxxx').selectedIndex = n;

PC版ブラウザではうまくいきました。しかし、モバイル版ブラウザでは1行のドロップダウンリストになってしまいます。

外部リンク:ja.stackoverflow.com
省3
153: よろしくお願いいたします (スップ Sdfa-RtHD [1.72.9.18]) 2024/02/28(水)11:00 ID:j/HFCr6sd(2/4) AAS
はじめて、質問させていただきます。

今やってることはリストボックスの行を以下で選択しています。

document.getElementById('xxxx').selectedIndex = n;

PC版ブラウザではうまくいきました。しかし、モバイル版ブラウザでは1行のドロップダウンリストになってしまいます。

外部リンク:ja.stackoverflow.com
省3
154: (ワッチョイ 470f-IZcd [2001:240:247f:f9c3:*]) 2024/02/28(水)11:09 ID:74XehS+p0(1/2) AAS
はじめて、質問させていただきます。

今やってることはリストボックスの行を以下で選択しています。

document.getElementById('xxxx').selectedIndex = n;

PC版ブラウザではうまくいきました。しかし、モバイル版ブラウザでは1行のドロップダウンリストになってしまいます。

外部リンク:ja.stackoverflow.com
省3
155: (ワッチョイ 470f-IZcd [2001:240:247f:f9c3:*]) 2024/02/28(水)11:10 ID:74XehS+p0(2/2) AAS
はじめて、質問させていただきます。

今やってることはリストボックスの行を以下で選択しています。

document.getElementById('xxxx').selectedIndex = n;

PC版ブラウザではうまくいきました。しかし、モバイル版ブラウザでは1行のドロップダウンリストになってしまいます。

外部リンク:ja.stackoverflow.com
省3
156: (スップ Sdfa-RtHD [1.72.9.18]) 2024/02/28(水)11:34 ID:j/HFCr6sd(3/4) AAS
すみません。5個書き込まれてしまいました。すみません。
157: (ワッチョイ 1314-fCbz [240b:12:203:6300:*]) 2024/02/28(水)12:19 ID:bgJbuEEB0(1) AAS
>>152
そもそもjQueryは時代遅れだから
ReactなりVue.jsなりのJSフレームワーク覚えて移行しろ
理由は>>114

誰が作ったか分からん動くかも全く保証されてないし、10年前からもうメンテすらされてない
fixForSafariMobileなんてプラグインなんて持ち出してきて
意図通りに動きませんとか動くわけないし、アドバイス出来る訳ない
省4
158
(1): 質問者 (スップ Sdfa-RtHD [1.72.9.18]) 2024/02/28(水)18:05 ID:j/HFCr6sd(4/4) AAS
レスありがとうございます。昔からあるjsやjQueryは今は時代遅れなんですね。
ただ、今回は15年動いているものの改修作業なんです。
fixForSafariMobileはjQueryソースからselectboxからlistに変換するということはわかりました。

$("selectTarget").selectValue(ul, val)で、できそうだと思ったのですが、ulで何を渡すかまでは来ました。
valからulを検索して取得してからこれなんですかね?
159: (ワッチョイ 13d2-fCbz [240b:12:203:6300:*]) 2024/02/29(木)00:27 ID:XLzCkQ6P0(1) AAS
>>158
なるほどなぁ、なら何とかツギハギで頑張ってパッチするわけか

んで、.selectValueで出来そうだと思いました!って言われても
そんなメソッドjQueryには無いぞ
外部リンク:api.jquery.com

何らかのライブラリなりで
jQueryのメソッドを拡張・追加すれば実現出来るが
省7
160: 質問者 (ワッチョイ 23e7-MEMs [118.87.46.101]) 2024/03/01(金)23:06 ID:Id25sy0k0(1/2) AAS
いろいろとありがとうございます。
161: 質問者 (ワッチョイ 23e7-MEMs [118.87.46.101]) 2024/03/01(金)23:23 ID:Id25sy0k0(2/2) AAS
やりたいこと
・プログラムのデバッガみたいなステップ実行ができるWEBで作成されたものを改修。
・スクロールしていくので、複数行リストボックスで現在行を選択表示して、実現。PC版では動く。
・しかし、モバイル版では、html形式の複数行リストボックスは1行のドロップダウンリストBOXになってしまう。

どうもこれは、モバイルの仕様なようで、実現するのは不可能ぽい。
過去にある人がjqueryで、モバイルで複数行リストボックスみたいな事は実現しているが、これはあくまでも表示のみで選択は不可。
・複数行リストボックスをリスト型で実現している。なので、Val()でも、スクロールして、選択表示できない。
省1
162: (ワッチョイ 47f6-WOak [2400:2200:714:c52d:*]) 2024/03/02(土)00:10 ID:Rcnd56Cm0(1/4) AAS
sizeが指定されているSELECTタグのdisplayをnoneにして消す
代わりに自分でsize分だけのリストなりボタンなりを追加する

これをjsでモバイル表示のときだけ実現すりゃいいんじゃない
163: 質問者 (ワッチョイ 23e7-MEMs [118.87.46.101]) 2024/03/02(土)11:13 ID:TgRbMsKE0(1/2) AAS
>代わりに自分でsize分だけのリストなりボタンなりを追加する
>これをjsでモバイル表示のときだけ実現すりゃいいんじゃない

レスありがとうございます。

データが100行あります。
今、複数行選択リストボックス(select size=25)では、25行表示できるエリアがあって、75行が隠れています。
99行目のListをスクリプトで選択(人間は選択しません。見てるだけです。)したら、自動的にそこまでスクロールしてくれます。
リスト(ul,li)ではスクロールまでしてくれず、隠れてしまって、実現はできないと思うのですが...
164
(2): 質問者 (ワッチョイ 23e7-MEMs [118.87.46.101]) 2024/03/02(土)11:46 ID:TgRbMsKE0(2/2) AAS
<html>
<select id='now_exe_prg_row' size=25>
<option value="1">プログラム1行目</option>
<option value="2">プログラム2行目</option>
:
<option value="100">プログラム100行目</option>
</select>
省3
165: (ワッチョイ 47f6-WOak [2400:2200:714:c52d:*]) 2024/03/02(土)12:45 ID:Rcnd56Cm0(2/4) AAS
無理じゃない
jsでdom操作はいくらでもできる
ul liでoptionのような動作をするカスタムのリストボックスも作成可能でcssフレームワークではよくつかう手法

そういうカスタムのWebComponentを作るといいよ

selectから情報をひっぱってきて外観をul liでカスタムコンポーネントを作り、liのクリックイベントリスナーでselect要素のselectedIndexを変更すればいい

select要素はモバイル環境ではdisplayをnoneにする
166: (ワッチョイ 47f6-WOak [2400:2200:714:c52d:*]) 2024/03/02(土)12:47 ID:Rcnd56Cm0(3/4) AAS
再利用しないのならWebComponent書くまでもなくそのままjsで書けばいい
167: (ワッチョイ 13f5-GI/N [240b:12:203:6300:* [上級国民]]) 2024/03/02(土)12:52 ID:Ac/Ek54X0(1) AAS
>>164
CSSでul > liの見栄えを調整しろ
・メディアクエリの画面横幅で適応されるCSSを切り分ける
・heightをliの25行分の高さに指定
・overflow: scrollを付けてul内でスクロール出来るようにする

CSSを見栄えを整える能力は
Webで食ってく行くならこの先ずっと使うから覚えろ
省2
168: (ワッチョイ 47f6-WOak [2400:2200:714:c52d:*]) 2024/03/02(土)13:00 ID:Rcnd56Cm0(4/4) AAS
仕事で受けてるのならこのくらいできないとヤバいぞ

カスタムコンポーネントにすれば

customListBox.size = 25
customListBox.selectIndex = 99

みたいに設定できるようにメソッド追加すると便利
169: (ワッチョイ 8f43-04EL [114.166.8.189]) 2024/03/02(土)14:29 ID:83dahe0E0(1) AAS
無理にiOSでも同じUIにする必要ないのと違う
ぐるぐる回るドラム式がiOSのSafari流でかっこいいじゃんと褒め殺せば
林檎ユーザー特有の優越感をくすぐりOKもらえる気がする
170: (ワッチョイ ba40-aDj+ [2400:2200:770:d15b:*]) 2024/03/02(土)15:39 ID:Ozqjn7Yu0(1) AAS
>>164
細かい要件が分からないけどただそれっぽく表示するだけならこんなのでいいんじゃないの?
jsfiddle.net/sj3xkrad/1/
171: 質問者 (ワッチョイ 572e-lvv7 [118.86.90.123]) 2024/03/03(日)22:00 ID:719to9SO0(1) AAS
皆さんレスありがとうございます。今日休みで明日から参考にさせていただきます
172: (ワッチョイ 9724-lvv7 [2001:268:9a3d:bf34:*]) 2024/03/04(月)10:08 ID:ORhetY7X0(1) AAS
Bootstrap, Tailwind, Bulma などに、
使えそうなコンポーネントは無いの?
173
(1): (ワッチョイ 9f02-ZLJX [27.91.124.53]) 2024/03/05(火)18:22 ID:dRdKhnsT0(1) AAS
質問で、
chrome.tabs.query({}, function(tabs) {
で全タブを取得した各タブに関して、
そのタブのwindowType(appとかnormalなど)って取得できますか?
174
(2): (ブーイモ MM8f-tqxy [133.159.149.112]) 2024/03/05(火)18:47 ID:qENbjC0BM(1) AAS
>>173
個別のtab.windowIdから引けるハズ

もっとも、はじめからwindow.getAll()を使った方がいいとは思うが
175: (ワッチョイ 9f02-ZLJX [27.91.124.53]) 2024/03/06(水)10:35 ID:c6agTDKp0(1/2) AAS
>>174
お、できた!
ありがとう!

ネットでtabs.WindowTypeってのが載ってたので、それで惑わされてた…
176: (ワッチョイ 9f02-ZLJX [27.91.124.53]) 2024/03/06(水)10:42 ID:c6agTDKp0(2/2) AAS
>>174
取得した各tabに対して取得したかったので、
chrome.windows.get()を使いました。
177
(1): (ワッチョイ 5fad-VtrB [124.141.209.120]) 2024/03/29(金)14:50 ID:yy1PP2Jg0(1/3) AAS
非同期処理を同期処理から呼び出すラップ関数を作りたいのですが方法がわかりません
AIに聞いたら次のコードが返ってきましたが、当然awaitが使えないので失敗します
-------------------------------
//非asyncな呼び出し元から、asyncメソッドを呼び出し、結果が帰るまで待って返却する
function FromSyncToAsync() {
const result = await [値を返すだけの非同期な関数]();
return result
省3
178: (ワッチョイ 5fad-VtrB [124.141.209.120]) 2024/03/29(金)15:40 ID:yy1PP2Jg0(2/3) AAS
これはエラーはおきないけど失敗。戻り値がpendingになりました
-------------------------------
function SyncToCallAsync(){
return getWasmFileLastModified().then((result) => {
// 結果を返却
return result;
});
省2
179: (ワッチョイ 5f85-qPgS [240b:12:203:6300:* [上級国民]]) 2024/03/29(金)16:32 ID:utPNPoKt0(1) AAS
>>177
残念ながら不可能
一度非同期の世界に入ると
同期処理の世界には戻って来られないぞ

・非同期処理から値を受け取る箇所はPromise値を返す関数にする
・前処理や後処理を含めて色々やってくれる関数をasync関数で定義する
・極力此処の関数やクラスメソッドは小さくして、関係ない値を持たせない事で全てをasync関数にする事を防ぐ
省5
180: (ワッチョイ 5fad-VtrB [124.141.209.120]) 2024/03/29(金)16:55 ID:yy1PP2Jg0(3/3) AAS
ありがとうございます。いくつかのAIに聞いても堂々と回答実現不能なコードばかり返してくるので困っていました。できないとわかったほうが先に進めます
181: (ワッチョイ df68-csuD [2400:2200:454:574d:*]) 2024/03/29(金)17:39 ID:D+b6Pa3z0(1) AAS
現時点ではAIは不可能なことを不可能と答えないケースが多い
信用しすぎないように
182: (ワッチョイ 0977-nnmZ [2400:2200:587:7d4f:*]) 2024/04/05(金)21:57 ID:otPTbv2G0(1) AAS
test
183: (ワッチョイ d5af-nnmZ [2400:2200:462:2f4f:*]) 2024/04/05(金)21:58 ID:J45N4zHg0(1) AAS
test
184: (ワッチョイ 1bbc-AtXo [2404:7a87:26a0:9e00:*]) 2024/04/13(土)22:59 ID:3VlMmSMB0(1) AAS
すいません、Reactの質問ってここでいいですか?
185: (ワッチョイ a310-0yiv [2400:2200:4d8:f2fa:*]) 2024/04/13(土)23:23 ID:i7geu5sV0(1) AAS
まずスレ一覧をReactで検索するぐらいしてみたら?
186
(2): (ワッチョイ 298b-29lp [240d:1a:7fe:ef00:*]) 2024/04/20(土)13:04 ID:/vy8T+9K0(1/2) AAS
昔、私が大学でプログラミングを習ったとき(C言語でした)には円周率など特別な値については定数にしろと言われはしましたが、その他の変数については定数にしろとは言われませんでした。
Javascriptの本を今読んでいるのですが、再代入を行わない場合にはすべて「let」ではなく「const」を使えと書いてあります。
このようなことが言われるようになったのはいつ頃からでしょうか?
私がそう習わなかっただけで、昔から言われていたことでしょうか?
187
(1): (ワッチョイ d15e-4mIM [240b:12:203:6300:* [上級国民]]) 2024/04/20(土)14:12 ID:7dIwEOD00(1/3) AAS
>>186
JavaScriptはCromeやFirefox等のブラウザ作ってる所が各自で動作するエンジン作れと丸投げしてるが

仕様書にあたるECMAScriptが長い間ES5というバージョンのまま止まってた
その頃には変数宣言はvarのみだった

流石に今時のプログラミング言語にしようぜって事でECMAScriptの強化が始まり(ES6というプロジェクト)
最終的に2015年からは毎年強化した仕様を出しましょうという話になった

その最初の成果物とも言えるES2015で変数宣言としてvarの他にletとconstの2つが追加
省12
188
(1): (ワッチョイ d15e-4mIM [240b:12:203:6300:* [上級国民]]) 2024/04/20(土)14:22 ID:7dIwEOD00(2/3) AAS
constは直訳すれば定数だが

JSのconstは再代入しちゃいけませんよってだけで
基本は普通の変数として取り扱う
配列やオブジェクト、関数、インスタンスなんかもconstで宣言出来るね

他言語のletみたいなものと考えると良い

constで宣言したオブジェクトや配列は再代入禁止なだけで、中身は普通に加工出来てしまうのも作りとして良くない

const arr = [1, 2, 3];
省6
189: (ワッチョイ 298b-29lp [240d:1a:7fe:ef00:*]) 2024/04/20(土)14:53 ID:/vy8T+9K0(2/2) AAS
>>187-188
ありがとうございました。
190
(1): (ワッチョイ 6b21-9wFU [121.2.134.225]) 2024/04/20(土)21:40 ID:KOUUOZ8l0(1) AAS
すみません。
以前からJSフレーム・ワークについて
疑問を持っていたのですが
フレーム・ワークを使う人は、

1. JavaScriptに精通しているので
中規模程度のサイトなら
素のJavaScriptと_lodash等だけでも組めるが
省10
191
(1): (ワッチョイ 6b55-Olxi [2400:2200:6b3:858d:*]) 2024/04/20(土)22:07 ID:xlVv2mR90(1) AAS
どこから突っ込んでいいのかわからなくて答えようがない
192
(1): (ワッチョイ d1f1-4mIM [240b:12:203:6300:* [上級国民]]) 2024/04/20(土)22:27 ID:7dIwEOD00(3/3) AAS
>>190
lodashは関数型プログラミング的な値の加工を司るフレームワークだぞ
一部だけ利用させて頂いて関数片の集合体ライブラリとして使うことも出来るがな

フレームワークは機能を提供するライブラリであると共に
大きなプロダクトを作っていく為のファイル・関数・モジュール置き場をルールで区切ってここに設置してくださいねー
こういう司書さんみたいな役割も担ってる

複数人でプロダクトを触ったり
省10
193: (ワッチョイ d721-K5o/ [121.2.134.225]) 2024/04/21(日)00:20 ID:R6fhRdj50(1) AAS
>>191 >>192
ありがとうございます。

ご教示参考にさせて頂き
精進いたします。
194: (ワッチョイ 1735-TxeL [2001:268:9a1c:ec74:*]) 2024/04/21(日)02:22 ID:9CBVBBl20(1) AAS
>>186
サイの表紙のサイ本。
初めてのJavaScript 第3版 ――ES2015以降の最新ウェブ開発、オライリー、2017

ECMA Script は、ES6(ES2015)で大きな改正があった。
var を非推奨にして、let/const を使う

オブジェクトの場合は、たいていconst を使う。
代入はできないが、オブジェクトの中身は更新できるから
省4
195: (ワッチョイ 0979-208W [110.2.64.150]) 2024/04/28(日)21:53 ID:zlR73q8o0(1) AAS
スレ立てあらしスクリプト対抗age
196
(2): (ワッチョイ 3fd8-HeGF [240b:11:92e0:d400:*]) 2024/06/09(日)04:17 ID:7bXOQjjM0(1/2) AAS
お願いします。
let test = [{id: 1,name: '太郎'},{id: 2,name: '二郎'},{id: 3,name: '三郎'}];
console.log(test); //forEach実行前
test.forEach((value) => {
delete value.id;
})

console.log(test); //forEach実行後
省16
197
(1): (JP 0H7f-Odlx [133.106.38.39]) 2024/06/09(日)04:55 ID:Wajupa1KH(1/2) AAS
paiza.ioで試したが再現しなかった

JavaScriptの実行エンジンがあらかじめ使いもせずすぐdeleteするような無駄な処理を削ぎ落とすとかしてるんじゃね?知らんけど
198
(1): (ワッチョイ 23a9-YaDi [240b:12:203:6300:* [上級国民]]) 2024/06/09(日)04:59 ID:eQJZpcgM0(1) AAS
>>196
「JavaScript 参照の値渡し」でググれ
初歩的な事柄だろ?すぐ理解出来るだろ
199
(2): (JP 0H7f-Odlx [133.106.38.39]) 2024/06/09(日)05:22 ID:Wajupa1KH(2/2) AAS
あーjsをhtmlに直書きしてFireFox/Edgeで読み込んだら再現したわ

jsじゃなくて開発者ツールのコンソール表示の仕様だと思う
配列内のオブジェクトみたいなネストされてるモノについては、その時点の値じゃなく表示を求められた時点の値が表示されるとかじやないかな
200: (ワッチョイ 3f12-HeGF [240b:11:92e0:d400:*]) 2024/06/09(日)06:13 ID:7bXOQjjM0(2/2) AAS
>>198
ありがとうございます。
参照渡しがメモリ上のアドレスを参照してるのは知っていたのですが
初めのconsole.logをした時点ではまだ値を変更していないのに
なぜ変更後の値が表示されるのか理屈が分かりませんでした

>>197>>199
一度テキストに書いたものを貼ったので^^;お手数をおかけました
省2
201: (ワッチョイ 43e9-qUdF [222.15.234.152]) 2024/06/09(日)06:25 ID:v+ppJ5f30(1) AAS
id を別な文字に変えると
202: (ワッチョイ ff0c-xov0 [240b:253:a100:e600:*]) 2024/06/09(日)08:02 ID:GyoPGP3N0(1) AAS
全ての波【電磁波】で下記の症状が起きる
理由は電磁波が強いために起こるか電磁波が通過すれば磁気が生じて鉄分が振動して間接的に鼓膜などが振動する
マイクロ波聴覚効果を用いた音声伝送に関する検討
2018/03/05
外部リンク:www.bookpark.ne.jp
マイクロ波聴覚効果 Wikipedia
外部リンク:ja.wikipedia.org
省21
203: (ワッチョイ 2301-t5YS [60.88.88.32]) 2024/06/09(日)08:21 ID:kTI4ZAed0(1) AAS
>>196
>>199 でも指摘のある通りconsole.logの仕様かな
オブジェクトを渡した場合、開発者ツールで見ることのできるのはそのオブジェクトの現在の状態
デバッグで delete の行で止めてみれば確認できるはず
204: (ワッチョイ 2361-7AaF [124.87.227.97]) 2024/06/09(日)16:12 ID:Q+r4d53/0(1) AAS
単純なオブジェクトならconsole.log(JSON.stringify(hoge))とかするのも手だね
205: (ワッチョイ ff96-sNpc [2400:2200:4b1:1eb8:*]) 2024/06/09(日)17:12 ID:bzc/s2Ac0(1) AAS
ここが詳しいね↓
Chrome の console.log でハマらないために
外部リンク:nmi.jp
206: (ワッチョイ 639f-VQfa [2001:268:9a20:1e45:*]) 2024/06/09(日)18:59 ID:47AcMhsH0(1) AAS
>let test
オブジェクトtest に再代入していないから、const test を使う。
内部を変更しているだけだから(破壊的変更)

配列オブジェクトtest の、内部のオブジェクトを変更している。
value は参照渡し。
内部のオブジェクトをコピー・再構築して、引数に渡すのではない!

C/C++ 以外の言語は参照渡し。
省9
1-
あと 102 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.023s