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

■ このスレッドは過去ログ倉庫に格納されています
2018/02/18(日) 16:48:01.14ID:F2O3xW/S
JavaScript を自ら学ぶ人のための質問スレッドです。
>>2-4のテンプレを読んだ上で質問してください。

■質問を書く上で
(1) 煽り、コード制作依頼等、人を不快にさせる投稿はご遠慮下さい。公序良俗を守った応対を心がけてください。
(2) 他の人に迷惑をかけるスクリプトの質問はご遠慮ください。
  (ブラクラ、[戻る], [閉じる], [クリック] の妨害、画面占有など)
(3) 質問者及び議論を行う人はメール欄を空欄にし、名前にレス番を入れることを強く推奨します。回答者はなりすましを判断できませんので、なりすましが現れても自己責任となります。
(4) 常に自発的に調べる心構えを持ってください。
  具体的には「自分で調べてから質問する」「回答をもらってわからない単語があればGoogle検索してみる」など。
  わからない内容を代わりに調べてくれる回答者をお望みの方は余所で質問してください。
(5) 出来るだけ一般的な用語を使用してください。脳内オレオレ用語は混乱の元です。
(6) 出来るだけサンプルコードを掲示してください。言葉による説明は行き違いが生まれる場合があります。
  ※必ず「問題の事象が再現されること」を確認してください。
   必要な部分だけ切り出したつもりで現象が再現できていなかったケアレスミスがしばしば見られます。
(7) サンプルコードに HTML が含まれる場合は http://validator.w3.org/ で [Check] してみてください。
(8) 質問を具体的かつ詳細に書くと回答を得られやすいです。>>2の質問テンプレートを活用してみてください。
(9) 時にはあなたが望む「答え」だけでなく、「意見」などが寄せられる場合もあります。


前スレ
+ JavaScript の質問用スレッド vol.124 + [転載禁止](c)2ch.net
https://mevius.5ch.net/test/read.cgi/tech/1427008785/

(ライブラリ禁止条項は、多数の意見によって廃止されました。ライブラリの質問もOKです)
2018/04/23(月) 10:18:24.71ID:d6qCG6IJ
AかつBが共にtrueでtrueであって、片方falseだよ。
2018/04/23(月) 12:28:26.23ID:8zXr1SIe
分かってるっつってんだろ
593デフォルトの名無しさん
垢版 |
2018/04/23(月) 14:42:24.56ID:aDbY9qqM
>>591
これ普通にtrue && falseの解がfalseって意味ですよね
2018/04/23(月) 15:34:26.37ID:u+QX9S93
1 x 0 =0 だろ。それだけのこと
2018/04/23(月) 15:37:16.99ID:8zXr1SIe
しつけーな論理演算子くらい分かるよバカヤロウ
2018/04/23(月) 16:03:30.13ID:sj1T2Gnz
>>591 はJSに関しては誤り。
2018/04/23(月) 16:43:52.73ID:UxmNvprn
>>586
[true && false]でどうなるのを期待したの?
2018/04/23(月) 16:53:48.78ID:jMm7sVs3
Ruby の論理演算子は、短絡評価(short)。
先に左側を評価して、そこで答えが確定したら、右側を評価(実行)しない。
論理式全体の戻り値は、最後に評価された式の値

true && B
false && B

上は、Bを評価して返すけど、
下は、falseの時点で、偽が確定するから、Bを評価せず、falseを返す

true || B
false || B

上は、trueの時点で、真が確定するから、Bを評価せず、trueを返す。
下は、Bを評価して返す

a ||= 1

これは、a = a || 1 なので、aが偽なら、aに1を代入する。
デフォルト値を入れる、定番の書き方
599デフォルトの名無しさん
垢版 |
2018/04/23(月) 18:01:09.18ID:2/ADdsxO
>>597
JSの本にcomputed property nameについて書かれていたのですが、サンプルソースの意味がよくわからなくて質問しました。
何かしようとしてたわけではないです(というか普通こんな書き方はしないですよね)。

