1 名前:デフォルトの名無しさん mailto:sage [2022/08/07(日) 15:57:40.26 ID:TS5TGpUB0.net] !extend:checked:vvvvvv:1000:512 JavaScript を自ら学ぶ人のための質問スレッドです。 >>2-5 のテンプレを読んだ上で質問してください。次スレは>>950 が>>2 の「次スレの立て方」を元に立ててください ■質問を書く上で (1) 煽り、コード制作依頼等、人を不快にさせる投稿はご遠慮下さい。公序良俗を守った応対を心がけてください。 (2) 他の人に迷惑をかけるスクリプトの質問はご遠慮ください。 (ブラクラ、[戻る], [閉じる], [クリック] の妨害、画面占有など) (3) 質問者及び議論を行う人はメール欄を空欄にし、名前にレス番を入れることを強く推奨します。回答者はなりすましを判断できませんので、なりすましが現れても自己責任となります。 (4) 常に自発的に調べる心構えを持ってください。 具体的には「自分で調べてから質問する」「回答をもらってわからない単語があればGoogle検索してみる」など。 わからない内容を代わりに調べてくれる回答者をお望みの方は余所で質問してください。 (5) 出来るだけ一般的な用語を使用してください。脳内オレオレ用語は混乱の元です。 (6) 出来るだけサンプルコードを掲示してください。言葉による説明は行き違いが生まれる場合があります。 ※必ず「問題の事象が再現されること」を確認してください。 必要な部分だけ切り出したつもりで現象が再現できていなかったケアレスミスがしばしば見られます。 (7) サンプルコードに HTML が含まれる場合は 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
357 名前:デフォルトの名無しさん mailto:sage [2022/12/09(金) 07:27:33.15 ID:KfOH1QpXH.net] >>347 グローバル変数はバグの温床だからやめておいて 引数とreturn値を使ってカプセルかしてね 引数もreturn値も使わないのなら let param={ x1:1,x2:2... } とかして、 param.x1+param,x2... とかで呼び出したほうがコリジョンさけられるのでいいかなと windowやdocumentに持たせるべきパラメータは是ですが 持たせるべきでないパラメータはwindowなどに持たせないのが 私のひーひーおじいちゃんからの教えです
358 名前:デフォルトの名無しさん mailto:sage [2022/12/09(金) 08:51:23.05 ID:G3OER7led.net] そもそも>>345 みたいな発想が出てくる時点で関数というものに対する認識が危ういよね 手を動かすのはもちろん大事だけど並行して座学も大切だと痛感する
359 名前:デフォルトの名無しさん mailto:sage [2022/12/09(金) 15:20:35.56 ID:KfOH1QpXH.net] いやいや最初はそんなもんでしょ 自分は今でも失笑コードばっかりですし どんなコードでも書き続けることに価値があると じっちゃまが言ってた
360 名前:デフォルトの名無しさん mailto:sage [2022/12/09(金) 15:37:23.27 ID:8zaQFmsV0.net] C言語なら、#define hensufn() で、 質問の内容を実現できるから、そっちもちょっと勉強してみるといいだろう あくまでも参考として。蛇足だが、関数じゃなくてマクロだが そういうのとごっちゃにしないためにも、理解しておくといい
361 名前:デフォルトの名無しさん mailto:sage [2022/12/09(金) 15:45:36.78 ID:K2JzDyfqd.net] >>353 だからその「そんなもん」から次のステップに進むためには知識を身に付けることも重要って言ってるのよ コードを書き続けることを否定してるわけじゃないよ
362 名前:デフォルトの名無しさん mailto:sage [2022/12/09(金) 16:08:24.10 ID:K2JzDyfqd.net] >>354 今の状態の質問者に別言語の概念を持ち出しても余計に混乱を招くだけだろう 時期尚早だと思う
363 名前:デフォルトの名無しさん mailto:sage [2022/12/09(金) 16:36:12.81 ID:KfOH1QpXH.net] >>355 その通りですね infoやMDNを完璧理解程度をとりあえずの目標としたらいいですね
364 名前:デフォルトの名無しさん mailto:sage [2022/12/09(金) 17:10:52.86 ID:DDM/thjI0.net] >>354 今時そんなクソマクロ勧めるなよ
365 名前:デフォルトの名無しさん mailto:sage [2022/12/09(金) 17:27:50.18 ID:K2JzDyfqd.net] >>357 んー、皮肉のつもりで言ってる? 完璧理解なんかは必要ないでしょ
366 名前:デフォルトの名無しさん mailto:sage [2022/12/09(金) 17:40:09.94 ID:8zaQFmsV0.net] 「ごっちゃにしないためにも」て書いたろ また、住人はいろんな技量なんだから 各人が自分なりに受け止めればいい
367 名前:デフォルトの名無しさん mailto:sage [2022/12/09(金) 18:24:14.89 ID:K2JzDyfqd.net] 「ごっちゃにしないためにも」って関数とマクロをってこと?
368 名前:デフォルトの名無しさん [2022/12/09(金) 21:28:33.63 ID:rFVdhtxE0.net] addEventListener()のイベントオブジェクトのように、 引数にあてる関数の中のさらにその引数に特別なオブジェクトをおく 変わったメソッドは他にありますか?
369 名前:デフォルトの名無しさん mailto:sage [2022/12/10(土) 03:33:43.66 ID:rStzYIZl0.net] >>362 コールバック関数について調べることをお勧めする
370 名前:デフォルトの名無しさん mailto:sage [2022/12/10(土) 07:13:56.55 ID:EwkyT8LfH.net] >>359 皮肉なんて言わないです infoは入門者には最適だと思いますし 知っておくべき内容だと思います infoを理解しておけばMDNも一覧してほとんど理解できるでしょ リファレンスだし 覚える必要はないけど 理解する程度の負荷はそんな重くないですよ
371 名前:デフォルトの名無しさん mailto:sage [2022/12/10(土) 10:08:41.30 ID:UfMq0N25d.net] >>364 誤解だったのならすまんね MDNだったらチュートリアルが揃ってるしそれを一通りやってみるぐらいでいいかなと あとは疑問がわいたらまずリファレンスを漁る習慣付け
372 名前:デフォルトの名無しさん mailto:sage [2022/12/10(土) 17:05:35.95 ID:LZ79JioR0.net] >>365 いえいえ、こちらこそありがとうございます! 自分もまだ初学者レベルですのでいろいろ教えてください!
373 名前:デフォルトの名無しさん mailto:sage [2022/12/10(土) 22:31:23.08 ID:09TKwM+q0.net] プロトタイプだけで、丼飯三杯は行ける!
374 名前:デフォルトの名無しさん mailto:sage [2022/12/11(日) 20:36:45.56 ID:bBwm/pW5H.net] >>367 プロトタイプについて語ってください
375 名前:デフォルトの名無しさん mailto:sage [2022/12/11(日) 20:55:00.83 ID:q6Npm0tM0.net] >>368 JS最強の秘伝なり。
376 名前:デフォルトの名無しさん mailto:sage [2022/12/11(日) 21:46:43.64 ID:bBwm/pW5H.net] >>369 語れないんですねw
377 名前:デフォルトの名無しさん mailto:sage [2022/12/11(日) 22:29:35.67 ID:q6Npm0tM0.net] >>370 一子相伝の秘技だからな。
378 名前:デフォルトの名無しさん mailto:sage [2022/12/12(月) 01:25:48.09 ID:9mOu9R4R0.net] MOV = [] for(g=0; g<GUI.length; g++){ MOV.push([Math.abs(GUI[g]-Bs[0]), GUI[g]-Bs[0]]) MOV.push([Math.abs(GUI[g]-Bs[2]), GUI[g]-Bs[2]]) } これですが、MOVの配列の末尾に何かを加えようとしてるのはわかるのですが、何を加えようとしてるのでしょうか? [ , ]の所の意味がわかりません MOV.push(Math.abs(GUI[g]-Bs[0]), GUI[g]-Bs[0])ではダメなのでしょうか?
379 名前:デフォルトの名無しさん mailto:sage [2022/12/12(月) 01:50:55.99 ID:N0jzJwvL0.net] MOV = [] MOV.push([1, 2]) console.log(MOV) // [[1, 2]] MOV = [] MOV.push(1, 2) console.log(MOV) // [1, 2]
380 名前:デフォルトの名無しさん mailto:sage [2022/12/12(月) 02:10:37.00 ID:9mOu9R4R0.net] >>373 ありがとうございます うーん 難しいな [絶対値にしたもの、絶対値にしてないもの]を[ ]でひとまとめにする理由は何なんだろう? console.logを挟んで値を確認しながら考えないとわかりませんね
381 名前:デフォルトの名無しさん mailto:sage [2022/12/12(月) 02:23:13.76 ID:9mOu9R4R0.net] もしかして配列が入れ子になってるんでしょうか? その後にSx.translate(MOV[0][1], 0)っていうコードが出て来るのですが… MOV[0][1]の所が意味がわからなかったんですけど、 [[◯,●],[◯,◯],…]の●を指定してるんでしょうか?
382 名前:デフォルトの名無しさん mailto:sage [2022/12/12(月) 02:45:20.07 ID:BD7ZISK00.net] >>375 その認識で合ってる。 MOV は配列で、その各要素も配列(2要素の配列)。 なんでそんな構造にしてるのかは知らん。
383 名前:デフォルトの名無しさん mailto:sage [2022/12/12(月) 07:38:12.53 ID:u3d467jnH.net] >>375 が聞いてるのは translateがJSのcontextの関数なら translate(100,50)はコンテキスト自体が右に100、下に50移動する 右移動量を絶対値にして移動させるってことかにゃん
384 名前:デフォルトの名無しさん mailto:sage [2022/12/12(月) 11:24:58.04 ID:9mOu9R4R0.net] >>376 ありがとうございます >>377 そうです 全コード載せてみます geometricBoundsは四角形の2点の座標を得るメソッドで
385 名前:、変数に[左上のx座標、左上のy座標、右下のx座標、右下のy座標]の順に格納されます [] [ここ壊れてます]
386 名前:デフォルトの名無しさん mailto:sage [2022/12/12(月) 11:25:36.96 ID:9mOu9R4R0.net] SEL = activeDocument.selection PAT = activeDocument.pathItems STB = app.preferences.getBooleanPreference("includeStrokeInBounds") MAINfn() function MAINfn(){ if(SEL.length == 0) return GUI = [] for(p=0; p<PAT.length; p++) PATfn(PAT[p]) if(GUI.length == 0) return for(s=0; s<SEL.length; s++) SELfn(SEL[s]) } function PATfn(Px){ if(!Px.guides) return Bp = Px.geometricBounds GUI.push(Bp[0]) GUI.push(Bp[2]) }
387 名前:デフォルトの名無しさん mailto:sage [2022/12/12(月) 11:26:49.23 ID:9mOu9R4R0.net] function SELfn(Sx){ Bs = BNDfn(Sx) MOV = [] for(g=0; g<GUI.length; g++){ MOV.push([Math.abs(GUI[g]-Bs[0]), GUI[g]-Bs[0]]) MOV.push([Math.abs(GUI[g]-Bs[2]), GUI[g]-Bs[2]]) } MOV2 = SORTfn(MOV) Sx.translate(MOV2[0][1], 0) } function SORTfn(f0){ f1 = [] for(i=0; i<f0.length; i++) f1.push(f0[i]) f1.sort( function(a,b){ if(a[0] < b[0]) return -1 if(a[0] > b[0]) return 1 if(a[0]== b[0]) return 0 } ) return f1 } function BNDfn(Bx){ Bz = Bx.geometricBounds if(STB) Bz = Bx.visibleBounds if(Bx.clipped) Bz = Bx.pageItems[0].geometricBounds return Bz }
388 名前:デフォルトの名無しさん mailto:sage [2022/12/12(月) 11:28:43.67 ID:9mOu9R4R0.net] 「一番近いガイドに図形を吸着させる」スクリプトです app.preferences.getBooleanPreferenceは無視してもらっていいです 環境設定の予備的なものなので。 function BNDfn(Bx)以下も環境設定の予備的なものなので無視でいいです [絶対値と絶対値でないもの]を入れ子にする意味が知りたいです
389 名前:デフォルトの名無しさん mailto:sage [2022/12/12(月) 12:27:02.66 ID:TCDiz++Hr.net] >>381 配列MOVをソートするSORTfnで[◯,●]の◯を利用してるのは読み取れる?
390 名前:デフォルトの名無しさん mailto:sage [2022/12/12(月) 13:06:21.02 ID:9mOu9R4R0.net] >>382 ソートで利用するために [ , ] の入れ子にしてるだけですか?
391 名前:デフォルトの名無しさん mailto:sage [2022/12/12(月) 13:16:44.67 ID:TCDiz++Hr.net] >>383 まず聞かれたことに対してYESかNOで答えようよ
392 名前:デフォルトの名無しさん mailto:sage [2022/12/12(月) 13:25:11.50 ID:9mOu9R4R0.net] >>38 ありがとうございます わかりました [◯,●]の◯はソートをするために利用している 絶対値が一番小さい◯を先頭に並べ替えて(距離が一番近い)、それと対になってる●だけtranslateで移動している ということですね
393 名前:デフォルトの名無しさん mailto:sage [2022/12/12(月) 13:25:56.97 ID:9mOu9R4R0.net] × >>38 ◯ >>384
394 名前:デフォルトの名無しさん mailto:sage [2022/12/12(月) 13:29:27.02 ID:BD7ZISK00.net] 余談だが、>>380 sort の比較関数ってわざわざそういうまどろっこしい実装にしてるのをよく見るけど、数値なら function(a,b){ return a[0] - b[0]; } でいいのよ。 順序を見る要素が複数あるなら function(a,b){ let c = a[0] - b[0]; if (c) return c; c = a[1] - b[1]; if (c) return c; return a[2] - b[2]; } とか、短い表現なら function(a,b){ let c; if (c = a[0] - b[0]) return c; if (c = a[1] - b[1]) return c; return a[2] - b[2]; } とか。 これをループで回すのも有りかも。 あ、複数要素の比較はあくまで例であって、>>380 のデータ構造とは関係無いよ。
395 名前:デフォルトの名無しさん mailto:sage [2022/12/12(月) 13:34:52.14 ID:9mOu9R4R0.net] ガイドが、動かしたいオブジェクトの右にあるか左にあるか確定して無いんですよ だからMath.absで絶対値にして距離を測ってるのか… そして配列の入れ子にしてソート 勉強になるな ここだけ他のスクリプトでも使える
396 名前:デフォルトの名無しさん mailto:sage [2022/12/12(月) 13:39:57.47 ID:BD7ZISK00.net] >>388 abs なんてほとんどコストかからないんだから、元の値と絶対値の両方を保存するのは無駄な気がする。 配列の保存やアクセスの方がコストかかったりして。
397 名前:デフォルトの名無しさん mailto:sage [2022/12/12(月) 13:45:29.13 ID:TCDiz++Hr.net] 命名や処理内容を見る限りあまり参考にすべきコードではないように感じる
398 名前:デフォルトの名無しさん mailto:sage [2022/12/12(月) 13:50:47.16 ID:8JMA8Bb40.net] >>379 転載禁止なのを勝手に載せたらあかんわ gorolib.blog.jp/archives/72193707.html
399 名前:デフォルトの名無しさん mailto:sage [2022/12/12(月) 14:04:35.37 ID:xvk668V/d.net] 絶対値が一番小さいものを選ぶだけならこんな大掛かりにする必要そもそもない気が
400 名前:デフォルトの名無しさん mailto:sage [2022/12/12(月) 14:26:01.70 ID:qd0QDeFeM.net] >>374 まず [1, 2, 3 ] で 配列ができる new Array(1,2,3) の省略型
401 名前:デフォルトの名無しさん mailto:sage [2022/12/12(月) 14:32:46.45 ID:Xk6tQN/c0.net] イラストレータのappかぃ
402 名前:デフォルトの名無しさん mailto:sage [2022/12/12(月) 15:49:23.10 ID:Ah12aly8r.net] >>393 なぜ配列にしているのかを聞いているのであって 記法に関する質問をしているわけではないだろう
403 名前:デフォルトの名無しさん mailto:sage [2022/12/12(月) 17:14:12.48 ID:Xk6tQN/c0.net] 設定でjs使ってるみたいなのでjsスレで質問してるようだけどスレチのような・・・
404 名前:デフォルトの名無しさん mailto:sage [2022/12/12(月) 17:18:01.39 ID:RmZ1ojDx0.net] オブジェクトの配列にすれば分かりやすいな
405 名前:デフォルトの名無しさん mailto:sage [2022/12/12(月) 17:19:55.56 ID:Xk6tQN/c0.net] 連投すみません >>381 さん PC等->CG->Illustrator総合 のほうがいいかもですね
406 名前:デフォルトの名無しさん mailto:sage [2022/12/12(月) 20:05:16.68 ID:9mOu9R4R0.net] >>398 CG板のIllustratorスレはわかりませんが、DTP板のIllustratorスレではscriptがわかる人が1人くらいしか居ません たまたまその人が居なかったら、何日も放置になってしまうし… ここの人たちの方がscriptのメソッドとかもほとんどわかるし Illustratorの図形といっても、xy座標に図形が並んでるだけの、ほとんど移動する時の足し算と引き算だけです
407 名前:デフォルトの名無しさん mailto:sage [2022/12/12(月) 20:10:18.24 ID:9mOu9R4R0.net] [◯,●]の◯をソートのために利用してるなんて、独りで考えてたら絶対思い付かなかったと思います
408 名前:デフォルトの名無しさん mailto:sage [2022/12/12(月) 20:14:44.98 ID:u3d467jnH.net] >>400 JSスレの神様たちは優しい感じですもんね がんばってくださいね!
409 名前:デフォルトの名無しさん mailto:sage [2022/12/12(月) 20:37:06.98 ID:9eo7KahL0.net] >>400 ソートの手法としては収穫があったようでなにより。 でも他にも指摘があるように、アルゴリズムとしては今一つだから全体としてはあまり参考にするほどじゃないと思う。 それは距離の一番小さい相手を探す方法として距離でソートしてその一番最初を採るという手順を使ってるよね。 でも、最初から距離が一番小さいものを探せばループ 1回で答えが出る。 こんなかんじ? function SELfn(Sx) { Bs = BNDfn(Sx); dmin = 99999 dsel = 0 for(g = 0; g < GUI.length; g++) { for (b = 0; b <= 2; b += 2) { d = GUI[g] - Bs[b] a = Math.abs(d) if (a < dmin) { dmin = a dsel = d } } if (dmin < 99999) Sx.translate(dsel, 0) }
410 名前:デフォルトの名無しさん mailto:sage [2022/12/12(月) 20:39:31.01 ID:fufRX2ZEr.net] >>400 MOV変数の行方を追って数行コードを読んだだけだよ 何も難しいことの種明かしをしたわけじゃない 今回人に聞いて答えを得たなら次は自分でそれにたどり着けるようになろう
411 名前:デフォルトの名無しさん mailto:sage [2022/12/12(月) 22:12:32.05 ID:9mOu9R4R0.net] >>402 これだとソート関数いらないんですか? かなりコンパクトになりますね ダイアログを表示させて吸着方向を上下左右選べるスクリプトを作ろうと思ってるので、こちらで作ってみます
412 名前:デフォルトの名無しさん mailto:sage [2022/12/13(火) 02:24:56.21 ID:IRSJsHbF0.net] >>404 閉じかっこひとつ抜けてた。 最後の if の前に } が要る。
413 名前:デフォルトの名無しさん mailto:sage [2022/12/13(火) 11:11:56.07 ID:dgxg9m7O0.net] >>405 こうですか? function SELfn(Sx) { Bs = BNDfn(Sx); dmin = 99999 dsel = 0 for(g = 0; g < GUI.length; g++) { for (b = 0; b <= 2; b += 2) { d = GUI[g] - Bs[b] a = Math.abs(d) if (a < dmin) { dmin = a dsel = d } } } if (dmin < 99999) Sx.translate(dsel, 0) }
414 名前:デフォルトの名無しさん (ワッチョイ 0bdb-KKgq [217.178.96.73]) mailto:sage [2022/12/13(火) 12:03:25.74 ID:l4PFzl7S0.net] 君、プロトタイプをやりたまえ。
415 名前:デフォルトの名無しさん (オイコラミネオ MM75-SbnF [150.66.82.245]) mailto:sage [2022/12/13(火) 14:26:18.57 ID:LSRhZVzxM.net] >>406 そそ
416 名前:デフォルトの名無しさん mailto:sage [2022/12/13(火) 16:55:31.25 ID:kcuzrobtd.net] プロトタイプとは何なのかを教え給え クラスとかコンストラクタを書くんじゃなくて、『function hoge(a, b){}』にプロパティやメソッドや戻り値定義すればいいの?
417 名前:デフォルトの名無しさん mailto:sage [2022/12/13(火) 18:39:15.95 ID:pwiPw3z60.net] >>409 プロパティを参照する時、「対象オブジェクトの直属のプロパティ」だけでなく、[[Prptotype]] と呼ばれる内部プロパティ内にあるプロパティも検索対象となる仕組みを「プロトタイプチェーン」という
418 名前:デフォルトの名無しさん (JP 0Ha5-3TNT [126.249.157.89]) mailto:sage [2022/12/13(火) 19:12:20.42 ID:cf0t5w5pH.net] >>410 プロパティを参照する時、対象オブジェクトの直属にプロパティへの参照がない場合、[[Prptotype]] と呼ばれる内部プロパティ内にあるプロパティへの参照を走査する仕組みを「プロトタイプチェーン」という なお[[Prototype]]はnewで生成される親のprototypeへの参照が格納されるが、動的に[[Prototype]]をセットすることもできる でどうでしょう?
419 名前:デフォルトの名無しさん mailto:sage [2022/12/13(火) 20:14:40.67 ID:pwiPw3z60.net] >>411 プロトタイプに「親」という概念はない クラスベース言語の考えが混ざってる気がする
420 名前:デフォルトの名無しさん mailto:sage [2022/12/13(火) 20:36:49.94 ID:cf0t5w5pH.net] >>412 えええええ?そうなんですか? 継承あるのに親がいない???
421 名前:デフォルトの名無しさん mailto:sage [2022/12/13(火) 22:34:12.05 ID:cf0t5w5pH.net] >>412 僕は理解が浅いのでもっと学習しないと。 JSはprptotypeの理解が深まると幅が広がりそうですね 僕ももっと勉強進めないと
422 名前:デフォルトの名無しさん mailto:sage [2022/12/14(水) 00:03:47.61 ID:+gEopm0Q0.net] >>413-414 プロトタイプベースとクラスベースの違いを理解することから始めよう https://www.google.com/search?q=%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+%E3%82%AF%E3%83%A9%E3%82%B9%E3%83%99%E3%83%BC%E3%82%B9&ie=UTF-8 親クラス、子クラス、継承は、クラスベース由来の用語 多くのサイトでクラスベースに慣れた人用に使われている用語だが、クラスベースのつもりで受け取ると誤った機能理解に繋がる クラスベースはインスタンス生成時に親クラスを複製するが、プロトタイプベースは複製しない プロトタイプベースはプロトタイプに手を加えると「全てのプロトタイプを元にしたオブジェクト」に影響する 「継承」や「クラス」という用語を使うのは問題ないが、プロトタイプでどのように継承やクラスを実装しているのかは理解する必要がある
423 名前:デフォルトの名無しさん mailto:sage [2022/12/14(水) 00:19:25.91 ID:Dbkp4Og+0.net] プロトタイプ最強伝説!
424 名前:デフォルトの名無しさん mailto:sage [2022/12/14(水) 07:32:29.92 ID:r+idjll+H.net] protptypeを使い、new演算子でインスタンスを継承でき、 さらにプロトタイプチェーンで始祖子孫を関連付けられるのに 親子関係という概念はJSにはないんですねー
425 名前:デフォルトの名無しさん mailto:sage [2022/12/14(水) 07:55:29.99 ID:r+idjll+H.net] ちょっと調べてみたけど、JSに親子関係は存在しない、的な記事はない MDNには親子表現はないけれど、JSの継承で親子表現してる記事は多数ある 親子関係はクラスの拡張、実装、インスタンス生成でも使われるけど 親子関係自体を定義した言語なんて存在しない、あくまで機能の表現方法 であるにもかかわらず、プロトタイプ言語に親子関係が存在しないというのは どこかにそういう記述があると思うのですが、参照場所を教えていただけませんか?
426 名前:デフォルトの名無しさん mailto:sage [2022/12/14(水) 12:33:00.70 ID:3zhhSsQg0.net] プロトタイプベースでは、親ではなく雛形という概念を用いる(それこそがプロトタイプ) JavaScriptはプロトタイプベースのオブジェクト指向言語の代表格だが その JavaScriptにも、ES2015(ES6) でクラスベース構文が導入されたので、 使い手の側としては、思想・概念・用語が入り乱れる事になったのかも知れません
427 名前:デフォルトの名無しさん mailto:sage [2022/12/14(水) 13:15:16.28 ID:U8xYt1Js0.net] あらためてMDNを概覧しましたが 417さんの力説されているとおりかもしれませんね 今後はご指摘の件、頭にいれながら勉強します ながながとありがとうございます!今後ともよろしくです
428 名前:デフォルトの名無しさん mailto:sage [2022/12/14(水) 14:22:13.24 ID:dv/CWk9JH.net] 個人的にクラス≒雛形って考えだからプロトタイプはわかるけどクラスベースがわからなかった 「雛形クローンして用意してあるの変えるだけだろ?」って
429 名前:デフォルトの名無しさん mailto:sage [2022/12/15(木) 01:00:33.27 ID:z3rBZpFn0.net] >>420 よくぞ言った、プロトタイプ使徒よ!
430 名前:デフォルトの名無しさん mailto:sage [2022/12/16(金) 14:16:16.56 ID:wrcGLpVa0.net] みんなはフレームワーク使ってる? それともJS直接使ってる?
431 名前:デフォルトの名無しさん mailto:sage [2022/12/16(金) 14:22:39.89 ID:C3ZoQFlkM.net] お前から発表しろよ アンケートだから職種、年俸、年齢、結婚歴は必須な
432 名前:デフォルトの名無しさん mailto:sage [2022/12/17(土) 12:10:49.73 ID:kI1nA3xa0.net] >>424 職種:プロトタイプ 年俸:プロトタイプ 年齢:プロトタイプ 結婚歴:プロトタイプ
433 名前:デフォルトの名無しさん mailto:sage [2022/12/17(土) 13:15:46.84 ID:OiGNBIp60.net] 質問させてください <style> #d1,#d2{ color:blue} </style> <div id="d1"></div> <div id="d2"></div> <script> </script> JSで、<style>内の#d1,#d2セレクタの設定を編集したいのですが 特定のセレクタ部分だけを取得して変更ってできますか?
434 名前:デフォルトの名無しさん mailto:sage [2022/12/17(土) 13:44:50.71 ID:ycEukJwD0.net] >>426 https://developer.mozilla.org/ja/docs/Web/API/StyleSheetList
435 名前:デフォルトの名無しさん mailto:sage [2022/12/17(土) 13:49:34.17 ID:ycEukJwD0.net] >>426 変更はこっちだった https://developer.mozilla.org/en-US/docs/Web/API/StyleSheetList
436 名前:デフォルトの名無しさん mailto:sage [2022/12/17(土) 13:53:37.75 ID:ycEukJwD0.net] >>426 訂正 https://developer.mozilla.org/ja/docs/Web/API/CSSStyleSheet
437 名前:デフォルトの名無しさん (JP 0H11-JDfe [126.249.157.89]) mailto:sage [2022/12/17(土) 20:57:11.28 ID:/rkC0QGzH.net] >>428 ありがとうございます。JSの皆様は本当に神様。 取り急ぎお礼申し上げます。ありがとうございます。 できれば明日時間をとって拝読させていただきます。
438 名前:デフォルトの名無しさん mailto:sage [2022/12/17(土) 22:30:28.67 ID:8Q1kFIoR0.net] if(A1[1] == A1[3]){ A0C = (A0[3]+A0[1])/2; A1C = (A1[3]+A1[1])/2; Ty = A1C - A0C; X1[0].translate(0,Ty); } else { dofn3(); } このif文ですが、A1[1]とA1[3]の誤差がプラスマイナス0.5までならtrueというふうに変えたいんですけど、どう書き換えれば良いでしょうか? 今のままだとA1[1]とA1[3]ともに小数点以下10桁くらいあって条件が厳し過ぎるんですよね 手違いでちょっとずれて作ってしまうこともあるので、その場合はtrueにしたいのです
439 名前:デフォルトの名無しさん mailto:sage [2022/12/17(土) 22:40:09.17 ID:on9KAdJq0.net] A1[1]とA1[3]の差が絶対値で0.5までって書けばいいんじゃないの?
440 名前:デフォルトの名無しさん mailto:sage [2022/12/17(土) 22:44:13.88 ID:8Q1kFIoR0.net] A1[1]==A1[3]は、四角形の左上のY座標A1[1]と右下のY座標A1[3]が同じだから、直線という意味です でもこの2点を上下0.5くらい余裕を持たせたいんです 間違って微妙に斜めに線を引いてしまうこともあるので
441 名前:デフォルトの名無しさん mailto:sage [2022/12/17(土) 22:45:31.22 ID:8Q1kFIoR0.net] >>432 そうか 簡単でしたね w ありがとうございます
442 名前:デフォルトの名無しさん mailto:sage [2022/12/17(土) 22:45:36.51 ID:t7AYft2Wr.net] >>431 まず自分で試行錯誤してみたら? やりたいことが日本語に出来てるなら難しいことではないと思うよ 君は何でも最初から人に聞いて済ませようとしてるように見える
443 名前:デフォルトの名無しさん mailto:sage [2022/12/17(土) 22:47:25.94 ID:t4TbQFP40.net] このスレは、回答者の腕試しの意味もあるから
444 名前:デフォルトの名無しさん mailto:sage [2022/12/17(土) 23:01:46.75 ID:nEwVWz8Q0.net] 正直このレベルの質問に答える必要が無いと思うが・・・ 範囲でif文を書く事とかすら考えつかないレベルでこの先やっていける訳無いやんw
445 名前:デフォルトの名無しさん mailto:sage [2022/12/17(土) 23:10:51.36 ID:2CNUWbJ80.net] >>437 こういうちょっとしたきっかけで他の思い付きができるようになることもあるしね
446 名前:デフォルトの名無しさん mailto:sage [2022/12/18(日) 12:44:32.64 ID:uPN+O46jH.net] >>429 様、ありがとうございました。 CSSのスタイル設定プロパティをJSで編集できました。 CSSRulesは配列で返ってきますが cssRules['div'].color='blue' のように、プロパティ名で編集する方法はありませんでしょうか?
447 名前:デフォルトの名無しさん (オッペケ Sr11-H8w4 [126.156.146.161]) mailto:sage [2022/12/18(日) 14:19:43.57 ID:6JZ/0f38r.net] jQuery使えばできます
448 名前:デフォルトの名無しさん mailto:sage [2022/12/19(月) 12:00:53.42 ID:KEwe+Jaf0.net] >>439 俺は「プロパティ名で編集する方法」を知らないので、CSSOMを調べてみるといいと思う https://triple-underscore.github.io/cssom-ja.html
449 名前:デフォルトの名無しさん mailto:sage [2022/12/19(月) 14:10:45.85 ID:GaFatWVX0.net] >>440 >>441 ありがとうございました selectortextを呼び出して疑似的にプロパティ名で編集できるような関数を作ってみます。
450 名前:デフォルトの名無しさん mailto:sage [2022/12/19(月) 21:50:19.67 ID:K0fHbKFE0.net] https://developer.mozilla.org/ja/docs/Web/API/CSSStyleDeclaration/setProperty let style = document.styleSheets[0].cssRules[0].style; style.fontSize = "1em"; // style.setProperty("font-size", "1em");
451 名前:デフォルトの名無しさん mailto:sage [2022/12/21(水) 07:34:30.54 ID:nEbzRDrKH.net] >>443 ありがとうございます。 let styleの呼び出し箇所を関数にして selector名のオブジェクトを生成し、その中にプロパティ名とvalueを格納して呼び出すような 簡易的な関数を作成してみます 年末のお忙しいとろ、アドバイスありがとうございました。
452 名前:デフォルトの名無しさん mailto:sage [2022/12/21(水) 16:52:58.12 ID:9yhxJASu0.net] 小数点第4位を四捨五入するのは、parseFloat(a.toFixed(3))と Math.round(a*1000)/1000のどっちがいいでしょうか?
453 名前:デフォルトの名無しさん mailto:sage [2022/12/21(水) 19:18:04.39 ID:nEbzRDrKH.net] 連日すみません。 <link rel="stylesheet" src>で読み込んだcssの cssStylesheetプロパティにアクセスする方法を教えていただけないでしょうか?
454 名前:デフォルトの名無しさん mailto:sage [2022/12/21(水) 21:53:16.64 ID:paD1IZJK0.net] ちょっとググれば出てくるような情報までくれって言うのか?
455 名前:デフォルトの名無しさん (JP 0H11-JDfe [126.249.157.89]) mailto:sage [2022/12/21(水) 22:46:02.69 ID:nEbzRDrKH.net] すみません、ちょっとググってみます
456 名前:デフォルトの名無しさん mailto:sage [2022/12/21(水) 23:16:30.68 ID:paD1IZJK0.net] どうしても分からないならchromeのDevToolsのConsoleで document.styleSheets って打ってみれば中身が全て見れる 中身見ても意味不明な場合はやりたいことは出来ないかも
457 名前:デフォルトの名無しさん mailto:sage [2022/12/21(水) 23:34:53.49 ID:PQinZhLm0.net] jQuery最強伝説。
458 名前:デフォルトの名無しさん mailto:sage [2022/12/22(木) 07:18:15.65 ID:slpViawnH.net] >>449 それは試してみたんですけどundefinedなんですよね 他ファイルを参照した場合には、stylesheetがdocumentのプロパティになっていないようなのですよね
459 名前:デフォルトの名無しさん mailto:sage [2022/12/22(木) 07:21:31.78 ID:slpViawnH.net] >>449 すみません、訂正です document.styleSheetで参照すると document.styleSheet.cssRulesがnullとなってしまうんです document.styleSheetで登録されるのは 同じファイル内のスタイルだけのよう? 他のcssファイルに書かれたスタイルを操作するには どうしたらいいのでしょうか? に訂正願います
460 名前:デフォルトの名無しさん mailto:sage [2022/12/22(木) 07:48:35.40 ID:YtaOqG2C0.net] document.styleSheetsの最後のs抜かしてないよな document.styleSheets[0] みたいにインデックス使わないと参照できないぞ
461 名前:デフォルトの名無しさん mailto:sage [2022/12/22(木) 09:18:28.13 ID:N0yJkasM0.net] 本当にやりたいのは、特定の要素のstyleを弄ることじゃないの?
462 名前:デフォルトの名無しさん mailto:sage [2022/12/22(木) 13:29:52.00 ID:kUDazAkOd.net] ワードプレスとかいうアレをイジってると特定idの親にスタイル変更したいとかはでてくる
463 名前:デフォルトの名無しさん mailto:sage [2022/12/22(木) 17:03:26.78 ID:J4HXq2D
] [ここ壊れてます]
464 名前:u0.net mailto: よほどのことがなければ元ルールを直に書き変えるなんてしないよなぁ cssRulesはクロスオリジンだとアクセスできないし [] [ここ壊れてます]
465 名前:デフォルトの名無しさん mailto:sage [2022/12/22(木) 19:14:24.29 ID:slpViawnH.net] みなさん、ありがとうございます。 関連した質問なのですが cssが要素に適用される仕組みは 1: <style>タグを読み込んだり<link ref>を読み込んだ時点で ブラウザ実行環境にcssプロパティを記録して、セレクタを読み込んだ時に適用するのでしょうか? それとも 2: HTMLの要素を読み込んだ時に<style>タグや<link>先に走査して cssの適用があるかを確認して適用する なのでしょうか? もし1なら、クライアントブラウザからアクセスできるような気がするのですけど もし教えていただけるようでしたらご指導お願いします
466 名前:デフォルトの名無しさん mailto:sage [2022/12/22(木) 20:32:53.94 ID:NthFDCjcr.net] 次の話に移る前にまず>>453 や>>454 に答えるべきだろう 言葉遣いだけ丁寧にしてもそういうのが疎かだと相手にされなくなる
467 名前:デフォルトの名無しさん mailto:sage [2022/12/23(金) 07:08:17.10 ID:OG24yN7PH.net] >>454 様 424,437,440,442の記載の通り、cssRuleを直接編集したいと考えています >>453 様 437,441,442で記載の通り、配列で受けとって編集することはできています しかし別のスタイルシートでは同様の方法では参照できませんでした >>447 様のご指摘があって、再度検索してみたのですが 別スタイルシートのcssをオブジェクト化して参照する方法が見当たらず 今の質問に至っています JQueryでできるようなレスがありましたので JSでもできるのだろうなと思って次の質問をしました 皆様質問の仕方に失礼があっって申し訳ありませんでした お許しくださいませ
468 名前:デフォルトの名無しさん mailto:sage [2022/12/23(金) 08:30:41.88 ID:d3IbDeU70.net] >>456 でクロスオリジンの場合にnullになるって指摘されてるけど、これに引っかかってるだけじゃないかな この場合はどうにもならんと思う
469 名前:デフォルトの名無しさん mailto:sage [2022/12/23(金) 10:44:42.21 ID:Lv24OjDar.net] >>459 ブラウザのコンソールで↓を実行したらどうなる? for(const ss of document.styleSheets){console.log(ss.href); console.log(ss.cssRules);}
470 名前:デフォルトの名無しさん mailto:sage [2022/12/23(金) 17:28:12.54 ID:o+ONuUnd0.net] >>460 で指摘している通り、他の所から読み込んだスタイルはそもそも変更出来ないって書いてあるんじゃね? https://w3c.github.io/csswg-drafts/cssom/ > Cross-origin stylesheets are not allowed to be read or changed. >>461 のように実際にcssRulesにアクセスすると自分の所のcssじゃない場合をアクセスしようとすると Uncaught DOMException: Failed to read the 'cssRules' property from 'CSSStyleSheet': Cannot access rules at <anonymous>:1:76 みたいなエラーになる cssをいじりたいのだろうけど、そういう低層の話じゃなくて本当にやりたい事を書いた方が答えが得られると思うよ 結局何がやりたいのか全く分からんw
471 名前:デフォルトの名無しさん mailto:sage [2022/12/23(金) 17:30:32.01 ID:o+ONuUnd0.net] 変な日本語になってるなw >>461 のように実際に自分の所のでは無いcssRulesをアクセスしようとすると Uncaught DOMException: Failed to read the 'cssRules' property from 'CSSStyleSheet': Cannot access rules at <anonymous>:1:76 みたいなエラーになる
472 名前:デフォルトの名無しさん mailto:sage [2022/12/23(金) 19:30:29.91 ID:OG24yN7PH.net] >>460 459,460,461 皆様ありがとうございます 具体的にこれをしたいというのはなかったんですけど js勉強していまして、そういうことできるのかな?という質問でした jsのエンジンは<link rel>を実行すると jsの実行コンテキストを記録するメモリ部分に <rel>の情報をロードして HTML要素を読み込んだ時に参照するという挙動なら クロスオリジンの適用を受けずに編集できるかなと そういう疑問も持ちまして質問させていただきました 皆様ありがとうございました
473 名前:デフォルトの名無しさん mailto:sage [2022/12/23(金) 20:54:13.31 ID:2ps+kI7qr.net] >>464 >クロスオリジンの適用を受けずに編集できるかなと 君の>>452 や>>459 の発言ではCSS参照が別ファイルでも同一オリジンでは問題なく出来て 別オリジンのみ問題が発生していると認識しているとは読み取れないけども 別ファイル即ち別オリジンと勘違いしてない? 同一オリジンなら別ファイルでも参照出来ることは理解してる?
474 名前:デフォルトの名無しさん mailto:sage [2022/12/23(金) 20:55:49.05 ID:OG24yN7PH.net] >>462 今勉強再開して思い出しました。 @keyframesのプロパティや値を 動的に変更したいと考えたのです 同じファイルなら <style id="st"> として、stから@keyframesを設定編集できますが 外部ファイルでの設定編集ができないので できたらいいな、って質問してみました
475 名前:デフォルトの名無しさん mailto:sage [2022/12/23(金) 20:57:53.66 ID:OG24yN7PH.net] >>465 勘違い、混乱してました。ありがとうございます!
476 名前:デフォルトの名無しさん mailto:sage [2022/12/23(金) 21:10:25.93 ID:2ps+kI7qr.net] >>467 で、>>452 で参照したかったのは本当に別サーバ等のcssだったのか それともhtmlやjsと同じ場所に置いてあるcssだったのかどっち?
477 名前:デフォルトの名無しさん mailto:sage [2022/12/23(金) 21:19:54.48 ID:OG24yN7PH.net] >>468 ローカルで、同じフォルダ内です
478 名前:デフォルトの名無しさん mailto:sage [2022/12/23(金) 21:28:01.20 ID:G5aj5uG70.net] @keyframesなんかも後のスタイルで再定義できるんだから DOMにstyle要素追加してそこに上書きルール突っ込んでそっちを操作すればいいじゃない
479 名前:デフォルトの名無しさん mailto:sage [2022/12/23(金) 21:39:17.88 ID:2ps+kI7qr.net] >>469 それは本来別オリジンではないんだけどブラウザがローカルアクセスに対するセキュリティの一環として制限をかけてる模様 詳しくはググって >>461 のスクリプトを実行して file:///~ の行のあとに例外が出るならそれが原因 対策としてはローカルにwebサーバを立ててhttp経由でアクセスする そうすればスクリプト実行で例外が発生せずcssの中身が読み取れる webサーバはそんな大層なものは必要なくてvscodeのLiveServerで十分
480 名前:デフォルトの名無しさん mailto:sage [2022/12/23(金) 21:55:43.41 ID:gwhrrj9D0.net] DevTools を弄れるなら、要素タブでスタイル欄を見れば 適用内容と設定元のファイルが行番号付きで確認できるし アニメーションを弄りたいなら、「その他のツール」に「アニメーション」がある(chrome)
481 名前:デフォルトの名無しさん mailto:sage [2022/12/24(土) 09:52:50.24 ID:Lk0KbRC60.net] 皆様いろいろありがとうございます 時間とれましたら確認させていただきます
482 名前:デフォルトの名無しさん mailto:sage [2022/12/24(土) 10:46:15.28 ID:se6E0pPpr.net] >>473 少し調べたらchromeのオプションでクロスオリジン制約を回避する方法があった chrome クロスオリジン で検索 これならwebサーバを立てる必要もなくてお手軽
483 名前:デフォルトの名無しさん mailto:sage [2022/12/24(土) 14:27:49.26 ID:0WYu35VL0.net] firefoxもsecurity.fileuri.strict_origin_policyをfalseにすれば回避できるけど 早いうちにローカルサーバ立てることを覚えた方が後が楽になると思うよ 対象要素が1つなら@keyframes書き換えるよりWebAnimationAPI使った方がいいかもしれないし やりたいことはぼかさずにはっきり書いた方がいいよ
484 名前:デフォルトの名無しさん mailto:sage [2022/12/24(土) 22:49:22.50 ID:oMpeQZG30.net] HTA(hta+ie)にとって替わるみたいな環境っていまだにないのかな PWAみたいのではなく、javascript(やvbs)でWindowsのフレームワーク(.NETやCOMやら)と連携できるようなやつが欲しい WebView2は思想的にHTAと比べて退化してるようにしか見えないけどこれぐらいなのか…
485 名前:デフォルトの名無しさん mailto:sage [2022/12/25(日) 03:50:26.67 ID:Y7ZN657d0.net] >>476 そういや前はちょっとしたツールを HTA で書いたりしたけど、もう使えない?
486 名前:デフォルトの名無しさん mailto:sage [2022/12/25(日) 12:52:51.27 ID:GFtl9gAsH.net] 皆さん、ありがとうございます 別シートのcssで可変にしたい部分を変数にし 読み込むシート側に変数専用のstyleタグを用意し 変数用のスタイルタグを編集することにしました 皆様いろいろとありがとうございました
487 名前:デフォルトの名無しさん mailto:sage [2022/12/25(日) 13:14:34.27 ID:g8CAn8EMr.net] 要するにクロスオリジン問題を解決して>>452 を実現したのではなくて 別の方法を取ったということ?
488 名前:デフォルトの名無しさん mailto:sage [2022/12/25(日) 13:37:10.68 ID:GFtl9gAsH.net] そうです >>470 様のアドバイスなら 私の学習レベルでもググり時間とられずにできそうだと思いまして style.css @keyframes xxx{ *** : var(--prm) } index.html <style id="prm"></style> <script> prm.innerHTML=":root {--prm:50% }" のように、変数を編集するstyleタグを設けました 見栄え悪いしかっこ悪いんですけど いろんな変数を設定変更する関数も自作できそうですので とりあえずはこれでいいかなと
489 名前:デフォルトの名無しさん mailto:sage [2022/12/25(日) 14:26:34.39 ID:kQ0MTzKr0.net] >>480 それならわざわざstyle要素作って直に操作する必要はない 変数の最初の定義もcssファイルの方に書いておいて 変更したい時は document.documentElement.style.setProperty("--prm", "100%"); とかすればいいだけ
490 名前:デフォルトの名無しさん mailto:sage [2022/12/25(日) 15:40:19.02 ID:GFtl9gAsH.net] >>481 ありがとうございます!そうさせていただきます。 今後ともいろいろ教えてください。ありがとうござました!
491 名前:デフォルトの名無しさん mailto:sage [2022/12/25(日) 16:48:37.78 ID:sJzx1gQhr.net] >>480 >私の学習レベルでもググり時間とられずにできそうだと思いまして webサーバ云々が億劫だってのは分かるからしょうがないけども せめて>>474 ぐらいは実際に試して欲しかったな ググって最初に出てくる記事にすぐ出来るやり方が具体的に書いてあるんだし
492 名前:デフォルトの名無しさん mailto:sage [2022/12/25(日) 16:50:28.05 ID:GFtl9gAsH.net] >>481 様 面白かったです。 <html><head><body><div> どの要素にでも、setProperty('param','value')を設定しておけば 別ファイルに作ったスタイルシートの変数を参照できるのですね 疑似的なコードですが <script> body.setProperty('--color','red') div.setProperty('--color','blue') html.setProperty('--color','green) とすると、子孫のスタイル設定が優先されることも理解できました とても面白く学習できました、ありがとうございました
493 名前:デフォルトの名無しさん mailto:sage [2022/12/25(日) 16:51:23.54 ID:GFtl9gAsH.net] >>483 ありがとうございます 次時間ができたときにぜひ調べて実行してみます
494 名前:デフォルトの名無しさん mailto:sage [2022/12/25(日) 17:00:33.10 ID:gv3ThvO8d.net] もう解決したんだしどうでもいいからお礼だけ言って体よく話を打ち切りたいって思いがヒシヒシ伝わってくるな
495 名前:デフォルトの名無しさん mailto:sage [2022/12/26(月) 13:51:42.59 ID:fuxINEHv0.net] >>471 様 Live serverを使って、別のスタイルシートで設定した、フォント色の変更はOKでした。 ありがとうございました。 ただ、@keyframesに関しては、CSSKeyframeRule__{keyText..,style,,cssText,,}__までは見れたのですが 内容の変更方法が分からないため断念しました 時間あるときに再チャレンジしてみます 皆様ありがとうございました
496 名前:デフォルトの名無しさん mailto:sage [2022/12/26(月) 15:01:08.23 ID:pO4MU7IP0.net] var ptEQ = 25.4 / 72; var SWmm = 0; mainfn(); function mainfn() { win1 = new Window('dialog', "Set Strokewidth"); win1.pnl = win1.add('panel'); win1.pnl.orientation = "column"; pg1 = win1.pnl.add('group'); pg1.orientation = "row"; pg1.add("statictext", [0, 0, 140, 23], "線幅を選択してください"); pg2 = win1.pnl.add('group'); rd21 = pg2.add("dropdownlist", [20, 40, 150, 65], ["0.1 mm", "0.12 mm", "0.15 mm", "0.2 mm", "0.25 mm", "0.3 mm", "0.4 mm", "0.5 mm", "0.6 mm" ]); rd21.selection = 0; pg9 = win1.pnl.add('group'); pg9.orientation = "row"; CAN = pg9.add("button", [0, 0, 100, 30], "cancel"); OK = pg9.add("button", [0, 0, 100, 30], "OK"); CAN.onClick = function() { win1.close() } OK.onClick = function() { win1.close(); dofn(); } win1.show(); }
497 名前:デフォルトの名無しさん mailto:sage [2022/12/26(月) 15:02:39.66 ID:pO4MU7IP0.net] function dofn() { var SWmmS = rd21.selection.text; var SWmm = parseFloat(SWmmS); var SWpt = SWmm / ptEQ; var rectObj = activeDocument.pathItems.rectangle(-420.94488, 297.638, 150, 100); rectObj.filled = false; rectObj.stroked = true; rectObj.strokeColor = CMYKfn(0, 0, 0, 100); rectObj.strokeWidth = SWpt; rectObj.selected = true; rectObj.remove(); function CMYKfn(c, m, y, k) { COL = new CMYKColor(); COL.cyan = c; COL.magenta = m; COL.yellow = y; COL.black = k; return COL; } }
498 名前:デフォルトの名無しさん mailto:sage [2022/12/26(月) 15:07:33.18 ID:pO4MU7IP0.net] 線幅を変更するスクリプトなのですが、一応完成しました。 自分で使うだけならこれでいいのですが、他人に使ってもらう場合、ダイアログに「線幅を追加する」という項目を増やしたいと思っています。 rd21 = pg2.add("dropdownlist", [20, 40, 150, 65], ["0.1 mm", "0.12 mm", "0.15 mm", "0.2 mm", "0.25 mm", "0.3 mm", "0.4 mm", "0.5 mm", "0.6 mm"]); のところに項目を追加していくようなコードを書くことは可能なのでしょうか? 自分自身を書き換えるコードだと思うのですが… (削除はどうでしょうか? 例えば0.15 mmがいらないと思った場合、"0.15 mm"のを削除するコードを書くことは可能ですか?)
499 名前:デフォルトの名無しさん mailto:sage [2022/12/26(月) 15:27:01.38 ID:oXRhIFIqd.net] スレ内を線幅で検索しても何も引っかからないのにこの書き出しで何か伝わると思ってるのすごいわ 線幅の配列を関数内で直書きしてるから自身を書き換えるとか面倒なことを考える必要があるわけで 関数の外に変数で宣言しとけば追加も削除もなんとでもなるでしょ
500 名前:デフォルトの名無しさん mailto:sage [2022/12/26(月) 15:55:16.01 ID:gS/UmYxh0.net] 確かIllustratorかなんかのスクリプトでしょ ここ見てるほとんどはWebブラウザやnode.jsのJavaScriptは知っててもそっちは知らないと思う 文法的にはJavaScriptと同じでも出てくるオブジェクトは独自のものだろうし説明しないとわからんよ
501 名前:デフォルトの名無しさん mailto:sage [2022/12/26(月) 16:14:37.67 ID:pO4MU7IP0.net] >>491 素人でもエディタで開かないとダメということですね。 var mm = ["0.1 mm", "0.12 mm", "0.15 mm", "0.2 mm", "0.25 mm", "0.3 mm", "0.4 mm", "0.5 mm", "0.6 mm"] // 線幅の項目を増やしたり削除したい場合は、上の1行を書き換えてください こう先頭に書き加えました。
502 名前:デフォルトの名無しさん mailto:sage [2022/12/26(月) 16:16:02.82 ID:pO4MU7IP0.net] >>492 すみません 気を付けます
503 名前:デフォルトの名無しさん mailto:sage [2022/12/26(月) 16:45:32.21 ID:oXRhIFIqd.net] >>493 意図が理解されなかったということが分かった コメント付けるって妥協するなら>>488 のままでもいいでしょ ここの住人はadobe独自のことは詳しくないんだし他所で聞いたほうが的確な答えが返ってくるよ そもそもここはスレ違い
504 名前:デフォルトの名無しさん mailto:sage [2022/12/26(月) 17:18:59.92 ID:l7z7KEaud.net] >>477 htaまだまだこれからだ ただhighDPI環境でスケーリング200%とかだとおかしな事になった想い出
505 名前:デフォルトの名無しさん mailto:sage [2022/12/26(月) 22:12:09.27 ID:LJgewTa3r.net] >>487 ①chromeで↓のurlを開く https://yari-demos.prod.mdn.mozit.cloud/ja/docs/Web/CSS/CSS_Animations/Using_CSS_animations/_sample_.making_it_move_back_and_forth.html ②chromeのコンソールを開いて↓を入力する document.styleSheets[1].cssRules[1].cssRules[0].style.marginLeft = "50%"
506 名前:デフォルトの名無しさん mailto:sage [2022/12/27(火) 15:47:36.10 ID:LHsOSApx0.net] >>497 ありがとうございました 所望の動作を確認できました JSはいろんな方法があるんですね
507 名前:デフォルトの名無しさん mailto:sage [2023/01/02(月) 12:58:47.15 ID:A6ceP6kcr.net] >>476 pythonのeelモジュールを使えば、昔のhtaっぽいことができます
508 名前:デフォルトの名無しさん mailto:sage [2023/01/02(月) 17:25:19.15 ID:V1TEslsJ0.net] >>499 OSに標準で入ってるedgeで使えるのはいいなあ 情報ありがとう
509 名前:デフォルトの名無しさん [2023/01/04(水) 19:01:14.59 ID:jNmuxM610.net] 「無名関数」、「関数リテラル」の理解がちょっとぼやけています。 次の様なコードがあったとき、 let calcResult = function calc(a,b){ return a*b; } calc() と()をつけて表せるものが普通の関数、それを変数に代入したもの calcResult が関数リテラルかと思っていました。 しかし、どうやら違うようで。。
510 名前:デフォルトの名無しさん [2023/01/04(水) 19:01:57.33 ID:jNmuxM610.net] 例えば以下の2つの関数があります。 ■「function関数」を変数に格納 let calcResult1 = function calc(a,b){ return a*b; } ■「無名関数」を変数に格納 let calcResult2 = function(a,b){ return a*b; } 「無名関数」は「関数リテラル」と同義である。とさまざまな文献に記述されています。 ならば、 calcResult1 は、関数リテラルではない。 calcResult2 は、関数リテラルである。 という認識で間違っていないでしょうか?
511 名前:デフォルトの名無しさん [2023/01/04(水) 19:02:26.96 ID:jNmuxM610.net] SetInterval() に与える引数は、関数リテラルでなくてはならないそうです。 となると、以下は誤りで、 SetInterval(calcResult1,1000); 以下なら問題ない SetInterval(calcResult2,1000); という理解でよろしいでしょうか?
512 名前:デフォルトの名無しさん mailto:sage [2023/01/04(水) 20:37:28.67 ID:UYb7FHhp0.net] https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Operators/function https://developer.mozilla.org/ja/docs/Glossary/Literal リテラルに関数は含まれてないな 「関数リテラル=無名関数」が間違ってて、calcResult1 も calcResult2 は、関数リテラル。 とイコールで結んじゃうのは乱暴か 字義に従えば「無名関数」には生成時に名前をつけなかった、程度の意味しかないかと ただ、関数式として生成された関数は変数に格納するか、でなければ他の関数の引数になるので、名前をつける意味はほぼない 結果的に関数式の関数は無名関数になることがほとんどで
513 名前:デフォルトの名無しさん mailto:sage [2023/01/04(水) 20:40:11.89 ID:UYb7FHhp0.net] ここでいう「関数リテラル」は関数式で記述された関数のことで、名前があろうとなかろうと「関数リテラル」でいいんだと思う
514 名前:502 mailto:sage [2023/01/04(水) 20:53:07.39 ID:UYb7FHhp0.net] 途中送信で変になってるからまとめ直し >>502 ,503 その文脈での「関数リテラル」ってのは関数式で記述された関数のこと(>>504 のリンク参照)で、名前の有無は関係ない 名前のあるcalcResult1 も 名前のないcalcResult2 も「関数リテラル」という理解でいいと思う 「無名関数」の「無名」には生成時に名前をつけなかった、程度の意味しかないかと ただ、関数式として生成された関数は変数に格納するか、でなければ他の関数の引数になるので、名前をつける意味はほぼなくて結果的に無名関数になることがほとんどではある
515 名前:デフォルトの名無しさん mailto:sage [2023/01/04(水) 20:57:54.46 ID:jNmuxM610.net] >>504 すっごい分かりやすい。 モヤモヤしていたのがすっきりしました。 ありがとうございました。
516 名前:デフォルトの名無しさん mailto:sage [2023/01/04(水) 21:00:20.48 ID:GLj+17iFr.net] 調べたら自分を再帰的に呼び出す場合に名前を付けるって例があってなるほどと思った
517 名前:デフォルトの名無しさん mailto:sage [2023/01/04(水) 21:21:00.43 ID:GLj+17iFr.net] ちなみに>>503 のsetIntervalの引数は関数リテラルでないといけないってのはどこ情報?
518 名前:デフォルトの名無しさん mailto:sage [2023/01/04(水) 21:23:57.48 ID:jNmuxM610.net] あれ。関数リテラルには引数はないのか。。引数の不要な関数しか関数リテラルにならんのか。 もちょっと調べてみます。
519 名前:デフォルトの名無しさん [2023/01/04(水) 21:32:15.85 ID:jNmuxM610.net] >>509 必要ならページ画像をどっかにアップします。。 技術評論社 JavaScript本格入門 https://gihyo.jp/book/2016/978-4-7741-8411-1 P362 setTimeout/SetIntervalメソッドの注意点 ...引数funcは必ず関数リテラルで指定してください。
520 名前:デフォルトの名無しさん mailto:sage [2023/01/04(水) 21:39:03.24 ID:jNmuxM610.net] でも何かの引数に関数をわたすときは、 一般的に関数リテラルで渡すのがデフォと ぼんやり思っている。
521 名前:デフォルトの名無しさん [2023/01/04(水) 21:47:22.56 ID:QxUfEWbZ0.net] 技術評論社はやめとけよ。
522 名前:デフォルトの名無しさん mailto:sage [2023/01/04(水) 21:55:58.51 ID:GLj+17iFr.net] >>511 文脈がわからんけど理由は書いてあるの? 動く動かないで言えばfunction文で定義した関数リテラルでない関数を渡しても動くようだけど そもそもMDNにも関数としか書いてないし
523 名前:デフォルトの名無しさん mailto:sage [2023/01/04(水) 22:20:18.03 ID:lFNs7lW+0.net] 単に著者が良く理解せずに書いてるだけな気がする
524 名前:デフォルトの名無しさん [2023/01/04(水) 22:21:10.60 ID:jNmuxM610.net] >>514 setTimeout()の例でしかもjQueryで 申し訳ないのですが。 1秒後に#displayのhtmlの内容を空にするコードです。 以下のようなコードではsetTimeoutが動かず、 setTimeout($('#display').html(' '), 1000); 代わりに、以下で動きます。 function clearDisplay(){ $('#display').html(''); } setTimeout(clearDisplay, 1000); このことから書籍にあるように 関数リテラルでないと引数に渡せないと 思っていました。。 書籍の文脈ですが、実際にあとで画像アップします。
525 名前:デフォルトの名無しさん mailto:sage [2023/01/04(水) 22:46:11.56 ID:GLj+17iFr.net] >setTimeout($('#display').html(' '), 1000); これそもそも渡してるの関数じゃないからリテラル云々の問題じゃなくない? html()が戻り値としてjQueryを返すからそれが引数として渡ってるでしょ >function clearDisplay(){ > $('#display').html(''); >} これもfunction「文」で定義してるから>>506 で言うところの関数リテラルには当てはまらない関数だよね
526 名前:デフォルトの名無しさん mailto:sage [2023/01/04(水) 23:53:56.91 ID:PU4coe7B0.net] アロー関数式を使うことで、関数リテラルによる関数定義を より簡略化して記述することができます ただし、this には注意してください
527 名前:デフォルトの名無しさん mailto:sage [2023/01/05(木) 00:01:25.43 ID:EVXeoiyo0.net] >>517 setTimeout($('#display').html(' '), 1000); これそもそも渡してるの関数じゃないからリテラル云々の問題じゃなくない? 渡しているのは関数じゃない。。 んー。メソッドか。だから動かない。 ありがとう。
528 名前:デフォルトの名無しさん mailto:sage [2023/01/05(木) 00:18:03.56 ID:7P17JKmwr.net] >>519 いや、関数かメソッドかの話じゃなくて $('#display').html(' ')をその場で実行してその戻り値であるjQueryオブジェクトを渡しちゃってるでしょって話 ちゃんと理解できてる? https://js.studio-kingdom.com/jquery/manipulation/html#1
529 名前:デフォルトの名無しさん mailto:sage [2023/01/05(木) 00:26:22.30 ID:EVXeoiyo0.net] 私の勘違いだったのですね。 たしかに関数ではない。。 一応書籍のページ画像をuploadしました。 「引数funcは必ず関数リテラルで指定してください。」 https://uploda1.ysklog.net/uploda/8298a4c0da.png 「関数リテラルは....ある関数の引数として渡したり....」 https://uploda1.ysklog.net/uploda/0bcdf35455.png
530 名前:デフォルトの名無しさん mailto:sage [2023/01/05(木) 00:27:48.45 ID:EVXeoiyo0.net] >>520 理解したありがとう!
531 名前:デフォルトの名無しさん mailto:sage [2023/01/05(木) 02:04:13.18 ID:hRDnYJsk0.net] >>521 「引数funcは必ず関数リテラルで指定してください。」 ちょっと問題のある文章だなあ https://developer.mozilla.org/ja/docs/Web/API/setTimeout 第一引数は関数またはjavascriptコードとして実行される文字列 関数ってのは関数呼び出しじゃなくて関数名、または無名関数(関数リテラル) >>516 文字列で渡したら動くはず setTimeout("$('#display').html(' ')", 1000);
532 名前:デフォルトの名無しさん mailto:sage [2023/01/05(木) 06:17:33.15 ID:O+NRT3S+0.net] >>523 > 「引数funcは必ず関数リテラルで指定してください。」 > ちょっと問題のある文章だなあ まあそこは直前に文字列でも指定できるけどって書いてるから教育的指導なんだろうとは思う まあ「必ず」という言葉が強すぎるから「引数funcは関数リテラルで指定するようにしてください。」程度でいいと思う むしろ問題は「関数リテラルは宣言した時点では、名前を持たないことから匿名関数、または無名関数と呼ばれることもあります。」の方だろうね
533 名前:デフォルトの名無しさん mailto:sage [2023/01/05(木) 09:18:58.87 ID:EVXeoiyo0.net] >>523 >文字列で渡したら動くはず >setTimeout("$('#display').html(' ')", 1000); ありがとう。関数とは、関数呼び出しではなく実行される文字列 次いでもう一点お願いします。 https://uploda1.ysklog.net/uploda/0bcdf35455.png リスト4-04 function_literal.js 以下は、関数リテラルを使ってリスト4-01を書き換えたものです。 var getTraiangle = function(base,height){ return base * height/2; } console.log('三角形の面積:'+getTrianle(5,2)); ↑の getTrianle(5,2) は、関数リテラルなのですね。 てっきり()がないものが関数リテラルと思っていたが、 どうも、それも間違いようで。
534 名前:デフォルトの名無しさん mailto:sage [2023/01/05(木) 09:20:11.59 ID:EVXeoiyo0.net] あくまで、関数を変数に代入するということが、重要なのでしょうか?
535 名前:デフォルトの名無しさん [2023/01/05(木) 09:23:08.82 ID:EVXeoiyo0.net] 「関数呼び出し」と 「引数付の関数リテラル」は それだけみても違いわからないですね。 定義された場所を見て判断しないと。
536 名前:デフォルトの名無しさん mailto:sage [2023/01/05(木) 10:06:29.26 ID:rM8SDmmnr.net] >>525 >>setTimeout("$('#display').html(' ')", 1000); >ありがとう。関数とは、関数呼び出しではなく実行される文字列 いやいや、それは関数じゃなくてただの文字列 setTimeoutの第一引数は文字列か関数って書いてあるでしょ 関数リテラルって言葉はもう忘れていいと思うよ そもそもMDNに記述がないから便宜的なものだし、その本での説明も怪しい 定義の仕方で区分されてるだけで実質的にはただの関数で 挙動に差異があるわけでもないだろうし
537 名前:デフォルトの名無しさん mailto:sage [2023/01/05(木) 10:52:19.71 ID:rM8SDmmnr.net] >>524 >「引数funcは関数リテラルで指定するようにしてください。」程度でいいと思う それだとfunction命令で定義した関数は指定してはいけないと誤解されるからリテラルを削ったほうがいいかと
538 名前:デフォルトの名無しさん mailto:sage [2023/01/05(木) 10:52:37.45 ID:uFu
] [ここ壊れてます]
539 名前:uDD5j0.net mailto: >>525 関数リテラルという呼び方はひとまず置いといて、無名関数という概念でとらえるとよい function(~~){~~} は見ての通り、ひとつの無名関数である var getTraiangle = function(base,height){ return base * height/2; } によって、変数getTraiangle でこの無名関数を参照できるようになる getTraiangle(5,2) では変数名を使って先の無名関数を呼び出し、戻り値が取得される これは一般に「関数の戻り値」と呼ばれる (関数リテラルではない) console.log('三角形の面積:'+getTraiangle(5,2)); では、「+」によって、文字列 '三角形の面積:' と数値である戻り値が連結されて、ひとつの文字列が生成される console.log()がそれを出力する >>527 何かしら(無名)関数を使うにあたり、引数が要るなら付ける、要らないなら付けない、それだけの話 あなたの言う「引数付の関数リテラル」は勘違いで、「引数付きの関数呼び出し」に過ぎない >>526 そういうこと [] [ここ壊れてます]
540 名前:デフォルトの名無しさん mailto:sage [2023/01/05(木) 11:50:49.92 ID:hRDnYJsk0.net] >>525 >setTimeout("$('#display').html(' ')", 1000); ありがとう。関数とは、関数呼び出しではなく実行される文字列 違う。全く違う。めっちゃ大事なことだから勘違いしないで それはsetTimeoutoの第一引数を文字列として指定した場合のこと 第一引数に関数を指定する方法は>>516 で君は既にやっている setTimeout(clearDisplay, 1000); clearDisplay関数を定義してそれをsetTimeoutの第一引数に渡している これでいい >>529 の言う通り >>528 の言う通り今は無名関数とか関数リテラルとかにこだわらない方がいい >>525 のうp画像に無名関数は重要な概念なので後ほど詳述ってあるからそこをみっちり勉強してね
541 名前:デフォルトの名無しさん mailto:sage [2023/01/05(木) 12:50:07.72 ID:w+0CNSMQr.net] 関数リテラルの説明についてはここが一番しっくりくる https://www.javadrive.jp/javascript/function/index5.html 「関数リテラルを使った関数定義」って言い回しを強調してるのが良い だから関数リテラルを引数として渡すって言ったらこういうことだよなって dispNum(10, 8, function(x, y){ return (x + y) / 2; });
542 名前:デフォルトの名無しさん mailto:sage [2023/01/05(木) 14:46:47.66 ID:EVXeoiyo0.net] すいません。やっぱり関数リテラルという意味を理解したい。。でも↓この質問でわかるかも。 だれか答えていただけますでしょうか? --- 次のコードがあります。1から5のうち どれが適切でしょうか? let dispMessage = function(msg){ console.log(msg); }; 1. function(msg){console.log(msg);} は関数リテラルである。 2. dispMessage は関数リテラルである。 3. let dispMessage = function(msg){ console.log(msg); }; が全体として関数リテラルである。 4. 全て関数リテラルとはいえない。 5. 関数リテラルとは、用法のことであり、 コード部分を表すものではない。
543 名前:デフォルトの名無しさん mailto:sage [2023/01/05(木) 14:53:38.67 ID:mmmJuCOb0.net] >>533 ぐぐったら以下の様に出る。結構理解しやすいと思うが。 リテラルとは リテラルとは、プログラムのソースコードにおいて使用される、数値や文字列を直接に記述した定数のことである。 変数の対義語であり、変更されないことを前提とした値である。 プログラミング言語のコード中にリテラルが挿入される場合には、判別のために特定の書式を用いる必要がある。
544 名前:デフォルトの名無しさん mailto:sage [2023/01/05(木) 15:02:17.50 ID:EVXeoiyo0.net] うん。「リテラル」ということばによって惑わされてきた気がする。
545 名前:デフォルトの名無しさん mailto:sage [2023/01/05(木) 15:06:19.08 ID:akcN5qw4a.net] 関数リテラルは関数として評価可能な右辺値と考えておけばまあいいんじゃないの 正確な定義は構文木の定義を見れば書いてある
546 名前:デフォルトの名無しさん mailto:sage [2023/01/05(木) 15:10:13.35 ID:HxGsZjLmr.net] >>533 1だろう let s = "abc"; の"abc"を文字列リテラルと呼ぶけどそれを代入した変数sを 文字列リテラルとは呼ばないでしょ
547 名前:デフォルトの名無しさん mailto:sage [2023/01/05(木) 15:28:42.13 ID:c7qQflpDr.net] >>533 で、繰り返しになるけど本やサイトによっても説明がまちまちで MDN探しても出てこないような用語だからあまり囚われない方がいい 理解しようとして時間をかけるだけ無駄
548 名前:デフォルトの名無しさん mailto:sage [2023/01/05(木) 15:35:00.85 ID:m3Sm+5EJ0.net] >>533 強いて言えば1かな でも数値・文字列・正規表現リテラルみたいにプログラム中に単独で書くことは出来ないね 変数に代入するなり関数の引数に使うなりしないとエラーになる 英語でもfunction literalっていうみたいだけど関数リテラルってあんまりいい言葉だと思わないなあ 33; "hello"; /^js$/; function() {return true}; //SyntaxError こんなことにこだわるよりもっと基本的なこと勉強した方方がいいんじゃないの?
549 名前:デフォルトの名無しさん mailto:sage [2023/01/05(木) 15:38:00.87 ID:EVXeoiyo0.net] あ。 誤解していたところがとけました。 当初は「2」かと妄信していたので、 だいぶ合点がとれました。 関数リテラルが無名関数と同義という説明も いやそうではないという説明も すっきりしました。 皆さん長々とお付き合いいただき ありがとうございました。
550 名前:デフォルトの名無しさん mailto:sage [2023/01/05(木) 19:28:05.49 ID:j61eMuZ00.net] >>513 技術評論社のjQuery本格入門はものすごく読みづらかった。 もっと分かり易い言葉で解説して欲しかった。
551 名前:デフォルトの名無しさん mailto:sage [2023/01/05(木) 20:02:55.70 ID:EVXeoiyo0.net] >>536 >関数リテラルは関数として評価可能な右辺値と考えておけばまあいいんじゃない この発想というか常識が無かったなあ。
552 名前:デフォルトの名無しさん mailto:sage [2023/01/05(木) 20:55:47.77 ID:XhDooIHVH.net] >>533 自分もあまりJS詳しくないんですけど リテラルっていうのは、括るもの、という意味合いでは? オブジェクトリテラルっていうのは波かっこで括るオブジェクト={} 文字列のリテラルは、""や’’ 展開のリテラルは、``とか 関数のリテラルというのは、functionを指定した引数括弧つきのオブジェクトリテラルでfunction(){} 関数リテラルといえば、例えばfunction func(){...} とした場合、{...}は変数funcに文字列として代入されます そしてfuncは関数オブジェクトと指定されていて 関数の実行は()を読み込むことで実行されます func 文字列 () 関数の実行
553 名前:デフォルトの名無しさん mailto:sage [2023/01/05(木) 21:01:26.21 ID:XhDooIHVH.net] >>533 解決済みだったようですみませんでした 参考までに追加 function func(){return 1} とした場合 console.log(func) と console.log(func()) を見比べるとわかりますが、 func変数の中身は、function指定された文字列で func()は関数を実行した結果の1が表示されます
554 名前:デフォルトの名無しさん mailto:sage [2023/01/05(木) 21:40:35.47 ID:n/EqvkXYr.net] >>543 JavaScriptのリテラルに関してはまず下記を読んでください 括
555 名前:チてあればリテラルというわけではないです https://developer.mozilla.org/ja/docs/Web/JavaScript/Guide/Grammar_and_types#%E3%83%AA%E3%83%86%E3%83%A9%E3%83%AB [] [ここ壊れてます]
556 名前:デフォルトの名無しさん mailto:sage [2023/01/05(木) 22:26:48.61 ID:XhDooIHVH.net] >>545 括る、というのはそういう意味かと リテラルはリテラルなので括る必要はなくて プリミティブは、これは文字列です、 これは配列です、 これはオブジェクトです とエンジンに理解させるための記述なのかと思いまして
557 名前:デフォルトの名無しさん mailto:sage [2023/01/05(木) 22:39:53.19 ID:scsW7zY90.net] リテラルはベた書きで良かろう
558 名前:デフォルトの名無しさん mailto:sage [2023/01/05(木) 22:41:03.03 ID:n/EqvkXYr.net] >>546 申し訳ないけど全体的に文意が取れません 1行目の「そういう意味」は何を指してますか?
559 名前:デフォルトの名無しさん mailto:sage [2023/01/05(木) 22:57:51.54 ID:XhDooIHVH.net] 括ることで、エンジンに対して、これは配列オブジェクトだよとか これは{}だよとか、これは文字列だよとか、そういうことを伝えているってことですけど
560 名前:デフォルトの名無しさん mailto:sage [2023/01/05(木) 22:59:39.77 ID:O+NRT3S+0.net] >>543 > リテラルっていうのは、括るもの、という意味合いでは? >>546 > リテラルはリテラルなので括る必要はなくて 自分で何書いてるのか理解できてる?
561 名前:デフォルトの名無しさん mailto:sage [2023/01/05(木) 23:00:08.63 ID:O+NRT3S+0.net] >>549 数値リテラル
562 名前:デフォルトの名無しさん mailto:sage [2023/01/05(木) 23:12:56.82 ID:XhDooIHVH.net] <<538 諄いですね 正しい理論的な話あればご披露ください JSの処理エンジンに、どういう記述があれば どう処理するかというのがあるでしょ {}とう記述を読めば、オブジェクトなのだな、と ””ならもじれるなのかなと、 function でて意義されたものがあれば関数なのかなと リテラルは数値などの表現で 文字列は””、’’のクオーテーションで 関数は、function装飾委sで それぞれが何を表現してるのかを確認し スクリプト実行時にそれらをコンテキストに登録して その後の作動を担保する、ってことなのかな
563 名前:デフォルトの名無しさん mailto:sage [2023/01/05(木) 23:17:36.32 ID:/79BsoYR0.net] 一から教えるにはここじゃスペースが足りないからまず入門書一冊買って読め。
564 名前:デフォルトの名無しさん mailto:sage [2023/01/05(木) 23:20:08.45 ID:XhDooIHVH.net] 先生、ありがとうござす 時間とれましたら勉強してみます、ありがとうです
565 名前:デフォルトの名無しさん mailto:sage [2023/01/05(木) 23:20:49.68 ID:n/EqvkXYr.net] 中途半端に字句解析、構文解析の話になってるのか・・・ 誰もそんなレベルの話はしてないのに
566 名前:デフォルトの名無しさん mailto:sage [2023/01/05(木) 23:28:36.71 ID:V3WBk68sd.net] 誤変換の多さと言い意味の通ってなさと言い酔っ払ってるとしか思えんなw
567 名前:デフォルトの名無しさん mailto:sage [2023/01/05(木) 23:34:22.58 ID:XhDooIHVH.net] すみませんでした、もっと勉強します
568 名前:デフォルトの名無しさん mailto:sage [2023/01/06(金) 12:07:23.77 ID:ipvOzmbWr.net] 勉強しますの前にまず筋の通った主張を相手に分かるようにお願いします >>550 の指摘もそういうことだし
569 名前:538 mailto:sage [2023/01/06(金) 17:52:02.25 ID:AgA2i3Ln0.net] リテラルって文字列とか数値というイメージ だから、 let dispMessage = function(msg){console.log(msg)} っていう文があれば、関数リテラルならどうみても 左側の変数の文字列の事って思うじゃないですか。 右側はfunctionとか{}とか()とかあるので、 リテラルからかけ離れていると思ってました。 どうりで、話が噛み合わないなと思ってたが 今、全部なっとく。ありがとうございました!
570 名前:デフォルトの名無しさん [2023/01/06(金) 21:33:28.00 ID:Ynt2iWE0M.net] リテラルはもともと「文字通りの」って意味 ソースに書いた内容が変数とかを介さずにそのまま1つの値として評価されるもの 括弧で括るとかの意味は全く無い
571 名前:デフォルトの名無しさん mailto:sage [2023/01/06(金) 22:25:41.09 ID:Th1PE0Z2H.net] リテラル ””や’’で表現されるのは文字列と評価する []は配列と評価する {}はオブジェクトと評価する JSエンジンがオブジェクトをどう評価して処理するかということだと思ったんですけど 何やら全く的外れなこと言ってたみたいですみませんでした 何度も謝ったのでもう許してください、鬼神様
572 名前:デフォルトの名無しさん mailto:sage [2023/01/06(金) 23:10:59.17 ID:AlXqoCEJr.net] >>561 的外れなことを繰り返し書かなくていいから黙って>>504 を読んでおいて
573 名前:デフォルトの名無しさん mailto:sage [2023/01/07(土) 08:36:35.89 ID:I26x6s3dH.net] 時間があるときに読んでおきます
574 名前:デフォルトの名無しさん [2023/01/07(土) 11:56:48.02 ID:n88Tb37q0.net] >>563 いますぐ読みたまえ
575 名前:デフォルトの名無しさん mailto:sage [2023/01/07(土) 12:11:11.83 ID:Oa/pj9jla.net] 読めたら読みます
576 名前:デフォルトの名無しさん [2023/01/07(土) 12:11:57.01 ID:n88Tb37q0.net] >>565 読めなくても読むのだ
577 名前:デフォルトの名無しさん mailto:sage [2023/01/07(土) 15:51:52.95 ID:zzWcN8NZd.net] >>561 わざわざもう1回書いたのは自分の中ではこれが正しいという思いが捨てられなくて 賛同してくれる人が現れないかと期待してってところか
578 名前:デフォルトの名無しさん [2023/01/07(土) 18:24:30.76 ID:2xit7B8+0.net] 再帰関数についての質問 function test(){ 処理1 test(); 処理2 } とした場合 処理2の前にtest()があるので、処理2はずっと実行されないということですか?
579 名前:デフォルトの名無しさん mailto:sage [2023/01/07(土) 18:46:02.96 ID:Oa/pj9jla.net] いいえそれは処理1次第です
580 名前:デフォルトの名無しさん [2023/01/07(土) 19:05:43.05 ID:2xit7B8+0.net] >>569 ありがとうございます 処理1はreturnや他関数への再帰はしないものとします
581 名前:デフォルトの名無しさん mailto:sage [2023/01/07(土) 19:11:57.35 ID:GmV1yQnL0.net] 最大の再帰の深さは JavaScript エンジンによって制限されていて その範囲内で終了条件を満たすように作る必要があります でなければエラー終了するので、無限再帰は有り得ません
582 名前:デフォルトの名無しさん mailto:sage [2023/01/07(土) 21:33:23.91 ID:YilgzCe20.net] そもそも永久に再帰は無理なのを理解していないのか? それと何故再帰を使うのかという理由が全く分からん
583 名前:デフォルトの名無しさん mailto:sage [2023/01/08(日) 01:51:54.62 ID:uPZeFpc/0.net] まあ普通は無限ループだな わざわざ再帰にしなければいけない 理由が何かだな
584 名前:デフォルトの名無しさん mailto:sage [2023/01/08(日) 01:53:28.42 ID:FOdy7Dic0.net] 末尾再帰最適化が保証されている言語では特定条件を満たせばさもループの代替として使えるが javascriptではそうはならなかった 以上
585 名前:デフォルトの名無しさん [2023/01/08(日) 01:53:30.69 ID:gpkzwVQsM.net] 末尾最適化されてれば無限ループ可能でしょ? ES2015で末尾最適化の仕様化されたけど適合してない実装が多いというだけ
586 名前:デフォルトの名無しさん [2023/01/08(日) 01:54:05.49 ID:gpkzwVQsM.net] ありゃ被ったか
587 名前:デフォルトの名無しさん mailto:sage [2023/01/08(日) 02:24:13.14 ID:FOdy7Dic0.net] 規格があっても準拠するかどうかは実装次第というね ちなみにjavascriptは関数がファーストクラスでレキシカルスコープを持つためいわゆるクロージャを無意識に生成できる クロージャがあれば末尾再帰できないからと不自由に感じることはないと思われる
588 名前:デフォルトの名無しさん [2023/01/08(日) 17:51:20.88 ID:TObCTh0j0.net] >>572 @supportsや@mediaのネストされたcssの全プロパティ値を取得するために 再帰使いたかった
589 名前:デフォルトの名無しさん mailto:sage [2023/01/09(月) 07:24:55.41 ID:Bl4X3MiM0.net] >>578 無限にネストすることはないはずだが
590 名前:デフォルトの名無しさん mailto:sage [2023/01/09(月) 12:44:15.19 ID:mLvtK4oer.net] >>578 を実現するにしても>>568 にはならんと思うけども
591 名前:デフォルトの名無しさん mailto:sage [2023/01/09(月) 13:34:27.76 ID:nBXeWSyT0.net] ホントになw // aはarray function test(a) { a.forEach( b => { if (b.isArray()) { test(b) } }) } みたいな感じなら分かるがw
592 名前:デフォルトの名無しさん mailto:sage [2023/01/09(月) 15:00:57.73 ID:2yNmR2Eh0.net] ノードを全部舐めるみたいなトラバース系の処理はエンジンの制限とか気にするなら再帰のロジックを配列とループで作った方が安全だし 恐らく関数を呼び出すより速いから検討してみてね
593 名前:デフォルトの名無しさん [2023/01/14(土) 18:28:43.16 ID:WRdKOG7o0.net] 質問 scriptタグで指定されてるリンク先をjavascriptで変えたい 例えば. script type="text/javascript" src="A” になってんのを script type="text/javascript" src="B”に変えたい replace等でやろうとしたものの上手くいかなかった
594 名前:デフォルトの名無しさん mailto:sage [2023/01/14(土) 20:27:52.90 ID:Ww/QFSM20.net] ちょっとググったら出てくるやろw https://www.softel.co.jp/blogs/tech/archives/6794
595 名前:デフォルトの名無しさん [2023/01/14(土) 23:08:43.95 ID:WRdKOG7o0.net] >>584 ありがとうございます… 本当に助かりました…
596 名前:デフォルトの名無しさん (アウアウウー Sac7-wtyD [106.146.97.205]) mailto:sage [2023/01/15(日) 01:42:33.54 ID:k1TuDUU1a.net] 確かに以下のように、jQuery で、script タグのsrc 属性を、 a.js から、b.js へ変えても、scriptタグが再読み込みされない $("script[src='a.js']:first").each(function (index, elem) { $(elem).attr('src', 'b.js'); }); 新たなscriptタグを追加してから、元のscriptタグを削除すれば、読み込まれるかも
597 名前:デフォルトの名無しさん mailto:sage [2023/01/15(日) 02:01:27.46 ID:iV9MAA6y0.net] 読み込まれたスクリプト自体はscript要素消しても消えない事に注意
598 名前:デフォルトの名無しさん [2023/01/15(日) 13:53:25.79 ID:0IRxms8qM.net] ルーターのブロードステーションに電源を入れると エッジブラウザが起動して自動的にブロードステーションのルーターのページが表示されます。 ブロードステーション関連のソフトウェアは一切インストールしていないにもかかわらずです。 これって動きだけ見ますとルータが勝手にこっちのpcを操作してるように見えるのですがどういう仕組みなんでしょうか? ブラウザ(JavaScript)はページ内しか操作出来ない筈なんですが。
599 名前:デフォルトの名無しさん mailto:sage [2023/01/15(日) 15:02:28.33 ID:yvxMece60.net] よろしくお願いします 【環境】Win11,Chrome 【何をしたのか】下記コードをHTMLファイルにしてchromeで読み込ませて、コンソールで見た JSONのItemsを一個追加して、追加したageだけ書き換えたいが、両方書き換わる 【エラーメッセージ】エラーメッセージはない 【期待する結果】Itemsの2個めのageだけが40になるはず 【サンプルコード】現象を再現可能な最小限のコードを書いてください。 <script> json = { "color_list": [ "red", "green", "blue" ], "Items": [ { "name": "Tanaka", "age": 26 }, ] } data0=json["Items"][0] json["Items"].push(data0) console.log("before"); console.log(json["Items"][0]["age"]); console.log(json["Items"][1]["age"]); json["Items"][1]["age"]=40 console.log("after"); console.log(json["Items"][0]["age"]); console.log(json["Items"][1]["age"]); </script> 結果 before 26 26 after 40 40
600 名前:デフォルトの名無しさん mailto:sage [2023/01/15(日) 15:12:37.19 ID:XTiaoq8f0.net] >>589 そのコードで、参照がコピーされているので data0={...json["Items"][0]} とすればいい
601 名前:デフォルトの名無しさん mailto:sage [2023/01/15(日) 15:18:59.77 ID:iV9MAA6y0.net] >>589 https://developer.mozilla.org/ja/docs/Glossary/Deep_copy
602 名前:デフォルトの名無しさん mailto:sage [2023/01/15(日) 15:22:38.08 ID:yvxMece60.net] >>590 ,591 できましたありがとうございます。
603 名前:デフォルトの名無しさん mailto:sage [2023/01/15(日) 15:31:02.14 ID:XTiaoq8f0.net] この場合はこれで十分ですが スプレッド構文はシャローコピーなので、 データがより複雑な構造の場合は、それなりの記述が必要です
604 名前:デフォルトの名無しさん mailto:sage [2023/01/15(日) 15:40:55.97 ID:iV9MAA6y0.net] >>588 キャプティブポータルの検出機能が誤爆してるんじゃないかな
605 名前:デフォルトの名無しさん mailto:sage [2023/01/15(日) 20:06:20.61 ID:7dUg93Xk0.net] mainfn() function mainfn(){ pg1 = win1.pnl.add('group') pg1.orientation = "row" pg1.add("statictext", [0,0,70,23], "拡大・縮小") rd11 = pg1.add("edittext", [0,0,40,23], 100) pg1.add("statictext", [0,0,30,23], "%") pg9 = win1.pnl.add('group') pg9.orientation = "row" CAN = pg9.add("button",[0,0,100,30],"cancel") OK = pg9.add("button",[0,0,100,30],"OK") CAN.onClick = function(){win1.close()} OK.onClick = function(){ win1.close() dofn() } win1.show() } function dofn(){ bai = parseFloat(rd11.text) …… 以下略 これが正常に動作するのですが、rd11はローカル変数だとおもうのですが、なぜ違う関数内(dofn())から読めるのでしょうか? こういう書き方が出来るのなら楽なのですが…
606 名前:デフォルトの名無しさん mailto:sage [2023/01/15(日) 20:27:36.55 ID:Vv6s9YYpr.net] 関数内でvarを付けずに宣言された変数はグローバルスコープになる var rd11 = pg1.add("edittext", [0,0,40,23], 100) とすると関数スコープになって外部からアクセスできなくなるはず 関数内での変数宣言はvar文で行うべきで これを「楽」と思ってしまうのは危険
607 名前:デフォルトの名無しさん mailto:sage [2023/01/15(日) 20:53:03.10 ID:7dUg93Xk0.net] >>596 ありがとうございます 非常に勉強になりました
608 名前:デフォルトの名無しさん mailto:sage [2023/01/15(日) 21:30:36.07 ID:YqyTW3mJr.net] >>597 'use strict'が効くならスクリプトの先頭行に書いとくといいよ
609 名前:502 mailto:sage [2023/01/15(日) 23:28:40.23 ID:bMctduL80.net] >>595 それAdobe Illustratorかなにかで使うソースでしょ? どういう環境で使うソースなのかは一言書いといた方がいいよ
610 名前:デフォルトの名無しさん mailto:sage [2023/01/15(日) 23:45:44.09 ID:r5uLxMWea.net] ES2015(ES6)以降は最低限、 変数宣言にはvar ではなく、let/const を付けよう
611 名前:デフォルトの名無しさん mailto:sage [2023/01/15(日) 23:55:04.30 ID:cRCjJN100.net] >>599 この指摘は何度も見てるが、いつになっても改善されない 質問者にとっては直す気がない、どうでもいい問題なんだろうな…
612 名前:デフォルトの名無しさん mailto:sage [2023/01/15(日) 23:55:05.86 ID:5X3ij1Yxr.net] >>600 このadobeのスクリプトはES3相当らしいのでvarを案内してるのよ まあそもそもスレ違いだからID:7dUg93Xk0は今後adobeのフォーラムで質問するようにね その方が我々も余計な労力を払わなくていいし君も的確な回答がもらえる https://community.adobe.com/t5/forums/searchpage/tab/message?filter=location&q=%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88%20script&noSynonym=false&location=category:jp&collapse_discussion=true
613 名前:デフォルトの名無しさん mailto:sage [2023/01/15(日) 23:55:37.31 ID:cRCjJN100.net] >>599 この指摘は何度も見てるが、いつになっても改善されない 質問者にとっては直す気がない、どうでもいい問題なんだろうな…
614 名前:デフォルトの名無しさん mailto:sage [2023/01/15(日) 23:57:40.43 ID:cRCjJN100.net] 申し訳ない 投稿エラーで再投稿したら、二重投稿になってた
615 名前:デフォルトの名無しさん mailto:sage [2023/01/16(月) 01:46:54.32 ID:DS9XkUYq0.net] >>599 すみません 次から書きます あまりillustratorに特化したことは質問しません
616 名前:デフォルトの名無しさん mailto:sage [2023/01/16(月) 01:51:10.12 ID:DS9XkUYq0.net] >>598 そういうのがあるんですね 知らなかったです
617 名前:デフォルトの名無しさん mailto:sage [2023/01/16(月) 02:24:41.48 ID:SauNqkHgr.net] >>606 知った以上次からそちらにに行って質問してください 環境の説明も必要ないしillustratorに特化した質問もし放題だし良いことづくめですよ
618 名前:デフォルトの名無しさん mailto:sage [2023/01/16(月) 08:45:42.10 ID:Hbn6MJh3M.net] イラレ特化だからではなくてJavaScriptのバージョンの問題なんだけど なんも書いてなければ最新のモダンブラウザのつもりでみんな考える 今JavaScriptのバージョンってES12くらいかね、あんまりそういう言い方しないけど イラレ搭載のはES3なの?それも知らんけど クッソ古いから使える文法も関数もまるで違うから環境を書けと言っているのよ そこらへん多分知らなかったんだろうけど、それは仕方ないけど、次からは環境きちんと書いて というかできれば以降はAdobeのフォーラムでやって
619 名前:デフォルトの名無しさん mailto:sage [2023/01/17(火) 01:44:26.39 ID:BTJjkb3Ra.net] >>589 C/C++ 以外の言語は、参照しかコピーしない・shallow copy。 実体は再作成されない なので、deep copy するのに、参照のリンクが切れないので困る だから、marshal とか、わざわざオブジェクトをJSON 文字列化して、 その文字列から、新しいオブジェクトを作ったりする
620 名前:デフォルトの名無しさん mailto:sage [2023/01/17(火) 16:25:41.45 ID:XA7n1WWP0.net] >>609 え?
621 名前:デフォルトの名無しさん mailto:sage [2023/01/17(火) 19:01:55.76 ID:LBqNgpc6H.net] ポインタのこと?
622 名前:デフォルトの名無しさん mailto:sage [2023/01/18(水) 00:05:10.90 ID:csewAuIZ0.net] 検索アドレスに言語指定が必要になって下のスクリプトを書きました。 function Jump(){ var kekka = "ht"+"tp://www.concertzender.nl/?s=" + document.concertzender.kensaku.value + "&lang=nl"; location.href = kekka; return; } kensaku は検索フォームの文字列です。これで正常動作するのですが、 エラーチェックすると&が警告されて気になります。 &にしたらアドレスが&になって検索できないし、 なんとかならないものでしょうか・・・
623 名前:デフォルトの名無しさん mailto:sage [2023/01/18(水) 00:09:24.42 ID:csewAuIZ0.net] 上 &amp; です &#038; でも同じです
624 名前:デフォルトの名無しさん mailto:sage [2023/01/18(水) 06:35:54.86 ID:guU+fOES0.net] この気持ち悪いの何? > "ht"+"tp
625 名前:デフォルトの名無しさん mailto:sage [2023/01/18(水) 07:40:19.90 ID:Eqd2U92jH.net] documentのpropertyにconcertzenderって標準でないっしょ? スクリプトのどっかでなんか設定してるん?
626 名前:デフォルトの名無しさん mailto:sage [2023/01/18(水) 07:41:25.64 ID:Eqd2U92jH.net] それとエラーの内容も書き込まずにして質問っていうのもどうなの?
627 名前:デフォルトの名無しさん mailto:sage [2023/01/18(水) 08:57:37.16 ID:cgb3Ru010.net] >>614 5ch対策でしょ
628 名前:デフォルトの名無しさん mailto:sage [2023/01/18(水) 10:05:55.23 ID:csewAuIZ0.net] >>616 すいません。単純に特殊文字ダメよという内容だったんで・・・ "&lang=nl"; "&lang=nl"; もし、"&" で始まるエンティティを含めるつもりなら、";" で終了させるべきです。 このエラーメッセージのもう一つの理由は、このテキストの直前にある「&」文字をエスケープしなかったために、 誤ってエンティティを作成してしまったことです。(機械翻訳) 自分としては&amp;と書いて、リンクアドレスとして&を出力したいわけです・・・
629 名前:デフォルトの名無しさん mailto:sage [2023/01/18(水) 10:16:20.21 ID:guU+fOES0.net] >>617 あーそういうことか。コピペコードで悪さでもしようとしているのかと思ったけど違うみたいね >>612 大体どの言語でもクエリ文字列を作る仕組みが用意されているのでそれを利用するのが適切です JavaScriptならコレかな URLSearchParams https://developer.mozilla.org/ja/docs/Web/API/URLSearchParams
630 名前:デフォルトの名無しさん mailto:sage [2023/01/18(水) 11:11:32.49 ID:CwkcAAQnr.net] >>618 載せるならエラーメッセージ原文を で、そのメッセージでググってみた? あとエラーチェックするとって具体的にどういう操作をしたの?
631 名前:デフォルトの名無しさん mailto:sage [2023/01/18(水) 12:42:13.54 ID:iQx/CEUf0.net] >>612 htmlのscript要素の中身はCDATAなので文字参照にする必要なし もちろんinnerHTML等htmlとしてパースされるものに突っ込む場合は必要だが htmllintなんかでエラーになるのは無視していい
632 名前:デフォルトの名無しさん mailto:sage [2023/01/18(水) 13:08:45.81 ID:csewAuIZ0.net] >>620 エラーメッセージはその部分は&amp;だろと言っているのですが、じゃあ&amp;と書くと tp://www.concertzender.nl/?s=kensaku&amp;lang=nl と出力されてエラーになり、困ったわけです・・・ >>621 無視していいんですね。ありがとうございます。 htmlでは&amp;と書くと&になるのに、スクリプトの部分ではそうならないのですね。
633 名前:デフォルトの名無しさん mailto:sage [2023/01/18(水) 13:26:39.01 ID:Okbz9NQsr.net] >>622 何も質問に答えてないよね 答える気があるならもう一度>>620 を読んでほしい
634 名前:デフォルトの名無しさん mailto:sage [2023/01/19(木) 22:07:44.38 ID:40XBuhhWH.net] 君は君の質問に反応しない人には 推し量って導こうという崇高な意識はないの?JS使いなのに?
635 名前:デフォルトの名無しさん mailto:sage [2023/01/20(金) 00:14:23.52 ID:VzeMnjK00.net] >>624 誰からも回答してもらえない質問者は、他の人を導く存在に昇格ということか 質問に回答しないのが本人の為なのかもしれんな
636 名前:デフォルトの名無しさん mailto:sage [2023/01/20(金) 01:57:18.23 ID:ptsQI5JN0.net] それよりJavaScriptをJSと略すと女子小学生しか思い浮かばないからそろそろやめたほうがいい
637 名前:デフォルトの名無しさん mailto:sage [2023/01/20(金) 07:46:55.99 ID:PpNyk8UWr.net] >>624 >君は君の質問に反応しない人には 反応しない人? 質問に反応されたけど回答になってなかったからそこを指摘したんだけど
638 名前:デフォルトの名無しさん mailto:sage [2023/01/20(金) 17:53:26.94 ID:zXaveivW0.net] >>626 J
639 名前:デフォルトの名無しさん mailto:sage [2023/01/26(木) 00:31:01.01 ID:c9Kzf+f60.net] 【環境】Win11,Chromeで表示させたHTMLの中のjavascript Windowsのフルパスのファイル名が入った変数を\でsplitしたいんだけど可能? x_textにはJSONデータから取ってきた'D:\\00.png'が入っていて console.log(x_text)だとD:\00.pngと表示 これをsplitすると aaa1.html:154 Uncaught TypeError: Assignment to constant variable. になる。 split('\\')をsplit('\\\\')にしても同じ console.log(x_text) arr_text = x_text.split('\\') ←ここでエラー console.log(arr_text[0])
640 名前:デフォルトの名無しさん mailto:sage [2023/01/26(木) 00:37:27.57 ID:q740ttN00.net] >>629 arr_textがconst宣言されてるだけでは?
641 名前:デフォルトの名無しさん mailto:sage [2023/01/26(木) 01:06:05.60 ID:c9Kzf+f60.net] >>630 できました。 サンクスです。
642 名前:デフォルトの名無しさん [2023/01/29(日) 10:31:07.49 ID:rZA8vUyra.net] 初学者質問ですいませんが、変数aが文字列あいう、かつ、変数bがundefinedでない時 というif文を書きたい時 if (a=='あいう' && (!(b === void 0))) {... という書き方であってますか? よりシンプルな書き方とか、より標準的な書き方ってありますでしょうか。
643 名前:502 mailto:sage [2023/01/29(日) 12:00:10.71 ID:9rN3KLzS0.net] 厳密不等価演算子 !== https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Operators/Strict_inequality undefined が予約語になってないから void 0、ってのは……はて、今もやるものかね
644 名前:デフォルトの名無しさん mailto:sage [2023/01/29(日) 12:54:20.77 ID:eUvMCdrW0.net] if(a == 'あいう' && !b)でもよさそうな気がしなくもない
645 名前:デフォルトの名無しさん mailto:sage [2023/01/29(日) 15:43:05.57 ID:d0tJgmu5r.net] >>633 undefined は予約語ではないのでローカル変数による上書きが可能…という意味では、void 0 を使う価値はある
646 名前:デフォルトの名無しさん [2023/01/29(日) 15:59:30.70 ID:rpOrCqGha.net] >633 ありがとうございます。リンク先確認しました。 if(a=='あいう' && b!== undefined またはvoid 0) という感じでしょうか。 ここでb!= undefined とするとまずいのはbがnullの時だけ、という認識でいいでしょうか。 >634 ありがとうございます。bが0や空文字の時にも偽になりそうです。
647 名前:デフォルトの名無しさん mailto:sage [2023/01/29(日) 16:03:43.52 ID:R24XfIrD0.net] 第一にjavascriptみたいな後付け追加仕様が混在する言語は規格よりも実装の影響力が強いから 想定環境で検証済の方法を採用すべきだと思う コードとしては変数をtypeofで"undefined"と比較するのが恐らく理解しやすいが、 メンテナがjavascriptに十分慣れていてvoid 0のイディオムの理解を期待できるならそっちでもいい
648 名前:デフォルトの名無しさん mailto:sage [2023/01/29(日) 16:28:19.00 ID:MX/guDl/d.net] >>636 結局のところ ・undefinedが上書きされる可能性を考慮する必要があるのか ・bがundefined以外のfalsyな値を取りうるのか ・取る場合それぞれの値をundefinedとは区別したいのか同じとみなしたいのか この辺次第で望ましい書き方は変わってくるわけで
649 名前:デフォルトの名無しさん mailto:sage [2023/01/29(日) 16:30:22.92 ID:d0tJgmu5r.net] >>636 型チェックも働かせるなら if (a. === 'あいう' && b !== void 0) と書けば良い 'あいう' も==では型チェックしない > ここでb!= undefined とするとまずいのはbがnullの時だけ まずいのは、undefined! == void 0 の場合
650 名前:デフォルトの名無しさん (アウアウウー Sacd-3+Au [106.128.44.107]) [2023/02/12(日) 19:44:05.09 ID:zQHZ3m1Fa.net] //☆☆県(API番号☆00000)の予報を取得 let url = "https://www.jma.go.jp/bosai/forecast/data/forecast/☆00000.json"; fetch(url) .then(function(response) { return response.json(); }) .then(function(weather) { console.log(weather); //☆☆県を選択し、変数に詰め直す let area = weather[0].timeSeries[0].areas[0]; console.log(area); //発表者と更新日時の情報を書き出す document.getElementById("publishingOffice").lastElementChild.textContent = weather[0].publishingOffice; document.getElementById("reportDatetime").lastElementChild.textContent = weather[0].reportDatetime; //特定の地域の情報を画面に書き出す document.getElementById("targetArea").lastElementChild.textContent = area.area.name; document.getElementById("today").lastElementChild.textContent = area.weathers[0]; document.getElementById("tomorrow").lastElementChild.textContent = area.weathers[1]; document.getElementById("dayAfterTomorrow").lastElementChild.textContent = area.weathers[2]; }); 上手く動かないのですがどこが間違えてますか?教えてください。 ☆はわざとです
651 名前:デフォルトの名無しさん mailto:sage [2023/02/13(月) 16:33:17.79 ID:6gR8iJfAr.net] バグってるので調査してください それは質問ではなく作業依頼
652 名前:502 mailto:sage [2023/02/13(月) 22:37:53.05 ID:E1kxmkHl0.net] >>640 やりたいことも伝えずに上手く動かないと言われてもなー
653 名前:デフォルトの名無しさん mailto:sage [2023/02/14(火) 07:31:57.89 ID:NKP9M84/H.net] なぜ自身でデバッグせんのよ
654 名前:デフォルトの名無しさん mailto:sage [2023/02/14(火) 21:18:40.92 ID:snyjWmK+0.net] そのメソッドチェーンやめれば分かるよ エラーが起きない前提があってのメソッドチェーンだからよ
655 名前:デフォルトの名無しさん mailto:sage [2023/02/17(金) 12:17:26.22 ID:DJukcnvm0.net] $.each()とsetIntervalをつかって、 インターバル時間ごとに順番に配列の中身を、コンソール出力する方法ありますでしょうか? $.each()は、一度に処理するから、一つづつコンソール出力するのは難しいですかね。
656 名前:デフォルトの名無しさん mailto:sage [2023/02/17(金) 20:26:53.96 ID:iF4/ZjHx0.net] >>645 $,each()を使う理由がわからない setIntervalだけ使えば良い
657 名前:デフォルトの名無しさん mailto:sage [2023/02/17(金) 22:54:40.37 ID:iF4/ZjHx0.net] >>645 clearintervalで1回だけタイマーを動かしてPromise化してawaitして$.each()を使えば、理屈ではできると思う 手段のモ目的化、かつ無駄に複雑だと思うが
658 名前:デフォルトの名無しさん mailto:sage [2023/02/18(土) 19:51:29.82 ID:gBmvvkX6a.net] nodeでPythonのif name==main みたい
659 名前:なことできませんか? メソッドの動きをデバッカーでみたいんです [] [ここ壊れてます]
660 名前:デフォルトの名無しさん mailto:sage [2023/02/24(金) 01:21:32.26 ID:jGK2BMhd0.net] //【環境】Win11,JScript //【何をしたのか】case文のところ
661 名前:に条件式を書き、breakせずにすべての条件式で評価したい //【サンプルコード】現象を再現可能な最小限のコードを書いてください。 a=1 switch (true) { case (a==1): a=a+16 WScript.echo("aの値を変更a=",a) case (a>10): WScript.echo("a>10","a=",a) a=a-10 WScript.echo("aの値を変更a=",a) case (a>30): WScript.echo("a>30です","a=",a) a=0 WScript.echo("aの値を変更a=",a) } WScript.echo("最終的な結果a=",a) //【エラーメッセージ】エラーメッセージがあれば正確に書き写してください。(Windows なら「コピット」を活用) aの値を変更a= 17 a>10 a= 17 aの値を変更a= 7 a>30です a= 7 aの値を変更a= 0 最終的な結果a= 0 //【期待する結果】最終的にどういう結果を望んでいるのか、を書いてください。 2番目のcaseでa=7だから3番目のcaseにはいかず、最終的にはa=7になるのでは? [] [ここ壊れてます]
662 名前:デフォルトの名無しさん mailto:sage [2023/02/24(金) 02:46:21.28 ID:thXJapXb0.net] >>649 上から順に case が評価され、どこかで真になればそれ以降の case は評価されない。 break してないからそれ以降の処理がフォールスルーで実行されてるだけ。 全部の条件を評価したいなら普通に if で書けばいいと思うよ。
663 名前:デフォルトの名無しさん mailto:sage [2023/02/24(金) 05:29:40.16 ID:xQyCpHMf0.net] そもそもswitch文って条件にtrue入れて使うようなもんじゃないぞ
664 名前:デフォルトの名無しさん mailto:sage [2023/02/24(金) 08:59:59.37 ID:thXJapXb0.net] >>651 case に式を書けるようにしたことによって使えるようになった副作用みたいなものだよね。 switch の式と一致する case を探すのが switch文の動作だとするなら、switch の式 true と一致する値となる、すなわち true になる式を持つ case が選択される。 個人的には if で書けばいいものをわざわざ分かりづらい書き方にしてるバッドプラクティスだと思ってるが、フォールスルーと組み合わせると if よりもスマートに書ける可能性はあるかもね。 特に >>649 のように全部の case を評価してほしいなら、switch で書く利点が何一つ無い。 if より利点がある場合は、フォールスルーする場合に最初に true になる case までしか式が評価されないことくらいなのに。
665 名前:デフォルトの名無しさん mailto:sage [2023/02/25(土) 02:30:10.34 ID:E1i3tKVi0.net] >>652 良いサンプルが思いつかんけど、 ifで書こうとすると、重複する処理を書かなければいけなくなったり、フラグの変数を導入したりすることになるんだけど、 breakなしのswitch case文ならうまいこと書けるんじゃないかと思ってやってみたけど、動かなかった。
666 名前:デフォルトの名無しさん mailto:sage [2023/02/25(土) 21:04:04.70 ID:5GrSMYMK0.net] jQuery以外のライブラリ・フレームワークは廃止して欲しい。 覚えるのが大変。
667 名前:デフォルトの名無しさん mailto:sage [2023/02/25(土) 22:01:05.33 ID:YxrjvuYta.net] react だけでよくね jqueryとかいい加減消滅しろよ
668 名前:デフォルトの名無しさん mailto:sage [2023/02/25(土) 23:22:22.93 ID:5GrSMYMK0.net] >>655 この2つは併用出来ないから辛い。 で、reactならではの利点は?
669 名前:デフォルトの名無しさん mailto:sage [2023/02/25(土) 23:31:29.20 ID:fw0b+BcSM.net] 質問スレで焚き付けんな
670 名前:デフォルトの名無しさん mailto:sage [2023/02/25(土) 23:38:37.47 ID:TypeZdxc0.net] 素の JS でいじゃん。 というのは言い過ぎかもしれんけど、何に使ってるんだか分からんようなことでいちいちおまじないのように jquery 読み込んでる呆れるようなところも少なくないんだよな。 通信回線速度も処理能力も上がってるから動いちゃいるが、とりあえず素の JS で書けるようになれと言いたい。 ブラウザ毎の非互換も少なくなってるし querySelector みたいな便利なメソッドもあるし、そんなに苦労しないでしょ。
671 名前:デフォルトの名無しさん mailto:sage [2023/02/25(土) 23:49:36.71 ID:YJ+BhbRla.net] それなjqueryおじさんはJSだけで書けるようにしておけ それでも足りないならReact使えな
672 名前:デフォルトの名無しさん mailto:sage [2023/03/01(水) 19:53:41.69 ID:hdBOeOla0.net] githubで他人のコード見てるとclassもprototypeも使われてないやつが多いんだけど何でなん?ベストプラクティスがruby以上にわからん何が正解なん?
673 名前:デフォルトの名無しさん mailto:sage [2023/03/01(水) 23:29:12.38 ID:8kmkGnGP0.net] 暗黙的なクロージャがあるからclassやprototypeを使わずとも割と困らないのが何でなん?の回答になる
674 名前:デフォルトの名無しさん mailto:sage [2023/03/02(木) 02:00:11.27 ID:65NO3QYK0.net] htmlコーダー志望の初心者です。 JSの入門書を読み終えたのでより実践的な学習に移行したいのですが、 既存の書籍やサイトは総論のような基本的な知識に焦点を当てたものが多い印象で、 実務において初心者コーダーにどのようなプログラムの作成が 求められてくるのかが判然としません。 そのような内容に焦点を当てた書籍やサイト等はありますか。
675 名前:デフォルトの名無しさん mailto:sage [2023/03/02(木) 19:51:27.97 ID:eGjuMjwU0.net] そもそもhtmlコーダーって何?ってぐぐってみたらデザイナやエンジニアが片手間でできる内容だし専門職としては成立せんのでは
676 名前:660 mailto:sage [2023/03/02(木) 23:05:32.75 ID:65NO3QYK0.net] >>663 htmlコーダーという職種自体がオワコンですかね… ご意見参考にさせていただきます。
677 名前:デフォルトの名無しさん mailto:sage [2023/03/03(金) 08:25:40.95 ID:DJxhSXLyr.net] 99%のエンジニアは片手間でできないからな エンジニアはhtmlとcssをバカにするけどほとんどのエンジニアはまともに使えていないんだよ 特にcss 使い方を知らない 勉強しようとしても理解できない なのにバカにする エンジニアは視覚からコードに落とし込む能力が絶望的に劣っている ↓ デザイナーから上がっきたモックをhtmlとcssで再現できない ↓ だけどその事実がバレたくないからコーダーといってバカにする ↓ 実際にはjsxとstyle componentなどで必須スキル ↓ 必須だけどできないからhtmlとcssはデザイナーの仕事だと言い放つ ↓ じゃあjsxはデザイナーに書かせるのか?と聞くと無言 毎回このパターン
678 名前:デフォルトの名無しさん mailto:sage [2023/03/03(金) 08:32:56.76 ID:an7QtCXRd.net] まあでもそういう業界だからね 連携ダメだからと言って隙間に入り込める余地があるかどうか
679 名前:デフォルトの名無しさん mailto:sage [2023/03/03(金) 09:44:56.39 ID:o6EY7x580.net] >>665 組み込み系や汎用系のエンジニアにでも頼んでるのか? ちゃんとWeb系やってるとこに頼みなよ
680 名前:デフォルトの名無しさん mailto:sage [2023/03/03(金) 10:01:30.76 ID:DJxhSXLyr.net] >>667 むしろ組み込みは汎用系のほうは知らん Web系エンジニアはこんなんだぞ ほんの少しだけ有能なフロントエンジニアがいる現状 なぜならフロント開発スキルとデザインスキルの両方を持ち合わせた人材がほぼいないから
681 名前:デフォルトの名無しさん mailto:sage [2023/03/03(金) 10:24:24.87 ID:o6EY7x580.net] webプログラマーに高度なデザインまで要求するのは無理でしょ そのためにプロのデザイナーがいるんだし でもほとんどのエンジニアがhtmlとcssをまともに使えないなんてありえない 今いる環境が悪すぎるんじゃないの?
682 名前:デフォルトの名無しさん mailto:sage [2023/03/03(金) 11:25:14.28 ID:yQajwbSzM.net] ぶっちゃけデザインするやつが CSS まで書くのが一番いいんじゃね? 位置やら大きさやらの細かい詰めまでこだわれるでしょうに。
683 名前:デフォルトの名無しさん mailto:sage [2023/03/03(金) 11:27:48.97 ID:GvE2UXq10.net] アニメーションとかJsonでデータいじくる時だけ呼んでください ってことにしてる社内ニート
684 名前:デフォルトの名無しさん mailto:sage [2023/03/03(金) 11:54:37.73 ID:DJxhSXLyr.net] こういうこと デザイナーの担当 ・モック作成 ・Atomicデザイン込みのコンポーネント設計 ・コンポーネント作成 ・App作成(コンポーネントの組み上げ) ・jsx、css ・state更新とrender関連 ・レスポンシブ対応 ・トランジションやアニメーションなど ・DOM生成後の表示・操作・調整(表示順やインタラクション) ・エラー表示、警告 ・htmlバリデーションのcheckValidityやreportValidity処理 フロントエンジニアの担当 ・APIでデータ送受信 ・propsで流し込み
685 名前:デフォルトの名無しさん mailto:sage [2023/03/03(金) 12:03:53.67 ID:aLTOWI5kM.net] >>672 それ専業のデザイナー置いても暇を持て余すような職場だろ 普通デザイナーにjsxなんて書かせないよ
686 名前:デフォルトの名無しさん mailto:sage [2023/03/03(金) 12:14:59.23 ID:o6EY7x580.net] ほとんどのエンジニアがhtmlもcssもまともに使えない職場みたいだからなw
687 名前:デフォルトの名無しさん mailto:sage [2023/03/03(金) 12:33:55.85 ID:DJxhSXLyr.net] 職場じゃなくてそもそもエンジニアたちがhtmlとcssが絶望的にゴミレベルしかいないんだよ 海外でも同じ傾向がある なのに自分たちはできると勘違いしてるから話が通じないんだよな
688 名前:デフォルトの名無しさん mailto:sage [2023/03/03(金) 13:31:04.49 ID:o6EY7x580.net] jquery使えます!って嘘ついたデザイナーの尻拭いをさせられたことはあったな
689 名前:デフォルトの名無しさん mailto:sage [2023/03/03(金) 13:32:46.28 ID:yQajwbSzM.net] >>675 そういうお前は逆にサーバサイドは絶望的な腕前なんじゃないの?
690 名前:デフォルトの名無しさん mailto:sage [2023/03/03(金) 15:00:35.71 ID:DJxhSXLyr.net] >>677 わざわざ煽りご苦労 サーバーサイドが絶望的どころかサーバーサイドもやってるが? むしろフロントよりも先にサーバーサイドからやってたわ
691 名前:デフォルトの名無しさん mailto:sage [2023/03/03(金) 15:24:30.84 ID:yQajwbSzM.net] >>678 という人がどれだけいるのって話でしょ。 おれもサーバサイドの人というか、むしろwebじゃないサーバの人だけど。
692 名前:デフォルトの名無しさん mailto:sage [2023/03/03(金) 18:33:43.53 ID:omRbdhVsr.net] やたらイキって言葉遣いが悪いのと同じ回線だと肩身が狭い・・・
693 名前:デフォルトの名無しさん mailto:sage [2023/03/03(金) 21:01:23.22 ID:bsut6PhH0.net] >>672 デザイナーはせいぜいコンポーネント作ってStoryBookに載せるまでが責務だろw
694 名前:デフォルトの名無しさん mailto:sage [2023/03/03(金) 22:20:39.69 ID:Q9LzyMl00.net] プログラマにバカにされてreact勉強中のデザイナー様が激おこです
695 名前:デフォルトの名無しさん mailto:sage [2023/03/03(金) 22:30:19.52 ID:yxGxd3AO0.net] webデザイナーってjqueryぐらいまでは覚えさせられたかもだけど 流石にreactやvueまでやれってのは酷ではw そんなのフロントエンドエンジニアの仕事でしょw
696 名前:デフォルトの名無しさん mailto:sage [2023/03/03(金) 23:30:24.99 ID:Q9LzyMl00.net] だってフロントエンドエンジニアはhtmlもcssもわからないバカばっかりなんだもん
697 名前:デフォルトの名無しさん mailto:sage [2023/03/04(土) 18:46:55.35 ID:erCI1bTUH.net] javascriptコードでバグの伝搬を制限して拡張性を高める必要性のある堅牢なプログラムなんて不要だからでしょ
698 名前:デフォルトの名無しさん mailto:sage [2023/03/04(土) 18:52:38.30 ID:erCI1bTUH.net] みんななんで仲良くなれないかな
699 名前:デフォルトの名無しさん mailto:sage [2023/03/05(日) 16:50:40.53 ID:RB9OOifa0.net] 仕事だし自分の領域に少なからず関わってくるんだから覚えろよ わからないじゃねーんだよボケ^^ これでよし
700 名前:デフォルトの名無しさん mailto:sage [2023/03/11(土) 23:19:16.39 ID:qvilA0zq0.net] sortメソッドは必ず、比較関数と一緒に使用する必要ありますか? sortメソッドは数値を並びかえだと比較関数と一緒でないとうまくいかなくて、 でも、文字列のソートなら、ソート関数なくてもうまくいくみたい。 sortは文字列でも数値でもソート関数使った方がいいのでしょうか?
701 名前:502 mailto:sage [2023/03/12(日) 04:39:15.28 ID:PQcYNrkb0.net] >>688 疑問に思うことがあれば、まずMDNで関数の仕様を確認してみるといい sort 関数なら、解説に関数を指定しなかった場合についてもちゃんと書いてある https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/sort > compareFn が与えられなかった場合、undefined 以外のすべての配列要素は文字列に変換され、文字列が UTF-16 コード単位順でソートされます。例えば、"banana" は "cherry" の前に来ます。数値のソートでは、9 が 80 の前に来ますが、数値は文字列に変換されるため、Unicode 順で "80" が "9" の前に来ます。undefined の要素はすべて、配列の末尾に並べられます。
702 名前:デフォルトの名無しさん mailto:sage [2023/03/12(日) 09:33:44.40 ID:do9jOqKh0.net] >>689 ありがとうございます。
703 名前:デフォルトの名無しさん [2023/03/12(日) 10:07:09.74 ID:mPShShEs0.net] ティラノスクリプトでゲーム作ろうとしたら、結局JSまで触らないと無理そうで及び腰・・・ ・例えば変数aに"gazou1"という文字列を入れる ・『【"変数a"+.jpg】を表示』みたいな記述?? ←ここが分からない ・結果、gazou1.jpgが表示される こんな感じの、変数に入れた文字列を使用して画像表示ってできますか? JS 変数 画像表示 とかで調べても情報が多すぎてさっぱり分からない
704 名前:デフォルトの名無しさん mailto:sage [2023/03/12(日) 11:40:49.62 ID:SvUIzONJr.net] >>691 専用の掲示板へどうぞ https://tyrano.jp/home/bbs
705 名前:デフォルトの名無しさん mailto:sage [2023/03/12(日) 12:27:02.18 ID:mPShShEs0.net] >>692 誘導ありがとうございます ティラノだけでは無理そう&ティラノ上ではJSの記述が使える、という事でこちらで質問しました なのでJSで可能か不可能かだけでも教えて頂けると助かります JSで不可能なら調べたところで出て来ないでしょうから延々調べ続けるはめに・・・
706 名前:デフォルトの名無しさん mailto:sage [2023/03/12(日) 12:49:02.36 ID:PwnTbWEur.net] >>693 まずはティラノスクリプトに詳しい人に聞いてみるのが筋ではないですか? 同じ問題に遭遇した人もきっといるはずでノウハウも蓄積されてると思いますよ wikiなんかもあるようですし、そちらも確認してみましたか?
707 名前:デフォルトの名無しさん mailto:sage [2023/03/13(月) 10:07:27.43 ID:/ROF2oq40.net] >>691 こういうこと? =============================== <body> <a href='#' onclick='fun'>link</a> </body> <script> function fun(){a.href='https://....'} </script> =============================== =============================== <body> <a href='#' id='href'>link</a> </body> <script> href.onclick=function(){a.href='https;//...'} --------------------- // または let aLink=document.querySelector('[a]'); aLink.addEventListener('click',()=>{a.href='https://...'}): </script> ================================
708 名前:デフォルトの名無しさん mailto:sage [2023/03/13(月) 17:49:23.15 ID:dqLl9/D/M.net] >>683 むしろjQueryの方が難しいと思うけど...
709 名前:デフォルトの名無しさん mailto:sage [2023/03/13(月) 19:09:00.85 ID:LN5ju60U0.net] >>695 表示する画像を変数を使って切り替えたいので、 if 変数a=='花' なら 花.jpg を表示 else 変数a=='山' なら 山.jpg を表示 みたいな感じで一応は表示できるのですが、表示したい箇所が複数あるので if 変数b=='花' とか if変数c==’’花' とかで凄く長くなりそうなのです でももし 変数の中身+.jpg みたいな記述がjsに存在するなら aの場所には 変数aの中身+.jpgを表示 bの場所には変数bの中身+.jpg みたいに凄く簡略化できるかなって 教えて頂いたコードを調べてみます!ありがとうございます!
710 名前:デフォルトの名無しさん mailto:sage [2023/03/13(月) 19:18:34.65 ID:z8Hv0b/wr.net] >>697 他板にティラノスクリプトスレがあったんで 専用掲示板より5chがいいのであれば続きはそちらでどうぞ https://mevius.5ch.net/test/read.cgi/gamedev/1428724538/
711 名前:デフォルトの名無しさん mailto:sage [2023/03/13(月) 19:42:26.91 ID:LN5ju60U0.net] >>698 そこは質問スレじゃないのでどうにも質問しづらくて とうかJSの質問スレでJSの質問してるのに「ティラノ上で動かしてる」ってだけで、 そこまで「よそいけ、よそいけ」って言わなくても・・・
712 名前:デフォルトの名無しさん mailto:sage [2023/03/13(月) 20:03:21.60 ID:z8Hv0b/wr.net] >>699 >そこは質問スレじゃないのでどうにも質問しづらくて そのスレを「質問」で検索してみると皆質問してるのが分かります 気後れする必要はないと思いますよ >とうかJSの質問スレでJSの質問してるのに>「ティラノ上で動かしてる」ってだけで、 >そこまで「よそいけ、よそいけ」って言わなくても・・・ あなたが必要としてるのは「ティラノスクリプトで変数を使って画像表示したい場合にどうすればいいか」の解決策だからです それについてはこのスレよりティラノスレや専用掲示板の方が的確なアドバイスが得られるはずです 違いますか?
713 名前:デフォルトの名無しさん mailto:sage [2023/03/13(月) 20:12:22.98 ID:z8Hv0b/wr.net] ついでに「ティラノ上で動かしてる」JSについてもそちらで聞いた方が良いでしょう ティラノスレを見渡すとJSのコードもたくさん貼ってありますよ
714 名前:デフォルトの名無しさん [2023/03/13(月) 20:21:27.02 ID:LN5ju60U0.net] >>700 >あなたが必要としてるのは「ティラノスクリプトで変数を使って画像表示したい場合にどうすればいいか」の解決策だからです 違います。自分の質問を要約すると「JSには、変数の中身の文字列に.jpgなどの拡張子を付け足して画像を表示する機能はありますか?」です 最初にティラノの名を出したことで誤解を招いたかも知れませんが、 >>691 に >JS 変数 画像表示 とかで調べても >>693 に >なのでJSで可能か不可能かだけでも教えて頂けると助かります と書いてあるように、ティラノではなく、あくまでJSについて尋ねています
715 名前:デフォルトの名無しさん mailto:sage [2023/03/13(月) 20:45:42.74 ID:z8Hv0b/wr.net] >>702 >自分の質問を要約すると「JSには、変数の中身の文字列に.jpgなどの拡張子を付け足して画像を表示する機能はありますか?」です では聞きますが、それが何のために必要なのですか?
716 名前:デフォルトの名無しさん mailto:sage [2023/03/13(月) 20:57:54.94 ID:ayGBKgIT0.net] 拡張子を付加する機能は無いよ WBC始まってキャッチボールしたい気持ちはわからんでもないけども
717 名前:デフォルトの名無しさん mailto:sage [2023/03/13(月) 20:58:10.41 ID:bqu+B+fY0.net] >>702 > 「JSには、変数の中身の文字列に.jpgなどの拡張子を付け足して画像を表示する機能はありますか?」 はい。可能です imgタグにデータURLを引き渡し表示することはごく普通に見ることができます Base64エンコードされた文字列とmediatypeをセットするだけです
718 名前:デフォルトの名無しさん mailto:sage [2023/03/13(月) 20:59:33.75 ID:1Iq9NysVM.net] >>702 あなたの質問はjavascriptの質問ではありますがティラノスクリプトの仕様を知らないと答えられないものです こちらはティラノスクリプトの仕様を知らないのであなたの代わりに調べることから始めなければなりません ティラノスレであれば詳しい人がいると思うのでそちらへどうぞ
719 名前:デフォルトの名無しさん mailto:sage [2023/03/13(月) 21:59:41.61 ID:LN5ju60U0.net] >>703 上述の通りゲーム作成と作業の簡略化のためです >>704 拡張子の付け足しは誤解を招く表現でした。変数の中にある文字列と同じ名前の画像を表示するってことです >>705 ありがとうございます。調べてみます >>706 あくまでJSの事として聞いているので「JSではこれこれこうやる。それがティラノ上で動くかは知らんけど」って感じの答えで十分です ティラノスレでJSのこと聞くよりJSスレでJSのこと聞く方が早そう、って考えはそこまで変ですか?
720 名前:デフォルトの名無しさん mailto:sage [2023/03/13(月) 22:18:31.29 ID:z8Hv0b/wr.net] >>707 >上述の通りゲーム作成と作業の簡略化のためです それは「ティラノスクリプトで変数に応じた画像表示する」こととは違うのですか? >「JSではこれこれこうやる。それがティラノ上で動くかは知らんけど」 このスレでそんな回答をもらうよりはティラノスレで質問して 「ティラノスクリプトではみんなこうやってるよ」って回答をもらう方が何倍も早くて確実だと思いますがいかがでしょう
721 名前:デフォルトの名無しさん mailto:sage [2023/03/14(火) 01:06:18.93 ID:VmfXTFqwa.net] 例えば、jQuery で、 <img id="photo_1" src="a.png"> を、以下に変更するなら <img id="photo_1" src="image_1.jpg"> // :first は、最初に見つかったもの $( '#photo_1:first' ).each( function ( index, elem ) { const image_1_basename = "image_1" const image_1_filename = image_1_basename + ".jpg" $(this).attr('src', image_1_filename) // 設定 } )
722 名前:デフォルトの名無しさん mailto:sage [2023/03/14(火) 02:37:35.49 ID:JIhs77SCM.net] JSスレでJSのこと聞きたいんならティラノの名前出すなよ
723 名前:デフォルトの名無しさん mailto:sage [2023/03/14(火) 08:16:42.83 ID:gMQMDZBfd.net] それはそう
724 名前:デフォルトの名無しさん mailto:sage [2023/03/14(火) 13:16:01.19 ID:bBCbUtGh0.net] jpegの名前を動的に指定できるよ
725 名前:デフォルトの名無しさん mailto:sage [2023/03/14(火) 13:21:05.82 ID:crjDIavXr.net] >>707 ティラノについて少し調べたのでスレ違いを承知の上で書きます あなたが>>691 や>>697 でやりたいことは [bg storage="&f.bg + '.jpg'" time=1000] というような書き方で実現できるかと思います 簡単に説明します まず「&f.bg」の「&」はエンティティと呼ばれるもので変数の値をタグのパラメータとして渡すときに使用します https://tyrano.jp/usage/tech/hensuu の最後に説明があります そして、storageパラメータに渡す際に「 + '.jpg'」で拡張子を連結しています。これは https://tyrano.jp/sample2/code/kiso/19#demo のkaisetsu/19_variable_1.ksの415行目~に変数に対して数値演算をした値を パラメータに渡す例がありました。文字列の連結も同様に可能です これによって、変数f.bgの値が「花」ならば「花.jpg」が、「山」ならば「山.jpg」が表示されます 例は背景ですがキャラやその他の画像でも可能だと思います
726 名前:デフォルトの名無しさん mailto:sage [2023/03/14(火) 13:30:55.51 ID:crjDIavXr.net] >>707 なお、簡単なサンプルで動作確認をしました https://tyrano.jp/usage/tutorial/moji 上記チュートリアルに従って新規プロジェクトを作成し、 first.ksの内容を以下のように書き換えて実行してみてください *start [wait time=100] 背景を変更します。[r] [link target=*select_room]<教室>[endlink][r] [link target=*select_rouka]<廊下>[endlink][r] [s] *select_room [eval exp="f.bg='room'"] [jump target=end_select] *select_rouka [eval exp="f.bg='rouka'"] [jump target=end_select] *end_select [cm] [bg storage="&f.bg + '.jpg'" time=1000] [jump target=start]
727 名前:デフォルトの名無しさん mailto:sage [2023/03/14(火) 20:28:58.71 ID:2HNLo12V0.net] >>713 ありがとうございます!!できました!!
728 名前:デフォルトの名無しさん mailto:sage [2023/03/14(火) 20:53:16.27 ID:2HNLo12V0.net] 作業が一気に楽になりました! >>713 も他の方も本当にありがとうございました! そして不可能と思いこんでたことが実は可能だったあたりはすみませんでした!
729 名前:デフォルトの名無しさん mailto:sage [2023/03/14(火) 20:53:28.39 ID:GiZ8CeD1r.net] >>715 解決したのならなによりです が、今回無駄に遠回りをしてしまったのは自覚、反省しましょう あなたはこの問題の解決はティラノ単体では無理だと決めつけてしまったためにこのスレで質問しましたが その判断は正しくありませんでした 繰り返しになりますが、この先また何か躓いたときはまずティラノの掲示板なりスレなりで聞いてみるようにしましょう(たとえJSに関することであれ) その方が解決が早く、的確なはずです
730 名前:デフォルトの名無しさん mailto:sage [2023/03/14(火) 21:02:42.69 ID:GiZ8CeD1r.net] >>716 ちょうどかぶってしまいましたが、ちゃんと自分の非を認められる人で安心しました こちらも少し言葉がキツくなってしまった点はお詫びします
731 名前:デフォルトの名無しさん mailto:sage [2023/03/15(水) 01:17:49.11 ID:sTLgg4Iop.net] 初めまして Pixiv filter(GitHubで公開、リンクはスパム対策で貼れず)という拡張機能がありまして、それに似たものを自作したいと思い立ち、色々調べてみました 別スレにて、検索画面上での作品ごとのタグは、画面には表示されないもののデータとしては生成されている、という事を伺ったのですが、 どこに生成されているのか、どうやったら参照できるのかなどが分からず、苦戦しております。 ご教授頂ければ幸いです
732 名前:デフォルトの名無しさん mailto:sage [2023/03/15(水) 02:28:06.62 ID:i4bxOxoza.net] これか? github.com/kazu-ux/PixivFilter React, TypeScript
733 名前:デフォルトの名無しさん mailto:sage [2023/03/15(水) 07:58:24.49 ID:q+AMrJS6H.net] 反省なんて必要ないわ、なんか強迫症的なやつがうざい なんなんだ、執着が過ぎる
734 名前:デフォルトの名無しさん mailto:sage [2023/03/15(水) 08:01:02.20 ID:q+AMrJS6H.net] プログラムではすべてのタグを検出して配列等に格納しているが そこから抽出して出力する処理をしてるってことじゃない? 見てないからわからんけど
735 名前:デフォルトの名無しさん mailto:sage [2023/03/15(水) 09:37:50.61 ID:OLitJJv/d.net] >>719 なんか見覚えあると思ったらこれか https://mevius.5ch.net/test/read.cgi/hp/1439005423/342 343をレスしたの俺だけど回答の内容を理解できなかったってこと? 分からないところがあったのなら追加で質問すればよかったろうに それをせずに全然違うスレで聞き直してるのはなんで?
736 名前:デフォルトの名無しさん mailto:sage [2023/03/15(水) 20:45:42.17 ID:q+AMrJS6H.net] Pixiv filterが何なのかわからないし確認もしてないけど、 例えば複数の作品毎にTagオブジェクトがあったとして、 Tagのプロパティに表示させるか表示させないかを判定するプロパティがあり そのプロパティ名がshowAbleで、表示を許可するのは、showAble:true 許可しない場合には、showAble:false とされていたとすれば まず最初にすべての作品Tagオブジェクトが格納されている配列を取得し(もしくは配列に取得する関数を作り) (let tagArr=[tag1,tag2,tag3,tag4....];) その配列から、tag.showAble=trueであるオブジェクトを取得して別の配列(showAblerArray)に格納し (let showAbleArray=[] ; for(let t of tagArr){ (if(t.showAble==true){showAbleArray.push(t) showAbleArrayの全要素に対して、表示させる処理をする (for(let s of showAbleArray){,,,,,,どこに表示させるか......}) っていう感じでどうですか?
737 名前:デフォルトの名無しさん mailto:sage [2023/03/15(水) 22:44:21.64 ID:ohrI2qnX0.net] jQueryはなぜ嫌われる? 簡単な構文で便利だと思うが…。 他のライブラリ・フレームワークとの互換性が高ければいいのに。
738 名前:デフォルトの名無しさん mailto:sage [2023/03/15(水) 23:48:50.56 ID:T0OxazTtM.net] 技術的には好かれてるわけでも嫌われてるわけでもない スレ的には脈絡なく蒸し返す厄介な奴がいるので敬遠される
739 名前:デフォルトの名無しさん mailto:sage [2023/03/16(木) 07:03:01.34 ID:Hd88hZaKH.net] 嫌われてはないんだろうけどスレチなんでない?
740 名前:デフォルトの名無しさん mailto:sage [2023/03/16(木) 07:15:13.56 ID:Hd88hZaKH.net] javascriptで作られたプログラムの処理に関して Jqyeryを使えば簡単だよって言われても いやいやここはjSで書きたいんでってなるでしょ そういう質問に対してjqのほうが簡単っていうのがよくわからん フレームワークの質問スレは ベース言語のすれとは別に立てたほうが
741 名前:デフォルトの名無しさん mailto:sage [2023/03/16(木) 09:02:04.98 ID:c9lqR0yG0.net] www
742 名前:デフォルトの名無しさん mailto:sage [2023/03/16(木) 10:39:46.62 ID:fxj0X8UB0.net] フレームワークスレは一応立ってるね 糞スレだからそこで質問して回答があるのか知らんけど
743 名前:デフォルトの名無しさん mailto:sage [2023/03/16(木) 11:25:08.38 ID:QjQVIFFDr.net] >>721 これもしかして私に対して何か言おうとしてる? もしそうならもう少し具体的に問題点を指摘してもらえないかな
744 名前:デフォルトの名無しさん mailto:sage [2023/03/16(木) 15:46:42.93 ID:FgyDZ6E70.net] いえいえ、違います、気にしないでください
745 名前:デフォルトの名無しさん mailto:sage [2023/03/16(木) 20:33:58.52 ID:ParHajkN0.net] >>732 あなたは>>721 とワッチョイもIPも違うようだが…
746 名前:デフォルトの名無しさん mailto:sage [2023/03/16(木) 20:55:51.48 ID:Olf8APhOd.net] >>724 どうですか?も何もそんな都合のいい妄想データを元に書いたコードなんぞ 役に立たないどころか混乱させるだけだからやめようよ
747 名前:デフォルトの名無しさん mailto:sage [2023/03/16(木) 21:11:03.92 ID:Hd88hZaKH.net] 混乱させるだけとかwww そもそも解答者がわざわざ対象コードを検索して読み込み そして質問者が満足するようなコードを生成するとか、自分は絶対しないw 質問者は ・何やら検索するらしい ・検索はタグで行うらしい ・タグで検索しても表示するものとしないものがあるらしい その3点でアドバイスするのなら ・検索ワードでヒットする画像を抽出する ・ヒット判定は画像のタグプロパティで判定 ・判定でヒットした画像を1枚もしくは複数枚表示する とした場合で、初心者初学者向けにアドバイスするのなら 上記の感じのアドバイス以外に何かできるアドバイスあるん? 質問の質以上のアドバイスなんてできない まずはオブジェクトとプロパティあたりから始めるしかないっしょ っ
748 名前:て思ってのアドバイスなのねん [] [ここ壊れてます]
749 名前:デフォルトの名無しさん mailto:sage [2023/03/16(木) 21:38:40.67 ID:Olf8APhOd.net] 質問者がわからないと言ってるものには具体的な対象があるわけよ それを無視して一般的な考え方のアドバイスをするなら抽象的な話にとどめればよくて わざわざデタラメコードを生成することはなかろ
750 名前:デフォルトの名無しさん mailto:sage [2023/03/16(木) 22:01:47.84 ID:Hd88hZaKH.net] それはそうですね おっしゃる通り でもデタラメとか言わんでください!
751 名前:デフォルトの名無しさん mailto:sage [2023/03/17(金) 21:04:07.19 ID:irjN28+Dd.net] 他に適切な表現が見つからなかったからごめんな
752 名前:デフォルトの名無しさん mailto:sage [2023/03/17(金) 21:08:34.06 ID:ZP9+v2PL0.net] こっちがデタラメなコード書くと見かねていい感じのコード書いてくれるツンデレ
753 名前:デフォルトの名無しさん mailto:sage [2023/03/18(土) 02:26:56.50 ID:dC3/JFCa0.net] すみません、私の知識不足というか理解不足も大きそうですので、手が出るところからさせて頂こうと思います。 javascriptの「fetch」メソッドなのですが、これはjsonファイルを読み込む事はできないのでしょうか?ローカルで試しましたが、エラーになってしまうようです
754 名前:デフォルトの名無しさん mailto:sage [2023/03/18(土) 05:10:03.75 ID:s5wH/EpL0.net] >>740 fetchやXHRも >>469-475 と同様基本的にFileURIでのアクセス不可
755 名前:デフォルトの名無しさん mailto:sage [2023/03/18(土) 15:36:03.94 ID:dC3/JFCa0.net] ありがとうございます。「ローカルのサーバーを立てる」と良いらしいのですサーバーは専用のパソコンでないと、セキュリティ的にも危険と聞いた事もありますが、大丈夫なのでしょうか。また、実際やるとしたら、どのような方法があるでしょうか。
756 名前:デフォルトの名無しさん mailto:sage [2023/03/18(土) 15:40:55.59 ID:T8cp6VGg0.net] Xamppつかっておけばよろし
757 名前:デフォルトの名無しさん mailto:sage [2023/03/18(土) 19:03:06.43 ID:xpgWDt8BH.net] >>742 vscodeって使える?すごく簡単なエディタ そのエディタでliveServerっていう拡張があるんだけど使えるか試してみたら?
758 名前:デフォルトの名無しさん mailto:sage [2023/03/18(土) 21:30:20.18 ID:HGxbjpaKd.net] Promise.race()で複数のPromiseを渡して、最初に終了したタスクのPromiseを受け取ったあと、同様に順次残りのタスクを完了したものから受け取るような書き方はできますか? (最終的にすべての非同期タスクの終了まで繰り返す) Pythonでいう、as_completedのように複数非同期タスクを、終了次第順次ループで受け取るような形です。
759 名前:デフォルトの名無しさん mailto:sage [2023/03/19(日) 12:35:04.92 ID:DxTl2kdL0.net] >>743 >>744 vscodeの方を使わせて頂きました。お二方ともアドバイス、ありがとうございました。 余談ですが、jsonファイルに単なる文字列(あああ、abc、123)などを単発で格納するとしても、「名前:値」のフォーマットは守らないといけないんでしょうか(名前をいちいち宣言しないとダメなのか)。
760 名前:デフォルトの名無しさん mailto:sage [2023/03/19(日) 12:36:07.26 ID:DxTl2kdL0.net] 正確には「{"名前":値}」ですね。省略できれば楽だなと思ったのですが。
761 名前:デフォルトの名無しさん mailto:sage [2023/03/19(日) 12:59:08.70 ID:4pa7IAk9d.net] {"名前":値}はあくまでオブジェクトの形式であって文字列や数値のみを返したいなら不要 ただし文字列は"あああ"や"abc"とする必要はある https://www.json.org/json-ja.html
762 名前:デフォルトの名無しさん mailto:sage [2023/03/19(日) 13:08:00.26 ID:DxTl2kdL0.net] ありがとうございます。おそらく "abc", "あああ" のようなカンマ区切りで大丈夫でしょうか。
763 名前:デフォルトの名無しさん mailto:sage [2023/03/19(日) 13:20:25.80 ID:S0dCUzy1d.net] 単一の値でない場合は配列にすること ["abc", "あああ"] 有効なjson形式かどうかはJSON.parse()に食わせてみるといい JSON.parse('"abc", "あああ"'); //NG JSON.parse('["abc", "あああ"]'); //OK
764 名前:デフォルトの名無しさん mailto:sage [2023/03/19(日) 14:04:53.34 ID:DxTl2kdL0.net] >>750 参考になりました。ありがとうございます。
765 名前:デフォルトの名無しさん mailto:sage [2023/03/19(日) 15:26:18.81 ID:FTc6ajskM.net] >>745 各promise完了後に順次実行したい共通処理をmapしてthenでチェイン Promise.all(promises.map(p=>p.then(log(“resolved”)))).then(log(“All finished”); function log(message=“”) { return (x) => { console.log(`${message}: ${x}`); return x; } }
766 名前:デフォルトの名無しさん [2023/03/19(日) 16:15:48.14 ID:/GeuLHtL0.net] 趣味でWebサイトを使うのにJSを勉強しだしてまだ3年目なのですが、 なぜか年明けから会社のDX担当にされました。 今社内システムがIE9向けにActiveXが使われているのですが、Edgeに移行するので動くように直してと言われています。 これまで自分なりにいろいろ調べてきて、とりあえずHTML/CSSなどの見た目の部分と、大したことをしていないJSの部分は移行できたのですが、 肝心のActiveXであれこれやっているところを直すことができません。 期限は3月末までで苦しんでいます。 例えばこのような箇所があります。 var connection = new ActiveXObject("ADODB.Connection") var recordset = new ActiveXObject("ADODB.Recordset") var connectionString = "Provider=sqloledb;Data Source=〜〜〜 var query = "〜〜〜 connection.Open(connectionString) recordset.Open(query, connection) while (!recordset.EOF) { var encryptedData = recordset.Fields("data").value var decryptedData = decryptData(encryptedData, decryptionKey) 〜〜〜 recordset.MoveNext() } これをEdgeで代替手段で実装しようと思ったら、どのようなコードになりますか? ライブラリやフレームワークは使ってはいけないことになっていますが、バレなさそうなものなら中に組み込むつもりです。 どうかよろしくお願いします。
767 名前:デフォルトの名無しさん mailto:sage [2023/03/19(日) 16:36:55.71 ID:HI67bUFb0.net] 代替手段なんてない 仕事振ったやつが何も分かってない あれこれやってる内容をなにか別の技術で1から組み立てる必要あり それかedgeのIEモードは検討出来ないの?
768 名前:デフォルトの名無しさん mailto:sage [2023/03/19(日) 17:21:20.47 ID:HTlOdPesM.net] 今から実装してテストしてリリースしてその後の問い合わせ対応や運用に備えるのはスケジュール的に無理でしょ 3月末を死守する必要があるならIEモード1択 IEモードで時間稼ぎしてその間にサーバーサイドからDBアクセスする仕組みを作る IEモードにするにしてもグループポリシーの変更・適用のテストや問い合わせ対応の準備を考えればそれでも時間が足りないくらい
769 名前:デフォルトの名無しさん mailto:sage [2023/03/19(日) 18:07:07.17 ID:EAkcZvWPd.net] >>753 のコードにぶち当たった時点でEdgeというかブラウザ単体で実現できないことには気がついて欲しいものだが 仮にも2年はJSを勉強していたと言うなら
770 名前:デフォルトの名無しさん mailto:sage [2023/03/19(日) 18:51:42.92 ID:M92RK9ru0.net] JSONでダミー値をコメントのつもりで使ってたらエスケープできてない\でパースエラーになるデータができたりして使うのが怖くなった やっぱコメントぐらいは定義必要だったなこれ 人間が手書きするものじゃないとしてもよく普及したもんだ
771 名前:デフォルトの名無しさん mailto:sage [2023/03/19(日) 18:56:28.01 ID:M92RK9ru0.net] >>753 そういうのってEdgeのIEモードに移行して終わりでしょ 周囲も期間的にその程度しか期待してないと思うけど
772 名前:デフォルトの名無しさん mailto:sage [2023/03/19(日) 19:09:54.29 ID:M92RK9ru0.net] ど素人だとIEモードが何なのかで3月は潰れるかもしれんけど一応 基本的には社内のADサーバでGPO管理してる奴にEdgeのIEモードのサイトリストに追加してもらう これは君の担当以外にもIEモードのサイトは糞の山程あって既知の対応だからおそらく追加を依頼するだけでいいはず うまくすればそれだけで作業が終わる可能性もある
773 名前:デフォルトの名無しさん mailto:sage [2023/03/19(日) 19:35:09.37 ID:vtMigryt0.net] >>757 コメントの書式があったって書式から逸脱する文字列を入れてパースエラー出す未来しか見えんわ。
774 名前:デフォルトの名無しさん mailto:sage [2023/03/19(日) 19:46:06.22 ID:GXvqERSA0.net] たぶんIEを前提とした目の前にあるコードを読み解いて作り直すより設計書用意したほうが早い あるいはAIと二人三脚
775 名前:751 [2023/03/19(日) 19:54:47.83 ID:/GeuLHtL0.net] みなさまありがとうございます IEモードは1,2度調べて、いつまでこのモードがあるか分からないからと止めたのですが、 やはり時間稼ぎも考えるとこれしかなさそうです。 その間に根本的な解決策を探したいと思います。 なぜか年明けから会社のDX担当にされました。 と言いましたが、実はそれは嘘です。 年末にかけて社員が半分以上辞めて、残った人の中で一番詳しそうだったのが僕だったのです。 実は、サーバーサイドをいじらないといけないのだということは、薄々気づいていました。 でも、今動き続けているサーバーを触れる人が誰もいないのです。 僕も、SQLというものがある、という程度の知識しかないので、触る気にもなりません。 とりあえず夏のボーナスまで引っ張って、無理そうだったら自分も転職します。 今動いているものをうっかり壊したら、止められなくなりそうなので慎重にがんばります。 ありがとうございました。
776 名前:デフォルトの名無しさん mailto:sage [2023/03/19(日) 19:55:19.68 ID:xryn/wmcd.net] >>757 怖いも何もパーサーがきっちり仕事してる証拠じゃないの? コメントを書きたいって需要に対してはJSON5やJSONCって派生規格があるから それらを検討するべき
777 名前:デフォルトの名無しさん mailto:sage [2023/03/19(日) 20:23:01.76 ID:M92RK9ru0.net] 何が理由かは置いといて技術を含めた社員がごっそり半数も辞めてる状況だとその会社から賞与もまともには出ないだろう Edgeへの移行時期としてもかなり遅れてるし有給消化しつつ転職活動に専念した方がいいね
778 名前:デフォルトの名無しさん mailto:sage [2023/03/19(日) 20:33:33.23 ID:M92RK9ru0.net] >>763 規格はあれど既存の環境に適用できるものではないのがな JSON
779 名前:として扱う前にJSONCとしてコメント抜く前処理でも通すか [] [ここ壊れてます]
780 名前:デフォルトの名無しさん mailto:sage [2023/03/19(日) 22:37:02.99 ID:SC8SOdGAd.net] >>765 パーサーにケチつけてるよりはその方が建設的でしょうよ
781 名前:デフォルトの名無しさん mailto:sage [2023/03/20(月) 03:23:46.29 ID:iV2jn8x9a.net] >>740 VSCode の拡張機能では、 open in browser では、ローカルファイルアクセスになる。 この場合、CORS など、ブラウザの色々な制限がある file:///C:/Users/Owner/Documents/test/index.html 一方、Live Server では、 自分のPC 内にサーバーを立ててから、そこから配信されるので、テストしやすい 127.0.0.1:5500/test/index.html >>753 そういうのは、Excel, VBA, Access とかじゃないの? ベンチャー企業やプロのバックエンドは、Ruby on Rails だけど
782 名前:デフォルトの名無しさん mailto:sage [2023/03/20(月) 04:02:42.23 ID:iV2jn8x9a.net] >>745 Promise.all/allSettled とか?
783 名前:デフォルトの名無しさん mailto:sage [2023/03/20(月) 19:47:12.99 ID:PTBUy+ct0.net] chromeの拡張機能で、「ngWord.json」内のデータを「background.js」経由で「content_script.js」に格納しようとしていたのですが、上手くいきません。コードでおかしな点等あれば、ご教授頂けないでしょうか。 【background.js】 fetch('ngWord.json') .then(response => response.json()) .then(data => { // content_script.jsにデータを送信 chrome.runtime.sendMessage({ngWords: data}); }); 【content_script.js】 chrome.runtime.onMessage.addListener((message, sender, sendResponse) => { if (message.ngWords) { const ngWords = message.ngWords; console.log(ngWords); // 受信したデータを表示 } });
784 名前:デフォルトの名無しさん mailto:sage [2023/03/20(月) 19:56:51.89 ID:hUotJVz90.net] >>769 バックグラウンドからタブに送信するならchrome.tabs.sendMessageじゃないかな?
785 名前:デフォルトの名無しさん mailto:sage [2023/03/20(月) 20:37:35.10 ID:PTBUy+ct0.net] >>770 「タブ」というのは、「content_script.js」のことでしょうか? だとすると「chrome.tabs.sendMessage(tabId: content_script.js, ngWords: data)のように書く感じでしょうか。
786 名前:デフォルトの名無しさん mailto:sage [2023/03/20(月) 20:53:08.72 ID:mlA7fjwPM.net] 雑な方法としてはアクティブなタブに送ればいいんちゃう?
787 名前:デフォルトの名無しさん mailto:sage [2023/03/20(月) 21:36:27.87 ID:hUotJVz90.net] >>771 そうです。background から content_script に送信する場合はchrome.tabs.sndMessage だったと思いますよ chrome.tabs.query({active:true,(tabs)=>{ chrome.tabs.sndMessage(tabs[0].id,{ ngWordsg:data }) }}) というような感じで
788 名前:デフォルトの名無しさん mailto:sage [2023/03/20(月) 21:40:33.20 ID:xjtq7KFo0.net] 最初にコンテンツスクリプト側から何かメッセージ送れば バックグラウンド側のchrome.runtime.onmessage.addListenerのsender.tab.idでタブID取れるっしょ
789 名前:デフォルトの名無しさん mailto:sage [2023/03/20(月) 21:49:32.93 ID:hUotJVz90.net] それならtab.id必要なくてsendResponseで返せるんじゃないかな?
790 名前:デフォルトの名無しさん mailto:sage [2023/03/20(月) 21:53:15.40 ID:PTBUy+ct0.net] 【background.js】 fetch('ngWord.json') .then(response => response.json()) .then(data => { chrome.tabs.query({active:true,(tabs)=>{ chrome.tabs.sendMessage(tabs[0].id,{ngWords:data}) }); }; 【content_script.js】 chrome.runtime.onMessage.addListener((message, sender, sendResponse) => { if (message.ngWords) { const ngWords = message.ngWords; console.log(ngWords); } }); このように修正しましたが、上手く取得できないようです。
791 名前:デフォルトの名無しさん mailto:sage [2023/03/20(月) 22:00:26.17 ID:hUotJVz90.net] そもそもngWord.jsonの中身とれてますか?ローカルファイルならweb_accessible_resources書いてchrome.extension.getURLで取るんじゃないでしょうか?
792 名前:デフォルトの名無しさん mailto:sage [2023/03/20(月) 22:04:38.80 ID:xjtq7KFo0.net] もしかしてスクリプト本当にそれだけなの? だとしたらcontent_script.js実行される前にbackground.js終わってそう
793 名前:デフォルトの名無しさん mailto:sage [2023/03/20(月) 22:24:56.04 ID:PTBUy+ct0.net] 申し訳ありません、私の知識不足で、よく分かりません。もう一度格闘して、改めて質問させて頂きます。ご教授下さり、ありがとうございます。
794 名前:デフォルトの名無しさん mailto:sage [2023/03/20(月) 23:58:23.18 ID:hUotJVz90.net] >>779 めっちゃ適当なこと言ってましたわ web_accessible_resourcesとchrome.extention.getURLは関係ないっぽいです まずcontent_scriptが実行されるタイミングでbackgroundからタブにデータを送れるはずなくて かといってcontent _scriptからメッセージ送ってbackgroundでfetchしたデータを送ろうとしてもセキュリティー的になのか送れない なのでbackgroundでfetchしたjsonをchrome.storage.local.setで保存してcontent _scriptからchrome.storage.local.getで読み込むが正解っぽいです 暇だったんで...
795 名前:デフォルトの名無しさん mailto:sage [2023/03/21(火) 04:01:46.37 ID:rEPYZ+tza.net] 漏れはプロジェクトを作って、index.ts に、TypeScript で以下を書いて、 npm/yarn, webpack, babel でビルドすれば、 import で、JSON ファイルやLodash も読み込めるけど import WordData from "./word_data_tmp.json"; console.log( WordData.length ) const ary = [ ...Array( 5 ).keys( ) ] // => [0, 1, ....,4] import shuffle from 'lodash.shuffle'; console.log( shuffle( ary ) ); // => シャッフルされる
796 名前:デフォルトの名無しさん mailto:sage [2023/03/25(土) 14:02:02.15 ID:MQIuadNDM.net] Next.jsでAPI Routesを使わないのは一般的でしょうか?
797 名前:デフォルトの名無しさん mailto:sage [2023/03/25(土) 18:19:14.13 ID:1/y/Yy4J0.net] 「一般的」のような主観的なものてはなく、客観的な定義が必要なのでは
798 名前:デフォルトの名無しさん (ワッチョイ eb5f-DdLV [14.8.104.32]) mailto:sage [2023/03/28(火) 20:12:53.97 ID:RtCr5Rz10.net] プロミスって何? あとfetchってasync、await使うのと.then使うのでどっちがいいの?
799 名前:デフォルトの名無しさん mailto:sage [2023/03/29(水) 11:27:02.70 ID:NxiPtBQP0.net] >>784 普通に調べれば出てきますよ 調べても調べてもよくわからんって質問をどうぞ
800 名前:デフォルトの名無しさん mailto:sage [2023/03/29(水) 12:55:23.79 ID:y04hNuo/d.net] 消費者金融機関だよ
801 名前:デフォルトの名無しさん mailto:sage [2023/03/29(水) 13:11:20.35 ID:6965UHWi0.net] >>786 絶対に許せないのでxhrにしますね
802 名前:デフォルトの名無しさん mailto:sage [2023/03/31(金) 02:32:51.01 ID:VdncSfH00.net] メイン画面でボタンをクリックすると 別ウィンドウが起動し、ニュースサイトを表示するプログラムを組んでいます。 別ウィンドウが起動した時に そのウィンドウが閉じられたのか、開かれたままであるのかを メイン画面で判定するにはどういうコードを書けばよいでしょうか? 別ウィンドウでサイトが開かれている間は 1、2、3・・・とカウントし、閉じられると0を メイン画面にjQueryでレンダリングしようとしています。
803 名前:デフォルトの名無しさん mailto:sage [2023/03/31(金) 03:09:38.31 ID:29iJjOEC0.net] >>788 window.closed はどう?
804 名前:デフォルトの名無しさん (ワッチョイ 1f8b-3uzD [211.5.157.105]) mailto:sage [2023/03/31(金) 11:32:39.06 ID:VdncSfH00.net] >>789 ありがとうございます。 ちょっと試してみます。
805 名前:デフォルトの名無しさん mailto:sage [2023/04/23(日) 22:40:30.72 ID:k6QZkjYI0.net] 先日(1週間くらい前)まで動いていたジャバスクリプトが動かなくなった。 ブラウザの不具合を疑って firefox、edge、さらに ie11 まで持ち出したらどれも動かない。 ウインドウズのセキュリティの締め上げかなと思って スマホ(アンドロイド)で確認したがこっちも動いていない。 押し入れから昔のアイポッドタッチ(iOS9)を持ち出したが、やっぱ動かない。 こんなことってある? アイポッドタッチなんてスクリプトが動いていたころとなに一つ変わっていないのに なんでこの前は動いたのに今日は動かないんだ? 1年前のバックアップと差分比較してファイルが壊れていないことは確認した。 ちなみに自分がジャバスクリプトを作成するにあたって参考にしたスクリプトは いまも普通に動いている。
806 名前:デフォルトの名無しさん (JP 0Hc5-/HYv [126.249.157.89]) mailto:sage [2023/04/24(月) 07:00:31.38 ID:z1nNn0o4H.net] エラーも出て
807 名前:ネいのか? まったく反応してないのならhtmlで読んでないんじゃね? [] [ここ壊れてます]
808 名前:デフォルトの名無しさん (スプッッ Sd73-8Xzj [1.75.215.168]) mailto:sage [2023/04/24(月) 08:37:00.30 ID:Z0B9bFh/d.net] 動いてた夢を見たんだ
809 名前:デフォルトの名無しさん mailto:sage [2023/04/24(月) 09:21:53.70 ID:U4o0cUkO0.net] >>791 ブラウザの不具合疑う前に エラーログ出て無いか確認しろ エラーログすら出てないならHTML側でちゃんと呼び出せてるか確認しろ
810 名前:デフォルトの名無しさん (ワッチョイ 2bbd-L85M [49.129.243.228]) mailto:sage [2023/04/24(月) 12:05:07.84 ID:VtgoOt7B0.net] https の証明書が古い
811 名前:デフォルトの名無しさん (ワッチョイ 6910-bhMa [180.59.92.6]) mailto:sage [2023/04/24(月) 13:08:00.47 ID:MpRTlb310.net] >>794 エラーログを見たらあっさり解決しました。 夜更けに一人で大騒ぎしてごめんなさい orz いまブラウザの開発者ツールでジャバスクリプトのエラーが見られるんだね。 びっくりした。 原因はHTMLの削除した部分にスクリプトで動かす部分があって 動かすべきものがないから次の処理に行けずエラーになっていました。 スクリプトばかり見ていてHTMLは盲点でした・・・。
812 名前:デフォルトの名無しさん mailto:sage [2023/04/24(月) 13:15:26.56 ID:3ESYAe520.net] 開発者ツール超便利だよね
813 名前:デフォルトの名無しさん mailto:sage [2023/04/24(月) 13:22:29.25 ID:sSUQNn8cr.net] まあそういうオチだろうなとは アドバイスを求めるならhtmlを修正したことは伝えるようにしてほしいところ
814 名前:デフォルトの名無しさん (JP 0Hc5-/HYv [126.249.157.89]) mailto:sage [2023/04/25(火) 18:51:33.50 ID:/Hd1NuvtH.net] 解決したようでなによりなにより
815 名前:デフォルトの名無しさん (ワッチョイ eb7d-RykB [1.33.235.4]) mailto:sage [2023/04/26(水) 19:26:29.99 ID:lfd6T/fN0.net] abehiroshi.la.coocan.jp/ この阿部さんのHPの左のフレームから「舞台出演」を取得したいんだけど、 const frame = await page.$('frame[name="left"]'); const contentFrame = await frame.contentFrame(); こんな感じでcontentFrameを取得するところまでは上手く行くんだけど、 const aElement = await contentFrame.$('body table.today tr:nth-child(8) td:nth-child(3) p a'); 次の要素を取得する段階になるとnullになってしいます どうすれば阿部さんの舞台出演を取得できますか?
816 名前:デフォルトの名無しさん (ワッチョイ d961-99Et [220.107.169.163]) mailto:sage [2023/04/26(水) 20:39:08.46 ID:UfBGheQ30.net] >>800 .todayなんてclass付いてないぞい
817 名前:デフォルトの名無しさん (JP 0Hc5-/HYv [126.249.157.89]) mailto:sage [2023/04/26(水) 22:57:11.72 ID:Q5IzIMlUH.net] それってJS?
818 名前:デフォルトの名無しさん (JP 0Hc5-/HYv [126.249.157.89]) mailto:sage [2023/04/26(水) 23:08:17.75 ID:Q5IzIMlUH.net] そもそもnullを取得してるってことは所望のオブジェクトが取得できていないってことよん?
819 名前:デフォルトの名無しさん (エムゾネ FF33-Nhf9 [49.106.174.76]) mailto:sage [2023/04/27(木) 13:47:05.09 ID:jYECG79eF.net] >>800 それ、ChromeのDevツールとかで、Elementの検索にセレクター入力してちゃんとヒットする?
820 名前:デフォルトの名無しさん (ワッチョイ 03c2-+mtg [133.155.195.156]) mailto:sage [2023/04/29(土) 00:34:06.33 ID:FZLDUbkY0.net] ['apple', 'パイナップル', 'pineapple (パイナップル)', 'りんご', 'pineapple'] を ['apple', 'パイナップル | pineapple', 'りんご'] に別名ふくめて重複削除して整形したいんですがスマートな方法ないですか
821 名前:デフォルトの名無しさん (ワッチョイ 23bd-MgCS [125.197.237.23]) mailto:sage [2023/04/29(土) 01:41:53.10 ID:bskwYySl0.net] >>805 パイナップルの表記方法はどういう仕様なの? スマートじゃない方法で実装できてるならそれを貼ってみたら?
822 名前:デフォルトの名無しさん (ワッチョイ 03c2-+mtg [133.155.195.156]) mailto:sage [2023/04/29(土) 01:58:50.79 ID:FZLDUbkY0.net] >>806 別名がカッコで後ろに付く場合があったりなかったりをまとめたいんです 今は文字列に取り出して正規表現で割ってまた戻して~って頭悪くやってます
823 名前:デフォルトの名無しさん (ワッチョイ 23bd-MgCS [125.197.237.23]) mailto:sage [2023/04/29(土) 02:08:42.66 ID:bskwYySl0.net] >>807 元の配列には、同じ値が複数、たとえば 'りんご' が何個も入ることがある? ただ何にしても、現状がどの程度頭悪いのか分からんけどそこそこ泥臭くなるんじゃないかなぁ
824 名前:デフォルトの名無しさん (ワッチョイ 03c2-+mtg [133.155.195.156]) mailto:sage [2023/04/29(土) 02:20:05.97 ID:FZLDUbkY0.net] >>808 あります
825 名前:デフォルトの名無しさん mailto:sage [2023/04/29(土) 05:52:34.96 ID:q0/EY4lO0.net] >>809 ちょっと面白そうだったので作ってみたけど、あんまりいい出来にはならなかった。 わざわざ見せるようなものじゃないんだけど、一応貼っとく。 アプローチとしては、単品アイテムまたは別名で括られた同一アイテム毎に配列実体を持たせて、重複排除しながらその実体に放り込んで最後に文字列化する。 複数の別名定義で 2つ以上の名前を括ったり、名前の登場順で連結するようにした。 https://i.imgur.com/tY8Yg78.gif
826 名前:デフォルトの名無しさん (ワッチョイ 1bbd-MgCS [119.240.43.251]) mailto:sage [2023/04/29(土) 06:04:20.63 ID:ZqMIj65v0.net] あわわ、26-32行目は整理できた const new-content = []; alias_ref[item] = alias_content.length;
827 名前:デフォルトの名無しさん (ワッチョイ e38b-fitb [211.5.157.105]) mailto:sage [2023/04/29(土) 20:12:37.30 ID:wJzxOo1h0.net] JavaScriptでタイマー処理をしています。 指定した秒数(ここでは10秒)経過したらタイマーを停止する様にしていますが タイマーが止まりません。助けてください、、、 $(document).ready(function(){ $("#id_div_test").click(function () { setInterval(TestFunction , 1000); }); }); var i_current_second = -1; function TestFunction() { i_current_second++; if( i_current_second == 10) { clearInterval(TestFunction); } }
828 名前:502 (ワッチョイ d501-nY3o [36.240.121.112]) mailto:sage [2023/04/29(土) 20:34:34.21 ID:ulzy/WI80.net] >>812 使い方間違っとるな そういうときはまずリファレンスを読め https://developer.mozilla.org/ja/docs/Web/API/setInterval
829 名前:デフォルトの名無しさん (ブーイモ MM49-3F9Y [202.214.125.164]) mailto:sage [2023/04/29(土) 20:36:30.58 ID:WiY5v75xM.net] clearIntervalの引数に入れるのはsetIntervalから帰ってくるnumber 型エラーでハマるのアホらしいしts使うか無理なら//@ts-checkをファイルの先頭に書いとけ
830 名前:デフォルトの名無しさん (ワッチョイ e38b-fitb [211.5.157.105]) mailto:sage [2023/04/29(土) 20:54:08.29 ID:wJzxOo1h0.net] >>814 わかりません。。。どう書けば良いでしょうか?
831 名前:デフォルトの名無しさん (ワッチョイ e38b-fitb [211.5.157.105]) mailto:sage [2023/04/30(日) 00:03:19.23 ID:x92s4/Ng0.net] >>814 できました!
832 名前:デフォルトの名無しさん mailto:sage [2023/05/07(日) 14:48:48.64 ID:NS1NVPz40.net] >>812 こういうのはそのまんまChatGPTに聞けばヒントなり、回答、修正案なんかも返してくれ る。 ---- この問題は、`clearInterval`に渡す引数が誤っているために発生しています。`setInterval`に渡したのは `TestFunction`関数ですが、`clearInterval`に渡すのは `setInterval`が返すタイマーIDです。このタイマーIDは `setInterval`を呼び出すと返されます。 以下は修正されたコード例です。 $(document).ready(function(){ $("#id_div_test").click(function () { var timerId = setInterval(TestFunction , 1000); // タイマーIDを保持するために変数に代入する }); }); var i_current_second = -1; function TestFunction() { i_current_second++; if( i_current_second == 10) { clearInterval(timerId); // 正しいタイマーIDを渡す } } ここでは、`timerId`変数を`setInterval`の戻り値として宣言し、`clearInterval`に渡すようにしました。これにより、タイマーが正常に停止するはずです。
833 名前:デフォルトの名無しさん mailto:sage [2023/05/08(月) 05:12:47.92 ID:AmPaXWnYM.net] >>817 ここいらんやんけ…
834 名前:デフォルトの名無しさん (ワッチョイ 52bd-F1Es [133.209.119.64]) mailto:sage [2023/05/08(月) 09:31:16.79 ID:nWGvwrRY0.net] >>817 setIntetval してるスコープの timerId を clearInterval するスコープから参照できる?
835 名前:デフォルトの名無しさん (ワッチョイ 5b7c-01SL [122.212.18.110]) mailto:sage [2023/05/08(月) 19:39:25.41 ID:0kSPeCjv0.net] エラーが出たらまた聞けば直してくれる あとほ聞き方の問題だね
836 名前:デフォルトの名無しさん (ワッチョイ 028b-KeI6 [211.5.157.105]) mailto:sage [2023/05/08(月) 22:29:23.94 ID:BI0XZhvO0.net] >>817 え?そんな事までChatGPTできるの???すごくね?? どんなシステムになってんだろ。
837 名前:デフォルトの名無しさん (オイコラミネオ MMc7-3VlF [150.66.117.113]) mailto:sage [2023/05/08(月) 23:30:02.71 ID:ieW4qdsxM.net] 条件によってスクリプトを途中で止めさせたいんだけど三項演算子じゃreturnするしないを分けるのは無理? if exitFlag return false
838 名前:デフォルトの名無しさん (ワッチョイ e2bd-F1Es [221.171.102.45]) mailto:sage [2023/05/08(月) 23:46:59.68 ID:PuDhFqQc0.net] >>822 多分無理だと思うけど、なんで if じゃいけないの?
839 名前:デフォルトの名無しさん (オイコラミネオ MMc7-3VlF [150.66.117.113]) mailto:sage [2023/05/08(月) 23:51:00.55 ID:ieW4qdsxM.net] >>823 三項演算子の中で使ってるからなんか気持ち悪い
840 名前:デフォルトの名無しさん mailto:sage [2023/05/09(火) 00:52:34.88 ID:eLWpr74i0.net] f = (flag) => flag ? false : true; console.log(f(true)); console.log(f(false));
841 名前:デフォルトの名無しさん mailto:sage [2023/05/09(火) 00:52:45.73 ID:RQydgiqHd.net] >>821 ChatGPTをプログラム用途で使ったこと無いなら一度つかってみると良いよ。 ググる手間がかなり少なくなる もちろん、間違い返答の可能性もあるからそこら辺はうまく扱う必要があるけどね。 あとGitHub Copilotはもっとヤバいよ。プログラマーなら一度は使うべき
842 名前:デフォルトの名無しさん (ワッチョイ e2bd-F1Es [221.171.102.45]) mailto:sage [2023/05/09(火) 01:40:34.46 ID:r9kkpYgp0.net] OSS のソース読むときにも ChatGPT は便利だよ。 内部関数名とか聞いても何するものか教えてくれる。 この間 OpenSSL のソース読んでて助けられた。 暗号のコードなんて読んでもよくわからないしw
843 名前:デフォルトの名無しさん (ワッチョイ 028b-KeI6 [211.5.157.105]) mailto:sage [2023/05/09(火) 07:51:33.95 ID:y5YEea020.net] >>826 GitHub Copilot そんなのもあるんですね。
844 名前:デフォルトの名無しさん (ワッチョイ 028b-KeI6 [211.5.157.105]) mailto:sage [2023/05/09(火) 10:14:34.85 ID:y5YEea020.net] ChatGPTでsqlでハマった点を質問してみたんだけど ヤバイな。一瞬で分かり易く解説してくれた。 どんなプログラムを組んでるんだ。凄すぎる。
845 名前:デフォルトの名無しさん (ワッチョイ 028b-KeI6 [211.5.157.105]) mailto:sage [2023/05/09(火) 14:59:12.62 ID:y5YEea020.net] chatGPTえぐいんですけど。
846 名前:デフォルトの名無しさん mailto:sage [2023/05/18(木) 17:50:03.04 ID:An6NATd90.net] javascriptでctrl+Wでブラウザタブが落ちるのを無効にする方法はありますか?
847 名前:デフォルトの名無しさん mailto:sage [2023/05/23(火) 06:51:40.61 ID:tIBpGAYNH.net] それはJSの設定?Winの設定?
848 名前:デフォルトの名無しさん mailto:sage [2023/05/23(火) 20:39:57.19 ID:85f2/18wa.net] 最近勉強してvarの何でもありな傍若無人さに気が付いた 例えば関数実行後に初期化してもホイスティングで勝手にundefiedが代入されるからエラーにならず混乱の素、 ブロックスコープ内で使うとその生成を無視するから混乱の素 なのでプロなのにES6以降の環境で未だにvar使ってる人って新人にも劣ると思った ES6以降でEcmaから非推奨と言われてるのに未だにvar使わなければいけない理由ってある? 今後var使ってる人見たら問答無用で勉強しない人と判断しても良い?
849 名前:デフォルトの名無しさん mailto:sage [2023/05/23(火) 20:57:14.94 ID:PscArQu/0.net] キモ
850 名前:デフォルトの名無しさん [2023/05/23(火) 22:34:28.22 ID:y7+F4Fx6M.net] >>833 >例えば関数実行後に初期化してもホイスティングで勝手にundefiedが代入される これいろいろ間違ってる >未だにvar使わなければいけない理由ってある? REPLで繰り返しコードブロックを実行したい場合なんかにvar使う あとはブラウザ以外の環境でES3しか動かない環境とかね >今後var使ってる人見たら問答無用で勉強しない人と判断しても良い? 良いと思うけど君もそっち側に片足突っ込んでるから気をつけて
851 名前:デフォルトの名無しさん mailto:sage [2023/05/24(水) 10:07:05.19 ID:qaFXRxUx0.net] スコープの基本だね レキシカルなのかパラメーターなのか DOMをいじるとみんな参照になるし変数大切ね
852 名前:デフォルトの名無しさん mailto:sage [2023/05/24(水) 10:45:52.94 ID:R9+x876F0.net] 匿名イベントを削除する方法って無い? ググりまくっても全く見当たらんから仕方ないのでElement.prototype.addEventListenerフックしてフィルタしてるんだけど非常に遠回りな事してる気がしてならない
853 名前:デフォルトの名無しさん [2023/05/24(水) 11:04:01.62 ID:CrZEaXEyM.net] >>837 イベントリスナーへの参照を保持してないと removeEventListenerは使えない あとはAbortSignalを使う方法がある MDNのaddEventListener辺りに全部書いてる
854 名前:デフォルトの名無しさん mailto:sage [2023/05/25(木) 06:53:07.70 ID:djzVD0JU0.net] くそ素人で申し訳ない ブックマークレットでCookieを編集する時に有効期限も同時に編集したいのだけれど どうしたらいいのだろうか 元々は javascript:document.cookie=%22ipb_member_id=〇〇%22;document.cookie=%22ipb_pass_hash=〇〇%22; って感じなのだけれど1日くらいしたらすぐ消えてしまう
855 名前:デフォルトの名無しさん (スップ Sd5a-9ehv [49.96.239.55]) mailto:sage [2023/05/25(木) 11:10:49.64 ID:vvIauVZOd.net] どっかのRFCに載ってるはず
856 名前:デフォルトの名無しさん mailto:sage [2023/05/27(土) 14:04:26.57 ID:MkhutBump.net] >>839 そいつは有効期限も一緒に設定しなきゃならんな。 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から触れないこともあるから、 その辺は自己責任でな。
857 名前:デフォルトの名無しさん [2023/05/28(日) 15:24:03.43 ID:n14WZ+eY0.net] documentのinnerHTMLやtextContentの書き換えをしたとき、ブラウザのDOMの計算(?)や再描画(?)は変更があった部分のみか、ページ全体で行われるののどちらでしょうか?
858 名前:デフォルトの名無しさん mailto:sage [2023/05/28(日) 23:28:10.35 ID:8mVMxOyu0.net] >>841 ありがとうまじ助かった
859 名前:デフォルトの名無しさん mailto:sage [2023/05/29(月) 06:35:55.98 ID:eVNfBOW80.net] CookieってPHPみたいなサーバーサイドから設定するのとJSから設定するのどっちが良いんかね? 同僚から受け継いだシステムはPHPでやってたが
860 名前:デフォルトの名無しさん mailto:sage [2023/05/29(月) 07:03:02.74 ID:nuFuFtG60.net] HttpOnlyの存在考えるとサーバーサイド一択じゃね?
861 名前:デフォルトの名無しさん mailto:sage [2023/05/29(月) 08:05:53.64 ID:7kZHwtIo0.net] ステートレスな通信を補助するものだから、処理の起点側でつけると良い ただ、一般的にはサーバサイドになると思うよ
862 名前:デフォルトの名無しさん (ワッチョイ 5f4b-HhYS [110.2.215.28 [上級国民]]) mailto:sage [2023/06/19(月) 13:57:37.11 ID:iYcFBKEZ0.net] if ((a == b && c != d) || (e == f && g != h)){ alert ("正解"); } こういうコードの書き方は出来ますか? 二重括弧の使い方は正しいでしょうか?
863 名前:デフォルトの名無しさん (ワッチョイ 5f4b-HhYS [110.2.215.28 [上級国民]]) mailto:sage [2023/06/19(月) 14:42:31.77 ID:iYcFBKEZ0.net] ちょっと調べてたんですが、こうでしょうか? if (((a == b) && (c != d)) || ((e == f) && (g != h))){ alert ("正解"); } 「a == bとc != dの条件が両方ともtrue」か「e == fとg != hの条件が両方ともtrue」なら"正解"と警告を表示したいのですが… 三重括弧なんてあります?
864 名前:デフォルトの名無しさん (ワッチョイ ff7b-0fSR [153.185.178.93]) mailto:sage [2023/06/19(月) 14:49:42.42 ID:G503Uwj70.net] >>847 で大丈夫やろ。 なんで試さんの?
865 名前:デフォルトの名無しさん (ワッチョイ ff61-gPkm [153.171.212.140]) mailto:sage [2023/06/19(月) 14:54:44.66 ID:Glrukv1f0.net] 演算子優先度の理解が追い付いて無いなら好きなだけ括弧使えばいい
866 名前:デフォルトの名無しさん (オッペケ Sr33-vDmN [126.157.241.160]) mailto:sage [2023/06/19(月) 14:58:41.52 ID:3rS08iXar.net] 何重カッコでもいけるけど演算子やカッコが増えると可読性が落ちて条件式を読み解くのが辛くなる コードは長くなっても条件式をいくつかに分割して変数に入れた方が読みやすくなるよ const x = (a == b) && (c != d) const y = (e == f) && (g != h) if(x || y){ alert ("正解"); } とか
867 名前:デフォルトの名無しさん (ワッチョイ 5f4b-HhYS [110.2.215.28 [上級国民]]) mailto:sage [2023/06/19(月) 15:02:17.21 ID:iYcFBKEZ0.net] 皆さん、ありがとうございます 変数に入れるのがいいですね やってみます
868 名前:デフォルトの名無しさん (アウアウウー Sa23-QBJ2 [106.130.41.210]) mailto:sage [2023/06/19(月) 23:22:27.82 ID:xNSaH23va.net] イテレータ、Map、Setがややこしくて😩なんだけど実務で使う? 一応理解したけどカスタムイテレータ作ってそれをオブジェクトに追加してfor...ofなんて無理だな プログラマーならバリバリ使うのかな?それとも知識として仕組み知っとくだけ?
869 名前:デフォルトの名無しさん (オッペケ Sr33-vDmN [126.205.219.139]) mailto:sage [2023/06/20(火) 13:18:59.52 ID:es0ShzRur.net] Mapはキーと値の組み合わせのコレクション Setは重複のない値のコレクション どちらも実務で出番はある イテレータは中身を1個ずつ取り出せるものの総称 カスタムイテレータに関してはmdnもおすすめのジェネレータ関数を覚えておけばいいかと バリバリではないにしてもここぞというときに役に立つ
870 名前:デフォルトの名無しさん (ワッチョイ ffda-ZcId [223.216.178.53]) mailto:sage [2023/06/21(水) 18:20:14.61 ID:He5qrAkL0.net] 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> ・・・
871 名前:デフォルトの名無しさん (ワッチョイ 7d4b-Hjce [110.2.215.28 [上級国民]]) mailto:sage [2023/06/26(月) 12:08:05.73 ID:QXVTwCFE0.net] 変数って定義する前はundefinedが入ってるんでしょうか?
872 名前:デフォルトの名無しさん (ワッチョイ 1501-WolJ [60.109.218.97]) mailto:sage [2023/06/26(月) 20:02:32.96 ID:nZR6QJ/D0.net] >>856 変数定義前は変数がない 変数定義時に値を代入しなければundefinedで初期化される
873 名前:デフォルトの名無しさん (ワッチョイ 7d4b-Hjce [110.2.215.28 [上級国民]]) mailto:sage [2023/06/26(月) 21:13:06.03 ID:QXVTwCFE0.net] >>857 ありがとうございます。
874 名前:デフォルトの名無しさん (アウアウウー Sab9-cUyJ [106.130.49.224]) mailto:sage [2023/06/29(木) 21:35:42.23 ID:I06beN9ya.net] Promiseメソッドなんなの独自ルール多すぎでしょ。もはや別言語に感じる。これよく使用される?
875 名前:デフォルトの名無しさん (ワッチョイ 1a00-KjOb [221.118.182.138 [上級国民]]) mailto:sage [2023/06/29(木) 22:34:31.96 ID:mZg1DRHQ0.net] Promise周りは最初は取っつきにくいけど、凄く使いやすく作られてるし、物凄くよく使うよ。
876 名前:デフォルトの名無しさん (ワッチョイ 1d5f-momQ [14.8.104.32]) mailto:sage [2023/06/29(木) 23:09:38.14 ID:OBXN/r9b0.net] async awaitでしかfetchをかけない自分と、thenでしかfetchを書けない前任者のせめぎあい xhrはなぜか知らんがもう時代じゃないらしいし
877 名前:デフォルトの名無しさん (アウアウウー Sab9-Br7/ [106.128.36.203]) [2023/06/30(金) 10:14:20.96 ID:Lj29KtNna.net] 的外れな質問だったら申し訳ありません… クラスAが長くなってしまったこと(1500行くらい)、類似クラスBとある程度共通化できそうな部分があったので関数Cとして 別ファイルに切りだそうと思いました。 その際、関数CからAの複数のメンバ変数/メソッド(Bも同じ名前の変数/メソッドを持っている)を利用したいのですが、 一つ一つ引数で渡していくと記述が煩雑だし、仕様も変わる可能性があります。 そこで、Aのインスタンスから関数Cにthisを引数として渡すようにして、関数Cからは仮引数this.メンバ変数 などのようにして自由にAのメンバにアクセスできるようにしました。 以上のやり方で、動作はしているようですが、なんか良くないやり方の様な気もしています。 上記のやり方は一般的な方法でしょうか。何かデメリットはありますでしょうか。
878 名前:デフォルトの名無しさん (ワッチョイ 7691-pVx5 [153.223.3.108]) mailto:sage [2023/06/30(金) 10:55:58.80 ID:qu6f9mWQ0.net] クラスAたBの同名の変数と関数をBaseクラスにしてAとBに継承すれば同名の変数関数を持ってることが保証できてうっかり名前変えてしまったとかのバグ防げるんじゃない?インターフェースみたいに それから引数じゃなくてbind使えば関数C内でthisを自然な感じで使えるとか
879 名前:デフォルトの名無しさん (アウアウウー Sab9-Br7/ [106.128.39.112]) [2023/06/30(金) 13:05:23.88 ID:2BLecjKja.net] 有り難うございます。 デメリットとしては後でA~Cをいじった時にバグの温床になりやすいこと、くらいの認識で良いんですかね。 基底クラスを継承するかたちにすることも考えたいと思います。 確かにbind/callを使った方が、動作は同じでよりシンプルな気がしてきました。
880 名前:デフォルトの名無しさん (アウアウウー Sa47-NFBa [106.146.70.58]) mailto:sage [2023/07/01(土) 04:46:01.59 ID:nMEzWNF9a.net] is_a, has_a 継承か包含か、古典的な質問
881 名前:デフォルトの名無しさん (アウアウウー Sa47-ctHD [106.155.8.134]) mailto:sage [2023/07/01(土) 19:38:17.78 ID:hPyQUT1Ya.net] javascript: if((result = prompt("input formula string","")) == "") alert("no formula string"); else alert(eval(result));
882 名前:デフォルトの名無しさん (ワッチョイ 5a00-PRVu [221.118.182.138 [上級国民]]) mailto:sage [2023/07/01(土) 22:48:30.73 ID:WfKHfAvE0.net] なんつー邪悪なコード
883 名前:デフォルトの名無しさん (ワッチョイ 5b4b-nuDV [110.2.215.28 [上級国民]]) mailto:sage [2023/07/05(水) 21:30:37.79 ID:74hfvDDi0.net] (function(){ ~ })(); こういう書き方をしてるコードがあったんですけど、これは実行も含めた関数の書き方でしょうか? 最初の(と最後の)()の意味がわかりません
884 名前:デフォルトの名無しさん (ワッチョイ e301-cWjJ [60.109.218.97]) mailto:sage [2023/07/06(木) 00:31:51.01 ID:IKcM4kIN0.net] >>868 即時関数 ()は関数宣言ではなく、関数式として実行するため
885 名前:デフォルトの名無しさん (ワッチョイ 5b4b-nuDV [110.2.215.28 [上級国民]]) mailto:sage [2023/07/06(木) 01:40:00.57 ID:vc4JCbkY0.net] >>869 ありがとうございます よくわかりました
886 名前:デフォルトの名無しさん (ワッチョイ 7679-p0MK [175.105.104.184]) mailto:sage [2023/07/07(金) 13:17:53.80 ID:tybFBPle0.net] なるべく自分で考えたキモイ名前は晒したくないからな?
887 名前:デフォルトの名無しさん (ワッチョイ a15f-eaRz [14.13.136.34]) [2023/07/08(土) 18:01:12.76 ID:0tWDp4eO0.net] 今ホームページを制作しているのですが教えて頂きたいです。 下記内容のコードの書き方がわかりません。 5枚の画像があるのですが、全部では無く一旦一枚目のみ表示させたいです。 次に各画像を説明する文字があります。その文字にマウスカーソルを合わせると、その文字にあった画像に2枚目3枚目と切り替わるようにしたいと思っています。 初心者すぎるので例としてコードを作って頂ければ見ながら調整したく思っています。 どなたかお教え頂けませんでしょうか。
888 名前:デフォルトの名無しさん (スプッッ Sd73-mu37 [1.75.238.73]) mailto:sage [2023/07/08(土) 20:53:43.61 ID:S1M2Nutrd.net] >>872 それはもう質問ではない
889 名前:デフォルトの名無しさん (ワッチョイ a15f-vDrU [14.8.104.32]) mailto:sage [2023/07/08(土) 21:24:42.99 ID:DhofVjWT0.net] ChatGPTに聴け
890 名前:デフォルトの名無しさん (ワッチョイ d101-Ud/M [60.105.201.125]) mailto:sage [2023/07/08(土) 23:32:58.73 ID:EFUbRXYX0.net] >>872 質問にするなら>>1-3 を読もう
891 名前:デフォルトの名無しさん (アウアウウー Sa55-knyK [106.146.116.188]) mailto:sage [2023/07/09(日) 01:18:13.12 ID:YP8p84HTa.net] よくある、スライダーでしょ? jQuery でもあるでしょ Bootstrap のCarousel (カルーセル) https://getbootstrap.jp/docs/5.0/components/carousel/
892 名前:デフォルトの名無しさん (ワッチョイ a15f-eaRz [14.13.136.34]) [2023/07/09(日) 01:44:11.98 ID://wYUerL0.net] なんか色々ルールがあるんですね 諦めて勉強します ありがとうございます
893 名前:874 (アウアウウー Sa55-knyK [106.146.114.68]) mailto:sage [2023/07/09(日) 19:52:50.68 ID:gl6FDMI+a.net] jQuery slider Bootstrap Carousel などで検索すれば、一杯ある 一杯あるけど、難しいから自作する人はいない。 皆、jQueryUI やBootstrap のCarousel などの既製品を使う
894 名前:デフォルトの名無しさん (ワッチョイ 9300-Yt8B [221.118.182.138 [上級国民]]) mailto:sage [2023/07/09(日) 21:16:30.84 ID:VzLiONyC0.net] え、そんな難しい要素無いよ
895 名前:デフォルトの名無しさん (スップ Sd9f-asTj [49.97.111.88]) mailto:sage [2023/07/17(月) 23:23:58.12 ID:XzfBWjood.net] フォームフィールドが定義されたPDFファイルがすでにあって、ブラウザ上のJavascriptでWebフォームに入力されたテキストをPDF側のフィールドに反映させてダウンロードすることができるpdfライブラリってあまりすか? 使い方のイメージとしては、たとえばPDF上に名前を入力する箇所がいくつかあるけど、ユーザーは単にweb上で普通のinputフォームを入力してsubmitすると名前が入力済みのPDFファイルをダウンロードできる、という感じです。 pdfmake等いくつかライブラリは見たのですが、白紙ベースでPDF作る例しか見あたらなくて(テンプレートは画像背景で切り替え等)、直接PDFフォームを扱えるものは無いかなと。
896 名前:デフォルトの名無しさん (アウアウウー Sac5-HZc/ [106.130.137.152]) mailto:sage [2023/07/29(土) 00:54:23.66 ID:s0ko+FdFa.net] プログラミング全く知らない状態からやっとJavaScript一通り学びました かなり難しかったです。でもJavaScriptは比較的簡単な言語なんですよね? ES6以降のJavaScriptでもやっぱり簡単なんですか? それとES6で大規模アップデート合った時は絶望しましたか? 勉強していて苦しんだのがスコープ、this、反復処理の背景(iteratorの動き、yieldは何をしてるか)、非同期処理(Promise、then、async)、その他様々なメソッド、静的メソッド、、、 これら全てES6から導入されましたよね?絶望しませんでしたか? 例えば私がもしES5までのJavaScriptに慣れ親しんでいてES6のアップデートに触れたら絶対絶望してました。概要見ても「?????」となってたはずです プログラミングに向いてる人はこんな大規模アップデートがあるとワクワクする人なのでしょうか? 絶望せず、「何ができるようになったんだろう!凄い!こんな事やあんな事が出来る!」みたいな人も居ましたか?
897 名前:デフォルトの名無しさん (ワッチョイ c200-pYoK [221.118.182.138 [上級国民]]) mailto:sage [2023/07/29(土) 08:26:35.15 ID:wB1gRUiQ0.net] ES5までは貧弱だったのでそりゃもう大歓喜よ。 それと現代のJavaScript(を使いこなすの)はもはや簡単な部類じゃないように思う。
898 名前:デフォルトの名無しさん (オッペケ Sr91-xmUq [126.254.133.95]) mailto:sage [2023/07/29(土) 09:45:27.72 ID:ZQ+RMRi1r.net] 苦しみとか絶望とか>>881 は言語の習得を学校の勉強と同じようなものとしか捉えてないフシがある 日本史の勉強範囲が大政奉還までだと思ったら第二次大戦までだった!みたいな感覚 新しく覚えたことは実際のプログラミングで活かせるんだという意識が全く感じられない
899 名前:デフォルトの名無しさん (アウアウウー Sac5-HZc/ [106.130.201.25]) mailto:sage [2023/07/29(土) 14:21:53.16 ID:LQ1ElLyya.net] >>882 >>883 とにかく理解するのに必死で苦しみました。jJavaScriptが簡単とは全く思いませんでした
900 名前:デフォルトの名無しさん (アウアウウー Sac5-HZc/ [106.130.201.25]) mailto:sage [2023/07/29(土) 14:27:58.50 ID:LQ1ElLyya.net] try,catch,finally文の存在異議が分からなかったけど、今さっき急にasync/awaitのエラーハンドリングに向いてるのに気が付きました つまりthen,catchのPromiseチェーンをより楽に書けるのに今さっき気が付きました。こんな感じで上手くいかないですね
901 名前:デフォルトの名無しさん (ワッチョイ c200-pYoK [221.118.182.138 [上級国民]]) mailto:sage [2023/07/29(土) 15:03:53.70 ID:wB1gRUiQ0.net] .then().catch()の方が綺麗に書けて(副作用的な意味で)好きだなぁ
902 名前:デフォルトの名無しさん (ワッチョイ c6bd-g4Mn [119.240.43.146]) mailto:sage [2023/07/30(日) 02:24:04.00 ID:oecUblNe0.net] >>881 言語として簡単かっていうとどうだろうね。 Webブラウザがあれば動かせる上にデバッグ環境まで付いてるから、誰でもすぐ始められるし、作ったものをどこででも動かしてもらえるという手軽さはあると思うけど。
903 名前:デフォルトの名無しさん (ワッチョイ 095f-kJnY [14.8.104.32]) mailto:sage [2023/07/30(日) 14:24:24.68 ID:av5XIWe10.net] 自分はプロトタイプ型オブジェクト指向から入ったから気にならないけどクラス型でプログラム書いてた人は違和感凄いんだろうな あとクロスブラウザ対応しなきゃいけなかった人達もJSはしんどかったんだろうなと想像
904 名前:デフォルトの名無しさん (ワッチョイ e94b-C8We [110.2.215.28 [上級国民]]) mailto:sage [2023/08/04(金) 01:16:43.56 ID:LzfYm8xL0.net] rd41 = ""; alert (rd41); これで「rd41は未定義です」ってエラーは出ますか? alert(rd41); これだけだと「rd41は未定義です」ってエラーが出ますよね 実際のコードはalertでは無いのですが、rd41に無を代入して何も表示させたくないのです rd41 = null; だと、nullと表示されてしまいます
905 名前:デフォルトの名無しさん (ワッチョイ e94b-C8We [110.2.215.28 [上級国民]]) mailto:sage [2023/08/04(金) 01:36:14.69 ID:LzfYm8xL0.net] chatGPTに質問したら答えが返ってきた https://i.imgur.com/5NbJI6w.jpg
906 名前:デフォルトの名無しさん (ワッチョイ febd-FWk2 [49.129.241.111]) mailto:sage [2023/08/04(金) 09:00:08.06 ID:2wk44tWe0.net] >>889 delete を調べてみるとどうだろう。 やりたいことによってはブロックスコープで足りるかも。 個人的にはブロックスコープを活用して、変数を小まめに狭い範囲に閉じ込める書き方をおすすめしたい。
907 名前:デフォルトの名無しさん (ワッチョイ a101-CknR [60.89.4.138]) mailto:sage [2023/08/04(金) 09:14:51.09 ID:TEvOuQNU0.net] >>889 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
908 名前:デフォルトの名無しさん (オッペケ Sr91-q/g9 [126.254.212.243]) mailto:sage [2023/08/04(金) 09:37:58.66 ID:EZ9l15Zsr.net] >>889 >rd41 = ""; >alert (rd41); >これで「rd41は未定義です」ってエラーは出ますか? なんで試してみないの?
909 名前:デフォルトの名無しさん [2023/08/11(金) 14:55:53.43 ID:+rPtXLG2m] JÅLだのAΝАた゛
910 名前:のクソアヰ又ト゛ゥだの洒飲んて゛業務してるクサヰマ一クだのコ゛キブリフライヤ‐だのジェットクサ‐だのテ囗リストに 天下り賄賂癒着して都心まて゛数珠つなぎて゛騒音に温室効果カ゛スにコ囗ナにとまき散らさせて,気候変動させて海水温上昇させて. 土砂崩れに洪水、暴風,猛暑.大雪にと災害連發させて地球破壞して、静音が生命線の知的産業に威カ業務妨害して 知的産業を根絶やしにして.個人情報漏洩に不正送金にシステム障害まみれのポンコツ後進国に陥れた自民公明た゛か゛, どうやら騒音は,知的産業のみならす゛,音楽や執筆などの創作活動にも甚大な影響を及ほ゛していることか゛明らかになってきたな 技術全敗で海外に売れるものはア二メくらいとか言われていたのか゛、それすら死に体になって曰本終了にも程があるだろ 日銀に金刷らせて賄賂癒着してる資本家階級と大企業を高額総ナマポ化して.コ゛ミ企業た゛らけをゴミ企業10О%に陥れたわけだが 民主主義化しようと立ち上がった山上大先生と,それを國葬によって消し去り腐敗國家を存続させんとする自民公明の攻防キモ杉た゛ろ 創価学会員は,何百万人も殺傷して損害を与えて私腹を肥やし続けて逮捕者まて゛出てる世界最悪の殺人腐敗組織公明党を 池田センセ一が口をきけて容認するとか本氣で思ってるとしたら侮辱にもほどがあるぞ! httPs://i、imgur.соm/hnli1ga.jpeg [] [ここ壊れてます]
911 名前:デフォルトの名無しさん (ワッチョイ f233-yhDR [101.141.60.18]) mailto:sage [2023/08/14(月) 23:07:53.97 ID:QNJSoVjn0.net] 時報みたいなのを作成中でそのhtmlのページさえ開いておけば 9時、12時、18時(プリセットとかは無く固定)に特定のwavサウンドファイルがaudioElement.play() で再生される用にしています (タブが非アクティブだとなんか動かない時があったのでwindow.openで表示させてます) chromeのポリシーみたいなのでユーザーが明示的なアクションをしないと音声の自動再生はされないみたいで それの良い回避策ってありますか? 実用性考えると携帯のアラームが百倍使いやすいけど 自分用にチープなのを作って遊んでるんだけど解決策が思いつかなくて・・・
912 名前:デフォルトの名無しさん (ワッチョイ 1f4b-uBRt [110.2.215.28 [上級国民]]) mailto:sage [2023/08/15(火) 01:53:58.77 ID:Efj8IW440.net] >>895 そういう質問はchatGTP得意や 聞いてみれば
913 名前:デフォルトの名無しさん (ワッチョイ 7e63-SF+K [153.218.139.115]) [2023/08/21(月) 00:13:21.70 ID:v7lFaH3H0.net] 【環境】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'),''); } }) 以上ご指導よろしくおねがします
914 名前:デフォルトの名無しさん (スッップ Sdca-jTH6 [49.98.168.137]) mailto:sage [2023/08/21(月) 11:40:28.26 ID:cB09UaOod.net] >>897 まずconsole.log()や開発者ツールを使って自分の書いたコードがどこまで想定通りに動いてるか確認してみよう
915 名前:デフォルトの名無しさん (ワッチョイ 534b-ubuk [110.2.215.28 [上級国民]]) mailto:sage [2023/08/21(月) 11:51:22.81 ID:7Ts4WfMN0.net] >>897 コードを見る限り、置換を行うためのコードは一見正しく見えますが、複数の潜在的な問題が考えられます。まず、コード内のいくつかのポイントをチェックしてみましょう。 1. **クラス名のスペル**: `tx-date` クラスが正しく `x-date` クラスになっているか確認してください。 2. **期待する置換変化の確認**: 期待する置換変化がどのようなものか確認してみてください。コード内で `tDate` の内容を `console.log()` を使って出力し、実際の値が正しいか確認できます。 3. **変数 `replaceDate` の設定**: `tBody.split("*")[1]` の部分で、正しい位置に `*` が存在しているか確認してください。`split()` メソッドは対象の文字列を指定の文字で区切って配列にしますが、もし `*` が存在しない場合、期待通りの結果が得られない可能性があります。 4. **置換操作の適用**: `tDate` に対して行った置換操作が、実際のDOM要素に反映されていない可能性があります。`tDate` の内容を変更した後、対応するDOM要素の内容を更新するコードが不足しているようです。 これらのチェックポイントを確認した上で、コードを修正するか、デバッグすることをお勧めします。また、具体的なサンプルHTMLコードや置換の例を提供していただければ、より具体的なアドバイスを提供できるかもしれません。
916 名前:デフォルトの名無しさん (スッップ Sdca-jTH6 [49.98.168.137]) mailto:sage [2023/08/21(月) 12:25:10.86 ID:cB09UaOod.net] このワッチョイ **4bは質問スレにchatGPTの回答貼るだけのボットみたいなもんだからスルー推奨 NG入れといてもいい
917 名前:デフォルトの名無しさん (アウアウウー Sa7f-7wIC [106.133.165.90]) mailto:sage [2023/08/22(火) 23:04:06.56 ID:rPfWctd8a.net] 2か所とも、clas="tx-date" になっている! class でしょ
918 名前:898 (アウアウウー Sa7f-7wIC [106.133.165.90]) mailto:sage [2023/08/22(火) 23:12:31.83 ID:rPfWctd8a.net] >const ItemDate = document.getElementsByClassName("x-date"); x-date は、tx-date じゃないの?
919 名前:898 (アウアウウー Sa7f-7wIC [106.133.165.90]) mailto:sage [2023/08/23(水) 00:10:28.94 ID:B78POXf5a.net] 一旦、要素 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
920 名前:デフォルトの名無しさん (スプッッ Sd6a-jTH6 [1.75.209.193]) mailto:sage [2023/08/23(水) 10:39:07.30 ID:oZ78uDd8d.net] >>903 それはもう質問に答えたというよりデバッグと修正を代行したのであってこのスレの主旨には合わない おそらく他の人もそういう認識だからこの件に口を出さないんだと思うよ
921 名前:898 (アウアウウー Sa7f-7wIC [106.146.101.215]) mailto:sage [2023/08/23(水) 19:53:27.23 ID:ktllvUDta.net] 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); } }); } );
922 名前:デフォルトの名無しさん (アウアウエー Sa22-NwC7 [111.239.174.98]) [2023/08/25(金) 21:08:52.47 ID:+90wXQAMa.net] 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"] );
923 名前:デフォルトの名無しさん (アウアウウー Sa47-rTQJ [106.146.72.134]) mailto:sage [2023/08/26(土) 04:11:22.52 ID:wsJDYSi/a.net] 「chrome.webRequest.onBeforeRequest」で検索! webRequest https://developer.mozilla.org/ja/docs/Mozilla/Add-ons/WebExtensions/API/webRequest
924 名前:デフォルトの名無しさん (アウアウエー Sa5f-/No0 [111.239.174.98]) mailto:sage [2023/08/26(土) 12:48:58.33 ID:mvAl1l0Ba.net] そこ見てどうすればいいのか分からないからここに来た・・・
925 名前:デフォルトの名無しさん (スッップ Sd9f-oH/7 [49.98.169.249]) mailto:sage [2023/08/26(土) 17:41:19.65 ID:/LQp1jGld.net] return detail.documentUrl とか?
926 名前:デフォルトの名無しさん (アウアウエー Sa5f-/No0 [111.239.174.98]) mailto:sage [2023/08/26(土) 18:56:03.08 ID:mvAl1l0Ba.net] return detail.documentUrl; return {redirectUrl: detail.documentUrl}; どちらもダメ。リダイレクトのURLを返すことになるから、リダイレクトの無限ループに入っちゃう それなら、リダイレクト止めればいいじゃんって思うんだけど return {cancel: true}; のようにするとナビゲーション自体が止まってアクセスできなくなっちゃう
927 名前:デフォルトの名無しさん (ワッチョイ cf8a-cMf3 [153.207.237.45]) mailto:sage [2023/08/26(土) 19:46:44.48 ID:HE/rWC1F0.net] 空のオブジェクト返せばいいんじゃないの? こんなの見て参考にしては? https://gitlab.com/ClearURLs/ClearUrls/-/blob/master/clearurls.js?ref_type=heads
928 名前:デフォルトの名無しさん (ワッチョイ e361-NWkk [180.15.228.252]) mailto:sage [2023/08/26(土) 21:15:33.19 ID:AeqeuiS+0.net] 無限ループしてるって事は条件分岐失敗してるんじゃないの? console.logデバッグでもしてみたら?
929 名前:デフォルトの名無しさん (オッペケ Sre7-bab6 [126.212.162.196]) mailto:sage [2023/08/27(日) 12:33:38.16 ID:QiCv/PxZr.net] >>906 リダイレクト後のurlに
930 名前:?foo=barとかクエリ文字列付けてみるとかは? これでフィルタにかからなくなるみたい もちろんこれでサーバが誤動作起こさないのが前提だけど [] [ここ壊れてます]
931 名前:デフォルトの名無しさん (ワッチョイ cf63-n242 [153.218.137.10]) [2023/09/03(日) 21:37:03.60 ID:0BSqvC2P0.net] サイト内にフォームが設置してあるページが複数あります お問い合わせ、新規登録、ログイン、パスワードリマインド、などです 一時的に 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"> もっとスマートにお問い合わせページだけ入力できる ヒントをお願いできませんでしょうか?
932 名前:デフォルトの名無しさん (ワッチョイ 4327-g4sH [164.70.253.210]) mailto:sage [2023/09/03(日) 21:48:21.38 ID:qR1Ry2o90.net] 【環境】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)
933 名前:デフォルトの名無しさん (ワッチョイ 8361-yzHn [180.15.227.160]) mailto:sage [2023/09/03(日) 23:01:09.12 ID:zsKKxMoe0.net] >>915 console.log(localStorage && (localStorage.getItem('deck'))); の結果は本当にundefined?、undefinedの上の行に何か表示されてるよね?
934 名前:デフォルトの名無しさん (ブーイモ MM7f-sgzH [133.159.150.82]) mailto:sage [2023/09/03(日) 23:17:01.93 ID:II4MkDPZM.net] >>914 下記セレクタでイケるはず(問い合わせページ以外でinput要素とbutton要素を抽出) body:not(#contact) :is(input, button)
935 名前:デフォルトの名無しさん (ブーイモ MM7f-sgzH [133.159.150.82]) mailto:sage [2023/09/03(日) 23:33:36.04 ID:II4MkDPZM.net] >>915 下記のログ出力はどうなる? console.log(localStorage.getItem('deck') !== undefined ? 'バカめ!!よく確認しろ!!' : 'undefined です');
936 名前:デフォルトの名無しさん (ワッチョイ 4327-g4sH [164.70.253.210]) mailto:sage [2023/09/04(月) 13:53:40.48 ID:R0PWdUab0.net] >>916 コンソール出力結果は undefined 1 undefined です >>918 バカめ!!よく確認しろ!! undefined になります
937 名前:デフォルトの名無しさん (ブーイモ MM7f-gLHL [133.159.151.54]) mailto:sage [2023/09/04(月) 14:44:17.50 ID:0gdMzEOZM.net] getItemは該当キーに対する値がなければundefinedではなくnullを返すのでlocalStorageが存在していれば console.log(localStorage && (localStorage.getItem('deck')));は null undefined と出力される undefinedの上が空行になってるならdeckに対する値が入ってる それが空文字ならfalsyなのでconsole.log(1)は実行されない truthyな不可視文字(例えば改行コード)が入っていればconsole.log(1)も実行される inspectやencodeURIで中身に何が入ってるか確かめればはっきりさる
938 名前:デフォルトの名無しさん (ブーイモ MM7f-gLHL [133.159.151.232]) mailto:sage [2023/09/04(月) 14:45:10.48 ID:I1Zu7zQTM.net] はっきりさる!
939 名前:デフォルトの名無しさん (ワッチョイ 4327-g4sH [164.70.253.210]) mailto:sage [2023/09/04(月) 15:37:52.51 ID:R0PWdUab0.net] あー わかりました "undefined" っていう文字列がすでに入っちゃってたみたいです 丁寧に回答いただいてありがとうございました!
940 名前:デフォルトの名無しさん (ワッチョイ cf63-0HOd [153.218.137.10]) mailto:sage [2023/09/04(月) 15:59:10.40 ID:KQbfSHx50.net] ウキキ🐒 input セレクタで解決しましたカッコイイ記述ありがとうございます
941 名前:デフォルトの名無しさん (オッペケ Sr07-JKlf [126.255.138.111]) mailto:sage [2023/09/05(火) 12:01:10.43 ID:y2XoXHZcr.net] >【何をしたのか】開発ツールコンソール上でサンプルコードを実行すると >条件文が undefined にもかかわらず if 文内 console.log(1) が実行される 不可解な挙動に遭遇したとき、自分が何か勘違いしてないかまずそこを疑ってみようという教訓 あとtruthyやfalsyな値の取り扱いは慎重に
942 名前:デフォルトの名無しさん (ワッチョイ 2901-pIYl [60.114.101.121]) mailto:sage [2023/09/28(木) 14:42:04.81 ID:Pzc86hhG0.net] ほんまに、助かったで!
943 名前:デフォルトの名無しさん mailto:sage [2023/10/04(水) 23:59:59.93 ID:77DZdeZo0.net] if(rd41.value){ dofn() } これが正しく実行されないのですが(暴走するというか、意味不明な実行結果が現れます)、if文の中で関数の呼び出しは出来ないのでしょうか? もしそうなら、このコードを正しく動作するように書き換えることは出来ますか?
944 名前:923 mailto:sage [2023/10/05(木) 02:54:19.96 ID:pCa3KI6i0.net] 普通に動作しました すみません
945 名前:デフォルトの名無しさん (ワッチョイ 9f05-cJ9m [116.94.11.103]) mailto:sage [2023/10/16(月) 00:30:39.82 ID:tJl0Ngd50.net] 質問です 下記の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() では上手くクリックすることができませんでした
946 名前:デフォルトの名無しさん (ワッチョイ 2e76-tQak [247.119.160.34]) mailto:sage [2023/10/16(月) 00:54:14.00 ID:SqBXoLFp0.net] document.querySelectorAll(“.MuiDialog-container,.MuiBackdrop-root”).forEach(e => e.remove())
947 名前:デフォルトの名無しさん (ワッチョイ 9f05-cJ9m [116.94.11.103]) mailto:sage [2023/10/16(月) 08:33:51.49 ID:tJl0Ngd50.net] >>929 早速ありがとうございます ただ、注意深くコピペして実行させたのですが 残念ながらメッセージパネルは閉じられませんでした
948 名前:デフォルトの名無しさん (ワッチョイ e25c-CexO [211.121.28.151]) mailto:sage [2023/10/16(月) 09:38:31.66 ID:9MW6cr+O0.net] document.querySelector(".MuiSnackbar-anchorOriginTopCenter").remove()
949 名前:デフォルトの名無しさん (ワッチョイ 9f05-cJ9m [116.94.11.103]) mailto:sage [2023/10/16(月) 10:55:49.91 ID:tJl0Ngd50.net] >>931 すいません、それもダメみたいです
950 名前:デフォルトの名無しさん (ワッチョイ 9f05-cJ9m [116.94.11.103]) mailto:sage [2023/10/16(月) 11:01:33.63 ID:tJl0Ngd50.net] ブラウザ上の全然関係ない場所をクリックして自己解決しました document.elementFromPoint(1, 1).click() 根本的な問題から逃げたようで悔しいですけどw
951 名前:デフォルトの名無しさん mailto:sage [2023/10/24(火) 20:00:13.55 ID:xAzUmtPF0.net] >>928 誰一人解決できなかったのか? すまん、俺もわからんw
952 名前:デフォルトの名無しさん (ワッチョイ 877c-JmE3 [122.212.18.110]) mailto:sage [2023/10/25(水) 13:36:08.76 ID:JRNrMb5/0.net] 名前付き引数としてプロパティをもつオブジェクトを引数にする場合のJSDocの書き方ってどう書くのが正しいのでしょうか? ネットで調べて以下の画像のように書くと、VSCodeで関数の説明で表示される時にプロパティ側の日本後説明部分が表示されません。 imgur.com/xhSQcMc.png 構文のほうには型は反映されてるので読み込めてはいるようなのですが…
953 名前:デフォルトの名無しさん (ワッチョイ 5fc2-vcKV [133.155.195.156]) mailto:sage [2023/10/26(木) 10:06:04.96 ID:QIG+kzYs0.net] source = ['いぬ=ドッグ', 'ぬこ=猫咪', 'キャット=にゃんこ', 'ねこ=キャット', 'わんこ=小狗', '老鼠=ねずみ', '小狗=ドッグ', 'マウス=ねずみ', '猫咪=キャット'] これを result = [['いぬ', 'ドッグ', 'わんこ', '小狗'], ['ぬこ', '猫咪', 'キャット', 'にゃんこ', 'ねこ'], ['老鼠', 'ねずみ', 'マウス']] これに集計するにはどうしたらいいですか
954 名前:デフォルトの名無しさん mailto:sage [2023/10/26(木) 12:52:26.88 ID:jSMDhhI40.net] >>936 https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce
955 名前:デフォルトの名無しさん mailto:sage [2023/10/26(木) 12:52:36.47 ID:jSMDhhI40.net] >>936 https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce
956 名前:デフォルトの名無しさん [2023/10/26(木) 13:05:50.11 ID:m2KCtDyt0.net] canvasでarc関数でx:100,y:100の位置に青で塗りつぶした半径3の円を描いたんですが これと同じ位置に同じ半径で同じ色で塗りつぶした円を描くと四角形ぽくなってちょっと大きくなって表示されます。 背景を塗りつぶして1回目に描いた円を一度消去してから2回目の円を描いても同じでした。 文字の場合でも同じ位置に同じ文字を重ね書きすると太くなっちゃいました。 どうすればちゃんと同じ位置に同じ物を描いても太くならないようにできますか?
957 名前:デフォルトの名無しさん (ワッチョイ c791-DWPP [242.12.24.181]) mailto:sage [2023/10/26(木) 22:17:18.42 ID:npbiXWKI0.net] >>936 それは質問ではなくて丸投げと言います
958 名前:デフォルトの名無しさん (ワッチョイ fff0-f0DH [241.193.34.196]) mailto:sage [2023/10/27(金) 08:04:19.82 ID:93zv19AS0.net] >>936 競技プログラミングのスレで聞いて! これは、UnionFind で、3つの木になる UnionFind は、プログラミング・コンテスト・チャレンジブック(蟻本)に載っている
959 名前:デフォルトの名無しさん (ワッチョイ 639d-XI6K [109.236.1.125]) [2023/11/13(月) 18:52:10.34 ID:qEXCkkFf0.net] alertのテキストをコピペする方法とかってご存知ありませんか? どなたか知恵をお貸しください
960 名前:デフォルトの名無しさん mailto:sage [2023/11/13(月) 22:10:22.42 ID:FIfUHr+c0.net] 質問したいなら詳しく書こうね
961 名前:デフォルトの名無しさん mailto:sage [2023/11/14(火) 02:43:20.79 ID:MYkZh+2q0.net] >>942 alertのテキストをコピーするには、通常はウェブページ上でalertが表示されている状態で、テキストを選択して右クリックし、"Copy"や"コピー"を選択する方法があります。ただし、ウェブサイトのalertはJavaScriptで生成されるもので、そのテキストを直接コピーする方法は制限されていることがあります。可能であれば、そのテキストを手入力でコピーすることができます。
962 名前:デフォルトの名無しさん (ワッチョイ c5f9-EFnx [244.158.6.121]) mailto:sage [2023/11/14(火) 19:07:48.92 ID:WEqhXBJy0.net] 検索すれば? コピーを防ぐ方法は、幾つかある ブラウザのF12 ボタンの開発者ツールで調べるとか
963 名前:デフォルトの名無しさん mailto:sage [2023/11/14(火) 20:45:30.47 ID:Mc/CoQSw0.net] >>942 マルチボスト先に答えがある https://mevius.5ch.net/test/read.cgi/hp/1478002550/706-
964 名前:デフォルトの名無しさん (JP 0H89-BcU5 [104.234.140.171]) mailto:sage [2023/11/15(水) 11:30:55.95 ID:FHoogchzH.net] >>939 亀だけど fill()が複数回呼ばれると円が太るみたい ctx.arc(100, 100, 3, 0, Math.PI * 2); ctx.fill(); ctx.arc(100, 100, 3, 0, Math.PI * 2); ctx.fill(); でなく、 ctx.arc(100, 100, 3, 0, Math.PI * 2); ctx.arc(100, 100, 3, 0, Math.PI * 2); ctx.fill(); でやると円が太らなかったよ
965 名前:デフォルトの名無しさん (ワッチョイ e374-n7Dx [211.124.81.22]) [2023/11/15(水) 12:39:52.38 ID:D0hDoGTF0.net] 亀が2chに書き込みにやってきた
966 名前:デフォルトの名無しさん mailto:sage [2023/11/17(金) 20:41:48.61 ID:oUDu0vRd0.net] console.log()のlogってどういう意味ですか? printとかputじゃなくてlogで出力って珍しいですね
967 名前:デフォルトの名無しさん [2023/11/18(土) 14:13:31.53 ID:mHEv1Kbm0.net] consoleオブジェクトのログ情報を出力するためのlogメソッド…
968 名前:デフォルトの名無しさん (アウアウウー Saa1-UHOz [106.180.4.201]) [2023/11/18(土) 16:58:25.29 ID:rXJKESWNa.net] blogのlog
969 名前:デフォルトの名無しさん (ワッチョイ 0d5f-uy16 [14.8.71.128]) mailto:sage [2023/11/18(土) 18:26:17.47 ID:vb+682X10.net] 彼岸島の名産品
970 名前:946 mailto:sage [2023/11/18(土) 23:53:58.59 ID:rj8Lk8BJ0.net] …どこまで信じたらいいの? >>950 ありがとうございます
971 名前:デフォルトの名無しさん (ワッチョイ e300-5mk2 [2400:2200:7f1:bf91:*]) mailto:sage [2023/11/19(日) 10:42:09.47 ID:HAfvoabg0.net] いえいえ
972 名前:デフォルトの名無しさん mailto:sage [2023/11/20(月) 16:19:56.96 ID:q8v/AXQl0.net] const arr =Array(3).fill([]); arr[1].push(0); console.log(arr); この場合arrは[[], [0],[]]になっていることを期待するのですが実際には[[0], [0], [0]]となっています まったく納得いかないのですがなぜですか
973 名前:デフォルトの名無しさん mailto:sage [2023/11/20(月) 16:41:25.42 ID:LC62eXy40.net] >>955 https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/fill#value >配列を埋める値。もし value がオブジェクトであれば、配列のそれぞれの要素はそのオブジェクトを参照します。
974 名前:デフォルトの名無しさん mailto:sage [2023/11/20(月) 16:49:32.78 ID:q8v/AXQl0.net] >>956 fillがそういう仕様なんですね 納得です ありがとうございました
975 名前:デフォルトの名無しさん (ワッチョイ eb79-5mk2 [2400:2200:7f6:ca17:*]) mailto:sage [2023/11/21(火) 08:31:09.87 ID:reAksYQu0.net] いえいえ
976 名前:デフォルトの名無しさん mailto:sage [2023/11/21(火) 23:06:08.47 ID:Hk8WzggI0.net] 変数宣言の際に、letよりconstを積極的に使うべき、とされているのはなぜでしょうか? 後で値を変えられるletの方が便利だと思うのですが
977 名前:デフォルトの名無しさん mailto:sage [2023/11/22(水) 00:26:41.03 ID:nlRha+4K0.net] JSにかかわらず変数は使ってる道中に値変換したり変数使いまわしてるとエラーの種になりやすいし、それを防止するのが大きいかな 配列やオブジェクトの値はconstでも変えられるし 昔はそういうごちゃごちゃ動く変数のトレースするのもプログラム組むやつの能力ってされてたなぁ
978 名前:デフォルトの名無しさん mailto:sage [2023/11/22(水) 03:01:31.39 ID:KDSVu4Ne0.net] コードを上から読んでいく時にconstだとこの値は後から変わることがないと決めつけて読むことができる letだとどこかで書き換えられるのに注意しながら読まないといけない
979 名前:デフォルトの名無しさん [2023/11/22(水) 10:49:23.49 ID:5A+ZhXZi0.net] 可読性の部分が大きいよね varで変数定義しているクソコードなんかリファクタリングしたくないだろ?
980 名前:デフォルトの名無しさん [2023/11/22(水) 11:06:59.29 ID:5A+ZhXZi0.net] constで最初から定義した後にそれが動的な値だった場合タイプエラーを起こしてからletに書き換える事はあるけど最初からletで定義しちゃうと後々constに書き換えた場合もしそれが動的な値ならプログラムそのものが動かなくなって新たなるバグを生むでしょう? 最初は縛りを強くしておいて後から緩めるはあるけど逆はないですよ
981 名前:デフォルトの名無しさん mailto:sage [2023/11/22(水) 15:03:20.05 ID:hF+LjdVs0.net] 条件によって const の値を変えられるようになるといいんだけどな。 簡単なのなら参考演算子でやれるけど。
982 名前:デフォルトの名無しさん (ワッチョイ e302-8oJ/ [27.94.242.45]) [2023/11/22(水) 20:15:59.75 ID:5A+ZhXZi0.net] >>964 よくわからないけどそれってconst使う意味あるの?
983 名前:デフォルトの名無しさん (ワッチョイ 2539-YW6P [2400:2200:6f2:ad2b:*]) mailto:sage [2023/11/22(水) 20:54:04.80 ID:FIiKhTS50.net] 察するに初期代入時に場合によって違う値を入れたいということだろう 三項演算子を出してるし
984 名前:956 (ワッチョイ 4d1d-f5/H [180.178.89.53]) mailto:sage [2023/11/22(水) 21:26:20.43 ID:VeafCB/q0.net] 答えてくれた方々ありがとうございました 積極的にconstを使っていきたいと思います
985 名前:デフォルトの名無しさん (ワッチョイ 25ca-SdNv [122.132.80.240]) mailto:sage [2023/11/22(水) 21:54:03.90 ID:7CtxEw9g0.net] >>965 うまい例になってるかわからないけど、何かのプロパティに値が入ってたらそれ、無ければデフォルト値を const に入れたいとか、この条件がもっと複雑になった感じとか。 あるいは、何かの基準座標を const に入れたいけどその値は一発では求まらないとか。 単にこれだけなら中間的な変数を使って値を求めて、最後に const に代入するって手もあるだろうけど、中間的な変数はスコープから追い出したいのにできないよね。 const x; { let a, b, c; : x = a + b * c; } みたいにできれば a b c はスコープから追い出せるけど、実際は let a, b, c; : const x = a + b * c; ってやらざるを得なくて、x が存在するスコープから a b c を追い出せない。 この計算を function に切り出せよと言うかもしれないけど、できればそうすりゃいいけどどこにでも適用できるというわけでもない。
986 名前:デフォルトの名無しさん (ワッチョイ 250c-YW6P [2400:2200:6d0:af1d:*]) mailto:sage [2023/11/22(水) 22:23:44.12 ID:lZKHNjwl0.net] 調べてみると苦肉の策で↓みたいな書き方が紹介されてたけど可読性考えるとどうだろうね const x = (() => { let a, b, c; : return a + b * c; })();
987 名前:デフォルトの名無しさん (ワッチョイ e3c2-fy5B [2001:240:2467:98ce:*]) mailto:sage [2023/11/22(水) 22:52:37.25 ID:8gAUwwkj0.net] 関数に切り出さない意味がわからない
988 名前:デフォルトの名無しさん (ワッチョイ 6bcf-ekUX [153.206.41.110]) mailto:sage [2023/11/23(木) 00:25:34.14 ID:9np+Rtrn0.net] 欲しいのはただのブロックなのに関数として書かなければならないというのが余計なことをやらされている感はある。
989 名前:デフォルトの名無しさん mailto:sage [2023/11/23(木) 01:53:09.12 ID:pAGXWPD10.net] var使え
990 名前:デフォルトの名無しさん (ワッチョイ 25ca-SdNv [122.132.80.240]) mailto:sage [2023/11/23(木) 15:16:53.54 ID:d47OCYFA0.net] >>969 処理の結果として複数の const、例えば x y を求めたい時は、その書き方でも難があるよね
991 名前:デフォルトの名無しさん (ワッチョイ 2d12-YW6P [2400:2200:6f7:92d9:*]) mailto:sage [2023/11/23(木) 15:39:42.20 ID:98Thj8w70.net] >>973 その場合はタプルで受け取るようにすれば問題ないよ const [x, y] = (() => { let a, b, c; : return [a + b * c, a * b + c]; })();
992 名前:デフォルトの名無しさん (ワッチョイ 25ca-SdNv [122.132.80.240]) mailto:sage [2023/11/23(木) 15:58:06.00 ID:d47OCYFA0.net] >>974 ああ、それが現状の最適解な気がするね。 後で汎用関数化したくなっても対応しやすいし。 まあ >>971 みたいな感覚はあるし、関数としてのコストも気になっちゃうけど。
993 名前:デフォルトの名無しさん (ワッチョイ 551d-1fOb [180.178.89.53]) mailto:sage [2023/11/29(水) 23:49:26.08 ID:oO9dmq1+0.net] const num = 1; とした時、numはCやJavaのint型と違って、1という値のオブジェクトを参照している という理解でよろしいでしょうか? (numという名前でラベリングされたメモリ領域には、1そのものではなく 数値オブジェクトへの参照値が入っている?)
994 名前:デフォルトの名無しさん mailto:sage [2023/11/30(木) 04:02:01.17 ID:uIFlL3tD0.net] >>976 1 はプリミティブ値。 Object型ではない。
995 名前:973 mailto:sage [2023/11/30(木) 22:41:28.93 ID:l5hD/Y3Y0.net] >>977 レスありがとうございます 分かりました 文字列('Hello World'など)もプリミティブなんですよね どうやって内部で実装されてるんですか?
996 名前:デフォルトの名無しさん mailto:sage [2023/11/30(木) 22:57:08.84 ID:mSFTiyup0.net] MDNをまず読みましょう https://developer.mozilla.org/en-US/docs/Glossary/Primitive
997 名前:デフォルトの名無しさん mailto:sage [2023/11/30(木) 23:13:04.35 ID:5k4SwxyG0.net] >>976 実装的には全て参照扱いだよ ただし数値の場合は参照(ポインタ)そのものに数値を埋め込むという方法 だから全て参照だけどメモリは消費しないというハック
998 名前:デフォルトの名無しさん mailto:sage [2023/12/01(金) 01:54:56.09 ID:Bo4sqMI/0.net] >>978 質問が大雑把過ぎる もっと具体的に詳しく
999 名前:975 (ワッチョイ 691d-zrcD [180.178.89.53]) mailto:sage [2023/12/02(土) 04:48:25.07 ID:3pMMmiCv0.net] 返信くれた方々、ありがとうございます >>979 TOEICのスコア400点台だったので厳しいです… >>980 参照扱いでもプリミティブ型って言うんですか? Javaではintやdoubleなど参照を用いずにデータを記憶する型をプリミティブ型と 呼んでいたので、少し混乱しています… >>981 すみません、以後気を付けます
1000 名前:デフォルトの名無しさん mailto:sage [2023/12/02(土) 10:49:58.14 ID:qpNh64Np0.net] >>980 は気にしなくていいよ 英語苦手でもプリミティブには7つの型がある、ぐらいは読めるだろう あと日本語のページがないか調べるぐらいはしよう https://developer.mozilla.org/ja/docs/Glossary/Primitive
1001 名前:デフォルトの名無しさん (ワッチョイ 91ca-j/4L [122.132.80.240]) mailto:sage [2023/12/02(土) 11:43:24.98 ID:/unkk9Eq0.net] >>982 そもそもそんなことを気にしてどうするの? 何がしたくての質問? ぶっちゃけ表向き気にするべきなのは、その変数 a を別の変数 b に代入して、b を操作したら a まで同じように変わるのかどうかだけだと思うよ。
1002 名前:979 (ワッチョイ 691d-zrcD [180.178.89.53]) mailto:sage [2023/12/03(日) 12:45:58.94 ID:FUDcVj1n0.net] >>983 分かりました ありがとうございます >>984 レスありがとうございます うーん、まあこだわりとでも言いましょうか… 個人的にはそこまで知っておくことは無駄ではないと思います
1003 名前:デフォルトの名無しさん (ワッチョイ c1b6-egvc [2400:2200:6d6:9e9c:*]) mailto:sage [2023/12/03(日) 13:08:07.26 ID:tV1DejKO0.net] >>978 の質問なんかは明らかに自分のスキルや理解力に不相応なことを知ろうとしてない? それを知ろうとするのはもっと力を付けてからがいいと思う
1004 名前:デフォルトの名無しさん (ワッチョイ 1901-+tyV [60.118.124.10]) mailto:sage [2023/12/03(日) 14:24:30.66 ID:GsReymgf0.net] >>985 実装を知る以前に仕様は理解してる? 「仕様書のここをどうやって実装しているか、を知りたい」なら誰かしら答えるかもしれないが、そのようなレベルにも見えない 仕様を理解せずして、実装を理解するのは無理
1005 名前:デフォルトの名無しさん mailto:sage [2023/12/03(日) 17:15:18.22 ID:TpyXoIhbM.net] >>987 乗っかって補足すると、同じ仕様の実装なんて何通りもあるのよね。 そこであえて実装を知りたいというなら、その理由も書く方が間違いないよね。
1006 名前:982 mailto:sage [2023/12/04(月) 23:09:24.91 ID:GWbm6wp00.net] レスありがとうございます 遅くなってすいません >>986 そうですよね まあ単純に、文字列である以上、変数用に確保したメモリ領域内に簡単には収まらない だろうなと推測したんです でも不変な値なら参照使わなくても収まるのかな >>987 微妙です 入門書を読んで間もないレベルです >>988 分かりました まあ実装って言い回しが大仰でした 参照を使ってあるかどうかを特に知りたかったんです
1007 名前:デフォルトの名無しさん mailto:sage [2023/12/04(月) 23:27:59.49 ID:lRGkzbxI0.net] そのレベルを気にする人はもうフレームワーク作るレベルだろう
1008 名前:デフォルトの名無しさん (アウアウウー Sa9d-/D3x [106.146.123.7]) mailto:sage [2023/12/05(火) 20:06:09.74 ID:gtr9NjJza.net] >>985 あ、ややこしい書き方してすまん 単にuint64_tが値の参照でオブジェクトの場合はポインタが入ってて 整数の場合はそのまま使ってると言うことを言いたかっただけ typedef uint64_t JsValue; JsValueが「値」を指す参照 JsValue obj = createObject(); // Object JsValue smi = createSmi(); // Small Integer こうすることでオブジェクトも数値も同じように扱える V8もJSCも全部これ
1009 名前:982,986 mailto:sage [2023/12/05(火) 23:32:22.63 ID:c1y4Tvg20.net] レスありがとうございます >>990 そうなんですかね >>991 内容がハイレベルですね
1010 名前:デフォルトの名無しさん mailto:sage [2023/12/06(水) 00:21:20.37 ID:HaZOzd170.net] >>989 入門書を読んで間もないレベルなら、口が避けても「仕様を理解した」とは言えない 実装を覚えるのは仕様書を読めるようになった後だろう https://262.ecma-international.org/14.0/
1011 名前:デフォルトの名無しさん mailto:sage [2023/12/09(土) 10:39:43.45 ID:npLWblUF0.net] 素人な質問で申し
1012 名前:有りません。 下記のスクリプトで何故か関数丸々出力されてしまうのです。 テキストでは改行が多すぎる為、投稿出来ないため画像で申し訳有りません。 下のグレーのフォントが出力結果です。 出力指定していないので、何も出力されないはずなのですが…。 https://i.imgur.com/tJnx1oK.jpg [] [ここ壊れてます]
1013 名前:デフォルトの名無しさん mailto:sage [2023/12/09(土) 11:31:37.42 ID:In8GNdRi0.net] >>994 画像でコート見るのはしんどいので、>>2 のサイト使って現象が再現するコードを掲示してほしい
1014 名前:デフォルトの名無しさん [2023/12/09(土) 14:27:43.55 ID:iYG1bkmj0.net] >>994 どうでもいいけど関数名の付け方にセンスないな コメントもつける意味がないゴミ 変換ならconvertとかにすりゃいいのに…
1015 名前:デフォルトの名無しさん mailto:sage [2023/12/09(土) 15:46:37.17 ID:W9usxQKOr.net] /や:が入ってるのを明示してるのはコメントとして意味があるだろう
1016 名前:デフォルトの名無しさん (ワッチョイ 1b56-m+YX [2400:4176:2846:5b00:*]) mailto:sage [2023/12/09(土) 16:39:16.69 ID:0uXDsiHr0.net] classのインスタンスで#プライベートメソッドにアクセスする方法ってないんでしょうか?
1017 名前:986 (ワッチョイ b51d-g9yR [180.178.89.53]) mailto:sage [2023/12/09(土) 17:13:36.47 ID:YETt4fHv0.net] >>993 はい リンクありがとうございます
1018 名前:デフォルトの名無しさん (オッペケ Sre1-tek/ [126.254.232.20]) mailto:sage [2023/12/09(土) 17:46:24.03 ID:Mnb70srnr.net] なかったんで次スレ立てた https://mevius.5ch.net/test/read.cgi/tech/1702111239/
1019 名前:デフォルトの名無しさん mailto:sage [2023/12/10(日) 11:19:27.25 ID:ngtmyS7f0.net] >>995 サイトの使い方がいまいち分からず試してましたが、サイトでは症状が再現できず想定通りの挙動でした。これは作ってるアプリ側に原因があるのでしょうかね。 mementoというdbアプリだったのですが。 >>996 自覚はあります。プログラムに興味を持ち練習はじめなので勘弁してやってください。思いつかないんですorz
1020 名前:デフォルトの名無しさん (ワッチョイ 35cb-tek/ [2400:2200:6f2:ada4:*]) mailto:sage [2023/12/10(日) 11:47:16.59 ID:v6fUhk/70.net] >>1001 >>994 を実行してる環境について書いてくれないと コードで見えてる部分以外については知りようがないんだから あと関数名を思いつかないならAIに候補を挙げさせるのはアリ 続きが必要なら次スレにどうぞ
1021 名前:デフォルトの名無しさん [2023/12/16(土) 00:37:24.71 ID:xiFcB2tC0.net] テスト
1022 名前:1001 [Over 1000 Thread.net] このスレッドは1000を超えました。 新しいスレッドを立ててください。 life time: 495日 8時間 39分 45秒
1023 名前:過去ログ ★ [[過去ログ]] ■ このスレッドは過去ログ倉庫に格納されています