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です)
探検
+ JavaScript の質問用スレッド vol.125 +
■ このスレッドは過去ログ倉庫に格納されています
2018/02/18(日) 16:48:01.14ID:F2O3xW/S
591デフォルトの名無しさん
2018/04/23(月) 10:18:24.71ID:d6qCG6IJ AかつBが共にtrueでtrueであって、片方falseだよ。
592デフォルトの名無しさん
2018/04/23(月) 12:28:26.23ID:8zXr1SIe 分かってるっつってんだろ
593デフォルトの名無しさん
2018/04/23(月) 14:42:24.56ID:aDbY9qqM >>591
これ普通にtrue && falseの解がfalseって意味ですよね
これ普通にtrue && falseの解がfalseって意味ですよね
594デフォルトの名無しさん
2018/04/23(月) 15:34:26.37ID:u+QX9S93 1 x 0 =0 だろ。それだけのこと
595デフォルトの名無しさん
2018/04/23(月) 15:37:16.99ID:8zXr1SIe しつけーな論理演算子くらい分かるよバカヤロウ
596デフォルトの名無しさん
2018/04/23(月) 16:03:30.13ID:sj1T2Gnz >>591 はJSに関しては誤り。
597デフォルトの名無しさん
2018/04/23(月) 16:43:52.73ID:UxmNvprn >>586
[true && false]でどうなるのを期待したの?
[true && false]でどうなるのを期待したの?
598デフォルトの名無しさん
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を代入する。
デフォルト値を入れる、定番の書き方
先に左側を評価して、そこで答えが確定したら、右側を評価(実行)しない。
論理式全体の戻り値は、最後に評価された式の値
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/ADdsxO600デフォルトの名無しさん
2018/04/23(月) 20:02:33.22ID:yakyRXX9 短絡評価はわかるけど、A && BはAがfalseの時にBを評価しないでfalseを返す、AがtrueならBも評価するはず。&と|を間違えてないか?
601デフォルトの名無しさん
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" になる。
A || B では A が truthy なら A が返り、falsy なら B が返る。
A が返る場合 B は評価されない。
("hello" || "world") && ("hello" && "world") は "world" になる。
602デフォルトの名無しさん
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が読めないようなら、まず日本語(或いは英語)を鍛えないとどうにもならないぞ。
そして回答する側も相手側の日本語レベルを考えて回答しろよ。空回りしすぎ。
お前らマジで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が読めないようなら、まず日本語(或いは英語)を鍛えないとどうにもならないぞ。
そして回答する側も相手側の日本語レベルを考えて回答しろよ。空回りしすぎ。
603デフォルトの名無しさん
2018/04/24(火) 00:09:45.01ID:F18TbmJE 君はMDNより先にXMLやHTML、DOMの仕様書先に読んだ方がいいと思うよ
604デフォルトの名無しさん
2018/04/24(火) 00:13:11.89ID:F18TbmJE つか、「空要素は終了タグつけるか、空要素タグを使って表現しろ(≒空要素タグを使うなら終了タグは不要)」って文を見て
「終了タグなし要素はなしになっただろ」とか言いだすようなヤツが日本語能力について語っても、その……。
「終了タグなし要素はなしになっただろ」とか言いだすようなヤツが日本語能力について語っても、その……。
605デフォルトの名無しさん
2018/04/24(火) 01:44:14.03ID:HzYnSDv7 >>602
お前は日本語じゃなくてもいいから言語を勉強しよう
getterの意味はわかってるけど、お前の用途が間違ってるんだよ
オブジェクト指向の設計の話をしてるのに、実装(getter)の話をされてもね
JavaScriptのgetterは出番はないし、C++の実装ではAudioとか関係なくgetterは使うし
お前は日本語じゃなくてもいいから言語を勉強しよう
getterの意味はわかってるけど、お前の用途が間違ってるんだよ
オブジェクト指向の設計の話をしてるのに、実装(getter)の話をされてもね
JavaScriptのgetterは出番はないし、C++の実装ではAudioとか関係なくgetterは使うし
606デフォルトの名無しさん
2018/04/24(火) 02:43:17.01ID:GV79BasT いや、getter はめっちゃ使うけど、それはおいとてなんの話だ?
607デフォルトの名無しさん
2018/04/24(火) 20:38:18.11ID:iHwVj+7Z UMLでgetter/setterという用語を使うのが
俺は許せないんだ!って叫んでるやつがいるってだけじゃない?
ムシムシwww
俺は許せないんだ!って叫んでるやつがいるってだけじゃない?
ムシムシwww
608デフォルトの名無しさん
2018/04/24(火) 21:05:08.87ID:eTO49R35 >>606
「ウリはザパニーズニダ」が多すぎるって話。
こいつらがいなくなれば、このスレは相当改善される。
何故かは分からんが、JavaScriptのスレにだけゴキブリ大集合だ。
Q. true && false が false になるのが理解できません。どうしてですか?
A. お前が馬鹿だから
いやマジで
「ウリはザパニーズニダ」が多すぎるって話。
こいつらがいなくなれば、このスレは相当改善される。
何故かは分からんが、JavaScriptのスレにだけゴキブリ大集合だ。
Q. true && false が false になるのが理解できません。どうしてですか?
A. お前が馬鹿だから
いやマジで
609デフォルトの名無しさん
2018/04/24(火) 21:12:03.07ID:vdQfYlC1 なんで怒ってんの?
610デフォルトの名無しさん
2018/04/24(火) 22:20:23.96ID:Ffy1UabQ 理解できなかったバカ本人だからだろww
611デフォルトの名無しさん
2018/04/25(水) 08:24:15.23ID:1NoCN6vJ いや、いつものよくわからない憤りをもった子でしょ。
612デフォルトの名無しさん
2018/04/26(木) 07:41:04.58ID:U52RJdNi >>608
アンドとかオアとか、ビット演算とか応用レベルで理解してるプログラマって少ない。
ビットマスクで解決する部分をほとんどのプログラマがブーリアン型大量に定義したりしてる。あれ、疲れるからやめてほしい。
アンドとかオアとか、ビット演算とか応用レベルで理解してるプログラマって少ない。
ビットマスクで解決する部分をほとんどのプログラマがブーリアン型大量に定義したりしてる。あれ、疲れるからやめてほしい。
613デフォルトの名無しさん
2018/04/26(木) 12:58:30.04ID:upDf81+N bool 型で十分。
内部的に、1bit に最適化しているかも知れないし
自分で、1bitに最適化する必要はない
内部的に、1bit に最適化しているかも知れないし
自分で、1bitに最適化する必要はない
614デフォルトの名無しさん
2018/04/26(木) 16:17:22.41ID:xy+oxvou Javascriptって変数の型宣言して作ることはできないの?varで作ってから入力読み込んだデータを型変換して入れるしかない?
615デフォルトの名無しさん
2018/04/26(木) 16:29:57.59ID:upDf81+N 型なら、TypeScript, Haxe とか
616デフォルトの名無しさん
2018/04/27(金) 01:10:31.21ID:R8HDLq/p >>613
ほら、こういうレスが来ちゃう
ほら、こういうレスが来ちゃう
617デフォルトの名無しさん
2018/04/27(金) 02:18:27.86ID:JUrZhTk7 javascriptって数値がdoubleじゃん
618デフォルトの名無しさん
2018/04/27(金) 03:10:11.85ID:xXXEdYLE Jaascriptは全部64bit(32bit環境では32bit)だと思う
すべてのオブジェクトはObjectの拡張だし
何ビット目が何を意味するかを管理してたら、
何変数が何を意味するかを管理するのと、コスト的には変わらんよね
すべてのオブジェクトはObjectの拡張だし
何ビット目が何を意味するかを管理してたら、
何変数が何を意味するかを管理するのと、コスト的には変わらんよね
619デフォルトの名無しさん
2018/04/27(金) 04:00:28.29ID:EMgtOZHt >>618
ほんとそれ
ほんとそれ
620デフォルトの名無しさん
2018/04/27(金) 06:14:35.75ID:2yJ6bPG4 >>589
たまたまではないのでデマにだまされないように
オブジェクトの列挙は配列数値が先、次に挿入順にするようにECMAの仕様で決められている
細かいことを言うとfor-in構文の場合だけ互換性の観点から規則が緩いが、
そこでもこの列挙順を利用することにはなっているので
新たに仕様を参照する場合はそこから何か独自にソートしたりすることは考えづらいので
必然的にこの列挙順になるようになってる
たまたまではないのでデマにだまされないように
オブジェクトの列挙は配列数値が先、次に挿入順にするようにECMAの仕様で決められている
細かいことを言うとfor-in構文の場合だけ互換性の観点から規則が緩いが、
そこでもこの列挙順を利用することにはなっているので
新たに仕様を参照する場合はそこから何か独自にソートしたりすることは考えづらいので
必然的にこの列挙順になるようになってる
621デフォルトの名無しさん
2018/04/27(金) 06:31:01.17ID:fp2664V7622デフォルトの名無しさん
2018/04/27(金) 06:34:38.86ID:2yJ6bPG4623デフォルトの名無しさん
2018/04/27(金) 07:43:13.25ID:R8HDLq/p624デフォルトの名無しさん
2018/04/27(金) 08:11:37.80ID:8htjBvqO625デフォルトの名無しさん
2018/04/27(金) 08:51:32.52ID:l9wD2n6W >>624
typeofしてみろやwww
typeofしてみろやwww
626デフォルトの名無しさん
2018/04/27(金) 12:43:11.40ID:aG1BIHf6 typeofで帰ってくるのはObjectでなくobjectだからな
それは全てのオブジェクトはオブジェクトの拡張と言ってるようなもんだ
それは全てのオブジェクトはオブジェクトの拡張と言ってるようなもんだ
627デフォルトの名無しさん
2018/04/27(金) 22:27:28.42ID:V5iZOHfO >>625
それはObject型
それはObject型
628デフォルトの名無しさん
2018/04/28(土) 22:06:26.10ID:1obQMCz3 select要素をコピーして追加したいのですが、
$( "#sid" ).clone().appendTo( "#divid" );
のように直接行うのではなく、テーブルのため、あとからまとめて追加したいと考えています。
そのため、clone()をいったん文字列として格納したいのですが、
どのようにしたら良いのでしょうか。
.text()を使用すると、valueのみ表示され、タグ<select ・・・ などが格納されません。
$( "#sid" ).clone().appendTo( "#divid" );
のように直接行うのではなく、テーブルのため、あとからまとめて追加したいと考えています。
そのため、clone()をいったん文字列として格納したいのですが、
どのようにしたら良いのでしょうか。
.text()を使用すると、valueのみ表示され、タグ<select ・・・ などが格納されません。
629デフォルトの名無しさん
2018/04/28(土) 22:20:39.75ID:aRaQKL2a >>628
テーブルのためとか文字列として格納とかさっぱり意味分からんけど
そのまま変数に入れればいいんじゃない
let elem = $("#sid").clone();
//その他の処理
elem.appendTo("#divid");
テーブルのためとか文字列として格納とかさっぱり意味分からんけど
そのまま変数に入れればいいんじゃない
let elem = $("#sid").clone();
//その他の処理
elem.appendTo("#divid");
630デフォルトの名無しさん
2018/04/28(土) 22:26:23.15ID:KChUFz0t >>628
君が求めているのは
https://developer.mozilla.org/ja/docs/Web/API/Element/outerHTML
だが、後からまとめて追加するだけなら、jQueryオブジェクトのままでいいと思うがな
わざわざ、文字列に変換するコストが無駄
君が求めているのは
https://developer.mozilla.org/ja/docs/Web/API/Element/outerHTML
だが、後からまとめて追加するだけなら、jQueryオブジェクトのままでいいと思うがな
わざわざ、文字列に変換するコストが無駄
631デフォルトの名無しさん
2018/04/29(日) 00:03:13.46ID:hAJLRgtx >clone()をいったん文字列として格納したい
全く意味がわからない
var docFragment = document.createDocumentFragment();
メモリ内だけに存在する、まだDOM に追加していない、
DocumentFragment を使えば?
JS, jQuery の質問は、web制作管理板へ書き込む方がよい。
この板には、あまりweb系の開発者がいないから
全く意味がわからない
var docFragment = document.createDocumentFragment();
メモリ内だけに存在する、まだDOM に追加していない、
DocumentFragment を使えば?
JS, jQuery の質問は、web制作管理板へ書き込む方がよい。
この板には、あまりweb系の開発者がいないから
632デフォルトの名無しさん
2018/04/29(日) 08:04:51.08ID:oxlrOQlL >>631
> メモリ内だけに存在する、まだDOM に追加していない、
> DocumentFragment を使えば?
それでもいいんだけど、jQueryオブジェクトがその状態だから、.clone()だけで目的は達成してるんだよね
そこから、更に文字列化する意味が分からない
> メモリ内だけに存在する、まだDOM に追加していない、
> DocumentFragment を使えば?
それでもいいんだけど、jQueryオブジェクトがその状態だから、.clone()だけで目的は達成してるんだよね
そこから、更に文字列化する意味が分からない
633デフォルトの名無しさん
2018/04/29(日) 08:16:26.70ID:YkXo8Lgy というかオブジェクトは単純なものでないと文字列化できない
DOM要素は文字列化は無理
DOM要素は文字列化は無理
634デフォルトの名無しさん
2018/04/29(日) 09:12:44.09ID:oxlrOQlL635628
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はできないしと思い、
文字に変換するのはどうすればよいのかという次第でした。
outerHTMLでいけました。
var tr_row = '<tr>' + ”ここにいれたい。” +
'<td><input type="text" ...></td>' +
'<td><input type="text" ...></td>' +
'</tr>';
上記場所に入れる際に、<tr>タグの途中なので、appenndはできないしと思い、
文字に変換するのはどうすればよいのかという次第でした。
636デフォルトの名無しさん
2018/04/29(日) 10:47:04.79ID:YkXo8Lgy だから文字列にしなくてできるって言ってるだろ
637デフォルトの名無しさん
2018/04/29(日) 10:47:34.65ID:hkCcAsD/ prependTo()でエエやん
てか<td>で囲む必要はないの?
てか<td>で囲む必要はないの?
638デフォルトの名無しさん
2018/04/29(日) 12:26:34.32ID:I8wRPjDT テキストベースで要素作ってるのか……
639デフォルトの名無しさん
2018/04/29(日) 12:52:01.38ID:zLWhc+ki jQuery使う意味なさすぎワロタww
640デフォルトの名無しさん
2018/04/29(日) 14:32:46.07ID:hAJLRgtx 漏れも、面倒くさい時は、文字列で階層のあるHTML タグを作って、
innerHTML などで1度に挿入したりするけど、
こういうのは、デモを作る際だけにしておいた方がよい
こういう書き方は、保守性が低いし、
構文をパースしてDOM を組み立てるから、実行速度も遅い
innerHTML などで1度に挿入したりするけど、
こういうのは、デモを作る際だけにしておいた方がよい
こういう書き方は、保守性が低いし、
構文をパースしてDOM を組み立てるから、実行速度も遅い
641デフォルトの名無しさん
2018/04/29(日) 15:33:34.34ID:nrxuZ238 そうでもない
ブラウザのHTMLパーサはカリカリにチューニングされていて爆速だから、
JavaScript側でこねくり回すより遥かに効率良かったりする
innerHtmlなら途中でレイアウトなどの余計な処理が走ったりすることもないし
ブラウザのHTMLパーサはカリカリにチューニングされていて爆速だから、
JavaScript側でこねくり回すより遥かに効率良かったりする
innerHtmlなら途中でレイアウトなどの余計な処理が走ったりすることもないし
642デフォルトの名無しさん
2018/04/29(日) 23:03:07.20ID:mhN0i6BC ごちゃごちゃDOM操作するより文字列組み立ててブッ込む方がはるかに保守性も性能も高いと思うけど
643デフォルトの名無しさん
2018/04/29(日) 23:19:32.97ID:yO7NcvMF テンプレートリテラルも実用域に入ってきたし文字列でも保守性問題ないな。
644デフォルトの名無しさん
2018/04/29(日) 23:21:51.06ID:hAJLRgtx タグにclass が付いていたり、URL があったりしても面倒。
シングル・ダブルクォーテーションの扱いも面倒だし、
URL エスケープ処理も面倒
あちこち、バグる
文字列で、タグを作るもんじゃない
シングル・ダブルクォーテーションの扱いも面倒だし、
URL エスケープ処理も面倒
あちこち、バグる
文字列で、タグを作るもんじゃない
645デフォルトの名無しさん
2018/04/29(日) 23:24:56.55ID:I8wRPjDT 少なくともこの質問のケースでは文字列で組み立てる意味ない
646デフォルトの名無しさん
2018/04/29(日) 23:27:56.46ID:hkCcAsD/ jQuery嫌いな自分が言うのも変だけど
使うなら徹頭徹尾使えと
使うなら徹頭徹尾使えと
647デフォルトの名無しさん
2018/04/30(月) 07:59:30.90ID:fYIY19ol >>646
jQuery便利なんだが、デバッグ難しいからねえ・・・
jQuery便利なんだが、デバッグ難しいからねえ・・・
648デフォルトの名無しさん
2018/04/30(月) 08:53:06.57ID:j02OeNlU 理由なく難しいと言われても何のことか分からんのだが?
jQueryだからって特に難しいことなんてないぞ
jQueryだからって特に難しいことなんてないぞ
649デフォルトの名無しさん
2018/04/30(月) 09:05:58.30ID:fYIY19ol >>648
エラーで落ちても知らんぷりの言語だしね。
エラーで落ちても知らんぷりの言語だしね。
650デフォルトの名無しさん
2018/04/30(月) 09:42:48.77ID:j02OeNlU エラーで落ちたらログにでるじゃん?
エラー時にダイアログを出す設定も有ったはずだが
(普通のサイトでうざくなるんで通常はOFFにするけど)
やっぱり単にデバッグの仕方を知らずに
難しいって言ってるだけな気がしてきた
本人の能力の問題w
エラー時にダイアログを出す設定も有ったはずだが
(普通のサイトでうざくなるんで通常はOFFにするけど)
やっぱり単にデバッグの仕方を知らずに
難しいって言ってるだけな気がしてきた
本人の能力の問題w
651デフォルトの名無しさん
2018/04/30(月) 15:30:04.07ID:+iIE7rLs printfデバッグって・・・未だにそんな事やってるのか。
652デフォルトの名無しさん
2018/04/30(月) 16:36:21.38ID:j02OeNlU printfデバッグなんて誰もいってないが?w
653デフォルトの名無しさん
2018/04/30(月) 17:47:02.34ID:+iIE7rLs 文脈くらい読めよ。
654デフォルトの名無しさん
2018/04/30(月) 20:16:15.83ID:j02OeNlU >>653
あなたはどこを読んで勘違いしたんですか?w
あなたはどこを読んで勘違いしたんですか?w
655デフォルトの名無しさん
2018/04/30(月) 21:36:19.36ID:+iIE7rLs656デフォルトの名無しさん
2018/04/30(月) 22:10:46.10ID:j02OeNlU どこにもそんな事かいてないし、
ブラウザにデバッガが内蔵されてる
知らないなら素直に知らないって認めなよ?
ブラウザにデバッガが内蔵されてる
知らないなら素直に知らないって認めなよ?
657デフォルトの名無しさん
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
他の言語のデバッガと比べても最高クラスのデバッガだと思う。
各オブジェクトのメモリ使用状況とかわかるし
実行時のパフォーマンスの分析
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
658デフォルトの名無しさん
2018/05/01(火) 03:21:21.67ID:vFWUXcpo chrome のデバッガは確かにすごいけどもうそれとにらめっこしながら開発はしたくない
結局主要ブラウザ全部で動作見なきゃいけないし
結局主要ブラウザ全部で動作見なきゃいけないし
659デフォルトの名無しさん
2018/05/01(火) 03:51:29.49ID:2qiiAJGj 必要ないなら見なくていいと思うけど、おまえはなにが言いたいんだ?
660デフォルトの名無しさん
2018/05/01(火) 07:52:17.05ID:jIYJqWRC >>658
ブラウザがたくさんあるんだからその問題はどうあがいても避けられないのでは?
ブラウザがたくさんあるんだからその問題はどうあがいても避けられないのでは?
661デフォルトの名無しさん
2018/05/01(火) 08:37:13.08ID:BQXmdu4P 早くからwasmこいって言いたいのかな?
662デフォルトの名無しさん
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 で受け取ってます
(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 で受け取ってます
663デフォルトの名無しさん
2018/05/02(水) 11:12:43.26ID:s9bETSjB >>662
PHP側の仕様による
PHP側の仕様による
664デフォルトの名無しさん
2018/05/02(水) 12:02:40.46ID:WujbgrGY PHP側もからむ問題みたいなので他できいてみます
マルチポストになるので質問〆ます
マルチポストになるので質問〆ます
665デフォルトの名無しさん
2018/05/02(水) 16:23:22.52ID:5INTSW/S666デフォルトの名無しさん
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や要素が出現した場合にだけ動作するようにするにはどうしたらいいんでしょうか
>>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や要素が出現した場合にだけ動作するようにするにはどうしたらいいんでしょうか
667デフォルトの名無しさん
2018/05/02(水) 22:07:31.94ID:5INTSW/S setIntervalで監視すれば
668デフォルトの名無しさん
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もすぐかけるかなと思ったんですが
スクリプト言語は型がぐちゃぐちゃでエラーの原因がまったく特定できなくて泣きそう
.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もすぐかけるかなと思ったんですが
スクリプト言語は型がぐちゃぐちゃでエラーの原因がまったく特定できなくて泣きそう
669デフォルトの名無しさん
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を使う方法
などがある
まあいろいろしがらみがあって、できると思ったようにはできないってことだ
まずな。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を使う方法
などがある
まあいろいろしがらみがあって、できると思ったようにはできないってことだ
670デフォルトの名無しさん
2018/05/03(木) 05:46:55.21ID:D4v+D7Ik うーん…
syntax エラーがとれない…
はじめから javascript のソース整形がはいってるエディタってないんでしょうか…
ほんの200行ぐらいのソースなのに {} の対応ができてないみたいで
Uncaught SyntaxError: Unexpected token }
で1時間以上はまってる…
新しい言語独学するのってほんと大変ですね…
心おれそうです
syntax エラーがとれない…
はじめから javascript のソース整形がはいってるエディタってないんでしょうか…
ほんの200行ぐらいのソースなのに {} の対応ができてないみたいで
Uncaught SyntaxError: Unexpected token }
で1時間以上はまってる…
新しい言語独学するのってほんと大変ですね…
心おれそうです
671デフォルトの名無しさん
2018/05/03(木) 05:54:39.65ID:XXqqENcs まあ長く書いてしまったが、ようは
for文を使うか、JavaScriptの配列に変換するのかの
どちらかってことだな。
自力でやるのならね。
そこで登場するのがjQuery。jQueryを使うと
このような面倒くさい問題も解决してくれる
jQueryを使えばループ自体が必要なくなることも多いのだが、
ループを使う場合であっても以下のように簡単に記述することができる
もちろんどのブラウザでも動く
$('.score').each(function() {
// this = scoreの要素
})
for文を使うか、JavaScriptの配列に変換するのかの
どちらかってことだな。
自力でやるのならね。
そこで登場するのがjQuery。jQueryを使うと
このような面倒くさい問題も解决してくれる
jQueryを使えばループ自体が必要なくなることも多いのだが、
ループを使う場合であっても以下のように簡単に記述することができる
もちろんどのブラウザでも動く
$('.score').each(function() {
// this = scoreの要素
})
672デフォルトの名無しさん
2018/05/03(木) 13:50:38.89ID:M52LYEAa cdnのssl証明書期限切れで動かなくなるけどなw
673デフォルトの名無しさん
2018/05/03(木) 13:53:26.77ID:XXqqENcs ↑知らない人に説明しておくと、jQuery自体に問題があったのではなく、
CDNのトラブルでSSLの証明書が切れてしまって一時的に使用できなくなった
あくまでjQueryが利用していたCDNであって、ローカルにダウンロードして
使っていたり別のCDNを使っていたのであれば関係ない
問題はすでに解决している
CDNのトラブルでSSLの証明書が切れてしまって一時的に使用できなくなった
あくまでjQueryが利用していたCDNであって、ローカルにダウンロードして
使っていたり別のCDNを使っていたのであれば関係ない
問題はすでに解决している
674デフォルトの名無しさん
2018/05/03(木) 16:45:00.26ID:n1bW45Mx675デフォルトの名無しさん
2018/05/03(木) 17:14:26.35ID:M52LYEAa676デフォルトの名無しさん
2018/05/03(木) 19:48:47.93ID:D4v+D7Ik677デフォルトの名無しさん
2018/05/03(木) 23:36:41.80ID:M52LYEAa >>676
便利だろう。俺はVSCodeが好きだがこれ系のエディタは他にもAtom、Sublime、Bracketsとかもあるぞ。書いとかないと他のエディタの信者に怒られるので念のため
便利だろう。俺はVSCodeが好きだがこれ系のエディタは他にもAtom、Sublime、Bracketsとかもあるぞ。書いとかないと他のエディタの信者に怒られるので念のため
678デフォルトの名無しさん
2018/05/04(金) 00:04:08.60ID:YzOLlJfQ おい、4000円のハゲマルエディタを忘れるな!
679デフォルトの名無しさん
2018/05/04(金) 03:44:26.97ID:qsqOEjQQ おかげさまでだいぶすすみました
教えてくれた方ありがとうございました
あとVSCroeってPHPは整形できないんですね
キーワードハイライトはついてたんですけど
ちょっと残念
>>677さんのほかのもちょっとためしてみますね
教えてくれた方ありがとうございました
あとVSCroeってPHPは整形できないんですね
キーワードハイライトはついてたんですけど
ちょっと残念
>>677さんのほかのもちょっとためしてみますね
680デフォルトの名無しさん
2018/05/04(金) 04:19:51.48ID:plo/RuVs >>679
それ系のエディタ共通の話だけど基本的に個々の機能は拡張機能で追加する形態だからね。jsとかhtmlとかが特例なのよ。
それ系のエディタ共通の話だけど基本的に個々の機能は拡張機能で追加する形態だからね。jsとかhtmlとかが特例なのよ。
681デフォルトの名無しさん
2018/05/05(土) 14:29:24.52ID:3TCgj6IS "use strict";
{
let aaa = null;
let foo = (bar) => {
aaa = "bbb";
}
}
↑見たいな構造のコードを見かけたんですが、
この一番外側の中括弧ってどういう意味やメリットがあるんでしょうか?
{
let aaa = null;
let foo = (bar) => {
aaa = "bbb";
}
}
↑見たいな構造のコードを見かけたんですが、
この一番外側の中括弧ってどういう意味やメリットがあるんでしょうか?
682デフォルトの名無しさん
2018/05/05(土) 14:46:42.94ID:LicTraOR683デフォルトの名無しさん
2018/05/05(土) 14:59:19.03ID:o/grtqGY let使ってるからその変数のスコープを限定しているんだろう。
このコード自体では意味がないけどな。
このコード自体では意味がないけどな。
684デフォルトの名無しさん
2018/05/05(土) 15:12:51.32ID:3TCgj6IS685デフォルトの名無しさん
2018/05/05(土) 15:13:20.66ID:3TCgj6IS686デフォルトの名無しさん
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();
});'
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();
});'
687デフォルトの名無しさん
2018/05/07(月) 20:35:04.87ID:qd9rWx8M 正直言って1つ2つではなく何もかも違う
むしろどうしてそれでうまくいくと考えたのか?
そもそもそれで何がしたいのかが不明
もう一度最初からサンプルやドキュメントちゃんと見てごらん
適当に目を瞑ってキーボード叩いただけじゃそりゃ動かないよ
むしろどうしてそれでうまくいくと考えたのか?
そもそもそれで何がしたいのかが不明
もう一度最初からサンプルやドキュメントちゃんと見てごらん
適当に目を瞑ってキーボード叩いただけじゃそりゃ動かないよ
688デフォルトの名無しさん
2018/05/07(月) 22:27:21.85ID:8eXYY6sB >>687
本当ですか…
javascript自体触ったことないので完全に手探りなので…
考えとしては、nodejs側でPOSTを受け取りたいので、クライアントサイドのjsで変数をPOSTしてあげれば良いのかなっていう素人の考えです
HTML(ejs)の中で入力内容をPOSTしているソースコードはよくあるのですが、jsで変数をPOSTするソースコードは見つからず、、
根本的に考え方が間違っているのでしょうか?
Node.jsを勉強すればいいのか、はたまたJavaScriptを、Expressを、、と色々ありすぎてよく分からない状況ですね
本当ですか…
javascript自体触ったことないので完全に手探りなので…
考えとしては、nodejs側でPOSTを受け取りたいので、クライアントサイドのjsで変数をPOSTしてあげれば良いのかなっていう素人の考えです
HTML(ejs)の中で入力内容をPOSTしているソースコードはよくあるのですが、jsで変数をPOSTするソースコードは見つからず、、
根本的に考え方が間違っているのでしょうか?
Node.jsを勉強すればいいのか、はたまたJavaScriptを、Expressを、、と色々ありすぎてよく分からない状況ですね
689デフォルトの名無しさん
2018/05/07(月) 23:07:17.87ID:G4y8ObMi >>688
間違ってないとは思うけどjsでformを生成する理由はある?
最初からhtmlに記述しといてvalueを弄くれば良くないか
純粋にjsから送るならXMLHttpRequestの方が向いてる気がする
node側はbodyParserが何してるのか分からんから答えられない
とりあえずconsole.log(req.body);したものを貼ってくれ
あとExpressなら最初にそう書いて
間違ってないとは思うけどjsでformを生成する理由はある?
最初からhtmlに記述しといてvalueを弄くれば良くないか
純粋にjsから送るならXMLHttpRequestの方が向いてる気がする
node側はbodyParserが何してるのか分からんから答えられない
とりあえずconsole.log(req.body);したものを貼ってくれ
あとExpressなら最初にそう書いて
690デフォルトの名無しさん
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 とか色々やってる
実は、Node.js だけでは面倒くさいから、それだけでは作らない。
Express + Express Generator フレームワークを使う
Node.jsは、Ruby で、Sinatra を、full scratch で書くのと同じ。
Express + Express Generatorが、Rails と同じ
だから先に、無料のRails チュートリアルをやれば、フレームワークが理解しやすい
YouTube のTraversy Media で、Express, Rails とか色々やってる
691デフォルトの名無しさん
2018/05/07(月) 23:18:20.19ID:TE80s013 またこいつか
ほんとルビウンコの周り廻ってるハエにはろくなのがいない
ほんとルビウンコの周り廻ってるハエにはろくなのがいない
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【次の一手】台湾問題で小林よしのり氏が私見「まさに戦争前夜」「ただちに徴兵制を敷いて、高市支持者を最前線へ」… ★5 [BFU★]
- 「母の部屋に安倍氏が表紙の機関誌が」「(安倍氏が被害者なのは)不思議に思いませんでした」山上被告の妹が証言 [おっさん友の会★]
- 【野球】大谷翔平、佐々木朗希、山本由伸らがWBC辞退なら広がる不協和音… 『過去イチ盛り上がらない大会』になる可能性も★2 [冬月記者★]
- 【news23】小川彩佳アナ「ここまでの広がりになるということを、高市総理はどれだけ想像できていたんでしょうね」 日中問題特集で [冬月記者★]
- 【国際】ロシアはすでに戦争準備段階――ポーランド軍トップが警告 [ぐれ★]
- 「町中華」の“息切れ倒産”が増加 ブームにも支えられ職人技で踏ん張ってきたが… 大手チェーンは値上げでも絶好調 [ぐれ★]
- 【高市売り】円安、止まらず!凄い勢いで暴落中。157円へ [219241683]
- 「韓国人の高市早苗評」、限界突破。 [592058334]
- 【悲報】ヤフコメ民「中国が水産物を輸入禁止にするなら、日本国民向けに安く販売すればいい。中国依存から脱するべき」 [153736977]
- 1,000万円のBMWに擦ってしまった札幌のガキ、捕らえられてガチで詰む [329329848]
- >>3と>>5のワードを使ってai生成する
- ガバガバなんだよ
