JavaScript の質問用スレッド vol.125

■ このスレッドは過去ログ倉庫に格納されています
2022/08/07(日) 15:57:40.26ID:TS5TGpUB0
!extend:checked:vvvvvv:1000:512
JavaScript を自ら学ぶ人のための質問スレッドです。
>>2-5のテンプレを読んだ上で質問してください。次スレは>>950>>2の「次スレの立て方」を元に立ててください

■質問を書く上で
(1) 煽り、コード制作依頼等、人を不快にさせる投稿はご遠慮下さい。公序良俗を守った応対を心がけてください。
(2) 他の人に迷惑をかけるスクリプトの質問はご遠慮ください。
  (ブラクラ、[戻る], [閉じる], [クリック] の妨害、画面占有など)
(3) 質問者及び議論を行う人はメール欄を空欄にし、名前にレス番を入れることを強く推奨します。回答者はなりすましを判断できませんので、なりすましが現れても自己責任となります。
(4) 常に自発的に調べる心構えを持ってください。
  具体的には「自分で調べてから質問する」「回答をもらってわからない単語があればGoogle検索してみる」など。
  わからない内容を代わりに調べてくれる回答者をお望みの方は余所で質問してください。
(5) 出来るだけ一般的な用語を使用してください。脳内オレオレ用語は混乱の元です。
(6) 出来るだけサンプルコードを掲示してください。言葉による説明は行き違いが生まれる場合があります。
  ※必ず「問題の事象が再現されること」を確認してください。
   必要な部分だけ切り出したつもりで現象が再現できていなかったケアレスミスがしばしば見られます。
(7) サンプルコードに HTML が含まれる場合は http://validator.w3.org/ で [Check] してみてください。
(8) 質問を具体的かつ詳細に書くと回答を得られやすいです。>>2の質問テンプレートを活用してみてください。
(9) ライブラリ関連の質問は禁止です。関連スレにあるライブラリ質問スレで質問して下さい。
(10) 時にはあなたが望む「答え」だけでなく、「意見」などが寄せられる場合もあります。

■前スレ
JavaScript の質問用スレッド vol.124
https://mevius.5ch.net/test/read.cgi/tech/1636525464/
VIPQ2_EXTDAT: checked:vvvvvv:1000:512:: EXT was configured
525デフォルトの名無しさん (ワッチョイ 8202-9yt5 [27.92.176.51])
垢版 |
2023/01/05(木) 09:23:08.82ID:EVXeoiyo0
「関数呼び出し」と
「引数付の関数リテラル」は
それだけみても違いわからないですね。
定義された場所を見て判断しないと。
2023/01/05(木) 10:06:29.26ID:rM8SDmmnr
>>523
>>setTimeout("$('#display').html(' ')", 1000);
>ありがとう。関数とは、関数呼び出しではなく実行される文字列
いやいや、それは関数じゃなくてただの文字列
setTimeoutの第一引数は文字列か関数って書いてあるでしょ

関数リテラルって言葉はもう忘れていいと思うよ
そもそもMDNに記述がないから便宜的なものだし、その本での説明も怪しい
定義の仕方で区分されてるだけで実質的にはただの関数で
挙動に差異があるわけでもないだろうし
2023/01/05(木) 10:52:19.71ID:rM8SDmmnr
>>522
>「引数funcは関数リテラルで指定するようにしてください。」程度でいいと思う
それだとfunction命令で定義した関数は指定してはいけないと誤解されるからリテラルを削ったほうがいいかと
2023/01/05(木) 10:52:37.45ID:uFuuDD5j0
>>523
関数リテラルという呼び方はひとまず置いといて、無名関数という概念でとらえるとよい
function(~~){~~} は見ての通り、ひとつの無名関数である

var getTraiangle = function(base,height){ return base * height/2; }
によって、変数getTraiangle でこの無名関数を参照できるようになる

getTraiangle(5,2)
では変数名を使って先の無名関数を呼び出し、戻り値が取得される
これは一般に「関数の戻り値」と呼ばれる (関数リテラルではない)

console.log('三角形の面積:'+getTraiangle(5,2));
では、「+」によって、文字列 '三角形の面積:' と数値である戻り値が連結されて、ひとつの文字列が生成される
console.log()がそれを出力する

