+ JavaScript の質問用スレッド vol.134 +
■ このスレッドは過去ログ倉庫に格納されています
JavaScript を自ら学ぶ人のための質問スレッドです。
次スレは>>950が(本スレで改善案があれば考慮して)立ててください
■規則/推奨ルール
・メール欄を空欄にし、名前にレス番を入れることを強く推奨(なりすまし防止)
・質問内容は具体的に。言葉だけでなく、出来る限り再現性を確認したサンプルコードの掲示。
・質問テンプレートの利用推奨。
・質問への「答え」だけでなく「意見」を出しても良い。
■禁止行為
・丸投げ質問
・迷惑スクリプトの質問
・オレオレ用語の使用(一般的な用語を使用する事)
・煽り、批判等の他人を不快にさせる行為(批判の代わりに「AよりBが良い」のような代案を出す事)
■質問テンプレート
【環境】OS, ブラウザをバージョンと共に記入してください。
【条件】期待する回答の条件を書いてください。
【何をしたのか】何をしたら問題の現象が発生するのか。再現手順を具体的に書いてください。
【エラーメッセージ】エラーメッセージがあれば正確に書き写してください。
【期待する結果】最終的にどういう結果を望んでいるのか、を書いてください。
【サンプルコード】現象を再現可能な最小限のコードを書いてください。
1レスに収まらないならコード投稿サイトを利用してください。
http://jsdo.it/ http://jsbin.com/ http://jsfiddle.net/ http://ideone.com/
■回答者へ
・回答には多様性があります。他人の回答を尊重してください
・動作ブラウザや環境が限られる場合は、それを明記してください
・他人の回答を批判する代わりに、自分ならこう書くという例を示してください
・質問者がJavaScriptでなければ実現できないと勘違いしてるなら、その否定としてHTMLとCSSで実装しても良い
・他人の回答を見たくないのであれば、文句をつける代わりにNGにして見えないようにしてください。文句をつける=荒らしです >>744
なぜAndroidが出てくるんだよ
@@iteratorを拡張したら? >>749
お前はサンドイッチだけで生きてるのか?
実際の開発ではもっといろいろ使うだろうって話だ >>751
> なぜAndroidが出てくるんだよ
Androidスマホにもテレビにもブラウザは搭載されてるんだよ。
NodeListにいろんな書き方が割るのがわかったが、
ちゃんと動くことを確認しないといけない。
そうしないとサポートできるのかどうかもわからないだろ 結局動かなくても構わないって思ってるやつが
NodeList使うんだろうな NodeListをそのまま使うから冗長になる
ラップすればいいだけ。
ラップして便利にしたものがjQueryだ >>753
forEachにもいえるけど、Arrayのそれを流用すれば、Polyfillを簡単に書けるじゃない それぞれのサポートポリシーが違うところで議論したって意味ないよ
自分はモダンブラウザの最新版と考えるよ、そこで動けば十分だよ ただ補助輪が欲しいってとき
もう一台自転車を買ってきてデッカイ車輪を付けるか
車輪部分だけ材料買ってきて作って付けるか
俺は後者の方を選ぶけどね 真面目な話IEを切り捨てるのなら最初からjQueryを導入する必要はない
モダンブラウザなら普通に書けばあってもちょっとの修正で済むのだから 今乗ってる自転車じゃ進めないときは自転車かついで徒歩でいけばいいじゃない理論 >>759
例えがおかしい。
自分で補助輪作るか、大手メーカーの補助輪使うかの違いでしょ? 障害者に優しくないサイトだっつって訴訟起こされた会社があったな >>760
> 真面目な話IEを切り捨てるのなら最初からjQueryを導入する必要はない
でもさ、jQuery使わないでも、IEを切り捨てることなんてできないんだよ。
JavaScript使って書いてもIEで動いちゃう
IEで動くのに一部動きませんって苦情くるよね?
どうせ切り捨てられないなら、動くほうが良いじゃない >>760
> モダンブラウザなら普通に書けばあってもちょっとの修正で済むのだから
ちょっとの修正で動く
VS
何も修正しないで動く
なら後者を取るなぁw 1箇所で使い始めると使うのを止めるのが面倒なのがjquery >>766
大丈夫。jQueryは、生JavaScriptとの互換性が高いから、
混ぜて使うことが簡単にできる。
そこがAngularやReactとの大きな違い。
だからjQueryをやめる必要がない。 >>766
jQuery便利すぎるもんな。
一回使うと便利すぎて
やめられない、とまらない 状態になってしまう。 >>762
どこかの有名なポリフィル使うという話ならそうだが
jQueryは補助輪レベルじゃないじゃん そろそろflash見直してもいいんじゃないかと思いかけたがappleがなあ >>764
それはIEを特別視し過ぎ
単なるシェアの問題ならもうちょっと待っててよ
その内消えるから Flashは別にオーサーリングツールとしては生き残ってるでしょ
出力がsfwなのかhtmlなのかが重要なわけで >>771
IE消えても古いスマホは消えないだろうからな。 jQueryとDOM APIは組み合わせて
使えるってところが強い
普段は便利なjQueryを使ったコードを書いて、
jQueryではできない所だけDOM APIを使う
そしてDOM APIとjQueryはシームレスにつなげることができる 上でTLSの話があったけどTLS1.1で接続掛けてくることよりもサポート切れてるIEを使ってる方が危険でしょ
そんでもう1年でサポート切れるwin7を除きサポートが続くIE11が乗ってるwindowsにはEdgeという素晴らしいものが乗ってるんだからさ
うちではIEからのアクセスは「microsoft-edge:」で飛ばしてEdgeを開かせるようにしてる
それが唯一のIEサポート どうでもいいがDOMってたまにDQNに見えるよな
俺だけじゃないよな >>777
すいません。今TLSの話はしてないんです。 え?古いJavaScriptは危険でしょ?
JavaScript使うの辞めてjQuery使わなきゃ! >>773
エンジンもエアバッグもライトもついてる補助輪だろ
無駄なんだよ
補助輪だけで良いのに ie11はまだいいよ
少なくともサポート外の環境をサポートする義理は無いってだけで いやIE11はEdgeに飛ばしたほうが良い
IE11をサポートするしないは超絶に違う >>782
補助輪って言ったから、あなた混乱しちゃったのかな?
あれはたとえであって補助輪は忘れましょう
ブラウザだってたくさん機能持ってるよね?
でもクッキーだけ使えればばいいんですってはならないよね?
少なくともウェブの世界では機能は多いほうが便利なんだよ。 IE11をサポートするしないは
生JavaScriptで書くと
超絶に仕事の量が違う
うーん、ならやっぱりjQueryを使ったほうが良いのでは? そうか。そもそもjQueryを使わないから、
古いブラウザ切って、NodeListが正しく動くコードはどれで
ポリフィルはいれなきゃいけないなーって話になってるのか >>788
そうだね。今話題になってる(そしてこれからも話題になる)
問題の元凶はjQueryを切り捨てようとするからだよ
jQueryを使っていれば問題はそもそも発生しない そこで第三の選択肢がでてくる。
IE11を切るがjQueryは使うという選択肢だ
これのメリットは名目上はIE11を切っているため
サポートする必要はないが、jQueryを使っているため
IE11を含めて多くの環境で、同じように動くことが保証される
その上仕事の量も減って開発コストも減るということだ
頭が固い人は、サポートを打ち切る = あえて動かなくすることだと考えるが
jQueryを使わなくても、JavaScriptは古いブラウザで動いてしまう。
そこで頭が固い人は、古いブラウザ動かなくするためにコストを支払うわけだ。
IE11をサポートしないが動いてしまうのは受け入れるという選択肢
それが一番いい方法だ 別に古いブラウザではJS動かさなきゃ良いんじゃない?
どうせJS切ってる環境でも動くようにするんだろうし
自分はもうtype="module"使ってnomoduleでChromeのDLリンク出してるよ >>793
テレビにchromeをインストールする方法を教えてほしい
インターネット対応のテレビなんだ そもそもおれたちってなんでprototype.jsからjQueryに推し変したんだっけ・・? >>757
代入文を1行書く程度のコードを「車輪の再発明」というならそうかもね jQueryで多くの環境で同じように動くというのが良く分からない
最近のブラウザではDOM操作のAPIに差はほぼ無く
ほかのWeb APIやCSSの差の方が大きいだろう >>796
お前の仕事は、代入文を一行書くだけで終わる仕事なのか?
ここでの少ないサンプルコードだけで判断するな。
仕事ではもっと多くのことをやる。
だからライブラリを使うんだよ >>797
> jQueryで多くの環境で同じように動くというのが良く分からない
最近のブラウザであってもバグがあって挙動が違うところがあるんだよ
そういうバグに対応している。 jQuery使ったほうがはやいの?
昔 Rails 使ってメモリバカ食いで高級鯖契約することになってひどいめにあったから
FWなしですむ単純な仕様はなるべくつかわないようにしてるけど
パフォーマンスメリットがあるなら今度から使うわ >>794
君の古い環境ではJSが働かない軽快なページが表示されるから安心するといいよ
どうしても入れたくばUSBデバッグを有効にして入れれば良いんじゃない
大抵UIに問題出たりするから運次第だけど >>800
パフォーマンスって測るの難しいけど
DOM操作はたいしたことないと言うか
色々なデバイスがアクセスするWebで
そこでギリギリの性能を追求するもんじゃない
やっぱ一番はネットワークかな
ServiceWorker入れてSPAにするのが一番手っ取り早いよ >>795
prototype.jsとjQueryでは後者のほうが洗練されており
セレクタが使えるのでHTML/CSSとの相性がよく
圧倒的にコードが短く書けるという違いがあった
prototype.jsの方が先にリリースされていたが純粋に
ライブラリ同士を比較すると最初からjQueryの方が優れていた
それでも先にリリースされていたprototype.jsはそれなりに使われていた
両者拮抗している中、jQueryの圧倒的普及を決定づけたのは、
prototype.jsがウェブの標準を壊してしまうという出来事
prototype.jsが提供する Array.prototype.reduce が
ウェブ標準で追加されたそれと互換性がないということ
この結果、ブラウザでは多くの実行環境が存在し、ユーザーが使う
実行環境(ブラウザ)を制限できないため、ブラウザの基本オブジェクトを
拡張してしまうと、予期せぬ問題が発生することが認知された
その結果prototype.jsからjQueryへ多くの人が流れた >>798
ライブラリ任せの人には分からないだろうけど、@@iteratorの拡張に長いコードは不要 >>802
> 確かそれ24週間だか前の話でしょ?
なんの話してるの?
24週間の間には新しいバグが見つかってないから
jQueryはバージョンアップしてないってだけで
24週間よりも前に見つかったバグはたくさんあるんだよ
そういうバグに対応している >>805
じゃあ短いコードが必要なんですねw
@@iteratorの拡張に対応してないブラウザはどうするんですか?w >>800
jQueryが速いのは開発速度
それでいて、ReactやAngularよりも圧倒的に
メモリ使用量が少なく速い。ライブラリのサイズも小さい うーん
@@iteratorを拡張するより
queryAll()みたいな自作関数を用意する方が良くない?
結局document.querySelectorAll()ってクソ長いしさ
map使いたくて[...]すればもっと長くなるし そして>>809の考えを発展させたのがjQuery >>807
forEachを使えばいいでしょ
元々、Androidを引き合いに出していたくせに都合が悪くなると、条件後出し
格好悪いよ >>806
なんでそんな適当な嘘つくの?
ブラウザは毎日沢山のバグが見つかってるしjQueryのissuesにもいくつもの報告が挙がってるし
一方とっくに解決された問題も数多あるのにただjQueryが更新されてないだけでしょ
jQueryは6週間のサイクルに全然追いつけてない
いい加減認めたほうが良いよ >>812
> ブラウザは毎日沢山のバグが見つかってるしjQueryのissuesにもいくつもの報告が挙がってるし
それを手動で対応するは大変だな。
そんな事やってるの?
お前が自分で作ったものは毎日たくさん修正が必要だってことなんだなw >>813
そうだよ?ってかそうじゃないの?
毎日色んなバグ報告チェックしてトラッキングしてブラウザのバージョンアップ前には
ベータ版で確認して毎日のようにブラウザやライブラリにissuesを飛ばす
そして毎日カット入れて更新する それが毎日の仕事でしょ
君毎日何してるの? >>815
ん?言い方が悪かったな。
お前が書いたJavaScriptのコードは
毎日のようにブラウザのバグに対応する修正を
してるのかって話だよ。 >>816
どうせきっと関係ないバグの話を持ち出してくるぜーw みてな。 どこぞのブラウザのバグに対応するなんて
本質的じゃない仕事は他人に任せて
自分がやるべき仕事をしたいな
だからライブラリを使う >>817
勿論するよ
テストもターゲット環境も毎日変わるし
ブラウザやフレームワークもbetaやdev版も使ってるから毎日何か発見があるからね
そこで今動いていても将来的に不味そうならきちんと修正する
殆どはブラウザ側やライブラリ側の問題で
そういうときは基本的には報告したりパッチを書いて向こうに直してもらうけどね >>815
屁理屈で相手を打ち負かそうとしてるのか知らんが下手すぎだろw >>820
だからー、お前が書いたJavaScriptコードを
修正しているかどうかに、はい か いいえ で答えろよ。 網羅的でなくても(できれば日本語だとうれしいけど)このURL見ろでも良い
それを元に/それに対して批判や意見書くつもりはない
普段jQueryほとんど使わないんで知識がないから
参考程度でも事例を知りたいというだけだから >>753 -> >>757 -> >>798 -> >>807
論点に一貫性がない奴だな
食いつけそうな場所を見つけて反論してるだけで、前に発言した持論をガン無視 ライブラリを使わないやつって、毎日のように
あのブラウザで動かなかった、このスマホで動かなかったと
特定のブラウザに対応するために修正してるんだなーって思った
大変だなーって思った >>825
ただの感想
実にいい加減な奴だと思った ライブラリとかUAのバグとかで悩まなくて良い方向に持ってく努力 ライブラリを使わないやつの仕事は
各ブラウザのバグや互換性のなさに
対応するコードを書くことなんですよ。
一体いつの時代に仕事なんですかねw >>831
じゃあjQueryなどのライブラリを使えば良いのでは?
毎日の無駄な仕事から解放されるよ。 気づいてないようだけど、ブラウザのバグを報告して正しく
動くようになれば、jQueryも正しく動くようになる
だからjQueryをバージョンアップする必要はないってことになるんやで? >>824
彼は逃亡中だから、そっとしておいてあげて >>833
全員が全部のライブラリ使えるわけじゃないし
学習コストを各人のオフの時間に転嫁するのは倫理的にどうかと思うからな なお報告しても正しく動くようになることは決して多くなかったIE 開発コスト > 学習コスト
これが成り立たないのが初学者なんやでプロじゃない
プロは開発コストを減らすために学習する
だけど素人は開発しないので学習コストのほうが高く見える ブラウザの互換性問題なら、PolyfillとBabelで十分だな w3techsの統計がよく挙がるけど
w3techsの統計って検証可能なの >>841
可能
FAQにどうやってデータを集めているか書いてある
https://w3techs.com/faq
> How do you know which technologies are used by a site?
>
> Primarily, we use information provided by the site itself when downloading
> web pages. In other words, we fetch web pages very much like a search
> engine, and analyze the results. Additionally, we use publicly available
> information from sources such as Alexa, Google, Microsoft and ipinfo.io. >>840
そこで解決したならば、jQueryも問題なく動くっつー訳やな >>842
データ提供元が書かれてるだけだし、publicly available informationっていっても具体的に何よ?と
Alexaって度々個人情報関係で問題起こしてたり、サイトランキングとか言って出鱈目なアクセス数出してるところでしょう
GoogleやMicrosoftがデータを出してるなら、
GoogleやMicrosoft自身がjavascript利用状況の統計を出してそうなものだけど > GoogleやMicrosoft自身がjavascript利用状況の統計を出してそうなものだけど
なんのために? w3techsが自前で収集したというデータがあるんだったら
それが何らかの形で独立して公開されてないと検証不可能 >>846
じゃあ自分でデータ集めて解析すれば良いんじゃないですかね?
嘘か本当かわからないから、
俺は信じない!じゃだめでしょw せめて対象サイト一覧ぐらいは無いと、同じようにデータを集めるということができないんじゃね >>843
問題なく動くことと採用することは等価ではない ■ このスレッドは過去ログ倉庫に格納されています