言葉で書くと複雑ですけど>>594がそのまま答えですね、どうもありがとうございました。
2018/04/23(月) 20:02:33.22ID:yakyRXX9
短絡評価はわかるけど、A && BはAがfalseの時にBを評価しないでfalseを返す、AがtrueならBも評価するはず。&と|を間違えてないか?
2018/04/23(月) 21:30:38.87ID:EM7+lBgm
A && B では A が falsy なら A が返り、truthy なら B が返る。
A || B では A が truthy なら A が返り、falsy なら B が返る。
A が返る場合 B は評価されない。
("hello" || "world") && ("hello" && "world") は "world" になる。
2018/04/23(月) 23:57:48.34ID:ppyHSMXs
相変わらずの馬鹿っぷりにあきれる。
お前らマジでJavaScriptの前に日本語を勉強した方がいい。話にならない。

MDN用語(getter)も通じないところをみると、お前らはMDNも読まない/読む気がないようだが、
実際はお前らの日本語が酷すぎてMDNすら読めないからだろ。
今回の話なら、以下2つになる。
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Operators/Logical_Operators
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Operators/Object_initializer

質問者は何が分かってないのか明示できるほどの日本語能力が無い。
この場合、仮に正しい回答をしたとしても、どうせ通じないから意味がない。
また、MDNには複数の人が何度もレビューした結果が掲載されているのに対し、
ここではお前らみたいな馬鹿が思いつきを書くだけだ。
どうしても一般的な回答のレベルは劣ってしまう。
唯一、質問者が勘違いしているところをピンポイントで救済できるとき以外は
MDNの方が常にマシだとわきまえた方がいい。
>>587-588までは順当としても、それ以降は酷すぎる。

お前らがJavaScriptを職業スキルとして選ぶのなら、MDNとは一生つき合うことになる。
MDNが読めないようなら、まず日本語(或いは英語)を鍛えないとどうにもならないぞ。
そして回答する側も相手側の日本語レベルを考えて回答しろよ。空回りしすぎ。
2018/04/24(火) 00:09:45.01ID:F18TbmJE
君はMDNより先にXMLやHTML、DOMの仕様書先に読んだ方がいいと思うよ
2018/04/24(火) 00:13:11.89ID:F18TbmJE
つか、「空要素は終了タグつけるか、空要素タグを使って表現しろ(≒空要素タグを使うなら終了タグは不要)」って文を見て
「終了タグなし要素はなしになっただろ」とか言いだすようなヤツが日本語能力について語っても、その……。
2018/04/24(火) 01:44:14.03ID:HzYnSDv7
>>602
お前は日本語じゃなくてもいいから言語を勉強しよう

getterの意味はわかってるけど、お前の用途が間違ってるんだよ
オブジェクト指向の設計の話をしてるのに、実装(getter)の話をされてもね
JavaScriptのgetterは出番はないし、C++の実装ではAudioとか関係なくgetterは使うし
2018/04/24(火) 02:43:17.01ID:GV79BasT
いや、getter はめっちゃ使うけど、それはおいとてなんの話だ?
2018/04/24(火) 20:38:18.11ID:iHwVj+7Z
UMLでgetter/setterという用語を使うのが
俺は許せないんだ!って叫んでるやつがいるってだけじゃない?
ムシムシwww
2018/04/24(火) 21:05:08.87ID:eTO49R35
>>606
「ウリはザパニーズニダ」が多すぎるって話。
こいつらがいなくなれば、このスレは相当改善される。
何故かは分からんが、JavaScriptのスレにだけゴキブリ大集合だ。

Q. true && false が false になるのが理解できません。どうしてですか?
A. お前が馬鹿だから
いやマジで
609デフォルトの名無しさん
垢版 |
2018/04/24(火) 21:12:03.07ID:vdQfYlC1
なんで怒ってんの?
2018/04/24(火) 22:20:23.96ID:Ffy1UabQ
理解できなかったバカ本人だからだろww
2018/04/25(水) 08:24:15.23ID:1NoCN6vJ
いや、いつものよくわからない憤りをもった子でしょ。
2018/04/26(木) 07:41:04.58ID:U52RJdNi
>>608
アンドとかオアとか、ビット演算とか応用レベルで理解してるプログラマって少ない。

