JavaScript の質問用スレッド vol.123 [無断転載禁止]©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん 転載ダメ©2ch.net (ワッチョイ 73c8-oPzN)
垢版 |
2017/04/03(月) 00:31:25.68ID:82yaJsi70
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.122
http://echo.2ch.net/test/read.cgi/tech/1472426483/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
2017/05/16(火) 22:27:17.83ID:UlJ2aQ8H0
それは思い込み、実際は逆だよ
趣味でやってる人達は自由、好きにやればいいだけの優位者
職業としてやってる人達の方にハンデがあるんだから尊重してもらわないと困る
2017/05/16(火) 22:45:21.09ID:bc694O2E0
>>212
前それ別スレで話題になっていたが、
個人的には「天然」の方が「養殖」よりも上質だと思っているよ。
ただ毎日毎日コードを眺めているのと、せいぜい月に2〜3日では場数が違うわけでさ。
とはいえ場数をこなせば上達するわけでもないというのは事実なのだが、
個人的には奇妙だとも思っている。
普通は場数をこなせば次第に上達するものではあるからね。

いずれにしても、「勉強しよう」と思うのは良いことだけど、
いわゆる「お勉強」で単純に上達するというものでもないんだ。まだ今は。


さてもう一度見直して気づいた。コードを書き慣れていない奴の特徴は、
・無駄な改行が多い
・空行が多い
これは多分共通だし、初心者でも見て分かるはず。

つかね、10,000行とかのソースだとただでさえスクロールしまくりなので、
1画面に出来るだけ沢山詰め込みたいという欲求が発生し、
空行とか無駄改行は全くやらなくなってくるんだよ。ウザイから。
これは割と共通の癖だと思う。
Pythonerが括弧を嫌うのも閉じ括弧だけの行がウザイからだし。
詰めて書いても今時色分けされるから見間違えることもないし。
(ただもちろん中には例外もいて、どんだけスクロールしても問題ないらしい奴もいる)

見た目、せいぜい50行程度しかまともに書けない奴が、
頑張って2,000行書きました、えっへん!みたいなコードだね。
ただ、これって誰しもが通る道だから、これ自体が悪いとは思わないけど。

なおコード自体は昔の定義の「コピペプログラマ」がこんな感じ。
実は結構いたりすると思うよ。
2017/05/16(火) 22:52:40.26ID:bc694O2E0
なんつうかね、

長文に全く慣れてない奴ってこんな風に、いちいち改行したりするでしょ。

それって長文に慣れてるとものすごくウザイでしょ。

余計に読みにくいし。(多分斜め読み出来なくなるから)


だけどコードに慣れてない奴って、やけに改行や空行入れたがるんだよ。

それは、改行をウザイと思うほどコードを読んだことがないってこと。

つまり、初心者だって事だね。
2017/05/16(火) 23:30:21.74ID:28fcRnPx0
「初心者プログラマーにありがちなこと」ってスレタイでプログラマースレに立てるべき内容になってきてるぞ
すぐ「プログラマー」の話にズレていくのは職業プログラマーの悪い癖
2017/05/17(水) 00:00:46.55ID:kS+euEi/0
まあその通りだが、あのコードから技術的にってのは無いからね。

ただ、一般的にあの規模のコードだと、割と平べったくなりがちなのも事実。
これ自体は不思議ではないんだよ。
ちょうど一つのクラスとして切り出すか?というサイズだから。
で、おそらくお互いが相手をヘボだと見なし、
無駄に争っていたのだろうというのも想像に難くない。

先に言ったように、あのコードをさらに大規模化する場合、
functionで囲ってクラスに変える。
そうするとグローバル→インスタンス変数になるわけで、これ自体は問題ない。
だから「グローバルが〜」ってのも初心者にありがちな間違った指摘で、
あの規模のコードならあれで良いんだよ。

結局、文法的なことしか見えない程度のくせに
コードの善し悪しなんて議論するからアレな事になる。
あのコードは不思議なコードではないんだ。
良いコードでもないし、上手いコードでもないけど。
でも誰しもが通る道だよ。
2017/05/17(水) 00:11:36.09ID:r9YOxAGU0
「技術的ってか、この辺はセンスの問題だな」ってさ、仕事しててもよく言われる

装置のログの解析とかもそうだけど
なんで1時間とかそこらでログの解析できんだ?
なんで、そんなにコーティング早いんだ?
センスって言われると、習得しずらいんだよな。

