X



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

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

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

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

■回答者へ
・回答には多様性があります。他人の回答を尊重してください
・動作ブラウザや環境が限られる場合は、それを明記してください
・他人の回答を批判する代わりに、自分ならこう書くという例を示してください
・質問者がJavaScriptでなければ実現できないと勘違いしてるなら、その否定としてHTMLとCSSで実装しても良い
・他人の回答を見たくないのであれば、文句をつける代わりにNGにして見えないようにしてください。文句をつける=荒らしです
0667Name_Not_Found
垢版 |
2018/02/12(月) 10:35:10.82ID:???
>>663
そうあってほしいと考えているわけですね

でもね、最初からjQueryはDOMライブラリだって言ってましたー
その他の用途には、それ用のライブラリを使いますー
0668Name_Not_Found
垢版 |
2018/02/12(月) 13:00:09.27ID:???
>>667
jQueryがそういう用途に最適化された設計がされていないことについてはどう考える?
0672Name_Not_Found
垢版 |
2018/02/12(月) 13:03:42.86ID:???
「いつまでもDOM APIと張り合って」って
書いているところから読み取れないかな?

jQueryはなんでもできるんだろ?
あれもこれもできるんだろ?

だがjQueryはあれもこれもの用途に
最適化された設計になっていない

所詮DOM API代わりのDOM用ライブラリにすぎない
0673Name_Not_Found
垢版 |
2018/02/12(月) 13:04:38.97ID:???
当たり前ですよね?
jQueryはDOM用ライブラリですよ?

なんでDOM用ライブラリをなんでもできるライブラリに
しないといけないんですか?

どんな機能にも対応している神ライブラリとでも
思っていたんですか?
アホですねw
0674Name_Not_Found
垢版 |
2018/02/12(月) 13:05:51.12ID:???
ムキー! お前らがjQueryはなんでもできるライブラリだって言っていただろ
その公約を守ってないからjQueryはクソライブラリだ!
お前らが言っていたことができないからクソだ
0675Name_Not_Found
垢版 |
2018/02/12(月) 13:06:20.30ID:???
>>666
window.onload
https://developer.mozilla.org/ja/docs/Web/API/GlobalEventHandlers/onload

load イベントは文書のローディング工程の終了時に発生します。
このイベントが発生した時点で、文書中の全てのオブジェクトは DOM 内にあり、
全ての画像とサブフレームのロードは完了しています

画像のロード完了を待つ必要があるかな?
漏れなら、画像など無視するから、<body>のラストで、JS を読み込む
0676Name_Not_Found
垢版 |
2018/02/12(月) 13:06:28.15ID:???
お前らが言っていた = 妄想
自分の妄想が実現されてないからクソだって言ってたのか
アホだな
0677Name_Not_Found
垢版 |
2018/02/12(月) 13:16:21.54ID:???
window.onloadは発動が遅いから、
それよりも早く発動するDOMContentLoadedってのができた。
そしてjQueryはDOMContentLoaded相当のタイミングで発動する
readyメソッドっていうのをDOMContentLoadedができるより前から実装していた


でもbodyの最後で実行していれば、readyはいらんのよね。
なぜか昔はJavaScriptは、<head>の中に書くもんだってお作法があった
今はbodyの最後で書いてもよいとなったから、実はjQueryでもreadyは使う必要がない。

更に言うならば、<head>で書いたとしても、
$(document).on(イベント, セレクタ) の形式を使っていればreadyはいらないんだよね。
なぜならdocumentはその時点で存在しているから

bodyの最後で書くのは最速に思えるかもしれないけど、
1ページの長さが極端に長かった場合、bodyの最後に到達するまでは
JavaScriptの処理が発動しないことになる。

でも、<head>で $(document).on(イベント, セレクタ) の形式で書いていれば
bodyの最後に到達しなくてもイベントを捉えることができる。

イベントを捉えてももちろんまだ該当の要素が読み込まれていなければ反応はしないが
jQueryの正しいやり方で書いていれば、要素が0個でもエラーにはならない。