ビットマスクで解決する部分をほとんどのプログラマがブーリアン型大量に定義したりしてる。あれ、疲れるからやめてほしい。
2018/04/26(木) 12:58:30.04ID:upDf81+N
bool 型で十分。
内部的に、1bit に最適化しているかも知れないし

自分で、1bitに最適化する必要はない
614デフォルトの名無しさん
垢版 |
2018/04/26(木) 16:17:22.41ID:xy+oxvou
Javascriptって変数の型宣言して作ることはできないの?varで作ってから入力読み込んだデータを型変換して入れるしかない?
2018/04/26(木) 16:29:57.59ID:upDf81+N
型なら、TypeScript, Haxe とか
2018/04/27(金) 01:10:31.21ID:R8HDLq/p
>>613
ほら、こういうレスが来ちゃう
2018/04/27(金) 02:18:27.86ID:JUrZhTk7
javascriptって数値がdoubleじゃん
2018/04/27(金) 03:10:11.85ID:xXXEdYLE
Jaascriptは全部64bit(32bit環境では32bit)だと思う
すべてのオブジェクトはObjectの拡張だし

何ビット目が何を意味するかを管理してたら、
何変数が何を意味するかを管理するのと、コスト的には変わらんよね
2018/04/27(金) 04:00:28.29ID:EMgtOZHt
>>618
ほんとそれ
2018/04/27(金) 06:14:35.75ID:2yJ6bPG4
>>589
たまたまではないのでデマにだまされないように
オブジェクトの列挙は配列数値が先、次に挿入順にするようにECMAの仕様で決められている
細かいことを言うとfor-in構文の場合だけ互換性の観点から規則が緩いが、
そこでもこの列挙順を利用することにはなっているので
新たに仕様を参照する場合はそこから何か独自にソートしたりすることは考えづらいので
必然的にこの列挙順になるようになってる
2018/04/27(金) 06:31:01.17ID:fp2664V7
>>587
この知ったかサイコデマやろう!
危うく騙されるところだったぜ!
2018/04/27(金) 06:34:38.86ID:2yJ6bPG4
>>621
いや、そこまで言う必要はない
物は言いようで「たまたま」のニュアンスにもよることだし
2018/04/27(金) 07:43:13.25ID:R8HDLq/p
>>618
>>619
はぁ、視野が狭いのおれ
おれはもう諦めるよ
2018/04/27(金) 08:11:37.80ID:8htjBvqO
>>618
> すべてのオブジェクトはObjectの拡張だし
Object.create(null)
2018/04/27(金) 08:51:32.52ID:l9wD2n6W
>>624
typeofしてみろやwww
2018/04/27(金) 12:43:11.40ID:aG1BIHf6
typeofで帰ってくるのはObjectでなくobjectだからな
それは全てのオブジェクトはオブジェクトの拡張と言ってるようなもんだ
2018/04/27(金) 22:27:28.42ID:V5iZOHfO
>>625
それはObject型
628デフォルトの名無しさん
垢版 |
2018/04/28(土) 22:06:26.10ID:1obQMCz3
select要素をコピーして追加したいのですが、
$( "#sid" ).clone().appendTo( "#divid" );
のように直接行うのではなく、テーブルのため、あとからまとめて追加したいと考えています。
そのため、clone()をいったん文字列として格納したいのですが、
どのようにしたら良いのでしょうか。

.text()を使用すると、valueのみ表示され、タグ<select ・・・ などが格納されません。
2018/04/28(土) 22:20:39.75ID:aRaQKL2a
>>628
テーブルのためとか文字列として格納とかさっぱり意味分からんけど
そのまま変数に入れればいいんじゃない

