+ JavaScript の質問用スレッド vol.133 +

■ このスレッドは過去ログ倉庫に格納されています
2018/04/16(月) 00:09:43.45ID:???
JavaScript を自ら学ぶ人のための質問スレッドです。
次スレは>>950が(本スレで改善案があれば考慮して)立ててください

■規則/推奨ルール
・メール欄を空欄にし、名前にレス番を入れることを強く推奨(なりすまし防止)
・質問内容は具体的に。言葉だけでなく、出来る限り再現性を確認したサンプルコードの掲示。
・質問テンプレートの利用推奨。
・質問への「答え」だけでなく「意見」を出しても良い。

■禁止行為
・丸投げ質問
・迷惑スクリプトの質問
・オレオレ用語の使用(一般的な用語を使用する事)
・煽り、批判等の他人を不快にさせる行為(批判の代わりに「AよりBが良い」のような代案を出す事)

■質問テンプレート
【環境】OS, ブラウザをバージョンと共に記入してください。
【条件】期待する回答の条件を書いてください。
【何をしたのか】何をしたら問題の現象が発生するのか。再現手順を具体的に書いてください。
【エラーメッセージ】エラーメッセージがあれば正確に書き写してください。
【期待する結果】最終的にどういう結果を望んでいるのか、を書いてください。
【サンプルコード】現象を再現可能な最小限のコードを書いてください。
 1レスに収まらないならコード投稿サイトを利用してください。
 http://jsdo.it/ http://jsbin.com/ http://jsfiddle.net/ http://ideone.com/

■回答者へ
・回答には多様性があります。他人の回答を尊重してください
・動作ブラウザや環境が限られる場合は、それを明記してください
・他人の回答を批判する代わりに、自分ならこう書くという例を示してください
・質問者がJavaScriptでなければ実現できないと勘違いしてるなら、その否定としてHTMLとCSSで実装しても良い
・他人の回答を見たくないのであれば、文句をつける代わりにNGにして見えないようにしてください。文句をつける=荒らしです
2018/05/24(木) 08:46:04.44ID:???
パフォーマンスならforで書く。
ボトルネックにならないならforEachで書く。
書きやすいし読みやすいから。
2018/05/24(木) 08:51:16.54ID:???
比較して見ると、複雑な箇所が分かりやすいかもね

let i = 4;
while (i--) obj.a();

for (let i = 0; i < 4; i++) obj.a();

for (let v of [4,3,2,1]) obj.a();

[4,3,2,1].reduce(()=> obj.a());
655654
垢版 |
2018/05/24(木) 08:52:58.45ID:???
>>654は下にいく程、複雑化する
for-ofがforよりも良いという人はおそらくいない
reduceも機能の無駄遣い
2018/05/24(木) 08:54:28.60ID:???
>>647
おいおい、
obj.a();obj.a();obj.a();obj.a();

obj.a().a().a().a();
は全然ちがうんだが。
reduceの動作理解した上での批判ならまだしも、それじゃお前が理解できないものを僻みで批判してるだけじゃん。
657654
垢版 |
2018/05/24(木) 08:58:01.88ID:???
>>656
>>643に言及してるんだけど、流れが読めない人?
2018/05/24(木) 08:59:09.95ID:???
>>654
おいおい、
obj.a();obj.a();obj.a();obj.a();

obj.a().a().a().a();
は全然ちがうんだが。
お前が書いたやつは全部
obj.a();obj.a();obj.a();obj.a();
になる。
お題は
obj.a().a().a().a();
お前のだとアキュムレータ使ってないからそれこそreduceの意味まったく無い。
初心者か?
はじめてのjavascriptからやり直したら?
659654
垢版 |
2018/05/24(木) 09:00:38.95ID:???
>>658
>>657
2018/05/24(木) 09:04:01.46ID:???
obj.a();obj.a();obj.a();obj.a();
の場合はreduceの意味まったく無い。
なぜならforEachで十分だから。
初心者がお題勘違いしたのを流れだとか言って誤魔化してるだけ。
661654
垢版 |
2018/05/24(木) 09:08:43.13ID:XaJaBcs1
いや、>>643を言葉通りに受け取れば、>>647>>654も問題ないでしょ
>>625のダブスタといい、なぜ言外に定義していることがあると思いこむのかね
662654
垢版 |
2018/05/24(木) 09:15:49.85ID:XaJaBcs1
しかも、>>607の要件だとしても、本質は変わらないと思う