>>525
何かしら(無名)関数を使うにあたり、引数が要るなら付ける、要らないなら付けない、それだけの話
あなたの言う「引数付の関数リテラル」は勘違いで、「引数付きの関数呼び出し」に過ぎない

>>524
そういうこと
2023/01/05(木) 11:50:49.92ID:hRDnYJsk0
>>523
>setTimeout("$('#display').html(' ')", 1000);
ありがとう。関数とは、関数呼び出しではなく実行される文字列

違う。全く違う。めっちゃ大事なことだから勘違いしないで
それはsetTimeoutoの第一引数を文字列として指定した場合のこと

第一引数に関数を指定する方法は>>514で君は既にやっている
setTimeout(clearDisplay, 1000);
clearDisplay関数を定義してそれをsetTimeoutの第一引数に渡している
これでいい
>>527の言う通り

>>526の言う通り今は無名関数とか関数リテラルとかにこだわらない方がいい
>>523のうp画像に無名関数は重要な概念なので後ほど詳述ってあるからそこをみっちり勉強してね
2023/01/05(木) 12:50:07.72ID:w+0CNSMQr
関数リテラルの説明についてはここが一番しっくりくる
https://www.javadrive.jp/javascript/function/index5.html

「関数リテラルを使った関数定義」って言い回しを強調してるのが良い
だから関数リテラルを引数として渡すって言ったらこういうことだよなって
dispNum(10, 8, function(x, y){
return (x + y) / 2;
});
2023/01/05(木) 14:46:47.66ID:EVXeoiyo0
すいません。やっぱり関数リテラルという意味を理解したい。。でも↓この質問でわかるかも。
だれか答えていただけますでしょうか?
---
次のコードがあります。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.
関数リテラルとは、用法のことであり、
コード部分を表すものではない。
2023/01/05(木) 14:53:38.67ID:mmmJuCOb0
>>531
ぐぐったら以下の様に出る。結構理解しやすいと思うが。
リテラルとは リテラルとは、プログラムのソースコードにおいて使用される、数値や文字列を直接に記述した定数のことである。 変数の対義語であり、変更されないことを前提とした値である。 プログラミング言語のコード中にリテラルが挿入される場合には、判別のために特定の書式を用いる必要がある。
2023/01/05(木) 15:02:17.50ID:EVXeoiyo0
うん。「リテラル」ということばによって惑わされてきた気がする。
2023/01/05(木) 15:06:19.08ID:akcN5qw4a
関数リテラルは関数として評価可能な右辺値と考えておけばまあいいんじゃないの
正確な定義は構文木の定義を見れば書いてある
2023/01/05(木) 15:10:13.35ID:HxGsZjLmr
>>531
1だろう
let s = "abc";
の"abc"を文字列リテラルと呼ぶけどそれを代入した変数sを
文字列リテラルとは呼ばないでしょ
2023/01/05(木) 15:28:42.13ID:c7qQflpDr
>>531
で、繰り返しになるけど本やサイトによっても説明がまちまちで
MDN探しても出てこないような用語だからあまり囚われない方がいい
理解しようとして時間をかけるだけ無駄
2023/01/05(木) 15:35:00.85ID:m3Sm+5EJ0
>>531
強いて言えば1かな
でも数値・文字列・正規表現リテラルみたいにプログラム中に単独で書くことは出来ないね
変数に代入するなり関数の引数に使うなりしないとエラーになる
英語でもfunction literalっていうみたいだけど関数リテラルってあんまりいい言葉だと思わないなあ

33;
"hello";
/^js$/;

function() {return true}; //SyntaxError

こんなことにこだわるよりもっと基本的なこと勉強した方方がいいんじゃないの?
2023/01/05(木) 15:38:00.87ID:EVXeoiyo0
あ。
誤解していたところがとけました。
当初は「2」かと妄信していたので、
だいぶ合点がとれました。
関数リテラルが無名関数と同義という説明も
いやそうではないという説明も
すっきりしました。

