!extend:checked:vvvvvv:1000:512
JavaScript を自ら学ぶ人のための質問スレッドです。
>>2-5のテンプレを読んだ上で質問してください。次スレは>>950が>>2の「次スレの立て方」を元に立ててください
■質問を書く上で
(1) 煽り、コード制作依頼等、人を不快にさせる投稿はご遠慮下さい。公序良俗を守った応対を心がけてください。
(2) 他の人に迷惑をかけるスクリプトの質問はご遠慮ください。
(ブラクラ、[戻る], [閉じる], [クリック] の妨害、画面占有など)
(3) 質問者及び議論を行う人はメール欄を空欄にし、名前にレス番を入れることを強く推奨します。回答者はなりすましを判断できませんので、なりすましが現れても自己責任となります。
(4) 常に自発的に調べる心構えを持ってください。
具体的には「自分で調べてから質問する」「回答をもらってわからない単語があればGoogle検索してみる」など。
わからない内容を代わりに調べてくれる回答者をお望みの方は余所で質問してください。
(5) 出来るだけ一般的な用語を使用してください。脳内オレオレ用語は混乱の元です。
(6) 出来るだけサンプルコードを掲示してください。言葉による説明は行き違いが生まれる場合があります。
※必ず「問題の事象が再現されること」を確認してください。
必要な部分だけ切り出したつもりで現象が再現できていなかったケアレスミスがしばしば見られます。
(7) サンプルコードに HTML が含まれる場合は http://validator.w3.org/ で [Check] してみてください。
(8) 質問を具体的かつ詳細に書くと回答を得られやすいです。>>2の質問テンプレートを活用してみてください。
(9) ライブラリ関連の質問は禁止です。関連スレにあるライブラリ質問スレで質問して下さい。
(10) 時にはあなたが望む「答え」だけでなく、「意見」などが寄せられる場合もあります。
■前スレ
JavaScript の質問用スレッド vol.124
https://mevius.5ch.net/test/read.cgi/tech/1636525464/
VIPQ2_EXTDAT: checked:vvvvvv:1000:512:: EXT was configured
探検
JavaScript の質問用スレッド vol.125
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 1301-RMnj [36.240.123.227])
2022/08/07(日) 15:57:40.26ID:TS5TGpUB0539デフォルトの名無しさん (ワッチョイ 66db-TwI4 [217.178.96.73])
2023/01/05(木) 19:28:05.49ID:j61eMuZ00540デフォルトの名無しさん (ワッチョイ 8202-9yt5 [27.92.176.51])
2023/01/05(木) 20:02:55.70ID:EVXeoiyo0541デフォルトの名無しさん (JP 0H4f-ChaJ [126.249.157.89])
2023/01/05(木) 20:55:47.77ID:XhDooIHVH >>531
自分もあまりJS詳しくないんですけど
リテラルっていうのは、括るもの、という意味合いでは?
オブジェクトリテラルっていうのは波かっこで括るオブジェクト={}
文字列のリテラルは、""や’’
展開のリテラルは、``とか
関数のリテラルというのは、functionを指定した引数括弧つきのオブジェクトリテラルでfunction(){}
関数リテラルといえば、例えばfunction func(){...}
とした場合、{...}は変数funcに文字列として代入されます
そしてfuncは関数オブジェクトと指定されていて
関数の実行は()を読み込むことで実行されます
func 文字列
() 関数の実行
自分もあまりJS詳しくないんですけど
リテラルっていうのは、括るもの、という意味合いでは?
オブジェクトリテラルっていうのは波かっこで括るオブジェクト={}
文字列のリテラルは、""や’’
展開のリテラルは、``とか
関数のリテラルというのは、functionを指定した引数括弧つきのオブジェクトリテラルでfunction(){}
関数リテラルといえば、例えばfunction func(){...}
とした場合、{...}は変数funcに文字列として代入されます
そしてfuncは関数オブジェクトと指定されていて
関数の実行は()を読み込むことで実行されます
func 文字列
() 関数の実行
542デフォルトの名無しさん (JP 0H4f-ChaJ [126.249.157.89])
2023/01/05(木) 21:01:26.21ID:XhDooIHVH >>531
解決済みだったようですみませんでした
参考までに追加
function func(){return 1}
とした場合
console.log(func)
と
console.log(func())
を見比べるとわかりますが、
func変数の中身は、function指定された文字列で
func()は関数を実行した結果の1が表示されます
解決済みだったようですみませんでした
参考までに追加
function func(){return 1}
とした場合
console.log(func)
と
console.log(func())
を見比べるとわかりますが、
func変数の中身は、function指定された文字列で
func()は関数を実行した結果の1が表示されます
543デフォルトの名無しさん (オッペケ Sr4f-JZbg [126.208.231.97])
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
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
544デフォルトの名無しさん (JP 0H4f-ChaJ [126.249.157.89])
2023/01/05(木) 22:26:48.61ID:XhDooIHVH >>543
括る、というのはそういう意味かと
リテラルはリテラルなので括る必要はなくて
プリミティブは、これは文字列です、
これは配列です、
これはオブジェクトです
とエンジンに理解させるための記述なのかと思いまして
括る、というのはそういう意味かと
リテラルはリテラルなので括る必要はなくて
プリミティブは、これは文字列です、
これは配列です、
これはオブジェクトです
とエンジンに理解させるための記述なのかと思いまして
545デフォルトの名無しさん (ワッチョイ a62d-IQJE [121.102.19.45])
2023/01/05(木) 22:39:53.19ID:scsW7zY90 リテラルはベた書きで良かろう
546デフォルトの名無しさん (オッペケ Sr4f-JZbg [126.208.231.97])
2023/01/05(木) 22:41:03.03ID:n/EqvkXYr547デフォルトの名無しさん (JP 0H4f-ChaJ [126.249.157.89])
2023/01/05(木) 22:57:51.54ID:XhDooIHVH 括ることで、エンジンに対して、これは配列オブジェクトだよとか
これは{}だよとか、これは文字列だよとか、そういうことを伝えているってことですけど
これは{}だよとか、これは文字列だよとか、そういうことを伝えているってことですけど
548デフォルトの名無しさん (ワッチョイ 8201-+uJR [219.204.123.70])
2023/01/05(木) 22:59:39.77ID:O+NRT3S+0549デフォルトの名無しさん (ワッチョイ 8201-+uJR [219.204.123.70])
2023/01/05(木) 23:00:08.63ID:O+NRT3S+0 >>547
数値リテラル
数値リテラル
550デフォルトの名無しさん (JP 0H4f-ChaJ [126.249.157.89])
2023/01/05(木) 23:12:56.82ID:XhDooIHVH <<538
諄いですね
正しい理論的な話あればご披露ください
JSの処理エンジンに、どういう記述があれば
どう処理するかというのがあるでしょ
{}とう記述を読めば、オブジェクトなのだな、と
””ならもじれるなのかなと、
function でて意義されたものがあれば関数なのかなと
リテラルは数値などの表現で
文字列は””、’’のクオーテーションで
関数は、function装飾委sで
それぞれが何を表現してるのかを確認し
スクリプト実行時にそれらをコンテキストに登録して
その後の作動を担保する、ってことなのかな
諄いですね
正しい理論的な話あればご披露ください
JSの処理エンジンに、どういう記述があれば
どう処理するかというのがあるでしょ
{}とう記述を読めば、オブジェクトなのだな、と
””ならもじれるなのかなと、
function でて意義されたものがあれば関数なのかなと
リテラルは数値などの表現で
文字列は””、’’のクオーテーションで
関数は、function装飾委sで
それぞれが何を表現してるのかを確認し
スクリプト実行時にそれらをコンテキストに登録して
その後の作動を担保する、ってことなのかな
551デフォルトの名無しさん (ワッチョイ 9fcf-/EFQ [180.14.48.253])
2023/01/05(木) 23:17:36.32ID:/79BsoYR0 一から教えるにはここじゃスペースが足りないからまず入門書一冊買って読め。
552デフォルトの名無しさん (JP 0H4f-ChaJ [126.249.157.89])
2023/01/05(木) 23:20:08.45ID:XhDooIHVH 先生、ありがとうござす
時間とれましたら勉強してみます、ありがとうです
時間とれましたら勉強してみます、ありがとうです
553デフォルトの名無しさん (オッペケ Sr4f-JZbg [126.208.231.97])
2023/01/05(木) 23:20:49.68ID:n/EqvkXYr 中途半端に字句解析、構文解析の話になってるのか・・・
誰もそんなレベルの話はしてないのに
誰もそんなレベルの話はしてないのに
554デフォルトの名無しさん (スプッッ Sdc2-DLel [1.75.213.141])
2023/01/05(木) 23:28:36.71ID:V3WBk68sd 誤変換の多さと言い意味の通ってなさと言い酔っ払ってるとしか思えんなw
555デフォルトの名無しさん (JP 0H4f-ChaJ [126.249.157.89])
2023/01/05(木) 23:34:22.58ID:XhDooIHVH すみませんでした、もっと勉強します
556デフォルトの名無しさん (オッペケ Sr4f-JZbg [126.204.227.44])
2023/01/06(金) 12:07:23.77ID:ipvOzmbWr 勉強しますの前にまず筋の通った主張を相手に分かるようにお願いします
>>548の指摘もそういうことだし
>>548の指摘もそういうことだし
557538 (ワッチョイ 8202-9yt5 [27.92.176.51])
2023/01/06(金) 17:52:02.25ID:AgA2i3Ln0 リテラルって文字列とか数値というイメージ
だから、
let dispMessage = function(msg){console.log(msg)}
っていう文があれば、関数リテラルならどうみても
左側の変数の文字列の事って思うじゃないですか。
右側はfunctionとか{}とか()とかあるので、
リテラルからかけ離れていると思ってました。
どうりで、話が噛み合わないなと思ってたが
今、全部なっとく。ありがとうございました!
だから、
let dispMessage = function(msg){console.log(msg)}
っていう文があれば、関数リテラルならどうみても
左側の変数の文字列の事って思うじゃないですか。
右側はfunctionとか{}とか()とかあるので、
リテラルからかけ離れていると思ってました。
どうりで、話が噛み合わないなと思ってたが
今、全部なっとく。ありがとうございました!
558デフォルトの名無しさん (ブーイモ MMee-DakT [133.159.153.167])
2023/01/06(金) 21:33:28.00ID:Ynt2iWE0M リテラルはもともと「文字通りの」って意味
ソースに書いた内容が変数とかを介さずにそのまま1つの値として評価されるもの
括弧で括るとかの意味は全く無い
ソースに書いた内容が変数とかを介さずにそのまま1つの値として評価されるもの
括弧で括るとかの意味は全く無い
559デフォルトの名無しさん (JP 0H4f-ChaJ [126.249.157.89])
2023/01/06(金) 22:25:41.09ID:Th1PE0Z2H リテラル
””や’’で表現されるのは文字列と評価する
[]は配列と評価する
{}はオブジェクトと評価する
JSエンジンがオブジェクトをどう評価して処理するかということだと思ったんですけど
何やら全く的外れなこと言ってたみたいですみませんでした
何度も謝ったのでもう許してください、鬼神様
””や’’で表現されるのは文字列と評価する
[]は配列と評価する
{}はオブジェクトと評価する
JSエンジンがオブジェクトをどう評価して処理するかということだと思ったんですけど
何やら全く的外れなこと言ってたみたいですみませんでした
何度も謝ったのでもう許してください、鬼神様
560デフォルトの名無しさん (オッペケ Sr4f-JZbg [126.194.247.11])
2023/01/06(金) 23:10:59.17ID:AlXqoCEJr561デフォルトの名無しさん (JP 0Hd3-DWwd [126.249.157.89])
2023/01/07(土) 08:36:35.89ID:I26x6s3dH 時間があるときに読んでおきます
562デフォルトの名無しさん (ワッチョイ 8a74-+oQO [211.124.81.22])
2023/01/07(土) 11:56:48.02ID:n88Tb37q0 >>561
いますぐ読みたまえ
いますぐ読みたまえ
563デフォルトの名無しさん (アウアウウー Sa3f-03PQ [106.154.143.205])
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
読めなくても読むのだ
読めなくても読むのだ
565デフォルトの名無しさん (スプッッ Sdea-pEag [1.75.238.210])
2023/01/07(土) 15:51:52.95ID:zzWcN8NZd566デフォルトの名無しさん (ワッチョイ 9310-zDHW [180.12.82.129])
2023/01/07(土) 18:24:30.76ID:2xit7B8+0 再帰関数についての質問
function test(){
処理1
test();
処理2
}
とした場合
処理2の前にtest()があるので、処理2はずっと実行されないということですか?
function test(){
処理1
test();
処理2
}
とした場合
処理2の前にtest()があるので、処理2はずっと実行されないということですか?
567デフォルトの名無しさん (アウアウウー Sa3f-03PQ [106.154.143.205])
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+0569デフォルトの名無しさん (ワッチョイ fecf-DSRP [153.174.224.39])
2023/01/07(土) 19:11:57.35ID:GmV1yQnL0 最大の再帰の深さは JavaScript エンジンによって制限されていて
その範囲内で終了条件を満たすように作る必要があります
でなければエラー終了するので、無限再帰は有り得ません
その範囲内で終了条件を満たすように作る必要があります
でなければエラー終了するので、無限再帰は有り得ません
570デフォルトの名無しさん (ワッチョイ 6a7c-Or7w [43.235.241.201])
2023/01/07(土) 21:33:23.91ID:YilgzCe20 そもそも永久に再帰は無理なのを理解していないのか?
それと何故再帰を使うのかという理由が全く分からん
それと何故再帰を使うのかという理由が全く分からん
571デフォルトの名無しさん (ワッチョイ aa02-DSRP [59.138.123.33])
2023/01/08(日) 01:51:54.62ID:uPZeFpc/0 まあ普通は無限ループだな
わざわざ再帰にしなければいけない
理由が何かだな
わざわざ再帰にしなければいけない
理由が何かだな
572デフォルトの名無しさん (ワッチョイ 7b79-Jp3v [220.150.90.192])
2023/01/08(日) 01:53:28.42ID:FOdy7Dic0 末尾再帰最適化が保証されている言語では特定条件を満たせばさもループの代替として使えるが
javascriptではそうはならなかった
以上
javascriptではそうはならなかった
以上
573デフォルトの名無しさん (ブーイモ MM4a-mEot [49.239.64.156])
2023/01/08(日) 01:53:30.69ID:gpkzwVQsM 末尾最適化されてれば無限ループ可能でしょ?
ES2015で末尾最適化の仕様化されたけど適合してない実装が多いというだけ
ES2015で末尾最適化の仕様化されたけど適合してない実装が多いというだけ
574デフォルトの名無しさん (ブーイモ MM4a-mEot [49.239.64.156])
2023/01/08(日) 01:54:05.49ID:gpkzwVQsM ありゃ被ったか
575デフォルトの名無しさん (ワッチョイ 7b79-Jp3v [220.150.90.192])
2023/01/08(日) 02:24:13.14ID:FOdy7Dic0 規格があっても準拠するかどうかは実装次第というね
ちなみにjavascriptは関数がファーストクラスでレキシカルスコープを持つためいわゆるクロージャを無意識に生成できる
クロージャがあれば末尾再帰できないからと不自由に感じることはないと思われる
ちなみにjavascriptは関数がファーストクラスでレキシカルスコープを持つためいわゆるクロージャを無意識に生成できる
クロージャがあれば末尾再帰できないからと不自由に感じることはないと思われる
576デフォルトの名無しさん (ワッチョイ 9310-zDHW [180.12.82.129])
2023/01/08(日) 17:51:20.88ID:TObCTh0j0577デフォルトの名無しさん (ワッチョイ db01-9cRY [60.69.179.40])
2023/01/09(月) 07:24:55.41ID:Bl4X3MiM0 >>576
無限にネストすることはないはずだが
無限にネストすることはないはずだが
578デフォルトの名無しさん (オッペケ Srd3-HOhV [126.208.230.4])
2023/01/09(月) 12:44:15.19ID:mLvtK4oer579デフォルトの名無しさん (ワッチョイ 6a7c-Or7w [43.235.241.201])
2023/01/09(月) 13:34:27.76ID:nBXeWSyT0 ホントになw
// aはarray
function test(a)
{
a.forEach( b => {
if (b.isArray()) {
test(b)
}
})
}
みたいな感じなら分かるがw
// aはarray
function test(a)
{
a.forEach( b => {
if (b.isArray()) {
test(b)
}
})
}
みたいな感じなら分かるがw
580デフォルトの名無しさん (ワッチョイ 7b79-Jp3v [220.150.90.192])
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等でやろうとしたものの上手くいかなかった
scriptタグで指定されてるリンク先をjavascriptで変えたい
例えば. script type="text/javascript" src="A”
になってんのを
script type="text/javascript" src="B”に変えたい
replace等でやろうとしたものの上手くいかなかった
582デフォルトの名無しさん (ワッチョイ 7f7c-f6s+ [43.235.241.201])
2023/01/14(土) 20:27:52.90ID:Ww/QFSM20 ちょっとググったら出てくるやろw
https://www.softel.co.jp/blogs/tech/archives/6794
https://www.softel.co.jp/blogs/tech/archives/6794
583デフォルトの名無しさん (ワッチョイ 6305-S6ln [116.94.64.124])
2023/01/14(土) 23:08:43.95ID:WRdKOG7o0584デフォルトの名無しさん (アウアウウー Sac7-wtyD [106.146.97.205])
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タグを削除すれば、読み込まれるかも
a.js から、b.js へ変えても、scriptタグが再読み込みされない
$("script[src='a.js']:first").each(function (index, elem) {
$(elem).attr('src', 'b.js');
});
新たなscriptタグを追加してから、元のscriptタグを削除すれば、読み込まれるかも
585デフォルトの名無しさん (ワッチョイ a361-1Ylv [222.144.108.11])
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)はページ内しか操作出来ない筈なんですが。
エッジブラウザが起動して自動的にブロードステーションのルーターのページが表示されます。
ブロードステーション関連のソフトウェアは一切インストールしていないにもかかわらずです。
これって動きだけ見ますとルータが勝手にこっちのpcを操作してるように見えるのですがどういう仕組みなんでしょうか?
ブラウザ(JavaScript)はページ内しか操作出来ない筈なんですが。
587デフォルトの名無しさん (ワッチョイ 3f3d-/16g [133.32.132.49 [上級国民]])
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
【環境】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
588デフォルトの名無しさん (ワッチョイ cfcf-7DGa [153.174.224.39])
2023/01/15(日) 15:12:37.19ID:XTiaoq8f0589デフォルトの名無しさん (ワッチョイ a361-1Ylv [222.144.108.11])
2023/01/15(日) 15:18:59.77ID:iV9MAA6y0590デフォルトの名無しさん (ワッチョイ 3f3d-/16g [133.32.132.49 [上級国民]])
2023/01/15(日) 15:22:38.08ID:yvxMece60 >>588,589
できましたありがとうございます。
できましたありがとうございます。
591デフォルトの名無しさん (ワッチョイ cfcf-7DGa [153.174.224.39])
2023/01/15(日) 15:31:02.14ID:XTiaoq8f0 この場合はこれで十分ですが
スプレッド構文はシャローコピーなので、
データがより複雑な構造の場合は、それなりの記述が必要です
スプレッド構文はシャローコピーなので、
データがより複雑な構造の場合は、それなりの記述が必要です
592デフォルトの名無しさん (ワッチョイ a361-1Ylv [222.144.108.11])
2023/01/15(日) 15:40:55.97ID:iV9MAA6y0 >>586
キャプティブポータルの検出機能が誤爆してるんじゃないかな
キャプティブポータルの検出機能が誤爆してるんじゃないかな
593デフォルトの名無しさん (ワッチョイ 634b-mccM [110.2.215.28 [上級国民]])
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())から読めるのでしょうか?
こういう書き方が出来るのなら楽なのですが…
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())から読めるのでしょうか?
こういう書き方が出来るのなら楽なのですが…
594デフォルトの名無しさん (オッペケ Sr67-2lig [126.208.238.32])
2023/01/15(日) 20:27:36.55ID:Vv6s9YYpr 関数内でvarを付けずに宣言された変数はグローバルスコープになる
var rd11 = pg1.add("edittext", [0,0,40,23], 100)
とすると関数スコープになって外部からアクセスできなくなるはず
関数内での変数宣言はvar文で行うべきで
これを「楽」と思ってしまうのは危険
var rd11 = pg1.add("edittext", [0,0,40,23], 100)
とすると関数スコープになって外部からアクセスできなくなるはず
関数内での変数宣言はvar文で行うべきで
これを「楽」と思ってしまうのは危険
595デフォルトの名無しさん (ワッチョイ 634b-mccM [110.2.215.28 [上級国民]])
2023/01/15(日) 20:53:03.10ID:7dUg93Xk0596デフォルトの名無しさん (オッペケ Sr67-2lig [126.208.230.75])
2023/01/15(日) 21:30:36.07ID:YqyTW3mJr >>595
'use strict'が効くならスクリプトの先頭行に書いとくといいよ
'use strict'が効くならスクリプトの先頭行に書いとくといいよ
597502 (ワッチョイ 8301-DQ2E [60.103.69.185])
2023/01/15(日) 23:28:40.23ID:bMctduL80598デフォルトの名無しさん (アウアウウー Sac7-wtyD [106.133.104.22])
2023/01/15(日) 23:45:44.09ID:r5uLxMWea ES2015(ES6)以降は最低限、
変数宣言にはvar ではなく、let/const を付けよう
変数宣言にはvar ではなく、let/const を付けよう
599デフォルトの名無しさん (ワッチョイ 8301-fAIW [60.69.179.40])
2023/01/15(日) 23:55:04.30ID:cRCjJN100600デフォルトの名無しさん (オッペケ Sr67-2lig [126.204.224.48])
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
この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
601デフォルトの名無しさん (ワッチョイ 8301-fAIW [60.69.179.40])
2023/01/15(日) 23:55:37.31ID:cRCjJN100602デフォルトの名無しさん (ワッチョイ 8301-fAIW [60.69.179.40])
2023/01/15(日) 23:57:40.43ID:cRCjJN100 申し訳ない
投稿エラーで再投稿したら、二重投稿になってた
投稿エラーで再投稿したら、二重投稿になってた
603デフォルトの名無しさん (ワッチョイ 634b-mccM [110.2.215.28 [上級国民]])
2023/01/16(月) 01:46:54.32ID:DS9XkUYq0604デフォルトの名無しさん (ワッチョイ 634b-mccM [110.2.215.28 [上級国民]])
2023/01/16(月) 01:51:10.12ID:DS9XkUYq0605デフォルトの名無しさん (オッペケ Sr67-2lig [126.208.227.98])
2023/01/16(月) 02:24:41.48ID:SauNqkHgr606デフォルトの名無しさん (ワンミングク MM87-KwiO [114.150.17.128])
2023/01/16(月) 08:45:42.10ID:Hbn6MJh3M イラレ特化だからではなくてJavaScriptのバージョンの問題なんだけど
なんも書いてなければ最新のモダンブラウザのつもりでみんな考える
今JavaScriptのバージョンってES12くらいかね、あんまりそういう言い方しないけど
イラレ搭載のはES3なの?それも知らんけど
クッソ古いから使える文法も関数もまるで違うから環境を書けと言っているのよ
そこらへん多分知らなかったんだろうけど、それは仕方ないけど、次からは環境きちんと書いて
というかできれば以降はAdobeのフォーラムでやって
なんも書いてなければ最新のモダンブラウザのつもりでみんな考える
今JavaScriptのバージョンってES12くらいかね、あんまりそういう言い方しないけど
イラレ搭載のはES3なの?それも知らんけど
クッソ古いから使える文法も関数もまるで違うから環境を書けと言っているのよ
そこらへん多分知らなかったんだろうけど、それは仕方ないけど、次からは環境きちんと書いて
というかできれば以降はAdobeのフォーラムでやって
607デフォルトの名無しさん (アウアウウー Sac7-OPB1 [106.146.82.82])
2023/01/17(火) 01:44:26.39ID:BTJjkb3Ra >>587
C/C++ 以外の言語は、参照しかコピーしない・shallow copy。
実体は再作成されない
なので、deep copy するのに、参照のリンクが切れないので困る
だから、marshal とか、わざわざオブジェクトをJSON 文字列化して、
その文字列から、新しいオブジェクトを作ったりする
C/C++ 以外の言語は、参照しかコピーしない・shallow copy。
実体は再作成されない
なので、deep copy するのに、参照のリンクが切れないので困る
だから、marshal とか、わざわざオブジェクトをJSON 文字列化して、
その文字列から、新しいオブジェクトを作ったりする
608デフォルトの名無しさん (ワッチョイ cf6f-TZIJ [121.103.1.5])
2023/01/17(火) 16:25:41.45ID:XA7n1WWP0 >>607
え?
え?
609デフォルトの名無しさん (JP 0H67-w88e [126.249.157.89])
2023/01/17(火) 19:01:55.76ID:LBqNgpc6H ポインタのこと?
610デフォルトの名無しさん (ワッチョイ 6310-qfBe [180.59.92.6])
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 は検索フォームの文字列です。これで正常動作するのですが、
エラーチェックすると&が警告されて気になります。
&にしたらアドレスが&になって検索できないし、
なんとかならないものでしょうか・・・
function Jump(){
var kekka =
"ht"+"tp://www.concertzender.nl/?s=" +
document.concertzender.kensaku.value +
"&lang=nl";
location.href = kekka;
return;
}
kensaku は検索フォームの文字列です。これで正常動作するのですが、
エラーチェックすると&が警告されて気になります。
&にしたらアドレスが&になって検索できないし、
なんとかならないものでしょうか・・・
611デフォルトの名無しさん (ワッチョイ 6310-qfBe [180.59.92.6])
2023/01/18(水) 00:09:24.42ID:csewAuIZ0 上
&amp; です
&#038; でも同じです
&amp; です
&#038; でも同じです
612デフォルトの名無しさん (ワッチョイ cfbb-sA4L [217.178.152.148])
2023/01/18(水) 06:35:54.86ID:guU+fOES0 この気持ち悪いの何?
> "ht"+"tp
> "ht"+"tp
613デフォルトの名無しさん (JP 0H67-w88e [126.249.157.89])
2023/01/18(水) 07:40:19.90ID:Eqd2U92jH documentのpropertyにconcertzenderって標準でないっしょ?
スクリプトのどっかでなんか設定してるん?
スクリプトのどっかでなんか設定してるん?
614デフォルトの名無しさん (JP 0H67-w88e [126.249.157.89])
2023/01/18(水) 07:41:25.64ID:Eqd2U92jH それとエラーの内容も書き込まずにして質問っていうのもどうなの?
615デフォルトの名無しさん (ワッチョイ cf7b-lu1o [153.178.229.141])
2023/01/18(水) 08:57:37.16ID:cgb3Ru010 >>612
5ch対策でしょ
5ch対策でしょ
616デフォルトの名無しさん (ワッチョイ 6310-qfBe [180.59.92.6])
2023/01/18(水) 10:05:55.23ID:csewAuIZ0 >>614
すいません。単純に特殊文字ダメよという内容だったんで・・・
"&lang=nl";
"&lang=nl"; もし、"&" で始まるエンティティを含めるつもりなら、";" で終了させるべきです。
このエラーメッセージのもう一つの理由は、このテキストの直前にある「&」文字をエスケープしなかったために、
誤ってエンティティを作成してしまったことです。(機械翻訳)
自分としては&amp;と書いて、リンクアドレスとして&を出力したいわけです・・・
すいません。単純に特殊文字ダメよという内容だったんで・・・
"&lang=nl";
"&lang=nl"; もし、"&" で始まるエンティティを含めるつもりなら、";" で終了させるべきです。
このエラーメッセージのもう一つの理由は、このテキストの直前にある「&」文字をエスケープしなかったために、
誤ってエンティティを作成してしまったことです。(機械翻訳)
自分としては&amp;と書いて、リンクアドレスとして&を出力したいわけです・・・
617デフォルトの名無しさん (ワッチョイ cfbb-sA4L [217.178.152.148])
2023/01/18(水) 10:16:20.21ID:guU+fOES0 >>615
あーそういうことか。コピペコードで悪さでもしようとしているのかと思ったけど違うみたいね
>>610
大体どの言語でもクエリ文字列を作る仕組みが用意されているのでそれを利用するのが適切です
JavaScriptならコレかな
URLSearchParams
https://developer.mozilla.org/ja/docs/Web/API/URLSearchParams
あーそういうことか。コピペコードで悪さでもしようとしているのかと思ったけど違うみたいね
>>610
大体どの言語でもクエリ文字列を作る仕組みが用意されているのでそれを利用するのが適切です
JavaScriptならコレかな
URLSearchParams
https://developer.mozilla.org/ja/docs/Web/API/URLSearchParams
618デフォルトの名無しさん (オッペケ Sr67-2lig [126.204.227.194])
2023/01/18(水) 11:11:32.49ID:CwkcAAQnr619デフォルトの名無しさん (ワッチョイ a361-1Ylv [222.144.108.11])
2023/01/18(水) 12:42:13.54ID:iQx/CEUf0 >>610
htmlのscript要素の中身はCDATAなので文字参照にする必要なし
もちろんinnerHTML等htmlとしてパースされるものに突っ込む場合は必要だが
htmllintなんかでエラーになるのは無視していい
htmlのscript要素の中身はCDATAなので文字参照にする必要なし
もちろんinnerHTML等htmlとしてパースされるものに突っ込む場合は必要だが
htmllintなんかでエラーになるのは無視していい
620デフォルトの名無しさん (ワッチョイ 6310-qfBe [180.59.92.6])
2023/01/18(水) 13:08:45.81ID:csewAuIZ0621デフォルトの名無しさん (オッペケ Sr67-2lig [126.194.244.31])
2023/01/18(水) 13:26:39.01ID:Okbz9NQsr622デフォルトの名無しさん (JP 0H67-w88e [126.249.157.89])
2023/01/19(木) 22:07:44.38ID:40XBuhhWH 君は君の質問に反応しない人には
推し量って導こうという崇高な意識はないの?JS使いなのに?
推し量って導こうという崇高な意識はないの?JS使いなのに?
623デフォルトの名無しさん (ワッチョイ 8301-fAIW [60.85.60.40])
2023/01/20(金) 00:14:23.52ID:VzeMnjK00624デフォルトの名無しさん (ワッチョイ 0379-sA4L [220.150.90.192])
2023/01/20(金) 01:57:18.23ID:ptsQI5JN0 それよりJavaScriptをJSと略すと女子小学生しか思い浮かばないからそろそろやめたほうがいい
625デフォルトの名無しさん (オッペケ Sr67-2lig [126.208.227.44])
2023/01/20(金) 07:46:55.99ID:PpNyk8UWr626デフォルトの名無しさん (ワッチョイ cfdb-f6s+ [217.178.96.73])
2023/01/20(金) 17:53:26.94ID:zXaveivW0 >>624
J
J
627デフォルトの名無しさん (ワッチョイ bf3d-Sc6R [133.32.132.49 [上級国民]])
2023/01/26(木) 00:31:01.01ID:c9Kzf+f60 【環境】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])
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])
628デフォルトの名無しさん (ワッチョイ 8361-4svA [222.144.108.11])
2023/01/26(木) 00:37:27.57ID:q740ttN00 >>627
arr_textがconst宣言されてるだけでは?
arr_textがconst宣言されてるだけでは?
629デフォルトの名無しさん (ワッチョイ bf3d-Sc6R [133.32.132.49 [上級国民]])
2023/01/26(木) 01:06:05.60ID:c9Kzf+f60630デフォルトの名無しさん (アウアウウー Saa3-6TJq [106.129.156.153])
2023/01/29(日) 10:31:07.49ID:rZA8vUyra 初学者質問ですいませんが、変数aが文字列あいう、かつ、変数bがundefinedでない時 というif文を書きたい時
if (a=='あいう' && (!(b === void 0))) {...
という書き方であってますか?
よりシンプルな書き方とか、より標準的な書き方ってありますでしょうか。
if (a=='あいう' && (!(b === void 0))) {...
という書き方であってますか?
よりシンプルな書き方とか、より標準的な書き方ってありますでしょうか。
631502 (ワッチョイ bf01-IIfr [60.103.64.138])
2023/01/29(日) 12:00:10.71ID:9rN3KLzS0 厳密不等価演算子 !==
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Operators/Strict_inequality
undefined が予約語になってないから void 0、ってのは……はて、今もやるものかね
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Operators/Strict_inequality
undefined が予約語になってないから void 0、ってのは……はて、今もやるものかね
632デフォルトの名無しさん (ワッチョイ 775f-JCKB [14.8.104.32])
2023/01/29(日) 12:54:20.77ID:eUvMCdrW0 if(a == 'あいう' && !b)でもよさそうな気がしなくもない
633デフォルトの名無しさん (オッペケ Sr27-+FJ3 [126.133.207.3])
2023/01/29(日) 15:43:05.57ID:d0tJgmu5r >>631
undefined は予約語ではないのでローカル変数による上書きが可能…という意味では、void 0 を使う価値はある
undefined は予約語ではないのでローカル変数による上書きが可能…という意味では、void 0 を使う価値はある
634デフォルトの名無しさん (アウアウウー Saa3-6TJq [106.129.157.183])
2023/01/29(日) 15:59:30.70ID:rpOrCqGha >631
ありがとうございます。リンク先確認しました。
if(a=='あいう' && b!== undefined またはvoid 0)
という感じでしょうか。
ここでb!= undefined とするとまずいのはbがnullの時だけ、という認識でいいでしょうか。
>632
ありがとうございます。bが0や空文字の時にも偽になりそうです。
ありがとうございます。リンク先確認しました。
if(a=='あいう' && b!== undefined またはvoid 0)
という感じでしょうか。
ここでb!= undefined とするとまずいのはbがnullの時だけ、という認識でいいでしょうか。
>632
ありがとうございます。bが0や空文字の時にも偽になりそうです。
635デフォルトの名無しさん (ワッチョイ df79-jh2e [220.150.90.192])
2023/01/29(日) 16:03:43.52ID:R24XfIrD0 第一にjavascriptみたいな後付け追加仕様が混在する言語は規格よりも実装の影響力が強いから
想定環境で検証済の方法を採用すべきだと思う
コードとしては変数をtypeofで"undefined"と比較するのが恐らく理解しやすいが、
メンテナがjavascriptに十分慣れていてvoid 0のイディオムの理解を期待できるならそっちでもいい
想定環境で検証済の方法を採用すべきだと思う
コードとしては変数をtypeofで"undefined"と比較するのが恐らく理解しやすいが、
メンテナがjavascriptに十分慣れていてvoid 0のイディオムの理解を期待できるならそっちでもいい
636デフォルトの名無しさん (スッップ Sd72-X84U [49.98.141.203])
2023/01/29(日) 16:28:19.00ID:MX/guDl/d >>634
結局のところ
・undefinedが上書きされる可能性を考慮する必要があるのか
・bがundefined以外のfalsyな値を取りうるのか
・取る場合それぞれの値をundefinedとは区別したいのか同じとみなしたいのか
この辺次第で望ましい書き方は変わってくるわけで
結局のところ
・undefinedが上書きされる可能性を考慮する必要があるのか
・bがundefined以外のfalsyな値を取りうるのか
・取る場合それぞれの値をundefinedとは区別したいのか同じとみなしたいのか
この辺次第で望ましい書き方は変わってくるわけで
637デフォルトの名無しさん (オッペケ Sr27-+FJ3 [126.133.207.3])
2023/01/29(日) 16:30:22.92ID:d0tJgmu5r >>634
型チェックも働かせるなら
if (a. === 'あいう' && b !== void 0)
と書けば良い
'あいう' も==では型チェックしない
> ここでb!= undefined とするとまずいのはbがnullの時だけ
まずいのは、undefined! == void 0 の場合
型チェックも働かせるなら
if (a. === 'あいう' && b !== void 0)
と書けば良い
'あいう' も==では型チェックしない
> ここでb!= undefined とするとまずいのはbがnullの時だけ
まずいのは、undefined! == void 0 の場合
638デフォルトの名無しさん (アウアウウー Sacd-3+Au [106.128.44.107])
2023/02/12(日) 19:44:05.09ID:zQHZ3m1Fa //☆☆県(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];
});
上手く動かないのですがどこが間違えてますか?教えてください。
☆はわざとです
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];
});
上手く動かないのですがどこが間違えてますか?教えてください。
☆はわざとです
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 [ぐれ★]
- 【中国外務省】日中関係悪化は高市氏に責任と名指しで非難… ★3 [BFU★]
- 【中国外務省】日中関係悪化は高市氏に責任と名指しで非難… ★2 [BFU★]
- 外務省局長は無言で厳しい表情…日中の高官協議終了か 高市首相“台湾”発言で中国が強硬対応 発言撤回求めたか…★2 [BFU★]
- 小野田紀美・経済安保担当相「何か気に入らないことがあればすぐに経済的威圧をする国への依存はリスク」 [Hitzeschleier★]
- 政府、株式の配当など金融所得を高齢者の医療保険料や窓口負担に反映する方針を固めた [バイト歴50年★]
- 【朗報】日銀植田総裁「高市さんからの要望は特になかった」 [519511584]
- 中国高官と話す外務省局長の表情、やばい ★2 [175344491]
- 【高市速報】日本人の3割「中国への武力行使に踏み切る必要がある」ANN世論調査 [931948549]
- 外務省局長、よくわからないまま帰国へ [834922174]
- 中国外務省「日中関係の悪化は高市早苗首相が原因」と名指しで強く非難。キタ━(゚∀゚)━! [153490809]
- 高市早苗政権「経済的威圧をしてくる国はリスク」 トランプぴょんぴょん政権さん…… [175344491]