let elem = $("#sid").clone();
//その他の処理
elem.appendTo("#divid");
2018/04/28(土) 22:26:23.15ID:KChUFz0t
>>628
君が求めているのは
https://developer.mozilla.org/ja/docs/Web/API/Element/outerHTML
だが、後からまとめて追加するだけなら、jQueryオブジェクトのままでいいと思うがな
わざわざ、文字列に変換するコストが無駄
2018/04/29(日) 00:03:13.46ID:hAJLRgtx
>clone()をいったん文字列として格納したい
全く意味がわからない

var docFragment = document.createDocumentFragment();

メモリ内だけに存在する、まだDOM に追加していない、
DocumentFragment を使えば?

JS, jQuery の質問は、web制作管理板へ書き込む方がよい。
この板には、あまりweb系の開発者がいないから
2018/04/29(日) 08:04:51.08ID:oxlrOQlL
>>631
> メモリ内だけに存在する、まだDOM に追加していない、
> DocumentFragment を使えば?
それでもいいんだけど、jQueryオブジェクトがその状態だから、.clone()だけで目的は達成してるんだよね
そこから、更に文字列化する意味が分からない
2018/04/29(日) 08:16:26.70ID:YkXo8Lgy
というかオブジェクトは単純なものでないと文字列化できない
DOM要素は文字列化は無理
2018/04/29(日) 09:12:44.09ID:oxlrOQlL
>>633
Reflecting content attributesの範囲で文字列化は可能だけど、完全ではないね
質問者の期待値に依る
635628
垢版 |
2018/04/29(日) 10:05:31.68ID:ZDoa+Uuy
すみません皆様
outerHTMLでいけました。

var tr_row = '<tr>' + ”ここにいれたい。” +
'<td><input type="text" ...></td>' +
'<td><input type="text" ...></td>' +
'</tr>';

上記場所に入れる際に、<tr>タグの途中なので、appenndはできないしと思い、
文字に変換するのはどうすればよいのかという次第でした。
2018/04/29(日) 10:47:04.79ID:YkXo8Lgy
だから文字列にしなくてできるって言ってるだろ
2018/04/29(日) 10:47:34.65ID:hkCcAsD/
prependTo()でエエやん
てか<td>で囲む必要はないの?
2018/04/29(日) 12:26:34.32ID:I8wRPjDT
テキストベースで要素作ってるのか……
2018/04/29(日) 12:52:01.38ID:zLWhc+ki
jQuery使う意味なさすぎワロタww
2018/04/29(日) 14:32:46.07ID:hAJLRgtx
漏れも、面倒くさい時は、文字列で階層のあるHTML タグを作って、
innerHTML などで1度に挿入したりするけど、
こういうのは、デモを作る際だけにしておいた方がよい

こういう書き方は、保守性が低いし、
構文をパースしてDOM を組み立てるから、実行速度も遅い
2018/04/29(日) 15:33:34.34ID:nrxuZ238
そうでもない
ブラウザのHTMLパーサはカリカリにチューニングされていて爆速だから、
JavaScript側でこねくり回すより遥かに効率良かったりする
innerHtmlなら途中でレイアウトなどの余計な処理が走ったりすることもないし
642デフォルトの名無しさん
垢版 |
2018/04/29(日) 23:03:07.20ID:mhN0i6BC
ごちゃごちゃDOM操作するより文字列組み立ててブッ込む方がはるかに保守性も性能も高いと思うけど
2018/04/29(日) 23:19:32.97ID:yO7NcvMF
テンプレートリテラルも実用域に入ってきたし文字列でも保守性問題ないな。
644デフォルトの名無しさん
垢版 |
2018/04/29(日) 23:21:51.06ID:hAJLRgtx
タグにclass が付いていたり、URL があったりしても面倒。
シングル・ダブルクォーテーションの扱いも面倒だし、
URL エスケープ処理も面倒

あちこち、バグる