まるで職人技だよな
2017/05/17(水) 00:43:36.95ID:aIm9uZNt0
センス関係ない
「とりあえず動くコード」で満足するか、より良い品質にこだわるかの考え方の違いだ
2017/05/17(水) 00:45:04.71ID:kS+euEi/0
>>218
> 仕事しててもよく言われる
つまりセンスが無い方の人なんですね乙

ただまあ「センス」って言っているのは教えようがないからだよ。
それは俺はまだ教育技術が未発達だからだと思っている。
数学とかのセンスって、
「ところでこれをどうやって思いつくんだ?」
であって、明らかに東大とかよりもはるか上のレベルでしょ。
今のプログラミングが要求している「センス」って、もっと断然低いところでしかない。
それでIDEやインテリセンスで効率が上がる(キリッとか間抜けなこといっているわけでさ。
「なるほど確かにこの構造にすれば恐ろしく簡単に実装出来るが、
ところでどうやってこれを思いついたんだ?」では全然無いよね。
フェルマーの最終定理(x^n+y^n=z^n)とか、問題の意味は分かるがどうしろと?だろ。
あれを「センス」と言うべきなんだよ本来は。

> なんで1時間とかそこらでログの解析できんだ?
当たりを付けているからだよ。
映画やアニメでハッカーがでてきたら「ほらビンゴだ!」ってよくやってるだろ。

> なんで、そんなにコーティング早いんだ?
コーディングに速さは必要ない。
最終的にデバッグ終了までの時間が勝負で、実際デバッグの方が遙かに時間かかるでしょ。

ただまあ、あのコードはいずれにしても不思議なコードではないから、
見た瞬間、ああ、このレベルですね、ってのは順当に分かるようになるはずだし、
そこまでの上達にはセンスは必要ないはずだから、
君が今やるべき事は、とにかく何でもいいから書くことだよ。
2017/05/17(水) 00:56:37.57ID:kS+euEi/0
>>219
これはあるね。よく言われる「職人気質」って奴だよ。

プログラミングは自己完結して己の美学を目指せる奴しか上達しない。
これは一般には「職人気質」と言われる。
おそらく職人も同様にこの性格じゃないと上達しないため、
結果的に生き残っている職人はこのタイプが多くなるのだと思う。

だからそうじゃない奴は、向いてないから止めた方がいい。


あのコードは、まさに
> 「とりあえず動くコード」で満足する
タイプが書くコードなんだよ。だから悪いと言うほど悪いコードでもない。
なんつーか、手堅く動くだろうが、動くだけのコードですねってとこ。
しかしカレンダーなんて今更仕様変更はないし、保守性なんてどうでもいい。
自分で書き直すのもかったるいし、俺的には渡されたら使うかは迷うところだね。
2017/05/17(水) 01:17:15.04ID:kS+euEi/0
ところでMapだが、

> for (var [key, value] of myMap.entries()) {
> console.log(key + " = " + value);
> }
> https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Map
これって分割代入で、chrome49〜ですってオチあり?
Mapはchrome38からになっているし、entries()もそうなのだけど。
2017/05/17(水) 01:34:13.73ID:y0sg8W2t0
>>222
babelを使えば古いブラウザでも動くのではないか?
2017/05/17(水) 01:44:59.69ID:kS+euEi/0
いや無駄に対応バージョン上げたくないんだ。
やっぱそうなんだよな?
今回はkeys()で1箇所書き直せばいいだけだからそうするよ。サンクス。
2017/05/17(水) 07:29:14.42ID:L5+4x8hM0
Chromeのバージョンを気にする、しかも10も前とか普通じゃないな
2017/05/18(木) 23:57:01.79ID:QkFLciDt0
オレがいままで作ったjavascriptのアプリケーション

・画像うuplodar (2012年から公開してる今年で5年目)
→javascript,html5,mysql,phpで作成

・単語帳(非公開、TOECI勉強用に使った自分専用の単語帳)
→複数のtxtに書いたjsonデータの文字列を読みんで表にして表示する

今のとこ、とりあえず動くレベル→自分で読みづらいとこと修正と改善
を延々とやってる。
ってか、仕事と英語の勉強が忙しいから、javascript勉強してる暇があまりない

購入して積ん読になってる、日経ソフトウェアのjavascript特集を読みたいがいまいち暇がない
2017/05/19(金) 00:58:06.06ID:+ix37Tej0
むしろchromeの古いバージョン使う方法ってあるの?ネットが使えない環境とか?
2017/05/19(金) 21:19:25.76ID:PWVc802d0
ReduxはReact専用じゃないというけど、React以外で使いやすいのはどのフレームワークかな?
2017/05/20(土) 00:04:22.78ID:T9Vl1Go7M
>>227
サブの動作確認用スマホとか古いままだけどなぁ
2017/05/20(土) 04:04:11.15ID:Q+8+XcCz0
>>228
別になんでも使えるんじゃないか。
storeをsubscribeするだけなんだし。
2017/05/20(土) 08:41:00.64ID:ZTnw5ZtI0
その「subscribeするだけ」の具体的なやりかたを知らないんで、そういうライブラリや資料が
そろっていたりして使いやすいものがあるか探してる。
Reactならreact-redux入れてその通りにやればよかったんだけど。
>>230は何のフレームワークを使ってどんなふうにやったことがあるの?
2017/05/20(土) 11:00:51.79ID:Vxiesmpy0
phinaとかpixiとかenchantとか色々あるけど結局ゲーム製作用ライブラリとしてはどれがいいの?
2017/05/20(土) 11:43:08.14ID:2QFlCqZ1d
それらはゲームにも使えるというだけの汎用描画フレームワークだから
本当に描画部分から音周りまで完璧に揃っているフレームワークは
例えばノベル専用みたいな汎用性の無いものしかない。
ガチで作りたいならやっぱりUnity等のゲームエンジンからの書き出ししかない。
2017/05/20(土) 17:11:04.67ID:Q+8+XcCz0
>>231
redux はコード量が少ないから直接見ることをすすめる。
subscribeはまんまそのままのメソッド生えてる。
2017/05/20(土) 17:16:56.10ID:Q+8+XcCz0
>>231
ごめんreactからしか使ったことはないけどchrome-extension作るのに使ってて、react以外からdispatch投げたり、イベント処理する必要があるからよく使う。
なんつーかただのjsonの塊だよね結局。typescriptから使ってるから問題ないけど、素のjsから使うとなるとあの巨大なjsonの塊をよくいじれるよなーと思う。
2017/05/20(土) 22:18:55.23ID:ZTnw5ZtI0
なるほど、ありがとう
2017/05/21(日) 16:49:46.53ID:BQHBWsZS0
要素数が1か1以上かわからない(0ではない)配列をsortするとき、特に要素数を
数えて条件分岐しなくてもそのままsort関数適用させてもいいですかね?
何かパフォーマンス的に問題出たりしますか?
2017/05/21(日) 18:45:14.37ID:Qcnnq4EA0
elmはいいぞー
2017/05/21(日) 21:42:26.20ID:feqlkx7U0
>>237
問題は出ますん
2017/05/21(日) 22:26:43.45ID:8o9mWviY0
>>237
要素数が0であっても配列であれば何の問題もない
パフォーマンスは問題が出てから解決すればいい

大きな影響ないことなのに、ブラウザごとに挙動が違う問題を
いちいち考えるのは時間の無駄
2017/05/21(日) 22:55:20.58ID:fcCJNl/UM
そのレベルで効率化ガーは本当に間抜けな話だとおもうよ
何も変わらんさ考えるだけ時間の無駄でただのオナニー行為

最近流行のHTML5でのパーティクル表現なんて毎秒数百オブジェクト新たに生成して一定時間生存させ消していく
その管理の配列がどんどんインデックス追加でオブジェクトがあるかないかのif判定を毎秒数万、数十万とかやってるプログラムとかよく見る
馬鹿げた設計だとおもってもそれで普通に動いてるから笑える
今はそんな時代だよ
2017/05/21(日) 23:52:11.78ID:BQHBWsZS0
皆さんありがとうございます
上司が割と効率にうるさいので怒られるのが嫌で気になった次第です
問題ないみたいなのでこのままいきます
2017/05/22(月) 00:04:03.94ID:FRIGOkgNM
>>242
効率化というより、ソースのわかりやすさ、管理のしやすさを考えればいいよ
判定文を入れることで皆がわかりやすくなるなら入れれば良いし
今度どう使われるかはっきりわからないモジュールならエラー処理をしっかりいれるとか
2017/05/22(月) 00:15:50.44ID:KxRThp41d
これで効率云々言われるなら、保守の効率引き合いに出して揉めたほうが良いと思う。
2017/05/22(月) 01:16:10.94ID:jp4wTISD0
つかその上司もここで怒る事はないだろ。
新人なりに思いついたから聞いてみただけだろ。

てか上司に聞けよ。
2017/05/22(月) 11:36:54.13ID:0kkPVdOqd
そこまで気にすることはないけど、理由がここまで言われてるのとは違う
実装見れば分かるけどsort関数は要素数などによってアルゴリズムが使い分けられてて、汎用的なソート関数としてはこれ以上ないくらい最適化されている。
エンジン側の主張は、それ以上を求めるなら専門的なアルゴリズムのものを自作しろとのこと。
2017/05/22(月) 20:24:53.55ID:jp4wTISD0
ちげーだろ。つか>>246はもうちょっと状況を把握しろ。

よく上司に「無駄なことをするな」と言われる新人がいて、
そいつがふと「要素数1のArrayに対してsortは無駄じゃね?」と考えた。
だからここで聞いてみた。結果はご覧の通り。

新人だから何が無駄で何が無駄ではないのか分かってないんだよ。
それは仕方ない。だから新人なりに考えてみた、これは正しい。

しかしこのレベルの話は上司に聞いたほうがいい。
俺たちに聞いて回答が食い違ったとき、誰が正しいか新人君には分からないだろ?
現在のところキチガイは現れておらず、常識的な回答が揃っているが、これは偶々。
ここにはマジで頭おかしい奴はいる。
最低限そいつらを見分ける能力がないと、ここは使えない。いわゆる嘘を嘘と(ry

だったらとりあえず一応は信頼できる(ことになっている)上司に聞いたほうがいい。
そして、どうしてもその上司の判定に納得できなければ、ここで出来るだけ詳しく晒せ。
そしたら俺たちがどっちの頭がおかしいか判定してやるから。

なお質問は、「arr.sort() は if (arr.length>1) arr.sort() にすべきか?」だろ。
ここには日本語が不自由な奴もいる。
誤解無く伝えたいのなら、コードで書くのも手だよ。
2017/05/22(月) 21:36:29.80ID:6t8os15O0
> よく上司に「無駄なことをするな」と言われる新人がいて、

普通は無駄な作業って意味だよ。
人的コスト=時間がかからない方法を選択しろといういこと

問題になってない部分のパフォーマンスの良し悪しに
悩むっていうのも無駄な作業の一つ

ただ新人の場合は、特に勉強しないと無駄な作業が減らせない。
無駄な作業を減らすにも、時間がかかる。

だから上級者によって「無駄なことをしないコード」が
必ずしも時間がからない方法とは限らない。

どれだけ勉強すればいいかは本人次第なのだから、他人にそれがわかるわけがない。
だからこういう場では上級者(質問に答える人)にとって無駄がないコードを提示するしかない

質問に答える人は、もし前提となる知識が特殊なものや大きければ、○○を知っているならば、
この方法を使うのが一番無駄がない(=時間がかからない)と答えるのが良いだろう。
2017/05/22(月) 22:57:40.88ID:jp4wTISD0
>>248
> と答えるのが良いだろう
じゃあまずお前がやれよキチガイ
2017/05/22(月) 23:11:11.24ID:XhRKlUOx0
javascriptスレかと思ったら社畜プログラマーが新人指導についてご高説を垂れていた
2017/05/22(月) 23:29:33.71ID:vGCFGEpe0
おまいらそんなすぐ煽るなや
2017/05/22(月) 23:30:12.68ID:FRIGOkgNM
>>248
だからさー、配列要素1の時にif文かますのとそのままソート掛けるのとどっちが効率いいかおまえにわかるのか?ん?
環境の実装しだいだろそんなもん
どちらにせよ何も気にするレベルじゃないという回答以外に何があるっているんだ?ん?
2017/05/22(月) 23:37:56.72ID:GGalZ9mO0
変なこと聞いてスレを荒れたような結果にしてしまってすみません
2017/05/22(月) 23:40:11.09ID:6t8os15O0
>>249
> じゃあまずお前がやれよキチガイ

>>240ですでに答えているが?
2017/05/22(月) 23:40:15.75ID:XhRKlUOx0
>>253
プログラミングで計算効率について考えるのは全然変なことじゃないぞ
むしろ基本
2017/05/22(月) 23:41:49.08ID:6t8os15O0
>>252
速度については誤差以上の差は出ない。

だから開発効率(作業コストが低い方)を選ぶべき
つまり読むべきコードが少ない方がいい
2017/05/22(月) 23:49:15.91ID:XhRKlUOx0
「パフォーマンスの問題」について質問したのにいつの間にかに「作業コスト」の問題に変わっている

これが動的型付けって奴だな
2017/05/22(月) 23:55:39.55ID:CEFnqLB20
Array.prototype.sortに判定させた方が当然に速い
2017/05/23(火) 00:00:19.33ID:ac/v7j2N0
>>253
いや君は何も悪くない。(むしろ俺が仕掛けた)
ただ多分、上司に聞いたほうが効率はいい。

事実としてここには変な奴がいる。しかも一人じゃない。
というか>>239-243で回答としては完全に正解で、それ以上どうこうってのはない。
しかしなぜかケチがつくだろ。
2017/05/23(火) 00:05:49.69ID:OxXI/az90
>>261-1000
ここで聞くより上司に聞いたほうが効率がいいよ



スレッド糸冬了
2017/05/23(火) 15:57:30.36ID:i5pqu4ALa
>>259
ありがとうございます
そうですね…業務上のコードは自分なりに調べてからちゃんと上司に相談します

あとこれは仕事は全然関係なくてちょっと気になっただけなので恐縮ですが、JavaScriptには擬似的な
プライベート変数を持たせるためにクロージャという仕組みがあって、関数内で関数を宣言できると聞きました
その場合
function hoge(){
function piyo(){ }
}

function hoge(){
var piyo = function(){};
}
という二種類の宣言方法があって、「前者は呼び出し時に巻き上げされて後者はされない」というところまでは
わかったのですが、それだけだと後者にするメリットが無いような気がするのですが、何か他に
抑えておくべきポイントはありますか?
普通は皆さんどちらを使われてるんでしょう
2017/05/23(火) 19:13:13.15ID:3X8zsS83a
>>261
正解は人それぞれだが、関数定義後に関数呼び出しをするのは一般的で、そう決める事で厳格なコードになる。

前者のコードの場合、関数定義より手前で関数呼び出し出来るが、後者は出来ない。
従って、ある関数定義を見つけたい場合、関数呼び出しより前に存在する事が確約されており、関数呼び出しコードの後ろを読む必要はない。
前者はコーディング規約で制限することは出来ても、後述で関数定義されることを止めることが出来ない。

最も、そのあたりを気にする人は let, const を使用する方が無難ではあるが。
IE10- がMicrosoftのサポート対象外となった今では const, let の実用性は増している。
http://kangax.github.io/compat-table/es6/
2017/05/23(火) 19:27:23.00ID:OSHuKcjsa
>>262
なるほど、ありがとうございます
原則後者で書くことにします
2017/05/25(木) 02:28:11.58ID:XwREWC52F
>>247
だからそれも含めて気にする必要ないといったんだよ
2017/05/25(木) 02:46:59.65ID:kwmzBMx/0
>>262
> 正解は人それぞれだが、関数定義後に関数呼び出しをするのは一般的で、そう決める事で厳格なコードになる。

php、perlでは関数定義より手前で関数呼び出しができますよね?
関数定義後に関数呼出しするのが一般的という根拠はなんでしょうか?
2017/05/25(木) 04:37:45.02ID:EJLYJcDnM
この痛いおっさんのせいで毎回荒れるな
2017/05/25(木) 07:07:39.46ID:sTAredU30
JavaScriptを勉強しようとしてる
目標として言語仕様の習得段階を分けようとしてるんだけど良い切り分け段階ないかな??
C++なら変数の型、ポインタ、クラスの基本的な扱い方みたいな

htmlの基本的な扱い方と、JavaScriptの連動がはじめにくるのかなって思うけど次の段階はなにだろうか
2017/05/25(木) 09:45:27.07ID:kwmzBMx/0
もともと関数定義後に関数呼び出しをするというのは
C言語ではプロトタイプ宣言と言われ、
正確に言うならばこっちは関数呼び出しができるか?ではなく
コンパイルができるか?という話なので少し意味が違うが、
まあ、ともかく特殊な方法が必要だった。

それが面倒だってことで改良したJavaでは、
関数定義の順番とは無関係に関数呼び出しが
コンパイルできるようになった。

コンパイル言語とスクリプト言語の違いがあるから全く同じ考え方ではないが、
定義の順番とは無関係に呼び出せる設計に進化してきている。

巻き上げという仕様だって本来はないほうが実装は簡単なんだよ。
だけど定義の順番とは無関係に呼び出せるようにあえてそういう機能を搭載している

だから関数定義後に関数呼び出しをするのは一般的といわれると違和感がある
2017/05/25(木) 09:55:31.20ID:kwmzBMx/0
それから変数の巻き上げと関数の巻き上げは意味が違う。

変数の巻き上げは、その変数が使えたとしても
無効な値(undefined)が入っているから通常は役に立たないが

関数の巻き上げ
foo();
function foo() {}
↑こういうのは、正常に動作する。

"正しく動かない" からメリットがない。だから変数の巻き上げは危険
という話なので、 そもそもの前提が違って
"正しく動く" ならば、なんのデメリットもないんだよ。
2017/05/25(木) 10:03:02.23ID:kwmzBMx/0
>>262
> 最も、そのあたりを気にする人は let, const を使用する方が無難ではあるが。
本末転倒。

var piyo = function(){}; なんて書き方を使うから、
piyoが書き換えられたらどうする?
constにした方がいいんじゃね?なんて話が出てくる

function piyo(){ } であれば piyo に別の関数を代入することはない。
もちろん代入できるが誰もこんなコード↓は書かないだろ?

function piyo() {}
piyo = function() {}

そしてこんなコードを書いたら関数に代入すんなと
ESLintでちゃんと警告出してくれる。
2017/05/25(木) 10:30:51.91ID:DNIeToc+0
テキストファイルは行ごとに順番に読み込んでいくからな
順番があったほうが分かりやすい

プログラミングのコードは、特にスクリプト言語のコードは
プログラムを動かすための命令であると同時に
それ自体がプログラムで分析される対象となりうるテキストファイルでもあるのだ
2017/05/25(木) 10:46:20.22ID:kwmzBMx/0
関数の呼び出しは順番に実行しないし、
順番に実行すると言うならばなおのこと
このように書いたほうがわかりやすい

step1();
step2();

function step1() {
 step1_1();
 step1_2();
}

function step1_1() {
 ・・・
}

function step1_2() {
 ・・・
}

function step2(); {
 ・・・
}
2017/05/25(木) 15:31:10.05ID:0WgUeo5I0
ところで「巻き上げ」って呼び方流行ってんの?
どこのバカが言い出したんだ?
2017/05/25(木) 15:42:09.80ID:yXnULsJhH
>>273
てか、hoistingを巻き上げ以外になんと呼んでるんだ?
2017/05/25(木) 16:07:28.36ID:N9M4fQaRa
ほいすてぃんぐ
2017/05/25(木) 16:11:03.90ID:yXnULsJhH
>>275
うーん、google調べでは巻き上げが優勢なんだが

javascript ホイスティング 約 1,370 件 (0.51 秒)
javascript 巻き上げ 約 180,000 件 (0.41 秒)
2017/05/25(木) 20:03:50.62ID:0WgUeo5I0
ああ、モジラの日本語文書で使ってるのか
なんか感覚的にスゲー気持ち悪い
だいぶ前にもこのページは見た事あるはずだけど その時から使ってたのかな
2017/05/25(木) 20:13:19.19ID:qvTBr+rPa
事後宣言←
2017/05/25(木) 22:22:17.00ID:Z3vgZ/N70
jQueryでPHPにajaxでデータを送りたいのですが

まず、これはきちんとファイルが送れて、PHP側でも$_FILESでデータを受け取れます。

var fd = new FormData();
fd.append("file", uploadfile);
var postData = {
type : "POST",
async : true,
dataType : "text",
data : fd,
processData : false,
contentType : false
};


しかし、下のコードの場合は$_POSTが空になります。

var myData = {"txt":str, "formdata":fd};
var postData = {
type : "POST",
async : true,
dataType : "text",
data : myData,
processData : false,
contentType : false
};

dataにフォームデータではなく配列を指定した場合
PHP側で受け取りデータが空になるのは何故なのでしょうか?
1週間ここで詰まってまして、、、誰か助けて下さい
2017/05/25(木) 22:29:31.05ID:kwmzBMx/0
>>249
1週間、なにを他に試したのか書いてみ

まさか、そのコードを何も変えずに
実行して、値が取れないなぁって
何度もやっていたわけじゃあるまいな?
2017/05/25(木) 22:29:56.76ID:iZTPtxiK0
processData : false,
contentType : false

この2行が不要
2017/05/25(木) 22:31:28.67ID:plB+en290
マニュアル読めって話だな
まさか英語だからって読んでないってことはないよね
2017/05/25(木) 22:50:45.14ID:3AHvv4q40
async : true,って書いたことないけどなんか変わるん?
寧ろ
cache:falseって付けない方がなんか不安なんだけど
2017/05/25(木) 22:58:37.69ID:3AHvv4q40
dataType : "text",←がマズイんじゃない?
formベースだと↓で書くし
タグのプロパティにenctype="multipart/form-data"
とか書くし
どっかのサイトには
dataType : "json",って書いてあるところもあったけど

非表示のフォーム作って
data: $("#form").serialize()みたいな事やった方が
ってやった方が確実じゃない?
2017/05/25(木) 22:59:15.72ID:Z3vgZ/N70
>>280
配列の書き方からPHP側でのvar_dumpから
画像変えたりとにかく色々試しました

>>281
その2行削ったら
Uncaught TypeError: Illegal invocation
が出てそもそも送信が出来なくなりました。

>>282
関係ありそうなところは読んだのですが
特に問題なさそうですし、そもそもWEBのサンプルコードを
コピー改編して作ってるのであまり間違いはなさそうに見えるのですが、、、
2017/05/25(木) 23:00:40.03ID:Z3vgZ/N70
>>283
送信のプログレスバーを表示したくてasynctrueにしています
2017/05/25(木) 23:01:15.87ID:Z3vgZ/N70
>>284
dataTypeをjsonにするのも前に試したのですがダメでした
2017/05/25(木) 23:03:43.70ID:kwmzBMx/0
配列の書き方ってなんだよw
2017/05/25(木) 23:07:22.84ID:Z3vgZ/N70
>>288
配列にするとダメになるので配列の書き方が間違ってる可能性を疑いませんか?
2017/05/25(木) 23:08:08.41ID:3AHvv4q40
<from>タグで書いたフォームを送信した場合と上の上手く行く場合上手くいかない場合をWiresharkでパケットキャプチャしながら比較してみたら?
2017/05/25(木) 23:09:44.87ID:kwmzBMx/0
>>289
だから配列の書き方をどう変えて試してみたんだ?って話
2017/05/25(木) 23:13:13.28ID:3AHvv4q40
var myData = {"txt":str, "formdata":fd};
ここだけみると
strとfdが定義されてなくない?

寧ろ↓みたいな型あるなら
var fd = new FormData();
fd.append("file", uploadfile);
fd.append("txt", str);
とかでいいんじゃない?
2017/05/25(木) 23:13:27.27ID:Z3vgZ/N70
>>291
キーの名前をダブルクォーテーションで囲ってみたりとか
要素のカズを1つにしてみたりとかですが
それを聞くってことは配列の書き方に原因があると踏んでるのでしょうか?
2017/05/25(木) 23:15:34.10ID:Z3vgZ/N70
>>292
もちろんソースの上の方でstrは定義されています
実は3日くらい前に
fd.append("txt", str);
も試したのですが、PHP側でtxtの抜き取り方が分からず、
$_FILESをvar_dumpして中身を見てもtxtの内容が見当たらなかったのです、、、
2017/05/25(木) 23:18:39.00ID:3AHvv4q40
>>289
json規格では
{name1 : "value1", name2 : "value2"}
ってのはオブジェクト
配列は
array : [0,1,2,3]
みたいなのの事を指す

>>294
print("<pre>");
print_r($_POST);
print_r($_FILES);
print("</pre>");
でみてみりゃいいじゃん
2017/05/25(木) 23:31:08.42ID:Z3vgZ/N70
>>295
ありがとうございます!無事解決しました!

しかし原因が分かるとID:kwmzBMx/0の指摘の
的外れっぷりが笑えてくる・・・ww
無能すぎんだろwww
2017/05/25(木) 23:38:13.00ID:3AHvv4q40
いやいやPHPやってて$_FILES使ってて
$_GET $_POST $_REQUESTを知らないとか相当進め方おかしいから

体系的にやり直したほうがいい
2017/05/25(木) 23:48:07.09ID:Z3vgZ/N70
>>297
はいすみませんでした・・・
2017/05/26(金) 00:14:18.03ID:xduQ3JhA0
>>293
> キーの名前をダブルクォーテーションで囲ってみたりとか
> 要素のカズを1つにしてみたりとかですが
> それを聞くってことは配列の書き方に原因があると踏んでるのでしょうか?

数学に例えれば、計算が間違っていると言ってるのに、
* じゃなくて×って書くべきだったかな?
それとも変数はxとyじゃなくてaとbを使うべきだっったかな
ですます調で書くべきだったかな?
って言ってるようなもんだって言ってるんだよ

そんな意味のないことをやって時間を無駄にしてる

お前が嫌いな部分をちゃんと調べろよ
2017/05/26(金) 00:25:48.13ID:bNTJaYcW0
この分だと
<form action="action.php" method="post">
<input type="text" name="my_name" />
<input type="submit" value="送信" />
</form>

みたいなWebフォームも書いた事なさそうだな
2017/05/26(金) 10:54:56.14ID:jgQEkVrVH
data scheme URIで表示している画像(サーバー上に存在しない)を
ツイートボタンで添付してTwitter上に表示させる方法って存在する?
2017/05/27(土) 15:53:29.10ID:/OhQ0A3Ja
色んな質問見てるとjsはコピペすればOKと考えてる奴が多くてゲンナリするな
2017/05/27(土) 20:14:42.45ID:MWSRFZ3F0
今までは簡単な数行のアプリならテスト書かずともいいやっておもってたけど
BABELとかwebpackとかを初めて知って
テスト書かずにプログラムは無理って思った。
2017/05/27(土) 21:14:34.18ID:njF0J5En0
結局はコスパ
いくらテストが大事とは言ってもテストクソしにくい物はできない
簡単にできるんならすればいい
2017/05/28(日) 01:12:50.76ID:N5TIDcJY0
jestはなんかテスト書きやすい。設定とか特にいらずに使えるから?
2017/05/28(日) 06:24:31.77ID:Jy+iGWQUp
私はjapがプログラムを作成することに向いていないと思います
japはマニュファクトリーが向いているです

彼らはITの産業を大韓民国の企業に依頼するべきです
2017/05/28(日) 07:26:39.79ID:g7njks+J0
キムチ
2017/05/28(日) 07:41:48.03ID:YILpTCJTa
戦争始まりそうな所に委託なんか出来ない
2017/05/28(日) 13:05:06.62ID:Y1FLfJ9O0
ベトナムとかマレーシアとか信頼できる国あるし敢えて敵国に依頼する必要はないと思う
2017/05/28(日) 14:46:17.46ID:bwXZtahX0
今更気づいたが、2chでもデフォでJS使ってポップアップするようになったのね。
というわけでソース見てるが、あーはいはいって感じですね。
2017/05/28(日) 15:07:22.38ID:m00obNBd0
あーはいはいでわかるかよw
あれだ、評価するとお前の評価がクソだってばれるから
そうやって詳しいふりしてるんだろw
2017/05/31(水) 22:58:58.50ID:Y1RUmNYE0
>>311
てかまじ韓国人は死ね

評価したいならお前が自分で見てくればいいだけ。俺に噛み付く必要なんてない。
おかしな奴が沸いているから話題を変えてやろうとしたのに、韓国人はこれだから駄目なんだ。
お前らって基本的にそんなんばっかだよね。
マジでお前らが全員死ねば2chもだいぶ浄化されると思うよ。

ところでマジレスすると、韓国人がプログラミングに向いているわけないだろ。
あいつらは論理的思考が全く出来ない。
ソースはどこにでもあるがこのスレの>>84以降の韓国人もそう。
日本語が不自由な連中は、自分で言っていることの論理的整合性が取れてない。
自分のバグを他人のせいにして誤魔化しまくるやつって居るだろ。韓国人はこのタイプ。

「てかお前、日本語も英文も読めない人?」が煽りとかアホかよ。
自意識過剰で自分から韓国人だとゲロってる。
仕様書の原文が英文で、後俺が読めるのは和文だから、
俺が内容を保証できるのはその2つしかないんだよ。だから論理的にはまっとうな言い方だろ。
だいたい、「右」と書いてあるのに「ウリには『左』としか読めないニダ」と言われても知らんがな。

プログラミング以前に最低限の論理/言語能力は必要なんだよ。韓国人にはどちらもない。
マジで連中は救いようがないゴミだよ。それはこのスレ見てても明らかだろ。

と言うかそもそも韓国発のマトモなOSSなんてないだろ。
俺が見てておっ!て思うのは大体アメリカ人かロシア人だが。
まあ、あるというのならURLくれ。見てみるから。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。