というわけで要素が画面に表示された直後からJavaScriptの処理が働くように
するには、<head>で $(document).on(イベント, セレクタ) の形式で書くやり方なんだが
思考に慣れが必要ではあるだろうな
0679Name_Not_Found
垢版 |
2018/02/12(月) 13:55:03.15ID:???
>>673
上でコンポーネント化の話などが挙がってるし、
逆に色々話題が出たときこれはjQueryでは向いてないという話になったことがない
なんやかんや無理やりjQueryが使えると思い込んでる
0680Name_Not_Found
垢版 |
2018/02/12(月) 14:09:36.78ID:???
思い込みが酷すぎて怖い
一緒に仕事したくないタイプ
0681Name_Not_Found
垢版 |
2018/02/12(月) 14:12:37.63ID:???
>>679
向いていないという話が出なかったら
向いていると言っているんだ!って思い込んでんのか?

例えば日付処理にjQueryは向いてない
ほら言ってやったぞ?どうするんだ?
0683Name_Not_Found
垢版 |
2018/02/12(月) 17:03:04.48ID:???
>>682
jQueryはDOMライブラリである。
誰もjQueryが何にもでも使えるとは言ってない

ここまではいいな?
0685Name_Not_Found
垢版 |
2018/02/12(月) 17:57:43.89ID:???
> なんやかんや無理やりjQueryが使えると思い込んでる

誰もjQueryが何にでも使えるとは言ってないので
(エスパーでもない限り他人が思ってることなんてわからないので)
思い込んでる事とわかるのは自分自身(>>679)だけである

ここまではよい
0686Name_Not_Found
垢版 |
2018/02/12(月) 22:13:26.66ID:???
ああ、スレ建てたやつがライブラリ禁止のテンプレ消したのか
0687Name_Not_Found
垢版 |
2018/02/13(火) 01:39:28.88ID:???
example.com?q=文字列
をサーバーサイドで受け取る時に文字列中に¥rや¥nも渡す事は出来ますか?
0689Name_Not_Found
垢版 |
2018/02/13(火) 09:34:16.09ID:???
>>685
一番の問題はそう思われてるってことだと思うぞ
jQuerer含むライブラリスタが過剰にライブラリを推してるのは事実
度々スレ分離したり議論になってるのにまだ自分たちがどう思われてるのかが分かってないのか
0690Name_Not_Found
垢版 |
2018/02/13(火) 09:53:45.83ID:???
> 一番の問題はそう思われてるってことだと思うぞ

jQueryのアンチが変なふうに思い込んでるのは
アンチが悪いってことで終わりじゃね?
0691Name_Not_Found
垢版 |
2018/02/13(火) 10:38:11.42ID:???
ライブラリの書き方はライブラリ使わないと通じない
ライブラリを使わない書き方はライブラリ使ってても使ってなくても通じる

ってところか?
0692Name_Not_Found
垢版 |
2018/02/13(火) 10:42:49.53ID:???
クチャラーに自覚したらと諭したら
俺は普通に食べてるだけ
耳障りに聞こえるのはお前が悪いと言われたって感じか
0693Name_Not_Found
垢版 |
2018/02/13(火) 22:29:27.55ID:AUT9CmqZ
react.jsやangular.jsが役立つ大規模案件、とは具体的にどの程度の規模のサイトですか?
今まで小さな企業でしか勤めたことがなく、大規模案件と言われてもイメージが湧きません
0694Name_Not_Found
垢版 |
2018/02/13(火) 22:39:43.45ID:???
>>693
てことは一生知る必要がないんじゃないか
0695Name_Not_Found
垢版 |
2018/02/13(火) 22:43:02.36ID:???
前もって勉強したいじゃん?
0696Name_Not_Found
垢版 |
2018/02/13(火) 23:09:02.10ID:???
すいませんageてしまいましたね
今のままの小さい仕事しかせずにjavascriptと言えばjqueryでチョロチョロ、みたいなキャリアで本当に将来生き残れるのかという不安があるのです
あとは、自分がjqueryしかできないから会社も大きな仕事が取れないんじゃないかとか考えてしまったりですね
0697Name_Not_Found
垢版 |
2018/02/14(水) 00:01:20.48ID:???
どの位大規模かというと、最近YouTubeがPolymerを導入した
だが、そのバージョンはv0.いくつのもの、今の最新はv3
そのくらい年単位で開発する案件に使うもの