文字列で、タグを作るもんじゃない
2018/04/29(日) 23:24:56.55ID:I8wRPjDT
少なくともこの質問のケースでは文字列で組み立てる意味ない
2018/04/29(日) 23:27:56.46ID:hkCcAsD/
jQuery嫌いな自分が言うのも変だけど
使うなら徹頭徹尾使えと
647デフォルトの名無しさん
垢版 |
2018/04/30(月) 07:59:30.90ID:fYIY19ol
>>646
jQuery便利なんだが、デバッグ難しいからねえ・・・
2018/04/30(月) 08:53:06.57ID:j02OeNlU
理由なく難しいと言われても何のことか分からんのだが?
jQueryだからって特に難しいことなんてないぞ
649デフォルトの名無しさん
垢版 |
2018/04/30(月) 09:05:58.30ID:fYIY19ol
>>648
エラーで落ちても知らんぷりの言語だしね。
2018/04/30(月) 09:42:48.77ID:j02OeNlU
エラーで落ちたらログにでるじゃん?
エラー時にダイアログを出す設定も有ったはずだが
(普通のサイトでうざくなるんで通常はOFFにするけど)

やっぱり単にデバッグの仕方を知らずに
難しいって言ってるだけな気がしてきた
本人の能力の問題w
2018/04/30(月) 15:30:04.07ID:+iIE7rLs
printfデバッグって・・・未だにそんな事やってるのか。
2018/04/30(月) 16:36:21.38ID:j02OeNlU
printfデバッグなんて誰もいってないが?w
2018/04/30(月) 17:47:02.34ID:+iIE7rLs
文脈くらい読めよ。
2018/04/30(月) 20:16:15.83ID:j02OeNlU
>>653
あなたはどこを読んで勘違いしたんですか?w
2018/04/30(月) 21:36:19.36ID:+iIE7rLs
>>654
結局、マトモなデバッグ方法無いって事じゃん。
ミンシン並み。
2018/04/30(月) 22:10:46.10ID:j02OeNlU
どこにもそんな事かいてないし、
ブラウザにデバッガが内蔵されてる

知らないなら素直に知らないって認めなよ?
2018/04/30(月) 22:15:00.65ID:j02OeNlU
chromeの内蔵のデバッガなんか、
他の言語のデバッガと比べても最高クラスのデバッガだと思う。
各オブジェクトのメモリ使用状況とかわかるし

実行時のパフォーマンスの分析
https://developers.google.com/web/tools/chrome-devtools/rendering-tools/?hl=ja
メモリの問題の解決
https://developers.google.com/web/tools/chrome-devtools/memory-problems/?hl=ja
Timeline イベント リファレンス
https://developers.google.com/web/tools/chrome-devtools/evaluate-performance/performance-reference?hl=ja
2018/05/01(火) 03:21:21.67ID:vFWUXcpo
chrome のデバッガは確かにすごいけどもうそれとにらめっこしながら開発はしたくない
結局主要ブラウザ全部で動作見なきゃいけないし
2018/05/01(火) 03:51:29.49ID:2qiiAJGj
必要ないなら見なくていいと思うけど、おまえはなにが言いたいんだ?
2018/05/01(火) 07:52:17.05ID:jIYJqWRC
>>658
ブラウザがたくさんあるんだからその問題はどうあがいても避けられないのでは?
2018/05/01(火) 08:37:13.08ID:BQXmdu4P
早くからwasmこいって言いたいのかな?
2018/05/02(水) 10:27:35.73ID:WujbgrGY
javascriptでphp CGIにajax送信をしたいんですが

(x, 1) (y, 2) (y, 1) ...

みたいな同じタグや値を持つ可能性のある複数データペアを送信するのってどうしたらいいでしょうか

var fd = new FormData();
fd.append('x', '1');
fd.append('y', '2');
fd.append('y', '1');

でも

var fd = new FormData();
fd.append('name', 'x'); fd.append('value', '1');
fd.append('name', 'x'); fd.append('value', '1');
fd.append('name', 'y'); fd.append('value', '2');

でもダメでした

req = new XMLHttpRequest();
req.open('POST', URL, true);
req.send(fd);