let i = 4;
while (i--) obj = obj.a();

for (let i = 0; i < 4; i++) obj = obj.a();

for (let v of [4,3,2,1]) obj = obj.a();

[4,3,2,1].reduce(obj => obj.a(), obj);
2018/05/24(木) 09:20:29.26ID:???
>>662
全然違うわボケ
それだとアキュムレータ使っているのでforEachではなくreduceを採用する意味がある。
>>654のクソコードはreduceの意味がまったく無い。アキュムレータ使っておらずforEachで十分。

eval擁護するわ
[4,3,2,1].reduce(()=> obj.a());
こんなクソコード書くわ
ほんと酷いなお前
2018/05/24(木) 09:29:57.82ID:???
whileとforは複雑度が逆だな
2018/05/24(木) 09:43:20.29ID:???
どうでもいいが、どれも前提に
var o = hoge; ないし var obj = hoge; が入ってるんだよな?
2018/05/24(木) 10:15:11.97ID:???
そりゃそうだろエラーになるし
どうでもいいけど
667Name_Not_Found
垢版 |
2018/05/24(木) 13:36:47.71ID:88W14kMp
変数の先頭が _hensu のようにアンダーバーの変数を時々見るけど
これ表記は一般的にどういう時に使われるの?
2018/05/24(木) 13:59:22.27ID:???
>>663
>>662>>614と同じに見えるが、なにいってんだ、おまえは?
全否定するなら、他の回答も全て否定しろよ
2018/05/24(木) 14:09:06.85ID:???
関数型の本読むと
forより関数型の再帰のほうが抽象性が高くてよみやすいからいいと書いてたりする。
自分も書き慣れたforでやっちゃうけど。
2018/05/24(木) 14:13:54.83ID:???
>>612にレスしない=容認と思い込んで、ダブスタ扱い
>>643の要件定義が甘いのを無視して、要件が違うとキレる
>>614と同じ書き方をして、クソコードとキレる

ボロボロだな
2018/05/24(木) 14:21:14.83ID:???
>>668
お前こそなに言ってんだ?
>>662>>614と同じに見えるが

はぁ?>>663のどこに>>662>>614が違うと書いてあるんだ?
2018/05/24(木) 15:51:35.41ID:???
いい感じで荒れてるな
お前らちょろいわ
2018/05/24(木) 18:29:29.36ID:???
暇つぶしに姉妹スレの方もよろしくおねがいします

+ JavaScript のお題用スレッド +
https://mevius.5ch.net/test/read.cgi/hp/1526666703/
2018/05/24(木) 18:52:46.43ID:???
有名になったら急に親戚が増えるのと似てるな。
そんなクソスレは知らん!
2018/05/24(木) 20:08:00.05ID:???
なんだかなぁ
例えば配列の中身は使わないけど、ただ繰り返しのためにreduceを使うということも
任意の長さの有効な中身が入った配列を作るハックも
何らしかの理想形を目指す過程で1つだけ妥協してそういったテクニカルな物を入れるのはありだと思うけど

例えば何かの絵でも文章でもいいから特定の理想スタイルに拘って作ってたとして、
表現が困難な部分が1箇所くらいでてきてもあまり品質を損なわせること無くごまかせるけど、
あちらもこちらもということになると元々目指してた理想とは随分形が変わってくるし、
他人が見たときにそれが何を目指したものなのかすらわからなくなる
苦労してそんなものしか作れないのなら
最初からもっと楽してカッコつけなくて描く方法があるでしょってことになる
2018/05/24(木) 20:27:09.34ID:???
質問

reduceのアキュムレータで引き回して hoge.a().a().a().a() ... .a(); と実行させる方法
引き回し用の変数oにhogeを入れたうえでforで o=o.a(); を実行させる方法