そこからわかると思うがフレームワークは前もって勉強する必要はない
実際使うべきときには役に立たないから
大手も使うと決めたときに改めて勉強会を開くなりして対応してる
0698Name_Not_Found
垢版 |
2018/02/14(水) 00:30:16.57ID:???
離脱したくても離脱しづらくなるから使うなら見合った理由が必要
大規模だから使うというより
少数の比較的小規模な会社が
使い続けてく方が多い印象がある
0699Name_Not_Found
垢版 |
2018/02/14(水) 00:33:55.45ID:???
HTMLに影響強く出るのはあんまりやだな
0700Name_Not_Found
垢版 |
2018/02/14(水) 00:36:13.70ID:???
jQueryってもう役目が終わってるんだよ
いい加減目を覚ましたほうが良い
作者も見放してReactやってるじゃん
0701Name_Not_Found
垢版 |
2018/02/14(水) 00:46:01.50ID:???
jQuery 73.2%(前年比 +1.4%)、React 0.6%(前年比 +0.5%)
jQueryの役目が終わってからjQueryの役目が終わったというように

https://w3techs.com/technologies/overview/javascript_library/all

w3techsによると2017年1月の時点で71.9%のサイトが
JavaScriptのライブラリとしてjQueryを使用していることが判明したが
それから1年たった2018年1月現在、73.2%に1.4%も増えていることが判明した。

またAngularは0.5%、だがReactが伸びてきており0.5%
とAngularを逆転したことがわかる

だがjQueryには大幅なさをつけられており取って代わるのは
いつになるのか動向が注目される
0702Name_Not_Found
垢版 |
2018/02/14(水) 01:35:49.34ID:???
>>701
これからの自分たちがどうしていくかの話をしてるのに
他の人が今何をやってるのかを気にするって意味がわからんな

良く使われてるのは所謂「枯れた技術」とは言えるけど
熟れた物ってこれから先腐っていくこととほぼイコールじゃん
0703Name_Not_Found
垢版 |
2018/02/14(水) 01:36:52.26ID:???
HTTPがまだ周りでよく使われているからHTTPSにしないって言ってるのとかと同じだぞ?
0704Name_Not_Found
垢版 |
2018/02/14(水) 01:39:09.20ID:???
>>702
せやな、一年前に、これからはjQueryは減っていくとか
これからは腐っていくとか予想を立てた人恥ずかしいよな

これから?来年にはまたjQueryのシェア増えるんじゃね?

AngularもReactも熟れる前にくされなきゃ良いけど
Angularは一回腐れたよな
0705Name_Not_Found
垢版 |
2018/02/14(水) 01:41:28.87ID:???
HTTPSは費用と処理と通信のコストがあるからなあ
0706Name_Not_Found
垢版 |
2018/02/14(水) 01:42:14.75ID:???
>>703
> HTTPがまだ周りでよく使われているからHTTPSにしないって言ってるのとかと同じだぞ?
わかったわかった。HTTPSは最初からある程度使われいたからな

何かのフレームワークの使用率が10%を超えたら考えよう。
それでいいだろ?
0707Name_Not_Found
垢版 |
2018/02/14(水) 01:52:21.16ID:???
>>696
中小規模の会社が請ける規模の案件なら
素のJSだけでも十分やってけるよ
昔と比べて格段に安定して書けるようになってきたから
万が一必要になったらその時必要な分だけ調べれば済む
0708Name_Not_Found
垢版 |
2018/02/14(水) 01:59:06.49ID:???
大規模な会社がReact使っているかと言ったらそうじゃないからな
なにせ0.5%しか使われていない
0709Name_Not_Found
垢版 |
2018/02/14(水) 11:54:19.76ID:???
Ruby のHTMLのテンプレートエンジン、erb では、
HTMLとRubyの構文が交互に来るから、わかりにくい。
PHP なんかもそう