こんな感じでおくって
CGI で $_POST で受け取ってます
2018/05/02(水) 11:12:43.26ID:s9bETSjB
>>662
PHP側の仕様による
2018/05/02(水) 12:02:40.46ID:WujbgrGY
PHP側もからむ問題みたいなので他できいてみます
マルチポストになるので質問〆ます
2018/05/02(水) 16:23:22.52ID:5INTSW/S
>>662
javascript側は前者で問題ない
もしかしたら fd.append('y[]', '2'); fd.append('y[]', '1'); の方が良いかもしれんが
2018/05/02(水) 20:10:33.29ID:WujbgrGY
>>662の件別スレで解決できました
>>665さんも〆たあとなのにありがとうございました


あとまた質問なんですけど

ブラウザゲームで特定の画面のときにデータを読んでCGI経由で保存するみたいなことをしたいのですが

if(location.pathname.indexOf(URLキーワード) >= 0) {
var data = document.getElementByClassName(クラス名);
POST
 :
ってかいてもそのページで動きません

console.log(location.pathname);
if(location.pathname.indexOf(キーワード) >= 0) {

って直前にいれるとブラウザの表示と別のURLが表示されます
ページ遷移はせずにURLだけかわっていくような仕組みみたいです

直接かいても window.onload = function() { の中に書いても同じで
いちばん最初に読み込んだページでしか動かないみたいで
特定のURLや要素が出現した場合にだけ動作するようにするにはどうしたらいいんでしょうか
2018/05/02(水) 22:07:31.94ID:5INTSW/S
setIntervalで監視すれば
2018/05/03(木) 04:40:19.69ID:D4v+D7Ik
何度もすいません
.getElementsByClassName の帰り値がよくわからなくて困ってます

function next() {
var scores = document.getElementsByClassName('score');
if(scores == null || scores.length == 0) {
setTimeout(next, 1000);
return;
}
console.log(scores.length); // 3

for(var score in scores) {
console.log(score); // 0
console.log(score.nodeName); // undefined
}
}

scores.lengthが3になってるので要素の取得は成功してるように思うんですが
for文で中身をとりだそうとしても0と表示されるだけで
innnerHtmlやNodeTypeを表示してもundefinedになってしまいます

for-in の使い方がまちがってますか?

Javaを大学で習ったので文法の近いjsもすぐかけるかなと思ったんですが
スクリプト言語は型がぐちゃぐちゃでエラーの原因がまったく特定できなくて泣きそう
2018/05/03(木) 05:46:09.51ID:XXqqENcs
>>668
まずな。for in っていうのはオブジェクトが持ってるプロパティを取得するもので
arrayに対してfor in を使うのは間違いとされているんだよ
添字以外のものが取得できてしまう場合がある。

例えば、a = [1, 2, 3] だけなら添字しか取得できないが、
a.hoge = "test" とか実行できるので、その場合は添字0〜2に加えてhogeも列挙してしまう。
正しくはarrayの要素を列挙するなら、for of を使用することだがIEは非対応だ

また、getElementsByClassNameの戻り値は実は配列のように見えるが、NodeListという型で
これはJavaScriptの配列の条件を満たしていない。そもそもgetElementsByClassNameといった
DOMのAPIはJavaScriptの範囲外。ブラウザが提供しているものでJavaScript以外の言語でも
使える仕様であるため、JavaScriptとは独立した存在でJavaScriptの配列と互換性が保たれていない
使えるようにしようという話もあるが一体いつになるのやら

そういう配列っぽいけどJavaScriptの配列ではないものは、それに応じたやり方をするしか無く
getElementsByClassNameの戻り値の場合は、0からlengthまで、カウンタ変数を
インクリメントしていく昔ながらのfor文を使うのが基本の方法
for ofの他に、NodeListのforEachメソッドを使うやり方もあるが動かないブラウザがある

変わったやり方として、NodeListのような配列っぽいオブジェクトをJavaScriptの配列に変換するという方法がある。
JavaScriptの配列に変換するとforEachメソッドが使えるようになる。
この変換の方法としていくつかやり方があって、
1. Array.prototype.forEach.callを直接使う方法
2. Array.prototype.slice.callを使う方法、
3. 比較的最近のブラウザで使えるスプレッド構文を使う方法
4. 同じく比較的最近のブラウザで使えるArray.fromを使う方法
などがある

まあいろいろしがらみがあって、できると思ったようにはできないってことだ
2018/05/03(木) 05:46:55.21ID:D4v+D7Ik
うーん…
syntax エラーがとれない…

はじめから javascript のソース整形がはいってるエディタってないんでしょうか…

ほんの200行ぐらいのソースなのに {} の対応ができてないみたいで
Uncaught SyntaxError: Unexpected token }
で1時間以上はまってる…

新しい言語独学するのってほんと大変ですね…
心おれそうです
2018/05/03(木) 05:54:39.65ID:XXqqENcs
まあ長く書いてしまったが、ようは
for文を使うか、JavaScriptの配列に変換するのかの
どちらかってことだな。

自力でやるのならね。


そこで登場するのがjQuery。jQueryを使うと
このような面倒くさい問題も解决してくれる

jQueryを使えばループ自体が必要なくなることも多いのだが、
ループを使う場合であっても以下のように簡単に記述することができる
もちろんどのブラウザでも動く

$('.score').each(function() {
 // this = scoreの要素
})
2018/05/03(木) 13:50:38.89ID:M52LYEAa
cdnのssl証明書期限切れで動かなくなるけどなw
2018/05/03(木) 13:53:26.77ID:XXqqENcs
↑知らない人に説明しておくと、jQuery自体に問題があったのではなく、
CDNのトラブルでSSLの証明書が切れてしまって一時的に使用できなくなった
あくまでjQueryが利用していたCDNであって、ローカルにダウンロードして
使っていたり別のCDNを使っていたのであれば関係ない
問題はすでに解决している
2018/05/03(木) 16:45:00.26ID:n1bW45Mx
>>670
そのエラーが必ずしも}の数が原因とも限らないが、
もしそうなら}を適当に増やしたり減らしたりして
改めてエラーの位置を確認するとだいぶ役に立つと思うよ
2018/05/03(木) 17:14:26.35ID:M52LYEAa
>>670
> はじめから javascript のソース整形がはいってるエディタってないんでしょうか…