見た目・行数以外で
これら2つの方法で厳密に言うと何と何と何がどう異なる?
要件としては>>607のとおり、function func(){}内で実行、returnしない、として
2018/05/24(木) 20:36:22.86ID:???
重めのファイルを大量にダウンロードするパートがあるwebアプリで同時ダウンロード数3とか4とかに絞りつつ、それぞれのレーンはシリアルにダウンロードタスクこなしてくという処理に、
ダウンロードのpromiseの配列をreduceの中でaccum.thenで繋いでく方法取ったな。forよりだいぶん簡単に書けたが、知らん人には何やってんのかさっぱりやろな。
2018/05/24(木) 20:41:40.39ID:???
糞アプリですか違法アプリですか
2018/05/24(木) 20:59:35.04ID:???
C++とか他の言語からさらにやってJSのクラス(プロトタイプ)とかみるとよくわからないってよくきくけど
JSからはいってC++とかいくとどうなの?
2018/05/24(木) 21:00:14.07ID:???
ちょっとアレだからノーコメントで…
でも俺は頼まれて作っただけだからな。
2018/05/24(木) 21:01:39.86ID:???
頼まれても作っちゃいけないモノってのがあるわけだが、そんなものを作ったと書き込むこともどうかと
2018/05/24(木) 21:02:53.25ID:???
>>679
・盛大に混乱するがなんとか順応してやっていける
・C++に行こうとして挫折する

どっちか
2018/05/24(木) 21:05:58.31ID:???
実際はダウンロード数はブラウザが勝手に抑制して
同時に発行しても一定以上はpendingとなるから気にしなくても良い
2018/05/24(木) 21:11:43.38ID:???
決め打たなければならなかったんだよ。
ブラウザの制限にまかせとくと弾かれてしまうという…案件。
2018/05/25(金) 00:30:21.26ID:???
君たちUMLとか勉強した?
したほうがいいのこれ?
2018/05/25(金) 00:44:33.08ID:???
このスレのタイトルが数式になってるんだと思って実行してみたら
Uncaught SyntaxError: Unexpected identifier
というエラーが出ました
どうすればいいですか?
そもそもJSかくひとならJSで実行できるスレ体にするべきじゃないですか?
アホですか?
687686
垢版 |
2018/05/25(金) 00:50:53.19ID:???
おい、無視すんな。面白いこと言ったんだから何か答えろ
2018/05/25(金) 01:23:31.64ID:???
""+ "JavaScript の質問用スレッド vol." + 133
じゃあ次からこれで
2018/05/25(金) 01:32:15.38ID:???
toStringやparseIntはきっちりやるべきだと思う
無論parseIntの第二引数は忘れてはならない
2018/05/25(金) 03:34:03.80ID:???
123abcという文字列をパースして
123という数値に変換するのは
バグだと思う
2018/05/25(金) 06:47:04.90ID:???
それすなわちバグということはないが、
CSSならTypedOM使ったり、input要素ならvalueAsNumber使ったり
もっと適切というか上品な手段があることは多いと思う
2018/05/25(金) 12:13:19.56ID:???
16px, 1em, 100% とか、

こういうのを数字にする事を想定しているのだろう
2018/05/25(金) 13:21:19.79ID:???
>>690
そんな君にお勧めなのが Number()
2018/05/25(金) 20:43:37.26ID:???
>>692
きみあたまいいね
2018/05/25(金) 21:02:02.63ID:???
〜気にくわない挙動があったとき〜

バカ「バグだ!」

天才俺「0.1+0.2はisoに基づいた仕様、typeof nullは仕様バグ」
2018/05/25(金) 21:34:26.59ID:???
let a = { let x = 0; (何か処理); x; };
みたいな感じで書けないのはおかしい

let a = (() => { let x = 0; (何か処理); return x; })();
と書くしかないのか?
2018/05/25(金) 21:41:23.18ID:???
typeof null -> "object"はべつに仕様バグだとは思わんな
だって例えばtypeof null -> "null"になったところで、
対象がオブジェクトかどうか一発で判定できるわけではないし、
状況がハッキリ好転したりはしないもの