<% @items.each do |item| %>
<li><%= item %></li>
<% end %>

もしRuby に、JSX があれば最強だろう
0710Name_Not_Found
垢版 |
2018/02/14(水) 12:19:02.69ID:???
JSXもクソじゃん。条件分岐とループごときに
言語の機能を使うようじゃダメ
mustacheが最強
0711Name_Not_Found
垢版 |
2018/02/14(水) 13:04:34.95ID:???
ここまで見てきて分かったのは
仕様というのは作って環境というのは動かしていくもんだと考えてる開発者と
仕様というのは与えられて環境というのは落ち着いたものに浸かるもんだと考えてる開発者じゃ
話合うわけ無いってことだな
0712Name_Not_Found
垢版 |
2018/02/14(水) 13:08:40.64ID:???
問題

「作って環境というのは動かしていくもん」と
「与えられて環境というのは落ち着いたものに浸かるもんだ」の
違いを完結に述べよ
0713Name_Not_Found
垢版 |
2018/02/14(水) 13:39:11.48ID:???
>>712
簡潔に言えば仕様標準化と実装に関わっているかどうかってことで言えるんじゃない?
企業で言うとミーティングやカンファレンスに社員を出張させているかどうか
別にそれは社会貢献のためではなくて自分たちのやりたいように環境を動かすためにそうしてる
環境というが実際は人
その場にいる仕様や実装書いてる人に直接会って、
こここういうバグが有るんですよとか、こういうところで困ってるんですよとか話ができるってことが重要
やっぱりそれはオンラインでプルリクエスト送るのとはぜんぜん違う
仕様や実装を作ってるのは人間で、意外と少数だから、向こうも幅広い意見を汲み取ろうとはしてるけれど
どうしても自分たちの近い範囲が得をする恣意的なものになってしまう
そのために皆わざわざ録画で見れるものを会場まで行く
0714Name_Not_Found
垢版 |
2018/02/14(水) 15:23:42.02ID:???
会場のふいんきを感じ取れて満足した
まで読んだ
0715Name_Not_Found
垢版 |
2018/02/14(水) 19:44:59.89ID:???
>>693です
ひとまず自分のやりうる業務のことを考えたらjqueryやes6の習熟でひとまずは大丈夫だと感じました
まずはjqueryを使い倒してみて、jqueryでは不十分だと感じられるようになった段階で改めて考えてみることにします
ありがとうございました
0716Name_Not_Found
垢版 |
2018/02/14(水) 23:18:13.39ID:???
ES2017位までは追いかけても損は無いよ
0717Name_Not_Found
垢版 |
2018/02/15(木) 02:17:15.83ID:???
オブジェクト型の分割代入やasyncジェネレータなど
既にモダンブラウザで使える重要なES2018の機能もあるよ
0718Name_Not_Found
垢版 |
2018/02/15(木) 13:13:52.45ID:???
初めてのJavaScript 第3版、オライリー、2017

ES2015 の本。
これを読めば、クラスとか、素人はあまりの難しさに愕然とするだろう
0719Name_Not_Found
垢版 |
2018/02/15(木) 13:18:59.62ID:???
素人が騒然とするのは当たり前だろ?


いや、お前がプロで、難しくて騒然としたっていうなら
それはそれで面白いことだがw
0721Name_Not_Found
垢版 |
2018/02/15(木) 16:13:48.62ID:???
Maybeモナド的な機能がほすぃ
0722Name_Not_Found
垢版 |
2018/02/15(木) 17:07:52.68ID:???
JSのクラス化って何が利点になるの
0723Name_Not_Found
垢版 |
2018/02/15(木) 17:14:12.43ID:???
人間のメンタルモデルとコードを一致させられるから
理解しやすくなる。可読性の向上