つ VSCode
2018/05/03(木) 19:48:47.93ID:D4v+D7Ik
>>675
わー ありがとうございます
これすっごい便利ですね
色もついてるし

自動整形してみたらやっぱり } の数がちがってたみたいで1分で原因わかりました
ほんとに感謝です

大学ではUNIX艦橋だったのでemacsって色がつくエディタはいってたけど
Windowsだとメモ帳しかなくて途中に if 文とか追加したらインデントぐちゃぐちゃして困ってました

>>669
朝ちょうど入れ違いで回答いただけてたんですね
for-in がまずかったんですね
ループインデックスでかきなおしてみます
丁寧な回答ありがとうございます
2018/05/03(木) 23:36:41.80ID:M52LYEAa
>>676
便利だろう。俺はVSCodeが好きだがこれ系のエディタは他にもAtom、Sublime、Bracketsとかもあるぞ。書いとかないと他のエディタの信者に怒られるので念のため
2018/05/04(金) 00:04:08.60ID:YzOLlJfQ
おい、4000円のハゲマルエディタを忘れるな!
2018/05/04(金) 03:44:26.97ID:qsqOEjQQ
おかげさまでだいぶすすみました
教えてくれた方ありがとうございました

あとVSCroeってPHPは整形できないんですね
キーワードハイライトはついてたんですけど
ちょっと残念

>>677さんのほかのもちょっとためしてみますね
2018/05/04(金) 04:19:51.48ID:plo/RuVs
>>679
それ系のエディタ共通の話だけど基本的に個々の機能は拡張機能で追加する形態だからね。jsとかhtmlとかが特例なのよ。
2018/05/05(土) 14:29:24.52ID:3TCgj6IS
"use strict";
{

 let aaa = null;

 let foo = (bar) => {
  aaa = "bbb";
 }

}