あとやっぱりJSに本当に必要なのは正確な判定ではなくて、
柔軟さを活用して問題を飲み込んで単純化することだと思う
つまり具体的にはtypeofのような存在による正確なオブジェクトの判定ではなく
今提案もされてるobj?.propのようなオプショナルなプロパティアクセスが重要
2018/05/25(金) 21:47:26.99ID:???
>>696
ECMA Stage 1. do expressions
https://github.com/tc39/proposal-do-expressions
Chromeで試すには「 --js-flags="--harmony_do_expressions"」
2018/05/25(金) 22:01:06.33ID:???
思う思わないじゃなくて作者がそう言ってるんだが。
2018/05/25(金) 22:23:42.41ID:???
typeof null === 'object' は ECMAScript 3 の仕様バグ
http://d.hatena.ne.jp/think49/touch/20120114/1326554107
2018/05/26(土) 01:42:16.56ID:???
ちょwww俺おもしろすぎwww
ギャグのセンスはんぱないwww
2018/05/26(土) 01:42:46.92ID:???
おっと誤爆失礼
2018/05/26(土) 11:11:27.73ID:???
contenteditableな要素の中に作られるタグについてですが
chromeでは一行ずつdivで囲んでるんだな、と思っていました
実際ただキーボードから文字を入力していった時に作られるタグはそのようものです
しかし文字列をペーストすると、
<div><div>1行目</div><div>2行目</div></div>
みたいな、複数行を包含する無用で意味不明なdivが出来ることに気づきました
一体どんなアルゴリズムがこんなタグを生成するのでしょうか?
キャレットのある行を知る時には一番外側のdivを見つければいい、と思っていたのですが、
このくそアルゴリズムの生成するくそタグだと正しく検出できません
キャレットのある行を見つけるにはどうすればいいですか?
2018/05/26(土) 11:28:33.02ID:???
一番外側のdivでなく、一番内側のdivなら検出できそうです
chromeではselectionの境界は必ずテキストノードの中をポイントするようなので。
それはそれで合理的な挙動ですが、
他のブラウザだとそのあたりの挙動も違います
divとdivの間をポイントしたりします
・生成されるタグがくそ
・生成されるタグがブラウザによってまちまち
・selectionの境界の取り方もブラウザによってまちまち
何重にもひどい条件をかいくぐってまともに動くものを作るのはなかなかヘビーですね?
2018/05/26(土) 14:36:02.69ID:???
>>699
それは知ってるが、作者がどう言ってるかが全てではないだろう
君は親から、お前のココが失敗だったと言われたらずっとそう思い続ける残念な人なのか?
実際その時はそこだけ取り上げると客観的に見て欠点だったとしても、
そいつが成人して、世の中の流れも多少変わってるし、別に取り上げて何か言うべきことで無くなってる可能性もあるだろう

俺は君が考えた君だけの考えがあるなら大いに聞いてみたいが、
そんな聖書にそう書いてあるから!みたいな淡白な意見は何の発展性もないし関心がない
人が言ったことを自分の意見にするなという意味ではないぞ、むしろそれは良いこと
つまりその作者がどうしてそう言ったのかを、色々な視点から捉えて、
その意図を自分の中で消化して、君自信の意見として君の言葉で解説して欲しいと思う
2018/05/26(土) 15:01:54.62ID:???
>>705
要約すると、お前がそう言ってるだけでなので、
お前の言うことなんか無視すべきってことだな
707Name_Not_Found
垢版 |
2018/05/26(土) 15:30:00.44ID:QE7hhrB3
バカ:
箱を落として中のケーキがグチャグチャになったが、もう戻らないことを嘆いても仕方ない。
このグチャグチャのケーキのいいところを探そう!
俺はこのグチャグチャのケーキも結構イケてると思う!

天才俺:
このケーキがグチャグチャなのは、移送中に箱を落としたから。
移送者の証言があるからこれは間違いない。
2018/05/26(土) 16:20:03.82ID:???
>>707
俺は確かにいいところを探して良いように使うのはJSにおいてとても重要だと思うが、
今回はそういったことを言ってるんじゃないぞ

そもそも横向きに他の食べ物と一緒に入れられていて
箱を落として無かったとしても潰れて混ざってて綺麗に食えたもんじゃない
どっちみち細かく切ってそういう食べ物ですと言って誤魔化して出すくらいしかなく、
落として無かったら切り方がちょっと大雑把で済むくらいのもの

だから綺麗に食べられないことに関して箱を落としたことを悔やむのはバカなこと
だがそもそも本当にパーティの賑やかしとして必要なものはピザの方じゃないのか
ってことを言ってる
709Name_Not_Found
垢版 |
2018/05/26(土) 16:31:28.00ID:Txj36fLa
例えを中心に論をくみたてるやつはたいていばか
2018/05/26(土) 16:40:20.56ID:???
ピザに話題を反らそうとも、ケーキがグチャグチャな事実は変わらない。