皆さん長々とお付き合いいただき
ありがとうございました。
2023/01/05(木) 19:28:05.49ID:j61eMuZ00
>>511
技術評論社のjQuery本格入門はものすごく読みづらかった。
もっと分かり易い言葉で解説して欲しかった。
2023/01/05(木) 20:02:55.70ID:EVXeoiyo0
>>534
>関数リテラルは関数として評価可能な右辺値と考えておけばまあいいんじゃない

この発想というか常識が無かったなあ。
2023/01/05(木) 20:55:47.77ID:XhDooIHVH
>>531
自分もあまりJS詳しくないんですけど
リテラルっていうのは、括るもの、という意味合いでは?
オブジェクトリテラルっていうのは波かっこで括るオブジェクト={}
文字列のリテラルは、""や’’
展開のリテラルは、``とか
関数のリテラルというのは、functionを指定した引数括弧つきのオブジェクトリテラルでfunction(){}

関数リテラルといえば、例えばfunction func(){...}
とした場合、{...}は変数funcに文字列として代入されます
そしてfuncは関数オブジェクトと指定されていて
関数の実行は()を読み込むことで実行されます
func 文字列
()   関数の実行
2023/01/05(木) 21:01:26.21ID:XhDooIHVH
>>531
解決済みだったようですみませんでした
参考までに追加

function func(){return 1}
とした場合
console.log(func)

console.log(func())
を見比べるとわかりますが、
func変数の中身は、function指定された文字列で
func()は関数を実行した結果の1が表示されます
2023/01/05(木) 21:40:35.47ID:n/EqvkXYr
>>541
JavaScriptのリテラルに関してはまず下記を読んでください
括ってあればリテラルというわけではないです
https://developer.mozilla.org/ja/docs/Web/JavaScript/Guide/Grammar_and_types#%E3%83%AA%E3%83%86%E3%83%A9%E3%83%AB
2023/01/05(木) 22:26:48.61ID:XhDooIHVH
>>543
括る、というのはそういう意味かと
リテラルはリテラルなので括る必要はなくて
プリミティブは、これは文字列です、
これは配列です、
これはオブジェクトです
とエンジンに理解させるための記述なのかと思いまして
2023/01/05(木) 22:39:53.19ID:scsW7zY90
リテラルはベた書きで良かろう
2023/01/05(木) 22:41:03.03ID:n/EqvkXYr
>>544
申し訳ないけど全体的に文意が取れません
1行目の「そういう意味」は何を指してますか?
2023/01/05(木) 22:57:51.54ID:XhDooIHVH
括ることで、エンジンに対して、これは配列オブジェクトだよとか
これは{}だよとか、これは文字列だよとか、そういうことを伝えているってことですけど
2023/01/05(木) 22:59:39.77ID:O+NRT3S+0
>>541 > リテラルっていうのは、括るもの、という意味合いでは?
>>544 > リテラルはリテラルなので括る必要はなくて
自分で何書いてるのか理解できてる?
2023/01/05(木) 23:00:08.63ID:O+NRT3S+0
>>547
数値リテラル
2023/01/05(木) 23:12:56.82ID:XhDooIHVH
<<538
諄いですね
正しい理論的な話あればご披露ください

JSの処理エンジンに、どういう記述があれば
どう処理するかというのがあるでしょ
{}とう記述を読めば、オブジェクトなのだな、と
””ならもじれるなのかなと、
function でて意義されたものがあれば関数なのかなと

リテラルは数値などの表現で
文字列は””、’’のクオーテーションで
関数は、function装飾委sで
それぞれが何を表現してるのかを確認し
スクリプト実行時にそれらをコンテキストに登録して
その後の作動を担保する、ってことなのかな
2023/01/05(木) 23:17:36.32ID:/79BsoYR0
一から教えるにはここじゃスペースが足りないからまず入門書一冊買って読め。
2023/01/05(木) 23:20:08.45ID:XhDooIHVH
先生、ありがとうござす
時間とれましたら勉強してみます、ありがとうです
2023/01/05(木) 23:20:49.68ID:n/EqvkXYr
中途半端に字句解析、構文解析の話になってるのか・・・
誰もそんなレベルの話はしてないのに
2023/01/05(木) 23:28:36.71ID:V3WBk68sd
誤変換の多さと言い意味の通ってなさと言い酔っ払ってるとしか思えんなw
2023/01/05(木) 23:34:22.58ID:XhDooIHVH
すみませんでした、もっと勉強します
2023/01/06(金) 12:07:23.77ID:ipvOzmbWr
勉強しますの前にまず筋の通った主張を相手に分かるようにお願いします
>>548の指摘もそういうことだし
2023/01/06(金) 17:52:02.25ID:AgA2i3Ln0
リテラルって文字列とか数値というイメージ
だから、

