!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:TS5TGpUB0480デフォルトの名無しさん (JP 0H88-aH43 [126.249.157.89])
2022/12/25(日) 15:40:19.02ID:GFtl9gAsH481デフォルトの名無しさん (オッペケ Srd9-r/3v [126.194.247.243])
2022/12/25(日) 16:48:37.78ID:sJzx1gQhr482デフォルトの名無しさん (JP 0H88-aH43 [126.249.157.89])
2022/12/25(日) 16:50:28.05ID:GFtl9gAsH >>479様
面白かったです。
<html><head><body><div>
どの要素にでも、setProperty('param','value')を設定しておけば
別ファイルに作ったスタイルシートの変数を参照できるのですね
疑似的なコードですが
<script>
body.setProperty('--color','red')
div.setProperty('--color','blue')
html.setProperty('--color','green)
とすると、子孫のスタイル設定が優先されることも理解できました
とても面白く学習できました、ありがとうございました
面白かったです。
<html><head><body><div>
どの要素にでも、setProperty('param','value')を設定しておけば
別ファイルに作ったスタイルシートの変数を参照できるのですね
疑似的なコードですが
<script>
body.setProperty('--color','red')
div.setProperty('--color','blue')
html.setProperty('--color','green)
とすると、子孫のスタイル設定が優先されることも理解できました
とても面白く学習できました、ありがとうございました
483デフォルトの名無しさん (JP 0H88-aH43 [126.249.157.89])
2022/12/25(日) 16:51:23.54ID:GFtl9gAsH484デフォルトの名無しさん (スプッッ Sd5e-HEC+ [1.75.242.54])
2022/12/25(日) 17:00:33.10ID:gv3ThvO8d もう解決したんだしどうでもいいからお礼だけ言って体よく話を打ち切りたいって思いがヒシヒシ伝わってくるな
485デフォルトの名無しさん (ワッチョイ 1df0-aH43 [58.98.96.219])
2022/12/26(月) 13:51:42.59ID:fuxINEHv0 >>469様
Live serverを使って、別のスタイルシートで設定した、フォント色の変更はOKでした。
ありがとうございました。
ただ、@keyframesに関しては、CSSKeyframeRule__{keyText..,style,,cssText,,}__までは見れたのですが
内容の変更方法が分からないため断念しました
時間あるときに再チャレンジしてみます
皆様ありがとうございました
Live serverを使って、別のスタイルシートで設定した、フォント色の変更はOKでした。
ありがとうございました。
ただ、@keyframesに関しては、CSSKeyframeRule__{keyText..,style,,cssText,,}__までは見れたのですが
内容の変更方法が分からないため断念しました
時間あるときに再チャレンジしてみます
皆様ありがとうございました
486デフォルトの名無しさん (ワッチョイ 114b-+VVc [110.2.215.28 [上級国民]])
2022/12/26(月) 15:01:08.23ID:pO4MU7IP0 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();
}
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();
}
487デフォルトの名無しさん (ワッチョイ 114b-+VVc [110.2.215.28 [上級国民]])
2022/12/26(月) 15:02:39.66ID:pO4MU7IP0 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;
}
}
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;
}
}
488デフォルトの名無しさん (ワッチョイ 114b-+VVc [110.2.215.28 [上級国民]])
2022/12/26(月) 15:07:33.18ID:pO4MU7IP0 線幅を変更するスクリプトなのですが、一応完成しました。
自分で使うだけならこれでいいのですが、他人に使ってもらう場合、ダイアログに「線幅を追加する」という項目を増やしたいと思っています。
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"のを削除するコードを書くことは可能ですか?)
自分で使うだけならこれでいいのですが、他人に使ってもらう場合、ダイアログに「線幅を追加する」という項目を増やしたいと思っています。
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"のを削除するコードを書くことは可能ですか?)
489デフォルトの名無しさん (スプッッ Sd5e-HEC+ [1.75.242.231])
2022/12/26(月) 15:27:01.38ID:oXRhIFIqd スレ内を線幅で検索しても何も引っかからないのにこの書き出しで何か伝わると思ってるのすごいわ
線幅の配列を関数内で直書きしてるから自身を書き換えるとか面倒なことを考える必要があるわけで
関数の外に変数で宣言しとけば追加も削除もなんとでもなるでしょ
線幅の配列を関数内で直書きしてるから自身を書き換えるとか面倒なことを考える必要があるわけで
関数の外に変数で宣言しとけば追加も削除もなんとでもなるでしょ
490デフォルトの名無しさん (ワッチョイ de01-WsKb [60.103.67.153])
2022/12/26(月) 15:55:16.01ID:gS/UmYxh0 確かIllustratorかなんかのスクリプトでしょ
ここ見てるほとんどはWebブラウザやnode.jsのJavaScriptは知っててもそっちは知らないと思う
文法的にはJavaScriptと同じでも出てくるオブジェクトは独自のものだろうし説明しないとわからんよ
ここ見てるほとんどはWebブラウザやnode.jsのJavaScriptは知っててもそっちは知らないと思う
文法的にはJavaScriptと同じでも出てくるオブジェクトは独自のものだろうし説明しないとわからんよ
491デフォルトの名無しさん (ワッチョイ 114b-+VVc [110.2.215.28 [上級国民]])
2022/12/26(月) 16:14:37.67ID:pO4MU7IP0 >>489
素人でもエディタで開かないとダメということですね。
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行を書き換えてください
こう先頭に書き加えました。
素人でもエディタで開かないとダメということですね。
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行を書き換えてください
こう先頭に書き加えました。
492デフォルトの名無しさん (ワッチョイ 114b-+VVc [110.2.215.28 [上級国民]])
2022/12/26(月) 16:16:02.82ID:pO4MU7IP0493デフォルトの名無しさん (スプッッ Sd5e-HEC+ [1.75.242.231])
2022/12/26(月) 16:45:32.21ID:oXRhIFIqd494デフォルトの名無しさん (スップ Sd42-gE1B [49.97.104.195])
2022/12/26(月) 17:18:59.92ID:l7z7KEaud495デフォルトの名無しさん (オッペケ Sr37-r/3v [126.208.225.253])
2022/12/26(月) 22:12:09.27ID:LJgewTa3r >>485
①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%"
①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%"
496デフォルトの名無しさん (ワッチョイ 1df0-aH43 [58.98.96.219])
2022/12/27(火) 15:47:36.10ID:LHsOSApx0497デフォルトの名無しさん (オッペケ Sr4f-XOVI [126.34.121.172])
2023/01/02(月) 12:58:47.15ID:A6ceP6kcr >>474
pythonのeelモジュールを使えば、昔のhtaっぽいことができます
pythonのeelモジュールを使えば、昔のhtaっぽいことができます
498デフォルトの名無しさん (ワッチョイ a779-rE+U [220.150.90.192])
2023/01/02(月) 17:25:19.15ID:V1TEslsJ0499デフォルトの名無しさん (ワッチョイ 8202-9yt5 [27.92.176.51])
2023/01/04(水) 19:01:14.59ID:jNmuxM610 「無名関数」、「関数リテラル」の理解がちょっとぼやけています。
次の様なコードがあったとき、
let calcResult = function calc(a,b){
return a*b;
}
calc()
と()をつけて表せるものが普通の関数、それを変数に代入したもの
calcResult
が関数リテラルかと思っていました。
しかし、どうやら違うようで。。
次の様なコードがあったとき、
let calcResult = function calc(a,b){
return a*b;
}
calc()
と()をつけて表せるものが普通の関数、それを変数に代入したもの
calcResult
が関数リテラルかと思っていました。
しかし、どうやら違うようで。。
500デフォルトの名無しさん (ワッチョイ 8202-9yt5 [27.92.176.51])
2023/01/04(水) 19:01:57.33ID:jNmuxM610 例えば以下の2つの関数があります。
■「function関数」を変数に格納
let calcResult1 = function calc(a,b){
return a*b;
}
■「無名関数」を変数に格納
let calcResult2 = function(a,b){
return a*b;
}
「無名関数」は「関数リテラル」と同義である。とさまざまな文献に記述されています。
ならば、
calcResult1
は、関数リテラルではない。
calcResult2
は、関数リテラルである。
という認識で間違っていないでしょうか?
■「function関数」を変数に格納
let calcResult1 = function calc(a,b){
return a*b;
}
■「無名関数」を変数に格納
let calcResult2 = function(a,b){
return a*b;
}
「無名関数」は「関数リテラル」と同義である。とさまざまな文献に記述されています。
ならば、
calcResult1
は、関数リテラルではない。
calcResult2
は、関数リテラルである。
という認識で間違っていないでしょうか?
501デフォルトの名無しさん (ワッチョイ 8202-9yt5 [27.92.176.51])
2023/01/04(水) 19:02:26.96ID:jNmuxM610 SetInterval()
に与える引数は、関数リテラルでなくてはならないそうです。
となると、以下は誤りで、
SetInterval(calcResult1,1000);
以下なら問題ない
SetInterval(calcResult2,1000);
という理解でよろしいでしょうか?
に与える引数は、関数リテラルでなくてはならないそうです。
となると、以下は誤りで、
SetInterval(calcResult1,1000);
以下なら問題ない
SetInterval(calcResult2,1000);
という理解でよろしいでしょうか?
502デフォルトの名無しさん (ワッチョイ 8701-1zgH [60.103.77.208])
2023/01/04(水) 20:37:28.67ID:UYb7FHhp0 https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Operators/function
https://developer.mozilla.org/ja/docs/Glossary/Literal
リテラルに関数は含まれてないな
「関数リテラル=無名関数」が間違ってて、calcResult1 も calcResult2 は、関数リテラル。
とイコールで結んじゃうのは乱暴か
字義に従えば「無名関数」には生成時に名前をつけなかった、程度の意味しかないかと
ただ、関数式として生成された関数は変数に格納するか、でなければ他の関数の引数になるので、名前をつける意味はほぼない
結果的に関数式の関数は無名関数になることがほとんどで
https://developer.mozilla.org/ja/docs/Glossary/Literal
リテラルに関数は含まれてないな
「関数リテラル=無名関数」が間違ってて、calcResult1 も calcResult2 は、関数リテラル。
とイコールで結んじゃうのは乱暴か
字義に従えば「無名関数」には生成時に名前をつけなかった、程度の意味しかないかと
ただ、関数式として生成された関数は変数に格納するか、でなければ他の関数の引数になるので、名前をつける意味はほぼない
結果的に関数式の関数は無名関数になることがほとんどで
503デフォルトの名無しさん (ワッチョイ 8701-1zgH [60.103.77.208])
2023/01/04(水) 20:40:11.89ID:UYb7FHhp0 ここでいう「関数リテラル」は関数式で記述された関数のことで、名前があろうとなかろうと「関数リテラル」でいいんだと思う
504502 (ワッチョイ 8701-1zgH [60.103.77.208])
2023/01/04(水) 20:53:07.39ID:UYb7FHhp0505デフォルトの名無しさん (ワッチョイ 8202-9yt5 [27.92.176.51])
2023/01/04(水) 20:57:54.46ID:jNmuxM610506デフォルトの名無しさん (オッペケ Sr4f-JZbg [126.194.244.157])
2023/01/04(水) 21:00:20.48ID:GLj+17iFr 調べたら自分を再帰的に呼び出す場合に名前を付けるって例があってなるほどと思った
507デフォルトの名無しさん (オッペケ Sr4f-JZbg [126.194.244.157])
2023/01/04(水) 21:21:00.43ID:GLj+17iFr ちなみに>>501のsetIntervalの引数は関数リテラルでないといけないってのはどこ情報?
508デフォルトの名無しさん (ワッチョイ 8202-9yt5 [27.92.176.51])
2023/01/04(水) 21:23:57.48ID:jNmuxM610 あれ。関数リテラルには引数はないのか。。引数の不要な関数しか関数リテラルにならんのか。
もちょっと調べてみます。
もちょっと調べてみます。
509デフォルトの名無しさん (ワッチョイ 8202-9yt5 [27.92.176.51])
2023/01/04(水) 21:32:15.85ID:jNmuxM610 >>507
必要ならページ画像をどっかにアップします。。
技術評論社
JavaScript本格入門
https://gihyo.jp/book/2016/978-4-7741-8411-1
P362
setTimeout/SetIntervalメソッドの注意点
...引数funcは必ず関数リテラルで指定してください。
必要ならページ画像をどっかにアップします。。
技術評論社
JavaScript本格入門
https://gihyo.jp/book/2016/978-4-7741-8411-1
P362
setTimeout/SetIntervalメソッドの注意点
...引数funcは必ず関数リテラルで指定してください。
510デフォルトの名無しさん (ワッチョイ 8202-9yt5 [27.92.176.51])
2023/01/04(水) 21:39:03.24ID:jNmuxM610 でも何かの引数に関数をわたすときは、
一般的に関数リテラルで渡すのがデフォと
ぼんやり思っている。
一般的に関数リテラルで渡すのがデフォと
ぼんやり思っている。
511デフォルトの名無しさん (ワッチョイ 8701-9yt5 [60.88.115.90])
2023/01/04(水) 21:47:22.56ID:QxUfEWbZ0 技術評論社はやめとけよ。
512デフォルトの名無しさん (オッペケ Sr4f-JZbg [126.194.244.157])
2023/01/04(水) 21:55:58.51ID:GLj+17iFr513デフォルトの名無しさん (ワッチョイ 8201-+uJR [219.204.123.70])
2023/01/04(水) 22:20:18.03ID:lFNs7lW+0 単に著者が良く理解せずに書いてるだけな気がする
514デフォルトの名無しさん (ワッチョイ 8202-9yt5 [27.92.176.51])
2023/01/04(水) 22:21:10.60ID:jNmuxM610 >>512
setTimeout()の例でしかもjQueryで
申し訳ないのですが。
1秒後に#displayのhtmlの内容を空にするコードです。
以下のようなコードではsetTimeoutが動かず、
setTimeout($('#display').html(' '), 1000);
代わりに、以下で動きます。
function clearDisplay(){
$('#display').html('');
}
setTimeout(clearDisplay, 1000);
このことから書籍にあるように
関数リテラルでないと引数に渡せないと
思っていました。。
書籍の文脈ですが、実際にあとで画像アップします。
setTimeout()の例でしかもjQueryで
申し訳ないのですが。
1秒後に#displayのhtmlの内容を空にするコードです。
以下のようなコードではsetTimeoutが動かず、
setTimeout($('#display').html(' '), 1000);
代わりに、以下で動きます。
function clearDisplay(){
$('#display').html('');
}
setTimeout(clearDisplay, 1000);
このことから書籍にあるように
関数リテラルでないと引数に渡せないと
思っていました。。
書籍の文脈ですが、実際にあとで画像アップします。
515デフォルトの名無しさん (オッペケ Sr4f-JZbg [126.194.244.157])
2023/01/04(水) 22:46:11.56ID:GLj+17iFr >setTimeout($('#display').html(' '), 1000);
これそもそも渡してるの関数じゃないからリテラル云々の問題じゃなくない?
html()が戻り値としてjQueryを返すからそれが引数として渡ってるでしょ
>function clearDisplay(){
> $('#display').html('');
>}
これもfunction「文」で定義してるから>>504で言うところの関数リテラルには当てはまらない関数だよね
これそもそも渡してるの関数じゃないからリテラル云々の問題じゃなくない?
html()が戻り値としてjQueryを返すからそれが引数として渡ってるでしょ
>function clearDisplay(){
> $('#display').html('');
>}
これもfunction「文」で定義してるから>>504で言うところの関数リテラルには当てはまらない関数だよね
516デフォルトの名無しさん (ワッチョイ e6cf-/EFQ [153.174.224.39])
2023/01/04(水) 23:53:56.91ID:PU4coe7B0 アロー関数式を使うことで、関数リテラルによる関数定義を
より簡略化して記述することができます
ただし、this には注意してください
より簡略化して記述することができます
ただし、this には注意してください
517デフォルトの名無しさん (ワッチョイ 8202-9yt5 [27.92.176.51])
2023/01/05(木) 00:01:25.43ID:EVXeoiyo0 >>515
setTimeout($('#display').html(' '), 1000);
これそもそも渡してるの関数じゃないからリテラル云々の問題じゃなくない?
渡しているのは関数じゃない。。
んー。メソッドか。だから動かない。
ありがとう。
setTimeout($('#display').html(' '), 1000);
これそもそも渡してるの関数じゃないからリテラル云々の問題じゃなくない?
渡しているのは関数じゃない。。
んー。メソッドか。だから動かない。
ありがとう。
518デフォルトの名無しさん (オッペケ Sr4f-JZbg [126.194.243.148])
2023/01/05(木) 00:18:03.56ID:7P17JKmwr >>517
いや、関数かメソッドかの話じゃなくて
$('#display').html(' ')をその場で実行してその戻り値であるjQueryオブジェクトを渡しちゃってるでしょって話
ちゃんと理解できてる?
https://js.studio-kingdom.com/jquery/manipulation/html#1
いや、関数かメソッドかの話じゃなくて
$('#display').html(' ')をその場で実行してその戻り値であるjQueryオブジェクトを渡しちゃってるでしょって話
ちゃんと理解できてる?
https://js.studio-kingdom.com/jquery/manipulation/html#1
519デフォルトの名無しさん (ワッチョイ 8202-9yt5 [27.92.176.51])
2023/01/05(木) 00:26:22.30ID:EVXeoiyo0 私の勘違いだったのですね。
たしかに関数ではない。。
一応書籍のページ画像をuploadしました。
「引数funcは必ず関数リテラルで指定してください。」
https://uploda1.ysklog.net/uploda/8298a4c0da.png
「関数リテラルは....ある関数の引数として渡したり....」
https://uploda1.ysklog.net/uploda/0bcdf35455.png
たしかに関数ではない。。
一応書籍のページ画像をuploadしました。
「引数funcは必ず関数リテラルで指定してください。」
https://uploda1.ysklog.net/uploda/8298a4c0da.png
「関数リテラルは....ある関数の引数として渡したり....」
https://uploda1.ysklog.net/uploda/0bcdf35455.png
520デフォルトの名無しさん (ワッチョイ 8202-9yt5 [27.92.176.51])
2023/01/05(木) 00:27:48.45ID:EVXeoiyo0 >>518
理解したありがとう!
理解したありがとう!
521デフォルトの名無しさん (ワッチョイ 2e5c-uhAF [39.3.101.10])
2023/01/05(木) 02:04:13.18ID:hRDnYJsk0 >>519
「引数funcは必ず関数リテラルで指定してください。」
ちょっと問題のある文章だなあ
https://developer.mozilla.org/ja/docs/Web/API/setTimeout
第一引数は関数またはjavascriptコードとして実行される文字列
関数ってのは関数呼び出しじゃなくて関数名、または無名関数(関数リテラル)
>>514
文字列で渡したら動くはず
setTimeout("$('#display').html(' ')", 1000);
「引数funcは必ず関数リテラルで指定してください。」
ちょっと問題のある文章だなあ
https://developer.mozilla.org/ja/docs/Web/API/setTimeout
第一引数は関数またはjavascriptコードとして実行される文字列
関数ってのは関数呼び出しじゃなくて関数名、または無名関数(関数リテラル)
>>514
文字列で渡したら動くはず
setTimeout("$('#display').html(' ')", 1000);
522デフォルトの名無しさん (ワッチョイ 8201-+uJR [219.204.123.70])
2023/01/05(木) 06:17:33.15ID:O+NRT3S+0 >>521
> 「引数funcは必ず関数リテラルで指定してください。」
> ちょっと問題のある文章だなあ
まあそこは直前に文字列でも指定できるけどって書いてるから教育的指導なんだろうとは思う
まあ「必ず」という言葉が強すぎるから「引数funcは関数リテラルで指定するようにしてください。」程度でいいと思う
むしろ問題は「関数リテラルは宣言した時点では、名前を持たないことから匿名関数、または無名関数と呼ばれることもあります。」の方だろうね
> 「引数funcは必ず関数リテラルで指定してください。」
> ちょっと問題のある文章だなあ
まあそこは直前に文字列でも指定できるけどって書いてるから教育的指導なんだろうとは思う
まあ「必ず」という言葉が強すぎるから「引数funcは関数リテラルで指定するようにしてください。」程度でいいと思う
むしろ問題は「関数リテラルは宣言した時点では、名前を持たないことから匿名関数、または無名関数と呼ばれることもあります。」の方だろうね
523デフォルトの名無しさん (ワッチョイ 8202-9yt5 [27.92.176.51])
2023/01/05(木) 09:18:58.87ID:EVXeoiyo0 >>521
>文字列で渡したら動くはず
>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)
は、関数リテラルなのですね。
てっきり()がないものが関数リテラルと思っていたが、
どうも、それも間違いようで。
>文字列で渡したら動くはず
>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)
は、関数リテラルなのですね。
てっきり()がないものが関数リテラルと思っていたが、
どうも、それも間違いようで。
524デフォルトの名無しさん (ワッチョイ 8202-9yt5 [27.92.176.51])
2023/01/05(木) 09:20:11.59ID:EVXeoiyo0 あくまで、関数を変数に代入するということが、重要なのでしょうか?
525デフォルトの名無しさん (ワッチョイ 8202-9yt5 [27.92.176.51])
2023/01/05(木) 09:23:08.82ID:EVXeoiyo0 「関数呼び出し」と
「引数付の関数リテラル」は
それだけみても違いわからないですね。
定義された場所を見て判断しないと。
「引数付の関数リテラル」は
それだけみても違いわからないですね。
定義された場所を見て判断しないと。
526デフォルトの名無しさん (オッペケ Sr4f-JZbg [126.194.246.162])
2023/01/05(木) 10:06:29.26ID:rM8SDmmnr >>523
>>setTimeout("$('#display').html(' ')", 1000);
>ありがとう。関数とは、関数呼び出しではなく実行される文字列
いやいや、それは関数じゃなくてただの文字列
setTimeoutの第一引数は文字列か関数って書いてあるでしょ
関数リテラルって言葉はもう忘れていいと思うよ
そもそもMDNに記述がないから便宜的なものだし、その本での説明も怪しい
定義の仕方で区分されてるだけで実質的にはただの関数で
挙動に差異があるわけでもないだろうし
>>setTimeout("$('#display').html(' ')", 1000);
>ありがとう。関数とは、関数呼び出しではなく実行される文字列
いやいや、それは関数じゃなくてただの文字列
setTimeoutの第一引数は文字列か関数って書いてあるでしょ
関数リテラルって言葉はもう忘れていいと思うよ
そもそもMDNに記述がないから便宜的なものだし、その本での説明も怪しい
定義の仕方で区分されてるだけで実質的にはただの関数で
挙動に差異があるわけでもないだろうし
527デフォルトの名無しさん (オッペケ Sr4f-JZbg [126.194.246.162])
2023/01/05(木) 10:52:19.71ID:rM8SDmmnr >>522
>「引数funcは関数リテラルで指定するようにしてください。」程度でいいと思う
それだとfunction命令で定義した関数は指定してはいけないと誤解されるからリテラルを削ったほうがいいかと
>「引数funcは関数リテラルで指定するようにしてください。」程度でいいと思う
それだとfunction命令で定義した関数は指定してはいけないと誤解されるからリテラルを削ったほうがいいかと
528デフォルトの名無しさん (ワッチョイ e6cf-/EFQ [153.174.224.39])
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
そういうこと
関数リテラルという呼び方はひとまず置いといて、無名関数という概念でとらえるとよい
function(~~){~~} は見ての通り、ひとつの無名関数である
var getTraiangle = function(base,height){ return base * height/2; }
によって、変数getTraiangle でこの無名関数を参照できるようになる
getTraiangle(5,2)
では変数名を使って先の無名関数を呼び出し、戻り値が取得される
これは一般に「関数の戻り値」と呼ばれる (関数リテラルではない)
console.log('三角形の面積:'+getTraiangle(5,2));
では、「+」によって、文字列 '三角形の面積:' と数値である戻り値が連結されて、ひとつの文字列が生成される
console.log()がそれを出力する
>>525
何かしら(無名)関数を使うにあたり、引数が要るなら付ける、要らないなら付けない、それだけの話
あなたの言う「引数付の関数リテラル」は勘違いで、「引数付きの関数呼び出し」に過ぎない
>>524
そういうこと
529デフォルトの名無しさん (ワッチョイ 2e5c-uhAF [39.3.101.10])
2023/01/05(木) 11:50:49.92ID:hRDnYJsk0 >>523
>setTimeout("$('#display').html(' ')", 1000);
ありがとう。関数とは、関数呼び出しではなく実行される文字列
違う。全く違う。めっちゃ大事なことだから勘違いしないで
それはsetTimeoutoの第一引数を文字列として指定した場合のこと
第一引数に関数を指定する方法は>>514で君は既にやっている
setTimeout(clearDisplay, 1000);
clearDisplay関数を定義してそれをsetTimeoutの第一引数に渡している
これでいい
>>527の言う通り
>>526の言う通り今は無名関数とか関数リテラルとかにこだわらない方がいい
>>523のうp画像に無名関数は重要な概念なので後ほど詳述ってあるからそこをみっちり勉強してね
>setTimeout("$('#display').html(' ')", 1000);
ありがとう。関数とは、関数呼び出しではなく実行される文字列
違う。全く違う。めっちゃ大事なことだから勘違いしないで
それはsetTimeoutoの第一引数を文字列として指定した場合のこと
第一引数に関数を指定する方法は>>514で君は既にやっている
setTimeout(clearDisplay, 1000);
clearDisplay関数を定義してそれをsetTimeoutの第一引数に渡している
これでいい
>>527の言う通り
>>526の言う通り今は無名関数とか関数リテラルとかにこだわらない方がいい
>>523のうp画像に無名関数は重要な概念なので後ほど詳述ってあるからそこをみっちり勉強してね
530デフォルトの名無しさん (オッペケ Sr4f-JZbg [126.194.240.4])
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;
});
https://www.javadrive.jp/javascript/function/index5.html
「関数リテラルを使った関数定義」って言い回しを強調してるのが良い
だから関数リテラルを引数として渡すって言ったらこういうことだよなって
dispNum(10, 8, function(x, y){
return (x + y) / 2;
});
531デフォルトの名無しさん (ワッチョイ 8202-9yt5 [27.92.176.51])
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.
関数リテラルとは、用法のことであり、
コード部分を表すものではない。
だれか答えていただけますでしょうか?
---
次のコードがあります。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.
関数リテラルとは、用法のことであり、
コード部分を表すものではない。
532デフォルトの名無しさん (ワッチョイ e67b-28F+ [153.178.229.141])
2023/01/05(木) 14:53:38.67ID:mmmJuCOb0 >>531
ぐぐったら以下の様に出る。結構理解しやすいと思うが。
リテラルとは リテラルとは、プログラムのソースコードにおいて使用される、数値や文字列を直接に記述した定数のことである。 変数の対義語であり、変更されないことを前提とした値である。 プログラミング言語のコード中にリテラルが挿入される場合には、判別のために特定の書式を用いる必要がある。
ぐぐったら以下の様に出る。結構理解しやすいと思うが。
リテラルとは リテラルとは、プログラムのソースコードにおいて使用される、数値や文字列を直接に記述した定数のことである。 変数の対義語であり、変更されないことを前提とした値である。 プログラミング言語のコード中にリテラルが挿入される場合には、判別のために特定の書式を用いる必要がある。
533デフォルトの名無しさん (ワッチョイ 8202-9yt5 [27.92.176.51])
2023/01/05(木) 15:02:17.50ID:EVXeoiyo0 うん。「リテラル」ということばによって惑わされてきた気がする。
534デフォルトの名無しさん (アウアウウー Sa6b-y47Y [106.155.3.231])
2023/01/05(木) 15:06:19.08ID:akcN5qw4a 関数リテラルは関数として評価可能な右辺値と考えておけばまあいいんじゃないの
正確な定義は構文木の定義を見れば書いてある
正確な定義は構文木の定義を見れば書いてある
535デフォルトの名無しさん (オッペケ Sr4f-JZbg [126.208.232.21])
2023/01/05(木) 15:10:13.35ID:HxGsZjLmr536デフォルトの名無しさん (オッペケ Sr4f-JZbg [126.208.238.17])
2023/01/05(木) 15:28:42.13ID:c7qQflpDr537デフォルトの名無しさん (ワッチョイ 9f63-uhAF [180.58.213.164])
2023/01/05(木) 15:35:00.85ID:m3Sm+5EJ0 >>531
強いて言えば1かな
でも数値・文字列・正規表現リテラルみたいにプログラム中に単独で書くことは出来ないね
変数に代入するなり関数の引数に使うなりしないとエラーになる
英語でもfunction literalっていうみたいだけど関数リテラルってあんまりいい言葉だと思わないなあ
33;
"hello";
/^js$/;
function() {return true}; //SyntaxError
こんなことにこだわるよりもっと基本的なこと勉強した方方がいいんじゃないの?
強いて言えば1かな
でも数値・文字列・正規表現リテラルみたいにプログラム中に単独で書くことは出来ないね
変数に代入するなり関数の引数に使うなりしないとエラーになる
英語でもfunction literalっていうみたいだけど関数リテラルってあんまりいい言葉だと思わないなあ
33;
"hello";
/^js$/;
function() {return true}; //SyntaxError
こんなことにこだわるよりもっと基本的なこと勉強した方方がいいんじゃないの?
538デフォルトの名無しさん (ワッチョイ 8202-9yt5 [27.92.176.51])
2023/01/05(木) 15:38:00.87ID:EVXeoiyo0 あ。
誤解していたところがとけました。
当初は「2」かと妄信していたので、
だいぶ合点がとれました。
関数リテラルが無名関数と同義という説明も
いやそうではないという説明も
すっきりしました。
皆さん長々とお付き合いいただき
ありがとうございました。
誤解していたところがとけました。
当初は「2」かと妄信していたので、
だいぶ合点がとれました。
関数リテラルが無名関数と同義という説明も
いやそうではないという説明も
すっきりしました。
皆さん長々とお付き合いいただき
ありがとうございました。
539デフォルトの名無しさん (ワッチョイ 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
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【サッカー】U-17日本代表、激闘PK戦制す 北朝鮮撃破で6大会ぶり8強入り U17W杯 [久太郎★]
- 「国民の憤りを引き起こした」中国側“高市首相発言の撤回改めて要求” [どどん★]
- 【インバウンド】中国からの“渡航自粛”…ツアー1000人分の直前キャンセル「キャンセル料は免除してくれ」 ことしいっぱいキャンセルに [1ゲットロボ★]
- 【芸能】日中関係悪化でエンタメ業界に大ダメージ… JO1の中国でのイベント中止、邦画は公開延期、STARTOアイドルへの影響も [冬月記者★]
- XやChatGPTで広範囲の通信障害 投稿や閲覧できず [蚤の市★]
- 【サッカー】日本代表、ボリビアに3発快勝 森保監督通算100試合目を飾る…鎌田、町野、中村がゴール [久太郎★]
- Perfume・あ~ちゃんの結婚相手の一般男性、吉田カバンの社長と判明 [977261419]
- 地球から無限km先の場所ってどうなっているの?
- お前らインターネット大規模障害起きてたとき何してた
- 自民党議員「高市は先人が築き上げた日中関係を壊した。外務省が謝罪に言ってるが自分で責任を取れ」 [834922174]
- 日本、高市のお陰で破滅に近づくwwwwwwww
- 岡田克也「軽々しく存立危機事態とか言うべきじゃない」高市早苗「台湾で武力攻撃が発生したらどう考えても日本の存立危機事態」 [931948549]