typeof nullが仕様バグであるという事実は、typeof nullの重要性の多寡によっては覆せないのだ!
2018/05/26(土) 17:25:23.98ID:???
typeof null限定の話ではなく一般論の話をしよう
一般論ではどんな人でも言ってることが間違っていることがあるだろう?
だから、間違いなんだよ
2018/05/26(土) 18:32:29.41ID:???
ここまで読み飛ばした
2018/05/26(土) 19:55:01.57ID:???
ピザポテトを管理するjsでも作ってろよ
2018/05/26(土) 20:17:50.16ID:???
一般人「typeof nullは仕様バグ(ボソッ)」
バカ「俺はtypeof nullが仕様バグとは思わない!」
天才「いや作者が仕様バグと認めてるんだけど…」
バカ「typeof nullが仕様バグかどうかはどうでもいい。他のことの方が重要!」

他のことの方が重要なのはそうかもしれないのだがこれじゃ思い違いをゴマかすために話題そらしたみたいにしか見えないww
2018/05/26(土) 20:33:54.38ID:???
バグ、仕様バグって言葉の認識に差がありそう

本当に頭悪いバカはバグとか言わずに糞言語と100回連呼するのだと思う
そんで使用者を罵倒して煽る
2018/05/26(土) 20:48:33.15ID:???
バグって10回言って

バグバグバグバグバグバグバグバグバグ

9回しか言ってないじゃん
2018/05/26(土) 20:50:58.36ID:???
>>711
「だから、間違っていることがあるんだよ」が正しい(確定ではない)
2018/05/26(土) 20:52:53.34ID:???
ハゲって10回言って
2018/05/26(土) 21:08:39.91ID:???
>>705
> それは知ってるが、作者がどう言ってるかが全てではないだろう
「仕様バグ」は作者でなければ、定義出来ないぞ
>>697がいっているのは「>>697の解釈」であって「仕様バグ」ではない
2018/05/26(土) 23:07:52.67ID:???
ajaxって今はあんまりつかわないの?
2018/05/26(土) 23:13:25.72ID:???
一般に普及しGoogleのような大企業じゃなくても誰でも普通に使えるようになったので、ajaxとかカッコつけて言わなくなっただけ。
2018/05/26(土) 23:17:57.53ID:???
ajaxの代替になるもので流行り始めてるものとかもないの?
2018/05/26(土) 23:24:05.98ID:???
fetchだな
2018/05/27(日) 01:12:50.63ID:???
ajax と言えば、jQuery

これだけのために、jQueryを使う人もいる
2018/05/27(日) 01:21:31.51ID:???
正直、楽だからねえ……
2018/05/27(日) 07:33:45.73ID:???
>>722
Axios や SuperAgent が有名だよ
2018/05/27(日) 09:17:47.25ID:???
google書籍検索で引っかかってきた原書のサイ本に、日本語版に書いてないことが書いてあったので
調べてみると日本語版は、原書のリファレンス編が「JavaScriptリファレンス」という別の本になっている
ということに気づきました
紙の本だとおそろしく太くなってしまうからでしょう
電書を購入しました
知らないことが大量に詳しく書かれています
しかしそれが知りたくて買ったRangeオブジェクトとSelectionオブジェクトについては、何故か全く書かれていません
何故でしょうか?あほなのでしょうか?
2018/05/27(日) 09:42:07.93ID:???
>>727
> 何故でしょうか?
全てを網羅すると途方もない文量(引いては値段)になるからでしょう。