let dispMessage = function(msg){console.log(msg)}

っていう文があれば、関数リテラルならどうみても
左側の変数の文字列の事って思うじゃないですか。
右側はfunctionとか{}とか()とかあるので、
リテラルからかけ離れていると思ってました。

どうりで、話が噛み合わないなと思ってたが
今、全部なっとく。ありがとうございました!
558デフォルトの名無しさん (ブーイモ MMee-DakT [133.159.153.167])
垢版 |
2023/01/06(金) 21:33:28.00ID:Ynt2iWE0M
リテラルはもともと「文字通りの」って意味
ソースに書いた内容が変数とかを介さずにそのまま1つの値として評価されるもの

括弧で括るとかの意味は全く無い
2023/01/06(金) 22:25:41.09ID:Th1PE0Z2H
リテラル

””や’’で表現されるのは文字列と評価する
[]は配列と評価する
{}はオブジェクトと評価する
JSエンジンがオブジェクトをどう評価して処理するかということだと思ったんですけど
何やら全く的外れなこと言ってたみたいですみませんでした
何度も謝ったのでもう許してください、鬼神様
2023/01/06(金) 23:10:59.17ID:AlXqoCEJr
>>559
的外れなことを繰り返し書かなくていいから黙って>>502を読んでおいて
2023/01/07(土) 08:36:35.89ID:I26x6s3dH
時間があるときに読んでおきます
562デフォルトの名無しさん (ワッチョイ 8a74-+oQO [211.124.81.22])
垢版 |
2023/01/07(土) 11:56:48.02ID:n88Tb37q0
>>561
いますぐ読みたまえ
2023/01/07(土) 12:11:11.83ID:Oa/pj9jla
読めたら読みます
564デフォルトの名無しさん (ワッチョイ 8a74-+oQO [211.124.81.22])
垢版 |
2023/01/07(土) 12:11:57.01ID:n88Tb37q0
>>563
読めなくても読むのだ
2023/01/07(土) 15:51:52.95ID:zzWcN8NZd
>>559
わざわざもう1回書いたのは自分の中ではこれが正しいという思いが捨てられなくて
賛同してくれる人が現れないかと期待してってところか
566デフォルトの名無しさん (ワッチョイ 9310-zDHW [180.12.82.129])
垢版 |
2023/01/07(土) 18:24:30.76ID:2xit7B8+0
再帰関数についての質問

