- 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
- 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とは区別したいのか同じとみなしたいのか この辺次第で望ましい書き方は変わってくるわけで
|

|