ひねくれた方法で「実現できる」じゃだめなんだ
普通に書いて普通に読めなければいけない
0724Name_Not_Found
垢版 |
2018/02/15(木) 18:38:34.26ID:???
設計で方法論に従うことができる。
しかしテストでパターン数爆発で大抵死ぬ。
0726Name_Not_Found
垢版 |
2018/02/15(木) 23:02:20.37ID:???
JSにテストなんて必要ない、トライアンドエラーがベスト
テストしたいんならよりし易い言語で書いてコンパイルすべき
0727Name_Not_Found
垢版 |
2018/02/15(木) 23:17:37.27ID:???
> テストしたいんならよりし易い言語で書いてコンパイルすべき

ではその、よりし易い言語がなにで
どういう理由で、よりし易いのか言えるんでしょうな?
0728Name_Not_Found
垢版 |
2018/02/15(木) 23:56:25.01ID:???
726ではないが、結局selenium動かしたり
casperでもぞもぞしたりするなあ
0729Name_Not_Found
垢版 |
2018/02/16(金) 09:35:25.15ID:???
svgの制御についての質問はここでしてもいいですか
0732Name_Not_Found
垢版 |
2018/02/16(金) 13:18:36.03ID:???
昔foreignObjectを使って要素のミラーを作るというのを試した記憶があるのですが
今その情報を教えて頂けますか?
「あああ」をミラーしたら「あああ」が2つになって、大本を 「いいい」に変更するとコピー先も「いいい」になるという機能です
0735Name_Not_Found
垢版 |
2018/02/16(金) 17:13:54.49ID:???
地図上に車のアイコンを置いて決まったルート上(svgのパス上)を動かすアニメーションを考えていて、進行方向に合わせてアイコンの向きを変えたいのですが、何を基準に計算をして向きを調整すれば良いかわからず困っています。
svg関連で角度の計算に使える関数やよい方法があれば教えていただけますか。

動きとしては↓こちらのサイトのようなものです。
https://itstudio.co/sample/svganime/anime7.html
0736Name_Not_Found
垢版 |
2018/02/16(金) 17:30:02.88ID:???
>>735
その犬の動きのほうがよく分からんw
0738Name_Not_Found
垢版 |
2018/02/16(金) 19:03:04.44ID:???
ここの奴ら役に立たんな
もうお前らには一切聞かんわ
0739Name_Not_Found
垢版 |
2018/02/16(金) 19:39:44.83ID:7Rrckydw
>>735
SVGの線上となるとアレだけど
動かすルートが決まっているなら接線の傾き求めればいいじゃない
0741Name_Not_Found
垢版 |
2018/02/16(金) 20:21:32.71ID:???
>>739
接線か、なるほど気づきませんでした
接線の求め方から勉強してみます。。
0742Name_Not_Found
垢版 |
2018/02/16(金) 23:25:19.42ID:???
決まったルートがあるならatanだけで済む気がするんだが
0743Name_Not_Found
垢版 |
2018/02/17(土) 00:43:38.95ID:???
>>736
すみません。アニメーション自体はサイトのようなもので、これに角度の変化を付け加えたいという意味でした。
そしてよく見たらサイトのも微妙にrotateで傾けてますね。。折り返しの際に逆を向いてくれないので考えているものとは違いますが。
0744Name_Not_Found
垢版 |
2018/02/17(土) 01:07:44.05ID:Y6pp8OiO
>>743
反転はtransformのscaleを使うのが容易いかも
0745Name_Not_Found
垢版 |
2018/02/17(土) 16:14:43.08ID:???
var test = {
a: 1,
b: 5,
c: 6
}