function test(){
処理1
test();
処理2
}
とした場合
処理2の前にtest()があるので、処理2はずっと実行されないということですか?
2023/01/07(土) 18:46:02.96ID:Oa/pj9jla
いいえそれは処理1次第です
568デフォルトの名無しさん (ワッチョイ 9310-zDHW [180.12.82.129])
垢版 |
2023/01/07(土) 19:05:43.05ID:2xit7B8+0
>>567
ありがとうございます
処理1はreturnや他関数への再帰はしないものとします
2023/01/07(土) 19:11:57.35ID:GmV1yQnL0
最大の再帰の深さは JavaScript エンジンによって制限されていて
その範囲内で終了条件を満たすように作る必要があります
でなければエラー終了するので、無限再帰は有り得ません
2023/01/07(土) 21:33:23.91ID:YilgzCe20
そもそも永久に再帰は無理なのを理解していないのか?
それと何故再帰を使うのかという理由が全く分からん
2023/01/08(日) 01:51:54.62ID:uPZeFpc/0
まあ普通は無限ループだな
わざわざ再帰にしなければいけない
理由が何かだな
2023/01/08(日) 01:53:28.42ID:FOdy7Dic0
末尾再帰最適化が保証されている言語では特定条件を満たせばさもループの代替として使えるが
javascriptではそうはならなかった
以上
573デフォルトの名無しさん (ブーイモ MM4a-mEot [49.239.64.156])
垢版 |
2023/01/08(日) 01:53:30.69ID:gpkzwVQsM
末尾最適化されてれば無限ループ可能でしょ?
ES2015で末尾最適化の仕様化されたけど適合してない実装が多いというだけ
574デフォルトの名無しさん (ブーイモ MM4a-mEot [49.239.64.156])
垢版 |
2023/01/08(日) 01:54:05.49ID:gpkzwVQsM
ありゃ被ったか
2023/01/08(日) 02:24:13.14ID:FOdy7Dic0
規格があっても準拠するかどうかは実装次第というね
ちなみにjavascriptは関数がファーストクラスでレキシカルスコープを持つためいわゆるクロージャを無意識に生成できる
クロージャがあれば末尾再帰できないからと不自由に感じることはないと思われる
576デフォルトの名無しさん (ワッチョイ 9310-zDHW [180.12.82.129])
垢版 |
2023/01/08(日) 17:51:20.88ID:TObCTh0j0
>>570
@supportsや@mediaのネストされたcssの全プロパティ値を取得するために
再帰使いたかった
2023/01/09(月) 07:24:55.41ID:Bl4X3MiM0
>>576
無限にネストすることはないはずだが
2023/01/09(月) 12:44:15.19ID:mLvtK4oer
>>576を実現するにしても>>566にはならんと思うけども
2023/01/09(月) 13:34:27.76ID:nBXeWSyT0
ホントになw
// aはarray
function test(a)
{
a.forEach( b => {
if (b.isArray()) {
test(b)
}
})
}
みたいな感じなら分かるがw
2023/01/09(月) 15:00:57.73ID:2yNmR2Eh0
ノードを全部舐めるみたいなトラバース系の処理はエンジンの制限とか気にするなら再帰のロジックを配列とループで作った方が安全だし
恐らく関数を呼び出すより速いから検討してみてね
581デフォルトの名無しさん (ワッチョイ 6305-S6ln [116.94.64.124])
垢版 |
2023/01/14(土) 18:28:43.16ID:WRdKOG7o0
質問
scriptタグで指定されてるリンク先をjavascriptで変えたい
例えば. script type="text/javascript" src="A”
になってんのを
script type="text/javascript" src="B”に変えたい
replace等でやろうとしたものの上手くいかなかった
2023/01/14(土) 20:27:52.90ID:Ww/QFSM20
ちょっとググったら出てくるやろw
https://www.softel.co.jp/blogs/tech/archives/6794
583デフォルトの名無しさん (ワッチョイ 6305-S6ln [116.94.64.124])
垢版 |
2023/01/14(土) 23:08:43.95ID:WRdKOG7o0
>>582
ありがとうございます…
本当に助かりました…
2023/01/15(日) 01:42:33.54ID:k1TuDUU1a
確かに以下のように、jQuery で、script タグのsrc 属性を、
a.js から、b.js へ変えても、scriptタグが再読み込みされない

$("script[src='a.js']:first").each(function (index, elem) {
$(elem).attr('src', 'b.js');
});

新たなscriptタグを追加してから、元のscriptタグを削除すれば、読み込まれるかも
2023/01/15(日) 02:01:27.46ID:iV9MAA6y0
読み込まれたスクリプト自体はscript要素消しても消えない事に注意
586デフォルトの名無しさん (オイコラミネオ MMa7-+Atj [150.66.84.146])
垢版 |
2023/01/15(日) 13:53:25.79ID:0IRxms8qM
ルーターのブロードステーションに電源を入れると
エッジブラウザが起動して自動的にブロードステーションのルーターのページが表示されます。
ブロードステーション関連のソフトウェアは一切インストールしていないにもかかわらずです。
これって動きだけ見ますとルータが勝手にこっちのpcを操作してるように見えるのですがどういう仕組みなんでしょうか?
ブラウザ(JavaScript)はページ内しか操作出来ない筈なんですが。
2023/01/15(日) 15:02:28.33ID:yvxMece60
よろしくお願いします

