X



+ JavaScript の質問用スレッド vol.136 +
■ このスレッドは過去ログ倉庫に格納されています
0001Name_Not_Found
垢版 |
2018/11/20(火) 18:59:19.15ID:???
JavaScript を自ら学ぶ人のための質問スレッドです。
次スレは>>950が(本スレで改善案があれば考慮して)立ててください

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

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

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

■回答者へ
・回答には多様性があります。他人の回答を尊重してください
・動作ブラウザや環境が限られる場合は、それを明記してください
・他人の回答を批判する代わりに、自分ならこう書くという例を示してください
・質問者がJavaScriptでなければ実現できないと勘違いしてるなら、その否定としてHTMLとCSSで実装しても良い
・他人の回答を見たくないのであれば、文句をつける代わりにNGにして見えないようにしてください。文句をつける=荒らしです
0521Name_Not_Found
垢版 |
2018/12/21(金) 13:09:33.27ID:???
>>518
使えるブラウザと使えないブラウザがある
新しく追加された仕様だから、まだ対応してない
ブラウザがあるということ

そういったブラウザ間の互換性を吸収するためにjQueryがある
0522Name_Not_Found
垢版 |
2018/12/21(金) 13:31:26.03ID:???
>>519-520
chromeとff試しましたがnot a functionでした
なるほどcallしてみます
>>521
ブラウザの拡張にするほどでもない感じの簡易ブックマークレット用途なので
仕方なくDOMapiを使ったのです
使いたいサイト先がjQuery使ってればよかったのですが。
0523Name_Not_Found
垢版 |
2018/12/21(金) 13:38:53.32ID:???
そういや昔ブックマークレットで改行ができないのが嫌で、
ブックマークレット自体はscriptタグを書き出すだけにして
特定のURLのスクリプトを読み込むようにしたなぁ
0525Name_Not_Found
垢版 |
2018/12/21(金) 15:40:06.31ID:???
>>518
NodeListはArrayライクオブジェクトであってArrayではないので、Array.fromで変換しましょう
0526Name_Not_Found
垢版 |
2018/12/21(金) 16:10:15.16ID:???
ただしArray.fromが全てのブラウザで動くとは限りません
0527Name_Not_Found
垢版 |
2018/12/21(金) 16:16:10.19ID:???
ぽ、ぽりふぃるあるし(震
0528Name_Not_Found
垢版 |
2018/12/21(金) 16:17:17.17ID:???
新構文使った[...]とは違って単なる関数だからポリフィルあるし。
0529Name_Not_Found
垢版 |
2018/12/21(金) 16:19:04.42ID:???
ということで、ブックマークレットにポリフィル埋め込みましょう!
0530Name_Not_Found
垢版 |
2018/12/21(金) 18:12:15.03ID:???
NodeListはmapはないけどforEachもってるよ
0531Name_Not_Found
垢版 |
2018/12/21(金) 18:14:17.69ID:???
getElementsByTagNameが返すのはHTMLCollection
DOMは歴史的理由から、直感に反するような仕様が多いので
それを無くすためのjQueryでもある
0532Name_Not_Found
垢版 |
2018/12/21(金) 18:25:51.94ID:???
秘技・プロトタイプ拡張でmapを生やすという手もあるぞ
0533Name_Not_Found
垢版 |
2018/12/21(金) 18:37:45.99ID:???
ただしDOMオブジェクトをプロトタイプ拡張
できるかどうかはブラウザ依存である
0534Name_Not_Found
垢版 |
2018/12/21(金) 20:02:32.40ID:???
いや、ChもFxもできるように実装変えたろ
0535Name_Not_Found
垢版 |
2018/12/21(金) 20:27:21.82ID:BA8anrdp
>>531
ほんとだ、getElementsByTagName が返すのは NodeList じゃないんだな…
簡単に回したいなら document.querySelectorAll(‘div’).forEach でいいんじゃね
0536Name_Not_Found
垢版 |
2018/12/21(金) 23:08:16.63ID:???
>>534に書いてあるように、
実装を変える前のブラウザでは動かない
0537Name_Not_Found
垢版 |
2018/12/21(金) 23:09:51.77ID:???
>>535
querySelectorAllが実装されていたとしても
forEachが使えるかどうかはブラウザ依存
0538Name_Not_Found
垢版 |
2018/12/21(金) 23:20:36.67ID:???
>>518
返すのが配列じゃなくてコレクションなんて気づけないよね最近は
色々便利になってきたし

jQuery以前に俺俺ライブラリ書いてたおっさんたちは
同じようにハマったからよく知ってっけど
0539Name_Not_Found
垢版 |
2018/12/21(金) 23:20:48.88ID:???
w3mやlynxではcallもダメだろ。つまりブラウザ依存。
0540Name_Not_Found
垢版 |
2018/12/21(金) 23:21:29.85ID:???
流石にJS動かない環境は無視してよくね?
0541Name_Not_Found
垢版 |
2018/12/21(金) 23:24:07.38ID:???
逆に最近のほうが気付き易いだろ。
なぜならconsoleで実行するとコンストラクタ名が表示される親切機能ついてるし最近
0542Name_Not_Found
垢版 |
2018/12/21(金) 23:28:56.22ID:???
Ruby のNokogiri は使いやすいけど、単数・複数形が異なる

一方、jQuery では、0・1・複数形のすべてが配列だから、シームレスに書ける
0543Name_Not_Found
垢版 |
2018/12/21(金) 23:30:46.02ID:???
>>542
死ね不人気クソ言語キチガイ苦しんで死ね
0545Name_Not_Found
垢版 |
2018/12/21(金) 23:39:45.16ID:???
ひやぁぁRubyぃぃぃ!ひゃっはー!
0546Name_Not_Found
垢版 |
2018/12/21(金) 23:44:59.06ID:???
> 返すのが配列じゃなくてコレクションなんて気づけないよね最近は

もともとJavaScriptはブラウザが実装しているDOM(C/C++で実装)
しているものを、呼び出して使える簡易な言語だったからな。

C/C++で実装されているものが、JavaScriptの配列(DOMとは無関係)に
なるわけがないんだよ
0547Name_Not_Found
垢版 |
2018/12/22(土) 09:05:52.98ID:d5JH/sfa
最近セミコロン省略してるのよく見るけど流行ってるの?
それともpythonerの悪いくせ?
0549Name_Not_Found
垢版 |
2018/12/22(土) 10:00:28.88ID:???
組み込みオブジェクトにメソッド追加して
Polyfill作れるかどうかはブラウザ依存
0551Name_Not_Found
垢版 |
2018/12/22(土) 10:04:25.71ID:???
>>547
es仕様を完全把握してるからどこでセミコロンが自動挿入されるのか完璧に理解して使いこなしているのだ。お前のようなザコと一緒にするな。
0552Name_Not_Found
垢版 |
2018/12/22(土) 10:22:35.55ID:???
>>547
ミニファイしたらセミコロン省略されるんだから最初からいらんだろ
0554Name_Not_Found
垢版 |
2018/12/22(土) 10:31:08.75ID:???
あとこのライブラリのコードとか
ttps://github.com/nathancahill/split/blob/master/packages/splitjs/src/split.js
あげたらキリないけどよく見る
セミコロン省略した方がかっこいい風潮あるのか?
0556Name_Not_Found
垢版 |
2018/12/22(土) 10:40:02.47ID:???
>>553
結構あるのか、気にしてなかっただけかも
>>551の通り把握できていれば省略しても何ら問題はない
インデントをタブにするかスペース2個にするかの違い(よりは影響大きいけど)
要は好み

混ざってて滅茶苦茶気持ち悪いな、これはさすがに良くない
https://qiita.com/khsk/items/f331798acfb99ef347fc
0558Name_Not_Found
垢版 |
2018/12/22(土) 10:57:37.34ID:???
>>556
こいつの思想のほうがよっぽど気持ち悪い
偉そうによくここまで適当なこと言えるな
0560Name_Not_Found
垢版 |
2018/12/22(土) 11:00:44.52ID:???
>>558
でも大抵の参考書にはセミコロンは絶対つけましょうって書いてるからさ
今まで知らなかったわ
0561Name_Not_Found
垢版 |
2018/12/22(土) 11:03:27.97ID:???
イラレのjsってこのスレでも良い?
0562Name_Not_Found
垢版 |
2018/12/22(土) 11:08:34.43ID:???
イラレの専門スレよりは期待できるんじゃないか
0563Name_Not_Found
垢版 |
2018/12/22(土) 11:10:02.96ID:???
>>562
ありがとう!
質問まとめて、またあとで質問させて頂きます
0564Name_Not_Found
垢版 |
2018/12/22(土) 11:14:43.52ID:???
質問
var text="ランダムな文字列1abcランダムな文字列2defランダムな文字列3"
という文字列がある場合にtextからランダムな文字列2だけを削除する短い書き方はあるでしょうか?
つまりabcとdefで挟まれている部分を削除することが条件で、abcとdefはそのまま残して
"ランダムな文字列1abcdefランダムな文字列3"
となるようにしたいです
0566Name_Not_Found
垢版 |
2018/12/22(土) 11:46:31.34ID:???
>>565
それだと結果が
"ランダムな文字列1ランダムな文字列2ランダムな文字列3"
となってしまいますよね?
でも応用して考えて分かりました、
text = text.replace( /(abc)(.*)(def)/, '$1$3' )
とすればいいわけですよね。
ありがとうございます!感謝感謝です
0567Name_Not_Found
垢版 |
2018/12/22(土) 11:52:31.70ID:???
>>566
ごめんなさいそうでした。
よく読んでなかった…
0568Name_Not_Found
垢版 |
2018/12/22(土) 11:52:40.05ID:???
仮にランダムな文字列1にabcが入った場合
どちらのabcを優先したらよいのだろう >>564
0569Name_Not_Found
垢版 |
2018/12/22(土) 12:54:25.92ID:???
>>567
いえいえ本当に助かりました
>>568
なるほどそれだと後の方ですかねぇ…でも今回の場合それは考えなくて大丈夫なので566でおkです
0570Name_Not_Found
垢版 |
2018/12/22(土) 13:59:31.53ID:???
セミコロン省略ってバグの温床にならない?
0571Name_Not_Found
垢版 |
2018/12/22(土) 14:16:14.71ID:???
セミコロン省略がバグの温床になるときってのは要は謎の改行をしてるときで、まずそんな書き方するべきじゃないし、そんな書き方してる時点でバグとか気にしない人だろう
0572Name_Not_Found
垢版 |
2018/12/22(土) 14:35:43.33ID:???
return辺りで結局セミコロン必須の場面があったはず
0573Name_Not_Found
垢版 |
2018/12/22(土) 15:00:42.84ID:???
>>571
いや、だから謎の改行だろうがバグの可能性あるならセミコロンありでいいんじゃね?てこと
省略するメリットってタイプ量が減る、ファイルサイズが減る、くらい?
0574Name_Not_Found
垢版 |
2018/12/22(土) 15:08:01.86ID:???
結局改行が必要になるのでファイルサイズもほとんど変わらない
デメリットの方が多いと思う
0575Name_Not_Found
垢版 |
2018/12/22(土) 15:12:40.65ID:???
Javascript3大宗教論争
・セミコロン論争
・const論争

あと一つは?
0577Name_Not_Found
垢版 |
2018/12/22(土) 15:28:17.88ID:???
ダブルクォートかシングルクォートか
0578Name_Not_Found
垢版 |
2018/12/22(土) 16:01:58.64ID:???
言語仕様のほとんどをなあなあにしたアイクとネスケが悪い
0579Name_Not_Found
垢版 |
2018/12/22(土) 16:10:13.51ID:???
jsは争点が多すぎて、逆に争うのが無駄だと気付きやすいかも
もう好きにやってろって
0580Name_Not_Found
垢版 |
2018/12/22(土) 16:18:52.91ID:???
ふわふわ言語
まぁでも大分良くはなったと思う
昔は本当に酷かった;;
0581Name_Not_Found
垢版 |
2018/12/22(土) 16:31:50.51ID:???
>>580
セミコロン2つもつけてんじゃねー!2つとも消せや!
0582Name_Not_Found
垢版 |
2018/12/22(土) 16:41:01.95ID:???
>>521
結局これ。
ブラウザをコントロール出来る社内システム以外は新しいのが使いにくい。
0583Name_Not_Found
垢版 |
2018/12/22(土) 17:22:04.27ID:???
問題「jQueryが使えないサイト用のブックマークレットなのですがどうしたらよいですか」
答え「jQueryを使えばよい」

安定のjQuery気違いクオリティwww
0585Name_Not_Found
垢版 |
2018/12/22(土) 19:11:09.51ID:???
>>583
> 問題「jQueryが使えないサイト用のブックマークレットなのですがどうしたらよいですか」

どこにそんなふうに問題出したやつがいるの?
お前馬鹿じゃないの?

あ、だからヤブヘビするのかw
0586Name_Not_Found
垢版 |
2018/12/22(土) 19:44:49.61ID:???
元の質問がブックマークレット用途だからjquery使ってないって言ってるじゃん
そもそもブックマークレット作るのに互換性なんてそうきにするもんでもないだろ
>>535 でいいと思うが
0587Name_Not_Found
垢版 |
2018/12/22(土) 20:08:14.41ID:???
ブックマークレット用途って言ったのは
jQueryの名前が出た後だろ
時系列ちゃんと考えろや

ブックマークレット用途っていうのなら
ポリフィルも使えないってことになるし

> >>535 でいいと思うが
forEachが使えないブラウザもある
0589Name_Not_Found
垢版 |
2018/12/22(土) 20:48:14.45ID:???
>>587
> forEachが使えないブラウザもある

w3mやlynxへの対応もしっかりなw
0590Name_Not_Found
垢版 |
2018/12/22(土) 21:25:26.62ID:???
>>589
はい。そうすると必然的にHTML+CSSメインで書いて
JavaScriptは動きをつけるという使い方になる
jQueryが一番得意とするやり方
0591Name_Not_Found
垢版 |
2018/12/22(土) 21:40:16.72ID:???
へーw3mでjQuery動くんだ知らなかった
0593Name_Not_Found
垢版 |
2018/12/22(土) 22:33:42.21ID:???
NodeListのforEachが使えないブラウザもあるって、もはやIEぐらいなもんだろ
他のモダンブラウザはどれもまともに動くぞ
ブックマークレット用途でそんなの動作保証する必要あるのかっていう話よ
0594Name_Not_Found
垢版 |
2018/12/22(土) 22:36:40.29ID:???
いやIEで動かないのは問題だがブックマークレットならどうでもいいな
0595Name_Not_Found
垢版 |
2018/12/22(土) 22:37:46.03ID:???
>>587
> ブックマークレット用途っていうのなら
> ポリフィルも使えないってことになるし
なぜ?
0596Name_Not_Found
垢版 |
2018/12/22(土) 22:46:35.09ID:???
>>591
公式にはサポート対象に入ってないねえ
0597Name_Not_Found
垢版 |
2018/12/22(土) 22:51:58.10ID:???
>>591
> へーw3mでjQuery動くんだ知らなかった
JavaScriptが使えないブラウザでも出来る限り対応しろってことだよ

>>595
しらん。ブックマークレットだからjQueryが使えないといったやつに聞け
(元の質問者のことではない)
0598Name_Not_Found
垢版 |
2018/12/22(土) 22:56:16.82ID:???
>>597
> しらん。ブックマークレットだからjQueryが使えないといったやつに聞け
うん。だから、

「ブックマークレット用途っていうのなら
ポリフィルも使えないってことになるし 」

と発言した>>587に質問してる
0599Name_Not_Found
垢版 |
2018/12/22(土) 23:04:20.82ID:???
>>597
> JavaScriptが使えないブラウザでも出来る限り対応しろってことだよ

それ、もうjQuery関係ないじゃん
>>590の「jQueryが一番得意とするやり方」って明らかにおかしいだろ
0600Name_Not_Found
垢版 |
2018/12/22(土) 23:04:30.79ID:???
ファイルの冒頭・最後に、セミコロンを付けないと、

ファイル結合時に、文がつながってしまうことがあるとか
0601Name_Not_Found
垢版 |
2018/12/22(土) 23:09:14.88ID:???
>>598
なんで一つ前の>>586に言わないの?

> 元の質問がブックマークレット用途だからjquery使ってないって言ってるじゃん
(↑質問者はそんなこと言ってない。だから言ったのは>>586

アンカーがなかったから気づかなかったのかな?
なら俺が言ったことでわかったから、それを踏まえて>>586に言おうね
0602Name_Not_Found
垢版 |
2018/12/22(土) 23:11:10.58ID:???
(使ってないのと使えないのとではずいぶん意味が違うな)
0603Name_Not_Found
垢版 |
2018/12/22(土) 23:18:43.84ID:???
(それ以前に質問者はブックマークレット用途だから使ってないなんて言ってないな)
0604Name_Not_Found
垢版 |
2018/12/22(土) 23:19:00.44ID:???
(ブックマークレットでjQuery使ってもいいしな)
0605Name_Not_Found
垢版 |
2018/12/22(土) 23:19:25.93ID:???
(元サイトで使われてないならブックマークレットで読み込んでもいいし)
0606Name_Not_Found
垢版 |
2018/12/22(土) 23:19:59.12ID:???
>>601
>>586をよく読みなさい
「元の質問がブックマークレット用途だからjquery使ってないって言ってるじゃん」
は他人の言を述べているだけでしょ?
>>586が「ブックマークレット用途だからjquery使ってない」わけではないでしょ?
そもそも、586がどうあれ、>>587

「ブックマークレット用途っていうのなら
ポリフィルも使えないってことになるし 」

と書いてるんだよ
587は「586は〜といってる」ではなく、自分がそうだと思っている書き方でしょ?
この物言いで>>587に質問して何が悪いのさ
なんか、自分の発言を「他人の発言からとってきただけの借り物」かのような言い訳してくる奴、定期的に出てくるけど、日本語勉強した方がいいと思うよ?
0607Name_Not_Found
垢版 |
2018/12/22(土) 23:21:42.51ID:???
> 「ブックマークレット用途っていうのなら
> ポリフィルも使えないってことになるし 」
>
> と書いてるんだよ

だって「元の質問がブックマークレット用途だからポリフィル使ってないって言ってるじゃん」
0608Name_Not_Found
垢版 |
2018/12/22(土) 23:24:57.73ID:???
「元の質問がブックマークレット用途だからjquery使ってないって言ってるじゃん」
という嘘は許すが

「元の質問がブックマークレット用途だからポリフィル使ってないって言ってるじゃん」
という嘘は許さない

なぜならjQueryがきらいだからだ!


まあこんな発想なんだろうなぁ
0611Name_Not_Found
垢版 |
2018/12/22(土) 23:31:43.14ID:???
jQuery房は借り物の言葉で語って、何かあると「俺の発言は借り物だから元の発言者に文句をいえ」というわけか、なるほど
0614Name_Not_Found
垢版 |
2018/12/22(土) 23:42:40.95ID:???
>>613
だから何が責任転嫁なんだ?全く意味不明
0616Name_Not_Found
垢版 |
2018/12/22(土) 23:47:46.72ID:???
そもそも、ブックマークレットでポリフィル使えない云々は>>587しか言ってないじゃん
0617Name_Not_Found
垢版 |
2018/12/22(土) 23:51:26.53ID:???
ブックマークレットでjQueryが使えないというのなら、
当然ポリフィルも使えないんじゃね?

だってポリフィル読み込まないといけないでしょ?
ポリフィル読み込むのが許されるならjQuery読み込めばいいで終わるし
0618Name_Not_Found
垢版 |
2018/12/22(土) 23:52:04.24ID:???
>>617
それな。馬鹿はその関係性が理解できないんだよw
0619Name_Not_Found
垢版 |
2018/12/22(土) 23:57:50.05ID:???
ieはなんで開発やめないの?

ieコンポーネントに依存してるアプリがあるから?
0620Name_Not_Found
垢版 |
2018/12/22(土) 23:58:21.92ID:???
jQuery厨とjQueryアンチの争いがいかに不毛かが掴める流れ
0621Name_Not_Found
垢版 |
2018/12/23(日) 00:00:08.45ID:???
>>586の「元の質問がブックマークレット用途だからjquery使ってないって言ってるじゃん」は>>522の代弁なのに、>>587が勝手に勘違いして「586がブックマークレットでjQueryは使えない」と誤読した
で、「ブックマークレットでjQueryを使えないなら、ポリフィルも使えいないはずだ」のニュアンスで>>587は書いたつもりだったが、日本語がおかしくて自分がそう考えている風に解釈できる文章だった
だが、>>587はそのミスに気が付かず、「これは586の弁だから、586に文句をいえ」と繰り返しているわけだな
■ このスレッドは過去ログ倉庫に格納されています