JavaScript を自ら学ぶ人のための質問スレッドです。
>>2-6のテンプレを読んだ上で質問してください。次スレは>>950が>>2のテンプレ案(本スレで改善案があれば考慮)を元に立ててください
■質問を書く上で
(1) 煽り、コード制作依頼等、人を不快にさせる投稿はご遠慮下さい。公序良俗を守った応対を心がけてください。
(2) 他の人に迷惑をかけるスクリプトの質問はご遠慮ください。
(ブラクラ、[戻る], [閉じる], [クリック] の妨害、画面占有など)
(3) 質問者及び議論を行う人はメール欄を空欄にし、名前にレス番を入れることを強く推奨します。回答者はなりすましを判断できませんので、なりすましが現れても自己責任となります。
(4) 常に自発的に調べる心構えを持ってください。
具体的には「自分で調べてから質問する」「回答をもらってわからない単語があればGoogle検索してみる」など。
わからない内容を代わりに調べてくれる回答者をお望みの方は余所で質問してください。
(5) 出来るだけ一般的な用語を使用してください。脳内オレオレ用語は混乱の元です。
(6) 出来るだけサンプルコードを掲示してください。言葉による説明は行き違いが生まれる場合があります。
※必ず「問題の事象が再現されること」を確認してください。
必要な部分だけ切り出したつもりで現象が再現できていなかったケアレスミスがしばしば見られます。
(7) サンプルコードに HTML が含まれる場合は http://validator.w3.org/ で [Check] してみてください。
(8) 質問を具体的かつ詳細に書くと回答を得られやすいです。>>2の質問テンプレートを活用してみてください。
(9) ライブラリ関連の質問は禁止です。関連スレにあるライブラリ質問スレで質問して下さい。
(10) 時にはあなたが望む「答え」だけでなく、「意見」などが寄せられる場合もあります。
※前スレ
+ JavaScript の質問用スレッド vol.123 +
https://mevius.5ch.net/test/read.cgi/tech/1491143438/
VIPQ2_EXTDAT: checked:vvvvvv:1000:512:: EXT was configured
探検
+ JavaScript の質問用スレッド vol.124 +
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 8a52-hQZx [61.87.108.223])
2021/11/10(水) 15:24:24.80ID:jxD2VXPG02デフォルトの名無しさん (ワッチョイ 7f52-hQZx [61.87.108.223])
2021/11/10(水) 15:26:36.49ID:jxD2VXPG0 ■質問テンプレート
【環境】OS, ブラウザをバージョンと共に記入してください。(ex: IE8, Firefox4)
【何をしたのか】何をしたら問題の現象が発生するのか。再現手順を具体的に書いてください。
【エラーメッセージ】エラーメッセージがあれば正確に書き写してください。(Windows なら「コピット」を活用)
【期待する結果】最終的にどういう結果を望んでいるのか、を書いてください。
【サンプルコード】現象を再現可能な最小限のコードを書いてください。
1レスに収まらないならコード投稿サイトを利用してください。
http://jsdo.it/ http://jsbin.com/ http://jsfiddle.net/ http://ideone.com/
■過去スレ全集
http://www2.atpages.jp/mirror/2ch/javascript/
http://usamimi.info/~mirrorhenkan/2ch/javascript/ (閲覧のみ)
■テンプレ案
https://fiddle.jshell.net/6018r9tu/1/show/light/
【環境】OS, ブラウザをバージョンと共に記入してください。(ex: IE8, Firefox4)
【何をしたのか】何をしたら問題の現象が発生するのか。再現手順を具体的に書いてください。
【エラーメッセージ】エラーメッセージがあれば正確に書き写してください。(Windows なら「コピット」を活用)
【期待する結果】最終的にどういう結果を望んでいるのか、を書いてください。
【サンプルコード】現象を再現可能な最小限のコードを書いてください。
1レスに収まらないならコード投稿サイトを利用してください。
http://jsdo.it/ http://jsbin.com/ http://jsfiddle.net/ http://ideone.com/
■過去スレ全集
http://www2.atpages.jp/mirror/2ch/javascript/
http://usamimi.info/~mirrorhenkan/2ch/javascript/ (閲覧のみ)
■テンプレ案
https://fiddle.jshell.net/6018r9tu/1/show/light/
3デフォルトの名無しさん (ブーイモ MM0f-8Kye [163.49.205.32])
2021/11/10(水) 15:46:52.81ID:qwlO4mThM 前スレ998の質問だけど
一般的にはc2が返してるような関数のことをクロージャと呼ぶことが多いが
JavaScriptの関数は全部クロージャなのでc2自体もクロージャ
一般的にはc2が返してるような関数のことをクロージャと呼ぶことが多いが
JavaScriptの関数は全部クロージャなのでc2自体もクロージャ
4デフォルトの名無しさん (ワッチョイ df4e-9n+R [210.138.216.243])
2021/11/10(水) 16:02:48.18ID:ABhSQgxq0 なるほど
5デフォルトの名無しさん (ワッチョイ 5f21-+Epa [222.230.61.102])
2021/11/10(水) 17:50:22.23ID:KxrU4/8D06デフォルトの名無しさん (ワッチョイ ff46-H2rd [111.98.111.65])
2021/11/10(水) 18:59:16.59ID:l7XWnHd40 過去スレみれねー
7デフォルトの名無しさん (ワッチョイ 5f21-+Epa [222.230.61.102])
2021/11/11(木) 11:19:40.42ID:FWyFKZol0 前スレで誤字があったので訂正と
クロージャーに関してわかりやすく説明しときます
closerは誤りでclouserでした
クロージャーに関してわかりやすく説明しときます
closerは誤りでclouserでした
8デフォルトの名無しさん (ブーイモ MM83-WKYw [210.138.176.182])
2021/11/11(木) 11:24:24.80ID:vTNkP19HM 末尾セミコロンはどうしたらいいですか?
9デフォルトの名無しさん (ワッチョイ 5f21-+Epa [222.230.61.102])
2021/11/11(木) 11:47:50.28ID:FWyFKZol0 【クロージャー】
クロージャーはJSの関数に下記の仕組みを持たせるための要素のセットです
・関数内部をクローズにする(外部から直接アクセスできない)
・関数からは外部のプロパティにアクセスできる
この仕組みを作るものがクロージャーです
クロージャーの要素は、おおざっぱに関数自身、関数内情報、関数外部を参照するポインタで、
この要素のセットをクロージャーと呼びます
【外部ポインタの働きと内部情報の動きの確認】
<サンプルコード>
function f1(){ let c=0;return c++; }
function f2(){ let c=0;return ()=>{let s=0;return [c++,s++];} }
let f3=f2() ;
1 f1() ;f1() ;console.log(f1());
2 f2()();f2()();console.log(f2()());
3 f3() ;f3() ;console.log(f3());
<結果出力>
1 c:0
2 c:0 s:0
3 c:2 s:0
ここで外部への参照ポインタをouterとします
f1のクロージャーは、{関数f1 return c}{変数c}{outer(global}
f2のクロージャーは、{関数f2 return function}{変数c}{outer(global}
f2のアローの場合、 {無名 return [c,s]}{変数s}{outer(f2)}
クロージャーはJSの関数に下記の仕組みを持たせるための要素のセットです
・関数内部をクローズにする(外部から直接アクセスできない)
・関数からは外部のプロパティにアクセスできる
この仕組みを作るものがクロージャーです
クロージャーの要素は、おおざっぱに関数自身、関数内情報、関数外部を参照するポインタで、
この要素のセットをクロージャーと呼びます
【外部ポインタの働きと内部情報の動きの確認】
<サンプルコード>
function f1(){ let c=0;return c++; }
function f2(){ let c=0;return ()=>{let s=0;return [c++,s++];} }
let f3=f2() ;
1 f1() ;f1() ;console.log(f1());
2 f2()();f2()();console.log(f2()());
3 f3() ;f3() ;console.log(f3());
<結果出力>
1 c:0
2 c:0 s:0
3 c:2 s:0
ここで外部への参照ポインタをouterとします
f1のクロージャーは、{関数f1 return c}{変数c}{outer(global}
f2のクロージャーは、{関数f2 return function}{変数c}{outer(global}
f2のアローの場合、 {無名 return [c,s]}{変数s}{outer(f2)}
10デフォルトの名無しさん (ワッチョイ 5f21-+Epa [222.230.61.102])
2021/11/11(木) 11:48:17.36ID:FWyFKZol0 コード1では、f1を2回呼びますが、関数呼び出し1回につき、1つの(別々の)クロージャーが生成されます
同じ変数名のcであっても、別物のcとなります
ですから、cはインクリメントされずに0となります
コード2ではf2から戻されるアロー関数を複数回呼び出しますが
関数の呼び出し1回につき、別々のクロージャーが生成されますので
上記と同じようにcは0になります
コード3では、f2から戻されるアロー関数を変数f3に代入し、それを複数回呼び出します
呼び出しのたびに別々のクロージャーが生成されますが
外部への参照は、outer(f2)なので、同じcを参照していますので
複数回呼び出すとcをインクリメントします
一方でアロー関数内の変数sは、コード1や2の説明と同じでインクリメントされません
同じ変数名のcであっても、別物のcとなります
ですから、cはインクリメントされずに0となります
コード2ではf2から戻されるアロー関数を複数回呼び出しますが
関数の呼び出し1回につき、別々のクロージャーが生成されますので
上記と同じようにcは0になります
コード3では、f2から戻されるアロー関数を変数f3に代入し、それを複数回呼び出します
呼び出しのたびに別々のクロージャーが生成されますが
外部への参照は、outer(f2)なので、同じcを参照していますので
複数回呼び出すとcをインクリメントします
一方でアロー関数内の変数sは、コード1や2の説明と同じでインクリメントされません
11デフォルトの名無しさん (ワッチョイ 5f21-+Epa [222.230.61.102])
2021/11/11(木) 11:48:37.71ID:FWyFKZol0 【関数はクロージャーか?】
クロージャーは関数ではありませんし
関数はクロージャーではありません
関数内をクローズにし、外部参照を持たせる、という仕組みをつくるための
関数、内部情報、外部参照ポインタのセットがクロージャーです
【言語は多数者が正しい】
f2で戻される無名関数をクロージャーと呼ぶ人がいるのは
クロージャーの説明のために多用されていることで
無名関数をクロージャーと誤解してしまったり
f1が外部からクローズ状態なので、f1がクロージャーなんだと
そう理解してる人が多かったりしています
クロージャーという言語の用法に関して
何が正しいのかは、それぞれの立場を主張する人数によって
決定することが正しいのかもしれません
以上で訂正とまとめを終わります
クロージャーは関数ではありませんし
関数はクロージャーではありません
関数内をクローズにし、外部参照を持たせる、という仕組みをつくるための
関数、内部情報、外部参照ポインタのセットがクロージャーです
【言語は多数者が正しい】
f2で戻される無名関数をクロージャーと呼ぶ人がいるのは
クロージャーの説明のために多用されていることで
無名関数をクロージャーと誤解してしまったり
f1が外部からクローズ状態なので、f1がクロージャーなんだと
そう理解してる人が多かったりしています
クロージャーという言語の用法に関して
何が正しいのかは、それぞれの立場を主張する人数によって
決定することが正しいのかもしれません
以上で訂正とまとめを終わります
12デフォルトの名無しさん (ワッチョイ 5f21-+Epa [222.230.61.102])
2021/11/11(木) 12:08:29.83ID:FWyFKZol0 >>8
javascript.infoでは
[ ]の前にセミコロンは想定していないため、前段と次段のコードが連続することが説明されてます
console.log(1)
[...'string'].forEach(console.log)
は
console.log(1)[...'string'].forEach(console.log)
と同じ扱いで、1を出力したのち、エラーになります
[]を使うときに思い出してください
javascript.infoでは
[ ]の前にセミコロンは想定していないため、前段と次段のコードが連続することが説明されてます
console.log(1)
[...'string'].forEach(console.log)
は
console.log(1)[...'string'].forEach(console.log)
と同じ扱いで、1を出力したのち、エラーになります
[]を使うときに思い出してください
13デフォルトの名無しさん (ワッチョイ 5f01-Q360 [126.145.174.156])
2021/11/11(木) 13:44:12.02ID:PJUcZthZ0 >>7
closureでは?
closureでは?
14デフォルトの名無しさん (ワッチョイ ffdb-H2rd [217.178.96.78])
2021/11/11(木) 14:51:22.63ID:69bvz9620 スジャータ
15デフォルトの名無しさん (ブーイモ MM0f-8Kye [163.49.200.151])
2021/11/11(木) 16:11:30.72ID:+2WcRgNnM クロージャーに「関数内部をクローズにする」なんて意味はないよ
16デフォルトの名無しさん (ワッチョイ 7ff0-+Epa [61.205.223.183])
2021/11/11(木) 16:24:36.04ID:YbaQuGpg0 JSのクロージャーってどういう意味なの?
17デフォルトの名無しさん (ワッチョイ 7ff0-+Epa [61.205.223.183])
2021/11/11(木) 16:26:10.03ID:YbaQuGpg0 9の長い長い説明はまったくもって的外れ?
18デフォルトの名無しさん (ワッチョイ ff46-H2rd [111.98.111.65])
2021/11/11(木) 18:44:36.77ID:a2zl13Hx0 ふーん、なるほどねぇ
19デフォルトの名無しさん (ワッチョイ ff46-H2rd [111.98.111.65])
2021/11/11(木) 19:03:41.76ID:a2zl13Hx0 ||クロージャーは、組み合わされた(囲まれた)関数と、
||その周囲の状態(レキシカル環境)への参照の組み合わせです。
||言い換えれば、クロージャは内側の関数から外側の関数スコープへのアクセスを提供します。
||(MDN)
「関数の内から関数の外を参照できる、参照権限(参照できる状態(仕組み))」ということだろ!!!
これできめ!
||その周囲の状態(レキシカル環境)への参照の組み合わせです。
||言い換えれば、クロージャは内側の関数から外側の関数スコープへのアクセスを提供します。
||(MDN)
「関数の内から関数の外を参照できる、参照権限(参照できる状態(仕組み))」ということだろ!!!
これできめ!
20デフォルトの名無しさん (ワッチョイ 5f01-lK5T [126.242.217.11])
2021/11/11(木) 19:41:41.77ID:CFwD9UgS0 クロージャは関数閉包のこと
関数の中に関数が内包された状態を指す
外側の関数をエンクロージャと呼ぶが、クロージャ=関数ではない
関数の中に関数が内包された状態を指す
外側の関数をエンクロージャと呼ぶが、クロージャ=関数ではない
21デフォルトの名無しさん (ワッチョイ ff2d-+Epa [121.102.71.88])
2021/11/11(木) 20:24:37.12ID:eeb4OqXn0 現在のスコープに変数が見つからなければ、どんどん外のスコープに変数を探しに行って
最終的にwindowまで探しに行ってくれる機能のことをクロージャと呼ぶ
かな?
最終的にwindowまで探しに行ってくれる機能のことをクロージャと呼ぶ
かな?
22デフォルトの名無しさん (ワッチョイ 5f01-lK5T [126.242.217.11])
2021/11/11(木) 20:29:10.77ID:CFwD9UgS023デフォルトの名無しさん (ワッチョイ ffb0-QVGU [153.219.213.62])
2021/11/11(木) 21:31:01.83ID:P2a3zHOn0 Promiseの状態(pending/fullfilled/rejected)って外から取得できないんだっけ?
探しても方法が見つからな。
探しても方法が見つからな。
24デフォルトの名無しさん (ブーイモ MM4f-8Kye [133.159.152.241])
2021/11/11(木) 22:17:06.64ID:9vb0JKHxM MDNの訳が微妙すぎると思ったら原文も同じだった
A closure is the combination of a function with references to its surrounding state.
か
A closure is a function bundled together with references to its surrounding state.
のどっちかにしたかったんだろう
A closure is the combination of a function with references to its surrounding state.
か
A closure is a function bundled together with references to its surrounding state.
のどっちかにしたかったんだろう
25デフォルトの名無しさん (ワッチョイ ff46-H2rd [111.98.111.65])
2021/11/11(木) 22:18:41.74ID:a2zl13Hx026デフォルトの名無しさん (ワッチョイ ff46-H2rd [111.98.111.65])
2021/11/11(木) 22:22:39.31ID:a2zl13Hx0 >>24
JSの設計のあいまいさを感じられるな
JSの設計のあいまいさを感じられるな
27デフォルトの名無しさん (ブーイモ MM4f-8Kye [133.159.150.0])
2021/11/11(木) 22:44:02.25ID:/xlmv84EM28デフォルトの名無しさん (ワッチョイ 6e46-wd7R [111.98.111.65])
2021/11/12(金) 07:15:12.60ID:JgN/83EX0 それを読んでも統一見解が得られづらいからこうなってるってわかる?
29デフォルトの名無しさん (ワッチョイ 6e46-wd7R [111.98.111.65])
2021/11/12(金) 07:25:05.37ID:JgN/83EX0 でもまぁ一連のやり取りで
環境レコードや外部参照チェーンやスコープの復習ができたということで
この部分に関しては、脱素人になったわけだ、おめでとー
環境レコードや外部参照チェーンやスコープの復習ができたということで
この部分に関しては、脱素人になったわけだ、おめでとー
30デフォルトの名無しさん (ワッチョイ bd10-HV3m [180.12.82.129])
2021/11/14(日) 19:04:13.43ID:y8V9oC250 canvasでcontext.lineWidth=1;にして直線を描いても幅が1にならなくて2ピクセル分の太さになってしまいます
どうすれば幅1の直線が描けますか?
どうすれば幅1の直線が描けますか?
31デフォルトの名無しさん (ワッチョイ 4d01-gBK2 [126.243.242.148])
2021/11/14(日) 19:57:25.52ID:oSBO5A5Z0 >>25
言語仕様に言及するのなら、「ECMAScriptにクロージャは存在しない」が正解
> グローバル内に宣言された関数も、囲まれた関数なんだよ
そんな仕様はない
クロージャなんて概念は忘れて、変数、スコープ、関数の仕組みを覚える方が正しい理解に繋がる
言語仕様に言及するのなら、「ECMAScriptにクロージャは存在しない」が正解
> グローバル内に宣言された関数も、囲まれた関数なんだよ
そんな仕様はない
クロージャなんて概念は忘れて、変数、スコープ、関数の仕組みを覚える方が正しい理解に繋がる
32デフォルトの名無しさん (ワッチョイ f661-lRA9 [153.160.97.54])
2021/11/14(日) 20:00:15.95ID:g8AzdeEc033デフォルトの名無しさん (ワッチョイ 4d01-gBK2 [126.243.242.148])
2021/11/14(日) 20:54:05.86ID:oSBO5A5Z0 >>28
クロージャで統一見解といえるのは「クロージャ=関数が入れ子になった状態」だけ
そこに機能的価値を見いだそうとするなら「クロージャという名の機能は存在しない」だ
機能的には別の機能で実装されていて、
関数を入れ子にした結果、それらの機能が便利な状況を作り出しているに過ぎない
学習目的なら「クロージャ」は忘れた方がいい
クロージャで統一見解といえるのは「クロージャ=関数が入れ子になった状態」だけ
そこに機能的価値を見いだそうとするなら「クロージャという名の機能は存在しない」だ
機能的には別の機能で実装されていて、
関数を入れ子にした結果、それらの機能が便利な状況を作り出しているに過ぎない
学習目的なら「クロージャ」は忘れた方がいい
34デフォルトの名無しさん (ブーイモ MM8e-o9bf [133.159.149.178])
2021/11/14(日) 21:16:07.13ID:Ec4oDlx8M 関数が入れ子かどうかなんて関係ないよ
理解してない人たち同士で"統一見解"を求めようとするからドツボに嵌ってる
理解してない人たち同士で"統一見解"を求めようとするからドツボに嵌ってる
35デフォルトの名無しさん (ワッチョイ 4d01-gBK2 [126.243.242.148])
2021/11/14(日) 21:27:55.45ID:oSBO5A5Z0 >>34
仕様にない単語に、統一見解を求めるのが間違いなんだろうな
仕様にない単語に、統一見解を求めるのが間違いなんだろうな
36デフォルトの名無しさん (ワッチョイ f6b0-WW/G [153.219.213.62])
2021/11/14(日) 21:47:51.05ID:ybz8bu8o0 とはいえ「クロージャ=関数が入れ子になった状態」って定義は明らかに間違いだろう。
37デフォルトの名無しさん (ブーイモ MM5e-o9bf [163.49.204.253])
2021/11/14(日) 21:57:27.13ID:pXm3Ey2jM ECMAの仕様にはAbstruct Closure Specification Typeが定義されてるし、関数定義周りでclosureって言葉は繰り返し出てくるよ
まあでも仕様型みたいな大半の人が知らなくても困らないような詳細知識よりも
クロージャとは一般的にどういうものを指すのかという基礎的知識を身につけたほうがいい
まあでも仕様型みたいな大半の人が知らなくても困らないような詳細知識よりも
クロージャとは一般的にどういうものを指すのかという基礎的知識を身につけたほうがいい
38デフォルトの名無しさん (ワッチョイ 4d01-gBK2 [126.243.242.148])
2021/11/14(日) 23:10:09.15ID:oSBO5A5Z039デフォルトの名無しさん (ワッチョイ da02-wd7R [59.129.58.203])
2021/11/15(月) 00:30:22.12ID:gtEjBgCa0 ワロスw
40デフォルトの名無しさん (ワッチョイ 6e46-wd7R [111.98.111.65])
2021/11/15(月) 07:13:10.30ID:slHpwqED0 JSのクロージャーは
関数内のプロパティに、外部から直接アクセスできないが
関数内から外部への参照はチェーンしているという状態をいう
外部Lexicalへの参照を持たない関数型は
関数ではあるけどクロージャーにならない
入り子になっていても
もうクロージャはこれで終わり
クロージャーに貴重な人生を奪われるなよ?
関数内のプロパティに、外部から直接アクセスできないが
関数内から外部への参照はチェーンしているという状態をいう
外部Lexicalへの参照を持たない関数型は
関数ではあるけどクロージャーにならない
入り子になっていても
もうクロージャはこれで終わり
クロージャーに貴重な人生を奪われるなよ?
4140 (ワッチョイ 6e46-wd7R [111.98.111.65])
2021/11/15(月) 07:21:28.04ID:slHpwqED0 状態ではなく仕組みがいいな
クロージャーはオブジェクトセットという表現が適してる例が散見されるみたいだし
必要なオブジェクトセットを使ってnativeでクロージャーを実現してるんだから
クロージャーは仕組み!これできめ!
クロージャーはオブジェクトセットという表現が適してる例が散見されるみたいだし
必要なオブジェクトセットを使ってnativeでクロージャーを実現してるんだから
クロージャーは仕組み!これできめ!
42デフォルトの名無しさん (ワッチョイ 6e46-wd7R [111.98.111.65])
2021/11/15(月) 07:45:40.57ID:slHpwqED0 >>37
var a=0;
let b=1;
let c='C';
function func(){
let c=2;
return [a,b,c];
}
func.a='A';
console.log(
[window.a,window.b,window.c],
[a,b,c],
func(),
[func().a,func().b,func().c],
[func.a,func.b,func.c]
);
この出力を理解するにはクロージャーの仕組みの理解は必要でない?
var a=0;
let b=1;
let c='C';
function func(){
let c=2;
return [a,b,c];
}
func.a='A';
console.log(
[window.a,window.b,window.c],
[a,b,c],
func(),
[func().a,func().b,func().c],
[func.a,func.b,func.c]
);
この出力を理解するにはクロージャーの仕組みの理解は必要でない?
43デフォルトの名無しさん (ワッチョイ 4d01-gBK2 [126.161.181.74])
2021/11/15(月) 19:30:23.51ID:rDFc2Y3T044デフォルトの名無しさん (ワッチョイ eec3-lRA9 [159.28.152.184])
2021/11/15(月) 21:15:21.66ID:eCFTqC9o0 すいません、下記のようにボタンを押した時の処理をあらかじめ一つずつJSで書いて書いてるんですが、
ボタンの種類と数が莫大な量になるとJSを書くのが大変になってきました
逆にクリックされた任意のボタンオブジェクトを変数に入れる方法ってあったりしますでしょうか
(ボタンがクリックされる→クリックされたボタンのclassやvalueやtextを調べて目的の処理、という順番に変更したい)
下記が現状のコードです
・html
<button class="BtnA" value="固有の番号">ボタンAタイプ</button>
<button class="BtnA" value="固有の番号">ボタンAタイプ</button>
<button class="BtnB" value="固有の番号">ボタンBタイプ</button>
・js
const BtnA = document.getElementsByClassName('BtnA');
for(i=0;BtnA.length>i;i++){
BtnA[i].addEventListener('click', () =>{
//ここに押された時の処理を書く
});
}
const BtnB = document.getElementsByClassName('BtnB');
以下BtnAのコードとほぼ同様
ボタンの種類と数が莫大な量になるとJSを書くのが大変になってきました
逆にクリックされた任意のボタンオブジェクトを変数に入れる方法ってあったりしますでしょうか
(ボタンがクリックされる→クリックされたボタンのclassやvalueやtextを調べて目的の処理、という順番に変更したい)
下記が現状のコードです
・html
<button class="BtnA" value="固有の番号">ボタンAタイプ</button>
<button class="BtnA" value="固有の番号">ボタンAタイプ</button>
<button class="BtnB" value="固有の番号">ボタンBタイプ</button>
・js
const BtnA = document.getElementsByClassName('BtnA');
for(i=0;BtnA.length>i;i++){
BtnA[i].addEventListener('click', () =>{
//ここに押された時の処理を書く
});
}
const BtnB = document.getElementsByClassName('BtnB');
以下BtnAのコードとほぼ同様
45デフォルトの名無しさん (ワッチョイ 6e46-wd7R [111.98.111.65])
2021/11/15(月) 22:27:30.97ID:slHpwqED0 >>44
クラス数×value数×text種類数だけ処理数があるってことですか?
クラス数×value数×text種類数だけ処理数があるってことですか?
46デフォルトの名無しさん (ワッチョイ f62c-FDGb [153.136.94.40])
2021/11/15(月) 22:58:29.48ID:OfX77+Sf0 class="BtnA BtnAll"
class="BtnB BtnAll"
みたいに、BtnAll で、すべてのボタンの処理をまとめれば?
JavaScript のスレは、この板ではなく、web制作管理板の方へ書き込んでください!
この板のスレは、荒らしが出た時に、緊急的に立てられたものだから
class="BtnB BtnAll"
みたいに、BtnAll で、すべてのボタンの処理をまとめれば?
JavaScript のスレは、この板ではなく、web制作管理板の方へ書き込んでください!
この板のスレは、荒らしが出た時に、緊急的に立てられたものだから
47デフォルトの名無しさん (ワッチョイ eec3-lRA9 [159.28.152.184])
2021/11/16(火) 00:43:22.12ID:Ca8LCMpZ048デフォルトの名無しさん (ワッチョイ 4d01-gBK2 [126.161.181.74])
2021/11/16(火) 07:19:53.13ID:L8BSEbG1049デフォルトの名無しさん (ワッチョイ 5af0-lRA9 [219.121.80.140])
2021/11/16(火) 13:14:21.44ID:x6nbCzKN0 >>44
処理数が多すぎて管理効率が悪くなってるってことかな?
ボタン数×(value数-1)×(str数-2)の数の処理があって
保守管理しづらいというのなら下記の考え方はどうでしょう?
変数buttonにはボタンオブジェクト
変数getFuncにはクリックイベント処理を固有番号で紐づける
変数buttonをfor of で回して、固有番号で分岐して、リスナーを設定する
button=document.getelementsbytagname('button')
getFunc={
固有番号:function(){}
固有番号:function(){},,,}
for(let i of button){
switch(i.value){
case '固有番号':i.addEventlistener('click',getFunc[固有番号]);break;
処理数が多すぎて管理効率が悪くなってるってことかな?
ボタン数×(value数-1)×(str数-2)の数の処理があって
保守管理しづらいというのなら下記の考え方はどうでしょう?
変数buttonにはボタンオブジェクト
変数getFuncにはクリックイベント処理を固有番号で紐づける
変数buttonをfor of で回して、固有番号で分岐して、リスナーを設定する
button=document.getelementsbytagname('button')
getFunc={
固有番号:function(){}
固有番号:function(){},,,}
for(let i of button){
switch(i.value){
case '固有番号':i.addEventlistener('click',getFunc[固有番号]);break;
50デフォルトの名無しさん (ワッチョイ 5af0-lRA9 [219.121.80.140])
2021/11/16(火) 13:26:34.28ID:x6nbCzKN0 >>44
上の説明だとわかりづらいかな
let getButton=function(){button=document.getElementsByTagName('button');}
// valueの固有番号毎に処理を設定
let addEvent=function(){
for(let i of button){
switch (i.value){
case '101':i.addEventListener('click',addFunc[101]);break;}}}
let button;
// 関数をまとめ置く
let addFunc={
101:function(){console.log(this.value)},
102:function(){console.log(this.className)},}
上の説明だとわかりづらいかな
let getButton=function(){button=document.getElementsByTagName('button');}
// valueの固有番号毎に処理を設定
let addEvent=function(){
for(let i of button){
switch (i.value){
case '101':i.addEventListener('click',addFunc[101]);break;}}}
let button;
// 関数をまとめ置く
let addFunc={
101:function(){console.log(this.value)},
102:function(){console.log(this.className)},}
51デフォルトの名無しさん (ワッチョイ 6e46-wd7R [111.98.111.65])
2021/11/16(火) 19:57:25.19ID:ES2RXggH0 switchの中をObject.keys().forEach()でまわして
addFunc[+i.value]で作り直したらすっきりしそう
いじりたくなるコードだけど可読性を考えたらこれはこれなのか
addFunc[+i.value]で作り直したらすっきりしそう
いじりたくなるコードだけど可読性を考えたらこれはこれなのか
52デフォルトの名無しさん (ワッチョイ eecb-wd7R [223.132.4.34])
2021/11/16(火) 22:10:30.79ID:iK58PKMQ0 リアクトでのスマホアプリ開発なんですが、エミュレータは何がお勧めですか?
というのも実機を持っていません。
また、実機を使う場合はアンドロイド5などは使い物になりますか?
古い機種に合わせて作っても、上位互換性のないソフトになるんでしょうか?
というのも実機を持っていません。
また、実機を使う場合はアンドロイド5などは使い物になりますか?
古い機種に合わせて作っても、上位互換性のないソフトになるんでしょうか?
53デフォルトの名無しさん (ワッチョイ 6e46-wd7R [111.98.111.65])
2021/11/17(水) 07:47:58.17ID:/ZY56h0o0 >>52
「React andoridアプリ開発 エミュレータ」で検索どうぞ
「api16 開発 不具合 or 互換性」で検索どうぞ
これがベストっていう答えがないから
開発者が自分で試行錯誤して答えを出す問題かな
互換性の問題は作るものによっても違うからね
jellyならそんな問題ないとおもうけど
「React andoridアプリ開発 エミュレータ」で検索どうぞ
「api16 開発 不具合 or 互換性」で検索どうぞ
これがベストっていう答えがないから
開発者が自分で試行錯誤して答えを出す問題かな
互換性の問題は作るものによっても違うからね
jellyならそんな問題ないとおもうけど
54デフォルトの名無しさん (ワッチョイ eecb-wd7R [223.132.4.34])
2021/11/17(水) 10:05:17.45ID:syddc80l0 >>53
jellyッテの調べてみますです
jellyッテの調べてみますです
55デフォルトの名無しさん (ワッチョイ eecb-wd7R [223.132.4.34])
2021/11/17(水) 14:33:19.47ID:syddc80l056デフォルトの名無しさん (テテンテンテン MM8e-IL+H [133.106.50.1])
2021/11/17(水) 17:43:10.56ID:+3kxan1mM androidの話はandroid開発スレで聞いてくれ
多分実機なしは無謀、5は古すぎでFA
多分実機なしは無謀、5は古すぎでFA
57デフォルトの名無しさん (ワッチョイ eecb-wd7R [223.132.4.34])
2021/11/18(木) 06:50:53.17ID:TN6Tj1JF0 >>56
了解す
了解す
58デフォルトの名無しさん (ワッチョイ 6e46-wd7R [111.98.111.65])
2021/11/18(木) 07:17:54.57ID:DvlppRWo0 そんなことはない
android5で使えるアプリが目的なんだから
android5で作成するのがベスト
reactNativeエンジンがどうエンコードして
androidで動かしてるのか分らんので
今のreactでandroid5のどの機能を使えるのか
全然わからんけどな
android5で使えるアプリが目的なんだから
android5で作成するのがベスト
reactNativeエンジンがどうエンコードして
androidで動かしてるのか分らんので
今のreactでandroid5のどの機能を使えるのか
全然わからんけどな
59デフォルトの名無しさん (アウアウクー MM75-/vwC [36.11.224.2 [上級国民]])
2021/11/18(木) 07:27:37.77ID:dAtvmzd9M60デフォルトの名無しさん (ワッチョイ 6e46-wd7R [111.98.111.65])
2021/11/18(木) 19:32:55.35ID:DvlppRWo0 API21からなんだな
61デフォルトの名無しさん (ワッチョイ 5b10-MXQP [180.12.82.129])
2021/11/19(金) 12:50:28.04ID:zuBm2fI80 文字列化した数式を計算させるにはどうやればいいんですか?
test("x*x+10",2);
function test(suushiki_str,x){
var y = suushiki_str(この場合x*x+10)でx=2を代入;
retuen(y)
}
こういうのがやりたいんだけど
test("x*x+10",2);
function test(suushiki_str,x){
var y = suushiki_str(この場合x*x+10)でx=2を代入;
retuen(y)
}
こういうのがやりたいんだけど
62デフォルトの名無しさん (ワッチョイ 0e2d-9IQd [121.102.71.88])
2021/11/19(金) 12:55:11.51ID:CS9Fe95O0 function test(suushiki_str,x){
return eval(suushiki_str)
}
return eval(suushiki_str)
}
63デフォルトの名無しさん (ワッチョイ 5b10-MXQP [180.12.82.129])
2021/11/19(金) 13:17:09.00ID:zuBm2fI80 >>62
ありがとー
ありがとー
64デフォルトの名無しさん (ブーイモ MM26-1svM [163.49.209.232])
2021/11/19(金) 13:41:30.73ID:5MAibbygM 何がしたいのか分からないけど、設計自体が間違ってる気がするけどなあ
65デフォルトの名無しさん (ワッチョイ 6301-wksM [60.74.72.59])
2021/11/19(金) 21:34:02.13ID:FkG8ODwP0 eval is evil
evalをそのまま使う事はまずないな
evalをそのまま使う事はまずないな
66デフォルトの名無しさん (ワッチョイ 7646-+VBe [111.98.111.65])
2021/11/20(土) 07:02:21.23ID:0rDRyz8e0 evalを使えとなw
67デフォルトの名無しさん (ワッチョイ 7646-+VBe [111.98.111.65])
2021/11/20(土) 07:04:06.68ID:0rDRyz8e0 evalが生きていること自体、JSが未成熟の証
68デフォルトの名無しさん (ワッチョイ 7646-+VBe [111.98.111.65])
2021/11/20(土) 07:46:31.86ID:0rDRyz8e0 >>61
evalは非推奨だから
function test(fun,x){
return fun(x);
}
test(function(x){return x*x+10},5);
としときましょう
evalは非推奨だから
function test(fun,x){
return fun(x);
}
test(function(x){return x*x+10},5);
としときましょう
69デフォルトの名無しさん (ワッチョイ 5b10-MXQP [180.12.82.129])
2021/11/20(土) 18:55:29.17ID:BgP9vp1q0 evalって外部から入力させなければ使っても問題ないんじゃないの?
70デフォルトの名無しさん (ワッチョイ 7646-+VBe [111.98.111.65])
2021/11/20(土) 18:57:47.86ID:0rDRyz8e0 使いたければつかったらいいよ
71デフォルトの名無しさん (オッペケ Srbb-eA7U [126.194.225.246])
2021/11/20(土) 19:05:52.91ID:Gd107dzfr やっぱjavascriptできるとなんでも作れるな
めちゃくちゃ便利だわ
めちゃくちゃ便利だわ
72デフォルトの名無しさん (ワッチョイ 7646-+VBe [111.98.111.65])
2021/11/20(土) 19:54:48.88ID:0rDRyz8e0 ブラウザ限定だし
HTMLと一緒でメンテナンスとか関係なければな
もしJSで金融システムみたいな厳格なシステム作ろうとしたら
開発者はみんな気がくるってしまうんじゃないかな
HTMLと一緒でメンテナンスとか関係なければな
もしJSで金融システムみたいな厳格なシステム作ろうとしたら
開発者はみんな気がくるってしまうんじゃないかな
73デフォルトの名無しさん (オッペケ Srbb-eA7U [126.194.225.246])
2021/11/20(土) 19:57:24.06ID:Gd107dzfr マジでjavascriptだけでめちゃくちゃ儲けてる
使いこなせばガチで素晴らしい
使いこなせばガチで素晴らしい
74デフォルトの名無しさん (ワッチョイ 372f-IS5D [218.220.251.107])
2021/11/20(土) 20:02:17.98ID:4VXr5Xxs0 仕事で使ってるサイトをJavascriptで自動化できませんか?
たとえば出勤と退勤のときの時間を管理するのに「勤次郎」というサイトを使ってるんだけど
毎回ログインしたあといちいち入力するのが面倒くさい。
たとえば出勤と退勤のときの時間を管理するのに「勤次郎」というサイトを使ってるんだけど
毎回ログインしたあといちいち入力するのが面倒くさい。
75デフォルトの名無しさん (ワッチョイ 7646-+VBe [111.98.111.65])
2021/11/20(土) 20:22:43.02ID:0rDRyz8e0 >>74
データーの保存はどこを想定してますか?
データーの保存はどこを想定してますか?
76デフォルトの名無しさん (ワッチョイ 035c-+VBe [220.212.121.177])
2021/11/20(土) 20:24:55.79ID:b48agA+u0 seleniumでいいじゃん
77デフォルトの名無しさん (オッペケ Srbb-eA7U [126.194.225.246])
2021/11/20(土) 20:46:00.92ID:Gd107dzfr 認証しないシステムなんて攻撃か踏み台にされるとか考えないのか
78デフォルトの名無しさん (ワッチョイ 7f4e-8G9t [210.138.216.243])
2021/11/20(土) 21:05:08.87ID:t4XZd1270 定型をポチポチ入力してボタン押すのがダルい程度ならブックマークレットでいいだろ
79デフォルトの名無しさん (ワッチョイ 4e2c-iAR7 [153.136.94.40])
2021/11/21(日) 08:08:40.09ID:zYUtuXs90 >>74
ブラウザを自動操作なら、iMacros は?
例えば漏れは、Ruby のselenium-webdriver で、
ブラウザを自動操作して、ヤフーにログインしてる
ユーザー名を入力して、ボタンを押す。
パスワードを入力して、ボタンを押すとか
require "selenium-webdriver"
options = Selenium::WebDriver::Chrome::Options.new
options.add_option( :detach, true ) # ブラウザを切り離す
options.add_argument( '--start-maximized' ) # 画面最大
driver = Selenium::WebDriver.for :chrome, options: options
driver.manage.timeouts.implicit_wait = 10 # default timeout
driver.navigate.to "https://login.yahoo.co.jp/config/login_verify2?.src=ym"
element = driver.find_element(:id => "username")
element.send_key "ユーザー名"
driver.find_element(:id => "btnNext").click # ボタンを押す
element = driver.find_element(:id => "passwd")
element.send_key "パスワード"
driver.find_element(:id => "btnSubmit").click # ボタンを押す
ブラウザを自動操作なら、iMacros は?
例えば漏れは、Ruby のselenium-webdriver で、
ブラウザを自動操作して、ヤフーにログインしてる
ユーザー名を入力して、ボタンを押す。
パスワードを入力して、ボタンを押すとか
require "selenium-webdriver"
options = Selenium::WebDriver::Chrome::Options.new
options.add_option( :detach, true ) # ブラウザを切り離す
options.add_argument( '--start-maximized' ) # 画面最大
driver = Selenium::WebDriver.for :chrome, options: options
driver.manage.timeouts.implicit_wait = 10 # default timeout
driver.navigate.to "https://login.yahoo.co.jp/config/login_verify2?.src=ym"
element = driver.find_element(:id => "username")
element.send_key "ユーザー名"
driver.find_element(:id => "btnNext").click # ボタンを押す
element = driver.find_element(:id => "passwd")
element.send_key "パスワード"
driver.find_element(:id => "btnSubmit").click # ボタンを押す
80デフォルトの名無しさん (ワッチョイ 5b10-MXQP [180.12.82.129])
2021/11/21(日) 18:31:02.25ID:8Vc5P3wO0 >>768
それだと数式を""で囲んで文字列にすると計算できない
それだと数式を""で囲んで文字列にすると計算できない
81デフォルトの名無しさん (ワッチョイ 5b10-MXQP [180.12.82.129])
2021/11/21(日) 18:31:35.22ID:8Vc5P3wO0 >>68だ
82デフォルトの名無しさん (ワッチョイ cedb-+VBe [217.178.96.78])
2021/11/21(日) 19:15:18.38ID:s72Bw1rA0 classが非推奨になるのはいつですか?
83デフォルトの名無しさん (ワッチョイ 6301-wksM [60.74.72.59])
2021/11/21(日) 19:23:58.62ID:6CiZCeOJ0 >>82
その予定はない
その予定はない
84デフォルトの名無しさん (ワッチョイ 7646-+VBe [111.98.111.65])
2021/11/21(日) 21:16:08.25ID:CIU/fTVN085デフォルトの名無しさん (ワッチョイ 7f4e-8G9t [210.138.216.243])
2021/11/21(日) 21:19:33.19ID:QvzeRvg10 >>61
function test(suushiki_str, x){
var f = Function('x', 'return ' + suushiki_str);
return f(x);
}
test('x * x + 10' ,2);
//=> 14
function test(suushiki_str, x){
var f = Function('x', 'return ' + suushiki_str);
return f(x);
}
test('x * x + 10' ,2);
//=> 14
86デフォルトの名無しさん (オッペケ Srbb-eA7U [126.205.247.161])
2021/11/21(日) 22:55:28.72ID:EhgufZNWr javascriptが使えるとやりたいことが簡単にできる
87デフォルトの名無しさん (ワッチョイ cedb-+VBe [217.178.96.78])
2021/11/22(月) 11:19:44.15ID:svQfIHqM0 >>86
JavaScript最強伝説。
JavaScript最強伝説。
88デフォルトの名無しさん (オッペケ Srbb-eA7U [126.254.145.114])
2021/11/22(月) 14:30:42.59ID:zL7mhfu3r ブラウザで動く
LambdaやGoogle Functionsで動く
デスクトップアプリも作れる
OfficeWeb版やGASでも動く
インフラ構築不要で最強すぎるだろ
LambdaやGoogle Functionsで動く
デスクトップアプリも作れる
OfficeWeb版やGASでも動く
インフラ構築不要で最強すぎるだろ
89デフォルトの名無しさん (ワッチョイ cedb-+VBe [217.178.96.78])
2021/11/22(月) 16:46:08.87ID:svQfIHqM090デフォルトの名無しさん (オッペケ Srbb-eA7U [126.254.145.114])
2021/11/22(月) 16:48:25.46ID:zL7mhfu3r91デフォルトの名無しさん (ワッチョイ f6c3-9IQd [159.28.152.184])
2021/11/22(月) 17:43:25.62ID:+p8qnn8E0 すいません、下記のように読み込んだshiftJISのcsvファイルを
正規表現を使って置換しようとしてるのですがうまくいきません
文字コードの問題なのか指定したマッチパターン意外の色んな文字が勝手に置換されてしまいます
const requestCSV = new XMLHttpRequest();
requestCSV.overrideMimeType('text/plain; charset=Shift_JIS');//csvの文字コードがshiftJSであることは変更できない
requestCSV.addEventListener('load', (event) => {
const orgCSV = event.target.responseText;
tempKey="["+key+"]";//keyは変数を使う必要があります
keyName = new RegExp(tempKey, "g");//複数マッチさせる必要があります
result=orgCSV.replace(keyName, "ほげ");
}
正規表現オブジェクトを使わずにreplaceさせると問題なく動くのですが、
マッチパターンを変数にしたいのと、複数回以上にマッチさせるため g をつけるため、
正規表現オブジェクトを使わざるを得ない状態です。
どなたかアドバイスお願いできますでしょうか
正規表現を使って置換しようとしてるのですがうまくいきません
文字コードの問題なのか指定したマッチパターン意外の色んな文字が勝手に置換されてしまいます
const requestCSV = new XMLHttpRequest();
requestCSV.overrideMimeType('text/plain; charset=Shift_JIS');//csvの文字コードがshiftJSであることは変更できない
requestCSV.addEventListener('load', (event) => {
const orgCSV = event.target.responseText;
tempKey="["+key+"]";//keyは変数を使う必要があります
keyName = new RegExp(tempKey, "g");//複数マッチさせる必要があります
result=orgCSV.replace(keyName, "ほげ");
}
正規表現オブジェクトを使わずにreplaceさせると問題なく動くのですが、
マッチパターンを変数にしたいのと、複数回以上にマッチさせるため g をつけるため、
正規表現オブジェクトを使わざるを得ない状態です。
どなたかアドバイスお願いできますでしょうか
92デフォルトの名無しさん (ワッチョイ cedb-+VBe [217.178.96.78])
2021/11/22(月) 17:45:45.05ID:svQfIHqM0 >>90
Javaの方が分かりやすかった。
Javaの方が分かりやすかった。
93デフォルトの名無しさん (ワッチョイ 7f4e-8G9t [210.138.216.243])
2021/11/22(月) 18:41:55.55ID:kseOISZ70 Javaと比べたらJavaScriptのほうが文法複雑じゃないと思うが…
TypeScriptと混同してない?
TypeScriptと混同してない?
94デフォルトの名無しさん (ワッチョイ 7f4e-8G9t [210.138.216.243])
2021/11/22(月) 18:43:22.51ID:kseOISZ70 それかDOM APIをJavaScriptの文法に含むと勘違いしてるとか
95デフォルトの名無しさん (ブーイモ MM26-IS5D [163.49.208.33])
2021/11/22(月) 18:50:50.35ID:jaRoUi/NM Javaのほうが圧倒的にすっきりしている。
ほんとに両言語をちゃんと勉強したことあるか?
アルツハイマーでもこれくらい分かる。
ほんとに両言語をちゃんと勉強したことあるか?
アルツハイマーでもこれくらい分かる。
96デフォルトの名無しさん (ワッチョイ 4e61-9IQd [153.160.97.54])
2021/11/22(月) 18:53:04.86ID:yUT2zM6b0 >>91
keyを[]で囲む必要なし
keyを[]で囲む必要なし
97デフォルトの名無しさん (ワッチョイ 7646-+VBe [111.98.111.65])
2021/11/22(月) 18:54:55.94ID:LGR+CB3F0 >>94
古いJSとの互換性を取ろうとすると
古い文法も理解しないとならないからな
オブジェクトの生成も多種多様
JSの細かいところまで理解しようとすると
javaやpythonとかのほうが整理されていてわかりやすい
let obj var objのLexicalの違いや
let obj={}
let fun=function(){}
function fun(){}
class cs extends fun{}
class cs{
__proto__=a;
}
obj.constructor.prorotype=obj
newObjext ,Object.create
こんなのシンプルなわけがない
と92はいいたんだと思う
古いJSとの互換性を取ろうとすると
古い文法も理解しないとならないからな
オブジェクトの生成も多種多様
JSの細かいところまで理解しようとすると
javaやpythonとかのほうが整理されていてわかりやすい
let obj var objのLexicalの違いや
let obj={}
let fun=function(){}
function fun(){}
class cs extends fun{}
class cs{
__proto__=a;
}
obj.constructor.prorotype=obj
newObjext ,Object.create
こんなのシンプルなわけがない
と92はいいたんだと思う
98デフォルトの名無しさん (ワッチョイ f6c3-9IQd [159.28.152.184])
2021/11/22(月) 19:05:02.79ID:+p8qnn8E099デフォルトの名無しさん (ワッチョイ 7f4e-8G9t [210.138.216.243])
2021/11/22(月) 19:40:22.23ID:kseOISZ70 Java
class Main {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
JavaScript
console.log("Hello World!");
hello worldからしてこれだからな
あなたの「シンプル」の定義を見せてもらえないと…
class Main {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
JavaScript
console.log("Hello World!");
hello worldからしてこれだからな
あなたの「シンプル」の定義を見せてもらえないと…
100デフォルトの名無しさん (ワッチョイ 7646-+VBe [111.98.111.65])
2021/11/22(月) 20:19:16.63ID:LGR+CB3F0 >>99
JSのクラスは疑似クラス
他言語のClassと同じように扱えるように
functionを疑似的にclass表現できるようにしてるだけ
Javaと異なりJSはconstructorを有するオブジェクトの生成方法が沢山ある
それすら理解できずに、99の問いとは、、、もっとJSを勉強しようぜ
Javaのほうが圧倒的に整理され覚える文法が少ない
つか、JavaとJS、両方ともそこそこ使えたら
99みたいなこと言えないだろw
JSのクラスは疑似クラス
他言語のClassと同じように扱えるように
functionを疑似的にclass表現できるようにしてるだけ
Javaと異なりJSはconstructorを有するオブジェクトの生成方法が沢山ある
それすら理解できずに、99の問いとは、、、もっとJSを勉強しようぜ
Javaのほうが圧倒的に整理され覚える文法が少ない
つか、JavaとJS、両方ともそこそこ使えたら
99みたいなこと言えないだろw
101デフォルトの名無しさん (ワッチョイ 7646-+VBe [111.98.111.65])
2021/11/22(月) 20:26:36.75ID:LGR+CB3F0 >>99
もうちょっと言わせてもらえば
Javaは変数エラーをチェックしやすい言語設計
JSは変数エラーを無限に生成し得る言語設計
JSはマークアップを動的に処理することから発生し
高度な言語設計にしても互換性の問題から
古い文法を生かしているので、とても複雑怪奇になっている
そう表現したらわかるかな?
もうちょっと言わせてもらえば
Javaは変数エラーをチェックしやすい言語設計
JSは変数エラーを無限に生成し得る言語設計
JSはマークアップを動的に処理することから発生し
高度な言語設計にしても互換性の問題から
古い文法を生かしているので、とても複雑怪奇になっている
そう表現したらわかるかな?
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 習政権、高市首相への態度硬化 台湾有事発言で連日非難 中国 ★11 [ぐれ★]
- 日本損失1.7兆円に修正 中国渡航自粛の影響試算 [蚤の市★]
- NY円、一時1ユーロ=180円台まで下落…1999年のユーロ導入以来初 [蚤の市★]
- 国内ホテル、既にキャンセルも 訪日客関連業界、事態見守る ★3 [蚤の市★]
- 「どうしようもない」 ため息つくアジアの玄関口 中国の訪日自粛で−福岡市 [蚤の市★]
- 橋下徹氏 外務省幹部の訪中受け「口だけ番長」へ痛烈指摘 「喧嘩は日本の完敗…なんとかっこ悪い日本か」 [冬月記者★]
- 【実況】博衣こよりのえちえち朝こよ🧪 ★2
- 【実況】博衣こよりのえちえち朝こよ🧪
- カカロット、腰痛い
- 結局松本人志ノーダメージじゃん
- 【!?】高市早苗「靖国神社電撃参拝プラン」浮上!これもう戦争だろ… [481941988]
- 今朝も阿佐ヶ谷に住みたくて咽び泣いてる😭