【環境】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
2023/01/15(日) 15:12:37.19ID:XTiaoq8f0
>>587
そのコードで、参照がコピーされているので
data0={...json["Items"][0]}
とすればいい
2023/01/15(日) 15:18:59.77ID:iV9MAA6y0
>>587
https://developer.mozilla.org/ja/docs/Glossary/Deep_copy
2023/01/15(日) 15:22:38.08ID:yvxMece60
>>588,589
できましたありがとうございます。
2023/01/15(日) 15:31:02.14ID:XTiaoq8f0
この場合はこれで十分ですが
スプレッド構文はシャローコピーなので、
データがより複雑な構造の場合は、それなりの記述が必要です
2023/01/15(日) 15:40:55.97ID:iV9MAA6y0
>>586
キャプティブポータルの検出機能が誤爆してるんじゃないかな
2023/01/15(日) 20:06:20.61ID:7dUg93Xk0
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())から読めるのでしょうか?
こういう書き方が出来るのなら楽なのですが…
2023/01/15(日) 20:27:36.55ID:Vv6s9YYpr
関数内でvarを付けずに宣言された変数はグローバルスコープになる
var rd11 = pg1.add("edittext", [0,0,40,23], 100)
とすると関数スコープになって外部からアクセスできなくなるはず
関数内での変数宣言はvar文で行うべきで
これを「楽」と思ってしまうのは危険
2023/01/15(日) 20:53:03.10ID:7dUg93Xk0
>>594
ありがとうございます
非常に勉強になりました
2023/01/15(日) 21:30:36.07ID:YqyTW3mJr
>>595
'use strict'が効くならスクリプトの先頭行に書いとくといいよ
2023/01/15(日) 23:28:40.23ID:bMctduL80
>>593
それAdobe Illustratorかなにかで使うソースでしょ?
どういう環境で使うソースなのかは一言書いといた方がいいよ
2023/01/15(日) 23:45:44.09ID:r5uLxMWea
ES2015(ES6)以降は最低限、

変数宣言にはvar ではなく、let/const を付けよう
2023/01/15(日) 23:55:04.30ID:cRCjJN100
>>597
この指摘は何度も見てるが、いつになっても改善されない
質問者にとっては直す気がない、どうでもいい問題なんだろうな…
2023/01/15(日) 23:55:05.86ID:5X3ij1Yxr
>>598
この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
2023/01/15(日) 23:55:37.31ID:cRCjJN100
>>597
この指摘は何度も見てるが、いつになっても改善されない
質問者にとっては直す気がない、どうでもいい問題なんだろうな…
2023/01/15(日) 23:57:40.43ID:cRCjJN100
申し訳ない
投稿エラーで再投稿したら、二重投稿になってた
2023/01/16(月) 01:46:54.32ID:DS9XkUYq0
>>597
すみません
次から書きます
あまりillustratorに特化したことは質問しません
2023/01/16(月) 01:51:10.12ID:DS9XkUYq0
>>596
そういうのがあるんですね
知らなかったです
2023/01/16(月) 02:24:41.48ID:SauNqkHgr
>>604
知った以上次からそちらにに行って質問してください
環境の説明も必要ないしillustratorに特化した質問もし放題だし良いことづくめですよ
2023/01/16(月) 08:45:42.10ID:Hbn6MJh3M
イラレ特化だからではなくてJavaScriptのバージョンの問題なんだけど
なんも書いてなければ最新のモダンブラウザのつもりでみんな考える
今JavaScriptのバージョンってES12くらいかね、あんまりそういう言い方しないけど
イラレ搭載のはES3なの?それも知らんけど
クッソ古いから使える文法も関数もまるで違うから環境を書けと言っているのよ
そこらへん多分知らなかったんだろうけど、それは仕方ないけど、次からは環境きちんと書いて
というかできれば以降はAdobeのフォーラムでやって
2023/01/17(火) 01:44:26.39ID:BTJjkb3Ra
>>587
C/C++ 以外の言語は、参照しかコピーしない・shallow copy。
実体は再作成されない

なので、deep copy するのに、参照のリンクが切れないので困る