ってあって
test.aからtest.cまでの値をループで取得しようと思ったらどうすればいいですか?
0746Name_Not_Found
垢版 |
2018/02/17(土) 16:16:29.54ID:???
3Dモデルでないと不自然になるよ
0747Name_Not_Found
垢版 |
2018/02/17(土) 16:19:34.31ID:???
>>745
『javascript test.aからtest.cまでの値をループで取得しようと思ったらどうすればいいですか?』
のGoogle検索結果を見ていけばわかる
0748Name_Not_Found
垢版 |
2018/02/17(土) 16:26:59.42ID:???
for(let [key, value] of Object.entries(test)){
console.log(key + ':' + value);
}
こうするとちょっとPHPっぽい
0749Name_Not_Found
垢版 |
2018/02/17(土) 17:13:27.27ID:???
>>745
for (let v of Object.values(test)) {
console.log(v);
}
とか
Object.values(test).forEach(v => {
console.log(v);
});
0750Name_Not_Found
垢版 |
2018/02/17(土) 17:23:12.09ID:???
こっちのが汎用的だったか
Object.entries(test).forEach(([key, value], index) => {
console.log(key, value, index);
});
0751Name_Not_Found
垢版 |
2018/02/17(土) 17:51:17.23ID:???
なんで標準のJavaScriptを使うと
冗長になるのか教えてほしいものだ。

lodashを使ったほうが短いとか意味分からん
_.forOwn(test, (value, key) => {
 console.log(key + ':' + value);
});
0752Name_Not_Found
垢版 |
2018/02/17(土) 18:17:17.64ID:???
どの言語も普通は標準よりライブラリ使った方が短くならね?
0753Name_Not_Found
垢版 |
2018/02/17(土) 18:54:43.59ID:???
だよなw
いつものlodashくんがスレチ話するためのエクスキューズのつもりなんだろw
0754Name_Not_Found
垢版 |
2018/02/17(土) 21:34:02.04ID:???
自作の関数作ればもっと短くなるよね
はいlodash敗北
0755Name_Not_Found
垢版 |
2018/02/17(土) 21:39:19.11ID:???
ほんとlodashの名前が出るだけで
必死になるなw
0756Name_Not_Found
垢版 |
2018/02/17(土) 22:26:40.80ID:???
for( var key of test )とかfor( var key in test )じゃダメなん?
0758Name_Not_Found
垢版 |
2018/02/17(土) 23:23:30.35ID:???
>>756
前者はそもそもエラーなので論外
後者は普通にあり
entriesやvaluesは使えない環境も多いしね
個人的にはObject.keysを使うことが多いかな
よっぽど大量にループさせるんならfor..in使うけど
0759Name_Not_Found
垢版 |
2018/02/17(土) 23:59:58.10ID:???
使えない環境はあるがけして多くはない
そんなことを言ったら何もできない
いつまでレガシーブラウザを延命させる気なんだ
0760Name_Not_Found
垢版 |
2018/02/18(日) 05:22:16.55ID:???
for..inで十分にできて、key / valuesが key / test[key] になる程度の違い
構造は明示されてて
構造が未知だったり完全に信頼できなかったりしない
javascriptはゴルフ絶対主義なんか
0761Name_Not_Found
垢版 |
2018/02/18(日) 06:20:37.10ID:???
for-inのデメリットは.hasOwnProperties()のチェックを入れるかどうかの問題が発生するから

もちろんオブジェクトにそのチェックが不要だという保証があるなら.hasOwnProperties()で調べる必要はない
0763Name_Not_Found
垢版 |
2018/02/18(日) 06:44:57.56ID:???
hasOwnPropertiesやっててよかったとか
今までに一度もないなw
0764Name_Not_Found
垢版 |
2018/02/18(日) 08:22:54.79ID:???
for..inは式ではなく文なのがちと煩わしい
とはいえ素のJavaScriptで
Object.values(test).filter(x => x % 2 === 0).map(x => x * 2)
みたく書くと無駄に何度も配列作っちゃうから、そういう意味ではlodashが羨ましい
0766Name_Not_Found
垢版 |
2018/02/18(日) 11:31:30.39ID:???
何度も配列作らなくてもforEach内の処理で十分な場合が多い
filterとかしなくてもif returnで良いんだし
■ このスレッドは過去ログ倉庫に格納されています

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