↑見たいな構造のコードを見かけたんですが、
この一番外側の中括弧ってどういう意味やメリットがあるんでしょうか?
2018/05/05(土) 14:46:42.94ID:LicTraOR
>>681
スコープを汚染しないため
以前即時関数でやってたのと目的は同じ
https://jsfiddle.net/1o93q4xs/
2018/05/05(土) 14:59:19.03ID:o/grtqGY
let使ってるからその変数のスコープを限定しているんだろう。
このコード自体では意味がないけどな。
2018/05/05(土) 15:12:51.32ID:3TCgj6IS
>>682
なるほど、ありがとうございました
中括弧と言えばオブジェクトだみたいな頭してましたが、
そう言えばもうブロックスコープが使えるんでしたね
2018/05/05(土) 15:13:20.66ID:3TCgj6IS
>>683
安価付け忘れた
ありがとうございました
686デフォルトの名無しさん
垢版 |
2018/05/07(月) 18:49:54.39ID:8eXYY6sB
ウェブサイト上のボタンを押すと、関数Hogeを実行し
hogeの中で計算を実行して、結果をサーバー(Node.js)にPOSTしたいです。

今は、このような関数を用意して、POSTしようと試行錯誤しているのですが、合ってますかね?
hogehogeはこの関数実行前に(ほかの関数で)計算済みです。
https://pastebin.com/sHDJ5zPs

また、このPOSTを下記のようにNode.jsで受け取ろうとしたところ、
TypeError: Cannot read property 'input' of undefined
とエラーを吐いてしまいました。req.body.form.input.valueでは無いのでしょうか

'router.post('/', function(req, res, next) {
var formula = req.body.form.input.value;
console.log(formula);
res.end();
});'
2018/05/07(月) 20:35:04.87ID:qd9rWx8M
正直言って1つ2つではなく何もかも違う
むしろどうしてそれでうまくいくと考えたのか?
そもそもそれで何がしたいのかが不明
もう一度最初からサンプルやドキュメントちゃんと見てごらん
適当に目を瞑ってキーボード叩いただけじゃそりゃ動かないよ
2018/05/07(月) 22:27:21.85ID:8eXYY6sB
>>687
本当ですか…
javascript自体触ったことないので完全に手探りなので…

考えとしては、nodejs側でPOSTを受け取りたいので、クライアントサイドのjsで変数をPOSTしてあげれば良いのかなっていう素人の考えです
HTML(ejs)の中で入力内容をPOSTしているソースコードはよくあるのですが、jsで変数をPOSTするソースコードは見つからず、、

根本的に考え方が間違っているのでしょうか?



Node.jsを勉強すればいいのか、はたまたJavaScriptを、Expressを、、と色々ありすぎてよく分からない状況ですね
2018/05/07(月) 23:07:17.87ID:G4y8ObMi
>>688
間違ってないとは思うけどjsでformを生成する理由はある?
最初からhtmlに記述しといてvalueを弄くれば良くないか
純粋にjsから送るならXMLHttpRequestの方が向いてる気がする

node側はbodyParserが何してるのか分からんから答えられない
とりあえずconsole.log(req.body);したものを貼ってくれ
あとExpressなら最初にそう書いて
2018/05/07(月) 23:14:47.31ID:H7YotaIo
「Node.js超入門、掌田津耶乃、2017」を読めば?

実は、Node.js だけでは面倒くさいから、それだけでは作らない。
Express + Express Generator フレームワークを使う

Node.jsは、Ruby で、Sinatra を、full scratch で書くのと同じ。
Express + Express Generatorが、Rails と同じ

だから先に、無料のRails チュートリアルをやれば、フレームワークが理解しやすい

YouTube のTraversy Media で、Express, Rails とか色々やってる
2018/05/07(月) 23:18:20.19ID:TE80s013
またこいつか
ほんとルビウンコの周り廻ってるハエにはろくなのがいない
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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