だから、marshal とか、わざわざオブジェクトをJSON 文字列化して、
その文字列から、新しいオブジェクトを作ったりする
2023/01/17(火) 16:25:41.45ID:XA7n1WWP0
>>607
え?
2023/01/17(火) 19:01:55.76ID:LBqNgpc6H
ポインタのこと?
2023/01/18(水) 00:05:10.90ID:csewAuIZ0
検索アドレスに言語指定が必要になって下のスクリプトを書きました。

function Jump(){
var kekka =
"ht"+"tp://www.concertzender.nl/?s=" +
document.concertzender.kensaku.value +
"&lang=nl";
location.href = kekka;
return;
}

kensaku は検索フォームの文字列です。これで正常動作するのですが、
エラーチェックすると&が警告されて気になります。
&にしたらアドレスが&になって検索できないし、
なんとかならないものでしょうか・・・
2023/01/18(水) 00:09:24.42ID:csewAuIZ0

&amp; です
&#038; でも同じです
2023/01/18(水) 06:35:54.86ID:guU+fOES0
この気持ち悪いの何?
> "ht"+"tp
2023/01/18(水) 07:40:19.90ID:Eqd2U92jH
documentのpropertyにconcertzenderって標準でないっしょ?
スクリプトのどっかでなんか設定してるん?
2023/01/18(水) 07:41:25.64ID:Eqd2U92jH
それとエラーの内容も書き込まずにして質問っていうのもどうなの?
2023/01/18(水) 08:57:37.16ID:cgb3Ru010
>>612
5ch対策でしょ
2023/01/18(水) 10:05:55.23ID:csewAuIZ0
>>614
すいません。単純に特殊文字ダメよという内容だったんで・・・

"&lang=nl";

"&lang=nl"; もし、"&" で始まるエンティティを含めるつもりなら、";" で終了させるべきです。
このエラーメッセージのもう一つの理由は、このテキストの直前にある「&」文字をエスケープしなかったために、
誤ってエンティティを作成してしまったことです。(機械翻訳)

自分としては&amp;と書いて、リンクアドレスとして&を出力したいわけです・・・
2023/01/18(水) 10:16:20.21ID:guU+fOES0
>>615
あーそういうことか。コピペコードで悪さでもしようとしているのかと思ったけど違うみたいね

>>610
大体どの言語でもクエリ文字列を作る仕組みが用意されているのでそれを利用するのが適切です
JavaScriptならコレかな

URLSearchParams
https://developer.mozilla.org/ja/docs/Web/API/URLSearchParams
2023/01/18(水) 11:11:32.49ID:CwkcAAQnr
>>616
載せるならエラーメッセージ原文を
で、そのメッセージでググってみた?
あとエラーチェックするとって具体的にどういう操作をしたの?
2023/01/18(水) 12:42:13.54ID:iQx/CEUf0
>>610
htmlのscript要素の中身はCDATAなので文字参照にする必要なし
もちろんinnerHTML等htmlとしてパースされるものに突っ込む場合は必要だが
htmllintなんかでエラーになるのは無視していい
2023/01/18(水) 13:08:45.81ID:csewAuIZ0
>>618
エラーメッセージはその部分は&amp;だろと言っているのですが、じゃあ&amp;と書くと
tp://www.concertzender.nl/?s=kensaku&amp;lang=nl と出力されてエラーになり、困ったわけです・・・

>>619
無視していいんですね。ありがとうございます。
htmlでは&amp;と書くと&になるのに、スクリプトの部分ではそうならないのですね。
2023/01/18(水) 13:26:39.01ID:Okbz9NQsr
>>620
何も質問に答えてないよね
答える気があるならもう一度>>618を読んでほしい
2023/01/19(木) 22:07:44.38ID:40XBuhhWH
君は君の質問に反応しない人には
推し量って導こうという崇高な意識はないの?JS使いなのに?
2023/01/20(金) 00:14:23.52ID:VzeMnjK00
>>622
誰からも回答してもらえない質問者は、他の人を導く存在に昇格ということか
質問に回答しないのが本人の為なのかもしれんな
2023/01/20(金) 01:57:18.23ID:ptsQI5JN0
それよりJavaScriptをJSと略すと女子小学生しか思い浮かばないからそろそろやめたほうがいい
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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