> あほなのでしょうか?
あほです(あなたが)
2018/05/27(日) 09:44:35.87ID:???
>>727
JavaScriptにはRangeもSelectionも存在しない。
ブラウザが提供しているAPIでライブラリと同等のもの
だからこのスレからライブラリの話はなくせと言ってる
2018/05/27(日) 10:17:15.98ID:???
>>729
この本は「コアJavaScriptリファレンス」と「クライアントサイドJavaScriptリファレンス」に分けて説明しています
クライアントサイドJavaScriptの章では、CanvasやGeolocationやHistoryやStorageなど、
あなたが言うライブラリと同等のものが大量に紹介されています
しかしRangeとSelectionはないのです
あほとしか言い様がありません
2018/05/27(日) 10:19:09.88ID:???
>>728
リファレンスの価値は、可能な限り全部を載せるということでしょう
あほとしか言い様がありません(あなたが)
2018/05/27(日) 10:20:08.00ID:???
>>730
それよりもサーバーサイドJavaScriptが
まるまる抜け落ちてるのはどういうわけ?
2018/05/27(日) 10:30:06.59ID:???
>>727
こんなとこで聞いて何がしたいのでしょう?
出版社に問い合わせればいいだけなのではないでしょうか?
あほなのでしょうか?
2018/05/27(日) 10:36:08.74ID:???
>>733
何がしたい?もうしてますよ
あんたをイラつかせること
それがしたいことで、すでにやっていて結果もでてることですよ
出版社に問い合わせてもあなたをイラつかせることにはなりません
それもわからないあほなのでしょうか?
2018/05/27(日) 11:31:47.26ID:???
もう来ないっつったんだからもう来んなよ
2018/05/27(日) 11:37:02.92ID:???
そもそも翻訳の出来に左右される日本語版を買うのがあほ。
リファレンスは原著買うのが普通。
2018/05/27(日) 11:39:56.86ID:???
>>727
微妙なAPIだからね
マイナーだし、HTML5になる過程で一応仕様がデファクトに合わせて整備されなおされたけど
今後の発展性もないし取り上げて面白いAPIではないだろうからね
2018/05/27(日) 12:03:50.09ID:???
>>734
で、出版社はなんてこたえたの?
2018/05/27(日) 12:06:19.36ID:???
>>734
この人は偽者ですよ
出版社に問い合わせたところで何も変わらないでしょう
それよりも、何故そうなったのかを公開の場で検討した方がはるかに生産的です
2018/05/27(日) 12:08:03.82ID:???
>>732
Node.jsの本に任せているのでしょう
JavaScriptはそもそもの生まれがクライアントサイドスクリプトですし。
そういう意味でそこは妥当だと思います
2018/05/27(日) 12:13:26.82ID:???
>>737
発展性というか、基本的な機能だと思いますが・・
特に昨今JavaScriptの役割がアプリと同一化しているので、
もっと光を当てるべき機能だと思います
エディタ的なものを作る時には必須のオブジェクトなのですから
2018/05/27(日) 12:18:30.61ID:???
>>734
別にオレイライラしてないよ。
やった意味なかったね。
2018/05/27(日) 12:27:56.82ID:???
>742
レスしたのが証拠w
2018/05/27(日) 12:28:48.06ID:???
electronで作られているVSCodeのエディタ部分はどういう実装になっているのでしょうか?
2018/05/27(日) 12:47:29.99ID:???
>>739
どう生産的なの?
著者と出版社に、自分はこう思うのでコレも書けって意見送ればいいだけでは?
2018/05/27(日) 13:12:15.20ID:???
>>744
ボク?オープンソースって意味わかりまちゅか?
https://github.com/Microsoft/vscode
2018/05/27(日) 13:13:18.36ID:???
エディタ部はmonaco
https://github.com/Microsoft/monaco-editor
2018/05/27(日) 13:26:01.97ID:???
原書は検索するとpdfでおっこちてること多いよなぁ。
公式なのか違法なのか知らんけど。
2018/05/27(日) 13:28:43.48ID:???
これ著者のツイッターアカウントだろ?
https://twitter.com/__davidflanagan
とりあえずツイッターで聞いてきなよ。
2018/05/27(日) 14:45:02.31ID:???
>>741
別に光を当てても選択範囲が取れますで終わりでしょ
エディタを作るのに必要でこれから考えないといけないのは
入力領域やIME制御のAPIだと思うけど
2018/05/27(日) 16:18:20.01ID:???
>>746
知っている人がいたらざっくり説明してくださいという意味です

>>747
そういうのを使っていたのですね
ありがとうございます
2018/05/27(日) 16:19:42.10ID:???
>>749
今から聞いても本が書き換わるわけじゃないですよね?
それに別に本人を責めたいわけではありません
2018/05/27(日) 16:26:17.87ID:???
ちなみに自分の知る限り、SelectionやRangeについて一番詳しく書かれている本は
Professional JavaScript for Web Developersです
この本以上に詳しくかかれている本ありますか?
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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