1 名前:デフォルトの名無しさん mailto:sage [2016/05/22(日) 19:51:33.37 ID:WwOYSBmy.net] JavaScript を自ら学ぶ人のための質問スレッドです。 >>2-4 のテンプレを読んだ上で質問してください。次スレは>>950 が>>2 のテンプレ案(本スレで改善案があれば考慮)を元に立ててください ■質問を書く上で (1) 煽り、コード制作依頼等、人を不快にさせる投稿はご遠慮下さい。公序良俗を守った応対を心がけてください。 (2) 他の人に迷惑をかけるスクリプトの質問はご遠慮ください。 (ブラクラ、[戻る], [閉じる], [クリック] の妨害、画面占有など) (3) 質問者及び議論を行う人はメール欄を空欄にし、名前にレス番を入れることを強く推奨します。回答者はなりすましを判断できませんので、なりすましが現れても自己責任となります。 (4) 常に自発的に調べる心構えを持ってください。 具体的には「自分で調べてから質問する」「回答をもらってわからない単語があればGoogle検索してみる」など。 わからない内容を代わりに調べてくれる回答者をお望みの方は余所で質問してください。 (5) 出来るだけ一般的な用語を使用してください。脳内オレオレ用語は混乱の元です。 (6) 出来るだけサンプルコードを掲示してください。言葉による説明は行き違いが生まれる場合があります。 ※必ず「問題の事象が再現されること」を確認してください。 必要な部分だけ切り出したつもりで現象が再現できていなかったケアレスミスがしばしば見られます。 (7) サンプルコードに HTML が含まれる場合は validator.w3.org/ で [Check] してみてください。 (8) 質問を具体的かつ詳細に書くと回答を得られやすいです。>>2 の質問テンプレートを活用してみてください。 (9) 時にはあなたが望む「答え」だけでなく、「意見」などが寄せられる場合もあります。
2 名前:デフォルトの名無しさん mailto:sage [2016/05/22(日) 19:57:06.35 ID:Jbe/yyc4.net] 荒 ら し が 立 て た ス レ で す。 ス ル ー 推 奨 。
3 名前:デフォルトの名無しさん mailto:sage [2016/05/22(日) 20:14:45.33 ID:FTGg1fS8.net] 荒らしってか三日間騒ぎ続けてるキチガイ
4 名前:デフォルトの名無しさん mailto:sage [2016/05/22(日) 21:13:57.23 ID:5X2RDQPH.net] 未だにお前らが何をやりたいのかさっぱり分からないが。 まず、次立てずに埋めた馬鹿は荒らしだろ。IDコロコロだし。 >>2 次に、このテンプレでいいのなら124を再利用すべきだろ。 そしてこのスレで行くつもりなら続きのテンプレも落とせよ。 >>1 ライブラリ禁止ならテンプレが異なるので立て直すべき。 個人的にはワッチョイの方がいいと思う。IDない頃よりはだいぶマシになってるし。 IDコロコロ埋め立て放置荒らしはWeb板に戻ってきて欲しいのかもしれないが、 どっちかというとお前らは議論したがっているし、(と言うよりは蘊蓄を披露したいだけか?) 正直今のお前らの日本語力でID無しでの議論は無理だから、この板が妥当だろう。 議論内容は正直どうでもいいものだけど、それでも議論したければするがいいさ。 ただ、あの内容については、500行程度のコードを書くようになれば自然に納得いくから、 もやもやしている奴は、こんな所で時間を消費するのではなく、コードを書いた方がいい。 お前らは本当に「50行のコードしか書いてないんだな」と思える展開が多すぎる。
5 名前:デフォルトの名無しさん mailto:sage [2016/05/22(日) 21:26:22.79 ID:FTGg1fS8.net] 長い3字で済ませろ
6 名前:デフォルトの名無しさん mailto:sage [2016/05/23(月) 00:01:13.45 ID:nh4t1HCu.net] 前スレの ID:WwOYSBmy を見てきたが、酷いな
7 名前:デフォルトの名無しさん mailto:sage [2016/05/23(月) 09:44:02.18 ID:09f5J8xU.net] ワードサラダっぷりも誰かにそっくり
8 名前:デフォルトの名無しさん mailto:sage [2016/05/23(月) 19:52:15.88 ID:aItG7/va.net] >>2 ->>8 いきなりかよw
9 名前:デフォルトの名無しさん mailto:sage [2016/05/24(火) 01:18:13.42 ID:1wjjU4Dv.net] プロパティを持っていないときに代入をしたいんですが var foo = {}; foo.bar = foo.bar || "value"; こういう書き方意外になにかありますか? もしくは、rubyのHash.new("value")みたいにデフォルト値を与える方法はありますか? 初心者なのでどうすべきなのかさっぱりわかりません
10 名前:デフォルトの名無しさん mailto:sage [2016/05/24(火) 02:37:42.45 ID:wmKZ/4EE.net] >>9 if(!hoge.a) hoge.a='aaa'; がわかりやすくてよく使う。 オブジェクトなら、mergeObjって関数作ってて、デフォルト値のオブジェクトにマージする関数も作ってる。
11 名前:デフォルトの名無しさん mailto:sage [2016/05/24(火) 11:09:37.02 ID:57joSblr.net] >>9 foo.bar || "value" は foo.bar に falsy な値が入っていた場合に上書きされる プロパティチェックには in 演算子か hasOwnProperty を使う if (!('bar' in foo)) { foo.bar = 'value'; } デフォルト値はプロトタイプで指定する function Foo (bar) { if (arguments.length > 0) { this.bar = bar; } } Foo.prototype.bar = 'value'; console.log(new Foo); console.log(new Foo(1));
12 名前:デフォルトの名無しさん mailto:sage [2016/05/24(火) 11:43:05.72 ID:Fup9czqT.net] >>9 foo.barがどのような過程で生成されるかで違ってくるよ
13 名前:デフォルトの名無しさん mailto:sage [2016/05/24(火) 12:18:09.22 ID:fTRdDZnU.net] すみません、質問です。 サイトで時間で表示非表示のスクリプトを入れているのですが 非表示でもリロード時に一瞬表示されてしまいます。 このちらつきを防止する策はありませんでしょうか? コードははこんな感じです↓ <script type=
14 名前:デフォルトの名無しさん mailto:sage [2016/05/24(火) 12:23:18.22 ID:iG1UUWT4.net] >>13 www ごめんでも笑えた
15 名前:デフォルトの名無しさん mailto:sage [2016/05/24(火) 12:24:06.53 ID:c4cnVHPj.net] 茶碗の中みたいだな
16 名前:13 mailto:sage [2016/05/24(火) 12:35:17.27 ID:fTRdDZnU.net] ごめんなさい 途中で切れてしまいました <script type="text/javascript"> <!-- window.onload = changeDisplay; function changeDisplay(){ var objDate = new Date(); var now = (new Date()).getTime();//現在のタイムスタンプ(ミリ秒)を取得 var changeTime = (new Date("2016/05/25 20:00:00")).getTime();//切り替える日時のタイムスタンプ(ミリ秒)を取得 //切り替え前 if (now < changeTime) { document.getElementById('hoge1').style.display = "block"; document.getElementById('hoge2').style.display = "none"; setTimeout("changeDisplay()", 1000);//1秒ごとに実行(◯秒ごとの場合は、第2引数に 「◯ * 1000」 と記述) //切り替え後 } else { document.getElementById('hoge1').style.display = "none"; document.getElementById('hoge2').style.display = "block"; } } // --> </script>
17 名前:デフォルトの名無しさん mailto:sage [2016/05/24(火) 13:16:31.22 ID:iG1UUWT4.net] >>16 window.onloadじゃなくてDOMContentLoadedで処理するとか
18 名前:デフォルトの名無しさん mailto:sage [2016/05/24(火) 13:21:28.18 ID:57joSblr.net] >>16 s document.styleSheets で #hoge1 { display: block; } #hoge2 { display: none; } を宣言する
19 名前:デフォルトの名無しさん mailto:sage [2016/05/24(火) 13:47:40.17 ID:Fup9czqT.net] >>16 var timer = 0; function changeDisplay(){ clearTimeout(timer); ... if (now < changeTime) { ... timer = setTimeout("changeDisplay()", 1000); } else { ... timer = setTimeout("changeDisplay()", 1000); } 方法は色々あるけどこれで良いんじゃない?
20 名前:デフォルトの名無しさん mailto:sage [2016/05/24(火) 19:32:47.77 ID:cROy8nMz.net] >>12 手元にある変数をhashtableとして使って var model = {}; model[a][b][c] = value; // ←これができるような準備をしたい みたいにして実行時に受け取ったkeyを使ってモデルを構築したいんですね それをするためにデフォルト値の設定か、key所持の有無を知りたかったんです >>11 > プロパティチェックには in 演算子か hasOwnProperty を使う ありがとうございます。さっそくそれらをぐぐって学びました。 まさにそれです。hasOwnPropertyでピッタリのようです。 >>10 > if(!hoge.a) hoge.a='aaa'; ありがとうございます。タイピング量的にはこれがいいですね。 今回、厳密にプロパティ所持の有無だけをチェックする必要も実は無いですし。
21 名前:デフォルトの名無しさん mailto:sage [2016/05/24(火) 21:04:07.49 ID:TKpsNxtt.net] >>13 >>16 > すみません、質問です。 > サイトで時間で表示非表示のスクリプトを入れているのですが <html class="ng"> <script> if (new Date() < new Date("2016/05/25 20:00:00")) { document.documentElement.className = 'ok'; } </script> <style> .ng #hoge1 { display: none } .ok #hoge2 { display: none } <style> <body> <div id="hoge1">hoge1</div> <div id="hoge2">hoge2</div> </body> </html>
22 名前:デフォルトの名無しさん mailto:sage [2016/05/24(火) 21:08:36.04 ID:TKpsNxtt.net] 一つ言っておきたいのは、ブラウザのJavaScriptでシンプルなコードを書こうと思ったら、 CSSの知識が必要不可欠ってこと。(もちろんHTML自体の知識も必要) CSSを使ううちに不満が出てきて、SASS(SCSS)に乗り換えることだろう。 見た目に関する多くの処理をCSSでやることで JavaScriptは驚くほどシンプルになる。
23 名前:デフォルトの名無しさん mailto:sage [2016/05/24(火) 22:57:09.14 ID:fFhHkZMI.net] JSDocで、JSONを返すAPIなどのオブジェクトを定義出来ますか?
24 名前:デフォルトの名無しさん mailto:sage [2016/05/25(水) 00:22:00.09 ID:oaeRtxYk.net] >>23 JSON はただの String 型
25 名前:デフォルトの名無しさん mailto:sage [2016/05/25(水) 00:38:42.00 ID:Jdaj3qLb.net] >>20 それは、なんか関数用意したほうがいいんじゃないの? model={} keys=[a,b,c] setModel(model,keys,value){ var k=keys.pop(); model[k]=keys.length==0?value:setModel(!model[k]?{}:model[k],value); return model; } みたいな感じで。
26 名前:デフォルトの名無しさん mailto:sage [2016/05/25(水) 01:02:30.80 ID:e2/1A4Vq.net] お疲れさまです 板TOPに書かれているルール >JSはweb管理板で 現行スレ + JavaScript の質問用スレッド vol.130 + echo.2ch.net/test/read.cgi/hp/1463395557/50
27 名前:デフォルトの名無しさん mailto:sage [2016/05/25(水) 01:49:09.77 ID:VNiDmyVP.net] Web板って自演がウザイだけじゃん
28 名前:デフォルトの名無しさん mailto:sage [2016/05/25(水) 07:14:03.46 ID:cVBZ9i9Y.net] それができた経緯と現状を顧みずにルールに縛られるのはドアホのすること。 ルールのために我々があるのではない。
29 名前:デフォルトの名無しさん [2016/05/25(水) 07:23:06.88 ID:hMNMImmN.net] >>24 JSONをパースしたオブジェクトの構造を定義しておけば、IDEの支援受けられるやろ? だからソース上にはないクラスの定義できるかって聞いた JSONが文字列って事くらい誰でもわかる
30 名前:デフォルトの名無しさん mailto:sage [2016/05/25(水) 09:26:14.89 ID:Yyi7LTu7.net] お前の使ってるIDEの仕様なんか知らねえw
31 名前:デフォルトの名無しさん mailto:sage [2016/05/25(水) 09:59:51.34 ID:oaeRtxYk.net] >>29 JSON は String 型なのでオブジェクトとしての補完機能は必要ない String.prototype 系の補完機能が働けばそれでいい まさかとは思うが、JSON をパースしたオブジェクトを JSON と誤解してないだろうな...
32 名前:デフォルトの名無しさん mailto:sage [2016/05/25(水) 14:33:22.24 ID:Jdaj3qLb.net] >>26 その頃のjsは、Webだけのためのものだったからなぁ
33 名前:デフォルトの名無しさん mailto:sage [2016/05/25(水) 17:16:25.85 ID:hMNMImmN.net] >>31 そうなんだ 例えば、TwitterAPIで返ってくるJSONをパースしたオブジェクトの構造をJSDcoコメントで定義しておけば、オートコンプリートの支援が受けられるやろ? それみたいに、APIで返ってくる形式をDocで定義したい
34 名前:デフォルトの名無しさん mailto:sage [2016/05/25(水) 18:20:50.93 ID:6lXHJSGu.net] >>33 JSON.parse したオブジェクトは new Object か new Array のどちらかしかない JSON Interface のオブジェクトというものは存在しない
35 名前:デフォルトの名無しさん mailto:sage [2016/05/25(水) 18:30:33.44 ID:Rwgeje6L.net] >>33 JSONデータにまで、インテリセンスを効かせたいの?
36 名前:デフォルトの名無しさん mailto:sage [2016/05/25(水) 18:50:53.98 ID:hMNMImmN.net] >>35 うん
37 名前:デフォルトの名無しさん mailto:sage [2016/05/25(水) 20:50:05.00 ID:RmI4sgQT.net] あきらめろん
38 名前:デフォルトの名無しさん mailto:sage [2016/05/25(水) 23:00:15.35 ID:cOSJO7dH.net] >>33 それなら、Object 型を指定するだけで済むはずだが(>>34 )
39 名前:デフォルトの名無しさん mailto:sage [2016/05/26(木) 00:59:59.52 ID:xmgEeB9V.net] >>32 実質的に今も大して変わらず、9割以上ブラウザだろ。 それよりは、XHRがでかい。 あれで単なるブラウザ専用DSLからプログラミング言語へと脱皮した。 >>25 脱線するが、君はあいかわらずのコードを書いてるな。 指摘は正しいし、そのコードも悪くはないが、良くはない。8/10だ。 普通はshiftだろうし、keysが抜けているが、俺が言っているのはそういう文法的なことではない。 それはさておき、君はC++出身ということでいいのかな? これをちょっと聞きたかった。 あと、君は ID:WwOYSBmy か? これについては荒れるリスクがあるから、答えたくなければ無視でいい。 その代わり、回答があれば、そちらに有益な情報(と俺が思っているだけだが)を一つ出すことにする。
40 名前:デフォルトの名無しさん mailto:sage [2016/05/26(木) 01:22:55.48 ID:cAjDmLh7.net] >>25 のコードに素人臭さを感じるのは 当たり前に入れるべきスペースすら無いからかな。 経験の低さがにじみ出てる
41 名前:デフォルトの名無しさん [2016/05/26(木) 01:48:29.92 ID:xw9RGDuQ.net] 質問です 初めてnodejsのexpress?というのでwebアプリ作成してみたのですが 非同期が難しすぎるし、IDEの補完がきかないのでメソッドもいちいち調べるの面倒です(以下コードです) https://github.com/himanannyaga/angular2-express-mongo-quiz/blob/master/server/app.js 受け取ったJSONの型チェックとかバリデーション簡単にできる方法ってないんですか? そもそもnodejs自体やめたほうがいいんでしょうか? やめるとしたら今流行りのサーバーサイドのフレームワークってどれがいいんでしょうか?
42 名前:デフォルトの名無しさん mailto:sage [2016/05/26(木) 02:21:24.67 ID:dKizvVLh.net] >>41 >>34
43 名前:デフォルトの名無しさん mailto:sage [2016/05/26(木) 02:55:58.29 ID:Zah1U3qm.net] >>39 ,40 すまんな。スマホで書いてるから。 普段はそういう瑣末な事は、beautifyで綺麗にしてるよ。 俺はperlとgauche。 1ではないよ。
44 名前:デフォルトの名無しさん mailto:sage [2016/05/26(木) 03:07:20.77 ID:cAjDmLh7.net] なるほど。経験者はつい入れてしまうから それができないってのはやはり初心者のようだね。
45 名前:デフォルトの名無しさん mailto:sage [2016/05/26(木) 07:33:19.93 ID:QBGIcNJU.net] >>42 ?
46 名前:デフォルトの名無しさん mailto:sage [2016/05/26(木) 07:40:08.69 ID:CRvI10Ce.net] 補完がどうとか型チェックがどうとか言ってるやつはtypescript使ったらいんじゃない
47 名前:デフォルトの名無しさん mailto:sage [2016/05/26(木) 07:55:50.23 ID:clpr93dz.net] >>46 ビルドしたらjsになるし開発時だけの機能じゃないんですか?
48 名前:デフォルトの名無しさん mailto:sage [2016/05/26(木) 08:40:29.43 ID:Zah1U3qm.net] >>44 つい入れてしまうが分からん。 どのみち機械が解決してくれる内容は手で修正なんかしないだろ。 瑣末な所を気にしすぎて納期的に死ぬ自称中級者みたいなこと言ってないでさ。 popじゃなくてshiftじゃね?ってのは凄く恥ずかしいが。
49 名前:デフォルトの名無しさん mailto:sage [2016/05/26(木) 08:42:44.53 ID:wYXEPUUA.net] >>41 JSON は String 型固定だから型チェックする必要はないよね
50 名前:デフォルトの名無しさん mailto:sage [2016/05/26(木) 12:08:35.93 ID:z6iFNo2h.net] >>41 JSON-Schemaで検索
51 名前:デフォルトの名無しさん mailto:sage [2016/05/26(木) 12:12:08.35 ID:grnWiB9o.net] 補完は好みによるので自分で構築しろよ
52 名前:デフォルトの名無しさん mailto:sage [2016/05/26(木) 12:54:37.58 ID:z6iFNo2h.net] >>48 スマホじゃ仕方ないと思うが、その結論はどうなんだ beautifierや規約強制系のツールは、必要最低限で人が意識して書くほどには綺麗にならないし つかそもそも作業中に自分でも見づらいし、コード書いてたら普通は入れるだろうよ
53 名前:デフォルトの名無しさん mailto:sage [2016/05/26(木) 13:13:53.91 ID:z6iFNo2h.net] あとコードに補足するが !obj.prop の判定はfalsy値も含むから、 (obj.prop == null) のが良い
54 名前:デフォルトの名無しさん mailto:sage [2016/05/26(木) 13:15:55.40 ID:Zah1U3qm.net] >>52 うーん。タイプ数がとにかく減ってくれれば。 ショートカットもバインドしてあるから、2・3行書いて叩いて、って普段はしてるよ。 人の意識なんかそれぞれだから、規約で縛っちゃったほうが後から来る人に引き継ぎやすいし、rcファイルを撒いてる。 規約は真面目に決める。
55 名前:デフォルトの名無しさん mailto:sage [2016/05/26(木) 13:19:24.85 ID:Zah1U3qm.net] >>53 それは微妙では? やるなら、 ((typeof obj.prop === "undefined") || obj.pro===null) で見てやったほうがいいと思う。
56 名前:デフォルトの名無しさん mailto:sage [2016/05/26(木) 13:29:07.06 ID:z6iFNo2h.net] >>55 それは初心者がやること undefined == nullだからやらんでよろしい 少しは他人に突っ込む前に考えろって
57 名前:デフォルトの名無しさん mailto:sage [2016/05/26(木) 13:31:26.42 ID:z6iFNo2h.net] >>54 スタイル強制ツールも完全じゃないんだってば それも本当に使ってりゃわかるだろ
58 名前:デフォルトの名無しさん mailto:sage [2016/05/26(木) 13:44:38.38 ID:Z4ePso6q.net] >>53 falsy な値を考慮するなら null, undefined だけ特別扱いするコードも微妙 in 演算子か hasOwnProperty を使う方がよい
59 名前:デフォルトの名無しさん mailto:sage [2016/05/26(木) 13:47:14.61 ID:azrLOfn9.net] 処理の内容から想像するに in演算子よりhasOwnPropertyメソッドのほうが処理が軽かったりもするのかな?
60 名前:デフォルトの名無しさん mailto:sage [2016/05/26(木) 14:14:23.15 ID:z6iFNo2h.net] >>58 一般にはデフォルト値を与える場合はnullを置き換える事が多いから、こうしてる nullが入る事も考慮する場合ならそれに同意する ただ、JSON相手ならinよりhasOwnPropertyのが良いぞ
61 名前:デフォルトの名無しさん mailto:sage [2016/05/26(木) 14:16:43.93 ID:z6iFNo2h.net] しまったJSONは別の人か まあどちらにしろ in 使う場合はモンキーパッチとかしてる場合でも無い限りまず無いと思う
62 名前:デフォルトの名無しさん mailto:sage [2016/05/26(木) 14:25:27.17 ID:tAENBh2t.net] 素朴な疑問なんだけどfor文の条件部の区切りってなんでセミコロンなの? 中でカンマ使うから?
63 名前:デフォルトの名無しさん mailto:sage [2016/05/26(木) 15:08:38.61 ID:iU2f12RA.net] 誰に聞くべきだ デニスリッチーとかブライアンカーニハンとかケントンプソンに聞くべきじゃねえのか
64 名前:デフォルトの名無しさん mailto:sage [2016/05/26(木) 15:25:45.42 ID:7MaZAWY8.net] >>56 ==での比較とか、もう!の誤爆と発想のレベルが変わらなさすぎてなんと言うかだなぁ。 >>57 まぁ、完全じゃないってか少し冗長になる事は多いが、完全じゃない、ってのはどんなとき? >>62 文だから。
65 名前:デフォルトの名無しさん mailto:sage [2016/05/26(木) 15:34:27.62 ID:e0xtAfbK.net] 論理演算で不可能なケースが発生するのは 論理的なコードを書いていない証 パーフォーマンスが悪くなるよ
66 名前:デフォルトの名無しさん mailto:sage [2016/05/26(木) 15:35:50.71 ID:DQmxlFQb.net] なるほど 頭がパーだからパーフォーマンスか ははは
67 名前:デフォルトの名無しさん mailto:sage [2016/05/26(木) 15:38:36.64 ID:uxvxPhHy.net] そもそもなんでfor文なの? forってどういう意味なの? なんでふんどしなの?
68 名前:デフォルトの名無しさん [2016/05/26(木) 15:50:42.51 ID:z6iFNo2h.net] >>64 >==での比較とか、もう!の誤爆と発想のレベルが変わらなさすぎてなんと言うかだなぁ。 俺から言わせればお前さんが同レベルだよ そうやって仕様をまるで把握していないから、そういう事を平気で言えるんだろうけどね
69 名前:デフォルトの名無しさん mailto:sage [2016/05/26(木) 15:57:13.56 ID:VNKitGFp.net] いつまでもうるせえな どうでもいいだろこんな初心者がひっかかるような話 俺ら上級者様には一切関係ねえ話だろうが undefinedなんて出すバカなんてほっとけや
70 名前:デフォルトの名無しさん mailto:sage [2016/05/26(木) 16:03:05.34 ID:z6iFNo2h.net] >>63 リッチー先生はもうこの世におらん…
71 名前:デフォルトの名無しさん mailto:sage [2016/05/26(木) 16:09:23.69 ID:CcMPN8b7.net] リッチのくせに不死じゃないだと? そんなバカな
72 名前:デフォルトの名無しさん mailto:sage [2016/05/26(木) 16:14:10.74 ID:z6iFNo2h.net] リッチーにジョブズ、リーナスにゲイツ 最近は本当に惜しまれる人ばかりがいなくなってるな
73 名前:デフォルトの名無しさん mailto:sage [2016/05/26(木) 16:36:33.73 ID:UN7L7nZy.net] >>72 >リーナスにゲイツ最近は本当に惜しまれる人ばかりがいなくなってるな 2人とも生きているのでは?
74 名前:デフォルトの名無しさん mailto:sage [2016/05/26(木) 16:39:58.63 ID:z6iFNo2h.net] まさかこんなすべったレスにマジレスで突っ込まれるとは思わなかったぞ!
75 名前:デフォルトの名無しさん mailto:sage [2016/05/26(木) 16:42:16.87 ID:rGVMPRNj.net] 名誉毀損
76 名前:デフォルトの名無しさん mailto:sage [2016/05/26(木) 16:51:40.48 ID:7MaZAWY8.net] >>68 あーあー、お前のコードでもういいよ。 obj.propがnullで初期化されてればそれで良くなったら、改修がめんどくさいとかほっとくよ。
77 名前:デフォルトの名無しさん mailto:sage [2016/05/26(木) 17:01:57.05 ID:TSvbJ/YB.net] 伝説の呂布はあかん
78 名前:デフォルトの名無しさん mailto:sage [2016/05/26(木) 17:22:20.13 ID:99YjRWAc.net] 2ちゃんでしか威張れないなんてなんてかわいそうな人たちなんだろう
79 名前:デフォルトの名無しさん mailto:sage [2016/05/26(木) 18:50:41.26 ID:ZS10B00B.net] nullとundefinedは違うの?
80 名前:デフォルトの名無しさん mailto:sage [2016/05/26(木) 18:58:27.62 ID:etrunD2E.net] んなもんぐぐれぼけ いつからここは初心者レクチャー講座になったんだ鬱陶しい
81 名前:デフォルトの名無しさん mailto:sage [2016/05/26(木) 19:23:51.43 ID:e0xtAfbK.net] >>79 nullとundefined 視覚的な違いがある
82 名前:デフォルトの名無しさん mailto:sage [2016/05/26(木) 19:26:21.87 ID:z6iFNo2h.net] >>76 nullも欲しいならそもそも判定する必要すらないだろ お前が何を言ってるのか、何を想定して何を問題としてるのかもわからん はっきり言えよ
83 名前:デフォルトの名無しさん mailto:sage [2016/05/26(木) 19:37:17.07 ID:e0xtAfbK.net] いちばん不思議なのことは obj.prop がどうしてnull になるのか? だ
84 名前:デフォルトの名無しさん mailto:sage [2016/05/26(木) 19:42:34.13 ID:OguWhub7.net] >>83 ==を使った場合という意味? だとしたら==で比較すりゃ型変換されるからでは
85 名前:デフォルトの名無しさん mailto:sage [2016/05/26(木) 20:18:59.79 ID:7MaZAWY8.net] >>82 あるわ。 未定義と、正しくnullで初期化しました、は相当違う。 要は、横着するならfalsyなオブジェクトを容認すりゃ良いし、 横着しないのであれば型と中身はチェックすべき。 null==trueはfalseで、null==trueもfalseで、余計な地雷を生む。 って話。
86 名前:デフォルトの名無しさん mailto:sage [2016/05/26(木) 20:19:52.73 ID:WcKFKF+t.net] よくアクセスランキングとかにaタグでリンクを貼って飛ばしたりすると思いますが、マウスでクリックした場合は、リンク先で正しくカウントされますが、ジャバスクリプトでページ変更した場合はカウントされないのは、どうしようもないのでしょうか?
87 名前:デフォルトの名無しさん mailto:sage [2016/05/26(木) 20:31:24.69 ID:z6iFNo2h.net] >>85 いやその違いが問題だと言うなら問題となる事例を出せと… 少なくとも自分の経験上では、効率考えるとこれが一番妥当 それ以上厳密な型が欲しいならそもそもJavsScriptなんて使わない [] [ここ壊れてます]
89 名前:デフォルトの名無しさん mailto:sage [2016/05/26(木) 20:32:48.87 ID:iLE0aKXK.net] 質問者もいねえんだからもうよそでやれよクソッタレどもが
90 名前:デフォルトの名無しさん mailto:sage [2016/05/26(木) 20:35:37.26 ID:z6iFNo2h.net] >>85 >要は、横着するならfalsyなオブジェクトを容認すりゃ良いし、 まずこの結論が極端 0を容認するが、null/undefinedを容認しない事例なんてゴマンとあるのに対し、 nullを容認するがundefinedを容認しない事例はほとんどない
91 名前:デフォルトの名無しさん mailto:sage [2016/05/26(木) 21:53:32.28 ID:7MaZAWY8.net] しつこいやつだな。お前が正しいでもういいよ。
92 名前:デフォルトの名無しさん mailto:sage [2016/05/26(木) 21:56:38.20 ID:cAjDmLh7.net] これに従えばいいだろ https://github.com/airbnb/javascript/ 今時typeofつかって"undefined"と比較するのはアホ
93 名前:デフォルトの名無しさん mailto:sage [2016/05/26(木) 22:11:08.45 ID:5gTTFtf/.net] hasOwnPropertyでいいやん、ってだけの話を何をグダグダとw
94 名前:デフォルトの名無しさん mailto:sage [2016/05/26(木) 23:10:54.73 ID:UjMbTLsx.net] また、null, undefind の論争か DBでも、null があって、3値論理で手一杯で、 偉い学者が唱えた、undefind も入れての4値論理は、ややこし過ぎて、否定されただろ Rubyの偽は、nil, false だけ。 これが覚えるルールが少なく、最もシンプル JSはおかしい。言語実装者用の内部ルールが、 一般のプログラマーにも見えてしまっている
95 名前:デフォルトの名無しさん mailto:sage [2016/05/27(金) 00:40:25.02 ID:fXm66YRc.net] >>90 よくねえよ 問題とするなら具体的にどう問題になるのか出せって それが正しいならこっちだって改める
96 名前:デフォルトの名無しさん mailto:sage [2016/05/27(金) 01:55:13.24 ID:10EzBfKp.net] >>93 でもなぁ、現実問題便利なんだよ null・・・データーベースの値としてnullを代入 undefined・・・省略(何も変化させない)
97 名前:デフォルトの名無しさん mailto:sage [2016/05/27(金) 02:38:39.80 ID:5O2HSGrs.net] >>94 改めて貰わなくて結構。 自分が正しいと盲信してる人間に説明し付けるほど無駄なことは無い。
98 名前:デフォルトの名無しさん mailto:sage [2016/05/27(金) 02:58:22.81 ID:fXm66YRc.net] >>96 なんだそれ、事例出すなんて一言で済む話だろ それを虚勢で言っていないなら、ただ荒らしてかき回してるだけの嫌な奴でしかない
99 名前:デフォルトの名無しさん mailto:sage [2016/05/27(金) 03:03:17.59 ID:fXm66YRc.net] >>95 具体的に実装コードが見えないがそれ便利なのか?
100 名前:デフォルトの名無しさん mailto:sage [2016/05/27(金) 04:27:40.50 ID:Ck73qeVz.net] 気持ち悪い奴が言い合ってるな。
101 名前:デフォルトの名無しさん mailto:sage [2016/05/27(金) 08:31:12.52 ID:bXpUR2n8.net] 前のスレもそうでしたよ^^
102 名前:デフォルトの名無しさん mailto:sage [2016/05/27(金) 08:44:39.94 ID:N6sFDxPG.net] nullとundefinedはレイヤーが違う。 nullはオブジェクトに置けるNaNみたいなもので、 基本オブジェクトを扱う文脈で基本効果を持って取り扱われる値。 あくまで参照が同じな特殊な役割を持った偽性のオブジェクトのようなサインが共有されていると思えばいい。 undefinedはもっと広く、何も扱うべき値がない時に充てがわれる基本効果の無い値。
103 名前:デフォルトの名無しさん mailto:sage [2016/05/27(金) 08:53:49.08 ID:UCpt+1On.net] >>101 少し違う。 null 値の定義はES2015で定義されてる。 --- primitive value that represents the intentional absence of any object value www.ecma-international.org/ecma-262/6.0/#sec-null-value --- null 値は意図的にオブジェクトが存在しないことを表す値。 undefined は未定義値。文脈上、初期化される前の値を表す。
104 名前:デフォルトの名無しさん mailto:sage [2016/05/27(金) 08:55:46.53 ID:u/p+Wu9Y.net] >>101 そんなややこしい事考えるくらいならnullだけ有ればいいよね
105 名前:デフォルトの名無しさん mailto:sage [2016/05/27(金) 09:10:27.24 ID:N6sFDxPG.net] >>102 ESの範囲だけならそうだが、実際はESの範囲でnullは極めて限定的にしか表に現れない。 実際のnullのイメージというのは外様APIが作ってる面が大きい。 そしてprompt()みたいに基本文字列型を返す代わりにnullを返すものもある。 よって、nullは”明示的”な「サイン」と考えるのが一番現実に合っている。 undefinedもしかり。ただこちらはESの範囲でも様々に”暗黙的”に表に現れる。 そういう意味でレイヤーが違う。 >>103 どちらかというと内部的には両方の概念が合ったほうがいい。 表に出す時nullだけに絞ると言ったことは勿論可能。 nullだけあればいいというより、nullだけに絞る選択をすることも可能というべきか。 だが使える道具の大小というのはどっちもメリット・デメリットがあって、 個人的に考えるに両方ほぼ同価値で優劣は付けられないと思う。
106 名前:デフォルトの名無しさん mailto:sage [2016/05/27(金) 10:14:21.43 ID:wAuO+eAi.net] >>104 > null 値は意図的にオブジェクトが存在しないことを表す値。 > undefined は未定義値。文脈上、初期化される前の値を表す。 論理的にはこれが正しい 構文が論理的ではないからnullが必要になる
107 名前:デフォルトの名無しさん mailto:sage [2016/05/27(金) 11:52:08.31 ID:5O2HSGrs.net] 真偽しか扱えない奴が多すぎるんだろ。 nullも、undefinedも、NaNもある理由があってあるんだから。 nullだけで良かったはずなんてアホみたいな事言われても困る。 nullを四則演算したら0として扱われるが、undefinedに四則演算したら、NaNになる。 NaNに四則演算しても、NaNのままだし、x=NaNでも、x==NaNはfalse。 当たり前。数値ではない事が確定しているが、「数値ではない」だけで、足し引きした結果は、「別の「数値ではない」もの」だから。 nullってのは、明確にnullだと代入ないし宣言されてるもの。 undefinedは、宣言すらされていないもの。 これを不要という人間は、そこまで考えないといかんシステム作ってないだけ。 mongoのdocumentを出し入れ返しれするapiなんか想定したら良いと思うが、少なくともnullで初期化されてるフィールドは使っても良い。 nullで初期化されていないundefinedなフィールドはもしかすると使うべきでないかもしれない。 それくらいの問題。
108 名前:デフォルトの名無しさん mailto:sage [2016/05/27(金) 12:16:24.73 ID:9jKz8E7p.net] 取りあえず10億ドルの過ちをテメェで精算してから喋って、どうぞ
109 名前:デフォルトの名無しさん mailto:sage [2016/05/27(金) 12:28:34.05 ID:AZKYjFu+.net] window.open("localhost/1.html", "localhost", "width=100, height=100"); window.open("localhost/2.html", "localhost", "width=200, height=200"); window.openでウィンドウを開くときに指定したサイズで開きたいんですが 2回目のwindow.openでサイズが1回目のウィンドウサイズのまま変わりません どうやってwindow.openで開いた時にウィンドウサイズを指定したサイズにできますか?
110 名前:デフォルトの名無しさん mailto:sage [2016/05/27(金) 12:58:47.82 ID:5O2HSGrs.net] nullable型の必要性だなんだって議論は、そもそもjsに明確な型がプリミティブなものしかないんだから無意味だろ。
111 名前:デフォルトの名無しさん mailto:sage [2016/05/27(金) 13:35:54.88 ID:mSvZp4nB.net] レスは繰り返す
112 名前:デフォルトの名無しさん mailto:sage [2016/05/27(金) 14:02:06.44 ID:61QydpaF.net] >>104 イメージというのは各々で異なるものだと思うのだが、他者に意見するほどのものがそこにあるのだろうか…。 prompt も getElementById も「存在しない事を表す」という意味ではES2015の範囲内でおさまっている。 (ES2015的には prompt が空文字を返した方が返り値が String 型で統一されてそれらしいとは思うが、イメージの話なら多少の誤差は許容されるだろう。ここでは文字列が存在しない事を null で表している。) サインという表現を使うぐらいなら、それが定義済値(null)か未定義値(undefined)かで区別する方がES2015らしい。 関数が undefined を返すのは返り値が未定義(指定されていない)だからだ。 明示的にないことを表すなら定義済のnull が望ましい。 そうでなければ、その関数が初期値のundefined を返したのか、明示的にundefined を返したのかを区別できないだろう。
113 名前:デフォルトの名無しさん mailto:sage [2016/05/27(金) 15:20:53.00 ID:fXm66YRc.net] >>106 だからそこまで考えないといかんシステムって具体的になんなんだよって 出してる例もデフォ値とか、Map返して列挙で十分なものばっかりじゃん
114 名前:デフォルトの名無しさん mailto:sage [2016/05/27(金) 15:37:37.19 ID:fXm66YRc.net] あんまり細かく突っ込んでもなんだけどさ、 言語実装側が使う分には便利、という言い分は事例もすぐ出せるし納得はできるが NaNになるとかのユーザー側の仕様ついては、 本来はundefinedの使用は全てエラーとすべき事で是とするものではないだろ
115 名前:デフォルトの名無しさん mailto:sage [2016/05/27(金) 16:28:18.28 ID:5O2HSGrs.net] >>112-113 うち医療系のシステム屋。 NaNも、undefinedも、nullも検査なんかだと戻す値としてあり得る。 サチった、検査項目に入ってない、検査としては行ったが、検体の問題などで結果は出なかった。
116 名前:デフォルトの名無しさん mailto:sage [2016/05/27(金) 16:41:32.15 ID:swGPgzcA.net] 黙れゴミニートのくせに
117 名前:デフォルトの名無しさん mailto:sage [2016/05/27(金) 16:46:54.76 ID:fXm66YRc.net] >>114 そんなので反論するのはいいけど、実際医療システムでそういう仕様にする? しないっしょ? 全部専用の型用意すべきだし、未定義じゃ例外送出だし、 サチったらNaNとかInfinityじゃなくてエラー吐かせるし
118 名前:デフォルトの名無しさん mailto:sage [2016/05/27(金) 16:47:23.18 ID:ftcnTlL4.net] >>114 > サチった、検査項目に入ってない、検査としては行ったが、検体の問題などで結果は出なかった。 これJavascriptで判定するの?
119 名前:デフォルトの名無しさん mailto:sage [2016/05/27(金) 16:55:34.96 ID:fXm66YRc.net] 飽くまで実装事例の話としての話だから、 そういうシステム実装はありえないとは言ってないよ 実際にあるなら黙るし
120 名前:デフォルトの名無しさん mailto:sage [2016/05/27(金) 16:56:34.37 ID:7C5pluWz.net] >>114 戻す値としてあり得る……ってことは return NaN; return undefined; とかがあるってことか エラーコードでも例外ブジェクトでもなく
121 名前:デフォルトの名無しさん mailto:sage [2016/05/27(金) 17:41:11.86 ID:5O2HSGrs.net] すごい食いつきだな。 あるよ。ビューアで。 サーバから返すけど、トラフィックの都合上昔ながらの電文でそれを解釈してるのは足回り。 専用の型って言うけど、オブジェクトのメンバがnullかundefinedかはだいぶ違う。 >>119 違うよ。 解釈した結果をobjectに入れるけど、 解釈した結果そのフィールドが無ければ単にそのフィールドを持ってないオブジェクトになる。 エラーでも、例外でもなく結果だからね。 エラーはエラーで吐くよ。
122 名前:デフォルトの名無しさん mailto:sage [2016/05/27(金) 17:55:45.05 ID:7C5pluWz.net] >>120 if (なんか結果ある) { obj.result = なにか(null含む) } return obj; ってことか 呼び出し側はそのobj.resultがundefinedなのかnullなのか判断する
123 名前:デフォルトの名無しさん mailto:sage [2016/05/27(金) 18:10:16.56 ID:fXm66YRc.net] なんだ表示だけか それも結局Mapと列挙で済むからundefinedいらんな
124 名前:デフォルトの名無しさん mailto:sage [2016/05/27(金) 18:11:25.03 ID:ftcnTlL4.net] >>120 > サーバから返すけど、トラフィックの都合上昔ながらの電文でそれを解釈してるのは足回り。 サーバ側でコンテキストに応じたコードなりなんなりを生成して戻すべきだ と俺は思う
125 名前:デフォルトの名無しさん mailto:sage [2016/05/27(金) 18:16:51.38 ID:fXm66YRc.net] >>120 >専用の型って言うけど、オブジェクトのメンバがnullかundefinedかはだいぶ違う。 でもそのビュワーの元データ受け取る時はundefinedなんて入れてないでしょ? 有効活用の事例としてはかなり微妙でしょ わざわざ複雑な仕様にしてるように見えるもの
126 名前:デフォルトの名無しさん mailto:sage [2016/05/27(金) 18:41:50.65 ID:zWRALPjL.net] >>62 文ではないけど、LexicalDeclaration や Expression に存在しない区切り文字として都合が良かったからかな
127 名前:デフォルトの名無しさん mailto:sage [2016/05/27(金) 18:48:41.37 ID:fXm66YRc.net] >>125 ただのCの名残っしょ
128 名前:デフォルトの名無しさん mailto:sage [2016/05/27(金) 18:53:39.13 ID:5O2HSGrs.net] >>123 病院の回線ってそんなに贅沢に使えないんよ。 >>124 undefinedを入れないよ。 受け取るときにと言うより、受け取っていないから、その
129 名前:キーがundefinedで、nullチェックではなくて、undefinedチェックしないとならん。 台帳表示でも何でも良いが、患者/日/項目のピンポイントで見た時に、値/失敗/結果無しが取れる必要があるってこと。 RDBで言うと、 ・行自体が存在しない ・行の中身がNULL ・行の中身に有意な値が入っている と似たようなもんだよ。 [] [ここ壊れてます]
130 名前:デフォルトの名無しさん mailto:sage [2016/05/27(金) 18:56:39.91 ID:fXm66YRc.net] >>127 それって初期値のビューに対して、そのまま列挙して設定すればいいだけだと思うけど、 わざわざ未定義と判定する事で利便性が高まる事あるの?
131 名前:デフォルトの名無しさん mailto:sage [2016/05/27(金) 19:02:06.07 ID:5O2HSGrs.net] >>126 expression(opt) を2つ以上取るからで、expressionとexpressionの区切りはセミコロンだからじゃねえの? 言語仕様に書いてあったと思うけど。
132 名前:デフォルトの名無しさん mailto:sage [2016/05/27(金) 19:03:11.34 ID:5O2HSGrs.net] >>128 そのまま列挙して設定したものを、 未定義と判定して「未検査」と表示する話をしてるんだが。 頭おかしいの?
133 名前:デフォルトの名無しさん mailto:sage [2016/05/27(金) 19:04:16.73 ID:fXm66YRc.net] もしかして、相手の出力データ型が不整合な事があり、 その型チェックをJS側がやってるってこと?ひえー それならまあ必要といわれても仕方ないか
134 名前:デフォルトの名無しさん mailto:sage [2016/05/27(金) 19:08:24.93 ID:fXm66YRc.net] >>130 ???? そのサービスから受け取ったrowにプロパティがなければ未検査なんでしょ? なら普通に列挙していけば設定されないデータを、未定義か判定する必要ないっしょ? それをわざわざなんで判定するの?
135 名前:デフォルトの名無しさん mailto:sage [2016/05/27(金) 19:15:05.42 ID:fXm66YRc.net] 簡単にいうと、初期値のビュー項目を「未検査」にしておいて、 列挙の度に設定していけば済む話でしょ? わざわざ複雑にしてるように見えるけど
136 名前:デフォルトの名無しさん mailto:sage [2016/05/27(金) 19:18:13.93 ID:IDoL/fjn.net] キチガイの共演
137 名前:デフォルトの名無しさん mailto:sage [2016/05/27(金) 19:21:01.02 ID:7C5pluWz.net] たぶん、 [{"検査項目":"視力","結果":1},{"検査項目":"聴力","結果":"100db"}] っていうデータじゃなくて、 {"視力":1,"聴力":"100db"} っていうデータなんじゃないかな(実際はjsonじゃないんだろうけどとりあえず分かりやすさの為ね) だから {"視力":1} ってデータがあると、JavaScript側は kensa.tyoryokuがundefinedになるから 表示する際はundefinedチェックをするっていいたいんじゃないかな? ※その場合俺ならinを使うかも
138 名前:デフォルトの名無しさん mailto:sage [2016/05/27(金) 19:29:01.92 ID:fXm66YRc.net] >>135 うん…その場合にundefinedのチェック付ける必要ないよねと Viewを初期化し、各カラムに対応するView側項目を一個ずつ設定すれば、 無駄な処理もなくて効率いいでしょ?
139 名前:デフォルトの名無しさん mailto:sage [2016/05/27(金) 19:37:17.42 ID:fXm66YRc.net] イメージとしては、Object.assign({初期値},{取得値})とすれば十分じゃないか? それを敢えてundefinedを確認するようにするのは、 わざわざ複雑にしてるように見えるけど 言ってる事が伝わった上で、何か自分がわかってない問題があるのか?
140 名前:デフォルトの名無しさん mailto:sage [2016/05/27(金) 19:47:32.72 ID:JIhds0M1.net] ちになみにxがundefinedかどうかを調べるベストな方法は (x === void 0)でおk?
141 名前:デフォルトの名無しさん mailto:sage [2016/05/27(金) 20:07:52.97 ID:5O2HSGrs.net] >>135 あ、そうそう。 ただ、何人も並べたり、何日も並べたり、そういう事する。 inでも良いね。コスト低そうだし。 >>136 >>10 、で既に俺言ってるけど。 その中で、ちゃんとオブジェクトをマージするか横着するかって話。
142 名前:デフォルトの名無しさん mailto:sage [2016/05/27(金) 20:17:12.65 ID:Dt+fFMyq.net] >>138 ReferenceError になるケースを除けばそう
143 名前:デフォルトの名無しさん mailto:sage [2016/05/27(金) 20:27:35.45 ID:fXm66YRc.net] >>139 いや別にオブジェクトのマージの話じゃないんだけど まあどちらにしろ必要ないっしょ?
144 名前:デフォルトの名無しさん mailto:sage [2016/05/27(金) 20:37:53.46 ID:fXm66YRc.net] まあ正直納得いってないけど 実際使ってる実装があるならundefined値も必要ってことでいいやもう あとで消化しよう
145 名前:デフォルトの名無しさん mailto:sage [2016/05/27(金) 20:38:54.16 ID:5O2HSGrs.net] >>141 どーしても必要ない事にしたいんだな。 手入力や、他システムから飛んでこられた時に、画面定義にもデータにもない、ってのはどう判断するのかね。nullを取りうる値を持ってんのに。 仕事として開発したこと無いんじゃねえの? 自分の無知が認められない人間とはみっともないもんだ。
146 名前:デフォルトの名無しさん mailto:sage [2016/05/27(金) 20:39:37.88 ID:5O2HSGrs.net] >>142 undefinedを値として必要としてる訳じゃねえよ。 お前マジで頭おかしいんじゃねえの?
147 名前:デフォルトの名無しさん mailto:sage [2016/05/27(金) 20:45:22.04 ID:Dt+fFMyq.net] ID:5O2HSGrs がいいたいのは>>106 の事かね > undefinedは、宣言すらされていないもの。 これがプロパティの事を指すなら in 演算子か Object#hasOwnProperty で解決できるという事を>>105 でいってるんだろうけど、マージ云々は何を言いたいのかわからない
148 名前:デフォルトの名無しさん mailto:sage [2016/05/27(金) 20:50:00.83 ID:fXm66YRc.net] >>143-144 なぜ急に煽る? まあ言わせてもらうけどね、本当に仕事でやってるならそんなクソ仕様「ありえない」だよ 「医療システム」用なら本来は別途に未検査を表す値を用意するべき内容 でも実装してるってならそうなんだろう
149 名前:デフォルトの名無しさん mailto:sage [2016/05/27(金) 20:51:42.45 ID:fXm66YRc.net] つか医療用でそんなLAMPみたいなシステム見たこと無いけどね…
150 名前:デフォルトの名無しさん mailto:sage [2016/05/27(金) 20:56:48.42 ID:5O2HSGrs.net] >>145 そうそう。 検査はしたけど、まだ結果は出てない、だとか、 例えば尿検査だと、尿少なすぎて検査結果出せませんでした、って結果はnullが入ってる。 検査進捗は別に持つから。 それを、テーブルやらグラフに出すときに、 患者一日、みたいなテーブルにガサッと載せたいのであれば、 先に daily:{ koumokuA:"", koumokuB:"", } みたいなオブジェクト作っといて、その上に、ret.filter(hasKeyIn(daily)).map(convToStr)したものをマージしちゃえば、表は簡単に書けるよねって話。 グラフならconvToScaleとか、何とでもなる。
151 名前:デフォルトの名無しさん mailto:sage [2016/05/27(金) 21:00:52.88 ID:5O2HSGrs.net] >>146 クソ仕様w その、まぁ、未検査ではないんだが、結果の無い状態を現す値、がnullなんだけど。 何故別途必要なのか聞いてみたい。 さらに、その値が永劫、その値を返す検査が現れないか、と。
152 名前:デフォルトの名無しさん mailto:sage [2016/05/27(金) 21:03:22.58 ID:5O2HSGrs.net] >>147 LAMPと全然関係ないと思うが。 何社か医療渡ってるけど割と普通。
153 名前:デフォルトの名無しさん mailto:sage [2016/05/27(金) 21:06:38.13 ID:Dt+fFMyq.net] >>148 その実装はわかるけど、>>139 の主張と結びつかない >>136 の「undefined と比較する必要ないよね、in 演算子で十分だよね」に対して>>139 で「オブジェクトのマージ」を仄めかしてるよね マージ処理なら in 演算子や hasOwnProperty で十分に実装できると思うけど まあ、ディープマージでなければ Object.assign で十分ではあるけど
154 名前:デフォルトの名無しさん mailto:sage [2016/05/27(金) 21:08:37.38 ID:5O2HSGrs.net] >>151 物にもよるんよ。検査って。 2項目以上帰ってくるものの、片方だけ表させたいとか。
155 名前:デフォルトの名無しさん mailto:sage [2016/05/27(金) 21:14:25.30 ID:fXm66YRc.net] もう一回見てきたけど、 控えめに見てもundefinedの計算結果がNaNという部分は 「未定義値」という値を明確に容認してるよ 少なくともhasOwnPropertyだけで済むと言ってるのとは相容れないし って…もう最初から何も問題なかったってことでいいや 面倒くせえわ
156 名前:デフォルトの名無しさん mailto:sage [2016/05/27(金) 21:18:25.17 ID:Dt+fFMyq.net] >>152 よくわからない プロパティが存在しないことを判断する方法は大きく分けて3つある 1. obj.prop === undefined 2. !('prop' in obj) 3. !(obj.hasOwnPropery('prop')) 1. はあなたが推奨する方法だけど、obj.prop = undefined にも反応する 2. や 3. でも問題ないし、そっちの方が厳密 ここで 1. でなければマージできない理由は?
157 名前:デフォルトの名無しさん mailto:sage [2016/05/27(金) 21:24:59.90 ID:fXm66YRc.net] >>149 いやお前自分で >そのまま列挙して設定したものを、 >未定義と判定して「未検査」と表示する話をしてるんだが。 >頭おかしいの? と言ってるし 本来この未検査ってのはリクエストに対して、ちゃんと
158 名前:定義されたデータを返す物だろ、 適当なWeb環境じゃないんだから、ビュー側で判別して表示とかありえないだろ つか取得時のコンテキストどうなってんだよ [] [ここ壊れてます]
159 名前:デフォルトの名無しさん mailto:sage [2016/05/27(金) 21:26:20.32 ID:Dt+fFMyq.net] ちなみに、Object.assign は [[GetOwnProperty]] でプロパティをマージするね Polyfill も当然、Object#hasOwnPropery を使う 条件別マージだから Object.assign を流用できないとしても根幹となるマージ処理は同じで問題ないと思うんだよね www.ecma-international.org/ecma-262/6.0/#sec-object.assign
160 名前:デフォルトの名無しさん mailto:sage [2016/05/27(金) 21:30:34.70 ID:5O2HSGrs.net] >>153 未定義じゃないんだって。さっきの例みたら分かるだろうけど、数値に変換できない検査結果はNaNにしてるの。 0/1で持ってて、インフルエンザの検査結果を何を血迷ったかグラフで見て、陰性と陽性がピコピコ蠢くグラフ見て楽しいか? >>154 単に、「である」を否定を使って比較しない、ってコーディングルールの問題。
161 名前:デフォルトの名無しさん [2016/05/27(金) 21:32:08.16 ID:fXm66YRc.net] >>157 いやお前は最初の方で undefined との四則演算を容認してただろ つまり値としての undefined が必要と説いてる こっちはその値としてのundefinedがいらんとさんざんそれを否定してるわけ
162 名前:デフォルトの名無しさん mailto:sage [2016/05/27(金) 21:34:19.11 ID:5O2HSGrs.net] >>155 未定義は未検査、検査したけど何らかの結果で…って話だよ。 ある検体検査の中で、結果無しと返してるものに対して、電カル側が持ってる項目リストをピンポイントで開いてきたりするんだよ。 適当なWebじゃねえからいちいち処理してんじゃねえか。
163 名前:デフォルトの名無しさん mailto:sage [2016/05/27(金) 21:35:39.58 ID:5O2HSGrs.net] >>158 してないから。 四則演算するとこうなるから、四則演算が成り立たないものは正しく判定しなきゃね、そのためには、null,0,undefined,NaN全部扱い違うよねって言ってんじゃん。
164 名前:デフォルトの名無しさん mailto:sage [2016/05/27(金) 21:44:03.54 ID:h7QAH+sV.net] うるせえ消えろゴミ
165 名前:デフォルトの名無しさん mailto:sage [2016/05/27(金) 21:44:10.18 ID:Dt+fFMyq.net] >>157 > 単に、「である」を否定を使って比較しない、ってコーディングルールの問題。 そのコーディングルールの話を初めからいっておけばここまでこじれなかったんじゃないの? 端的に言ってあなたは説明が下手だと思う 自分の主張が伝わらなくて憤慨している様子は伝わってくるけど、原因のほとんどはあなたの中で当然と思うコーディングルールが皆に伝わってないことにあるんじゃないかな >>10 で ! (否定)を使っているのが気になるけど、何かしらのあなたなりのコーディングルールがあるんだろうね 自分のコーディングルールが万人受けするとは限らないことは気に留めておくといいと思う
166 名前:デフォルトの名無しさん mailto:sage [2016/05/27(金) 21:46:10.68 ID:fXm66YRc.net] >>159 それって本来は未検査、結果待ち、結果無しって 別の値を定義して分けるべき内容でしょ? 悪いけど普通にクソ仕様だと思います >>160 四則演算できると言ってる時点で値として認めてる事になるよね、違う?
167 名前:デフォルトの名無しさん mailto:sage [2016/05/27(金) 21:48:08.24 ID:UggnfNpm.net] undefined | null の等価が必要な糞みたいな 構文書いているんじゃないよ はっきり言ってゴミだ
168 名前:デフォルトの名無しさん mailto:sage [2016/05/27(金) 21:48:48.08 ID:fXm66YRc.net] いや、違うかそうは言ってないんだな もうちょっと待ってくれ
169 名前:デフォルトの名無しさん [2016/05/27(金) 21:52:05.84 ID:OuviwO3+.net] >>164 がいきなり何を言ってるのか良くわからない件w
170 名前:デフォルトの名無しさん mailto:sage [2016/05/27(金) 21:53:49.64 ID:7C5pluWz.net] 俺も>>164 がなにをいってるかわからんwww
171 名前:デフォルトの名無しさん mailto:sage [2016/05/27(金) 21:54:15.57 ID:Y3oSSTyA.net] 一人で10も20も連投するようなキチガイ説明云々以前に頭おかしいだろ
172 名前:デフォルトの名無しさん mailto:sage [2016/05/27(金) 21:59:59.70 ID:/K+aNa26.net] こういうやつって自分より明らかに上のヤツが面と向かって話きいてやるから出て来いっていうと出てこないんだよな 所詮その程度のカス
173 名前:デフォルトの名無しさん mailto:sage [2016/05/27(金) 22:00:29.40 ID:fXm66YRc.net] >>160 >nullも、undefinedも、NaNもある理由があってあるんだから。 >nullだけで良かったはずなんてアホみたいな事言われても困る。 これで適切に処理しましょうって事は、undefinedは使用禁止にしても良いでしょ? 別にhasOwnPropertyとかinで検査する事になるんだから その事には同意してるの?
174 名前:デフォルトの名無しさん mailto:sage [2016/05/27(金) 23:20:18.13 ID:Ajerz5wW.net] >>43 おっと?ちょっと見立てが狂った。まあそれはさておき、回答ありがとう。 ちなみにリクエストある? 見立てが狂っていたので、俺が勝手に「君にとって有益」だと思っているのもゴミでしかないかもしれんし。 君はこの一連の会話には参加してないと思うけど、こいつらが駄目な点を指摘しろと言われればできるけど。 放置しておけば収まるかと思いきや、そういう感じでもないし。 ただ一番カスなのは、単発で煽っている奴だと思うが。 俺個人のスタンスは、この手の技術的応報は「気が済むまでやれ」だからね。
175 名前:デフォルトの名無しさん mailto:sage [2016/05/27(金) 23:21:03.48 ID:Dt+fFMyq.net] >>154 のマップオブジェクト的なものの判定処理で最終的に行き着くのは 3. の hasOwnProperty obj.prop = undefined とか、NaN の比較とか、定義順の列挙とか、諸々の問題は new Map で解消される ID:5O2HSGrs が作る医療システムは構造が複雑なので単純なオブジェクトマップで対応するよりも、独自のインターフェースを作る方がいい https://jsfiddle.net/oo1777o0/
176 名前:デフォルトの名無しさん mailto:sage [2016/05/27(金) 23:51:31.16 ID:64E4c/Qq.net] Rのデータでも、null, NaN は理解できるけど、 undefined はプログラムのバグじゃないの? それは、アカン DBでも、null, undefined を加えて、4値論理だと、SQLが複雑化して、バグが増える
177 名前:デフォルトの名無しさん mailto:sage [2016/05/27(金) 23:56:13.71 ID:10EzBfKp.net] undefinedは同じ関数名でsetter/getterを作るときに使うな。 たとえば、obj.data('name') だと getter、 obj.data('name', 'hoge') だとsetter。 nullだけいいかと思うかもしれないけど、 obj.data('name', null)という風にnullを代入するsetterがあるかもしれないので nullとundefinedは区別がついたほうがいい。
178 名前:デフォルトの名無しさん mailto:sage [2016/05/28(土) 00:01:17.19 ID:2CcTCqQn.net] >>171 一番のカスは質問でも回答でもねえ話を続ける場違いなカスに対し 「俺個人のスタンスは〜」とかドヤ顔で言ってしまう脳味噌馬糞野郎だから安心して
179 名前:デフォルトの名無しさん mailto:sage [2016/05/28(土) 00:03:07.76 ID:lIlkJ1va.net] >>174 null と undefined は区別すべきだと思うけど、その場合はarguments.lengthで判定するのが普通
180 名前:デフォルトの名無しさん mailto:sage [2016/05/28(土) 00:15:41.95 ID:Q7pM0tvA.net] >>108 おねがいします
181 名前:デフォルトの名無しさん mailto:sage [2016/05/28(土) 00:17:23.16 ID:U+yYkFDL.net] argumentsって展開できる? rubyでa = [0, 1, 2] def f(a, b, c); endに対して f(*a)できるようなやつある? もしくは g = funciton () {/*arguments使う処理*/}; f = function () {/*g()にargumentsを渡す何らかの手段*/}; gを変更せずにf側の工夫だけで何とかなればいいんだけど
182 名前:デフォルトの名無しさん mailto:sage [2016/05/28(土) 00:23:14.01 ID:UVJrtMwg.net] >>177 次の開く前に前のcloseするとか
183 名前:デフォルトの名無しさん mailto:sage [2016/05/28(土) 00:24:56.37 ID:6huP5UCX.net] 単発キチガイって >>79 なのか? そうでなければここまで粘着する意味が分からん。 こいつらは質問にも答えた上で「技術的に」やり合ってるんだから、 文句言う必要も筋もないと思うが。 このスレがこの調子なのはいつものことだし。(少なくとも1年以上前からこう) 単発キチガイが「人格的な」批判だけをしている方がうざいし、 気に入らないのなら出ていけばいいだけだろ。
184 名前:178 mailto:sage [2016/05/28(土) 00:28:43.02 ID:U+yYkFDL.net] >>178 自己レス var g = function () {alert(arguments.length);}; //var f = function () {g(arguments);}; // ダメ var f = function () {g.apply(this, arguments);}; // これでいい f(0, 1, 2, 3);
185 名前:デフォルトの名無しさん mailto:sage [2016/05/28(土) 00:45:35.77 ID:F7SYakCj.net] >>172 ああーいい感じに簡潔にまとまってていいね 自分もMapと専用型派だから、そのまま便乗させてもらいたい
186 名前:デフォルトの名無しさん mailto:sage [2016/05/28(土) 00:48:21.69 ID:lIlkJ1va.net] >>178 Rubyは知らんが、Function#apply の事か?
187 名前:デフォルトの名無しさん mailto:sage [2016/05/28(土) 00:50:15.08 ID:F7SYakCj.net] >>177 俺なら考えるの面倒だからpostMessageでリサイズしちゃう
188 名前:デフォルトの名無しさん mailto:sage [2016/05/28(土) 01:21:36.93 ID:4RY8P4hk.net] >>162 10は、評価した結果falseでなければ、だよ。 undefinedである、もしくは、nullであれば、とはちと違う。 当然と思うコーディングルールというか、xxx==null、と書いておいて、実はnull以外にもundefinedも判定されます、という理屈の方が明らかに間違ってる。 >>163 だから、それは状態として持ってるの。 結果の話なんだよ。 状態と結果をごっちゃにしてはいかん。 結果がある見込みすら無い、少なくとも現時点ではまだ無いか有意では無い、有意な結果がある、のたった3つの、結果の値なの。 クソ仕様はお前の頭。 >>163 だから、してはいけないって言ってるんじゃん。 undefinedは状態で、nullは値なんだよ。 >>170 使用禁止って何だ?お前何言ってるか全く理解してないのか? 代入してないから、undefinedで、別にundefinedを突っ込んでる訳ではない。 >>178 apply
189 名前:デフォルトの名無しさん mailto:sage [2016/05/28(土) 01:30:01.42 ID:4RY8P4hk.net] >>172 確かに綺麗だと思う。 進捗と結果は分けた方が良いね。 進捗は、同じ検体でも検査によって異なるフェーズを辿るし、ひとつの検査で2つ以上の結果が帰ってきたり、2つ以上の検査でひとつの結果が帰ってくるので、そいつらは分割する必要がかる
190 名前:デフォルトの名無しさん mailto:sage [2016/05/28(土) 02:00:19.58 ID:F7SYakCj.net] >>185 未定義という概念だけが必要だから、jsのundefinedはいらないよね 言ってる意味わかる? というか >当然と思うコーディングルールというか、xxx==null、と書いておいて、実はnull以外にもundefinedも判定されます、という理屈の方が明らかに間違ってる。 ってfalsy判定するって言ってる人がそれ言う?酷すぎでしょ >状態と結果をごっちゃにしてはいかん。 >結果がある見込みすら無い、少なくとも現時点ではまだ無いか有意では無い、有意な結果がある、のたった3つの、結果の値なの。 >クソ仕様はお前の頭。 いや糞仕様だよ普通に つかなんでいちいち煽りを入れてくるかね… 俺は散々その未検査とかの状態をundefinedじゃなくて、 サービスの値として別で定義するべきと言ってるわけ 電カル云々ってのは結合って意味でしょ? その結合するにしても、「undefinedを判定に使う」なんてのはやるべきじゃないでしょ? アプリケーションレベルの話なのだから、きちんと「未検査」「なし」という値を定義すべきでしょ? きちんとここまで理解できてる?
191 名前:デフォルトの名無しさん mailto:sage [2016/05/28(土) 02:08:55.19 ID:F7SYakCj.net] というか実際はどうかはしらないけどさ、 説明聞く限りだと、明らかにまともなシステムじゃないよ? そんなのをお手本として語っちゃうのは駄目だと思うよ
192 名前:デフォルトの名無しさん mailto:sage [2016/05/28(土) 02:42:07.52 ID:F7SYakCj.net] もうこの話題は埒が明きそうにないからレスしないことにする すみませんでした
193 名前:デフォルトの名無しさん mailto:sage [2016/05/28(土) 03:04:53.76 ID:4RY8P4hk.net] よほど指摘されたのが悔しかったんだなぁ。 らちがあかないおつむでご苦労なこった。 おつかれさん。
194 名前:デフォルトの名無しさん mailto:sage [2016/05/28(土) 03:09:13.25 ID:4RY8P4hk.net] undefinedという状態を使う、その行が無いという情報を使う、開始電文+データ長0+データ(ゼロバイトの)+終了電文。 全部、有意な「何もない」という情報なんだけどな。 0を発明する前の、指で数を数える原始人みたい。滑稽よね。
195 名前:デフォルトの名無しさん mailto:sage [2016/05/28(土) 03:22:22.32 ID:4RY8P4hk.net] jsのundefinedは要らない、もよくわからんな。オブジェクトとして存在していなくてもよい、予約語であれば良い、とでも言いたいんだろうか。 それとも、概念が必要ないんだろうか。 phpのissetも、perlのexistsも、Mの$Dも、はたまたcのプリプロセッサマクロのifdefも要らんというか、使いこなせないんだろうな。
196 名前:デフォルトの名無しさん mailto:sage [2016/05/28(土) 03:43:50.37 ID:/MxDZHtX.net] すでに「nullという値」という概念が存在してるんだから 「何もない」ものと区別する必要があるだろ。
197 名前:デフォルトの名無しさん mailto:sage [2016/05/28(土) 04:51:05.16 ID:BWGRJTpr.net] 宇宙の真理として絶対に必要あるものでもないし、必要ないものでもない。 JS界では有意義に使い分けられてるのだからあってもいいと思う。 無い言語では別の機能で代替してそれは成り立ってるのだからなくてもいいと思う。 ただそれだけの無意味な議論。
198 名前:デフォルトの名無しさん mailto:sage [2016/05/28(土) 05:52:30.30 ID:/MxDZHtX.net] C言語なんかint型に数値以外入らないから -1で代用したりでなんとかなってるしなw ないならないで工夫次第で何とかなるが、 あれば楽になるっていうものなのだろう。
199 名前:デフォルトの名無しさん mailto:sage [2016/05/28(土) 09:38:09.38 ID:PPUGo99f.net] >>186 専門家でない自分が検査の詳細を知る由もないんだけど、必要であれば Interface を拡張するか、上位 Interface を作ればいい 例えば、検査フェーズ毎に結果が欲しかったら、上位に Interface MedicalCheckPhase を作る https://jsfiddle.net/oo1777o0/1/ 患者毎に管理したければ更に上位に Interface を作ればいい --- あなたの管理法が否定されているのは「調査予定の有無」「調査の実施状況」を一つのプロパティにまとめているから switch (obj.prop) { case undefined: console.log('本件は調査予定がありません'); // プロパティが存在しない === 調査予定そのものがない break; case null: console.log('本件は調査予定ですが、未調査です'); // プロパティが存在する === 調査予定がある / null === 未調査 break; default: // なにがしかの処理 } これは「調査予定の有無」「調査の進捗状況」の2つを別々のプロパティで管理した方がいい MedicalCheck でいう implement, progress がそれにあたる
200 名前:デフォルトの名無しさん mailto:sage [2016/05/28(土) 09:48:10.32 ID:UVJrtMwg.net] >>196 まったく同意ではあるんだけど >>127 で > 病院の回線ってそんなに贅沢に使えないんよ。 ってあるから やむをえずそうしたってことがあるのかねって思ってた
201 名前:デフォルトの名無しさん mailto:sage [2016/05/28(土) 10:07:17.12 ID:oSugN8gY.net] undefined は後で拡張し易くするためにある。 undefined 処理のロジックを入れておけば、新たなフィールドが追加されても プログラムの修正はそのフィールドを直接扱う所だけで済む。 ゆえに、決して拡張されない領域内では undefined も不要になる (null と undefined はむしろ全然関係ない話) という理解でok?
202 名前:デフォルトの名無しさん mailto:sage [2016/05/28(土) 10:17:45.97 ID:PPUGo99f.net] >>185 > 10は、評価した結果falseでなければ、だよ。 >>10 が>>157 の "「である」を否定を使って比較しない" のコーディングルールと接触しないのか、って事 「hoge.a が truthy である」の否定を使って比較しているよね? if 文は内部的に ToBoolean を通して true と比較するから「肯定の否定で比較」してる if 文に限っては ! を使ってもいいルールなら if (!obj.hasOwnProperty('prop')) も許可しなければおかしい あと、改めて考えると if (obj.hasOwnProperty('prop') === false) で肯定式のみのコーディングが成立するから hasOwnProperty を敬遠する理由がなくなるね
203 名前:196 mailto:sage [2016/05/28(土) 11:11:02.33 ID:PPUGo99f.net] >>197 「実施の有無」はInterfaceの内部処理として隠れるから実際のところはそれ程コード量は増えないと思うんだよね Interfaceを作ればその後のコード量が少なくなるから相殺されるか、逆にコード量が少なくなる場合もあると思う このぐらいのコード量ならzlib圧縮してminifiedしたら十分に小さくなるし
204 名前:デフォルトの名無しさん mailto:sage [2016/05/28(土) 11:20:22.38 ID:6huP5UCX.net] おい、一応言っておくけど>>172 も>>196 もゴミだぞ。 それから>>189 、お前は概ね間違ったことは言っていない。 お前ら、設計が出来るつもりなのなら、OPPのスレでも見てこい。 お前らにはいい教材になるかもしれん。 echo.2ch.net/test/read.cgi/tech/1463663267/
205 名前:デフォルトの名無しさん mailto:sage [2016/05/28(土) 12:01:27.82 ID:oFxbpGnE.net] ここは質問スレッドであって議論スレじゃない スレタイも読めない阿呆は出て行ってくれ
206 名前:デフォルトの名無しさん mailto:sage [2016/05/28(土) 12:12:29.14 ID:8NhNw/7c.net] >>201 しょーもない宣伝するな しかもOPPて
207 名前:デフォルトの名無しさん mailto:sage [2016/05/28(土) 13:07:01.36 ID:6huP5UCX.net] 単発キチガイ粘着乙 お前の回答はどれなのさ? こいつらは回答してるし、質問は掃けているのだから、回答もしていない奴が口を挟む筋はないよ。 最近、お前みたいな「筋をわきまえないキチガイ」は2ch一般に増えたけどね。
208 名前:デフォルトの名無しさん mailto:sage [2016/05/28(土) 13:29:38.68 ID:GZb66p/J.net] 場を弁えないキチガイの方がいらねえは
209 名前:デフォルトの名無しさん mailto:sage [2016/05/28(土) 15:14:44.57 ID:h5j9D0+l.net] >>195-200 すまんが、否定派は結局何が主張したいのかがわけわからん。 true/falseはいらない、1と0でいいと言ってるのと同じでしょ。 無くてもどうにかなるからという論を散々されても、 無いほうがいいということにはならないからね。 でも最初の話はそうじゃなかったでしょ? JSにおいてnullとundefinedの関係及び立ち位置がやや難しいという話だったでしょ。 undefinedが要るか要らないかのような単純な話じゃないし、 今からJS2を作ろうというのでもないのだからそんな話をしても全く意味が無い。 それよりも関係及び立ち位置をここで、またこれから振り返って整理していこうというのが 正しい論議だと思うよ。
210 名前:デフォルトの名無しさん mailto:sage [2016/05/28(土) 15:34:39.73 ID:7z0JA/T2.net] const obj = { age: 1, f: () => { console.log(this.age); } }; obj.f(); functionじゃなくて() =>で関数を書いた時にf()の中からageの値を取得する方法を教えてください
211 名前:デフォルトの名無しさん mailto:sage [2016/05/28(土) 16:01:02.90 ID:jKO2qa04.net] ソースコードはヒューマンリーダブルなので 自己満足で解決
212 名前:デフォルトの名無しさん mailto:sage [2016/05/28(土) 16:28:58.11 ID:6huP5UCX.net] >>207 その場合はfunctionと書く方が正解
213 名前:196 mailto:sage [2016/05/28(土) 16:47:58.29 ID:PPUGo99f.net] >>206 一緒くたにされてるけど、別に undefined 不要は唱えていない 自分が主張したのはプロパティが存在しない事を確認する為に obj.prop === undefined を使うべきではない、という事と ID:5O2HSGrs が考える医療システムコードの問題点だけ null, undefined の違いは>>102 で説明したことが全て undefined 比較はほとんどの場合において不要
214 名前:デフォルトの名無しさん mailto:sage [2016/05/28(土) 16:53:14.43 ID:F7SYakCj.net] すまん レスしないと行ったけどむかついたから言わせて >>192 なぜそう煽るの?しかもそのレスってこっちの内容まともに読めてないよね? まず未定義の判定操作がいらないとは言ってないよ 未定義を値として扱う事全般が駄目と言ってる まず大前提として、こっちは端的にBoolean、Number、文字列やユーザー定義の列挙型と、 Nullable、Undefinable(?)な型はそれぞれ直交した概念ときちんと分けて考えてるわけ (NaNはNumber型の値の一つとして見てるから、その点でそちらとは考えが違う) で君の言ってるシステムは本来アプリケーションの1つの型(もちろん値が直交した型なら複数)として実装する物を 変数の未定義状態を表す型(Undefineable)に対し、 なぜかアプリケーション側の定義値の一つをぶっこんでいるでしょ? それ普通に糞仕様だよねって話 理解できてる? 違うと言うならズレた煽りを入れずに、何が違うか具体的に言ってね?
215 名前:196 mailto:sage [2016/05/28(土) 17:01:36.87 ID:PPUGo99f.net] >>207 obj.age で可能だけど、そこでアロー関数を使う意図が疑問 アロー関数はthis値を変化させないときに使うもの
216 名前:196 mailto:sage [2016/05/28(土) 17:22:13.49 ID:PPUGo99f.net] >>211 お疲れ様 多分、彼( ID:4RY8P4hk )はあなたの意見を誤読してるだけだと思う あなたの主張「>>196 の状況でundefinedと比較する仕様(設計)がNG」 彼が解釈したあなたの主張「JSにundefinedは必要ない」
217 名前:デフォルトの名無しさん mailto:sage [2016/05/28(土) 17:31:05.73 ID:B2G67qEl.net] nullは確かにESの範囲から追い出すことは容易。 でもってアプリレベルでは共通するシンボルを使えばいいとも考えられる。 但し、1つ理由のためnullは存在価値がある。 それは偽性だということ。 では偽性のシンボルを自由に作れれば良いのかというとそれは微妙。 偽性な値というのは各型に1つくらいしかなく限られてるからこそ、 その性質を活用しやすいと言うこともある。 nullはだいたいオブジェクト型の唯一な犠牲の値としての立場を振るう。 よって、nullという存在を用意しておくのは、 シンプルや汎用的にし過ぎて利便性を犠牲にすることがない 良いバランスを狙えていると思う。
218 名前:デフォルトの名無しさん mailto:sage [2016/05/28(土) 17:37:37.39 ID:F7SYakCj.net] >>213 すまないありがとう、落ち着いたよ まさにおっしゃるとおりなので、>>196 に便乗させてもらいます よく考えたらコードに一切落としてないから、人に強く言える立場でもないなあ…
219 名前:デフォルトの名無しさん mailto:sage [2016/05/28(土) 18:51:22.49 ID:bfGuDmoK.net] >>214 がなぜ今そんなことを言い出したのか意味不明。
220 名前:デフォルトの名無しさん mailto:sage [2016/05/28(土) 19:13:15.00 ID:B2G67qEl.net] >>216 がなぜそんなことを気にするのかが意味不明。
221 名前:デフォルトの名無しさん mailto:sage [2016/05/28(土) 19:21:59.51 ID:4RY8P4hk.net] >>211 ぶっこんでないから、undefinedなんだけど、まぁいいや。 定義されていない、を定義してるっておかしいと思わないのかな。 クソ仕様は、undefinedを代入してる、って誤解してるババロアと取り替えても支障のないレベルの脳ミソだと思うけどね。
222 名前:デフォルトの名無しさん mailto:sage [2016/05/28(土) 19:59:16.01 ID:1ecGmLwK.net] ババロアバカにするとか許さないんだけど てめえのあたま埃でも入ってんじゃねえの
223 名前:デフォルトの名無しさん mailto:sage [2016/05/28(土) 20:06:57.74 ID:6huP5UCX.net] >>218 いや違うぞ。 >>211 の主張は、「undefinedを代入するな」ではなく、「undefinedを有効値(意味のあるもの)として使うな」だ。 プログラミング言語上のundefinedに対し、アプリケーション上の意味をオーバーロードしていることを問題視している。 といってもこの表現では君には伝わらないだろう。そこでさらに平易に言い換えると、 例えば、Ruby等、undefinedがない言語で組んだ時、 アプリ上で「未実施」「成功」「失敗」「情報無し」の4値状態が必要であれば、 当然 true/false/nil では足りないから何らかの対策をするだろ。 それをJavaScript(4値状態可能)であったとしてもやれと言っている。 まあ君はNaNも導入しているので5値状態まで行けるのかもしれんが、どこまでそれやるの?という話になる。
224 名前:デフォルトの名無しさん mailto:sage [2016/05/28(土) 20:14:47.49 ID:19MLvfJY.net] よかったこんな阿呆が身近にいなくて
225 名前:デフォルトの名無しさん mailto:sage [2016/05/28(土) 21:13:45.88 ID:/MxDZHtX.net] Scalaのnull/Nothing/Nil/Noneはやりすぎなのか? bleis-tift.hatenablog.com/entry/scala-null-none-nothing-nil 似たような意味でも違う概念なら違うものに割り当てるべきだよ。
226 名前:デフォルトの名無しさん mailto:sage [2016/05/28(土) 21:22:05.08 ID:ynWa4gys.net] undefinedはcのdeleteと同じと思った方がいい 変数の初期化をしたいけど、いれる物がない時はnullを入れるべき undefinedを入れるのは間違っている
227 名前:デフォルトの名無しさん mailto:sage [2016/05/28(土) 21:34:27.07 ID:ubVCvz+a.net] >>223 お願いだから書き込むのをもうやめてくれ 何いきなり「cのdelete」とか言い出しちゃってるの?
228 名前:デフォルトの名無しさん mailto:sage [2016/05/28(土) 21:42:53.12 ID:ynWa4gys.net] >>224 まだ一回しか書き込んでいない
229 名前:デフォルトの名無しさん mailto:sage [2016/05/28(土) 21:43:39.30 ID:LvedKHwv.net] >>223 俺c/c++メインだが、その例えは意味がわからん
230 名前:デフォルトの名無しさん mailto:sage [2016/05/28(土) 21:44:56.20 ID:ynWa4gys.net] 俺がいいたいのは、undefinedをフラグや何もないという意味を表す物として使うなと言う事 c言語で、フラグの為にnullを代入することはあっても、deleteで消すことはないだろ?
231 名前:デフォルトの名無しさん mailto:sage [2016/05/28(土) 21:50:45.87 ID:LvedKHwv.net] >>227 言いたいことはわかったけど、それと例えが全くマッチしてない気が…
232 名前:デフォルトの名無しさん mailto:sage [2016/05/28(土) 21:51:00.22 ID:ubVCvz+a.net] cでnullとかdeleteとかお前頭の病気か?
233 名前:デフォルトの名無しさん mailto:sage [2016/05/28(土) 21:52:08.66 ID:UVJrtMwg.net] 周回遅れ感になんかほっこりしたw
234 名前:デフォルトの名無しさん mailto:sage [2016/05/28(土) 22:55:04.19 ID:4RY8P4hk.net] >>227 何もない事を現すものに、何かを使うと、それは、「何もない事を現すもの」という実体になっちゃうでしょ。 1つ2つの欠けうるフィールドにであれば意味はあるだろうけど、 数千の項目のうち必要なものだけが帰ってくるというものに対して、 この項目は今回入ってません、って通信する意味はあるのかな。
235 名前:デフォルトの名無しさん mailto:sage [2016/05/28(土) 23:20:30.96 ID:6huP5UCX.net] >>231 とりあえずデータ取得はJSONでサーバからもらって、フォーマットは>>135 みたいなのなんだろ? つまりネットワークバンド幅をケチるためにundefinedは最初から抜けていると。 そこまではその実装で正しいと思うぞ。問題はその先だ。 あとついでに答えも言っておくと、どっちの実装でも一長一短あるんだよ。 だからそれぞれの利害得失を分かった上でその実装にしているのならそれでいいんだよ。(これを設計という) ただ、お前らどちらも「俺の方が正しい」と思っているだけで、 相手側の実装も含めての利害得失をさらっと言えないだろ。 それじゃ駄目なんだな。 なお、俺ならお前らの中間の実装にする。でも君達はこれも想像できないだろ? 君達には実装時のオプションが足りてない。 まあ、でもこういう風に議論することは多分お互いのためになるだろうから、頑張れ。
236 名前:デフォルトの名無しさん mailto:sage [2016/05/28(土) 23:31:47.42 ID:viYscYES.net] >>232 滑稽やなこいつw
237 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 00:46:26.74 ID:0W+JhSU+.net] >>232 ネットワークからもらうのは通信電文だよ。 通信電文自体イメージできてないかもしれないけど。 意味のない中間の実装とか要らないの。 相手側の実装、結果の値の入っていないものに、わざわざ結果が入ってませんと入れていく、に文句つけるとすればただ一つで、 結果が入っていないことが問題になるのは、その結果を使用しようとするときで、電文をパースしてオブジェクトに乗せた段階では、 どれに結果が入っていて欲しいか、なんて事は把握してないんだよ。 だから、足回りが結果が入ってなかったと設定する事はできないし、 「知りうるすべてのフィールドに対して、これは入っていなかった」って設定する事も無駄すぎるの。 知りうるすべてのフィールド、も保守管理していくとなると、永遠に保守を続ける必要が発生するよね。 そうなると、話はシンプルで、貰っていない≒入っていない、の構造を維持するのが一番よね。 あと、検査結果に対して、(今のところ)結果無しを何か定数(文字列でも)で持つのはよろしくない。 その後、新しい検査結果として、同じ、またはとてもよく似たものが入ってきた時に、それと鑑別するのが不可能だったり後からデータコンバートが必要だったり、エスケープしていく必要があるよね。 であれば、データを解釈した結果未来永劫に渡って帰ってくる可能性の無い、かつどこにでもある定数としてのnullを使うべきでだよね。 進捗自体は、別のデータが貰えてるので、そいつでフィルタすれば良い。
238 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 02:13:36.39 ID:JYpYJI9w.net] 質問スレとして成り立ってねえ
239 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 02:33:08.25 ID:qvzR6wN9.net] >>234 おいおい俺にレスを付けるかw やり合ってるのは俺じゃないぜ。まあ、安価自体には大して意味がないかもしれんが。 > 無駄すぎる > 貰っていない≒入っていない、の構造を維持するのが一番よね。 これらについては正解。相手側の欠点と、自分側の利点は言えた。 では相手側の利点と自分側の欠点は言えるか?つまり相手側が何故相手側の主張をするかだ。 まあこれは言えなければ相手側に言ってもらえばいいんだが。 そうすればお前らお互いに知恵を出し合ってブレスト出来て前に進めるだろ。 そうやって自分の中の実装オプションを増やしていけば、 仕様を聞いた瞬間に複数の実装が思い浮かんで選択できるようになる。 下らない文法争いからはいい加減に卒業した方がいい。あんな事をやっていても全く上達しない。
240 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 02:33:34.96 ID:qvzR6wN9.net] nullアサインの理由付けはよく分からない。 というか正直、こじつけただけのように見える。ただ、それはそれでいいんだよ。 君の実装は軽量高速動作向きだ。 だからプリミティブで対応するというポリシーなら、それはありなんだよ。 問題はそれを分かってやっているのか?ということなんだよ。 あと、話を大きく考えすぎだ。身近な成功例があるのだから、それを参考にすればいい。例えば、 000: 未実施 100: 実施中、結果待ち 200: 結果良好、終了 303: 再検査中 304: 再検査終了、問題なし 404: 結果不良 とかな。何の事かは分かるだろ?それを参考に決めうちしたとして、ほぼ全部設定できるはずだ。 どうしても駄目なら 600: その他、で直接stringを指定すれば済むが、 まあこれは分かると思うが避けられれば避けた方がいいだろう。 いずれにしても、この方式は拡張するにしても容易だ。
241 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 02:34:17.67 ID:qvzR6wN9.net] 分かっていると思うが俺はあっちの>>1 だ。 echo.2ch.net/test/read.cgi/tech/1449440793/ お前らが延々と文法の話しかできない事に辟易していた。 この手のプログラミングの本質についての話なら、当然歓迎する。 だからあっちで勝手にやってくれても構わないし、今回みたいに収拾つかない場合には助け船も出す。 とはいえ、今回は君らだけでもっと走れるはずだ。 上記のように、反対側サイドは相手側に出してもらってもいいのだから。一人で走りきる必要はない。 だからまあ、今話している連中で行けるところまで行ってみるべきだね。 場所は上記の通り、移動したければどうぞだが、個人的にはここでやって構わないと思うけどね。 役に立たないレスしかしないゴミは無視でいい。 君らがガンガン回答しているのだから、君らが牛耳るべきなんだよ。 回答者のレベルが分かるのは質問者にとっても有益だ。 質問も全部掃けている。 質問と混線してやりにくいということになったら、その時にスレ分割を考えればいいだけのことだ。 なお、ここは質問スレなのだから、質問者は議論の空気を読まずにいきなり質問を落としていい。 それで議論がぶった切られるのが嫌なら、議論は別の場所でやれってことでしかない。
242 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 04:35:50.01 ID:qTFaTssR.net] >>218 もうお前が型の基本も読解力もなく煽ってるだけの存在ってのは理解したから良いよ 結局何も答えられずに煽るだけだったね
243 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 04:45:22.18 ID:qTFaTssR.net] >>232 設計がUndefined許容になる事を秤にかけたら遥かに前者のがいいっしょ 利得がって言ってる拡張は、プロトコル上は1レスポンス1バイト〜高々数十バイト(項目数)程度の差で済む ISDN相手じゃあるまいし、中は同軸使ってた頃のシステムでも1Mぐらいはあるから、そんなの問題にならないよ 単に古いからなし崩し的に使ってるだけだと思うよ で、それをかの人はなぜか良設計だと思い込んでると まあもうどうでも良いけどね、本人最後まで理解しなかったし
244 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 04:47:37.88 ID:qTFaTssR.net] すまん、前者の方が抜けてたね 正しくは、プロトコルを拡張するのと、設計がUndefined許容になる事を秤にかけたら
245 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 05:02:06.30 ID:9ISBvfBu.net] よーわからんが思考順序がおかしい奴が結構いるみたいだな
246 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 05:07:22.44 ID:qTFaTssR.net] >>234 >知りうるすべてのフィールド、も保守管理していくとなると、永遠に保守を続ける必要が発生するよね。 全部フィールドを保守するのが無駄と言ってるけど、 ビュー側で分けてるんだから同じ事だよ? なぜか保守してないことになってるけど
247 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 05:22:17.03 ID:qTFaTssR.net] これ極端なこと言えば、そもそも専用のはずのプロトコルとサービスを、 末端でそれぞれ対応してるモジュール同士が理解できればそれで良いっていう体の オブジェクト送信と保存のための汎用ミドルウェア扱いしかしてないって事だよね そして結果と言う名の値にごちゃごちゃデータ入れてるから、 各値を読めない末端は何のメタ情報も取得できない それで保守しにくいって当たり前じゃんよ、何も考えずに末端で適当に実装してるんだから どういう体系なのかは知らんが、正直関わりたくない案件です
248 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 05:24:34.66 ID:uH1/jPAH.net] ネットワークバンド幅をケチるなら バイナリのプロトコルがいいよ。 たとえばJSONをgzip圧縮するとかNE!
249 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 05:32:26.63 ID:9ISBvfBu.net] >>234 の論だと 貰った明示的な空値と貰ってない暗黙的な空値を区別するために 両方の存在が必要ということだな
250 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 06:24:18.47 ID:0W+JhSU+.net] なんのこっちゃ。 空論だらけで笑えるわ。 undefined許容と言うか、お前らの見識狭すぎるだろ。 ざっくり白本から引用すると shirobon.net/22/ika_2_3/i_m_2_3.htm こうあるわけだ。 中見るとわかるけど、ひとつの検体でも、凄まじく別れるわけ。
251 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 08:06:23.01 ID:7TpVCW1+.net] >>247 JavaScriptスレの住人に医療知識を求める方がおかしいと思うけど、あなたは ID:4RY8P4hk ? 多態性が必要ならオブジェクト指向をすればいい 一つのオブジェクトでプロパティチェックを一つ一つやって確認していく方法は極めて無駄
252 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 09:08:45.76 ID:0W+JhSU+.net] >>248 だから、知らないなら知らないで良いんだよ。 しったかぶって、この設計で大丈夫、クラスやら、インターフェイスでガッチガチに固めれば良い、なんて発想されても、それじゃ不便なんだよねえ、って話するしか無いじゃん。 DBにも実際にスキーマフリーなkvsのような物に入ってるんだし。 何を持っているかは、もの次第。 その上で、持っていないものに関しては、定義しない、 持っているけど、中身の入っていないものは、定義して中身にnullを入れる。 そんなけ。
253 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 09:18:33.91 ID:cJcPZgXw.net] >>249 > 中身の入っていないものは、定義して中身にnullを入れる お前は雑巾で顔を拭くのか?
254 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 09:43:12.25 ID:BS/+K0m3.net] あるテキスト全体を、markdown形式の改行に変えたい(行末に空白を2つ入れたい)んですが、書き方を教えて下さい。 iPhoneのtextwellで使用したいです。
255 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 10:11:38.70 ID:pBCN0dYY.net] nullとundefinedのような二種類の形式が有るのは、他にどんな言語が有りますか?
256 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 10:29:29.44 ID:0W+JhSU+.net] >>250 喩えが下手すぎて何も伝わらん。。 >>251 (""+str).replace(/(\r|\n|\r\n)/g," $1") でいいんじゃないの? >>252 php(isset) perl(exists) なんかじゃないの?メジャーどころでは。 定義せずにいきなり代入できる言語にはたいていあると思うよ。
257 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 12:24:19.31 ID:7TpVCW1+.net] >>251 String(string).replace(/(?=\r\n|[\n\r])/g, ' '); >>253 そのコードは \r\n にマッチしない \r\n に対して2回置換処理を行う
258 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 12:26:53.13 ID:GuNB7bh5.net] 池沼が正しいか正しくないかの話(議論ですらない)をしたところでどこにも何の影響も残らないのに 貴重な時間を数日間も潰してよく続けられるものだと思う よほど時間の使い方を学習せずに育ったか、毎日が日曜日で暇なのだろうな
259 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 12:35:23.09 ID:0W+JhSU+.net] >>254 ありゃ、そうだっけ。 貪欲だと思ってた。 \r\n|\r\|\nならいいっぽいな。勉強になったわ、ありがとう。 >>255 だって先月ブッチギリでサブロクをオーバーして強制休暇で暇なんだもの。
260 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 12:36:31.11 ID:7TpVCW1+.net] >>249 何がどう不便なのか全く伝わってこない 悪いけど、情報を小出しにして情報アドバンテージを得ようとしているように見える 「持っているもの」や「持っていないもの」のような抽象的な概念で誤魔化さないで全体の処理の流れを具体的に説明したら? DBからそのまま二次元配列に落とし込む訳じゃないよね データベースから引き出しすデータのフォーマットがどのようなものなの DBから引き出したデータをJavaScript出扱いやすいように構造化する処理があるはず オブジェクト思考を推奨しつるのは後者の処理であって元のデータ構造がどうなっているかは関係ない
261 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 12:43:40.90 ID:qvzR6wN9.net] >>240-241 > プロトコルを拡張するのと、設計がUndefined許容になる事を秤にかけたら > 遥かに前者のがいいっしょ プログラミング的には、はいその通り。 > ビュー側で分けてるんだから同じ事だよ? はいその通り。どこに書くかだけでコード量自体は大して変わらない。 だったら一箇所に纏めて書いている方が保守しやすいというのも事実。 > 汎用ミドルウェア扱いしかしてない はいその通り。 というわけでまあ、プログラミング一般論として言うなら、君の実装の方がかなり「マシ」だし、「マトモ」だと思う。 言っていることも至極まともだ。プログラミングの腕前も、君の方が上だろう。 ただ、多分あの「軽量実装」が「仕様」なんだよ。
262 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 12:44:04.66 ID:qvzR6wN9.net] 君が言っているのはかなりきっちりしたシステムだ。 低速だが安定堅牢に動作する。何か問題があればたちどころに検出できる、まさにエンタープライズソリューション。 しかし、悪く言えばSEが余分な機能をくっつけまくった、顧客にとっては使わない機能の固まりだ。 あれでどうにかなっているんだから、ビュワー自体は簡易的なもので、本体はDBだ。 これまで紙でやっていた物を、電子化することによって閲覧、検索をサクッと出来るようにしたい。 でも、それだけでいいんだよ。DBが壊れていたり、ネットワークが潰れたら、最悪紙で対応できる。 ただ、そういう非常時じゃない時は、サクサク検索閲覧したい、多分それだけ。 だからビューワーはつべこべ言わず、今あるDBにアクセスして、内容をサクッと表示できればいいんだよ。 そこであれこれ検出する必要はなく、DBアクセスして見えた内容を表示できればいい。 だからビューワーのためにプロトコルを拡張するなんてあり得ない。 今あるDBのデータを再構築とかもあり得ない。 今動いているシステムの上に「きっちり居候しろ」、ということなんだと思うよ。 DBも多分デタラメ投げ込み方式だが、それもありだろう。 もちろんITソリューションとしてはやや問題があるが、 現実的には、今時の医者は患者の顔もろくに見ずパソコン操作に忙しいと聞く。 本来は彼等の負担を減らす為の「ソリューション」が負担を増やしている、本末転倒な事態になっている。 だからIT側の都合ではなく、医療実務者の都合側に100%振ったら、多分彼が言っている感じになる。 登録だけはしておくから、あとはよろしく。検索と閲覧がサクサクできればいいです、ってところだろう。 (この「登録」ってのは整合性がある状態ではなく、情報漏れがない状態で登録されているだけ。 つまり検査によってnullの意味が異なったりもするが、それはIT側で辞書引きして対応しろということ)
263 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 12:44:27.00 ID:qvzR6wN9.net] とはいえ > 設計がUndefined許容 これは大問題なのだが、NaNをbool値扱いしていることからも分かるように、彼はこれを理解していない。 さてこれについては、グローバルは禁止(キリッみたいなのは入門書でも触れている=全員一度は聞いたことがあるとして、 undefinedについては所詮入門書を書いている奴らはその程度だということなのか、 あるいはそもそもundefinedがあるようなゆるふわ言語で業務システムを構築することがこれまで無かったのか、 少なくとも(キリッとかやっている奴は見たことがないから、初心者が知る範囲にはそういう情報が無いのだろう。 てな感じか。では続きをどうぞ。
264 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 12:47:26.66 ID:7TpVCW1+.net] >>256 JavaScriptは貪欲(最長一致)だけど、貪欲でなくても結果は同じ
265 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 13:01:45.99 ID:0W+JhSU+.net] >>257 なんでそんなに突っかかるのかわからん。 アドバンテージもなにも、現にお前が無知なだけだし、だからといって臨床検査の事細かく説明したところで理解できんの? お前が、卑怯な手段で叩かれてると思ってるのは、全部お前が単純に馬鹿で無知で加えて想像力と謙虚さを持ってない故の卑屈なコンプレックスだわ。 ほぼそのまま二次元どころか多次元配列に落とすよ。 誰もが受けたことあってわかりやすいところで説明すると、眼科のあの気球見るオートレフだと、球面度数と、乱視度数と乱視軸度の3項目が一発で出て、そいつらは同一時刻の検査結果としてひとつの結果にまとまってるもんなんだが、 左右の目を必ず測るとは決まってない。 右、左自体の結果が入ってない事がありうる。 ところが、左右測ったけど右だけ測れなかった、それは、測ったって事実は残さないとならん。 だが、右目のなんとか、が測れなかったわけではなく、右目の結果自体がまとめて、無い。 そしたら、右目の結果には詳細を入れようが無いわな。測れなかったんだから、何が測れなかったと言うわけではなく、右目が測れなかったという事実しか無い。 また、再トライして測れない、というわけでも無いので、端的に失敗で終わらせるわけにも行かん。 それは、測ったけど今のところまだ結果は入っていない、って状態でしかない。 それを、オートレフ計測失敗、と個別の定義値を持って管理したらあの項目数でどうなるんよ。 ホルター心電図なんかもっとめんどくさい。24時間の時系列データひとつながりが端子数ある。それが一まとまりのデータ。
266 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 13:07:42.96 ID:0W+JhSU+.net] >>259 ダメ。DBが最悪潰れていたら、は許容され得ない。 電子カルテ三原則というものがあって、真正性、保存性、見読性ってみっつの要素が保てていないものは、診療録、照射録たりえない。 なので、どんな入れ方をされても、後からなんとでもなるようなゆるふわ仕様で、それを確実に歴を含めて保存してる。 都合が悪くなったから、この定数はこの日から別の意味です、は使えない。 組み込みの型で、あとからかぶり得ない値である必要と、無いものは無い、無かったと勝手に書かないという原則もある。 測ってもない熱が、カルテに「熱無し」って書かれても困るっしょ。
267 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 13:24:29.14 ID:xy9Dpqm6.net] かわいそうにこういうこといいあえる相手いないんだね こんな頭おかしいのがまともな職場にいられるわけないから当然か
268 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 13:30:53.09 ID:KqqGQ0oS.net] ちょっと勉強でvue-router触ってみてるんだけど (※なおクライアント側でのルーティングフレームワークは初めて) /fooと/foo/barと/foo/bar/baz みたいなルーティング定義できるけど これってよくやるもの? これすると、<img src="../hoge.jpg">とかの相対指定がおかしくなる…… (1)mod_rewriteで弄る? (2)それとも<img src="/img/hoge.jpg">みたいに相対指定やめる? (3)そもそも複数階層を同一ページみたいなことはしない? よろしくお願いします
269 名前:265 mailto:sage [2016/05/29(日) 13:32:19.27 ID:KqqGQ0oS.net] 補足です /fooも/foo/barも/foo/bar/bazも同じhtmlファイル で、/foo/bar/bazあたりでリロードしたときに <img src="../hoge.jpg">がちゃんと出なくなるという現象……
270 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 13:33:37.15 ID:0W+JhSU+.net] なんのこっちゃ…。言い合わんでも、共通認識だよ。
271 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 13:35:41.41 ID:0W+JhSU+.net] >>265 どーしても同一ページを別の階層にルーティングしたかったら、 なんか画像パス返すcomputed定義したmixinでも用意したら? でも何でも別の階層にルーティングしたいの?
272 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 13:45:07.54 ID:qvzR6wN9.net] >>263 いや、そういう話をしているわけではない。 というか、「電子カルテ」と「プログラム構造」の仕様は別物だから、別に考えてくれ。 多分な、君が担当している案件は、医者達は一旦「紙」に記録して、 それをおそらく別の人がDBに再入力しているだろ? この場合は電子システム以外でのバックアップを持っていることになる。 また、別の人が入力する時に「明らかな間違い」はそこで検出される。それを言っている。 (これが「電子カルテ」として容認されるかどうかは俺は知らない) この場合は君の実装でも悪くはないんだよ。 ただ、マスターがDBで、医者が直接入力、失われた場合に代替手段は無いというのであれば、 君の実装(というよりそのシステム全体)が駄目だろ、ってことになる。 (問題発生時の検出機構がないので危険) とはいえ、常に全員が最新鋭の完璧システムを使えるわけもないのだから、 その場合は、それは懸案事項として挙がっており、予算が付けば改修されますって事なんだとは思うが。
273 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 15:26:36.97 ID:0W+JhSU+.net] >>269 しないよ。紙に。 紙に書いたものも正としたら、診療録が2倍になるでしょ。 そしたら、2倍の物を五年間保存するはめになる。 入力の間違いは、間違いとして明確に訂正をもって再度、訂正前の情報と共に保存するんだよ。 失われた場合に代替手段が無いって、そんなもの紙カルテでも火事で燃えたり、津波で流されたら終わりだよ。 だから、寸分のコピー劣化もなく複製できて、情報量が増えても物理的な量が増えない、デジタルな情報としてバックアップを他拠点に持っていける形にするし、それを保存するんだよ。 問題発生時の検出機構はあるよ。真正性の担保がそのもの。 とはいえ、それは医師がそう書いたならそれが正しいんだけど、なんにせよすべてをジャーナルとして保存してあるから、追えるし復元は出来る。 …おまえ業務系の経験無いんだろ。
274 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 15:59:45.12 ID:pBCN0dYY.net] あるソースを見ていたら、 setTimeout(func(), 0); という記述を見たのですが、どういう効果がありますか? func(); とやるとの同じだと思うのですが何か違うのでしょうか?
275 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 16:13:27.53 ID:KqqGQ0oS.net] >>268 回答ありがとう こうしたいっていう要件があるわけじゃなく router.vuejs.org/ja/nested.html の説明で疑問に思った次第 ニュアンス的には 複数階層を同一ページなんてしない →どうしてもするならパス構築するなんらかの仕組み(vueならv-attrあたり) って感じなのかな
276 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 16:19:19.34 ID:uH1/jPAH.net] >>271 func()だとその場で実行される。 setTimeout(func(), 0)だと関数(正確にはクリックなどの イベントハンドラ)が終わってから実行される。 setTimeoutを使った場合、関数が終わった後にすぐに実行されるわけじゃなくて、 暇になってから実行される。暇っていうのはブラウザがやれなければいけない レンダリングなどの処理を行って何もしなくなってからということ。 だから ・クリックなどのイベント → func()実行 → イベントハンドラ終了 ・クリックなどのイベント → イベントハンドラ終了 → ブラウザの処理 → func() 実行 という違いがある。
277 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 17:29:54.45 ID:s6IpqRgC.net] >>270 内容の真偽はともかく、そろそろ注意した方がいいんじゃね? 業務知識をこんなところに書くとか、社会人としての人間性を疑われてもおかしくないぞ。
278 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 17:34:17.73 ID:G8EDN3vd.net] >>262 それなりのブライドはあるけれども、散々他人をこき下ろしたあなたに謙虚さを持ってないとはいわれたくないなあ あなたには謙虚さがかけらも感じられない > ところが、左右測ったけど右だけ測れなかった、それは、測ったって事実は残さないとならん。 > だが、右目のなんとか、が測れなかったわけではなく、右目の結果自体がまとめて、無い。 「右だけ測れなかった」としておきながら、「測れなかったわけではなく、右目の結果自体がまとめて、無い」は意味不明 「測れなかった原因」がさっぱり書いてないのに「再トライして測れない、というわけでも無い」の根拠はどこにあるのか 「測らなかった」ならともかく、「図れなかった」のなら「測れなかった原因」を記録に残さないと同じ失敗の繰り返しになる 右目の計測結果については「計測不能」として備考欄にでも「測れなかった原因」を記録に残しておくのが妥当 というか、いきなりこの人は何を言い出してるんだろうね null云々よりもundefinedの扱いに非難が集中していたと思うけど
279 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 17:38:12.13 ID:G8EDN3vd.net] >>271 func() の返り値となる関数オブジェクトが非同期に実行される func() の返り値が関数オブジェクトではないのなら setTimeout は期待通りに動作しない
280 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 18:17:47.96 ID:eYOjmyco.net] const o = document.getElementById('hoge'); こういう風にdomをconst
281 名前:ナ変数に入れても大丈夫ですか? o.innerHTMLを書き換えたりoの中の子要素が変化してもエラーにならないんですが・・・ constって書き換えるとエラーになるんじゃなかったんですかね? [] [ここ壊れてます]
282 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 18:27:43.87 ID:uH1/jPAH.net] >>277 書き換え不可能なCD-Rに、www.google.co.jp ってリンクが書いてあっても それをクリックするたびに、表示される内容は変わるだろ? それと一緒
283 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 19:30:52.11 ID:rcX9jYV5.net] 変数に入れるというより、値への名付け。(共有渡し) そのひも付けが固定化されるというだけで値の変化は関与しない。
284 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 20:10:17.52 ID:roFUTjZ8.net] 結局undefined使うのはアリ?ナシ? 代入とか比較するのはダメ? プロパティの有無を見るにはinやhasOwnPropertyで十分?
285 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 20:11:28.98 ID:qvzR6wN9.net] >>270 言っていることは分かるのだけど、それは常識的なことであって、ああそうですか程度でしかない。 そこではなくて、他の人が批判しているのは、(ガチの本番系で)君の実装は駄目だろ、ということなんだよ。 俺は実装を聞いて、多分本番系ではなくて傍系だと思った。だからそれもありだというスタンスだったんだ。 (出先で確認するためとか、或いは他システムで代替も出来る状態) ただ、それが本当にガチの本番系なのなら、それはマジであり得ないくらい酷い仕様だよ。 だってプリミティブに状態を割り当てるとか、せいぜい5〜6個しか無いんだから、将来的にヤバイでしょ。 (というか最初から無理だと思うが、、、) おそらくやたらある状態をstringでそのまま持っているっぽいけど、それだと検索もしづらい。 タグなりコードなりを割り付けておかないと、書き方の揺らぎだけで検索から落ちてしまう。 undefinedを残しても特段メリットもなく、デバッグがしづらくなるだけ。NaNについても同様。 だから本当に君が君の案件の状況を理解できていて、プログラミングの腕前もあるのなら、その態度はないんだよ。 最初から組めるのなら、ど素人でもしない程の酷い実装になっている。(というか逆にそれで組む方が難しい) 多分、これまで少しずつシステムを組み上げてきて、キメラ状態になっている物をそのまま使っているのだと思う。 一言で言うと、 > 単に古いからなし崩し的に使ってるだけだと思うよ (>>240 ) が多分当たってる。 冷静に考えてみればいい。今君はその案件の仕様を知っている。 そこでシステム刷新の機会があり、予算が十分付いたとして、今の実装を選ぶかい?
286 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 20:52:17.36 ID:pBCN0dYY.net] >>273 詳しい説明ありがとうございました。かなり分かってきました。 >>276 >func() の返り値となる関数オブジェクトが非同期に実行される >func() の返り値が関数オブジェクトではないのなら setTimeout は期待通りに動作しない と言う事は setTimeout(func(), 0); function func(){ ... return "string"; }; これはダメで、 function func(){ return function(){ ... return "string"; } }; これならOKと言う事ですか?
287 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 20:58:12.35 ID:uH1/jPAH.net] >>276 の説明は意味不明で混乱するだけだと思っていたがやっぱりだったかw >>276 は忘れたほうがいい。 意味不明だから。
288 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 21:22:43.29 ID:KqqGQ0oS.net] >>282 仕様的には第1引数は関数または実行したいコードの文字列 setTimeout(func, delay) だとfuncそのものをdelay後に実行 setTimeout(func(), delay) だとfuncを即実行してその戻り値をdelay後に実行 ってことだと解釈してる というわけで前者("string"をreturnしているほう)はエラーが出ると思う stringってなんやねんって
289 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 21:38:07.82 ID:bghshKck.net] >>280 それだけでは決められない。 例えばundefinedを直に扱わないようにhasOwn等を利用するスタイルにするとしたら、 他の部分でもそういう関数テスト型に揃えないとおかしい。 逆に言うとスタイルを揃えるのならどうだっていい。おかしくないように書け。
290 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 22:36:23.66 ID:9WOIUBG7.net] >>282 後者のコードで問題ないが、コールバックの返り値はどこにも返されない もし、あなたがコールバック関数の返り値をどこかで受け取りたいのなら Promise のような仕組みを利用する事になる 関数の返り値が関数というロジックは同じ形式の関数を複数生成したり、関数スコープに値を閉じ込める場合に使われるわけだが、テクニックとして知っておくとコードの表現力が上がる
291 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 01:34:16.16 ID:Kp7czbyF.net] >>280 >>285 の言っているとおりで正しい。 加えて言うと、コーディング以前の段階でそれらは既に確定している。 逆に言えば、コーディング時に迷うようならそもそもそれがおかしい。(「設計」が出来ていない) といっても多分君には通じないだろう。(その質問をすること自体がおかしい) そこで平易に言い換えると、 その質問は、「車は右と左とどちらを走るのがいいの?」と等しい。 日本では「左」を走るように設計されているのだから、「左」なんだよ。 新車(新しい関数)をいくら導入しようが、「左」として設計されている場所では「左」なんだよ。 当たり前だが「右」として設計されている場所なら「右」になる。 「左」か「右」か選べるのは最初の「設計」時だけであって、基本それ以降は踏襲するしかない。 (コーディング時には決められているとおり記述するだけ) 変更するのは大手術が必要となる。 >>239 > 型の基本 >>285 > 揃えないとおかしい レスをつまみ食いして悪いんだが、君達は何言語の出身? 前から思っているんだが、JavaScriptスレの連中は不思議なほど育っていない。 言語自体はいろんな事がお気楽に試せる面白い言語なので、普通にやっていれば普通に育つはず。 だからここまでヘボ揃いなのは確実に何かしらの理由があるはずで、 今ちょっと思っているのは、多分こいつらはダックタイピングに溺れているのではないかと。 具体的に言うと、 if (obj) がいいだ悪いだnullと比較すべきだいやundefinedも考えろとか永遠とやっているから その先(データ/制御構造)に進めていないのではないかと思っている。 どうかね?
292 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 02:34:29.25 ID:ewV/OC7O.net] どうかねってお前がその「育ってない」やつの一人だろ みりゃわかるよw
293 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 05:24:03.84 ID:NXhb520V.net] 人間的に「育ってない」奴の多いこと多いこと。
294 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 08:05:58.62 ID:5tgErZe9.net] 永遠? もしかして延々っていいたかったの? バカゆとり丸出し
295 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 08:35:34.56 ID:yN0jSRJK.net] >>287 > といっても多分君には通じないだろう。(その質問をすること自体がおかしい) > そこで平易に言い換えると、 このスレでこの説明をしてくる奴よくいるが、平易に言い換えた説明が逆にわかりにくい場合がほとんど 物言いがいちいちくどくどしくて日本語力が足りてないというべきか 自分に酔った文章を書かず、簡潔に書け
296 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 09:30:20.73 ID:ewV/OC7O.net] >>291 まずお前から実践しろよw
297 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 09:34:30.19 ID:gPEMgWAi.net] >>249 知ったかぶってとか言ってるけど、最初からそう作ればいいだけだ そういうのは設計や技術力が無いだけで手抜きとは言わん
298 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 09:36:25.96 ID:gPEMgWAi.net] >>29
299 名前:0 僕が言いたかったのは永遠 [] [ここ壊れてます]
300 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 09:41:35.60 ID:gPEMgWAi.net] >>287 正直真逆の印象 今は構造化プログラミング世代の言語でもLinuxカーネルのような洗練さが求められてる時代 このスレでお前さんだけ20年ぐらい遅れてる
301 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 09:42:51.04 ID:PwZzpqig.net] なるほど、node使いが、javascript(笑)と馬鹿にされる理由がわかったよ。今回は。 かつ、デザイナとしてもこいつらは害悪だしな。 放っておくと理由の伴わない感覚でのデザインしよる。 しかも、個人の「これは良くない」なんて感覚で。
302 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 09:45:48.62 ID:PwZzpqig.net] undefinedの扱いundefinedの扱いってやかましいけど、そのデータに入っていない、が、そのデータに本当に入れていない、で何がいかんのかなぁ。 入ってもないデータに、「入っていなかった」って書くと、それは「入っていない事を確認した」データになってしまうんだけどね。 >>274 法律で決まってる話だったり、厚労省の保険適用のものの話しかしてないから、この範囲は業務知識ですらないよ。
303 名前:デフォルトの名無しさん [2016/05/30(月) 09:47:31.51 ID:gPEMgWAi.net] ついに無差別マシンガン打ち始めたな 盲目的に従ってるだけの無能が何勘違いしてふんぞり返ってるんだ?
304 名前:デフォルトの名無しさん [2016/05/30(月) 10:06:14.30 ID:d3v2hj/G.net] 永遠に繰り返すならあるが永遠とやるなんて日本語ねえし
305 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 10:21:11.46 ID:SiNcM0fD.net] なんかよくわからんけど、普通にforeachで処理できるようなデータ構造/Viewの実装仕様にしとけよと思った。
306 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 12:35:00.36 ID:REX8Pswd.net] var obj = {'視力': 1.5, '聴力': '100db'}; なら Object.keys var array = [{name: '視力', value: 1.5}, {name: '聴力', value: '100db'}]; なら Array.prototype 系関数を使う 未調査などのステータスが必要ならプロパティを付け加えるだけ undefined を使う必要はないな
307 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 12:36:07.87 ID:XUi+aAng.net] 初心者なのですがオブジェクトxの何らかのプロパティを取り出す前にxがnullやundefinedでないことを確認する必要がありますよね?皆さんはどうしていますか?
308 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 12:36:56.29 ID:ysRBPLLz.net] 自演してまで続けたいのかこのゴミ
309 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 16:54:37.32 ID:PwZzpqig.net] >>301 jsonっぽくすると 患者A:[{ 試験日:aaaaa , シーケンス:bbbbb , 検査値:[ {視力:{ 左右:右, 近視度数:xxx, 乱視軸:{値:yyy,単位:degree}, 乱視度数:zzz }} ,{カーブ:{ ... }}, {視力:{ 左右:左 近視度数:zzz }} } ... みたいなのかな。 検査日.. 氏名 左 近視度数 乱視軸 乱視度数 カーブ 右 ... 氏名 .... みたいなグリッドに出すのに、無い場所の値を用意するだけで無駄。 定義されていない→無い、で充分。
310 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 17:20:40.14 ID:SiNcM0fD.net] >>304 別に検査してなければ項目なしでもいいんだけど、描画するコードでループの一番内側がセルの数に なるようなループして、いちいちundefinedかどうか判定するようなロジックにするの?
311 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 17:43:51.15 ID:/sRU0ua4.net] 乱視軸って何だ?
312 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 18:22:59.82 ID:ht1IyunN.net] 凄くタイムリーな質問だと思うんですが var a = []; a.last = function () { let len = this.length; return 0 < len ? this[len - 1] : null; } みたいな、範囲チェック外はnull返すようなことは不要ですか? これは仕様としてnullが必要だからそうしてるのではなくて、 まぁせっかくチェックしたんだから返すとしたらnullだろうな、 くらいの判断でそうしてます。 それとも a.last = function () {return this[this.length - 1];} で十分ですか? 「javascriptは単にundefinedを返してくれるので範囲チェックしなくていい」 っていうふうにポジティブな解釈していいですか?
313 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 18:31:32.90 ID:hoOpO478.net] >>307 nullを返すより0な
314 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 18:34:38.43 ID:SiNcM0fD.net] >>307 a[undefined]のときa.lastがundefinedになるということと、自分がなにをしたくてなにを求めているのかを 勘案すれば、どう実装すべきか決定できるのでは
315 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 18:48:17.09 ID:ht1IyunN.net] >>308 ありがとうございます。でもそれだと、 配列に整数を入れて使うとき悶絶しちゃうと思うんですがw いや…それは結局nullのときでも一緒ですよね。 undefinedのときでも一緒ではありますね。 それらを代入できるという以上…。 >>309 ありがとうございます。 「a[undefined]のとき」っという表現が不勉強で分からなかったのですが、 いずれにせよ var value = a.last() のあとは単に if (value) するくらいのことしか考えてませんのでundefinedで十分そうです。
316 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 18:53:42.83 ID:PwZzpqig.net] >>305 ループの内側の数とか言うより、描画用の項目定義は項目定義である。 医者が並べて見る時に、項目数が変わったり並び順が変わったら困るから。 それは医者次第だけど、内部的には xpathみたいなもので指定する。 >>306 ごめん、軸度だな。 >>307 lastの用途次第だけど、popの仕様と合わせるならundefinedだと思う。 俺はpopしてundefinedじゃなければもう一回pushしておく。 そのためには、undefinedをpushしなくても良い実装にしておかなきゃならんけど。
317 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 18:59:41.70 ID:ht1IyunN.net] >>311 ありがとうございます。popに合わせておこうと思います。 あとはせっかくなんで使う側はせめて if (a.last()) するよりは if (a.last() === void 0) としてみようかと。
318 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 19:12:01.08 ID:/sRU0ua4.net] >>311 軸度とは
319 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 19:22:00.69 ID:PwZzpqig.net] >>313 なんて言うか、正直眼科は不勉強だけど、乱視がどの方向にあるかだよ。 メガネ作るとき、放射状の線見せられて、どの方向が濃いか聞かれるじゃん。 あれを答えてもらった方向に90°足した、何度の方向に対して焦点がずれてるかが乱視軸度だよ。 普通は度で持つけど、たまにラジアンで持ってたりする。
320 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 19:42:49.89 ID:4aFguERh.net] 300すぎてまだやってんのかよ 頭おかC
321 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 20:20:03.03 ID:/sRU0ua4.net] >>314 そんな事聞かれるのかよ 知らなかった
322 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 21:22:29.72 ID:PwZzpqig.net] >>315 なんか話題提供してよ。
323 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 21:24:24.86 ID:PwZzpqig.net] >>316 こういったふうに、ただの視力検査でも、人によってやらないものもあるんだよ。
324 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 23:02:14.89 ID:Kp7czbyF.net] >>43 リクエスト無いみたいだし、もう無しで良いってことにさせてもらうぜ。 俺も大量にこのスレに書き込んだ。多分そちらにも多少は有効情報があっただろうし。 このスレは俺よりも20年先を行くスーパーハカーだらけらしいし、とりあえず引退してみよう。 >>312 多態しないのなら if (a.length>0) にしとけ >>311 > 俺はpopしてundefinedじゃなければもう一回pushしておく。 おい! ってかまじめな話、もうちょっと普通のやり方を覚えた方がいいぞ。 undefinedについて気になるのなら、他の知っている奴が回答するか、少し待つんだね。 それで出てこないようなら、俺のスレに聞きに来れば教えてやるよ。 とはいえ君は無駄
325 名前:ノ煽りすぎだ。だから出てこないかもしれない。 しかし、君は自力で辿り着けるレベルだから、ヒントを与えておこう。 君はNaNの仕様を知っている。で、それを便利に使っているわけだが、>>106 あれはそういう仕様が必要だったからなんだよ。 だからNaNの正しい使い方を調べて、そこから推測すれば、 undefined許容/非許容のそれぞれの得失を理解できる。 その上でundefined許容を選択するのなら、それは「設計」なんだよ。やればいい。 ところで、俺および俺が立てたスレがどうにも気に入らない奴がこのスレに複数いるだろ? 君達がやるべき事は、>>297 に答えることだ。 そうしないと、俺のスレが流れ出しちゃうぜ? あとついでだが、やはり君の案件は「正規」ではないよ。運用上「本番系」になっているだけだ。 読み出せないDBなんてあり得ないだろ?最初から何らかのビュワーが付いてる。 JavaScriptで受けるのなら、APIはJSON一択だろ? 今何かしら妙なAPIなのは、元々のビュワー用のAPIだからだよ。 そして何らかの理由で「正規」ビュワーが破棄され、今のビュワーになったんだよ。多分。 [] [ここ壊れてます]
326 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 23:24:12.29 ID:ILfmqIwk.net] 俺の予想ではarraybuffer
327 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 23:41:05.43 ID:Kp7czbyF.net] >>320 APIのことか? ビュワーはexeまたはelf等バイナリで、古い機材では動くが、新端末では動かないから、JS化したと。 あり得るシナリオだね。 だとすればParserでラップして終わりだし、鯖は当然そのまま運用するわな。 今のところの証言と状況証拠とは一致するw
328 名前:デフォルトの名無しさん mailto:sage [2016/05/31(火) 00:15:08.11 ID:KJUuPgzh.net] >>307 混乱を招く回答が追加されているので伝えるが、undefined を返す設計が妥当だと思う 例えば、Map.prototype.get は存在しないキーを検索したら undefined を返す あなたが>>310 で気が付いたように配列の値に undefined が代入されていれば、値があるのかないのか区別付かない では、なぜ Map.prototype.get が undefined を返す設計になっているのかといえば、未定義のキーを参照したら未定義値を返す暗黙の了解があるからだろう オブジェクトでも存在しないプロパティを参照すれば undefined を返す (少なくとも俺の知る限りでは)プロパティが存在して undefined が代入されている JavaScript の仕様は存在しない よって、あなたが配列のプロパティに undefined を代入しなければ十分に区別できるだろう それから蛇足ではあるが、>>307 のコードでは a === [,,,] な場合に意図せず、undefined を返す(>>307 の設計通りなら null を返すのが正しい) Object.prototype.hasOwnProperty を使うことで期待通りの結果を得ることができるだろう Array.prototype.last = function last () { var i = this.length; while (i && !this.hasOwnProperty(--i)); return this[i]; }; console.log([1,2,,,,].last()); // 2 console.log([,,,,].last()); // undefined console.log([].last()); // undefine
329 名前:デフォルトの名無しさん mailto:sage [2016/05/31(火) 01:17:08.26 ID:l5PlpRpu.net] >>319 めんどくさいやつだなぁ。 煽りすぎた、って、煽られて沸騰した奴が言ったら二重どころか三重くらいにみっともないぞ。 煽って面白くなるだけ。 ビュワー用のAPIとか、だからさあ。。 電文だ、って言ってんじゃん。 電文、理解できない?知らないの? >>320 のほぼそのまま、今もう一回そこ書くならもうちょい綺麗にパーズするけど、要は[通信開始][要素種][要素長]....[チェックサム][通信終了]みたいなもの。 そのまま、要素種が始まったら要素長取り出して、その中も要素種と要素長で出来てるから、って形。 正規もなんもないよ。妙なAPIって、これハード屋的には何一つ妙じゃないよ。 案件ってか、自社製品だけど、運用 上の本番系、ってどんな寝言だよ。 運用してるなら、それは即ち本番系だろ。 おまえ学生なの?コードとして落とした事無いとか、無意味な理想論語ったりとか、結構痛いよ。
330 名前:デフォルトの名無しさん mailto:sage [2016/05/31(火) 01:56:46.28 ID:C610iy1k.net] >>323 あんさん2chフィルタ通して見ても尊大やし態度悪すぎやで 学生と比べて技術力高いわけでもなし、人を煽れる立場や無いやろ?
331 名前:デフォルトの名無しさん mailto:sage [2016/05/31(火) 02:06:15.74 ID:C610iy1k.net] ちな電文はバイナリ転送形式の事やないで JSONだろうと1メッセージ単位なら電文や
332 名前:デフォルトの名無しさん mailto:sage [2016/05/31(火) 03:10:34.97 ID:24hp8pmx.net] >>323 お前、、、いちいち指摘するのが面倒なくらい色々読み間違ってるぞ、、、、 まあ俺の書き方もまずい点はあったが、、、 一応、俺は聞きに来れば答えるというスタンスだったんだ。 (出てこないってのは「他の知っている奴」のことであって、俺のことではないつもりだった。 ただこの点は俺の書き方が悪かった) とはいえ、面倒だし、今回は他の連中も正解を知っていることが確定しているから、 天秤にかければ誰か答えるかと思ってな。 しかし、まあもう無理だと思うが。俺も面倒になってきたし。 学生の作品と企業製品では、検証レベルが全然違う。 undefined非許容というのは、まともに検証すれば自明なんだよ。だからみんな知っている。 逆にそれを知らないってのは、お前は検証してないって事なんだよ。 しかも医療系だろ?煽り抜きでヤバイと思うぞ。 > 電文 知らんよ。てかこれって一般用語か?ググッた限りはただの「パソコン」と同レベルの集合名詞だと思うが。 俺はWeb系ではないので、Web系のローカル用語は知らんよ。 XHRでArrayBufferなら最初からそう言ってくれたほうが良かった。 とはいえそこは本題ではないが。 >>324 おう、ありがとうよ。 俺は見ての通りこのスタンスだし、これくらいの粘着や煽りはいつも通りだ。 特段怒っているわけではないのだが、そう見えたのなら済まない。 というか、Web系の連中のこの自信はどこから来るのか、本当にかなり疑問だ。 お前ら、プログラミング一般からすると、かなり「ひよこ」だと思うぞ。 大口を叩くのは、10k行のコードを普通に取り扱えるようになってからにした方がいい。 そんな奴はこの界隈にはさらにいるのだから。
333 名前:デフォルトの名無しさん mailto:sage [2016/05/31(火) 09:05:24.34 ID:l5PlpRpu.net] >>324 わざとこの態度だからなぁ。 逆に、沸点低いやつがよくわかっていいじゃん。 沸点低いやつが何言っても、反射的に言ってるだけなんだし。 >>325 おう。JSONとして流れてきたらそりゃJSONという電文だな。 バイナリパスカル文字列式可変長電文か。 >>326 undefined許容というか、ずっと読み間違えてない? データとしてundefinedを入れるわけではなくて、 解釈した結果そのフィールドには値が入っていない→それをオブジェクトに起こしても、そのプロパティ自体が設定されていない、だよ? 可能な限りの、「データは入ってませんでした」を設定して回るほうが現実的で無いよ。 俺、あとウェブ系じゃないからね。 基本はDB屋だよ。 DBに入ってもない無い値を、入っていた事にされるのは許せんだけ。
334 名前:デフォルトの名無しさん mailto:sage [2016/05/31(火) 09:19:18.21 ID:KJUuPgzh.net] > DBに入ってもない無い値を、入っていた事にされるのは許せんだけ。 誰もそんなことは言ってなかったと思うが、何が許せないんだろうな このスレだと hasOwnProperty, forEach, keys で判定する処理は見かけたが
335 名前:デフォルトの名無しさん mailto:sage [2016/05/31(火) 09:20:08.42 ID:EjSYfMvt.net] 自演開始〜
336 名前:デフォルトの名無しさん mailto:sage [2016/05/31(火) 09:40:27.01 ID:l5PlpRpu.net] >>328 そりゃいいよ。それはそれで。 最初に初期値で初期化しとけば良いとか、そういうアホに対しての反論だから。
337 名前:デフォルトの名無しさん mailto:sage [2016/05/31(火) 10:1
] [ここ壊れてます]
338 名前:6:07.42 ID:LdI3VN67.net mailto: >>327 > DBに入ってもない無い値を、入っていた事にされるのは許せんだけ。 outer joinやcross joinについてはどう思うのかね [] [ここ壊れてます]
339 名前:デフォルトの名無しさん mailto:sage [2016/05/31(火) 10:17:56.42 ID:d9LvTqQR.net] https://tpc.googlesyndication.com/simgad/16591006766826217033 これの答えは何なの?
340 名前:デフォルトの名無しさん mailto:sage [2016/05/31(火) 10:21:15.79 ID:LdI3VN67.net] >>311 > ループの内側の数とか言うより、描画用の項目定義は項目定義である。 > 医者が並べて見る時に、項目数が変わったり並び順が変わったら困るから。 > それは医者次第だけど、内部的には > xpathみたいなもので指定する。 なかなか話が通じないが、要は表示項目数×人数のループをしてundefinedかどうかを 判定するということだろ?表示項目数が30で20人分表示なら600回の処理をする。 そうじゃなくて、存在するデータ側を元に表示するか、あるいは全く別のアプローチをすれば いちいちundefinedかどうかなんて判定は不要ではとうこと。
341 名前:デフォルトの名無しさん mailto:sage [2016/05/31(火) 10:37:22.17 ID:wxR5ZVVT.net] >>331 無ければ困る事もわかるけど、凄く嫌い。 行列のDBは集合に対しての操作だと意識してないと最悪の結果に陥ると思うわ。 >>333 ふむ、では、その冴えたアプローチで綺麗にしたデータを、行と列、ないしはグラフにレンダリングする術を 提示してみてくれよ。 まさか、最初にレンダリング域全体のメモリを確保して、データ一つ一つに対して、RCや軸をデータから推測してその場所へデータを載せれば良い、最終的に残るのはundefinedだった項目だけ、とか考えてんのかな。
342 名前:デフォルトの名無しさん mailto:sage [2016/05/31(火) 11:08:00.91 ID:LdI3VN67.net] >>334 > ふむ、では、その冴えたアプローチで綺麗にしたデータを、行と列、ないしはグラフにレンダリングする術を > 提示してみてくれよ。 > まさか、最初にレンダリング域全体のメモリを確保して、データ一つ一つに対して、RCや軸をデータから推測してその場所へデータを載せれば良い、最終的に残るのはundefinedだった項目だけ、とか考えてんのかな。 グラフという単語がでてきたので話が根本的にかみ合ってない気もするが、基本的にはそういうことだよ。 テーブルで表示することを考えれば、項目が決まれば行あるいは列が決まり、人が決まれば列あるいは 行が決まる。それをメモリ上のデータ構造として作成して一気にテーブル化するとか、DOMを直接書き 換えるとか、あるいは、テンプレートを使うか、データバインディングしてModelが自動的にViewに反映 されるようにするとか、やりようはいくらでもある。 グラフのメタファーで言えば、定義域:0〜100, 値域:0〜100のグラフがあるとき、(1, 3), (2, 5)という二つの データしか無ければ二回プロットすれば終了ということだよ。
343 名前:デフォルトの名無しさん mailto:sage [2016/05/31(火) 12:25:58.83 ID:wxR5ZVVT.net] >>335 やりようはいくらでもある、な。 アホか。 データバインディングするにしても、いや、バインディングするならそれこそ、データは歯抜けでいいだろう。 データバインディングするってことは、ビュー側から、どの要素をとバインドすべきだし。 一気にメモリに載せてられるかww
344 名前:デフォルトの名無しさん mailto:sage [2016/05/31(火) 12:33:55.20 ID:wxR5ZVVT.net] しかし、何故undefined(というか、値が無いもの)とnullを別物と理解するのがこれほど彼にとって難しいのかわからんな。
345 名前:デフォルトの名無しさん mailto:sage [2016/05/31(火) 13:25:23.48 ID:LdI3VN67.net] >>336-337 なにか勘違いされてる気もするけど、歯抜けのデータが悪いとは一言も言ってないよ。 >>304 みたいなデータが戻るケースはありがちだし。 で、俺が疑問に思ったのは、undefinedかどうかを判定する必要があるということは、 こんなコード書くの?ってこと。 display_items.each (function(display_item) { data.users.each (function(user) { // block A: ここがループの一番内側 output('<td>' + user.hasOwnProperty(display_item) ? user.item_value : '' + '</td>'); }); }); これだと、いつでもdisplay_items.count * data.users.count回のhasOwnProperty()が呼び出される。 display_items.count * data.users.count = 1,000のとき、表示するデータ数が1個だったときでも 1,000回の実行が必要。 そうじゃなくて、逆からのアプローチはできないのという疑問。 逆というのは、「存在するデータを元にする」やりかた。
346 名前:デフォルトの名無しさん mailto:sage [2016/05/31(火) 13:26:54.24 ID:LdI3VN67.net] 君は君の問題を100%把握してるだろけど、俺(たち)は断片的な君の書き込み内容から どのような問題なのかを想像することしかできないわけお。 >>336 > 一気にメモリに載せてられるかww とか言われても、困惑するのみ。
347 名前:デフォルトの名無しさん mailto:sage [2016/05/31(火) 13:49:49.08 ID:wxR5ZVVT.net] >>339 できないなら、自分には理解できない事だと納得して無意味な提案やめて寝ればいいのにり
348 名前:デフォルトの名無しさん mailto:sage [2016/05/31(火) 13:54:56.19 ID:LdI3VN67.net] >>340 まぁ、ざっと読むと君の環境はこのスレ的には異端みたいだし、フロントエンドエンジニアでもないようだから どうでもいいっちゃいいんだけどね。
349 名前:デフォルトの名無しさん mailto:sage [2016/05/31(火) 14:14:48.43 ID:WCbBJW5L.net] >>338 想像でしかないんだけど表示項目1に対してデータ項目がn(n>0)って可能性とか たとえば視力検査の欄に表示する際 {"視力左":1.0,"視力右":1.0}の両方があって初めて表示するとか {"視力左":1.0,"視力右":1.0}→「おっけー」って表示 {"視力左":1.0,"視力右":null}→「右目は測りきれない4.0とか超いいかも」って表示 { "視力右":1.0}→「左目測ってない」って表示 {"視力左":1.0 }→「右目測ってない」って表示 { }→「視力検査してないっぽい」って表示
350 名前:デフォルトの名無しさん mailto:sage [2016/05/31(火) 14:29:29.32 ID:mikttA8+.net] その例はちょっと良くないが、言いたいことはあっている。 undefinedはシステムからの処理上の値が無いですよという知らせ。 nullは誰かが明示的にそれを表明したもの。
351 名前:デフォルトの名無しさん mailto:sage [2016/05/31(火) 15:57:03.36 ID:wxR5ZVVT.net] >>342 あー、それ一番的を射てる。
352 名前:デフォルトの名無しさん mailto:sage [2016/05/31(火) 18:51:35.17 ID:znL0FvMW.net] jsやっている人はc、c++などのnullしかない言語ではundefinedが無いのはどうするのですか?困りますよね?
353 名前:デフォルトの名無しさん mailto:sage [2016/05/31(火) 19:40:15.04 ID:e360ttrJ.net] undefinedを値として使ってるバカなんて知るかよ 大多数の人間はnull返せハゲって思ってるっての
354 名前:デフォルトの名無しさん mailto:sage [2016/05/31(火) 20:00:07.25 ID:JD+3IcFi.net] >>322 ありがとうございます。 ちょっと本題から逸れるんですが、[,,,] の中身が新鮮ですね。 lengthは3で、キーは何も無いと言う。 一見、{0:undefined, 1:undefined, 2:undefined, length:3} こういう中身になってていいじゃないかと思うんですがそうはしないんですね。 いや、まぁどうでもいいんですが。 あ、次にpush('foo')しときにlength見て{3:'foo', length:4}になるから嬉しいのか。 lengthだけ持ってても十分なのか。なるほどなるほど。
355 名前:デフォルトの名無しさん mailto:sage [2016/05/31(火) 20:32:52.55 ID:wxR5ZVVT.net] >>345 nullしかない言語は、dbNullを扱えるようになってるような。
356 名前:デフォルトの名無しさん mailto:sage [2016/05/31(火) 22:33:17.75 ID:C610iy1k.net] >>344 末端に判定ロジック大量に積んでるのか ウンコですね
357 名前:デフォルトの名無しさん mailto:sage [2016/05/31(火) 22:51:11.93 ID:ZB9BdGtV.net] >>345 そういった言語では例えば存在しないプロパティにアクセスすると例外となるので必要性が薄い。 JSがスクリプト言語だからこそ映える設計。 >>347 ぶっちゃけ歯抜けはよほどの場面じゃないと推奨しない。 言語エンジンの最適化試行ぶち壊しで気持ち悪い。 あと、Array.prototype.lastなんて夢でも死んでも使わないように。 その機能の標準化が一番危うくてデリケートで予測が付かない段階にきてる。 今最もprototype下に自作してはならない機能の1つ。
358 名前:デフォルトの名無しさん mailto:sage [2016/05/31(火) 23:04:26.90 ID:VEM8svzW.net] >>347 > lengthは3で、キーは何も無いと言う。 [,,,] は Array.prototype 系と for 文で走査プロパティが異なるので注意が必要だ Array.prototype.forEach はプロパティが存在する値のみを走査する為、[,,] では何も走査しない [,,,].forEach(function (value) { console.log(value); }); // コンソールに何も出力しない [undefined,undefined,undefined].forEach(function (value) { console.log(value); }); // undefined を3回出力する 少し、話がそれるが、プロパティの存在する値にだけ処理を行うというのは重要なことだ >>342 の例でいえば、次のように書けるだろう https://jsfiddle.net/b1x6nohm/ 対象プロパティが String 型なので falsy な値として '' を使用している null を使うのなら対象が Object 型である必要がある
359 名前:デフォルトの名無しさん mailto:sage [2016/05/31(火) 23:13:56.84 ID:C610iy1k.net] これもう議論にならんやろ 本人以外は皆仕様知っててこの態度なんやし
360 名前:デフォルトの名無しさん mailto:sage [2016/05/31(火) 23:17:06.49 ID:VEM8svzW.net] >>347 >>307 でprototype拡張されていなかったのでいわなくても伝わるだろうと思って伏せていたが、Array.prototype.last はあくまでも便宜上のサンプルねので念のため Array.prototype 拡張は将来的に同名プロパティが定義されたときに互換性が崩れるのでお勧めしない 静的関数や独自オブジェクトによる拡張で代用するのが妥当だろう 何らかの理由でどうしても定義したいのなら一昔前のfor-inによる汚染問題を解消するために Object.defineProperty を使うべきだ Object.defineProperty(Array.prototype, 'last', {writable: true, enumerable: false, configurable: true, function last () {}});
361 名前:デフォルトの名無しさん mailto:sage [2016/05/31(火) 23:19:21.13 ID:VEM8svzW.net] >>353 は SyntaxError だったので訂正 Object.defineProperty(Array.prototype, 'last', {writable: true, enumerable: false, configurable: true, value: function last () {}});
362 名前:デフォルトの名無しさん mailto:sage [2016/05/31(火) 23:20:01.54 ID:wxR5ZVVT.net] まぁ、何度、経験ないだろ、なんて煽ってもそこだけ返事がないところみると、 「本人以外は全員わかってる」んだろうけど、笑えるわ。
363 名前:デフォルトの名無しさん mailto:sage [2016/05/31(火) 23:38:40.59 ID:24hp8pmx.net] >>327 お前はいつか事故るぞ。投薬履歴だって表示が間違っていれば死人が出るんだ。 Web系の「リロードすれば万事おk」のノリでは駄目なんだ。お前はそれですらないが。 ただ、検証を手抜きすれば単価はいくらでも落とせるわけで、このように、 一通りの知識すらない馬鹿を雇って一通りの検証すらせずに出荷する悪徳業者をどうするかは 今後の課題になるのだろうね。 契約上、ソフトウェアのバグについては責任追及できないようになっているのだろうけど、 これまでソフトウェア産業が培ってきた常識すら知らない奴がコーディングし、 まともな検証すらせずに出荷するというのは、業務上過失致死/偽計業務妨害に問われるべきだ。 AS IS WARRANTY を完全に悪用している。 とはいえ、普通に考えればこういう悪徳業者はいつか出てくるわけで、不思議ではない展開だ。 死人が出てこの構造が判明してからでないと、行政は動かない。 願わくば、お前がその最初の犠牲者となり、自業自得を以て業界の浄化に貢献してくれ。 というわけで君には「人殺し君」というあだ名をあげよう。 多分君は既に人を殺しているか、今後人を殺す。 無知も罪なのだよ、業界によっては。 それはさておき、ここに来て気づいたが、 AS IS WARRANTY って性善説ベースだったんだな。 こりゃ性悪説ベースの何かを導入しないと駄目だ。 とはいえ資格なんて糞の役にも立たない業界だし、なかなか難しい。 調べた限りではPL法も適用外だし、悪徳業者はやりたい放題だ。 (ただここまで来るとマ板の話題でスレチだが) 話を聞いている限りこいつは鯖屋で、ソフトウェアの知識は一切無い。 フリーソフト等を組み合わせれば悪徳零細学生レベルでも見目麗しいシステム()を構築でき、 素人を騙せる時代になった。そしてそれがすべて自分の能力で出来たものだと勘違いしている。 (組み合わせる能力はあるが、使われているソフトを記述する能力は無いことに気付いていない) とはいえ、現実問題として、これを顧客に見抜けというのは不可能だろう。 なんだかなあ。
364 名前:NAS6 ◆n3AmnVhjwc [2016/05/31(火) 23:43:38.27 ID:ZnwkUC0d.net] ttp://nas6.main.jp/htm000.htm x3domのサンプル集とライブラリ 完璧な2/3D行列計算ライブラリに仕上がりました x3domは簡単でいいよ ポリゴンテスト&ライブラリヘルプ.htmでも見てください 完璧に計算されています^^
365 名前:デフォルトの名無しさん mailto:sage [2016/05/31(火) 23:44:24.50 ID:+fB1tt6W.net] > 静的関数や独自オブジェクトによる拡張で代用するのが妥当だろう そうやって作られたのがUnderscore(lodash)というライブラリで わざわざ作らずとも、 _.last([1,2,3]) で取得できるんだよ。
366 名前:デフォルトの名無しさん mailto:sage [2016/05/31(火) 23:50:20.60 ID:C610iy1k.net] >>355 RASISすら守っとらんみたいやし RDB使ってる現場やけど、そんな場当たり的な実装の経験ないで 普通はリクエスト間違ったら全部エラーやしfail safe前提や あんさんが無知すぎるんやで?
367 名前:デフォルトの名無しさん mailto:sage [2016/06/01(水) 00:02:09.20 ID:J/AVgXyA.net] DB屋ならjoinできないようなデータ構造の時点で問題あると気づくやろ なんでそんな無理して知ったかぶるんやろ
368 名前:デフォルトの名無しさん mailto:sage [2016/06/01(水) 00:03:48.85 ID:XVpspPb0.net] >>357 行列のライブラリはどれが有名か知らんけど、 このglMatrix.jsはスター多くていいんじゃないかな? https://spphire9.wordpress.com/2011/04/05/javascript%E3%81%AE%E3%83%99%E3%82%AF%E3%83%88%E3%83%AB%E3%80%81%E8%A1%8C%E5%88%97%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA/ > 前に調べたときは全然見つからなかったけど、WebGL関係で調べていたら結構見つかったのでメモ。 > > glMatrix.js > https://github.com/toji/gl-matrix > glmatrix.net/ > webgl-mjs code.google.com/p/webgl-mjs/ > Sylvester sylvester.jcoglan.com/ > CanvasMatrix.js khronosのWebGLのチュートリアルで使っているがどこでダウンロードできるのか分からなかった > glMatrix.jsがシンプルなのでオススメ。 > > 2014/01/19追記 > glMatrixの公式サイトができてた。
369 名前:デフォルトの名無しさん mailto:sage [2016/06/01(水) 00:04:59.00 ID:XVpspPb0.net] >>360 > DB屋ならjoinできないようなデータ構造の時点で問題あると気づくやろ どういうこと? nullがあるとjoin出来ないとかそういう話? なわけないよな。left joinとかあるわけだし。
370 名前:デフォルトの名無しさん mailto:sage [2016/06/01(水) 00:11:15.87 ID:XVpspPb0.net] あとすべての項目をjoinに使うわけでもないし。
371 名前:NAS6 ◆n3AmnVhjwc [2016/06/01(水) 00:18:19.22 ID:CPNT1MjH.net] >>361 ライブラリを作る前に探したけど 回転行列←→回転ベクトル、回転行列←→四元数 この相互変換を扱ってるのは見当たらなかったよ
372 名前:デフォルトの名無しさん mailto:sage [2016/06/01(水) 00:19:48.60 ID:XVpspPb0.net] >>364 興味ない。
373 名前:デフォルトの名無しさん mailto:sage [2016/06/01(水) 00:20:56.87 ID:XVpspPb0.net] >>364 もう少し丁寧に言うね。 githubで公開してもいないようなものを使う気にはならない。
374 名前:デフォルトの名無しさん mailto:sage [2016/06/01(水) 00:21:24.97 ID:iqAUu6wp.net] >>360 俺>>342 なんだけど挙げたデータ構造は あくまで俺がてきとーに想像しただけなので それで誤解与えてしまってたらごめん
375 名前:デフォルトの名無しさん mailto:sage [2016/06/01(水) 00:42:46.14 ID:JLTaiLCk.net] >>359-360 多分そちらも気づいていると思うけど、人殺し君には「信頼性を上げる」という感覚がないんだ。 だから俺たちが何を問題視しているのか、全く
376 名前:通じていない。 ただ、当たり前のように信頼性を上げようと努力してきた側からすると、 業界全体が悪徳業者に対して全く無防備だったってのが結構ショックなんだよね、、、 というかよくこれまでこれで回ってたなと。 [] [ここ壊れてます]
377 名前:デフォルトの名無しさん mailto:sage [2016/06/01(水) 00:43:15.64 ID:r3hfxk1X.net] >>356 必死すぎて笑えるw おつかれさん、底辺学生さん。
378 名前:デフォルトの名無しさん mailto:sage [2016/06/01(水) 00:46:19.01 ID:XVpspPb0.net] >>368 そちらってお前誰だよw
379 名前:デフォルトの名無しさん mailto:sage [2016/06/01(水) 01:00:31.81 ID:+8Has+9Z.net] >>357 あなたは x3dom.js と比較して何がどう「完璧」なのかを説明する必要があると思うのだが ドキュメントも簡易説明文のみで x3dom.org と比べれば雲泥の差があるように思う www.x3dom.org/
380 名前:デフォルトの名無しさん mailto:sage [2016/06/01(水) 01:02:19.24 ID:J/AVgXyA.net] >>362-363 関連があるのに関連を付けずに 見つからない場合もright joinと同じ事するんやろ? 破綻しとるやん
381 名前:デフォルトの名無しさん mailto:sage [2016/06/01(水) 01:05:25.70 ID:XVpspPb0.net] >>372 関連つければいいだけだよね? まさか片方にnullが入っていると関連がつけられないとでも? left joinでもright joinでも、別に使うことに問題無いし 問題ないから標準機能なのだし、どこが破綻? DB素人なら、すいません、素人だから 勘違いしてましたって謝れば許してあげるよ?w
382 名前:デフォルトの名無しさん mailto:sage [2016/06/01(水) 01:10:30.88 ID:+8Has+9Z.net] 言い争っている人、所詮は机上の空論なのでコードを書いて語り合ってくれ 各自にとっては空論ではないのであろうが、持論が相手に正しく伝わっているとは思えん
383 名前:デフォルトの名無しさん mailto:sage [2016/06/01(水) 01:12:17.78 ID:XVpspPb0.net] >>374 今はRDBMSの超基本レベルことを分かってないやつが相手みたいだから そこまでやる必要ないかなw
384 名前:デフォルトの名無しさん mailto:sage [2016/06/01(水) 01:22:41.36 ID:JLTaiLCk.net] >>374 いや十分通じてるよ。表面的には。 ただ、根本的な部分で人殺し君は分かってないから、通じない。 とはいえこれは、ここでなんとかなる話ではないよ。これではどうやっても平行線だ。
385 名前:デフォルトの名無しさん mailto:sage [2016/06/01(水) 01:25:01.12 ID:+8Has+9Z.net] >>375 お互いに相手が低レベルと思っているように読めるんだがな 相互理解が目的なら言葉を選べ 馬鹿にしたいなら他の人の邪魔になるから口を慎め
386 名前:デフォルトの名無しさん mailto:sage [2016/06/01(水) 01:31:01.82 ID:XVpspPb0.net] >>377 質問に答えられない方はどちらか? それを見ればわかるでしょ。 まだ、レス帰ってきてないよw
387 名前:デフォルトの名無しさん mailto:sage [2016/06/01(水) 02:20:52.04 ID:r3hfxk1X.net] なんか敵を見間違えてるんじゃねえの? 余裕無い奴は大変だな。 そりゃ、せっかくundefinedなのを無意味にnullで初期化とかドヤ顔で言っちゃうわけだ。
388 名前:デフォルトの名無しさん mailto:sage [2016/06/01(水) 09:21:35.68 ID:jwFJ9KH2.net] こんなにもめるんならundefinedは廃止してnullのみにすべき。
389 名前:デフォルトの名無しさん mailto:sage [2016/06/01(水) 09:26:09.02 ID:P2FwW4b5.net] 社会から未定義の連中が未定義値に物申すとか1万年早い
390 名前:デフォルトの名無しさん mailto:sage [2016/06/01(水) 09:33:08.65 ID:wzx/dknC.net] 嫌なら定義するなよ
391 名前:デフォルトの名無しさん mailto:sage [2016/06/01(水) 13:31:22.60 ID:KEu/R4xX.net] まぁ、null統一、すべてのプロパティは埋めて、ビューから相当するデータ座標を取らずに、データからビューを定義しよう、そのためには、 ビューの状態全体に対して、必要か不必要かは置いておいてすべてのビューが表示しうる形での裏画面を持っておこう、 って大富豪の主張がありうる、って話だよね。 面白い事に。 XMLDBとか、KVSとか、多次元配列DBに向いてない人なんだろうけど。 そもそもJOIN出来ないからなんたら、なんていう人は、そもそもそういうDBに向いてないけど。
392 名前:デフォルトの名無しさん mailto:sage [2016/06/02(木) 01:24:38.27 ID:g2tgMhPe.net] >>377 犬の糞と猫の糞。
393 名前:デフォルトの名無しさん mailto:sage [2016/06/02(木) 02:42:13.57 ID:XqRYmg3l.net] >>373 関連つければいいだけだよね その通り つけてないけど
394 名前:デフォルトの名無しさん mailto:sage [2016/06/02(木) 02:43:59.04 ID:XqRYmg3l.net] 自分の説明してる仕様で実現できてる事が何かも把握してないみたいやね こりゃ周りの奴らは大変やで
395 名前:デフォルトの名無しさん mailto:sage [2016/06/02(木) 08:36:48.79 ID:8VCgKElP.net] 前提知識で合意のとれてない議論に意味があるのか 端から見たらどちらも相手を見下す事が主論になってる どちらの方が正しいとか、もうどうでもいいから
396 名前:デフォルトの名無しさん mailto:sage [2016/06/02(木) 08:39:24.52 ID:I85Xb9LU.net] バカに議論はできない 壁に向かって話してろゴミ
397 名前:デフォルトの名無しさん mailto:sage [2016/06/02(木) 08:51:25.41 ID:0vkxmVo8.net] 脳味噌がnullってことで解決
398 名前:デフォルトの名無しさん mailto:sage [2016/06/02(木) 09:15:26.93 ID:oJukbexp.net] nullほど。納得
399 名前:デフォルトの名無しさん mailto:sage [2016/06/02(木) 13:24:04.29 ID:BtmdPReZ.net] 結局nullは要るとして、undefinedが無ければ代わりにissetみたいなのが要る。 内部を露出して活用を許すのと、メタ的に内部に干渉するの、どちらが良いかという話。
400 名前:デフォルトの名無しさん mailto:sage [2016/06/02(木) 13:58:00.69 ID:tGqw3Zei.net] >>388 上手いこと云うな オレのコピペにしますん
401 名前:デフォルトの名無しさん mailto:sage [2016/06/02(木) 15:58:54.65 ID:gjH3g/Dc.net] >>391 その通り。特に動的言語なら。 mallocした結果をどの型として使うか論にも近いけど。
402 名前:デフォルトの名無しさん mailto:sage [2016/06/02(木) 16:21:31.47 ID:0vkxmVo8.net] nullなことばっかり言ってるんじゃないよ
403 名前:デフォルトの名無しさん mailto:sage [2016/06/02(木) 16:42:37.48 ID:T7FoO03Y.net] (´∀`) ぬるぽ
404 名前:デフォルトの名無しさん mailto:sage [2016/06/02(木) 16:44:57.76 ID:tGqw3Zei.net] ガッ
405 名前:デフォルトの名無しさん mailto:sage [2016/06/02(木) 17:03:14.89 ID:E1oCL6WJ.net] .r'"''、 _,,,.. -ー''''''ー、 ./゙'=@._ ―ー-, /\ /\ ┏┓┏┓ .,iー-、 .゙l l,,_ / _ . l ! .!./ ゝ-、 /:::::::ヽ____/::::::::ヽ、 ┃┃┃┃ .!, .゙'" ヽ. ヽ,,,,.. -''ン゛ .} .| .゛ ,,、 〔゙|.ο ! 丿 ::.__ .::::::::::::: __ ::::ヽ_ ┃┃┃┃ l , r .iヽ l . ,/ .,./ l / _| ‘'ヽ / / /。 ヽ_ヽv /: /。ヽ ::::::ヽ ┃┃┃┃ ./ .l/ / .! .! .... ‐゛ ‘''-, .! .i| ´ |┏━/ / ̄ ̄√___丶  ̄ ̄\ ::::|━━┓┃┃┃┃ .l゙ , .i′亅 ! / .x;;'''''''、 . ! ! │ゝ―i .厂 ┃ | .:::::::::: / / tーーー|ヽ ..::::: ::| ┃┃┃┃┃ │ i゙.l ,ト--″ l .!_ .,,、 ゙'、 | .,! ! .|., ―┘ / ┗━| .:::::. ..: | |ヽ ::|━━┛┃┃┃┃ .! .∨ .,..、 l゙ .| .l. l ∨ ! .| .] i‐ 、 .ヽ、 | ::: | |⊂ニヽ| | :::::| ┗┛┗┛ . l. : ,i┐゙‐'゛ ゙l l. `″ / .! .! ゝ./ . l //| : | | |:::T::::| ! .::| ┏┓┏┓ `''''" ヽ,,,,,,..-'―′ \,,,,,,,,,.. '" ゝ ノゝ、,,,,,./ -.../// \: ト--^^^^^┤ 丿 \ . ┗┛┗┛
406 名前:デフォルトの名無しさん mailto:sage [2016/06/02(木) 17:41:24.84 ID:tGqw3Zei.net] ∧ < >_∧ = ()二)V;・∀・) \ヽ ノ ) ノ(○´ノ ガッ (_ノ(__)
407 名前:デフォルトの名無しさん mailto:sage [2016/06/02(木) 19:45:18.42 ID:foj8oVvi.net] __ 、]l./⌒ヽ、 `ヽ、 ,r'7'"´Z__ `ヽ `ヽ、-v‐'`ヾミ| |/三ミヽ `iーr=< ─フ < /´ r'´ ` ` \ `| ノ ∠_ `ヽ、__// / |/| ヽ __\ \ヽ |く ___彡'′ ``ー// |_i,|-‐| l ゙、ヽ `ヽ-、|! | `ヽ=='´ l/| | '| |!|,==| ヽヽr'⌒ヽ|ヽ| | | ┏┓ ┏━━━┓ | || `Y ,r‐、 ヽl,_)ヽ ゙、_ | | |. ┏━┓ ┏┛┗┓┗━━┓┃ ...ヽリ゙! | l::ー':| |:::::::} |. | / l|`! |i |. ┃ ┃ ┗┓┏┛ ┃┃┏━━━━━━━.j | l|.! l::::::ノ , ヽ-' '´ i/| !|/ | |リ ━━━━┓┃ ┃ ┃┃ ┏━┛┃┃ ┌┐ | l| { //` iー‐‐ 'i 〃/ j|| ||. |ノ ┃┃ ┃ ┃┃ ┃┏┓┃┗━━━.んvヘvヘゝ | l| ヽ ヽ / _,.ィ ノ/川l/.━━━━━┛┗━┛ ┃┃ ┏┛┃┃┗┓ i .i ゙i\ゝ`` ‐゙='=''"´|二レ'l/″ ┏━┓ ┗┛ ┗━┛┗━┛ ノ ! --─‐''''"メ」_,、-‐''´ ̄ヽ、 ┗━┛ r|__ ト、,-<"´´ /ト、 | { r'´ `l l /|| ヽ ゙、 } } | _|___,,、-─‐'´ | ゙、 `‐r'.,_,.ノヽ、__ノ/ | | |、__r'`゙′ | |/ i | | | |
408 名前:デフォルトの名無しさん mailto:sage [2016/06/02(木) 23:25:10.25 ID:3RkkmY6H.net] >>385 > 関連つければいいだけだよね > その通り > つけてないけど ってことは、ORM使ってないのか? ORM使ってプログラム言語でモデルを定義していってその関連もモデルで定義する。 その結果をマイグレーション機能を使ってデータベースに反映、 ついでにER図も生成しちゃうっていうのが今時の開発でしょう? モデルに関連を定義しておかなければ、あるモデルから関連している 別のモデルのデータを取得するのができないわけで開発効率下がりまくりでしょ? (厳密に言えば手動でコードを書けば取得できるがそれだとORMを使う意味がない)
409 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 00:32:44.38 ID:1GfBsi1m.net] 出尽くし感があるので纏めておく。 人殺し君は悪徳業者に勤めており、検証不十分のソフトウェアを出荷している。 そのソフトウェアでは競合系のバグ等は完全に放置されている。 平たく言えば、間違った内容/値が表示される事が偶に発生する。 とはいえ、再現確率は低く(1日〜1週間に1回程度)、再び確認すればほぼ常に正しい値が表示されるため、 「見間違いだった」として処理されているはず。 結果、このバグによって発生した医療ミスは本当は医者のミスではないのだが、 「医者の過労または不注意による見間違い」として処理される。 また医療ミス自体も隠蔽される方向のため、二重に隠蔽されることになる。 医療系は単価が高いため、悪徳業者にとっては甘い汁状態だ。 医療関係者は金を吸い取られた上に、ぬれぎぬを着せられている可能性がある。 もし仮に医療系の人がこれを見ていて、「表示がおかしかった」事に気づいたことがあった、 また「最近『見間違い』事故が多すぎる」というときは、この類の悪徳業者の製品でないか確かめた方がいい。 悪徳業者の技術レベルは信じられないほど低い。普通のIT関係者なら絶句する。 JavaScriptの場合ソースは確認可能な事が多いので、非公式にでも知り合いのIT実務者を頼り、 ソースを確認してもらえば、すぐに判明すると思う。 このスレのこれまでの議論およびここに記載した情報で十分だと思うが、 もしもっと詳細を確認したい医療関係者がいれば、 以下スレで問い合わせてくれれば対応するかも。 > echo.2ch.net/test/read.cgi/tech/1449440793/ 技術的には、 undefinedの何が問題なのか自分で判断できないような馬鹿はundefinedを活用(キリッするなって事だ。 では続きをどうぞ。
410 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 00:47:09.21 ID:ZgLr+wQe.net] JSONってundefinedがないけれど、 じゃあ存在しない値にアクセスした時各言語ではどんな挙動をするのだろう?
411 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 01:00:55.33 ID:4VbjelCP.net] >>402 例外が発生する
412 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 01:57:17.93 ID:qC3of5q8.net] そうじゃない言語もあるんじゃないの?
413 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 08:37:03.10 ID:yTlzgE6f.net] >>404 例えば?
414 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 08:38:53.12 ID:oIsEebnB.net] おまえの頭ん中
415 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 08:41:45.97 ID:WTDDDw9O.net] >>401 検証不十分とか人殺しだとか言ってくれるよなぁ。 試験中ですら、稀にも発生したらハンコリレーで大変な目に遭うよ。 医療ミスがどうとか言ってるけど、隠蔽されるわけないじゃん。 見間違いだった、もあり得ないよ。 お前ら一般側には隠蔽されているように見えるんだろうけど、製造業のラインからの不良品混入程度に、委員会とかで裁かれるよ。 表示内容の確認に対して不足があった、って話になるだろうね。 これ判例もある。医者の判断と機械の値が一致しない場合は、医師の判断が優先され、かつ医師がその間違った値を信じ込んだ場合は「治療行為が行えるのは医師のみ」という原則に則ると、医師が医師である理由を満たせていない、ってやつ。 >>402 undefinedはたくさん存在してるじゃん。 書いてないだけで。 例外が発生するってのは良くない動きだと思うけどな。コスト高い。
416 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 08:55:59.89 ID:e85j2qyA.net] 所詮は命令、人それぞれ 自己満足で解決
417 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 13:00:26.72 ID:D6MzcBW9.net] >>400 このバカはその手動で書くと言うのを良しとしてるんやで そしてあと付けで関連つければいいだけだと抜かしよる 付けとらんから問題なんやろ
418 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 13:11:35.19 ID:WTDDDw9O.net] どういう意味だろ、手動で書くとは。 俺はそれを言った覚えは無いが、言わなくてもデータ:DB:ビュー全体に対するマッパー自体の実装の話だけどね。
419 名前:デフォルトの名無しさん [2016/06/03(金) 13:21:31.04 ID:D6MzcBW9.net] >>410 ORMで関連付けてるならundefined云々での分岐なんて出るわけないやろ その場しのぎで適当言いすぎやろ頭おかしいんちゃうか
420 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 13:35:21.14 ID:WTDDDw9O.net] >>411 当たり前じゃん。多次元DB触った事無いのかな? クラスベースな考え方してるからそういう思考なんじゃない? undefinedで分岐、って考えるから頭追いつかないんじゃないかな。 値は、「定義されていないか、オブジェクトか、値か、値として
421 名前:\すことのできるオブジェクトか、null」。シンプルじゃん。 javascript屋ならもっと理解早いと思うんだけどな。 HTMLのスクレイピングそっくりなんだけど。 [] [ここ壊れてます]
422 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 16:01:53.05 ID:LK0McYVX.net] >>412 >HTMLのスクレイピング すまん。 言葉の意味が分からない。 つまり、どういうこと?
423 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 16:54:41.91 ID:iJVPPkrY.net] >>412 > 値は、「定義されていないか、オブジェクトか、値か、値として表すことのできるオブジェクトか、null」。シンプルじゃん。 これをシンプルだと思ってる奴は何脳なんですかね
424 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 17:23:55.54 ID:WTDDDw9O.net] >>414 誤解のしようが無いでしょ。 その項目が無かった、は「その項目が無かったクラス」のインスタンスが格納されている、とか、 「その項目はあるけどまだ結果は出ていない」クラスのインスタンスが格納されている、とか、 定義しだすときりがないと思うけど。 npmに登録されているモジュール全体の空フォルダがnpm initしたら作成されたらinode一瞬でなくなるじゃん。 かつ、空ディレクトリ作って準備してても、そのモジュールが更新されたら準備とは異なるし。 さらに、requireは別にpackage.jsonに依存せず使えるよね。 存在チェック、中身のパーズ、その他を経て、成功か失敗か、別のフォルダを見るのか決まるっしょ。 undefinedは、そのディレクトリのない状態。 nullは、module.exportがnullの状態。
425 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 17:31:46.02 ID:iJVPPkrY.net] >>415 で、お前は何脳なの?
426 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 17:39:25.42 ID:D6MzcBW9.net] >>412 その多次元DBはテーブル同士の関連必須やで? あんさんの言ってる仕様はキーそのものが取得できない仕様やから ORMなんて出しとるけど全く関係ない話やろ
427 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 17:41:36.14 ID:hMBisG69.net] ∩ _rヘ / ヽ∩ . /_ノυ___ιヽ_ \ / / /⌒ ⌒\ ヽ \ ( く /( ●) (●)\ > ) お前らの頭は \ `/::::::⌒(__人__)⌒:::::\' / ヽ| |r┬-| |/ \ `ー'´ / (( (ヽ三/) (ヽ三/) )) . (((i ) ___ ( i))) / / /_ノ ヽ_\ ヽ \ ( く /( ●) (●)\ > ) くるくる \ `/::::::⌒(__人__)⌒:::::\' / ヽ|  ̄ |/ \ / ∩∩∩ . ∩∩∩ .∩_:||_:|_:| |_:||_:|_:∩ │ ___ つ ⊂ ___ │ ヽ ノ ___ ヽ ノ / / /_ノ ヽ、_\ ヽ \ ( く o゚((●)) ((●))゚o > ) パーだおwwwwwwwwwwwwwwwwwww \ `/::::::⌒(__人__)⌒:::::\' / ヽ| |r┬-| |/ \ | | | / | | | `ー'´
428 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 17:43:47.98 ID:D6MzcBW9.net] 説明が酷すぎるやろ なんやこれわざとやってんのか?
429 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 17:48:26.82 ID:cxSjYB6R.net] なんでバカに構うの? おまえもバカなの? バカ同士気が合うんだな
430 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 18:46:51.17 ID:qTHUaoua.net] 類は友を呼ぶ
431 名前:デフォルトの名無しさん [2016/06/03(金) 19:43:22.52 ID:1XJ7uNxl.net] 初心者です。 jsonを受信しようと組んでみましたが、うまくいきません。 ブラウザはFireFoxで、FireFoxのスクラッチパッドで試しています。 var req = new XMLHttpRequest(); var requestUrl = 'ここにアドレス'; req.onreadystatechange = function() { if(this.readyState == 4 && this.status == 200) { console.log(this.responseText); } } req.open( 'GET', requestUrl); req.send( null ); アドレスの部分をブラウザに直打ちするとブラウザに返ってきたjsonが表示されます。 その状態で上記のスクリプトを動かすとコンソールにjsonが表示されます。 ただ、ブラウザが別のページだとコンソールには何も表示されません。 どのようにすればよろしいでしょうか? ログには「クロスオリジン要求をブロックしました・・・」のようなメッセージが出ます。
432 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 20:10:29.09 ID:p9oJqMem.net] また自演かよ 頭いかれてんなこいつ
433 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 20:20:21.84 ID:WTDDDw9O.net] >>417 テーブル同士の結合www まあ、おまえが多次元DB使ったとこ無いことは理解したよw
434 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 20:31:02.84 ID:n0THg94n.net] >>422 頼むから!!! 頼むから!!!もう!!!二度と!!! onreadystatechangeなんて使わないでくれ!!!!! readyState?!目が腐る!!!!!
435 名前:デフォルトの名無しさん [2016/06/03(金) 21:01:10.72 ID:1XJ7uNxl.net] >>425 どうすればいいか教えてください マジで困っています
436 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 21:08:50.41 ID:0G5q73nh.net] >>422 www.html5rocks.com/en/tutorials/cors/?redirect_from_locale=ja
437 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 21:43:27.43 ID:6tJjdY0+.net] nullと比較する時は緩い==の方を使うのは今の時代でも変わりありませんか?
438 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 21:48:09.86 ID:TYtzKZdV.net] 自演乙
439 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 22:37:38.94 ID:D6MzcBW9.net] >>424 何や君結合と関連の違いも分からんで突っ込んどったんか? どおりで説明が怪しいわけやな 必死に無知を隠してたんやから
440 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 00:08:42.59 ID:3lsMjWzh.net] >>422 クロスドメインなら、JSONP かな? 「jsonp クロスドメイン jquery」で検索!
441 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 08:28:02.51 ID:vbA2Z8Vh.net] >>428 昔から null 判定にはほとんど ToBoolean だけ使っていますが、困ったことはありません。 Polyfill コードを書くときには === を使うこともあります。
442 名前:憲法に守られる在日スパイ・創価・ヤクザ mailto:sage [2016/06/04(土) 08:57:11.18 ID:SVOilD6U.net] 皇室の危機に気づいていますか? 日本は、2,000年以上続く皇室のおかげで、世界最古の国として、 ギネス認定されているそうです。 自民党は憲法の改正で、日本の国家元首=天皇陛下と条文に明記することで、 天皇制廃止をもくろむ帰化人スパイ勢力(政党、憲法学者、弁護士・言論人等)から、 皇室を守ろうとしています。 ※イギリス、オランダ、ノルウェー、デンマーク、スペインなどは国王を国家元首と 憲法上に定めている。(日本同様、政治の実権は有さない。) ※日本で支配的な「護憲派」憲法学者の多くは反天皇。憲法から天皇の条項ごと削除したい 人たちなので、本来は改憲派である。(「象徴天皇制度と日本の来歴」坂本多加雄著より) 公明党「天皇は日本の国家元首ではない」 hayabusa3.2ch.net/test/read.cgi/news/1363226509/ 自民党・西田昌司 「橋下さん(おおさか維新)の憲法改正は、国柄を破壊することが目的」(自民とは真逆) https://www.youtube.com/watch?v=sRkdQ2Rlwxs 日本共産党 「目標としては天皇制をなくす立場に立つ」「天皇制のない民主
443 名前:共和制をめざす」 http://www.jcp.or.jp/jcp/22th-7chuso/key-word/b_1.html#Anchor-0507 反天皇、反皇室で共謀する民主党(現民進党)と田原総一朗 http://blog.liv edoor.jp/fjae/archives/51968115.html 田原総一朗「天皇は、働かないで国民の税金で食ってる。」 https://youtu.be/6Kd1LwY9e0I?t=280 (4:40〜) ※ただし、自民単独(カルト公明党抜き)で2/3議席以上与えない限り、 野党と公明党に骨抜きにされる。 ↓ 自民・船田氏…「野党・公明党のみなさんと協議し、衆参両院の3分の2をこえる人が 賛成してくれなければ発議はできない。だからこれから大いなる妥協が始まる。 自民の憲法草案は、 ズタズタになると思って結構だ」 p http://hope.2ch.net/test/read.cgi/seijinewsplus/1425226082/ [] [ここ壊れてます]
444 名前:デフォルトの名無しさん [2016/06/04(土) 13:17:48.82 ID:BFaRmD8M.net] ジャバスクリプトをあまり意識せずに、ウェブアプリ開発できるソフトってありますか?
445 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 13:26:46.16 ID:qPi1xPU6.net] ねえよそんな店
446 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 15:45:22.85 ID:3F7VjM1T.net] >>434 TypeSprict
447 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 15:58:08.55 ID:ZPhk/eMO.net] TypeScriptは JavaScript+α という言語だからw
448 名前:デフォルトの名無しさん [2016/06/04(土) 17:42:38.85 ID:vhhVz63c.net] https://www.youtube.com/watch?v=KApAJhkkqkA ↑こーいうふうに タグとか補完して欲しいんですけど、 何のエディタ使えばいいんですか? Windowsでお願いします。
449 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 18:03:53.99 ID:BiFmHB/P.net] >>438 https://www.sublimetext.com/ その動画のやつならWindowsでも使えるよ。
450 名前:デフォルトの名無しさん [2016/06/04(土) 18:13:24.70 ID:vhhVz63c.net] ありがとうございます!
451 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 18:36:53.03 ID:TumyIwY9.net] >>434 「あまり」とは具体的に何ですか? JavaScriptを使いながらJavaScriptを意識しないのは相当矛盾していると思いますが、何が目的ですか?
452 名前:デフォルトの名無しさん [2016/06/04(土) 19:03:08.12 ID:vhhVz63c.net] >>439 動画のしょっぱなのhtmlとか入力すると 必要なタグをボンっと出すやつどうやるんですか??
453 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 19:46:47.25 ID:925XNPqI.net] >>430 SQLが集合論だとも理解してない人には難しかったかな。 小さなオツムで、undefinedは不要、nullが含まれている行と、行がないのは等価値だと一生騒いで、 そのままエンジニアにならずにホームレスにでもなってくれw
454 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 19:53:11.80 ID:Eqdj22Ns.net] 理解してない論をやる人はいい加減にしてくれ 理解させようと説明して歩み寄るならともかく、お互いに避難しあってるだけでは前進しないぞ その気がないなら沈黙で返すのが周囲に迷惑をかけない唯一の方法
455 名前:デフォルトの名無しさん [2016/06/04(土) 20:54:05.74 ID:71w07kjf.net] >>441 作成時にコーティングを必要とせず、ジャバスクリプトの動的効果は享受したいということです
456 名前:デフォルトの名無しさん [2016/06/04(土) 21:05:17.49 ID:AIJuo/HE.net] Haskell使えば大抵の問題は片付きます。
457 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 21:05:18.12 ID:Eqdj22Ns.net] >>445 コーディングしないならそれはプログラミングではないですね。 既存のライブラリや使いまわせるコピペコードを検索して探してみてはいかがですか。 いずれにしても、このスレで聞くには趣旨がずれていると思いますが。
458 名前:デフォルトの名無しさん [2016/06/04(土) 21:16:28.25 ID:AIJuo/HE.net] 質問に答えていくだけでソフトウェアが完成するとしても、それはプログラミングです。
459 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 21:27:23.54 ID:Eqdj22Ns.net] 言い方が悪かったでしょうかね。 JavaScriptを勉強せずにJavaScriptを書きたいとする要望が子のスレの趣旨に反していると言いたかったのですが。
460 名前:デフォルトの名無しさん [2016/06/04(土) 21:29:46.92 ID:AIJuo/HE.net] このスレ自体、板違いなのですが。
461 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 22:02:26.83 ID:Y4cfNkA+.net] 薀蓄垂れてるやつのわんだほーなコード見たいんだが
462 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 22:27:00.97 ID:o5H+FwEM.net] >>450 そう思うなら、質問しなければいいんじゃないですかね?
463 名前:デフォルトの名無しさん [2016/06/04(土) 23:09:22.49 ID:AIJuo/HE.net] 質問したことはありませんが。
464 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 23:34:41.13 ID:M/5wRGJi.net] 暇つぶしに板違いのスレで遊んでいるのか
465 名前:デフォルトの名無しさん mailto:sage [2016/06/05(日) 00:03:18.80 ID:mO7gP4jx.net] >>443 この状況でそんな基本事項を嬉々として出すって、 おっさん本当に学生以下とちゃうか? 少しはまともなレスしろや そもそも集合(テーブル)間の射の話なんやから、 そのレスじゃ何にも反論できとらんどころか、 結局おっさんの仕様じゃ繋がっとらん状況じゃ自分で自分の首絞めとるやろ そして自分から多次元DB持ち出してきた癖に何棚上げしとるんや 知ったかと煽りしかできない珍獣は、某関数型ヴォルデモートでお腹いっぱいやで
466 名前:デフォルトの名無しさん mailto:sage [2016/06/05(日) 00:18:27.24 ID:hY1lA33B.net] さっさとお手本コード晒せよ こんだけ偉そうなこと言ってんだからどこに出しても恥ずかしくないレベルのもんかけるんだろ? あくしろよ
467 名前:デフォルトの名無しさん mailto:sage [2016/06/05(日) 01:09:47.31 ID:Ewjxu1z+.net] >>448 は 「JavaScriptのプログラムを作りたいけどJavaScriptを勉強する気がないので、ウィザード形式で質問に答えるだけでJavaScriptコードを生成するジェネレータを下さい」 って事かな さすがにクレクレ君すぎる
468 名前:デフォルトの名無しさん mailto:sage [2016/06/05(日) 01:27:22.46 ID:bEHxSIM9.net] >>434 Haxe (ヘックス) ECMAScript 4に似ている。 Adobe Flashおよび独自のNekoVMで、実行可能なバイトコードにコンパイルされるほか、 JavaScript、ActionScript、C++、C#、Java、PHP、Pythonへのソースコードの変換が可能である
469 名前:デフォルトの名無しさん mailto:sage [2016/06/05(日) 01:33:27.00 ID:mO7gP4jx.net] >>456 誰に言ってるんや? ワイに言ってるならDBの定義の話やからコードもクソもないやろ
470 名前:デフォルトの名無しさん mailto:sage [2016/06/05(日) 02:34:08.07 ID:b0qHmmcL.net] 自意識過剰だね ド頭は大丈夫ですか?
471 名前:デフォルトの名無しさん [2016/06/06(月) 02:21:20.33 ID:6giGfHQ3.net] NHKのネットラジオを、どうにかしてクライアント側のJSだけで録音したいと思ってる (基本的にサーバ側の処理は無しにしたい) ストリーミングの録音の実装は初めてなんだが、どうやったら良いのだろうか? 何らかのライブラリを使えば楽そうだとは思うが…
472 名前:デフォルトの名無しさん mailto:sage [2016/06/06(月) 05:01:20.04 ID:QbKl1YZH.net] どうやったらっていうか? なぜそんなことが可能だと思った?
473 名前:デフォルトの名無しさん mailto:sage [2016/06/06(月) 12:22:15.75 ID:23OtUYll.net] >>461 ローカルに node.js を立てるとか。
474 名前:デフォルトの名無しさん mailto:sage [2016/06/06(月) 21:05:53.55 ID:RzJ8yYQp.net] パケットキャプチャ
475 名前:デフォルトの名無しさん mailto:sage [2016/06/07(火) 05:14:58.76 ID:Gl1NOXsx.net] >>460 こいつすぐに煽るからわかりやすいな
476 名前:デフォルトの名無しさん mailto:sage [2016/06/07(火) 19:02:47.33 ID:PnKxWLGB.net] >>431 ありがとうございました。 できるようになりました。
477 名前:デフォルトの名無しさん mailto:sage [2016/06/07(火) 19:26:52.79 ID:87JRkB9l.net] >>465 俺ならもう少し嫌な感じで煽るよ。
478 名前:デフォルトの名無しさん mailto:sage [2016/06/08(水) 08:52:28.55 ID:zEmhDMcI.net] じゃあ俺は馴れ馴れしいコンセプトで煽ろうかな。
479 名前:デフォルトの名無しさん [2016/06/08(水) 21:39:35.82 ID:BBcfGQEZ.net] 煽りとかいらねえから ちゃんと質問に答えてやれよ
480 名前:デフォルトの名無しさん mailto:sage [2016/06/08(水) 22:37:16.03 ID:ISsCi+NM.net] >>350 > あと、Array.prototype.lastなんて夢でも死んでも使わないように。 ありがとうございます。今のところ、そこに直接追加するような予定はありません。 >>353 > あくまでも便宜上のサンプルねので念のため 察しの悪い俺ですが、この点についてはそのように理解しております。ご安心下さい。 で、ですね。今までは個別の変数について var a = []; a.f = function () {}; なんぞしていて、 それで十分だったんですが、インスタンスの数が増えそうだぞって場面がチラホラ出てきました。 そこで、配列を継承したようなクラス?(←便宜上)が必要になりました。 A = function () {}; A.prototype = []; A.prototype.first = function () {return this[0];}; var a = new A(); var b = []; a.push(123); b.push(456); alert(a.first()); // これが呼び出せる //alert(b.first()); // こっちは使えないので汚染されてなくて安心。 今のところ↑と言う風に、A.prototype = []; として単に何となく設定しているのですが、 こういうことをしたいときのイディオムみたいなものはjavascript界隈にありますか?
481 名前:デフォルトの名無しさん mailto:sage [2016/06/09(木) 08:26:24.28 ID:EGkuN86i.net] Web Workerの学習をしたいのですが、此方で大丈夫でしょうか?
482 名前:デフォルトの名無しさん mailto:sage [2016/06/09(木) 08:46:22.16 ID:e3vAFbmO.net] var F = function(age){ this.age = age; } var f1 = new F(1); var f2 = new F(2); var ary = []; ary.push(f1); ary.push(f2); console.log(f1, f2, ary); prototypeなど使わずに、普通にこれでいい
483 名前:デフォルトの名無しさん mailto:sage [2016/06/09(木) 09:04:45.80 ID:5KODI7Ed.net] F ←この手の一文字もん大っ嫌いだは
484 名前:デフォルトの名無しさん mailto:sage [2016/06/09(木) 09:05:55.20 ID:dIu2vu4F.net] 独り言はキミのスマホのメモ帳にどうぞ
485 名前:デフォルトの名無しさん mailto:sage [2016/06/09(木) 09:25:17.23 ID:rjZdspVd.net] スマホ持ってない私みたいのはどうすればいいんですか?
486 名前:デフォルトの名無しさん mailto:sage [2016/06/09(木) 09:31:01.62 ID:E+QhxTx8.net] var F = function(age){ this.age = age; } こう書くぐらいなら function F(age){ this.age = age; } こう書けばいいのに。
487 名前:デフォルトの名無しさん mailto:sage [2016/06/09(木) 09:35:16.54 ID:E+QhxTx8.net] >>475 中古で安いの探せば3000円ぐらいで買えるのでは?
488 名前:デフォルトの名無しさん mailto:sage [2016/06/09(木) 13:53:50.48 ID:QTm6YzLa.net] >>472 その方法でどうやってfirst()を呼び出すのかな
489 名前:デフォルトの名無しさん mailto:sage [2016/06/09(木) 14:40:04.41 ID:G4u6WZVB.net] >>476 後者は旧石器時代の方式だな
490 名前:デフォルトの名無しさん mailto:sage [2016/06/09(木) 16:54:36.03 ID:+YsNEGfA.net] 内容が等価じゃないのになんで新旧の話になるの
491 名前:デフォルトの名無しさん mailto:sage [2016/06/09(木) 17:06:35.65 ID:bsniAtVU.net] だよな。 ぜんぜんちゃうやんw
492 名前:デフォルトの名無しさん mailto:sage [2016/06/09(木) 17:26:41.69 ID:G4u6WZVB.net] >>480 旧石器時代には後者の方法が多用されていたが、それでは問題があるので 近代にはめったに使われなくなったということだが
493 名前:デフォルトの名無しさん mailto:sage [2016/06/09(木) 19:11:58.00 ID:U5aI2wbo.net] >>482 どちらもES3の頃から存在して使い分けされていたわけだが 関数式を使わない時代っていつだ? せめて、関数名ぐらいつけろよ、といいたい
494 名前:デフォルトの名無しさん mailto:sage [2016/06/09(木) 19:22:11.65 ID:Homi8Ck7.net] hoisting を嫌う
495 名前:人はこう書くが、新旧いうもんでもない const fn = function fn () {}; [] [ここ壊れてます]
496 名前:デフォルトの名無しさん mailto:sage [2016/06/09(木) 19:32:23.75 ID:KvDILg9T.net] >>470 そのコードが制限付きで動作している事を理解していればそれでいい - iterable でない(Symbol.iteratorで対応可能) - a[100] = 1; で length を書き換えない(new Proxy で対応可能) - a.length = 5; が働かない(Object.definePropertyで対応可能) - 一部の汎用的ではない関数(concat等)が期待通りに動作しない(独自にコードを書けば対応可能)
497 名前:デフォルトの名無しさん mailto:sage [2016/06/09(木) 23:45:53.30 ID:W5L1fKQF.net] >>485 詳細にありがとうございます!! > - a[100] = 1; で length を書き換えない(new Proxy で対応可能) > - a.length = 5; が働かない(Object.definePropertyで対応可能) ありがとうございます。それらの不具合は気付いていませんでした。 let a = new Proxy(new A, { set: function(target, property, value, receiver) { let i = parseInt(property); if (i === i && target.length <= i) target.length = i + 1; // a[n] = x;に伴うlengthの更新に対応。 else if (property === 'length' && value < target[property]) { target.splice(value, target[property] - value); // a.length = n;の代入時の挙動(の一部?)をケア。 } target[property] = value; return true; } }); Object.defineProperty(a, 'length', {enumerable: false, writable: true, value: 0}); これでとりあえずケアできているようではありますが、 Proxyに非対応なブラウザもあるようなので注意ですね。
498 名前:デフォルトの名無しさん mailto:sage [2016/06/09(木) 23:47:09.04 ID:W5L1fKQF.net] >>485 > - iterable でない(Symbol.iteratorで対応可能) 現時点ではワケが分かっておりませんが頂いたヒントは大事に記憶しておきます。 > - 一部の汎用的ではない関数(concat等)が期待通りに動作しない(独自にコードを書けば対応可能) これも今確認しました。concat使えないの悔しいです。 Object.defineProperty(a, 'concat', {enumerable: false, value: function () { return A.prototype.concat.apply(this.slice(), arguments); }}); しかしまぁこういうのを結局書いていくのは悔しいですね。 ちょっとラクしたいだけなのに段々大袈裟になっていくという…。
499 名前:デフォルトの名無しさん mailto:sage [2016/06/10(金) 00:39:24.13 ID:G+eNnn4N.net] >>485 言っていることは間違いではないが、(結果的にでも)無垢な少年を騙すのはいかがなものか、、、 >>487 てかお前、それ自分でやってておかしいって思うだろ? ここの連中は仕様には詳しいが、コードを書いてないから、実装方式については話半分に聞け。 (まあ今回は君が勝手に突っ走ったのであり、騙したわけではないとは思うが) そのコードを見る限り、君は自力で解に辿り着けるはずだ。 俺がぱっと思いつくだけで解は3通りある。当たりかどうかは答えてやるから、冷静に考えてみろよ。
500 名前:デフォルトの名無しさん mailto:sage [2016/06/10(金) 01:01:27.01 ID:DHroUP1C.net] javascriptについて質問があります。 初回起動時のform(画面項目)の値と現在の値を比較して1つでも変更があった場合にはポップアップを表示するといった処理を実装したいのですが何か良い方法があれば、ご教授お願い致します。
501 名前:デフォルトの名無しさん mailto:sage [2016/06/10(金) 01:02:08.05 ID:DHroUP1C.net] >>489 続き はじめはその項目のvalueとdefaultValueにて比較できると思いましたが、defaultValueは画面を再描画するタイミングで取得しますが、行いたい処理の途中でアクションが走り必ず再描画されるタイミングがあるためその方法では比較できないことに気づきました。
502 名前:デフォルトの名無しさん mailto:sage [2016/06/10(金) 01:02:31.57 ID:DHroUP1C.net] >>490 続き (また項目の入力チェックなのでエラーになった場合にも) なので再描画されても、初期表示時の
503 名前:値と現在の値を比較する方法はないでしょうか… ちなみに画面はJSPにて実装しており、項目はtextやradioやoptionなどあります。 [] [ここ壊れてます]
504 名前:デフォルトの名無しさん mailto:sage [2016/06/10(金) 01:28:33.37 ID:rm3c6PtR.net] >>482 https://mitsuruog.github.io/javascript-style-guide/#%E9%96%A2%E6%95%B0functions 7.1 関数式より関数宣言を利用してください。 なぜ? 名前が付けられた関数宣言はコールスタックで簡単に見分けることができます。 さらに関数宣言は関数の本体が巻き上げられます。それに対し、関数式は参照だけが巻き上げられます。 このルールにより、関数式の部分を常にアロー関数で置き換えて利用することができます。 // bad const foo = function () { }; // good function foo() { }
505 名前:デフォルトの名無しさん mailto:sage [2016/06/10(金) 01:45:19.78 ID:rm3c6PtR.net] function Klass() { } という書き方が古臭いとかいうことは当然なくて、 特定の場合では、var hoge = function() {} と書くべきという話を、 頭の悪い、なーんも考えてない馬鹿が、 絶対にvar hoge = function() {} と書かないといけない、 これからはfunction hoge() {} と書いてはならないんだ!って 言ってるだけ。 function Klass() {} という書き方が古くなったとか 聞いたこと無いし、使っていいし、むしろ推奨されている。 ほんと何も考えてない、誰かにaといわれれば 理由も考えずに妄信的にaばっかり使う、そんなやつが多いよなw
506 名前:デフォルトの名無しさん mailto:sage [2016/06/10(金) 02:03:50.61 ID:G+eNnn4N.net] >>493 俺は仕様には詳しくないから具体的に何が問題になるのかは分からないが、 基本的に「普通」の書き方にしておいた方がいいと思うぞ。 というか、何故お前らが妙なこだわりを持つのか、かなり謎なんだが。 > var Person = function () { > console.log('instance created'); > }; > > var person1 = new Person(); > var person2 = new Person(); > https://developer.mozilla.org/ja/docs/Web/JavaScript/Introduction_to_Object-Oriented_JavaScript
507 名前:デフォルトの名無しさん mailto:sage [2016/06/10(金) 02:06:08.67 ID:rm3c6PtR.net] >>494 そこに書いてあるだろw // Student コンストラクタを定義する function Student(firstName, subject) { // 親のコンストラクタを呼び出す。呼び出しの際に "this" が // 適切に設定されるようにする (Function#call を使用) Person.call(this, firstName); // Student 固有のプロパティを初期化する this.subject = subject; }; これは普通の書き方。
508 名前:デフォルトの名無しさん mailto:sage [2016/06/10(金) 02:18:52.51 ID:G+eNnn4N.net] >>495 おっと?これは失敬。 ということはこれについては統一見解はなくて、どっちでもいいって事だな。
509 名前:デフォルトの名無しさん mailto:sage [2016/06/10(金) 02:49:43.87 ID:OOVSLX1/.net] >>495 引用元もそうなってたけど、 最後のセミコロンはいらないよねぇ。
510 名前:デフォルトの名無しさん mailto:sage [2016/06/10(金) 05:22:06.39 ID:naViO+5c.net] どっちでもいいわけないだろ アホかこいつ
511 名前:デフォルトの名無しさん mailto:sage [2016/06/10(金) 08:02:38.57 ID:52VYMGKm.net] >>486-487 いろいろと挙動がおかしいのでよく確認してみるといい 繰り返すが、A.prototype.concat は汎用的ではない https://jsfiddle.net/cw8umnqd/
512 名前:デフォルトの名無しさん [2016/06/10(金) 08:21:29.14 ID:o8hFzx97.net] 結局、コンストラクタ用の関数を書くときにも、 関数式よりも、巻き上げのある関数宣言の方が、良いのか?
513 名前:デフォルトの名無しさん mailto:sage [2016/06/10(金) 08:31:51.96 ID:52VYMGKm.net] >>487 > しかしまぁこういうのを結局書いていくのは悔しいですね。 ビルトイン関数には汎用的なものと汎用的でないものがあって、汎用的でない機能をエミュレーションするのは単純じゃない (とはいえ、JavaScriptは汎用的なプロパティ/関数があるだけエミュレーションするのは楽な方だと思う) 内部的に new Array を保持しておき、new Proxy で透過的に new Array を参照すらば比較的楽に実装出来るが、コストがかかる 完璧なエミュレーションに拘らないのであれば妥協も必要
514 名前:デフォルトの名無しさん mailto:sage [2016/06/10(金) 08:33:32.04 ID:INHt9BTU.net] >>489 この状態と比較したい、って状況で、「画面の対象のコントロール回ってvalueを;かなんかで繋いで返す」関数作って、それ呼んで値を覚える。 変更チェックかけるときに、もう一回その関数呼んで、覚えたものと===で無ければ何かしら変更があった。 ってやってるよ。 「対象のコントロール」にはclassにcheckDatumとか空クラスつけとけばそれで列挙できるし。
515 名前:デフォルトの名無しさん mailto:sage [2016/06/10(金) 08:47:37.80 ID:BhzVNYOI.net] varとfunctionが同じだのセミコロンいらねえだの こんなのが毎日偉そうに能書き垂れてんの? そりゃサンプル出せって言われたら黙るわけだ
516 名前:デフォルトの名無しさん mailto:sage [2016/06/10(金) 09:33:17.22 ID:o8hFzx97.net] >>485-487 Groovyのメタプログラミングなら、 実行時に既存のクラスに、メソッドを追加するなら、Category・Mixin。 メソッド・プロパティを変更・追加するなら、ExpandoMetaClass そういう複雑極まりない方向へ進むのは、最初から考え方がおかしいのでは?
517 名前:デフォルトの名無しさん mailto:sage [2016/06/10(金) 09:36:28.17 ID:+uuPJDCE.net] >>500 > 関数式よりも、巻き上げのある関数宣言の方が、良いのか? 何も考えてねぇ馬鹿は、変数の巻き上げの問題(もちろん理由がある)の話を、 全く関係ない関数にまで適用しようとする(笑) 理由は何だよw ブロック内だけで使う関数など、関数式でなければいけない場合もあるが 通常は関数宣言の方がいいに決まってるだろ。 C言語は宣言された関数しか使えなかったため「前方宣言」などという 物が生み出されてしまったが、それ以降、それ以外の殆どの言語は 関数はどこで宣言しても(巻き上げされたかのように)使うことが出来る。
518 名前:デフォルトの名無しさん mailto:sage [2016/06/10(金) 09:40:10.83 ID:4srunpG+.net] 所詮は自己満足の世界なんだよ
519 名前:デフォルトの名無しさん mailto:sage [2016/06/10(金) 09:40:12.48 ID:+uuPJDCE.net] 普通に関数に名前(コンストラクタも含む)をつければいいのに、 「さいきんのクールなプログラマはvarで関数入れて使うんだぜ! 今時関数に名前つけるなんてのは旧石器時代だな!」とか言ってるんだぜw バカっぽいだろ?事実なんにも考えてない。 デバッガ時に関数名表示がでなくなる問題があるというのにな。
520 名前:デフォルトの名無しさん mailto:sage [2016/06/10(金) 10:33:45.27 ID:GFWTaLNc.net] >>483 > どちらもES3の頃から存在して使い分けされていたわけだが 誰もが(いいすぎ)使い分けるようになったのは、近代になってから > 関数式を使わない時代っていつだ? だから旧石器時代だって ゼロ年代初頭あたりまで
521 名前:デフォルトの名無しさん mailto:sage [2016/06/10(金) 10:36:19.23 ID:GFWTaLNc.net] >>493 > function Klass() {} という書き方が古くなったとか > 聞いたこと無いし、 グローバルネームスペースを汚染する弊害について聞いたことないのか
522 名前:デフォルトの名無しさん mailto:sage [2016/06/10(金) 11:04:28.13 ID:rddDxbo4.net] >>509 クロージャの中でやる分には大丈夫なんじゃないの?巻き上げられたっけ?
523 名前:デフォルトの名無しさん mailto:sage [2016/06/10(金) 11:31:26.83 ID:xHgczCBO.net] 今時グローバル汚染するようなアホおまえくらいだから
524 名前:デフォルトの名無しさん mailto:sage [2016/06/10(金) 11:46:24.26 ID:XqAkh7YW.net] なんであんなに無名を濫用するのかと思ってたが そんなしょうもない理由だったのか
525 名前:デフォルトの名無しさん mailto:sage [2016/06/10(金) 14:12:05.29 ID:dpRBFPup.net] >>509 聞いたことないが、その弊害の発生条件は?
526 名前:デフォルトの名無しさん mailto:sage [2016/06/10(金) 14:36:22.02 ID:4srunpG+.net] そうだよな 汚染ってなんだよ
527 名前:デフォルトの名無しさん mailto:sage [2016/06/10(金) 15:06:36.55 ID:LT2C5Mf1.net] prototype使って、汚染しちゃうのは初心者がやってしまう失敗
528 名前:デフォルトの名無しさん mailto:sage [2016/06/10(金) 15:59:08.90 ID:DxAsZ/F5.net] 1個くらいならバレないんじゃない?
529 名前:デフォルトの名無しさん mailto:sage [2016/06/10(金) 16:05:16.91 ID:
] [ここ壊れてます]
530 名前:3bO9ZAmE.net mailto: Object.prototype.hogeにバーカって書いとけばいいのか [] [ここ壊れてます]
531 名前:デフォルトの名無しさん mailto:sage [2016/06/10(金) 18:15:57.76 ID:LT2C5Mf1.net] コンソールに出すの? アラートで出すの? アラートで出たら、めちゃくちゃ怖いかもww
532 名前:デフォルトの名無しさん mailto:sage [2016/06/10(金) 19:06:13.75 ID:qrHSyLm3.net] prototype汚染という考え方も古くなってきた感はあるが… しかし、風呂敷を広すぎではないかね 元々はprototuype汚染の話ではなかったわけで段々と本題がずれてきているように思う
533 名前:デフォルトの名無しさん mailto:sage [2016/06/10(金) 19:27:07.34 ID:qrHSyLm3.net] >>489-491 画面を再描画するならサーバサイドの処理があるはずだが、それはJavaScriptで実装すべき案件なのかね フォームで値を受け渡してサーバサイドで処理、セッションを使う等、いくつか対策があるはずだが jsを使うなら再描画させずに動的にDOMを書きかえれば済むが、マルチポスト先を読む限りではこの質問者にはハードルが高そうだな https://teratail.com/questions/37462 https://teratail.com/questions/37489
534 名前:デフォルトの名無しさん mailto:sage [2016/06/10(金) 20:02:15.97 ID:G+eNnn4N.net] >>500 少なくとも文法上は大差ないのだろう。MDNにも説明はある。 > 全ての関数は実際には Function オブジェクトです。 > Function コンストラクタか関数宣言か関数式か > https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Functions_and_function_scope new Functionや非トップレベル関数(strict modeでは禁止)も含めて書いてあるから余計に分かりにくくなっているが、 要するにどうでもよさそうだ。 現実的にはコンストラクタだけ前方参照できてもプロトタイプが用意できていないから意味がない。 だから関数式の方が似合っている気はする。 ちなみに汚染については変数名か関数名かだけでどちらも汚染する。 また、デバッグ時にこんなところが関数表示されたところで嬉しくない。 どのみちコンストラクタが呼ばれればコールスタックには載るし、ブレークポイントも当てられる。 お前らは異様に文法にこだわることを止めて、もっとコードを書いた方がいい。 指摘が間抜けなのは、コードを書いてないからだ。(実践的ではない) ○○の問題がある(キリッというのは正しいが、それが重要なことなのか、わりとどうでもいいことなのか、区別が出来ていない。 >>520 > マルチポスト先 よく見つけたなw というかこの手のモラルがない奴、急に増えたよな?何か理由があると思うのだが。 昔から居たけど、マルチポスト先が増えたから発覚しやすくなっただけか?
535 名前:デフォルトの名無しさん mailto:sage [2016/06/10(金) 20:08:51.44 ID:RNr8lFlW.net] >>499 どうもありがとうございます。おかげで気がついてしまいました。 concatはArrayを受け取ってArrayを返すつもりで>>487 では書きましたが、 よく考えると今回拡張したA(以下単にA)を引数に受け取りたいですし、 返す結果もよく考えるとAであったほうが嬉しいかもしれません。 実装の手間という面だけでも尻込みしつつあったんですが、 いまや設計の方針と言う面でも相当きな臭いというか。 concatの返す値が決められなくて不気味。使うときに不安。 仮にsliceやspliceなどのもまとめて全部Aを返すように統一したとしても、 最終的にはArrayとAの二系統が混在する世界になっちゃうわけで不気味。 >>501 > 完璧なエミュレーションに拘らないのであれば妥協も必要 そのつもりだったんですがいざ用意してみると、 欲が出るわ粗が目立つわ方針で不安になるわで散々でした。 今後は生のArrayのみを運用していくつもりです(結論)。 >>504 ありがとうございます。Groovyはぐぐったことすら無いので分かりません。 > そういう複雑極まりない方向へ進むのは、最初から考え方がおかしいのでは? はい。完全にそのとおりです。
536 名前:デフォルトの名無しさん mailto:sage [2016/06/10(金) 21:47:53.40 ID:qrHSyLm3.net] >>522 > 今後は生のArrayのみを運用していくつもりです(結論)。 それはそれで一つの答えだが、やや狭い世界になっていると思う > 最終的にはArrayとAの二系統が混在する世界になっちゃうわけで不気味。 2つの世界が存在することは問題なくてそれが息をするように自然に使えるかどうかが問題ではないだろうか mew Array と new A を行き来する世界はよくないが、それぞれの世界で完結する処理を書けるのならそれでいい どちらかといえば、設計指針を決めかねて迷っているのだと思うが… 基本的には new A は A だけで閉じた世界(new Array を返してはならない)であるべきなので A#concat は new A を返すべきだと思う 逆に A#push は汎用的なので特別な事をせずとも new A を返す このように汎用的な関数を基本的には使って非汎用関数に対しては Polyfill を作る要領でコードを書いていけばそれなりのものができるだろう 別の設計指針としては new Map を new ArrayMap 的な設計にして作り直しても面白いかもしれない new Map は関数でsetter/getterを作るので new Array よりは互換コードを書きやすいはずだ 機会があれば、是非新しい世界を作ることに挑戦してみてほしい
537 名前:デフォルトの名無しさん mailto:sage [2016/06/10(金) 21:58:16.74 ID:MdFWcZSW.net] こういう人に読ます気がない文章は目の前で破り捨てるに限る
538 名前:デフォルトの名無しさん mailto:sage [2016/06/10(金) 22:12:29.26 ID:AlU+uWXE.net] ES6だとプロトタイプ汚染がないのかと思ったけどもしかして新機能がない? 結局 Object.defineProperty(...){........} と書かんといけんのか
539 名前:デフォルトの名無しさん mailto:sage [2016/06/10(金) 22:18:01.79 ID:G+eNnn4N.net] この程度で躓くのならもっと長いMDNは当然無理で、池沼のままなのもむべなるかな
540 名前:523 mailto:sage [2016/06/10(金) 22:51:59.24 ID:qrHSyLm3.net] 読みにくくてすまん どういうわけが改行コードが一部消えているな…
541 名前:デフォルトの名無しさん mailto:sage [2016/06/10(金) 23:08:39.56 ID:+uuPJDCE.net] *∧ ∧:・。゚*。 : ・ 。 ゚ *★. (*・ω・*) ゚ *。* *〇 〇………………………** 祝☆jQuery 3.0 リリース https://blog.jquery.com/2016/06/09/jquery-3-0-final-released/ **………………………………* + JavaScript & jQuery 質問用スレッド vol.6 + [無断転載禁止]©2ch.net echo.2ch.net/test/read.cgi/hp/1465566635/
542 名前:デフォルトの名無しさん mailto:sage [2016/06/10(金) 23:10:44.42 ID:+uuPJDCE.net] >>509 > > function Klass() {} という書き方が古くなったとか > > 聞いたこと無いし、 > グローバルネームスペースを汚染する弊害について聞いたことないのか なにいってんだおめぇ? var Klass = function() {} という書き方をしても グローバルネームスペース汚染してるだろw function hoge() { function Klass() {} } ↑Klassがグローバルネームスペース汚染ってどういうこと?w
543 名前:デフォルトの名無しさん mailto:sage [2016/06/10(金) 23:13:14.16 ID:+uuPJDCE.net] >>524 同じこと思ったw
544 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 00:01:17.78 ID:MQjYfq34.net] ライブラリスレが復活してた JavaScript ライブラリ総合質問所 vol.5 [無断転載禁止]©2ch.net echo.2ch.net/test/read.cgi/hp/1465399470/
545 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 08:41:10.92 ID:MQjYfq34.net] jQuery推しが酷いと思ったらテンプレ改変されていたのか
546 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 13:03:48.93 ID:n8nif7qi.net] 今更かよ ここ乗っ取られスレだよ
547 名前:デフォルトの名無しさん [2016/06/11(土) 13:06:25.18 ID:ijG8u0pc.net] java script初心者です。ご教授願います m(_ _)m 初めてpromiseで簡単な非同期処理を書いたんですが、一応動くもののどうにもコードがしっくりきません もっとシンプルにできたり、適切な書き方があるところがあったら教えてください 内容は単語queryに対応する画像検索結果がローカルストレージになかったら外部APIに問い合わせるというものです
548 名前:534 mailto:sage [2016/06/11(土) 13:09:15.52 ID:ijG8u0pc.net] function getCachedData(query) { return new Promise(function(resolve, reject){ chrome.storage.local.get(query, function(cachedJson){ if (isExist(cachedJson)) { resolve(cachedJson[query]); } else { reject(); } }); }); } function getImageData(query) { getCachedData(query) .catch(function(){ return fetch(window.googleCustomSearchApi + query) .then(function(response) { return response.json(); }).then(function(json){ chrome.storage.local.set({[query]: json}); return json; }); }).then(function(json) { createPopUp(json.items[0]); positionPopUp(); }).catch(function(err) { console.error(err); }); }
549 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 13:14:41.27 ID:ijG8u0pc.net] インデント潰れてしまった・・・ preタグで再投稿 <pre> function getImageData(query) { getCachedData(query) .catch(function(){ return fetch(window.googleCustomSearchApi + query) .then(function(response) { return response.json(); }).then(function(json){ chrome.storage.local.set({[query]: json}); return json; }); }).then(function(json) { createPopUp(json.items[0]); positionPopUp(); }).catch(function(err) { console.error(err); }); }</pre>
550 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 13:21:07.32 ID:e5AOazPt.net] >>534 この記事が参考になるかな gao-tec.seesaa.net/article/427643074.html
551 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 13:33:33.96 ID:ijG8u0pc.net] >>537 ありがとう 3回読んできます
552 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 13:39:59.04 ID:n8nif7qi.net] >>534-535 2chはHTMLタグ使えないからjsFiddleみたいな投稿サイトを使うといいよ 前まではテンプレにあったんだが 一見ネストが深いように見えるけど結構シンプルに纏まってると思う fetchの部分を外に出せば視認性がよくなるんじゃないのって程度 しいて言えばgetImageData内でPopUp関数を呼び出してるのがしっくりこない getImageData自身もPromiseインスタンスを返してresolve(json)するのがいい
553 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 13:59:44.48 ID:ijG8u0pc.net] >>539 今日だけ師匠と呼ばせてください 自分でもそこはなんか気持ちわるかったんです promiseチェインがcatchで始まった挙句、頭でっかちで でも外に出すというのはどうやるんでしょう・・・ fetchからの処理をまとめた関数(返り値は最終的なjsonデータのpromise)を外に定義して、それを呼び出す感じですか? そしてgetImageDataがPromiseインスタンスを返すように書き換えるには、ええと・・・(思考フリーズ)
554 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 14:41:46.28 ID:n8nif7qi.net] >>540 getCachedDataと同じ書き方をfetchとgetImagedataでやるだけだよ
555 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 15:16:00.71 ID:NAulAg4n.net] >>539 > 一見ネストが深いように見えるけど結構シンプルに纏まってると思う え? ちょっとまてよ?
556 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 15:45:12.80 ID:NAulAg4n.net] >>540 これgetImageDataの中でキャッシュあるか調べてるからいけないんだよ。 一般論として、キャッシュというのは存在を意識しないようにコードにするべき。 関数の役割ってのが書いてないし、これだけじゃ読み取れないから難しいんだが、 そのgetImageDataっていうのは画像があれば、ポップアップウインドウを表示するんだろう? であれば、getImageData() ではなくて showImageData() とかいう名前にするべき。 そして、getCachedData()ではなく、こっちをgetImageData()にするべき。 getImageData()っていうのは単にImageDataを返すだけ、その中でキャッシュを使っていようが 使っていまいが関係ないし、別の仕組みのキャッシュを使うかもしれない。がgetImageData()を 使う人からはそんなこと知ったことじゃない >>535 のコードは、chrome.storage.local を使っている箇所が、getCachedDataと getImageDataの2つに分かれているだろ? 関数の役目が明確に分離されていないからそうなる。 非同期の書き方の問題の前にまずやることがあるってことさ。 あと、スペース1個でインデントは見にくいからやめろw 最低でも2個だ。
557 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 15:47:35.86 ID:NAulAg4n.net] で、これが修正コード例だ。 やりたいならばchrome.storage.local.getをPromise化する事もできるがね。 function getImageData(query) { return new Promise(function(resolve, reject) { chrome.storage.local.get(query, function(cachedJson) { if (isExist(cachedJson)) { resolve(cachedJson[query]); return; }
558 名前: fetch(window.googleCustomSearchApi + query) .then(function(response) { var json = response.json() chrome.storage.local.set({[query]: json}); resolve(json); }) .catch(function(err) { reject(err); }) }); }); } function showImageData(query) { getImageData(query) .then(function(json) { createPopUp(json.items[0]); positionPopUp(); }) .catch(function(err) { console.error(err); }); } [] [ここ壊れてます]
559 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 15:56:05.66 ID:NAulAg4n.net] で、どうしてもgetImageData()の中身をPromise化したいならこんな感じかね? 動かせる環境がないので、これで正しく動いているかはしらない。 元のコードに合わせてisExistがfalseならreject()しているが、 nullを返して、データがnullだったらfetchしたほうがいいような気もするが。 function getImageData(query) { return new Promise(function(resolve, reject) { chrome.storage.local.get(query, function(cachedJson) { if (isExist(cachedJson)) { resolve(cachedJson[query]); } else { reject(); } }).cache(function()) { return fetch(window.googleCustomSearchApi + query) }).then(function(response) { var json = response.json() chrome.storage.local.set({[query]: json}); return json; }); }
560 名前:534 mailto:sage [2016/06/11(土) 16:03:43.18 ID:ijG8u0pc.net] >>543 自分でああでもないこうでもないと考えてコードを修正していたら返信遅れました か ら く ちwwww と思って訂正コードと自作スパゲッティを見比べたらグウの音も出ませんでした この整理されたしっくり来る感じ 勉強になります あとは・・ エラーハンドリングについてわからないところがあります!
561 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 16:07:35.34 ID:ZhHlBSFM.net] >>537 良い記事だ。 が、前から疑問なのだが、何故お前らはネストにこだわるのだ? 俺は展開して書いていて、特に問題を感じない。 要求が「脳筋無限ループの例ぐらい単純な構造で」「非同期処理を実現する」 「処理は上から下へ」「ネストが深くならない」ならば、これでいいと思うのだが。 好きずきはあると思うが、このような場合にでも例としても出てこないのは謎なんだが。 function Main(){ console.log("a"); setTimeout(Main_1,2000); function Main_1(){ console.log("b"); setTimeout(Main_2,1000); } function Main_2(){ console.log("c"); } } Main();
562 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 16:12:31.73 ID:NAulAg4n.net] >>545 は本当に動くかどうかわからない。 実はcacheのあとにthenをつなげたことないんでねw まあ関数の中を試行錯誤すりゃできるだろうと思うけど。 最悪>>544 でいいし。 "何をする" 関数か?(クラスか?)ってことをよく考えることが重要。 動くようにコードを配置するんじゃなくて、何をする関数か?を定義して それに合わない所はたとえコードが増えても外にだすべきだし、 入れるべきだと思えば、どうにかして持ってくる。 もちろん場合によっては、"何をする" の定義を変えてもいいけど はっきり定義させることが重要。 例えば、このgetImageData()はchrome.storage.local を使うことが前提になってるけど、 いろんなキャッシュの仕組みを入れ替えられるようにする関数(というかクラスになるだろうけど)を定義すれば getImageData()の中からはchrome.storage.localが消えて、キャッシュの仕組みを 入れ替えられるだけのことをするクラスができあがるわけ。
563 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 16:15:59.14 ID:NAulAg4n.net] >>547 > が、前から疑問なのだが、何故お前らはネストにこだわるのだ? やりかけで覚えておかなければならないことが増えるからだよ。 Aが終わってからBをして、Bが終わってからCをする。というやり方よりも Aの途中でBをして、Bをしているその途中でCをするほうが疲れるから。 Cが終わったら、Bはどうなったんだっけ? そしてAはどうなったんだっけ?って 戻って行かないといけないからね。 言い換えると可読性の問題だからだ。 非同期とかそういうところが問題になってるんじゃない。 やりかけの作業を脳に貯めておくと言うところが問題なんだよ。
564 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 16:20:02.55 ID:NAulAg4n.net] >>547 あと、そのコードの問題は「名前」が増える。 名前が増えるっていうのも、いちいち記憶して おかなければならないことだから面倒 限りある記憶領域は、記憶する価値のある物、 汎用的でどこでも使えることだけに絞る必要がある。 覚える価値がないものは覚えなくていい。 そのコードは関数の
565 名前:シ前が増えているだけだが、 クロージャーじゃなくなっているから、変数の名前も増えるだろうね あと処理があちこちに飛ぶから、コードが長くなったらスクロールする回数も増えるよw もちろん関数が長ければ分けるが少なければその場に埋め込むという意味だ。 [] [ここ壊れてます]
566 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 16:26:52.64 ID:ZhHlBSFM.net] >>549 そうか?ぶった切られているだけで、実は同じだろ。追加部分を見やすいように編集しておいた。 同期的に「放り投げて終わり」にしたいという気持ちも分かるが、無理にネスト/Promise化するより見やすくないか? 脳内 s/setTimeout...function(){// で全く問題ないはずだが。 function Main(){ console.log("a"); setTimeout(Main_1,2000); // 追加 function Main_1(){ // 追加 console.log("b"); setTimeout(Main_2,1000); // 追加 } // 追加 function Main_2(){ // 追加 console.log("c"); } // 追加 } Main();
567 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 16:29:29.39 ID:tWgkOxEq.net] もうそれはasync/await、もしくはgenerator/yieldを使うしかないよ。
568 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 16:35:45.96 ID:NAulAg4n.net] >>551 サンプルコードでやってるからだめなんだよw お前、頭の中で、このコードはsetTimeoutしかない。Main以外の名前は存在しない。 しかもそれぞれ短いコードで呼び出す順番に並んでいるいう「記憶」に頼ってコード読んでるだろ? それはお前だから出来ること。(短いから俺でも出来るけどさw) 実際に業務ではそういう「記憶」には頼れない。コードはもっと長いし 汎用的じゃないものは名前も覚えられない。(何日も経ったら忘れる) 汎用的でないものには、適切な名前をつけることも難しい。 仮にそのコードのまま、記憶に頼れないように書き換えてみようか? さっきと同じように気楽に読めるかい? どこでどう呼び出しが行われてるか探すだろ? function Kjads(){ console.log("a"); function cgrd(){ // あrtが console.log("c"); } // あrtが badf(fgaz); // あrtが function fgaz(){ // あrtが console.log("b"); asdfa(cgrd); // あrtが } // あrtが } Kjads();
569 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 16:36:17.69 ID:ZhHlBSFM.net] >>550 「名前」が増えるのは事実だけど、関数内関数で隠蔽するし、 そもそも処理を必ず「上から下に」書くのでその点は問題にならない。 つまり、このように展開した場合、その関数は直前のsetTimeoutからしか呼ばれない。 したがって、覚える必要はないし、 処理があちこちに飛ぶこともない。(
570 名前:ただこれはそう書く、ということだが) ちなみにクロージャーにはなっている。 > もちろん関数が長ければ分けるが少なければその場に埋め込むという意味だ。 いや、結構糞長い奴もそこに書くよね? $.ajaxとかその場にだらだら全部書くほうが普通じゃないか? [] [ここ壊れてます]
571 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 16:39:28.40 ID:NAulAg4n.net] >>554 もうそろそろ>>553 をみて、記憶に頼ってるなって自覚したはずw > ちなみにクロージャーにはなっている。 なってない function Main(){ var v = 1 setTimeout(function() { console.log(v); }, 1000); } ↓ エラーになる function Main(){ var v = 1 setTimeout(Main_1, 1000); } function Main_1(){ console.log(v); } 変数vを渡すために、名前が増えるwww
572 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 16:39:52.50 ID:ZhHlBSFM.net] >>553 ああ、ちょっと遅れたが、それは既に書いたように、俺内コーディングルール 処理を必ず「上から下に」書く で対応している。というか、そもそも意図的に可読性を落とす必要はないだろ。 「上から下に」書けるところでは「上から下に」書くのが常識だろ。 名前もこの手の場合は XXX_1, XXX_2, ..... と順に付けていく。おかしな名前を付けたりすることはない。
573 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 16:40:41.06 ID:NAulAg4n.net] >>554 > $.ajaxとかその場にだらだら全部書くほうが普通じゃないか? 下手なやつが多いだけ。 俺は関数に分けるべき理由が生まれれば当然分ける。
574 名前:534 mailto:sage [2016/06/11(土) 16:40:58.22 ID:ijG8u0pc.net] >>544 の綺麗なコードを見る前に、API問い合わせの部分を関数に分離しようと思って、fetch用の追加のエラーハンドリングも加えてこう書いてしまったんですね(お蔵入りですが、このなかで疑問が沸いたので・・) function googleCustomSearch(query) { return fetch(window.googleCustomSearchApi + query) .then(handleNetworkError) .then(response => response.json()) .then(json => { chrome.storage.local.set({[query]: json}); return json; }) .catch(err => { // 【ここが疑問】 }); } function handleNetworkError(response) { if (!response.ok) { throw new Error(reponse.status, response.statusText); } return response; }
575 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 16:44:00.74 ID:NAulAg4n.net] >>556 > 処理を必ず「上から下に」書く > > で対応している。というか、そもそも意図的に可読性を落とす必要はないだろ。 > 「上から下に」書けるところでは「上から下に」書くのが常識だろ。 ほらなw お前の常識w 何処かで、function hoge() {} じゃなくて var hoge = function() {} って 書けって言っていたやつが居るが、 (ちなみに俺はその必要がないならばfunction hoge()って書け派) これは上から下に書けない。 hoge(); var hoge = function() {} hage() var hage = function() {} まあ 「上から下に」"書けるところでは" って書いているところからもわかるように 書けない場合があると自覚してるんだろうがw その書ける所と書けない所、ここは書ける所だという前提を知ってるのも「記憶」だよねw
576 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 16:44:38.09 ID:ZhHlBSFM.net] >>555 何が言いたいのか分からんが、これでいいか? function Main(){ var count = 0; console.log('a: '+count++); setTimeout(Main_1,2000); function Main_1(){ console.log('b: '+count++); setTimeout(Main_2,1000); } function Main_2(){ console.log('c: '+count++); } } Main();
577 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 16:46:15.25 ID:NAulAg4n.net] >>560 勝手にコード書き換えんなよw function Main(){ var count = 0; console.log('a: '+count++); setTimeout(Main_1,2000); function Main_1(){ var v = 1; console.log('b: '+count++); setTimeout(Main_2,1000); } function Main_2(){ console.log('c: '+count++); console.log(v); // エラーになる } } Main(); それともお前、ローカル変数は作るな。 全部クラス変数にしろとか言う派なのか?www
578 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 16:50:41.71 ID:NAulAg4n.net] >>558 いやw 何が疑問なのかさっぱりわからないんだがwww
579 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 16:51:15.94 ID:ijG8u0pc.net] googleCustomSearchの呼出元にhandleNetworkErrorで起きたエラーを伝えるためには、 1.最後のcatchのなかでもう一度new Error(err)を投げる 2.Promise.reject(error)を返す 3.そもそも書き方が悪い、 >>544 みたいにfetchをnew Promiseでラップして、reject(err)してください どれが適切なんでしょうか
580 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 16:54:15.22 ID:ZhHlBSFM.net] >>561 いや勝手に書き換えたのはお前だろ。 >>555 のコードでは var v=1 は Mainの中じゃないか。 Main_1の中で新しい変数が必要なら、 ・Main_2をMain_1内に移動する(ネストが増える) ・v を Main内で定義しておく のどちらかだろ。俺なら後者的アプローチを取ることが多いと思う。 ただ、途中で変数が必要なときも管理しなくていいというのは確かにメリットかもな。
581 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 17:02:05.55 ID:ZhHlBSFM.net] >>559 それはクラスの時の話だ。 クラスの場合は、コンストラクタだけ呼べても意味がないだろ。 Hoge.prototype.XXX = function(){...}; の記述が「順序が必要」なので、どのみちその記述以降じゃないと new Hoge() 出来ないんだよ。 誰も普通の関数 hoge を全部 var hoge = function(){} と書けとは言ってない。 お前が話について来れてないだけ。 まあ分かった、お前が「文法的に読み込める方が善」というのならそれでいい。 で、他の連中もそうなのか?
582 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 17:09:12.67 ID:ZhHlBSFM.net] >>557 ちと細かいがこれにも言っておくと、 > 俺は関数に分けるべき理由が生まれれば当然分ける。 彼等は「関数に分けるべき理由」が分からないのではなくて、その必要がないという判断でそこに書いているんだよ。 下手なわけではない。 通常、$.ajaxの場合はそこでしか使われない関数になるから、ネスト派ならそこにだらだら書く方が自然なんだ。 ただ、「ネストが深くなる」のが嫌いなくせに、「ネストでしか書かない」のが俺には疑問なんだ。
583 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 17:31:06.27 ID:aOjkg+66.net] >>523 毎度ありがとうございます。 > 機会があれば、是非新しい世界を作ることに挑戦してみてほしい 今回のことで色々勉強させてもらいましたので、 次に生かせたいと思います! 色々ありがとうございまし!
584 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 17:31:44.01 ID:aOjkg+66.net] おっw ×まし! ○ました!
585 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 18:02:04.85 ID:NAulAg4n.net] >>566 > 下手なわけではない。 > 通常、$.ajaxの場合はそこでしか使われない関数になるから、ネスト派ならそこにだらだら書く方が自然なんだ。 > ただ、「ネストが深くなる」のが嫌いなくせに、「ネストでしか書かない」のが俺には疑問なんだ。 <
586 名前:br> いや、俺は$.ajaxでDeferred使うし、やっぱり下手なだけじゃね? [] [ここ壊れてます]
587 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 18:05:04.82 ID:NAulAg4n.net] >>563 > どれが適切なんでしょうか どれか迷ったら、一番楽な方法を選べばいいよw 何でもそうだけど原則として楽になるように作られてるわけなんだしさ。 しばらくPromiseは触ってないから忘れたが、throwで任意のエラーオブジェクトでも 投げればいいんじゃね?
588 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 18:07:10.39 ID:NAulAg4n.net] >>565 > クラスの場合は、コンストラクタだけ呼べても意味がないだろ。 意味あるぞ? function NantokaManager(params) { this.params = params; this.run = function() {} } var manager = new NantokaManager; manager.run() とかさ。
589 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 18:08:34.97 ID:NAulAg4n.net] >>565 > 誰も普通の関数 hoge を全部 var hoge = function(){} と書けとは言ってない。 > お前が話について来れてないだけ。 俺もそんな話はしていない。 ついてこいよw
590 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 19:28:03.24 ID:ZhHlBSFM.net] >>571-572 すまんが意味が分からんし、お前の主張も分からん。 その場合の駄目なコードとそちらの主張を対で出せるか?(以下例のように) 一応こちらの意見をもう一度言っておくと、 function hoge(){} // OK。通常の関数はこちら。 var Hoge = function(){}; // コンストラクタの場合はこっちの方がよさそう となる。 そのコードが「共通プロトタイプを持たない場合」に限定しているつもりなら、勝手にどうぞでしかない。
591 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 19:33:03.15 ID:NAulAg4n.net] >>573 え? お前コードは必ずプロトタイプを持つものっていう前提なの? どうやらお前は限定しているようだが、 俺は、どんな限定もしていない。
592 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 19:40:17.64 ID:ZhHlBSFM.net] >>574 何が言いたいのか分からん。 そちらが説明しきれないのなら、相互理解は不能だから終わりでいい。
593 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 21:27:53.17 ID:NAulAg4n.net] >>575 お前がこう言ってきたんだろ? > クラスの場合は、コンストラクタだけ呼べても意味がないだろ。 だから俺は、コンストラクタだけ呼べても意味がある場合を言ったまで。 そしたらお前が「俺は共通プロトタイプをもった場合に限定してるんだ」って いい出したんだろw 俺はお前と違って何も限定していない。 コンストラクタだけ呼べても意味がある場合は 実際に存在している。
594 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 22:29:21.64 ID:ZhHlBSFM.net] >>576 なるほど、お前は人殺し君か。 どおりで話が通じないわけだ。
595 名前:デフォルトの名無しさん mailto:sage [2016/06/12(日) 00:46:04.68 ID:hCgFiHr7.net] 多分人殺しくんとは俺の事だろうが、 >>576 は俺ではないし、正直、ID:ZhHlBSFMは頑張って色々回答してるけど実務レベルではないわ。 処理は上から下へ流れるように、なんて、飼い犬が死んでも言わんレベルのたわ言じゃん。 相互に呼び出し合う事のある関数なんかどういう順序で記述するんだろ。 イベンハンドラやら、タイマーのハンドラは、どの順序なのかな。 子供のお題目にしか聞こえん。 逆に何年目か教えてほしいわw 何度かこういう言い方してるけど、ああいう悔しがり方とキレ方する奴が具体的にすら言えないってことは、ほんとに経験無いガクセーさんなんだろうけど。
596 名前:デフォルトの名無しさん mailto:sage [2016/06/12(日) 00:51:30.61 ID:CJz8oq6+.net] 後学のためにID真っ赤にしてる方々の書いた素晴らしいスクリプトを見せてくださいよ
597 名前:576 mailto:sage [2016/06/12(日) 00:51:41.20 ID:AMLyjVO9.net] >>578 お前のことだったんかw いきなりなんか言われて意味不明だったわ。 えーと何の話だっけ? 同期命令が使える言語で、 sleep(1000) console.log(1) sleep(1000) console.log(2) sleep(1000) console.log(3) と書きたくなるようなコードを、ネストして書くだけでも苦痛なのに、これを関数に分解して function Main_1() { sleep(1000) console.log(1) } function Main_2() { sleep(1000) console.log(2) } function Main_3() { sleep(1000) console.log(3) } とかやりたくないわけでw あと関数なのに、大文字から始めってる時点で、経験不足だってことがわかるよ。 念の為に言っておくと、上のMain_1とか言うのは俺がいい出した名前じゃないからねw
598 名前:デフォルトの名無しさん mailto:sage [2016/06/12(日) 00:52:45.85 ID:AMLyjVO9.net] >>579 俺は何回も書いてるよ。 >>546 とか読んでみな。(俺が>>546 という意味ではない)
599 名前:デフォルトの名無しさん mailto:sage [2016/06/12(日) 01:26:35.68 ID:npk74fIw.net] はいはい自演乙。 自演じゃないならレベルの高い>>578-581 の間で色々解決できるだろうから頑張れ。
600 名前:デフォルトの名無しさん mailto:sage [2016/06/12(日) 01:33:50.33 ID:AMLyjVO9.net] > 自演じゃないならレベルの高い>>578-581 の間で色々解決できるだろうから頑張れ。 自演じゃないぞw 解決できるだろうけど、その前に何も解決すべき 課題が出てないじゃないかw そして、俺とお前は他人だろ? その理屈ならいろいろ解決できるだろうな。 何か言ってみろ。俺は手伝わないがwww
601 名前:デフォルトの名無しさん mailto:sage [2016/06/12(日) 01:40:01.79 ID:m2Zib5nl.net] あ?なんだこのゴミみたいな木っ端は 最低でも1000行以上あるプログラムとして成立してるもんもってこいや
602 名前:デフォルトの名無しさん mailto:sage [2016/06/12(日) 01:43:07.89 ID:npk74fIw.net] >>583 じゃあとりあえず>>578 の疑問に答えてやれよ > 相互に呼び出し合う事のある関数なんかどういう順序で記述するんだろ。 > イベンハンドラやら、タイマーのハンドラは、どの順序なのかな。 厳密にはこれは質問ではないから、「俺がどう書くか」の予想でもいいぞ。 とにかくお前らで色々話をしてみろ。 面白そうなら俺も加わるし、他も加わってくるだろう。 どうでもよければ無視されるだけだ。
603 名前:デフォルトの名無しさん mailto:sage [2016/06/12(日) 02:01:39.12 ID:AMLyjVO9.net] >>585 どうせ質問に答えても自演じゃないって認めないんだろw まあ質問じゃないとお前もわかってるようだから、それにレスしろと いうならば、レスするのは何の問題もない。 >>578 > 相互に呼び出し合う事のある関数なんかどういう順序で記述するんだろ。 > イベンハンドラやら、タイマーのハンドラは、どの順序なのかな。 全くだなw 必ずしも上から書けるわけがない。 関数を呼び出される順番に書くとか言っているやつは馬鹿じゃないだおろうかね どういう順番で書くかは、ばらばらで人によってはアルファベット順ってこともあるだろう。 だから必要もないのに小さな関数に分けるなんて論外。 一つの関数にし、ネストがいやだからPromiseというのが使われるようになった。 この件に関しては、俺は>>578 と同じ意見だろうな
604 名前:デフォルトの名無しさん mailto:sage [2016/06/12(日) 02:36:10.54 ID:npk74fIw.net] >>586 > この件に関しては、俺は>>578 と同じ意見だろうな そりゃ同一人物だからなw まあ、人殺し君も多投するタイプだから、待ってればレスが返ってくるはずだ。 そして本当に別人なら、色々意見交換すれば相違点が発見できるだろう。 それは俺関係なしにいいことだから、やってみることだね。
605 名前:デフォルトの名無しさん mailto:sage [2016/06/12(日) 02:56:48.44 ID:hCgFiHr7.net] >>587 同一人物とかよくわからんな。 俺が連投するのは暇だからで、まともに過ごしてる時はそれなりにしか書かんけど。 10日間際は忙しいからな。 まさか本気で同一人物だと思ってたら笑えるww
606 名前:デフォルトの名無しさん mailto:sage [2016/06/12(日) 03:17:12.70 ID:hCgFiHr7.net] >>586 うむ。アルファベット順ならまだマシだけど。 台帳に書いてある順とかちょっとびっくりする会社もあるからな。どことは言わんけど。 多分業務経験ない奴は笑うだけだが、 実務やってれば「NDA結ばないとリバースエンジニアリングすら難しい」という人間minifierだったりする。 必要に応じて関数は分けるべきというより、むしろ、関数は射影的であるべきだと思う。 コールバック関数のネストを「関数と関数を繋いでる」と単純に誤解して悪手だと思ってほしくないのが、 本来は関数と「関数を引数に取る関数」を定義して、「関数を引数にとる関数」に関数を食わせるが為の手段を逆に見た結果、「コールバック」って姿に見えてるだけ。 だから、yieldとジェネレーターを使おうが、Promiseを使おうが、本来は何一つ定義が変わってる訳でも、処理が変わってる訳でも無い。 関数に関数を食わせて値を取り出してる。 ・水を冷やして出来た物を、回転する鉋で削って、皿に落とし入れたもの、 ・皿で受け止めた、回転する鉋で削られた、冷やされた水、 ・回転する鉋で水を冷やして出来た塊を削り、皿に落としたもの は全部主題が同じもの。 水を冷やす、という関数と水を、値として「氷」と扱おうが、 かき氷機を「『水を冷やした物』削り機」と展開しようが、とう扱うかは使い方次第。 そこに、ニーズ外の要件なんて無いの。扱いにくいとかどうでもいいんよ。 また、undefinedの時と同じ勘違いしてるけどさ。 水→機械A→中間生成物→機械B→製品、 というシーケンスであらわすのが正しいのか、 ((水→機械A)→機械B)→製品、とフローで合わすのかは瑣末すぎるほどの差。 しかし、言われてるのは俺じゃないが、関数を大文字から始めると経験不足なんだwww C20年目かもしれんけどな、そういう人はww
607 名前:デフォルトの名無しさん mailto:sage [2016/06/12(日) 03:21:29.67 ID:hCgFiHr7.net] こいつ、言われたくないことを人に言って安全圏に逃げたいだけなんだろうなぁ。ユング的なシャドウをもう少し悪く歪めたものが見えるわ。 voidとか、岡部健みたいな感じの破綻者に対して憧れてる人間、くらい性根がさもしい。
608 名前:デフォルトの名無しさん mailto:sage [2016/06/12(日) 09:01:52.07 ID:AMLyjVO9.net] >>587 だから同一人物じゃねーよw
609 名前:デフォルトの名無しさん mailto:sage [2016/06/12(日) 09:04:46.11 ID:AMLyjVO9.net] >>589 > しかし、言われてるのは俺じゃないが、関数を大文字から始めると経験不足なんだwww JavaScriptのコーディング規約はいくつもあるが、どれも関数は小文字で始める。クラスは大文字。 JavaScriptの経験があるなら、これに従ってるはずなので 見た瞬間気持ち悪さを感じるものだよw
610 名前:デフォルトの名無しさん mailto:sage [2016/06/12(日) 09:10:26.75 ID:AMLyjVO9.net] >>589 > だから、yieldとジェネレーターを使おうが、Promiseを使おうが、本来は何一つ定義が変わってる訳でも、処理が変わってる訳でも無い。 処理が変わってるわけでもない・・・ならば 読みやすい方がいいだろ? 逆に考えれば、どんなに読みづらく書いても 処理が変わっていないというコードにすることはできるだろう? 読みづらくても処理が同じならいいと言うのか? そうではないだろう。 コードっていうのは書いて終わりじゃない。修正するもの。 むしろ読むほうが多いので、書くよりも読むほうが大事。 だから「可読性」という言葉がある。「可書性」という言葉はない。 > そこに、ニーズ外の要件なんて無いの。扱いにくいとかどうでもいいんよ。 俺はいまだかつて「時間的に早く書けて修正も簡単で、メンテナンスにかかるコストが低い」 という要件がなかったことはないぞw どんなプロジェクトでも安く仕上げることは、暗黙的に含まれてる要件だ。
611 名前:デフォルトの名無しさん mailto:sage [2016/06/12(日) 13:15:07.43 ID:npk74fIw.net] 別人であればもっと議論が深まるはずだよな。 みんな見てくれてるから、せいぜい頑張れ。
612 名前:デフォルトの名無しさん mailto:sage [2016/06/12(日) 13:19:20.40 ID:AMLyjVO9.net] どうあっても別人と認めたくないようだ(笑)
613 名前:デフォルトの名無しさん mailto:sage [2016/06/12(日) 13:20:50.61 ID:AMLyjVO9.net] あ、なるほど。話が進むと今度は 一人だから意図的に会話できる。 それが自作自演の証拠って言うつもりだなw
614 名前:デフォルトの名無しさん mailto:sage [2016/06/12(日) 15:04:26.78 ID:npk74fIw.net] いやきみ(ら)にとっては俺はただの馬鹿なんだろ。 だったら俺を引っ張り出す方向のレスを付けること自体おかしいだろ。 ガン無視してくれよw いずれにしても、君らが「別人」かどうかは皆が判断することであって、 俺が「自演」主張しても、逆に君らが「別人」主張しても意味無いんだよ。 どちらがキチガイかは皆が判断してくれる。 そして一つアドバイスをするなら、君のキャラなら>>592 は 「え?お前偉そうなこと言っている割には『大文字』のルールも知らないんだwww」 と煽るべきだった。キャラを変えると自然な自演に見えない。 君も煽りで相手を引き出すキャラなんだし、 このレスなら人殺し君のキャラなら確実に食いついてくるし。 本当に別人なら、君らが会話すれば君らにとっても得る物があるはず。だからもっとやればいい。 いちいち俺に対してキョロキョロしたり、 或いはここに来て会話を終わらせる方向にキャラ変更するのは不自然だ。 はい続きをどうぞ。
615 名前:デフォルトの名無しさん mailto:sage [2016/06/12(日) 16:27:25.35 ID:9HFtYPb0.net] その人殺し君とかいうのに論破されちゃって 悔しくて大ハッスルしてるの?
616 名前:デフォルトの名無しさん mailto:sage [2016/06/12(日) 16:54:18.02 ID:hCgFiHr7.net] >>592 そりゃ、javascriptの規約はいくらでもあるだろうけど、 javascriptの規約しか知らないどころか、ありえないような口ぶりで話してたからねw なんかからトランスパイルするなら、こうなるだろうな、って考えたりしないんだ、って感じ。 >>593 もちろんそう。 しかし、読みやすいのと書きやすいのと、定義しやすいのはそれぞれ別の概念だから、そういう意味では可読性に相当する単語は、独立性とか、依存度とか、抽象度とか 見方次第でいくらでも変わるものじゃないか? 安くあげる事より、致命的な不具合を出さない事の方が求められるプロジェクトしかやってないからな。 正直、安くなくても売れるから。 安くないほうが売れるとも言えるレベルで。 >>597 お前ほんと何と戦ってんの?
617 名前:デフォルトの名無しさん mailto:sage [2016/06/12(日) 19:20:47.80 ID:npk74fIw.net] >>599 > わざとこの態度だからなぁ。 (>>327 ) 煽っていくスタイルプリーズ
618 名前:デフォルトの名無しさん mailto:sage [2016/06/12(日) 19:39:15.05 ID:AMLyjVO9.net] > なんかからトランスパイルするなら、こうなるだろうな、 なんでそんなコード書くの?www
619 名前:デフォルトの名無しさん mailto:sage [2016/06/12(日) 19:40:36.87 ID:z4XaqaSO.net] function f(a) { let t = a; t[0] = 1; console.log(a); console.log(t); } let a = [0]; f(a); これaも[1]になっちゃうんですが ES2015とか新しい書き方で配列をコピーする方法ありませんか?
620 名前:デフォルトの名無しさん mailto:sage [2016/06/12(日) 19:41:46.51 ID:AMLyjVO9.net] >>597 > どちらがキチガイかは皆が判断してくれる。 お前がキチガイだって俺は判断したよwww
621 名前:デフォルトの名無しさん mailto:sage [2016/06/12(日) 22:24:47.44 ID:QKWa7och.net] 芝生くっつけるやつにろくなのはいないってのは間違いなさそうだ
622 名前:デフォルトの名無しさん mailto:sage [2016/06/12(日) 22:34:59.19 ID:npk74fIw.net] >>601 馬鹿にはちゃんと安価付けろ。気づいてもらえないぞ。 てかお前もちゃんと煽れよ。 >>599 >>601 は>>599 宛だぞ。 おーい。煽られてるぞー。
623 名前:デフォルトの名無しさん mailto:sage [2016/06/12(日) 22:46:30.04 ID:xguVhByI.net] そりゃ別人なんだから、煽りもするわwww
624 名前:デフォルトの名無しさん mailto:sage [2016/06/12(日) 23:31:28.41 ID:GjxFekK/.net] >>602 concat
625 名前:デフォルトの名無しさん mailto:sage [2016/06/12(日) 23:34:06.35 ID:xguVhByI.net] shallowコピーの場合はconcatでいいよね。 最初は?ってなるけど、知ってしまえば簡単に覚えられるし。 なんらかのdeepコピーの場合はライブラリ使うしか無いかな?
626 名前:デフォルトの名無しさん mailto:sage [2016/06/12(日) 23:54:06.37 ID:npk74fIw.net] いやシャローコピーは slice() だと思うが。
627 名前:デフォルトの名無しさん mailto:sage [2016/06/12(日) 23:56:00.26 ID:hCgFiHr7.net] >>605 お前、脳みその代わりにババロア詰まってて、しかも微妙に機能してんじゃねえの? 一番煽られてんのはお前だと思うんだけどw 恥ずかしくねえのかな。。
628 名前:デフォルトの名無しさん mailto:sage [2016/06/12(日) 23:57:34.48 ID:hCgFiHr7.net] >>608 JSON.parse(JSON.stringify(obj)) が、一番手軽で早い。
629 名前:デフォルトの名無しさん mailto:sage [2016/06/13(月) 00:05:59.69 ID:6Ot446qT.net] >>611 関数コピーできない。 日付がおかしくなる。 undefinedが消える。 使えないねw
630 名前:デフォルトの名無しさん mailto:sage [2016/06/13(月) 00:15:43.00 ID:rTAmnA9g.net] >>612 値をコピーするなら十分でしょ。 関数をコピーとか必要性がわからんし、 undefinedが消えるって、元からundefinedだったんだから、消えてないでしょ。 undefinedが消えるってのは、undefinedで無くなるときだよ。 お前の頭が使えねえなぁ。
631 名前:デフォルトの名無しさん mailto:sage [2016/06/13(月) 00:15:53.62 ID:+G6yi6vX.net] let の宣言場所について質問させてください for文の中でのみ使う変数を let で宣言しようとしたら、forの中と外どちらで宣言したほうがいいんでしょうか
632 名前:デフォルトの名無しさん mailto:sage [2016/06/13(月) 00:32:34.63 ID:6Ot446qT.net] >>613 > 値をコピーするなら十分でしょ。 勝手に決めるな。 日付がおかしくなる問題は解決できてないし、 undefinedが消えるっていうのは、キーが無くなるんだよ。 まったく使えないって言ってるだろ
633 名前:デフォルトの名無しさん mailto:sage [2016/06/13(月) 00:40:16.01 ID:6Ot446qT.net] >>614 どうするのが一番可読性が良いかを考えれば自ずと答えは出る。 可読性を高くするには、頭の中で覚えておくコードを少なくするということでもある。 だからより小さい範囲、つまりfor文の中で書くのが良い。 ただし、for文の行でいろいろ書くなよ?w for (let i = 0, l = array.length; i < l; i++) for文の行でやるのは多くてもこれだけ(インデックス用の変数と終了条件)だ for (let i = 0, l = array.length, foo, bar, baz; i < l; i++) なんてfor文とは関係ない変数を宣言しないように。 言い換えると、変数に代入しないletはやってはいけないってこと。 let v = 0; // OK let v; // NG またletではなくconstを使ったほうが良いぞ constは再代入が不可能になる。つまり変数に入れた値を変えることが出来ない。 それでプログラミングが出来るのか?って思うかもしれないができるんだ。 関数型プログラミングの考え方を取り入れると殆どconstでよくなる。
634 名前:デフォルトの名無しさん mailto:sage [2016/06/13(月) 01:17:56.81 ID:+G6yi6vX.net] >>616 むむむ・・・ インデックス用の変数でも終了条件でもないです 後で見たときに何をしているか分かりやすいように、計算途中の値に名前をつけて一時変数に入れていました forの試行毎に新しい計算値が入ります
635 名前:デフォルトの名無しさん mailto:sage [2016/06/13(月) 01:49:05.39 ID:6Ot446qT.net] >>617 つまりこういうことでしょう? for(let i = 0; i < 10; i++) { let value = i * 10 console.log(value); } 当然forの中だよ。中でしか使わないんだから。 そしてこれはconstに置き換えられる。 for(let i = 0; i < 10; i++) { const value = i * 10 console.log(value); } ループ毎に新しく作られるからだ。 このconst valueをforの外に置くことは出来ない。
636 名前:デフォルトの名無しさん mailto:sage [2016/06/13(月) 02:07:05.34 ID:LLEcmK37.net] es2015で()=>をつかえばthisの挙動を変更できるのに なんでjavascriptでdeep copyができないのですか? }
637 名前:デフォルトの名無しさん mailto:sage [2016/06/13(月) 02:13:16.73 ID:+G6yi6vX.net] >>618 ありがとうございます! forの中に引っ越します varに慣れていたので繰り返し処理のなかで宣言するのに違和感があったんですよね
638 名前:デフォルトの名無しさん mailto:sage [2016/06/13(月) 02:41:54.70 ID:6Ot446qT.net] 俺はvarのときからforの中に書いていたけどね。 そこだけでしか使わないし、別に文法エラーでもなんでも無いんだから。
639 名前:デフォルトの名無しさん mailto:sage [2016/06/13(月) 06:18:58.38 ID:o3uO7eJP.net] >>615 キーが無くなるのと、キーに対応する値にundefinedが入ってるのは同値だろ。 だから、undefinedを代入してる!みたいな勘違いしたのかな?頭おかしいのかなw 日付がおかしくなるって具体的にはどう言うこと?エポックがズレるみたいな話では無くて、型が誤解されるみたいな話なら苦笑いだな。 >>616 変数に代入しないlet、では無いんじゃねえの? 仮宣言みたいなもんで。
640 名前:デフォルトの名無しさん mailto:sage [2016/06/13(月) 07:23:07.35 ID:+G6yi6vX.net] スコープ先頭での let a; がダメとなると、スコープ後半
641 名前:になってから代入する値が確定するケースではどうしてるんでしょう? コード修正時にtemporal dead zoneによるミスを起こし易いので、スコープ途中でlet宣言する場合は、明示的に新たにブロックスコープを作ったほうがいいと書いてあるのをどこかで読んだんですが、 最後まで使う変数にそれをするとスコープのためだけにネストが深くなってしまって気持ち悪いです [] [ここ壊れてます]
642 名前:デフォルトの名無しさん mailto:sage [2016/06/13(月) 07:33:47.84 ID:ZIxcBfsq.net] >>623 let a=nullで宣言しておいたら?
643 名前:デフォルトの名無しさん mailto:sage [2016/06/13(月) 09:10:57.92 ID:6Ot446qT.net] >>622 > キーが無くなるのと、キーに対応する値にundefinedが入ってるのは同値だろ。 違うぞw keysで出力されるもの見てみwww
644 名前:デフォルトの名無しさん mailto:sage [2016/06/13(月) 09:47:02.30 ID:uHiiHky6.net] 普通にブロック内に書けばいいんじゃないの? わざわざブロック使えなんていうなら、関数全体で同じことしてるvarだって先頭で全部明示しろってなると思うんだけど
645 名前:デフォルトの名無しさん mailto:sage [2016/06/13(月) 09:57:57.31 ID:CfEi32hJ.net] >>612 が指摘している問題はおそらく、こういうこと var obj = {fn: function fn () {}, date: new Date, undefined: undefined}; console.log(obj); console.log(JSON.stringify(obj)); // "{"date":"2016-06-13T00:45:07.522Z"}" console.log(JSON.parse(JSON.stringify(obj))); // {"date":"2016-06-13T00:45:07.522Z"} var array = [function fn () {}, new Date, undefined]; console.log(array); console.log(JSON.stringify(array)); // "[null,"2016-06-13T00:48:58.483Z",null]" console.log(JSON.parse(JSON.stringify(array))); // [null, "2016-06-13T00:52:23.947Z", null]
646 名前:デフォルトの名無しさん mailto:sage [2016/06/13(月) 10:10:14.80 ID:CfEi32hJ.net] JSON.stringify の一番の問題は new Object, new Array 以外の Object 型を扱えない事 new Date なら String 型に変換されるだけだから new Date し直す方法がある(ただし、参照は失われるので参照比較できなくなる)が、それ以外はどうしようもない function Person (name) { this.name = String(name); } var obj = {person: new Person('太郎')}; var obj2 = JSON.parse(JSON.stringify(obj)); console.log(obj); // {person: Person {name: "太郎"}} console.log(obj.person instanceof Person); // true console.log(JSON.stringify(obj)); // {"person":{"name":"太郎"}} console.log(obj2); // // {person: Object {name: "太郎"}} console.log(obj2.person instanceof Person); // false 今のところ、deep copy する標準関数はないので Object.assign を使って自前で deep copy 関数を作るのが妥当
647 名前:デフォルトの名無しさん mailto:sage [2016/06/13(月) 10:57:57.06 ID:ZIxcBfsq.net] >>625 あのさ、keysで定義されていてもその中身はundefinedなんだろ? なら、データとしての扱われ方として、同じだと思うんだけど。 キーがある事が大切であれば、キーを列挙したもの、というデータがあるべきだと思うんだけどどうなの? >>628 あーなるほど、そういうことか。 参照を失わせるために、そういう事するんだから、であればそのオブジェクトの.toJSONを定義してやるべきだろうね。
648 名前:デフォルトの名無しさん mailto:sage [2016/06/13(月) 11:55:17.37 ID:CfEi32hJ.net] >>629 > あのさ、keysで定義されていてもその中身はundefinedなんだろ? 横から口を出すが、hasOwnPropety の結果が異なるから同じではない 「undefinedを代入する設計が筋が悪い」といわれればその通りだが、「同じ」ではない 実際、プロパティの存在チェックなら obj.prop !== undefined よりも obj.hasOwnProperty('prop') を使うべきだ var obj = {undefined:undefined}, obj2 = {}; console.log(obj.hasOwnProperty('undefined')); // true console.log(obj2.hasOwnProperty('undefined')); // false > 参照を失わせるために、そういう事するんだから、であればそのオブジェクトの.toJSONを定義してやるべきだろうね。 プリミティブデータの倉庫として使うなら JSON.stringify で良いが、new Object, new Array 以外は参照を失わせるべきではないのでは? >>628 でいえば、new Person('太郎') を {name: '太郎'} に書き換えるメリットがない
649 名前:デフォルトの名無しさん mailto:sage [2016/06/13(月) 12:22:56.73 ID:CfEi32hJ.net] > 参照を失わせるために、そういう事するんだから、であればそのオブジェクトの.toJSONを定義してやるべきだろうね。 ひょっとして、new Person する為の拡張構文をJSON に追加してやるといいたかったのだろうか 私が deep copy するのは構造を書き換えたいが、元の構造も残したい場合だからデータそのものは元のままでいい new Person('太郎') はたった一人の太郎であり、同名の太郎を作ってもらっては困る 同名オブジェクトを作ると taro === person の比較が出来ず、person instanceof Person && taro.name === person.name のようにダックタイピング的に比較しなければならない こうなるともう new Person を定義した意味がなく、{name: '太郎'} を生成したのと大して変わらない
650 名前:デフォルトの名無しさん mailto:sage [2016/06/13(月) 13:52:54.74 ID:KnYKOJ/M.net] >>630 あー、わからんでもない。 undefinedを値として使う、ってニーズがあれは、それもまた真なんだろうな。 そうなると、assignでもなくオブジェクト毎にちゃんとcloneを実装すべきって感じか。 >>631 ちょっとまって、それはdeepcopyでは無いんじゃないの? ただの参照の張替えじゃないか。 比較するのであれば、それはequals的なメソッドを作るか、諦めて、stringifyした物同士が同じになるかを比較すべきだろ。
651 名前:デフォルトの名無しさん mailto:sage [2016/06/13(月) 17:10:28.33 ID:CILZ2bdj.net] >>632 {}, [] は deep copy する [{person: new Person('太郎')}, {person: new Person('一朗')}] 逆に new Person を deep copy したいと思う状況が分からない new Date も関数も期待通りに動かないわけで汎用性が大きく犠牲になっていると思うが…
652 名前:デフォルトの名無しさん [2016/06/13(月) 17:51:17.99 ID:u+uz+gNL.net] ボタンをクリックしたいのですがどう書けばいいかわかりません>_< ソースはこれです↓ i.imgur.com/IQLz1Kp.jpg
653 名前:デフォルトの名無しさん mailto:sage [2016/06/13(月) 17:52:47.17 ID:viWjyZUM.net] 変数宣言って同じ人でもいまいち一貫性が感じられないんだけどさ はるか遠くで使うのに頭に全部羅列してるかとおもいきや次は使う直前に書いてたり そうしなきゃいけない時ももちろんあるけど、特にそういう理由も見受けられないのもいっぱいある あまり詳しくないんだがなんか意味あるのああいうの
654 名前:デフォルトの名無しさん mailto:sage [2016/06/13(月) 18:30:36.62 ID:K+DNMsci.net] >>633 状況がわからない、とか言ってちゃぶ台返しされても。。 deepcopyの話じゃないの? それはシャローコピーそのものじゃん。。一番上っ面だけコピーするって。 Personをdeepcopyしたいって要件ならいくらでもあるじゃん。 オブジェクト変更するから、変更前の「前回オブジェクト」を持っておきたいとか、 保存ボタン押すときに、保存の必要性あるか確認したいから、オブジェクトと退避オブジェクトを比較したい、その退避オブジェクトを作るとか。
655 名前:デフォルトの名無しさん mailto:sage [2016/06/13(月) 20:36:13.44 ID:WO2lddk8.net] private変数っぽくしたいときにこうするのってどう? var Foo = function () {this.private = {};}; Foo.prototype.getBar = function () {return this.private.bar;}; Foo.prototype.setBar = function (b) {this.private.bar = b;}; var foo = new Foo(); { let _baz; foo.getBaz = function () {return _bar;}; foo.setBaz = function (b) {_bar = b;}; } 後者はインスタンスごとにgetter/setterをクロージャにしなきゃいけなくて不満。 前者はfoo.private.barで手が届いちゃうものの、意図は明確でそれで十分な気が。 private変数っ「ぽく」したいだけの場合、前者の方法はどう? みんなどう思う? あとjavascript界隈に既に、こういう「ぽく」したい場合のイディオムってある?
656 名前:デフォルトの名無しさん mailto:sage [2016/06/13(月) 21:22:27.21 ID:pgYO3XjB.net] to infinity and beyond
657 名前:デフォルトの名無しさん mailto:sage [2016/06/13(月) 22:52:41.14 ID:O5DunmIw.net] >>636 だから、{}, [] は deep copy するといっているのだが 次の構造は正しくdeep copyされる [[[1], [2]], [[3], [4]]] {a: {1: true}, b: {2: false}} 一口にdeep copyといってもいろいろ問題があるわけで「この問題にあなたはどう考えているのか?」 - 関数はdeep copy出来ない(そもそも、スコープが変わったら動かなくなる可能性がある) - customコンストラクタはdeep copy出来ない - その他、Array, Object以外のdeep copyも難しい この問題は個々がdeep copyする状況によって解決策が変わるだろうからあなたの考えがな聞きたかった
658 名前:デフォルトの名無しさん mailto:sage [2016/06/13(月) 22:57:06.96 ID:O5DunmIw.net] >>636 > オブジェクト変更するから、変更前の「前回オブジェクト」を持っておきたいとか、 なるほど、その発想はなかったな 私ならPersonかPersonを管理するクラスを作ってその中で履歴を管理しそうだ
659 名前:デフォルトの名無しさん mailto:sage [2016/06/13(月) 23:38:40.69 ID:K+DNMsci.net] >>639 だから、あのさあ。。 他の言語で考えてみれば?そんな関数は、jsで言う、そのインスタンスのプロトタイプが持つべきで、そのインスタンスが持つべきものじゃないでしょ。 二回目だけど、それはdeepcopyではない。 どうしてもしたければ、laveでもしろ。 問題が理解出来てなさすぎるんじゃないか? >>640 Personを管理するクラスを作ったなら、そいつが持つのは一体何なんだ? Personじゃないの? 「Person」と、「Personのコピー」と、「PersonとPersonのコピーを管理するクラス」って無駄すぎるだろ。 どう考えてもPersonを正しくコピー出来るべきで、Personのインスタンス同士を中身を使って比較出来るべきじゃないの?
660 名前:デフォルトの名無しさん mailto:sage [2016/06/13(月) 23:45:19.16 ID:O5DunmIw.net] >>641 JSONでもdeep copy出来てなかったと思うのだが 否定ばかりであなたの考える最善が何も出てこないな
661 名前:デフォルトの名無しさん mailto:sage [2016/06/14(火) 00:47:25.44 ID:DODkZCvX.net] JavaScriptで deep copy に最適解は存在しないので自分のポリシーに照らし合わせて一番無理のない実装を考える 例えば、次のオブジェクトの deep copy が難しい var obj = { date: new Date, regexp: /test/g, img: new Image(100, 100), window: window, document: document.implementation.createHTMLDocument('sample'), elementInIframe: document.querySelector('iframe').contentDocument.getElementById('hoge'), fn: (function (i) { return function fn () { return i++; }; }(0)) }; date, regexp は getPrototypeOf で [[Prototype]] を確認すれば実装可能 img, document, elementInIframe は cloneNode で可能 window は new Window する仕組みがないと難しい fn は Function#toString を取るだけではスコープの問題を解決不可能なので無理 この調子で一つ一つ対処していったらキリがないのでどこかで妥協するのが普通 ちなみに、deep copyでJSONを持ち出すのは妥協の結果であり、他を圧倒するほどのメリットはない(そもそも、シリアライズする意味がない) それぞれの妥協解を開示して意見を募るぐらいが妥当ではないかね
662 名前:デフォルトの名無しさん mailto:sage [2016/06/14(火) 02:01:10.19 ID:9x/TacpJ.net] >>642 最善は、オブジェクトはオブジェクトとして、関数をもたず、単なるデータの塊として、関数とは別に定義して、 stringify/parseで文字列と相互に変換できる、だよ。 ネットワークを経てrpc的なもので関数呼び合うにも便利だし。 値の持ち主が関数を持つのは好きじゃない。 >>643 圧倒するほどのメリットと言えば、それこそAPIやら、socket.ioを経ても素直に透過な所じゃないかな。
663 名前:デフォルトの名無しさん mailto:sage [2016/06/14(火) 02:03:53.91 ID:M6DJWkXG.net] >>644 日付が壊れる問題はどうすんの?
664 名前:デフォルトの名無しさん mailto:sage [2016/06/14(火) 02:06:47.27 ID:M6DJWkXG.net] あれ?もしかしてまだ日付が壊れる問題の詳細でてなかったの? 日付らしき文字があったからもう情報出てると思ってたw まあぐぐればすぐに分かるよね?って話。 JavaScriptのDeepCopyでJSON.parse/stringifyを使ってはいけない qiita.com/seihmd/items/74fa9792d05278a2e898
665 名前:デフォルトの名無しさん mailto:sage [2016/06/14(火) 02:11:20.97 ID:M6DJWkXG.net] >>644 > 最善は、オブジェクトはオブジェクトとして、関数をもたず、単なるデータの塊として、関数とは別に定義して、 > stringify/parseで文字列と相互に変換できる、だよ。 理由がないよね。 > ネットワークを経てrpc的なもので関数呼び合うにも便利だし。 今はDeep Copyの話をしている。 シリアライズの話なら別でやれ
666 名前:デフォルトの名無しさん mailto:sage [2016/06/14(火) 02:24:34.32 ID:TbEnZJwB.net] >>645-646 なんでこういう事いう奴のJSON.parse/stringifyには第二引数がないんだろう?w
667 名前:デフォルトの名無しさん mailto:sage [2016/06/14(火) 02:31:07.43 ID:M6DJWkXG.net] JSON.parse/stringifyには第二引数で頑張ればできるという誤解が 広まらないように先に言っておくと、これはNumber、String、Booleanにしか 対応できません。
668 名前:デフォルトの名無しさん mailto:sage [2016/06/14(火) 04:26:35.95 ID:TbEnZJwB.net] >>649 嘘吐くなよ試しちまったじゃねぇかw parseに渡すreviverは文字列を受け取って問題なくオブジェクトを返せるし stringifyに渡すreplacerはオブジェクトを受け取って任意の文字列に変換出来る 別にコピーのためだけに局所的に使うならreplacerは正しいjsonを吐く必要もないしな 復元のための情報山盛りにして吐き出せばいい Dateとundefinedを試してコピー出来たのは確認した Functionとクロージャはスコープの問題があるのでシャローコピーにせざるを得ないが 同一スコープ内でstringify/parseをするならreviverでオリジナルから参照をコピーするのは簡単だ ただまあここまでやるのはシリアライザとデシリアライザを自前で実装するのと変わらんからオブジェクトを直接弄った方が早いなw ところでディープコピーってjQueryからextendメソッドをパクって来るんじゃダメなんか? 循環参照で死ぬので他のライブラリのでもいいがディープコピーを実現しようとしてるライブラリは少なくないと思うんだが
669 名前:デフォルトの名無しさん mailto:sage [2016/06/14(火) 09:05:34.57 ID:BcKyLCvc.net] >>634 「js button click event」で検索!
670 名前:デフォルトの名無しさん mailto:sage [2016/06/14(火) 09:26:05.33 ID:VOPCCsis.net] >>651 「いやです!>_<」
671 名前:デフォルトの名無しさん mailto:sage [2016/06/14(火) 09:30:58.95 ID:DODkZCvX.net] >>644 > 最善は、オブジェクトはオブジェクトとして、関数をもたず、単なるデータの塊として だから、それをどうやって実装するのか、という事を聞いているのだが 「データの塊」とはJSONにあるような「プロパティの塊」の事か? function Person (name) { this.name = String(name); } var obj = {name1: new Person('Ken'), name2: {name: 'Ken'}}; console.log(JSON.stringify(obj)); // "{"name1":{"name":"Ken"},"name2":{"name":"Ken"}}" 結局、JSONの問題点は克服できてないのだが あなたの頭の中がJSONに最適化されているからJSONにそぐわないコードを意識的に追い出しているに過ぎない - 関数が消されるが、使わないので問題ない - undefined は消されるが、undefined をプロパティ値に持たないので問題ない - new Date は String 型に変換されるが、後で new Date し直すので問題ない - new Arrayを除く全てのオブジェクトは new Object に変換されるが、オブジェクトおを「プロパティの塊」としかみないので問題ない - new Date(2016, 5, 14, 9, 0, 0) と "2016-06-14T00:00:00.000Z" が同値を認識されるが、データの塊としか見ないので問題ない - new function Person (name) { this.name = name; }('Ken') と {name: 'Ken'} が同値と認識されるが、オブジェクトを「プロパティの塊」としか見ないので問題ない > 圧倒するほどのメリットと言えば、それこそAPIやら、socket.ioを経ても素直に透過な所じゃないかな。 JSONはシリアライズ不可能なオブジェクトを扱えないデメリットがある 「あなたは」シリアライズ不可能なオブジェクトを使わないからJSONが最適解だが、「私は」シリアライズ不可能なオブジェクトを扱うので最適解が「シリアライズ不可能なオブジェクトを社ローコピーする」になっている トレードオフの関係にあることは間違いない
672 名前:デフォルトの名無しさん mailto:sage [2016/06/14(火) 09:41:30.57 ID:DODkZCvX.net] >>643 の obj を JSON.stringify(obj); すると SyntaxError になるな
673 名前:デフォルトの名無しさん mailto:sage [2016/06/14(火) 10:11:55.55 ID:dYSnVaKQ.net] >>653 最適解が「シャローコピー」となる、その主語はなに? 何に関して議論してるの?
674 名前:デフォルトの名無しさん mailto:sage [2016/06/14(火) 10:29:28.31 ID:ScASA3Ww.net] 別にJSON使ってもいいと思うけど、 別の手としてはMessageChannel使えば非同期で循環参照も扱える まあJSONも少し手を加えれば循環参照を扱えるが 昔作ったこんな感じで ideone.com/Zxp7kN 昔関数も扱えないかと考えたことがある まあちょっとコピーとは感じが違うが、NodeとブラウザでWSを使いオブジェクトを共有しようと思っていた。 その時はオブジェクト情報を送るのではなく影となるProxyを使い、 操作を原本に問い合わせることでだいたい可能という判断になった。 原本に与える影響を最小限にして、あたかもでディープコピーされたかのように振る舞うのも まあ巧みなProxyとレシーバーを守るメソッド定義に気をつけていれば可能な範疇だろう
675 名前:デフォルトの名無しさん mailto:sage [2016/06/14(火) 11:59:42.69 ID:9x/TacpJ.net] >>653 頭おかしいのかな。 そうだと言ってるんだよ。 データと操作と、操作のためのオブジェクトは別個に考えるべきだと。 最適解として、シリアライズ不可能な物はシャローコピーする、は、 お前の運用に対する無難な妥協点であって、ディープコピーじゃないよ。 だからlave使えって。
676 名前:デフォルトの名無しさん mailto:sage [2016/06/14(火) 12:02:10.51 ID:9x/TacpJ.net] >>654 toJSON実装しとけ。
677 名前:デフォルトの名無しさん mailto:sage [2016/06/14(火) 12:50:00.83 ID:DODkZCvX.net] >>655 シリアライズ不可能なオブジェクト >>657 「あなたの考えるdeep copyかどうか」はどうでもいいんだがな 「あなたの考えるあなたの為のdeep copy」が私にとっては使えないし、逆もしかりというだけなんだが で、「あなたの考えるdeep copy」と「私の考えるdeep copy」の仕様が違うだけ laveとは何のことだ? >>658 toJSONとは?
678 名前:デフォルトの名無しさん mailto:sage [2016/06/14(火) 12:51:12.47 ID:DODkZCvX.net] 追記 「ディープコピーじゃないよ」といわれてもあなたの中ではそうなんだろう、としか言いようがない
679 名前:デフォルトの名無しさん mailto:sage [2016/06/14(火) 13:11:10.09 ID:dYSnVaKQ.net] >>659 > シリアライズ不可能なオブジェクト それ、そもそも問題設定がおかしくないか? もともとはオブジェクトをコピーするときの話で、その目的・実現方法による分類として シャローコピーとディープコピーがある。 シリアライズ不可能なオブジェクトでもシャローコピーで良い場合もあれば悪い場合もある。 それは目的によって異なるというだけのこと。
680 名前:デフォルトの名無しさん mailto:sage [2016/06/14(火) 13:20:14.73 ID:dYSnVaKQ.net] >>689 からも話が続いてるとして、 > 一口にdeep copyといってもいろいろ問題があるわけで「この問題にあなたはどう考えているのか?」 > この問題は個々がdeep copyする状況によって解決策が変わるだろうからあなたの考えがな聞きたかった つまり、ディープコピーしたいんだが、ある項目についてはそれが難しいという話でしょ? で、その問題解決の最適解がシャローコピー? >>636 の > オブジェクト変更するから、変更前の「前回オブジェクト」を持っておきたいとか、 > 保存ボタン押すときに、保存の必要性あるか確認したいから、オブジェクトと退避オブジェクトを比較したい、その退避オブジェクトを作るとか 目的でディープコピーをしたいのだという人と、根本的に議論がかみ合ってない。
681 名前:デフォルトの名無しさん mailto:sage [2016/06/14(火) 13:22:09.03 ID:9x/TacpJ.net] >>659 deepcopyの定義から考えような。勝手キーワードじゃないよ。 https://en.m.wikipedia.org/wiki/Object_copying#Deep_copy laveはこれ。 https://github.com/jed/lave/blob/master/README.md toJSON https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify >>660 お前の中でしか違わないよ。
682 名前:デフォルトの名無しさん mailto:sage [2016/06/14(火) 16:09:36.89 ID:9x/TacpJ.net] まぁ、===で比較したいから、インスタンスは唯一の存在であってほしいから、これは「俺のdeep copy」とか言われても困るわな。 絶対地雷踏み抜くわ。 同名のtaroオブジェクトとかで苦笑いしておくべきだったか。
683 名前:デフォルトの名無しさん mailto:sage [2016/06/14(火) 17:54:57.29 ID:DODkZCvX.net] >>663 あなたの主張はわかった
684 名前:デフォルトの名無しさん mailto:sage [2016/06/14(火) 18:07:30.48 ID:dYSnVaKQ.net] あなたの主張はわかった。 => でもそれは間違ってる => 私が間違っていた => あなたも正しいが、私の主張も正しい のどれだろうか。
685 名前:デフォルトの名無しさん mailto:sage [2016/06/14(火) 18:47:33.56 ID:9x/TacpJ.net] >>665 無知を省みて自分の至らぬ所を認め、その上で正しい知識を入れ直さないと、 技術者として致命的な場面がやってくるよ。 匿名で出来る間にやっておけばいかがかな。
686 名前:デフォルトの名無しさん mailto:sage [2016/06/14(火) 19:35:30.53 ID:TG3hSyiU.net] 一般論からは、複製するオブジェクトを利用している文脈に固有のデータは 複製されない方がよいだろう(一時的な管理データなど よって、何を複製すべきかは複製した結果を利用する文脈に依存する 元と同じ文脈で利用する場合でも、すべてのデータを複製した方が いいとは限らない( id みたいに重複すると困るものなど
687 名前:デフォルトの名無しさん mailto:sage [2016/06/14(火) 22:10:43.05 ID:VJ/4c5wE.net] ディープコピーは滅多に使わないな マップした結果が偶々ディープコピーと同じ結果になる事はあるけど 転送はJsonXmlバイナリのどれかのシリアライズだし
688 名前:デフォルトの名無しさん mailto:sage [2016/06/14(火) 23:14:40.87 ID:9x/TacpJ.net] 一般論としては、ってのがよくわからんが、そんなものをデータに持ち込むからじゃないの?
689 名前:デフォルトの名無しさん mailto:sage [2016/06/14(火) 23:28:10.46 ID:M6DJWkXG.net] ディープコピーとシリアライズは別の機能。 ディープコピーにシリアライズ用の関数を使うのは間違い。 それだけの話だろ
690 名前:デフォルトの名無しさん mailto:sage [2016/06/15(水) 00:12:34.59 ID:cIXZs8w1.net] >>671 そりゃおっしゃる通り。 一番元々の要件に対して、「手軽で早い」解決策。 そこから、変なものをdeepcopyだと寝言言う奴があらわれてこうなっただけ。 cloneとequalsを定義すべきだと思うよ。「正しい実装」では。
691 名前:デフォルトの名無しさん mailto:sage [2016/06/15(水) 00:19:47.28 ID:wTcNi+2O.net] >>672 もともとの要件? もともとの要件は、ディープコピーなんだが?w ディープコピーにシリアライズ用の関数を使うのは間違いって JSONつかってやるコードを持ち出してきた >>661 をぎったんぎったんに叩いてやれよw ↓しっかり思い出せやw 608 自分:デフォルトの名無しさん[sage] 投稿日:2016/06/12(日) 23:34:06.35 ID:xguVhByI [2/2] shallowコピーの場合はconcatでいいよね。 最初は?ってなるけど、知ってしまえば簡単に覚えられるし。 なんらかのdeepコピーの場合はライブラリ使うしか無いかな? 611 返信:デフォルトの名無しさん[sage] 投稿日:2016/06/12(日) 23:57:34.48 ID:hCgFiHr7 [7/7] >>608 JSON.parse(JSON.stringify(obj)) が、一番手軽で早い。
692 名前:デフォルトの名無しさん mailto:sage [2016/06/15(水) 01:25:24.86 ID:Iz/1ukPU.net] ディープコピーといっても様々じゃない? 構造下のオブジェクトは再作成することになるが、 関数に限ってはクロージャの面からも参照コピーした方がいい。 しかしそうなると関数オブジェクトのプロパティの取り回しが困る。 他にも非列挙やシンボルの扱いもあるし一般的に何が正しいかなんてない。
693 名前:デフォルトの名無しさん mailto:sage [2016/06/15(水) 02:03:52.98 ID:wTcNi+2O.net] >>674 例えそうだとしても日付が壊れるとか undefinedが消えるだとかいうのは問題外
694 名前:デフォルトの名無しさん mailto:sage [2016/06/15(水) 04:32:57.44 ID:Iz/1ukPU.net] そっとしてそれはギャグで言ってるのかな?
695 名前:デフォルトの名無しさん mailto:sage [2016/06/15(水) 08:08:29.44 ID:SSaOcc+i.net] >>673 ディープコピー全体に対して、すべてをシリアライズで解決するのは正しいか間違いか、 って話であって、 少なくともconcat使うような配列やらなんやらでは、シリアライズで必要十分だねと。 訳わからん前提を持ち出して、あまつさえディープコピーではないものをディープコピーと言い出した奴は気が狂ってると思うけど。 だから、何度かclone/equalsの話もしてんじゃん。 お前、自分が何故叩かれたか理解してないの? >>675 そんな形で持つからだろ。
696 名前:デフォルトの名無しさん mailto:sage [2016/06/15(水) 08:56:16.37 ID:FEVYup+X.net] javascript業界は素人ばっかりだな 参照型のディープコピーの実装は大きく分けて3つ プロパティの自動マッピング、シリアライズ、明示的なコピー関数 実行効率や制約の多さはともかくとして工数的にはシリアライズを利用する方法は有力な選択肢だよ もちろんそもそも論としてディープコピーなんかそんなに使わないってのがあるけどね
697 名前:デフォルトの名無しさん mailto:sage [2016/06/15(水) 09:05:04.59 ID:wTcNi+2O.net] > 参照型のディープコピーの実装は大きく分けて3つ > プロパティの自動マッピング、シリアライズ、明示的なコピー関数 オレオレ定義すんなよ。 見苦しいんだよ。
698 名前:デフォルトの名無しさん mailto:sage [2016/06/15(水) 09:08:01.05 ID:wTcNi+2O.net] > 工数的には どこぞのライブラリを使えばいい。
699 名前:デフォルトの名無しさん mailto:sage [2016/06/15(水) 11:46:17.65 ID:SSaOcc+i.net] >>679 これ、オレオレ定義か? CoRしたいなら1つめ、あとはごく当たり前な実装だと思うけど。
700 名前:デフォルトの名無しさん mailto:sage [2016/06/15(水) 13:00:32.42 ID:RkIC2p5j.net] >>681 一般にディープコピーするのにシリアライズは必要ないんじゃない? 無駄な処理を挟んでいるだけに見える
701 名前:デフォルトの名無しさん mailto:sage [2016/06/15(水) 13:11:48.27 ID:SSaOcc+i.net] >>682 javascriptみたいな、オブジェクトのプロパティの型がプリミティブだって保証が無い言語で、 制限事項少なめで一発でコピーするには楽だと思うけどなぁ。
702 名前:デフォルトの名無しさん mailto:sage [2016/06/15(水) 13:37:00.47 ID:RkIC2p5j.net] >>683 JavaScriptの場合、JSONが楽に実装できることは否定しないよ サーバにデータを送るならシリアライズする意味はあるけど、ディープコピーする為だけにシリアライズする必要はないってだけ シリアライズしたフォーマット(JSON)の制約を受けるわけだし、シリアライズする時点で目的と手段が一致してないように見える Object.keysやfor-ofで列挙したキーを順番にコピーしていく方がどう考えても制約が少ない
703 名前:デフォルトの名無しさん mailto:sage [2016/06/15(水) 14:34:35.52 ID:KXw+rbZw.net] なんかディープコピーはあれもこれもちゃんとして超完璧じゃないといけないみたいな人がいるけど どのライブラリとってみてもそれなりな実装しかしてないんだよね。 >>684 とか制約が少ない(キリッ って言うけどそこまでしてその制約の少なさを求める妥当性を一切言わない。
704 名前:デフォルトの名無しさん mailto:sage [2016/06/15(水) 15:00:16.56 ID:RkIC2p5j.net] >>685 「制約が少ない」は>>683 の「制限事項少なめ」に反論しただけ 上の方で「ディープコピーじゃないよ」云々の人がいたし、ディープコピーのクオリティを向上させる流れだと思ったんだけどね それなりの実装でいいなら各々が自分の好きなように実装すればいいし、他人の実装を否定する必要もないね
705 名前:デフォルトの名無しさん mailto:sage [2016/06/15(水) 15:03:11.81 ID:KXw+rbZw.net] どんだけ頑張ってもそれなりの実装にしかならないから決め手がなくて問題なんでしょ。
706 名前:デフォルトの名無しさん mailto:sage [2016/06/15(水) 15:39:36.39 ID:SSaOcc+i.net] >>684 for ofで、オブジェクトなら再帰的に、とやると、今度は参照が循環してしまった場合に備えて、メモ化する必要が出てきたりと、制限事項を制限事項とするためにとても面倒な段取りを踏まないといかんのよ。 そういう意味では、やっぱりインスタンス各自に任せるのが一番なのかもしれんよ。 cloneを必ず実装して、その中の実装でも、どんなオブジェクトも自力ではコピーせずに、cloneを呼び出すようにして、呼び出せるcloneが無い場合、死ぬかないしは参照のコピーとなる可能性があるとワーニング吐くとくとか。 .toJSON実装しときゃstringifyだと割と解決するんだけどね。
707 名前:デフォルトの名無しさん mailto:sage [2016/06/15(水) 15:42:17.53 ID:TAanDQJ+.net] >>684 ディープコピーの実装する為だけに面倒くさいだけのツマラナイコード書く必要なくね? シリアライズでサッサと済ませればいいじゃん
708 名前:デフォルトの名無しさん mailto:sage [2016/06/15(水) 16:25:26.27 ID:RkIC2p5j.net] >>688 > for ofで、オブジェクトな
709 名前:迯ト帰的に、とやると、今度は参照が循環してしまった場合に備えて、メモ化する必要が出てきたりと、制限事項を制限事項とするためにとても面倒な段取りを踏まないといかんのよ。 なるほど、参照をメモ化すれば循環参照を保持出来るね オブジェクトの配列をメモ化しておいてArray#indexOfで探せばいいので比較的簡単に実装できそう JSON.stringifyを使ったら循環参照を消してた var obj = {a:{x:1},b:obj,c:this.a}; JSON.stringify(obj); // "{"a":{"x":1}}" toJSONを使ってユニークな文字を出力しても解決できそうにないかな ユニークな文字列と同値が存在したら破綻するし、渡すオブジェクト自身に循環参照していた場合、obj.toJSONを定義した途端にJSON.stringify(obj)が文字列になってしまう この辺がJSONの限界かな [] [ここ壊れてます]
710 名前:デフォルトの名無しさん mailto:sage [2016/06/15(水) 17:24:42.09 ID:uCNYQdtw.net] 一日中こんなところでくだらん連投して何が楽しいの? 仕事でも探せば?
711 名前:デフォルトの名無しさん mailto:sage [2016/06/15(水) 17:35:48.15 ID:SSaOcc+i.net] >>690 そうそう。 すでにクローン済みとメモ化するにも、ネストしたオブジェクトの底の方で発見したオブジェクトと、浅い所で発見したオブジェクトに対して、再起だと上にメモを返してやらないと、同一参照にはならんので、割とめんどくさいと思うよ。 吹き飛ばすのが一番、かつ、そんなデータを作らないのが一番と言う所に落ち着くんじゃないかな。
712 名前:デフォルトの名無しさん mailto:sage [2016/06/15(水) 18:40:06.70 ID:kCCRbfye.net] 一番面倒なのは外部プロパティに加え内部プロパティを持ったビルトインコンストラクタのインスタンスだろう。 それを複製するにはそれぞれのクラスごとに対応しないといけないし、その最たるものである関数は対処不能。 >>690 ちょっと工夫すればJSON APIを活用しつつも循環参照も扱える >>656 みたいに(バグあり)
713 名前:デフォルトの名無しさん mailto:sage [2016/06/15(水) 23:17:16.03 ID:wTcNi+2O.net] >>689 > シリアライズでサッサと済ませればいいじゃん だから、その結果、日付型がおかしくなり関数が消え undefinedの値がキーごとなくなるのはひどすぎという話。
714 名前:デフォルトの名無しさん mailto:sage [2016/06/16(木) 07:45:47.42 ID:oMjTOMdB.net] それで十分な場面はそうでない場面よりずっと多いと思うので、 酷いか酷くないかで言うと酷くないと思う。
715 名前:デフォルトの名無しさん mailto:sage [2016/06/16(木) 09:28:45.12 ID:J7Y57E8z.net] >>694 何でもかんでも汎用化しようとするのはヴァカのやる事だし そもそも込み入った形式のオブジェクトをディープコピーする機会は少ない 適用可能な範囲で簡単に実装できるならそうしたほうがいい できない範囲にはポリモーフィックに対応すればいい
716 名前:デフォルトの名無しさん mailto:sage [2016/06/16(木) 09:30:35.19 ID:u57UUEr0.net] >>696 日付型や関数はundefinedが値として入っているのは ぜんぜん込み入った形式じゃないですよ?
717 名前:デフォルトの名無しさん mailto:sage [2016/06/16(木) 12:30:42.86 ID:TTOq9A9Q.net] >>697 設計が悪いだろ。そりゃデータとロジックが分離できてないとしか言いようが無くないか?
718 名前:デフォルトの名無しさん mailto:sage [2016/06/16(木) 15:06:47.71 ID:peThILAI.net] ディープコピー使ったコードも8割方設計がまずい気がする
719 名前:デフォルトの名無しさん [2016/06/16(木) 19:02:21.99 ID:ykd7wui8.net] iOS9のSafariでWebを見た時、リーダーが使えず 以下のURLを参考にフォントを拡大して使っています。 iOSのSafariで表示してるページの文字の大きさを自由に変更しよう! mag.torumade.nu/?p=7260 ここにあるJavaScriptの+/ーそれぞれの記述ですが、 フォントを多きく/小さくしている箇所は何処でしょうか? 今は2,3回ポチって文字を大きくしています。 出来ればポチったら一発で好みの文字の大きさにするスクリプトにしたいです。 JavaScriptで文字の大きさを買えるのに、試行するのは構いませんので 宜しくお願いします。 JavaScriptは書いたこと無いので、ここでの記述をコピペになると思います。
720 名前:デフォルトの名無しさん mailto:sage [2016/06/16(木) 21:35:26.83 ID:DYttMfqr.net] めんどくさいしこれでいいよ まともな造りしてればまあ読めるだろ 大きさ変えたいなら 20px を好きな値にしな javascript:document.body.innerHTML+='%3Cstyle%3E*%7Bfont-size:20px!important%7D%3C/style%3E';
721 名前:デフォルトの名無しさん mailto:sage [2016/06/16(木) 22:07:33.10 ID:u57UUEr0.net] >>698 > 設計が悪いだろ。そりゃデータとロジックが分離できてないとしか言いようが無くないか? 日付やundefinedはデータですよ? これをロジックと言い張る人、初めて見たわーwww
722 名前:デフォルトの名無しさん mailto:sage [2016/06/17(金) 00:16:54.38 ID:XW0r+pFS.net] >>702 関数、に言ってるんだけど。 とにかく言い負かされたくなくて必死なんだな。 あと、undefinedは正確にはデータではなく、状態。 日付は、日付。Dateクラスは、日付を扱うためのクラスであり、日付の値では無い、あくまで値は、.valueOf()で取得できる値。 ババロア君は馬鹿か無知かどちらかにしとけよ。ババロアすら詰まってないんじゃねえの?
723 名前:デフォルトの名無しさん mailto:sage [2016/06/17(金) 00:31:17.80 ID:gkJjvuAc.net] >>703 なんで3つのうち関数にしか言わないの? 残り2つは反論できませんって話かwww
724 名前:デフォルトの名無しさん mailto:sage [2016/06/17(金) 00:33:59.24 ID:gkJjvuAc.net] "abc".bold() って実行してみ? 文字列は
725 名前:クラスだって知らないのかな?www [] [ここ壊れてます]
726 名前:デフォルトの名無しさん mailto:sage [2016/06/17(金) 00:46:16.36 ID:XW0r+pFS.net] >>704 2つはその、下で反論してるけど。 文字も読めないの? >>705 .valueOf実行してみ。 薄いラッパーに包まれたただの値だとわかるよ。
727 名前:デフォルトの名無しさん mailto:sage [2016/06/17(金) 00:47:44.33 ID:XW0r+pFS.net] >>705 プロトタイプに実装されてるか、それともインスタンスに実装したのかも分けて考えような、ボンクラ。
728 名前:デフォルトの名無しさん mailto:sage [2016/06/17(金) 01:18:50.68 ID:gkJjvuAc.net] >>706 日付.valueOf実行してみ。 薄いラッパーに包まれたただの値だとわかるよ。
729 名前:デフォルトの名無しさん mailto:sage [2016/06/17(金) 01:20:43.01 ID:gkJjvuAc.net] >>707 > プロトタイプに実装されてるか String.prototype.hoge = function() {} と定義したものが "abc".hoge() で呼び出されるな。 プロトタイプに実装されてるわけか。
730 名前:デフォルトの名無しさん mailto:sage [2016/06/17(金) 01:38:53.96 ID:MlF9RYHU.net] プリミティブ型とラッパーオブジェクトは別物だから明確に区別しとかないと事故るぞ 例えば以下の様なケース if(new Boolean(false) && new Number(0)){ //どちらもオブジェクトが存在するのでtrue //よってここは常に実行される } if(false || 0){ //どちらもプリミティブでfalseとして扱われる値 //よってこちらは実行されない }
731 名前:デフォルトの名無しさん mailto:sage [2016/06/17(金) 02:49:55.65 ID:bQl7rsTf.net] >>701 ありがとうございました。
732 名前:デフォルトの名無しさん mailto:sage [2016/06/17(金) 09:31:42.05 ID:srh2csoY.net] >>710 いろんなJS質問スレ見てきてるが半年ぶりくらいに まともな初心者解説のコードが書かれたな。
733 名前:デフォルトの名無しさん mailto:sage [2016/06/17(金) 16:34:23.27 ID:6iHig3Yk.net] ゴミが持論書きなぐってるだけのクソスレに何を期待してるの?
734 名前:デフォルトの名無しさん mailto:sage [2016/06/17(金) 17:12:33.16 ID:BB7ZCZit.net] 動画サイトだけ自動でCSSを切り替えるために、動的に挿入されたiframe, video, object, embed エレメントを検出したいんですが、効率的な方法が思い浮かばず困っています iframeとvideoはdocumentでイベントリスナ(load, loadedmetadata)すれば検出できるんですが、なぜかobjectとembedちゃんからのお便りが来ません(chrome ver51) とりあえず暫定的にクリック毎にgetElementsByTagName()で代替しているんですが、 何かもっとスマートな方法ないでしょうか
735 名前:デフォルトの名無しさん mailto:sage [2016/06/17(金) 19:02:26.08 ID:Rqj2POSn.net] MutationObserverで逐一tagName調べるのが無難かな
736 名前:デフォルトの名無しさん mailto:sage [2016/06/17(金) 19:29:30.69 ID:BB7ZCZit.net] >>715 動画サイトの場合、オプション{childList true, subTree: true}でノード追加を監視すると、コンソールが常時ナイアガラの滝のように・・・
737 名前:デフォルトの名無しさん mailto:sage [2016/06/17(金) 19:41:50.28 ID:nZkVhJBc.net] >>713 その通りだね 俺様流カレーライスの作り方みたいなもんだよねw
738 名前:デフォルトの名無しさん mailto:sage [2016/06/18(土) 02:23:30.51 ID:zfC6EzMS.net] >>717 その俺様流カレーライスの作り方で、ドヤ顔でハヤシライスの作り方説明して、これが「妥当なカレーライス」とか言っちゃうような俺流deepcopyerが 主みたいなスレだからね。 まともな奴はレスしなくなるっしょw
739 名前:デフォルトの名無しさん mailto:sage [2016/06/18(土) 09:38:41.31 ID:Fpexe9SW.net] ハヤシライスというより肉じゃがだと思う
740 名前:デフォルトの名無しさん mailto:!sage [2016/06/18(土) 09:43:04.22 ID:pG9pCEms.net] "a,b,c".split(",",1)で、 ["a","b,c"]を取得したいのですが、["a","b"]になります どうすrばいいですか
741 名前:デフォルトの名無しさん mailto:sage [2016/06/18(土) 10:53:48.22 ID:49KWKmmu.net] <input id="a" type="text"> document.getElementById('a').addEventListener('input', function(e) { console.log(e); }, false); enterキーを押した時だけログがでないんですがどうしてですか?
742 名前:デフォルトの名無しさん mailto:sage [2016/06/18(土) 13:22:34.63 ID:z24FpIHh.net] function test1() { return new Promise(function(resolve, reject) { // 非同期な処理 }; } function test2() { return new Promise(function(resolve, reject) { // 非同期な処理 }; } 上記の関数を逐次実行したい場合、 Promise.resolve() .then(() => { let promise = test1(); promise.then(() => { console.log('test1 OK'); }).catch(function(e){ console.log('test 1NG'); }); return promise; }) .then(() => { let promise = test2(); promise.then(() => { console.log('test2 OK'); }).catch(function(e){ console.log('test2 NG'); }); return promise; }) }); って書くってことであっていますか?意図通り動くのですが、回りくどいし見にくい気がして
743 名前:デフォルトの名無しさん mailto:sage [2016/06/18(土) 13:28:02.54 ID:z24FpIHh.net] >>721 document.getElementById('a').addEventListener('keydown', function(e) { console.log(e); }, false); keydown にすればenterも拾える
744 名前:デフォルトの名無しさん mailto:sage [2016/06/18(土) 13:30:40.39 ID:qpxG5nAO.net] >>722 そんなわけなかろうw いまゲームしてるからちょっと待てwww
745 名前:デフォルトの名無しさん mailto:sage [2016/06/18(土) 13:32:40.70 ID:z24FpIHh.net] >>720 splitだけでその配列を取得するのは無理
746 名前:デフォルトの名無しさん mailto:sage [2016/06/18(土) 13:33:55.65 ID:z24FpIHh.net] >>724 お、ありがとうございます たのんます
747 名前:デフォルトの名無しさん mailto:sage [2016/06/18(土) 13:40:53.70 ID:lYop9Jcb.net] >>720 それ戻り値["a"]じゃね? とりあえず脳内補正で第二引数は2だとするとjavascriptのsplitだとその希望の動作にはならない 第二引数なしでsplitして[t[0],t.slice(1).join(',')]とか indexOfとsubstring組み合わせて自分で切り出すとか 他にも色々やり方はあるので要求に合った方法を考えて関数化しとけばいいよ
748 名前:デフォルトの名無しさん mailto:sage [2016/06/18(土) 13:48:58.73 ID:7whaN/tJ.net] >>720 indexOfでインデックスを取得してslice
749 名前:デフォルトの名無しさん mailto:sage [2016/06/18(土) 13:49:03.57 ID:z24FpIHh.net] 722ですがこっちですかね、余計見にくいような気もしますが(アロー演算子のせい?) test1().then(() => { return test2(); }, () => { console.log('1のNG'); }).then(() => { // 1 も 2 も成功 }, () => { console.log('2のNG'); }).catch(function(e){ console.log('ここにはいつくるんだろう?'); });
750 名前:デフォルトの名無しさん mailto:sage [2016/06/18(土) 13:52:05.82 ID:ousMayNp.net] >>722 thenの結果は自動でプロミスに変換されるから、function test2 のなかでプロミスを作らなくておk シンプルにfunction test2(previousResult) { // 非同期な処理 return resTest2} としておいて test1 .catch(resTest1 => resCatch1) .then(test2) .catch(resTest2 => resCatch2) 〜 とつなげればいい 一個目のcatchを省略した場合、 test1でエラーが起きると最後のキャッチにジャンプする
751 名前:デフォルトの名無しさん mailto:sage [2016/06/18(土) 13:54:20.50 ID:7whaN/tJ.net] >>721 可能性はいくつかある - input要素で [Enter] キーを押している - IME変換時に [Enter] キー
752 名前:デフォルトの名無しさん mailto:sage [2016/06/18(土) 13:56:06.15 ID:ousMayNp.net] >>729 thenの第二引数をcatchとして使うと、そのthenで起きたエラーは拾わなあいから、必要ないときはcatchを使ったほうがいいよ 分かり易いから
753 名前:デフォルトの名無しさん mailto:sage [2016/06/18(土) 13:56:58.21 ID:qpxG5nAO.net] >>729 ほらよ。ついでに値の渡し方も書いておいたぞ。 thenの戻り値としてPromiseではないものを返せるところにも注意な。(return textの所) あと、最初はPromise.resolveで始めなくても、いきなりtext1("sample").then でも良い。 function test1(text) { return Promise.resolve(text); //return Promise.reject(text); } function test2(text) { return Promise.resolve(text); //return Promise.reject(text); } Promise.resolve("sample") .then(text => test1(text)) .then(text => { console.log("test 1 OK:" + text); return text; }) .catch(text => { console.log("test 1 NG:" + text); return text; }) .then(text => test2(text)) .then(text => { console.log("test 2 OK:" + text); }) .catch(text => { console.log("test 2 NG:" + text); });
754 名前:デフォルトの名無しさん mailto:sage [2016/06/18(土) 14:06:33.76 ID:qpxG5nAO.net] ただ、一直線に書くとtext1とtext2の
755 名前:範囲なのかわかりづらいから >>722 を少し改良したこれでもいい気もしてきたな。 Promise.resolve("sample") .then(text => test1(text) .then(text => { console.log("test 1 OK:" + text); return text; }) .catch(text => { console.log("test 1 NG:" + text); return text; }) ) .then(text => test2(text) .then(text => { console.log("test 2 OK:" + text); }) .catch(text => { console.log("test 2 NG:" + text); }) ); [] [ここ壊れてます]
756 名前:デフォルトの名無しさん mailto:sage [2016/06/18(土) 14:09:27.96 ID:qpxG5nAO.net] なお、もちろんこう書くこともできるし function test1(text) { let p = Promise.resolve(text); //let p = Promise.reject(text); return p.then(text => { console.log("test 1 OK:" + text); return text; }) .catch(text => { console.log("test 1 NG:" + text); return text; }); } function test2(text) { let p = Promise.resolve(text); //let p = Promise.reject(text); return p.then(text => { console.log("test 2 OK:" + text); return text; }) .catch(text => { console.log("test 2 NG:" + text); return text; }); } Promise.resolve("sample") .then(text => test1(text)) .then(text => test2(text));
757 名前:デフォルトの名無しさん mailto:sage [2016/06/18(土) 14:18:57.19 ID:qpxG5nAO.net] catchをthenの機能に含めて、こういう書き方もできる。 Promise.resolve("sample") .then(text => test1(text)) .then(text => { console.log("test 1 OK:" + text); return text; }, text => { console.log("test 1 NG:" + text); return text; }) .then(text => test2(text)) .then(text => { console.log("test 2 OK:" + text); }, text => { console.log("test 2 NG:" + text); });
758 名前:デフォルトの名無しさん mailto:sage [2016/06/18(土) 14:27:30.76 ID:lYop9Jcb.net] >>729 まずtest1とtest2の中の非同期でresolve(戻り値)またはreject(エラーの原因)を呼んでる事は前提とすると function err(e){console.error(e);}; function finish(val){console.info("終了",val);}; test1().then(test2).then(finish).catch(err); thenで第二引数を渡さなければrejectもcatchに飛ぶのでこれで充分なはずだけど?
759 名前:デフォルトの名無しさん mailto:sage [2016/06/18(土) 14:30:46.97 ID:qpxG5nAO.net] .then(text => test1(text)) は .then(test1) これでよかったな。
760 名前:デフォルトの名無しさん mailto:sage [2016/06/18(土) 14:38:51.52 ID:qpxG5nAO.net] 他にもいろいろ書き換えてみたけど、これが俺の中でベストかな Promise.resolve("sample") .then(test1) .then(text => { console.log("test 1 OK:" + text); return text; }, text => { console.log("test 1 NG:" + text); return text; } ) .then(test2) .then(text => { console.log("test 2 OK:" + text); }, text => { console.log("test 2 NG:" + text); } );
761 名前:デフォルトの名無しさん mailto:sage [2016/06/18(土) 14:51:32.54 ID:z24FpIHh.net] 皆さんありがとうございます。 まだ若干こんがらがってますが、理解がだいぶマシになりました。 test2はプロミスにしなくてOKということですが、 test2を単独で使用する可能性がある場合は今のままでも大丈夫ですよね...?
762 名前:デフォルトの名無しさん mailto:sage [2016/06/18(土) 14:52:59.75 ID:z24FpIHh.net] 皆さんのを参考に function test1(text) { return new Promise(function(resolve, reject) { setTimeout(() => { reject(text); }, 1000); }); } function test2(text) { return Promise.resolve(text); } Promise.resolve("sample") test1("test") .then(text => { console.log("test 1 ok " + text); return text; }, text => { console.log("test 1 ng " + text); return text; }) .then(test2) .then(text => { console.log("test 2 ok " + text); }) .catch(text => { console.log("test 2 ng " + text); }); こういうのを書いてみたのですが、 test1でrejectしてもそのままtest2に入ってきましたが、これはこういうものでしょうか?
763 名前:デフォルトの名無しさん mailto:sage [2016/06/18(土) 14:54:43.38 ID:z24FpIHh.net] すみません、>>741 の Promise.resolve("sample")は不要ですね
764 名前:デフォルトの名無しさん mailto:sage [2016/06/18(土) 15:02:45.38 ID:qpxG5nAO.net] >>741 > test1でrejectしてもそのままtest2に入ってきましたが、これはこういうものでしょうか? あれ?そういう仕様だと思ってたよw じゃあ書き換えが必要だね。 いまゲームしてるから(ry
765 名前:デフォルトの名無しさん mailto:sage [2016/06/18(土) 15:15:57.87 ID:HfDVf1Az.net] >>741 www.html5rocks.com/ja/tutorials/es6/promises/
766 名前:デフォルトの名無しさん mailto:sage [2016/06/18(土) 15:28:56.46 ID:z24FpIHh.net] 何度もすみません。 >>743-744 ありがとうございます、そのサイト見てたはずですが見落としていました だいたい理解できました。 一連の質問は解決ということで問題ないです。 皆さんありがとうございました。
767 名前:デフォルトの名無しさん mailto:sage [2016/06/18(土) 23:31:55.96 ID:aNvZce14.net] imeオンオフに関わらずEnterキーが入力されたか確認する方法を教えてください
768 名前:デフォルトの名無しさん mailto:sage [2016/06/19(日) 01:39:49.43 ID:XpUIM/8a.net] >>746 IME周りはブラウザ毎に実装が違ったりして面倒なので全てのブラウザで動くとは保証出来んが keydownでキーコード229,0,13を拾えばだいたい拾えるんじゃないかね?
769 名前:デフォルトの名無しさん mailto:sage [2016/06/19(日) 01:54:37.93 ID:jkRTuMFS.net] おしんとひこうきぴゅんぴゅん
770 名前:デフォルトの名無しさん mailto:sage [2016/06/19(日) 15:42:45.26 ID:j/5yp6z/.net] 古いソフトのプラグイン頼まれたんだけど新しめのESで追加された機能がほとんど使えなくて難儀してる よくわからないんだけどこういうのって作者が対応すれば使えるようになるの? VSなんかだと参照突っ込むだけで機能使えるようになるけど そういうお手軽はお話じゃないんかね
771 名前:デフォルトの名無しさん mailto:sage [2016/06/19(日) 19:29:55.99 ID:fmRoj+h3.net] なんのエンジン使ってるか知らんが例えばV8でも無理でーす 奴らは自分のブラウザで動けばいいので毎日のように互換性壊しまくりのスケ〜
772 名前:デフォルトの名無しさん mailto:sage [2016/06/20(月) 18:11:29.60 ID:tys3WiX6.net] javaでいうTreeSetを使いたいのですが、ありますか?
773 名前:デフォルトの名無しさん mailto:sage [2016/06/20(月) 18:48:32.16 ID:hRWj67CX.net] (非数字)文字列ならオブジェクトのプロパティとして加えていって列挙すればソートされてる
774 名前:デフォルトの名無しさん mailto:sage [2016/06/21(火) 00:26:47.70 ID:qdV120KE.net] リンクをクリックするとJavaScriptでページ遷移するウェブページで、遷移する先のURLを事前に取得する方法はありますか? 意図としてはページに飛ばされる前にどこに飛ぶのか判断したいためです。
775 名前:デフォルトの名無しさん mailto:sage [2016/06/21(火) 00:47:36.70 ID:Zouo8B6w.net] >>753 JavaScriptでページ遷移するなら遷移先URLもJavaScriptで分かっているはずなのだが
776 名前:デフォルトの名無しさん mailto:sage [2016/06/21(火) 08:14:40.47 ID:vlWZNI1X.net] >>754 最終的な遷移先のURLを鯖側で生成してたらわからんけど
777 名前:デフォルトの名無しさん mailto:sage [2016/06/21(火) 09:06:55.19 ID:zhgdBgoI.net] >>754 説明が足らずすみません。 他者が作ったウェブサイトの環境で、ブラウザの拡張機能などで自前のJavaScriptを実行して判断したいということでした。 そういうことだと>>755 さんの言うとおり、他者のサーバで生成してるからわからないってことになりそうですね。
778 名前:デフォルトの名無しさん mailto:sage [2016/06/21(火) 11:17:04.95 ID:Zouo8B6w.net] >>756 URLの生成規則を探すとか、JavaScriptコードを読んでコードから遷移先URLを得る、とか一概には言えないと思う
779 名前:デフォルトの名無しさん mailto:sage [2016/06/21(火) 12:14:28.77 ID:VoVagir1.net] >>756 クライアントが移動先を知ってるなら取る方法はない訳ではないが 鯖側でリダイレクトさせる場合にはAjaxでリンクを踏んで戻った内容からリダイレクト先をスクレイピングするとかしないと無理だろうね つまり画面遷移をせずにリンク先を取得する事は可能、鯖と通信せずにリンク先を取得する事は不可能なケースがある クライアント上で動作している以上、クライアントが知らない情報は取得出来ない
780 名前:デフォルトの名無しさん mailto:sage [2016/06/21(火) 13:29:33.82 ID:NcocGzZA.net] いや、どこに跳ぶかを判断したいくらいなのだから、 いろんな方法・想定で常識的な範囲で全て判断できると言えるだろう
781 名前:デフォルトの名無しさん mailto:sage [2016/06/21(火) 19:00:28.03 ID:s0xSal8K.net] VBのFormsみたいなフレームワークってないすか? デザイナでペタペタ配置してロジックは画面オブジェクトにハンドラを書くだけ的なやつです
782 名前:デフォルトの名無しさん mailto:sage [2016/06/21(火) 19:02:39.48 ID:rJ2mr4JY.net] >>760 ホームページビルダで出来ない? 使ったことないから知らんが
783 名前:デフォルトの名無しさん mailto:sage [2016/06/21(火) 20:02:34.86 ID:zhgdBgoI.net] >>757 >>758 丁寧に回答していただきありがとうございます。 リンククリック時のJavaScriptからレスポンスを解析してURLを取得できるかを試してみます。
784 名前:デフォルトの名無しさん mailto:sage [2016/06/21(火) 22:07:52.39 ID:8xYufxWO.net] var fs = require('fs'); var data = "write text test!"; fs.writeFile('writetest.txt', data , function (err) { console.log(err); });
785 名前:デフォルトの名無しさん mailto:sage [2016/06/21(火) 22:09:11.15 ID:8xYufxWO.net] このくらいのプログラムをNodejsで作ってNodejs上ではもちろん動きましたが
786 名前:デフォルトの名無しさん mailto:sage [2016/06/21(火) 22:14:12.35 ID:8xYufxWO.net] webpack上では動きません。 先にNodistを入れたのですがUpdateすると依存関係のエラーが多かったので Nodejp単体で入れることにしました。 ところが npm install webpack -g とかするとなぜかNodistのフォルダに入ってしまいます。 そのせいでビルドができてないのでしょうか。 経験のある方お願いします。 スレ違いなら誘導していただけるとありがたいです。
787 名前:デフォルトの名無しさん mailto:sage [2016/06/21(火) 23:28:49.59 ID:8xYufxWO.net] 変換したものは長くてここに表示しきれないですが require is not defined と出ますね。 一応webpackは通したのですが。 ブラウザはFirefoxです。
788 名前:デフォルトの名無しさん mailto:sage [2016/06/22(水) 00:14:59.67 ID:azjhZ3WA.net] javaScriptのSetってSetとWeakSetしかないんですか? SortedSetが欲しいです
789 名前:デフォルトの名無しさん mailto:sage [2016/06/22(水) 07:19:51.98 ID:cIEa5wGZ.net] ソートっていろんな種類があるからねぇ。 自分で作ったら?
790 名前:デフォルトの名無しさん mailto:sage [2016/06/22(水) 11:58:39.11 ID:q9pILfZy.net] Nodist を アンインストールしてその後、 Node.jsを入れたのですが npm root -g としてモジュールがインストールされるディレクトリを見ると C:\Program Files (x86)\Nodist\bin\node_modules なっています。 環境変数も見ましたがNodistの残骸が残っているようにはありません。 どこにNodistの情報が残っているのでしょうか。
791 名前:デフォルトの名無しさん mailto:sage [2016/06/22(水) 14:53:18.59 ID:q9pILfZy.net] ユーザーディレクトの下にprefixの設定が残っていたようです。
792 名前:デフォルトの名無しさん mailto:sage [2016/06/22(水) 14:58:05.09 ID:q9pILfZy.net] npm config lsで調べて上記のことが分かったのですが、未だに require is not defined のエラーが解決されません。 /***/ }, /* 2 */ /***/ function(module, exports) { module.exports = require("fs"); /***/ } /******/ ]); どうもコメントばかりついていてうまく変換されたように見えません見えません。
793 名前:デフォルトの名無しさん mailto:sage [2016/06/22(水) 21:00:04.72 ID:/0SrxieV.net] 誰としゃべってんのこいつ
794 名前:デフォルトの名無しさん mailto:sage [2016/06/23(木) 00:00:47.49 ID:wmr/9KTO.net] >>769-771 恐らく環境変数node_pathがNodistのディレクトリのままだろうから書き換え あとfsのようなNode.js用モジュールはWebpackでバンドルできないはず Webpackからファイル読みたい場合はLoader使って事前に含めるしかない
795 名前:デフォルトの名無しさん mailto:sage [2016/06/23(木) 01:13:09.29 ID:Lewr0A8P.net] ありがとうございます。 Webpackからは基本できないのですね。 set コマンドでは NODE_PATH=C:\Users\habu\AppData\Roaming\npm\node_modules アンインストーラーを使っても環境変数を調べてもどうにもならなかったので アンインストーラーが削除し忘れた "C:\Users\xxxx\.npmrc" を手動で削除したらパスの通ったところにモジュールをインストールするようになりました。
796 名前:デフォルトの名無しさん mailto:sage [2016/06/23(木) 12:30:54.99 ID:TKILd+kM.net] IE11,Edge,Firefox,Chrome,safari,Operaの6つのブラウザを同時に起動してるんですが javascriptを更新したらブラウザに切り替えてページ更新するのが面倒くさいんですが ファイルが更新されたら自動的に更新する方法ありませんか?
797 名前:デフォルトの名無しさん mailto:sage [2016/06/23(木) 12:33:06.98 ID:p9xHkbsy.net] >>775 定期的にリロードするようにしたら良いんじゃないの?
798 名前:デフォルトの名無しさん mailto:sage [2016/06/23(木) 14:14:01.07 ID:1rhmo8jO.net] ファイルを監視して更新があったらブラウザのウィンドウをアクティブにしてリロード操作(F5?)のイベントを送るツールでも作ればいいんでない?
799 名前:デフォルトの名無しさん mailto:sage [2016/06/23(木) 15:28:59.42 ID:it3byhHh.net] >>775 簡単に出来ますよ
800 名前:デフォルトの名無しさん mailto:sage [2016/06/24(金) 11:16:15.69 ID:M5Y9qYOR.net] >>773 いまいち例が無くてどのローダーを使えばテキストファイル出力ができるのか 分からないです。 ホームページで確認してraw-loaderがUTF-8に出力するみたいなことを書かれていた GreasemonkeyからinnerTextをテキストファイルに出力したいだけなのですが かなり敷居が高いようですね。 色々なサイトで実験されている
801 名前:デフォルトの名無しさん mailto:sage [2016/06/24(金) 11:22:06.51 ID:M5Y9qYOR.net] みたいなのですが、セキュリティがらみなので改善(改悪?)されてできなくなったところが多いです。 raw-loaderの使い方の例がもう少しサンプルで出されているサイトがあればいいのですが。 あと、少し2ちゃん専用のソフトの使い方になれてなくて間違えて文章を途切れ途切れに 送ってしまったことをお詫びします。
802 名前:デフォルトの名無しさん mailto:sage [2016/06/24(金) 12:30:59.24 ID:V/itJnf4.net] Loaderは読み込んでバンドルするだけで書き込みはできないよ ブラウザから書き込みしたいなら拡張機能のAPIを探すしかない
803 名前:デフォルトの名無しさん mailto:sage [2016/06/24(金) 14:35:52.18 ID:M5Y9qYOR.net] >>781 そうなんですか。どこを探しても無理なわけですね。 拡張機能と言うのはブラウザの拡張機能ですか? 煮詰まったので今のところはローカルにapacheでサーバーを立てて PHPでアクセスすることを考えています。 それでだめなら拡張機能のAPIを探すことを考えています。
804 名前:デフォルトの名無しさん [2016/06/24(金) 23:07:00.20 ID:qTbX1cTa.net] プログラミングに詳しい方々がいると聞いて質問しにきました。 初心者なので説明力、知識が乏しいですが申し訳ありません。 私は、不特定多数の人が画像をサイト上のみで「読み込み→編集→ダウンロード」を全てできる画像編集サイトを作ろうと思っていて、 色々調べている内にImageMagickと言うプログラムにたどり着きました。 ですが使い方などが全くわからず、困っております。現在xサーバーを利用していてホームページを取得しています。 xサーバーは公式で既にImageMagickがインストールされているということです。(この事についてもいまいち分かりません) どなたか分かりやすく画像編集サイトの作り方を教えていただけませんでしょうか。 OSはwin7 64bitです。 本当に困っています。
805 名前:デフォルトの名無しさん [2016/06/24(金) 23:12:05.32 ID:Fo67yJqk.net] >>783 PHPで作った方がいいと思うよ PHP板行ったら? echo.2ch.net/test/read.cgi/tech/1466683550/
806 名前:デフォルトの名無しさん [2016/06/24(金) 23:14:07.58 ID:qTbX1cTa.net] >>784 PHP板にてここで聞いた方がいいと言われ、質問いましました
807 名前:デフォルトの名無しさん [2016/06/24(金) 23:14:44.48 ID:Fo67yJqk.net] >>785 jsじゃ無理だよ PHPじゃないと出来ない
808 名前:デフォルトの名無しさん [2016/06/24(金) 23:16:31.66 ID:Fo67yJqk.net] 一番簡単に作れるのは、Ruby Rubyスレ行ってみたらどうだ?
809 名前:デフォルトの名無しさん mailto:sage [2016/06/24(金) 23:28:09.79 ID:V/itJnf4.net] >>782 その通りブラウザ拡張機能のAPI でもローカルにHttpd立てていいなら>>763 の弄って使えばいいんじゃない どうせグリモンで動かすUserScriptからHTTPでやり取りするんだろうし >>783 まず画像を読み込んで編集して保存するのはJSで出来る 画像を不特定多数でどう扱うのかによってはサーバー側の実装も必要だけど これもNode.jsを使えばJSで作れる、因みにこっちはPHPでも作れる ただ作り方となると手順が膨大だから一々説明してられん 「JavaScript ファイル読み込み」など一つずつググって勉強するしかない
810 名前:デフォルトの名無しさん mailto:sage [2016/06/25(土) 11:12:38.28 ID:FcXCwkAU.net] textareaで入力した位置を知る方法ありませんか?
811 名前:デフォルトの名無しさん mailto:sage [2016/06/25(土) 11:24:52.49 ID:YFtEcFF6.net] >>789 コピペなんかも含めると、入力される前の文字列をバッファしておいて、今回文字列と一番最初に差異が発生する文字まで素直に比較するほうが早いんじゃないかな。
812 名前:デフォルトの名無しさん mailto:sage [2016/06/25(土) 18:02:11.94 ID:4KOaD2nt.net] >>789 selection とか range で調べるよろし >>790 aaa => aaaa どこだと思う?
813 名前:デフォルトの名無しさん mailto:sage [2016/06/26(日) 00:07:56.02 ID:nF43cUdI.net] いつもは、ネットと、日経ソフトウェアを毎月買ってるから、 日経ソフトウェアのJavascript特集しか読まないんだけど、 久しぶりに書店でJavascriptの本あさってたら、 JAVAの本と混同してJavascripの本が並べてあった。 何十人かに試したことあるが、プログラム興味ない人がらみたら、 JAVA=Javascripの省略して言うとJAVA Javascrip=JAVAの正式名称 って認識しかしてないからな。
814 名前:デフォルトの名無しさん mailto:sage [2016/06/26(日) 05:07:36.84 ID:G2D2TVQW.net] コードの問題。 例えば旅行本だと国別に区切られてるが、プログラミング言語にはそれがない。
815 名前:デフォルトの名無しさん mailto:sage [2016/06/26(日) 05:45:31.43 ID:FIFPZYCa.net] >>792 自分の住んでる地元の一番大きい本屋もまんまこれだった CとかVBAとか有名な言語は分類札付けて、カテゴリ分かれてるのに JavaScriptだけJavaの所に全部突っ込まれてる
816 名前:デフォルトの名無しさん mailto:sage [2016/06/26(日) 08:11:55.58 ID:lQezokMe.net] JQueryを使ってテキストフォームを扱っていますが、項目数が増えさらにページ遷移が増えました。 JQueryよりもそういうことを扱うことに長けたフレームワークみたいなのがあればそちらに移りたいのですが何かそういったことを補助してくれるようなものはありませんか?
817 名前:デフォルトの名無しさん mailto:sage [2016/06/26(日) 10:40:37.56 ID:TQCRDnYp.net] >>795 具体的に何がしたいのかがわかならい エスパーするとJQueryの使い方がわからないってことかな?
818 名前:デフォルトの名無しさん mailto:sage [2016/06/26(日) 11:55:24.56 ID:9G4pt3CC.net] DOM書き換えでのページ管理に限界を感じてるからjQuery捨てたいみたいな感じ? 学習コストかかるだろうけど、流行ってるReactとか
819 名前:デフォルトの名無しさん mailto:sage [2016/06/26(日) 12:24:25.89 ID:rwwPSVEU.net] どうも使い方が分かっていない人が多いよね センスがないとでも言うのだろうかw
820 名前:デフォルトの名無しさん mailto:sage [2016/06/26(日) 12:39:49.80 ID:AVATszy2.net] ライブラリ質問はスレ違いといいたいところだが、テンプレが改変されてたんだった Web制作板の荒れようをみるにプログラム板にもライブラリスレを持ってくるべきなんだろうが、統合する流れでいいのかね あるいは、べつにスレを立てるべきか
821 名前:デフォルトの名無しさん mailto:sage [2016/06/26(日) 12:51:24.25 ID:mFfhShD5.net] vol.120でまともなテンプレで建て直していいんじゃね あっちのライブラリスレもこの板に移す話はあったんだけどよくわからんな
822 名前:デフォルトの名無しさん mailto:sage [2016/06/26(日) 14:02:23.24 ID:8VkrGxxn.net] reactの質問はどこでしたらいいですか?
823 名前:デフォルトの名無しさん mailto:sage [2016/06/26(日) 15:09:43.72 ID:Tksz8qNK.net] >>801 Yahoo知恵袋がおすすめ
824 名前:デフォルトの名無しさん [2016/06/26(日) 15:12:21.33 ID:GJBR8D9H.net] >>802 javaの道(掲示板)がおすすめ
825 名前:デフォルトの名無しさん mailto:sage [2016/06/26(日) 20:07:37.03 ID:YbtLHjt0.net] <img src=x onerror='alert(1)'></img> みたいにHTMLエンティティがエスケープされてるテキストノードをtextContentで参照するとエスケープが解除されるので、innerHTMLに代入した瞬間にalertが鳴るよって記事をどっかで見たんだけど、 誰か見覚えあってURLわかる人おらんかのう
826 名前:デフォルトの名無しさん mailto:sage [2016/06/26(日) 20:28:22.69 ID:nF43cUdI.net] 自分の作ってるwebアプリでエラー原因調べて、質問するって 難しいんだよな 問題を書き出すって骨の折れる作業だし
827 名前:デフォルトの名無しさん mailto:sage [2016/06/26(日) 22:32:25.10 ID:D+buTpss.net] >>800 立て直すとスレが乱立するからこのスレに新しいテンプレを貼り付ける程度で十分かと 問題はライブラリスレもここに統合するか、別スレに独立させるか
828 名前:デフォルトの名無しさん mailto:sage [2016/06/26(日) 22:58:59.69 ID:oKpI3hc9.net] 重複が嫌なら一個飛ばして121にするとか 本来荒らしの立てたスレを再利用するってのはよくないし、まあ今はずるずる来てるけど
829 名前:デフォルトの名無しさん mailto:sage [2016/06/26(日) 23:29:46.97 ID:S5Kwqidr.net] むやみに別スレ建てんなよWeb製作版の二の舞いになる スルーすればいいだけ
830 名前:デフォルトの名無しさん mailto:sage [2016/06/26(日) 23:30:12.91 ID:yAtATLvz.net] >>805 ブレークポイントを適度に付けて、デバッグする。 変数の内容も見る。 エラーメッセージで検索する C/C++以外の言語は、シャローコピーするから、破壊的変更をするときは要注意!
831 名前:デフォルトの名無しさん mailto:sage [2016/06/27(月) 00:44:37.06 ID:Azx2VHQP.net] JSはDOM絡みのテスト書くのが特にしんどい 書いてもElectronで動いたのがwebkitじゃダメでしたとかままあるし >>806 復活したWeb板のライブラリスレもぼちぼち伸びてきてるし また潰されるかあるいは埋まりそうになるまで保留でいいんじゃない
832 名前:デフォルトの名無しさん mailto:sage [2016/06/27(月) 00:51:43.37 ID:Qt/WCn3i.net] JSにかぎらずUIのテストっていうのは難しいんだよ。
833 名前:デフォルトの名無しさん mailto:sage [2016/06/27(月) 04:38:11.54 ID:Hl6kI6LE.net] 別にJSじゃなくてもDOMのテストは難しいしね JSにはDOMしかないわけでもないし
834 名前:534 mailto:sage [2016/06/27(月) 12:24:43.46 ID:oBcOOaIt.net] >>534 なんですが、プログラム板なのにコードが潰れることにもやっとしたので、スレにjs-beautifyとhighlight.jsを掛けるchrome拡張を作ってみました 試作機1号ができたのでさっそく試してみたんですが・・・ 2chのコメのなかにコーディングのカラースキームが混在してる違和感が凄いww i.imgur.com/a1EvCdi.png i.imgur.com/cGSR5cj.png i.imgur.com/JVt9adl.png i.imgur.com/rPbmqg9.png
835 名前:デフォルトの名無しさん mailto:sage [2016/06/27(月) 19:39:44.45 ID:jJ8qgrxg.net] <a href="〜hoge.pdf">PDF</a> 上記のようにHTMLでPDFのリンクを作成しPDFをダウンロードさせたいのですが、IEのみ同一タブでPDFが表示されてしまいダウンロードできません。 IEの設定を変更することなく、HTMLとjavascriptだけでIEでもダウンロードできるようにしたいのですが、何か良い方法はありませんでしょうか。 ちなみに、以下の4ブラウザ全てでダウンロード可能にしたいです。 ・IE11 ・chrome ・firefox ・safari(mac) よろしくお願いします。
836 名前:デフォルトの名無しさん mailto:sage [2016/06/27(月) 20:20:31.97 ID:Hl6kI6LE.net] ChromeとFirefoxだけで我慢しんさい
837 名前:デフォルトの名無しさん mailto:sage [2016/06/27(月) 20:45:40.58 ID:Qt/WCn3i.net] >>814 普通はHTTPヘッダで制御する。 つまりウェブサーバーかサーバー側のアプリ あんたがクライアントアプリしか書けないとか サーバーいじる能力がないなら諦めなさい
838 名前:デフォルトの名無しさん mailto:sage [2016/06/27(月) 20:59:41.80 ID:zoQ6BtW7.net] >>815 >>816 やはり無理なんですね…… ありがとうございます!
839 名前:デフォルトの名無しさん mailto:sage [2016/06/27(月) 21:24:55.66 ID:zcQLvEgn.net] var xhr = new XMLHttpRequest(); xhr.open("GET", "hoge.pdf"); xhr.responseType = "blob"; xhr.addEventListener("load", function(){ var blob = new Blob([xhr.response]); window.navigator.msSaveBlob(blob, "hoge.pdf"); }); xhr.send();
840 名前:デフォルトの名無しさん mailto:sage [2016/06/28(火) 15:38:36.90 ID:+n63MTqJ.net] 「できる」と「やっていい」は別だよな 最低限のモラルも守れないようじゃねぇ まあdownload属性のエミュなら良いと思うよ
841 名前:デフォルトの名無しさん mailto:sage [2016/06/28(火) 16:46:50.81 ID:YVMoIJVb.net] jsdo.it/ksk1015/7lvD のページのサンプロコード、20行目で見かけたのですが、 この場合のvideoの前後にあるスラッシュはどういう意味があるのでしょうか? if( !/video/.test(file.type) ){ !video.test(file.type) ではダメなのでしょうか
842 名前:デフォルトの名無しさん mailto:sage [2016/06/28(火) 17:09:49.76 ID:+pusRZvt.net] /で囲まれてるのは正規表現 この場合file.typeに"video"って文字列が含まれてるかみてる
843 名前:デフォルトの名無しさん mailto:sage [2016/06/28(火) 18:04:00.99 ID:YVMoIJVb.net] >>821 なるほど、ありがとうございます
844 名前:デフォルトの名無しさん mailto:sage [2016/06/29(水) 11:29:03.86 ID:VdhPxYFi.net] >>819 わりと素で聞きたいんだけど、このケースのどの部分がモラルに反してるの? 他のブラウザがdownload属性でできることを、IEができないから代替策探してるだけだよね
845 名前:デフォルトの名無しさん mailto:sage [2016/06/29(水) 16:17:09.72 ID:L39nkKa/.net] function fileListDirectory(files) { var ファイル数 = files.length; var ファイル名 = new Array(); var パス = new Array(); for (i=0; i<ファイル数; i++) { ファイル名[i] = files[i].name; パス[i] = files[i].webkitRelativePath; // 行A } } これでフォルダの全てのファイルのパスがわかるんだが これを絶対パスにするにはどうすればいいんだ?
846 名前:デフォルトの名無しさん [2016/06/29(水) 21:48:19.77 ID:ViUTH2Wh.net] JQueryの$って関数ですか?連想配列ですか? $(hoge)が出来るというのは関数だと思うんですが、$.foo(bar)が出来るというのは連想配列だと思います 一体何なんですか?あのキモイ未知の変数は
847 名前:デフォルトの名無しさん mailto:sage [2016/06/29(水) 22:21:45.97 ID:uR/sla0B.net] 関数もオブジェクトだからな
848 名前:デフォルトの名無しさん [2016/06/29(水) 22:29:13.21 ID:ViUTH2Wh.net] つまり hoge=function(){ //処理 } hoge.a=function(){ //処理 } hoge.b=function(){ //処理 } って事ですか?
849 名前:デフォルトの名無しさん mailto:sage [2016/06/29(水) 22:45:16.05 ID:11RiuwSN.net] >>825 jQueryは関係ありません。 あなたはJavaScript自体がわかっていません。 そしてオブジェクト指向もわかっていません。 「オブジェクト指向言語であるJavaScriptは、関数もオブジェクトです。」 この一言で理解できますかね?w function foo(a, b, c) {} という関数を作ったら関数もオブジェクトなんだから console.log(foo.name) とか ※nameは非標準だけれどだいたい使える console.log(foo.length) とか ※関数の引数の数 foo.toString() とか ※ソースコードを返す。 標準でできるんですよ。
850 名前:デフォルトの名無しさん mailto:sage [2016/06/29(水) 22:48:52.04 ID:11RiuwSN.net] 真のオブジェクト指向言語は何でもオブジェクトであるって 考え方ができるかどうかですねw JavaScriptではオブジェクトではないものもあるけれど、 どちらかと言えばオブジェクトであるものが多い方 真のオブジェクト指向に近づくほど なんでもオブジェクトになる。
851 名前:デフォルトの名無しさん [2016/06/29(水) 22:52:05.42 ID:0EN53mtK.net] >>828 そんな事出来るのかよ 凄い
852 名前:デフォルトの名無しさん mailto:sage [2016/06/30(木) 00:37:24.48 ID:s9p3Net1.net] だからnullもオブジェクトにしたまま放置なんですね(白目)
853 名前:デフォルトの名無しさん mailto:sage [2016/06/30(木) 01:51:26.57 ID:RtLNL8Qe.net] Functionオブジェクトも、大本のObjectオブジェクトから派生している。 Objectは、処理(メソッド)・状態(プロパティ)を持つ 関数型言語ではオブジェクトは、1級市民オブジェクト(First Class Object)と言って、 持ち運べたり、関数の引数に渡したり、関数から戻り値として返したりできる つまり、Functionはオブジェクトだから、持ち運んで、後で呼べる(遅延・コールバック) クラス・無名クラス・クロージャ・ラムダも同じで、オブジェクト。 primitive 以外は、すべてオブジェクト
854 名前:デフォルトの名無しさん mailto:sage [2016/06/30(木) 11:12:43.81 ID:bL1n9aIG.net] 一級市民オブジェクトw
855 名前:デフォルトの名無しさん mailto:sage [2016/06/30(木) 12:54:42.82 ID:EibH/T4h.net] JapScript
856 名前:デフォルトの名無しさん mailto:sage [2016/06/30(木) 12:55:18.07 ID:s9p3Net1.net] 一級市民オブジェクトとか和訳した人センスあるわw 嫌いじゃない で
857 名前:燔a訳で覚えるとググるとき大変じゃね [] [ここ壊れてます]
858 名前:デフォルトの名無しさん mailto:sage [2016/06/30(木) 13:18:07.02 ID:bL1n9aIG.net] >>835 ググった結果、驚愕の真実が・・・ ファーストクラスオブジェクト: 約 1,520 件 第一級オブジェクト: 約 1,400 件 一級市民オブジェクト: 約 49 件 少なすぎじゃね? Googleぶっこわれてんのか?
859 名前:デフォルトの名無しさん mailto:sage [2016/06/30(木) 13:41:53.09 ID:9tXhK5Ll.net] First Classで市民が出てくる当たり英語というか教養がないな
860 名前:デフォルトの名無しさん mailto:sage [2016/06/30(木) 14:17:10.15 ID:bL1n9aIG.net] >>837 逆かもよ https://ja.wikipedia.org/wiki/%E7%AC%AC%E4%B8%80%E7%B4%9A%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88 > 第一級オブジェクト > > 第一級オブジェクト(ファーストクラスオブジェクト、first-class object)は、(略) > (略) > この言葉は1960年代にChristopher Stracheyによって「functions as first-class citizens」という文脈で初めて使われた。
861 名前:デフォルトの名無しさん mailto:sage [2016/06/30(木) 14:32:43.41 ID:WQ4EC21M.net] 上級市民オブジェクトにしろ
862 名前:デフォルトの名無しさん mailto:sage [2016/06/30(木) 19:06:07.78 ID:nv8TDX79.net] > 関数型言語ではオブジェクトは、1級市民オブジェクト(First Class Object)と言って、 この訳がおかしい、といわれてるだけ 一級市民を名乗るなら "citizens" を入れればいい - 一級市民のような関数(functions as first-class citizens) - 第一級オブジェクト(First Class Object)
863 名前:デフォルトの名無しさん mailto:sage [2016/06/30(木) 22:26:27.40 ID:s/7LoWQJ.net] そもそも、「functions as first-class citizens」の訳は「第一級市民関数」ではないよな 「第一級市民関数」と呼ぶなら "functions of first-class citizens" と書いてもらわんと ただし、as から of になると「一級市民に属する関数」の意味になって本質と全く異なる表現になる 何をもって「一級市民」が出てきたのかをよく考えるといい
864 名前:デフォルトの名無しさん mailto:sage [2016/07/01(金) 10:57:22.28 ID:2ngPRN1W.net] ofはないわー
865 名前:デフォルトの名無しさん mailto:sage [2016/07/01(金) 13:26:49.33 ID:swuu46hd.net] >>842 どう書くのが正しい?
866 名前:デフォルトの名無しさん mailto:sage [2016/07/01(金) 14:26:32.24 ID:GE+MZRxs.net] 普通に、asは、としての、でしょ。
867 名前:デフォルトの名無しさん mailto:sage [2016/07/02(土) 18:28:16.22 ID:m2NwGvL3.net] は?「としての」? 「としての」なんて日常生活で殆ど使わないし 意味もぱっとしないだろ 「としての」「としての」「としての」 用意にゲシュタルト崩壊するだろ?
868 名前:デフォルトの名無しさん mailto:sage [2016/07/02(土) 18:47:47.96 ID:hHp4sSVy.net] 「一級市民としての関数」?
869 名前:デフォルトの名無しさん mailto:sage [2016/07/02(土) 20:14:00.55 ID:AmR+G6iW.net] 普通に使うだろ。 プロジェクトの担当としての回答はこうですが、理想論としては確かに認めます、とか。 低い次元の日常生活してるな。 そもそも、イギリスでのfirst-class citizenとsecond-class citizenの違い知ってりゃ理解出来るだろうけど、そういう教養も無いんだろうし。 言っとくと、British citizen otherwise than by descentと、British citizen by descentだからな。 「誰かから受け継いだものではない『英国市民』」と「誰かから受け継いだ(にすぎない)『英国市民』」の違い。 だから、何かから作られたものではない関数含めるオブジェクトを一級市民になぞらえ、そうではないものを二級市民になぞらえてる。 どっかのスレで論破されて発狂してた奴そっくりだな。
870 名前:デフォルトの名無しさん mailto:sage [2016/07/02(土) 20:18:56.43 ID:AmR+G6iW.net] あ、これ書いたらわかりやすいかな。 ・イギリスで産まれれば一級市民 ・親がイギリス人(一級市民)でも、イギリス
871 名前:相Oで産まれれば二級市民、 ・親がイギリス人でも、二級市民であれば、イギリス国外で産んだ場合国籍を与えることは出来ない [] [ここ壊れてます]
872 名前:デフォルトの名無しさん mailto:sage [2016/07/02(土) 20:31:38.20 ID:/wal4gbU.net] 一級市民とはニートじゃなくて ちゃんと税金を払ってる人のことですよ
873 名前:デフォルトの名無しさん mailto:sage [2016/07/03(日) 04:16:19.31 ID:+KSQOYrq.net] >>847 それは普通では無いな。 意地を張らずに自分の非を認めろよ。 低い次元の日常生活してる奴には無理かもな。
874 名前:デフォルトの名無しさん mailto:sage [2016/07/03(日) 10:44:20.95 ID:xMv6BMC9.net] マスタースレーブとかひどい言い方だよな。 お前らは所詮使い捨ての奴隷よ。
875 名前:デフォルトの名無しさん mailto:sage [2016/07/03(日) 12:12:49.74 ID:btJwgGWt.net] >>850 普通でしょw とりあえず言いかえせば良いと思ってるんだろうけど。
876 名前:デフォルトの名無しさん mailto:sage [2016/07/03(日) 13:30:07.63 ID:oNgHKg4C.net] 今まで、スラッシュ/ってコントロール文字だから、 var moji="\/"; って具合にエスケープするって認識でいたのですが、 good parts P11に 「/とコントロール文字を除くすべてのユニコード文字」 って書いてあるのですが、 スラッシュ/ってコントロール文字ではないのですか?
877 名前:デフォルトの名無しさん mailto:sage [2016/07/03(日) 14:14:39.57 ID:A4NkGxi2.net] コントロール文字がなんなのかも知らないのかw
878 名前:デフォルトの名無しさん mailto:sage [2016/07/03(日) 14:16:55.67 ID:A4NkGxi2.net] 表示したら音がなる文字があるっていったら へぇーって言うんだろうなw
879 名前:デフォルトの名無しさん mailto:sage [2016/07/03(日) 14:43:21.41 ID:JMRewaFc.net] さすがに若い奴がBEL(0x7) 知らんかったとしても仕方なかろうと思うがなぁ
880 名前:デフォルトの名無しさん mailto:sage [2016/07/03(日) 16:11:02.52 ID:YeoQWaDz.net] ゆとりはどうしてググらないのか
881 名前:デフォルトの名無しさん mailto:sage [2016/07/03(日) 16:11:29.21 ID:qk7lGSjH.net] >>857 ジジイの方がググらねーけどな
882 名前:デフォルトの名無しさん mailto:sage [2016/07/03(日) 16:18:36.85 ID:YeoQWaDz.net] はえーよゆとり、びびるわ もしかしてBotでも仕掛けてある?
883 名前:デフォルトの名無しさん mailto:sage [2016/07/03(日) 16:41:53.92 ID:5c1HtZx3.net] 反応が気になって常にリロードしてんのかな SNSのやりすぎ
884 名前:デフォルトの名無しさん mailto:sage [2016/07/03(日) 16:53:17.69 ID:YeoQWaDz.net] しかしググれば分かることを質問されてもな。 もしそれで俺の時まで回答を待っていたのなら、完全に病気だな。
885 名前:デフォルトの名無しさん mailto:sage [2016/07/03(日) 19:28:43.02 ID:+KSQOYrq.net] >>852 普通じゃないでしょw とりあえず言いはれば良いと思ってるんだろうけど。
886 名前:デフォルトの名無しさん mailto:sage [2016/07/03(日) 21:31:43.21 ID:EZH9raf4.net] 立場を明示せず発言するのは危険だぞ?
887 名前:デフォルトの名無しさん mailto:sage [2016/07/03(日) 21:51:09.80 ID:A4NkGxi2.net] >>863 じゃあお前から立場を明示してくれ
888 名前:デフォルトの名無しさん mailto:sage [2016/07/03(日) 22:03:40.88 ID:EZH9raf4.net] >>864 俺個人としては痛い子がこれ以上恥を上塗りするのがかわいそうだと思ったから発言した 一人の社会人としては、個人の発言を会社の見解と取られるリスクは避けたいので個人的な発言には必ず私個人としてはと前置きするのが普通だと思う これでいいか?
889 名前:デフォルトの名無しさん mailto:sage [2016/07/03(日) 22:10:11.68 ID:A4NkGxi2.net] >>865 お前なんか可哀想だな。 休日の書き込みなのに、 会社の顔色をうかがってるんだね。 会社第一の人生って感じがするよ。 会社が悪く思われるからこんなことはできん!ってな。
890 名前:デフォルトの名無しさん mailto:sage [2016/07/03(日) 22:21:47.90 ID:EZH9raf4.net] >>866 そうか、まあどちらが可哀想かは見解の相違だな ところで何故そんなにイラついてるんだ? 腹でも減ってるのか?ちゃんと食わんと体に悪いぞ?
891 名前:デフォルトの名無しさん mailto:sage [2016/07/03(日) 22:23:43.44 ID:A4NkGxi2.net] >>867 いらついてるのお前じゃね?w なんで俺がいらついていることにしたいか知らんけどw
892 名前:デフォルトの名無しさん mailto:sage [2016/07/03(日) 22:26:30.67 ID:EZH9raf4.net] >>868 そうか、まあイラついてないならいいんだ 話題をすり替えてまで攻撃的な言葉を向けて来たから 何かイラついてるのかと思ったんだ、まあ気にするな
893 名前:デフォルトの名無しさん mailto:sage [2016/07/03(日) 22:28:43.96 ID:A4NkGxi2.net] 話題をすり替えてっているなら、お前が話題をすり替えてるじゃんw
894 名前:デフォルトの名無しさん mailto:sage [2016/07/03(日) 22:30:05.90 ID:A4NkGxi2.net] あと気づいてないようだが、俺は上のだれとも違うよw お前は一体誰と戦ってるんだ?w 俺は遊べそうと思ったから遊んでるだけだw
895 名前:デフォルトの名無しさん mailto:sage [2016/07/03(日) 22:37:55.93 ID:EZH9raf4.net] コントロール文字知らない子を馬鹿にしてた痛い奴だろ? まあ俺は相手は誰でもいいんよ、反応のいい馬鹿をからかうのが楽しいだけだから では寝る、スレ汚し失礼した
896 名前:デフォルトの名無しさん mailto:sage [2016/07/03(日) 22:51:46.92 ID:YeoQWaDz.net] コントロール文字を知らないゆとりも、ググれないゆとりも、馬鹿にされて然るべき。 おかしな擁護をするからゆとりはゆとりのまま。それはゆとりのためにもよくない。
897 名前:デフォルトの名無しさん mailto:sage [2016/07/04(月) 04:44:18.07 ID:gPjkHcng.net] コントロール文字を知らない若人は雇うかもしれないが 人を馬鹿にする奴は雇わない
898 名前:デフォルトの名無しさん mailto:sage [2016/07/04(月) 07:56:58.66 ID:Nc/f1szG.net] >>874 確かに!
899 名前:デフォルトの名無しさん mailto:sage [2016/07/04(月) 21:07:56.31 ID:xBEl8jJ1.net] と思う意識高い系ゆとりであった いよいよここもゆとり汚染が酷いな そうやって自分の周りを自分より馬鹿で固めて安心しているうちはゆとりのままだね じきに会社が潰れるからそれでいいと思うけど 資本主義はゆとりを特別扱いしてはくれない 君らがコントロール文字すら知らない中年になるのは数年後さ 若いという言い訳が通用しなくなった時にどうなるか見物だね
900 名前:デフォルトの名無しさん mailto:sage [2016/07/04(月) 22:32:04.97 ID:vRFMByUM.net] >>876 コントロール文字を知らない中年と 他人を馬鹿にする事しかしない中年 確実に後者の方が害悪だな
901 名前:デフォルトの名無しさん mailto:sage [2016/07/04(月) 22:52:08.82 ID:xBEl8jJ1.net] それが正しいかどうかは社会が決めてくれる。 君らが正しければ再就職先はあるだろうし、間違っていれば無いだけの話だ。 ここで言い争う意味はない。楽しみに待てばいい。
902 名前:デフォルトの名無しさん mailto:sage [2016/07/04(月) 22:55:17.69 ID:0oVcG5wM.net] 今まで、スラッシュ/ってコントロール文字だから、 var moji="\/"; って具合にエスケープするって認識でいたのですが?
903 名前:デフォルトの名無しさん mailto:sage [2016/07/04(月) 23:07:56.13 ID:xBEl8jJ1.net] ID:EZH9raf4 >>874 >>875 >>877 俺らの対応に文句を言っているお前らが答えろよ。 当然知っているからその態度なんだろ? それで放置するのなら俺らに文句を言う筋はないよ。 もっともゆとりにはこの「筋」ってのが通じなくて困るんだが。
904 名前:デフォルトの名無しさん mailto:sage [2016/07/04(月) 23:15:25.46 ID:2qwL8Tkv.net] コントロール文字がわからなくてぐぐってみたんだが、制御文字(control character)の事か! なぜ、controlだけカタカナにするんだろう? コントロールキャラクタの方がまだ分かる
905 名前:デフォルトの名無しさん mailto:sage [2016/07/04(月) 23:27:23.31 ID:vyHh0WrX.net] ルー大柴に尋ねてくれ
906 名前:デフォルトの名無しさん mailto:sage [2016/07/04(月) 23:50:51.04 ID:SuUmocnF.net] www.kogures.com/hitoshi/javascript/file-api/directory.html これ使ってフォルダ読み込んでいるんだけど 指定する場所が毎回同じだから最初からそこを指定するにはどうすればいいんだろう? わかる人いたら教えて下さい。
907 名前:デフォルトの名無しさん [2016/07/05(火) 00:16:53.06 ID:50xvo8fd.net] >>853 元々ハードを制御する為に使われていたASCIIコードの先頭32文字を指していた言葉、改行や前述されたBELなど通常の文字として画面表示されないもの Unicodeではこの32文字に加えて第14面の追加特殊用途面などに更に多くの制御文字がマッピングされている なおスラッシュは/という文字なのでコントロール文字ではないし、エスケープが必要かと制御文字どうかには直接的な関連性はない >>881 本当はコントロールキャラクターと表記したいが多くの日本人はキャラクターという言葉から文字を連想しないから文字と置き換えたのではないかね?
908 名前:デフォルトの名無しさん mailto:sage [2016/07/05(火) 00:24:24.40 ID:aq1IVl4D.net] まあ確かに、コントがロール(役割)なキャラクターって思っちゃうわな。
909 名前:デフォルトの名無しさん mailto:sage [2016/07/05(火) 01:58:08.99 ID:94G9IfNv.net] >>883 <p>〜</p> はいらないので、コメントにするか、削除する コメントにする場合、<!-- と --> で囲む。 ただし、コメントの中に、コメントは含められないため、<!-- 行C --> を削除する <!-- <p> 〜 </p> --> <script> fileListDilectory("フォルダ名") function fileListDilectory(files) { <script>タグと、function〜の間に、fileListDilectory("フォルダ名")を追加する。 フォルダ名は、半角ダブルクォーテーションで囲む
910 名前:デフォルトの名無しさん mailto:sage [2016/07/05(火) 02:14:24.57 ID:iQZ7PuWs.net] >>884 どちらかといえば、「制御文字」が広く知られていると思うのだが
911 名前:デフォルトの名無しさん mailto:sage [2016/07/05(火) 03:12:34.89 ID:gnmCE5Y/.net] 結構勘違いされてるけどHTMLのコメントアウトって<!--で開始で-->で終了じゃなくて <!と>の中にある--で開始で--で終了だから <!ここはコメントじゃない--ここはコメント--ここはコメントじゃない>
912 名前:デフォルトの名無しさん mailto:sage [2016/07/05(火) 03:15:48.89 ID:gnmCE5Y/.net] <!------> ↑これコメント閉じてない
913 名前:デフォルトの名無しさん mailto:sage [2016/07/05(火) 03:31:12.38 ID:94G9IfNv.net] Effective JavaScript という本の項目45で、 オブジェクトを辞書として使う際、キーに、hasOwnProperty, __proto__ などを使うと、 既存のプロパティが上書きされて、バグるというのは本当なの? var dict = { hasOwnProperty : null, __proto__ : null } >>889 <!-- と --> の間では、-- は使えない
914 名前:デフォルトの名無しさん mailto:sage [2016/07/05(火) 04:05:49.05 ID:gnmCE5Y/.net] >>890 だから>>888 なんだってば
915 名前:デフォルトの名無しさん mailto:sage [2016/07/05(火) 04:07:46.52 ID:Dhx8/uPE.net] 最近仕様が変更されてコメント内の二重ハイフンも OK になった https://github.com/whatwg/html/commit/518d16fdc672d1023dcfd2847d86f559d13a842f
916 名前:デフォルトの名無しさん mailto:sage [2016/07/05(火) 14:28:39.06 ID:eormrIAE.net] >>888 そんなことはない https://html.spec.whatwg.org/multipage/syntax.html#comments その理屈が認められるならDOCTYPE宣言にもコメントを埋め込み可能になる <!DOCTYPE html--コメント-->
917 名前:デフォルトの名無しさん mailto:sage [2016/07/05(火) 14:49:36.44 ID:eormrIAE.net] >>890 あなたが Object.prototype 上のプロパティを使いたいなら(自分自身で生み出した)バグといえるし、そうでなければバグではない そもそも、__proto__ に null を代入しているのだからプロトタイプチェーンを辿れないのは当然の事だ 自分が何をしているのかを理解していればそれがバグとなる由もない var dict = { hasOwnProperty : null, __proto__ : null }; Object.prototype.hasOwnProperty.call(dict, 'hasOwnProperty'); // true dict.hasOwnProperty('hasOwnProperty'); // TypeError: dict.hasOwnProperty is not a function dict.valueOf(); // TypeError: dict.valueOf is not a function
918 名前:デフォルトの名無しさん mailto:sage [2016/07/05(火) 16:01:54.40 ID:50xvo8fd.net] >>891 w3cのhtml5勧告によると、<!--の4文字シーケンスで始まり-->の3文字シーケンスで終わるときっぱり書いてある 以下出典と該当する部分の引用 www.w3.org/TR/2014/REC-html5-20141028/syntax.html#comments 8.1.6 Comments Comments must start with the four character sequence U+003C LESS-THAN SIGN, U+0021 EXCLAMATION MARK, U+002D HYPHEN-MINUS, U+002D HYPHEN-MINUS (<!--). (ここに中身について云々あるが中略) Finally, the comment must be ended by the three character sequence U+002D HYPHEN-MINUS, U+002D HYPHEN-MINUS, U+003E GREATER-THAN SIGN (-->).
919 名前:890 [2016/07/05(火) 23:08:07.75 ID:94G9IfNv.net] >>894 入力されたデータを、オブジェクトのハッシュとして扱った際、バグらないのかな? または、これを利用して、システムを壊したりするとか
920 名前:デフォルトの名無しさん mailto:sage [2016/07/05(火) 23:17:50.58 ID:eormrIAE.net] >>896 それはそういう設計にしているプログラマが悪い プロパティに何でも代入可能なハッシュ値ならプロトタイプ上のプロパティが上書きされる事も考慮すべきだ Object.keys, Object.prototype.hasOwnProperty.call で回避できるからな あるいは new Map でも使えばいい
921 名前:853 mailto:sage [2016/07/05(火) 23:21:29.77 ID:fKNXFIY8.net] オレ、27歳だけど、コントロール文字にスラッシュ入るって 言ってたら、まずいですか?
922 名前:デフォルトの名無しさん mailto:sage [2016/07/05(火) 23:49:25.07 ID:Coapt2bz.net] 『JavaScript: The Good Parts』(P11)の文字列リテラルの説明は意味が分からん " (</ とコントロール文字を除くすべてのユニコード文字> | <エスケープ文字>)* " なぜ "/" (スラッシュ) を除く? ES6 を読んだが、"/" が許可されないようには読めん www.ecma-international.org/ecma-262/6.0/#sec-literals-string-literals 『JavaScript: The Good Parts』の説明では """ が許可されるように読めるが、実際そんなことはなく、SyntaxError になる <" とコントロール文字を除くすべてのユニコード文字> であるべきだと思うのだが
923 名前:853 [2016/07/06(水) 00:00:08.69 ID:zGLlF+Oq.net] 実は、アマゾンで売ってるkindleの電子版のgood partsでは String ""で囲まれた文字列は、 any unicode character except " and \ and control character ''で囲まれた文字列は、 any unicode character except " and \ and control character となっており、日本語版のgood partsとは書いてあることが違う 英語版にはexcept / とは書いてない。 オライリーの公式には、ここの訂正がない。 ってなってるんだけど、もちろん、このスレの住民は 英語版のgood partsくらい普通に読んでるんで、 気づいているはず
924 名前:デフォルトの名無しさん mailto:sage [2016/07/06(水) 00:02:33.66 ID:Np1SAbRe.net] >>899 運が良かったな。誤字って予想ぐらいすぐにおもいつけよ bdcampbell.net/javascript/book/javascript_the_good_parts.pdf
925 名前:デフォルトの名無しさん mailto:sage [2016/07/06(水) 00:14:41.00 ID:1PwyVn8f.net] 正規表現の文字列表記から見ると、”/”は制御文字扱いになるのかな?
926 名前:899 mailto:sage [2016/07/06(水) 00:14:59.53 ID:YMmDVDK6.net] >>900 気が付いていたなら初めから>>853 で正しい情報を書け、といいたい 間違いと分かっている和訳版の情報を寄せるのはミスリードを誘っているようにしか見えん >>901 公式サイトに添削がないからおかしいとは思った 仕様書にない時点で間違いだと99%確信はしてたが、誰も指摘しなかったんだな ただ、はっきりいって誤字のレベルを超えていると思う "'と/ではキーの位置が大きく違うが、どうやったら誤字になるんだ?
927 名前:デフォルトの名無しさん mailto:sage [2016/07/06(水) 00:18:21.76 ID:Np1SAbRe.net] マヌケかw /と\ の間違いだろw
928 名前:デフォルトの名無しさん mailto:sage [2016/07/06(水) 00:18:26.98 ID:YMmDVDK6.net] >>898 /が制御文字と主張するなら「何を制御しているのか」をよく考えろ 通常、制御文字とは NUL, BS, LF, CR のように入力された機器に特別な制御命令を与える文字を指す /は入力された機器に何も制御命令を出さないので普通は制御文字とは呼ばない プログラミング言語や正規表現で現れる特殊文字は「メタキャラクタ(meta character)」と呼ぶ 扱う言語によってメタキャラクタは変化するので「JavaScriptの正規表現では/はメタキャラクタ」というように言語指定してやれば正しく伝わるだろう
929 名前:853 mailto:sage [2016/07/06(水) 01:02:18.07 ID:zGLlF+Oq.net] ""と''の中の文字列はany Unicode character になっており /を除くと書いてない。 (コントロール文字に/を含めにないとき) The escape sequencesに\/があるってことは /がコントロール文字でないと辻褄が合わないではないか!? っと考えました。 /はコントロール文字ではないが、正規表現で使う特殊文字だから、 コントロール文字の中に含めているって解釈でいい(?) >>905 メタキャラって/もですが、+ / *とかもメタキャラですよね しかし+ / *はThe escape sequencesでない。
930 名前:デフォルトの名無しさん mailto:sage [2016/07/06(水) 01:11:51.83 ID:Np1SAbRe.net] まだやってんのか? コントロール文字って定義があるんだから それ以外はコントロール文字じゃねーだろ。 それだけの話んだが。
931 名前:デフォルトの名無しさん mailto:sage [2016/07/06(水) 01:31:13.03 ID:YMmDVDK6.net] >>906 escape sequencesは制御文字の反意語ではない そもそも、文字列リテラル上で制御文字は特別な文字ではなく、エスケープを必要としない 文字列リテラルでエスケープが必要なのは "'\ と LineTerminator だけだ www.ecma-international.org/ecma-262/6.0/#sec-literals-string-literals
932 名前:デフォルトの名無しさん mailto:sage [2016/07/06(水) 01:35:42.48 ID:YMmDVDK6.net] ああ、あと英語が読めるなら『ECMAScript 2015』を読んでおくといい 『JavaScript: The Good Parts』よりも参考になる
933 名前:デフォルトの名無しさん mailto:sage [2016/07/06(水) 01:51:00.52 ID:YMmDVDK6.net] 改めて読み直したが、 > /はコントロール文字ではないが、正規表現で使う特殊文字だから、 > コントロール文字の中に含めているって解釈でいい(?) 1行目と2行目の「コントロール文字」の定義が違うのはなぜだ? 「文字列リテラルのメタキャラクタ」と「正規表現のメタキャラクタ」は区別しろ 制御文字とメタキャラクタは別個の定義だ よくわからんなら制御文字は気にしなくていいが、/や\はメタキャラクタであっても制御文字ではない(文字列リテラルでは/はメタキャラクタではない) しっかりと理解してないなら全て「特殊文字」に統一しておいた方がマシ www.ecma-international.org/ecma-262/6.0/#sec-unicode-format-control-characters
934 名前:デフォルトの名無しさん mailto:sage [2016/07/06(水) 02:04:58.41 ID:3UYEMUlZ.net] 何でこのゆとりはこんなに必死なの? 間違いを認めればいいだけだろ。 もしそれをこれまで吹聴していたのなら、お前は既に馬鹿老害扱いされている。 それでも今後とも間違いを吹聴し続けるよりはマシ。
935 名前:デフォルトの名無しさん mailto:sage [2016/07/06(水) 07:18:52.57 ID:sTXK0Kzp.net] 別に間違いを認めさせる必要もない。 それは優しすぎる傲慢。 その権利は俺達にないし、彼の問題に一々付き合ってやる義理もない。
936 名前:デフォルトの名無しさん mailto:sage [2016/07/06(水) 07:43:14.67 ID:zGLlF+Oq.net] >>910 はい。 /はコントロール文字でない。 「文字列リテラルのメタキャラクタ」と「正規表現のメタキャラクタ」が分からないので /と\はコントロール文字でないが、escape sequencesに/と\があるのは 特殊文字だからって覚えておきます。
937 名前:デフォルトの名無しさん mailto:sage [2016/07/06(水) 08:07:50.32 ID:Uvvu3JgG.net] / って正規表現で使うっけ?
938 名前:デフォルトの名無しさん mailto:sage [2016/07/06(水) 08:27:04.26 ID:sTXK0Kzp.net] 言葉の定義なんて前提と捉え方で用意に変わり得る。 例えば制御文字を表すためのエスケープ表現を『制御文字』と慣用的に読んだって間違いじゃないし、 『\』をそのエスケープ表現の開始記号として『制御文字』と言ったって必ずしも伝わらなかったり悪いわけじゃない。 慣用的に使われる言葉と、仕様のキーワードは別。
939 名前:デフォルトの名無しさん mailto:sage [2016/07/06(水) 09:51:11.02 ID:aYInvTWe.net] >>914 /もちろん/
940 名前:デフォルトの名無しさん mailto:sage [2016/07/06(水) 10:42:32.00 ID:cNn6jv5y.net] >>916 それリテラルのデリミタ。正規表現の一部じゃ無い
941 名前:デフォルトの名無しさん [2016/07/06(水) 11:35:43.96 ID:YMmDVDK6.net] >>917 補足感謝 「/がメタキャラクタ」は適切な表現ではなかったな
942 名前:デフォルトの名無しさん mailto:sage [2016/07/06(水) 11:48:57.84 ID:sTXK0Kzp.net] 仕様上の正規表現内のメタキャラクタではないね。 実際書く上では実質「正規表現」の「メタ」なキャラクタと考えられなくはないけど。
943 名前:デフォルトの名無しさん mailto:sage [2016/07/06(水) 21:22:48.04 ID:3UYEMUlZ.net] >>915 ゆとり「通じればいいんだ。間違いではない」 他人(なんだこのゆとり…間違いは間違いだろ) 間違いだし、伝わりにくいし、悪いよ。いちいち言わないだけで。
944 名前:デフォルトの名無しさん mailto:sage [2016/07/06(水) 21:26:31.47 ID:zGLlF+Oq.net] オレ、仕事は製造業で電子部品作ってる工場で働いているからさ 趣
945 名前:味でJavascriptの勉強してるだけだし別にいいだろ って開き直ってやる [] [ここ壊れてます]
946 名前:デフォルトの名無しさん mailto:sage [2016/07/06(水) 21:32:48.07 ID:3UYEMUlZ.net] だとすれば話は簡単で、明日から正しい言葉を使うことを心がければいいだけ 過ちては改むるに憚ることなかれ リアルで誤用しまくりなら信用の回復は無理ぽだけど、そういうことではなさそうだし
947 名前:デフォルトの名無しさん mailto:sage [2016/07/06(水) 22:48:29.74 ID:Np1SAbRe.net] 本当にゆとりだな。 ASCIIコードを勉強するときに 必ずコントロール文字は出てくるだろ。 JavaScript以前の問題だ。
948 名前:デフォルトの名無しさん mailto:sage [2016/07/06(水) 23:09:55.62 ID:3UYEMUlZ.net] ユニコードしか知らないんだろ 10代ならあり得るが、20代しかも後半なのはちょっと不自然だけど 逆に俺はJavaScriptのソースコードがユニコードなのが衝撃的だったが
949 名前:デフォルトの名無しさん mailto:sage [2016/07/07(木) 07:09:03.14 ID:kX0s01tc.net] >>924 何が衝撃的だったの?
950 名前:デフォルトの名無しさん mailto:sage [2016/07/07(木) 19:41:06.60 ID:xu7eLIup.net] javascriptスレだったと思うんだけど 変数名をhanteiにしたら、クレームが来て、 取引先の会社「変数名hentai(ヘンタイ)ってどいうことですか?」 当社「違いますhanteiの間違えです。」 って事件があったとさ これってなんかのコピペなんですか? 実際に、仕事でhanteiなんて変数名に使うものなのでしょうか?
951 名前:デフォルトの名無しさん mailto:sage [2016/07/07(木) 21:22:02.81 ID:emRikmn6.net] コピペかコピペじゃないかを気にするより他の事に時間を割いた方が有意義だよ
952 名前:デフォルトの名無しさん mailto:sage [2016/07/07(木) 21:34:20.25 ID:+CDrHRBK.net] >>926 コピペかどうかはさておき、hanteiは使っててもおかしくないと思う 良いか悪いかは別の話ね
953 名前:デフォルトの名無しさん mailto:sage [2016/07/07(木) 22:43:23.54 ID:iLaVioOv.net] const {app} = hoge; const app = hoge; ES6の定数宣言で、この二つの書き方は何が違うんでしょうか? どちらを使うべきか指針とかあったりしますか?
954 名前:デフォルトの名無しさん mailto:sage [2016/07/07(木) 23:01:35.80 ID:H48+30O4.net] > どちらを使うべきか指針とかあったりしますか? 普遍的なルールとして、短い方を選ぶ方が良い。
955 名前:デフォルトの名無しさん mailto:sage [2016/07/07(木) 23:39:05.17 ID:emRikmn6.net] >>929 明らかに挙動の違うものを「どちらを使うべきか指針」といわれても… js-next.hatenablog.com/entry/2015/05/18/181956 >>930 if (x) x.y = 1; と if (x) { x.y = 1; } とか、長い方がいい場合もあると思うけど
956 名前:デフォルトの名無しさん mailto:sage [2016/07/07(木) 23:40:07.51 ID:j5TOflcB.net] 動作が違うでしょ。 const {app} = hoge; は const app = hoge.app; と等価
957 名前:デフォルトの名無しさん mailto:sage [2016/07/07(木) 23:44:51.74 ID:iLaVioOv.net] 右辺のプロパティ名と同じ変数が作れるんですね 理解しました、ありがとうございました
958 名前:デフォルトの名無しさん mailto:sage [2016/07/08(金) 00:17:25.93 ID:gFg8sSWK.net] ライブラリ板の荒れ具合が酷いのでやはり、プログラム板に統合した方がいいと思う あと、テンプレも復活させる必要がある
959 名前:デフォルトの名無しさん mailto:sage [2016/07/08(金) 00:27:47.76 ID:+TjkY6Hg.net] Web板のHTML、CSS、ライブラリ含むWeb総合質問スレと、 プログラム板のJS総合スレの2つに分けるのがいい。
960 名前:デフォルトの名無しさん mailto:sage [2016/07/08(金) 00:54:45.54 ID:yD4trqxh.net] 次スレでーす + JavaScript の質問用スレッド vol.121 + [無断転載禁止]©2ch.net echo.2ch.net/test/read.cgi/tech/1467906869/
961 名前:デフォルトの名無しさん mailto:sage [2016/07/08(金) 07:41:13.87 ID:lv/3l3yT.net] テンプレは fiddle.jshell.net/fH4cC/174/show/ を元にライブラリ許容型に変更すればいいね
962 名前:デフォルトの名無しさん mailto:sage [2016/07/08(金) 07:46:45.99 ID:lv/3l3yT.net] 以下、ライブラリスレより。 これを組み合わせればいいと思う。 ■関連スレ JavaScript ライブラリ総合質問所 vol.5 [無断転載禁止]©2ch.net echo.2ch.net/test/read.cgi/h
963 名前:p/1465399470/ ■各種ライブラリ jQuery API Documentation http://api.jquery.com/ jQuery Mobile API Documentation http://api.jquerymobile.com/ API Docs - YUI Library http://yuilibrary.com/yui/docs/api/ Underscore.js http://underscorejs.org/ lodash documentation https://lodash.com/docs [] [ここ壊れてます]
964 名前:デフォルトの名無しさん mailto:sage [2016/07/08(金) 08:49:21.45 ID:+TjkY6Hg.net] DOM系のライブラリはどうしてもHTMLやらCSSやらの話にも成りがちだから、 Web板の方で統合した方がいいと思う。
965 名前:デフォルトの名無しさん mailto:sage [2016/07/08(金) 08:50:41.84 ID:vGS1irmk.net] >>937 (9)を削除して「諸注意」を書き変えればいいかね 完全に消すと初見さんが荒らしへの対処に困りそうだし
966 名前:デフォルトの名無しさん mailto:sage [2016/07/08(金) 11:24:47.84 ID:KhEBU29m.net] 俺は>>934 に一票 Web板は既にそれぞれの質問スレがあるから上から統合立てるのはどうかと 統合するならどれか立たなくなってから徐々にまとめていく形がいいと思う その場合ここのテンプレは前スレのリンク切れ直すくらい いずれにせよ荒らしの立てたスレ使うのは本当によくないから>>936 はスルーで
967 名前:デフォルトの名無しさん mailto:sage [2016/07/08(金) 13:47:44.11 ID:U0/kuRoy.net] この状況でWeb制作板に統合するのは荒らしを助長させるだけでデメリットしかないと思う プログラム板に統合する案に賛成
968 名前:デフォルトの名無しさん mailto:sage [2016/07/08(金) 18:33:42.72 ID:+TjkY6Hg.net] プログラム板に統合するのなら、HTMLやCSS中心の話題も許容するくらいじゃなきゃまた大揉めすると思うぞ。 俺はそれならそれでいいが、多くの人が納得するかは知らない。 いずれにしろ統合するならそういう文言を必ずテンプレに入れてくれ。
969 名前:デフォルトの名無しさん mailto:sage [2016/07/08(金) 21:17:40.39 ID:GrB7vStf.net] > プログラム板に統合するのなら、HTMLやCSS中心の話題も許容するくらいじゃなきゃまた大揉めすると思うぞ。 俺もその意見に賛成。>>939 も言ってるけどDOMの話をするのなら HTMLとCSSは必ず出てくる。UIを作るときにはかならず使うものだからね。 時々JavaScriptだけで見た目を制御しようとして ごちゃごちゃしたコードを書く人がいるけど HTMLとCSSを正しく使えばJavaScriptコードは減る。 「CSSだけで作る」で検索すればいろいろと動きのある メニューとかが出てくるはず。
970 名前:デフォルトの名無しさん mailto:sage [2016/07/08(金) 22:04:36.09 ID:+TjkY6Hg.net] こういうのですね。わかります。 design.kayac.com/topics/2011/06/css-programing.php
971 名前:デフォルトの名無しさん mailto:sage [2016/07/08(金) 23:30:39.02 ID:CZkAeEnB.net] HTML/CSSのスレってこれ? echo.2ch.net/test/read.cgi/hp/1467511443/ 本来はあっちでDOM操作関連のチョロJavaScript(〜30行程度)までは取り扱うべきなんだよ。 それを越えてきたらこちらということで。 あいつらは今後ともstaticなHTML/CSSだけのつもりなのか?
972 名前:デフォルトの名無しさん [2016/07/08(金) 23:36:09.26 ID:/soOgtk1.net] WEB製作とWEBプログラミング板をID表示に出来ない?
973 名前:デフォルトの名無しさん mailto:sage [2016/07/08(金) 23:45:11.18 ID:BGnGAFet.net] >>946 それなら同じ理屈で、こっちでも30行程度の HTMLやCSSを扱うべきじゃね?
974 名前:デフォルトの名無しさん mailto:sage [2016/07/08(金) 23:48:54.41 ID:3Ch7jsxi.net] スレ違いの質問は該当スレに誘導すればいいだけ そういう輩は「技術的に詳しそうなのでスレ違いを承知で質問します」という体だから裾野だけ増やしても仕方ない 一つ例外を認めればあれもこれも認めろという声が上がるのは明白
975 名前:デフォルトの名無しさん mailto:sage [2016/07/08(金) 23:50:58.91 ID:BGnGAFet.net] >>949 そもそもHTMLやCSSはスレ違いではないという話だよ。
976 名前:デフォルトの名無しさん [2016/07/08(金) 23:53:38.62 ID:/soOgtk1.net] HTML/CSS/JSを全て扱う「クライアントサイドWEB製作総合スレ」建てれば?
977 名前:デフォルトの名無しさん mailto:sage [2016/07/08(金) 23:56:27.86 ID:3Ch7jsxi.net] JavaScriptスレならHTML/CSSはスレ違い Web制作初心者スレならHTML/CSSはスレ違いではない HTML/CSSにも関わりのあるJavaScriptの質問をするなら許されることもあろうが、JavaScriptと関係しないHTML/CSSの質問は完全にスレ違い ex: article要素とsection要素の違いは何ですか?
978 名前:デフォルトの名無しさん mailto:sage [2016/07/09(土) 00:00:07.52 ID:My2a4Ewi.net] だからそういう無関係質問用に専門スレは残しておくとしても、HTML/CSS/JSが全て関わっているとどこで聞くか迷わない?
979 名前:デフォルトの名無しさん mailto:sage [2016/07/09(土) 00:03:20.01 ID:ej5NI84G.net] 主従関係を考えればいいだけ JavaScriptが主、HTML/CSSが従の質問をすればいい ECMAScriptの範疇でしか質問を受け入れないわけではない
980 名前:946 mailto:sage [2016/07/09(土) 00:11:15.70 ID:iLP51t8A.net] >>948 いやそれはない。俺はあのスレの内容には全く興味がない。 DOMはJSにとっては入出力だから外すことは出来ないが、 本格的にプログラミングすると当然DOM以外の部分が大半になる。 むしろ、DOM関連のJavaScriptだけ分離するべきか? まあそれが元々はjQueryスレだったんだろうけど。 とはいえ>>949 ,954は妥当だな。とりあえず現状維持でいいよ。 迷ったら一番妥当だと思うところで聞けばいいだけ。 その判断が間違いならスレチ誘導すればいいだけ。 維持出来ないほど過疎れば自然と統合されるだけ。
981 名前:デフォルトの名無しさん mailto:sage [2016/07/09(土) 00:14:45.57 ID:3ye6tHD5.net] じゃあ現状維持で + JavaScript の質問用スレッド vol.121 + [無断転載禁止]©2ch.net echo.2ch.net/test/read.cgi/tech/1467906869/
982 名前:デフォルトの名無しさん mailto:sage [2016/07/09(土) 00:16:51.15 ID:3DBY5ZwO.net] > DOMはJSにとっては入出力だから外すことは出来ないが nodejsを見ればわかるようにDOMは必須じゃない
983 名前:デフォルトの名無しさん mailto:sage [2016/07/09(土) 00:52:31.22 ID:US7tnKBO.net] >>1 のテンプレを更新した。 https://fiddle.jshell.net/6018r9tu/1/show/light/ >>935 ,937-938,940-942を採用。他は保留。
984 名前:デフォルトの名無しさん mailto:sage [2016/07/09(土) 00:57:59.04 ID:jK+6h30t.net] テンプレの中の人生きてたのか… 住み分けは>>954 の考え方が俺も適切だと思う そもそもの板ルールだってケースバイケースでやれとのお達しが出ているし とりあえずライブラリスレはまだ埋まるまで時間があるから議論は持ち越しとして このスレの現状維持には賛成だが>>936 ,>>956 を使うのには重ねて反対だ
985 名前:デフォルトの名無しさん mailto:sage [2016/07/09(土) 05:01:09.70 ID:u3A/GFo2.net] >>952-955 統合しようとしてる今の全体状況を考えても、それは難しい。 統合するならWeb全般と、JS全般の2つにするか、 HTMLの質問くらいなら許容してあげるくらいのJS全般1つにすべき。
986 名前:デフォルトの名無しさん mailto:sage [2016/07/09(土) 07:11:01.87 ID:ej5NI84G.net] HTML/CSSは統合しなくていいし、メリットがないと思う 統合するならHTML/CSS/JavaScriptだけに特化して統合する必要はない SEO対策、ブラウザ、サーバサイドスクリプト...etc 境界線が分からない質問者が質問しそうな話題は無数にある Web制作板で「Webサイト制作初心者用質問スレ」を復活させるのが妥当だが、JavaScriptスレとは無関係に進めるべき あと、統合するなら周辺スレの住人の合意を得る必要があるから
987 名前:デフォルトの名無しさん mailto:sage [2016/07/09(土) 08:39:06.50 ID:Bk+A+H3d.net] 許容範囲でいえば、こんな感じかな ○ アコーディオンメニューの作り方(JavaScriptメイン、HTML/CSSサブ) × section要素の使い方(HTML 100%、CSS 0%、JavaScript 0%) × display: flex の使い方(CSS 100%、HTML 0%、JavaScript 0%) × Web検索結果の順位を上げたい (SEO対策 100%、JavaScript 0%、HTML 0%、CSS 0%)
988 名前:デフォルトの名無しさん mailto:sage [2016/07/09(土) 10:41:56.68 ID:iLP51t8A.net] >>960 お前がそういうことにしたいのは分かったが、ところで統合しようとしている相手はどのスレなのよ? このスレは十分流れているし、機能もしている。 jQueryのスレも同様。どちらもどこかに合流する必要はない。 統合ってのは過疎スレが維持出来ずに落ちて、 そこの住人がどこか近いところに移住することによって行われる。 十分流れているスレで上から「統合」指令出しても効果はない。 落ちそうな過疎スレをそのまま落とせば自然と統合されるし、それ以外の妥当な方法はない。 結果的にスレチ誘導出来ず、その落ちたスレが取り扱っていた内容も自然と取り扱うことになる。 つまり統合に関してはここでの議論は無意味で、統合される側のスレ住民が納得しないと効果も無い。 分化したスレが機能している以上、それは分離すべきだったということだ。 「ぼくのかんがえたさいきょうのとうごうすれ」は存在し得ない。 例えば主にDOM関連に興味があるのなら、そいつはこれまで同様HTML/CSSのスレも見ろってことでしかない。
989 名前:デフォルトの名無しさん mailto:sage [2016/07/09(土) 14:22:57.47 ID:8raa4CZV.net] >>962 見て思ったのはアコーディオンメニューはCSS100%でも作れるってこと どちらが主になるかなんて実装次第だが、このスレに投下した時点でJavascriptで実装すること前提であってほしい 何で作るのがいいかわかってないような奴をここでいちいち相手にしたくないから総合的スレがこのスレと別に向こうにあったらありがたいとは思うな このスレをどこかと統合する必然性はないと思うが、おかしな奴をまず総合スレで相談して来いって追い出せるのは便利だ
990 名前:デフォルトの名無しさん mailto:sage [2016/07/09(土) 15:30:53.75 ID:iLP51t8A.net] >>960 その他 ついでだから追加。 既に述べたように、 機能しているスレで議論できる内容は、「何かを分離するか、現状維持か」 過疎って機能してないスレで議論すべき内容は、「どこかに統合するか、現状維持か」 統合したいのなら、統合される過疎スレ側に連絡し、それを住民が受け入れれば統合されるだけ。 こっちが過疎スレ側にごそっと移動してもスレ乗っ取りにしかならないだろ。 最近は減ったように思うが、テンプレ回答として ・PHPでやれ ・CSSでやれ ってのがあったから、>>964 の言う総合案内所は役に立つだろう。 ただそこで複数の実装方法があったとして、どれがいいかを説明するのはかなり難しいとは思うが、 お前らは説明の再生産はしたがっているようだから、それもいいのではないか。理解を深めることにはなる。 上手く行けばそのスレはめちゃめちゃ繁盛するだろう。 多分最初からJS/HTML/CSS/PHPまで入れておいた方がいい。 質問「○○をやりたい」に対し、基本的には「○○スレに行け」という回答で案内に徹せば上手く行く。
991 名前:デフォルトの名無しさん mailto:sage [2016/07/09(土) 18:27:15.89 ID:/ZL1+tl1.net] >>961 がいうように「Webサイト制作初心者用質問スレ」を復活させれば万事解決する気がする
992 名前:デフォルトの名無しさん mailto:sage [2016/07/09(土) 20:10:41.89 ID:1nvCXdBR.net] >>964 アコーディオンメニューをCSS100%で作れるからと言って、 質問する人はそう思ってない。JavaScriptが必要だと思ってる。 だから最初からCSSスレに書き込むのは不可能 JavaScriptスレで質問するのは仕方がないことだが これをCSSスレに移動させるか?といえば、実はそうとは限らない。 CSS100%で作れると言ったが細かい要件によっては CSS100%で作れないかもしれないからだ。 だからCSSで作れるかどうか分からない質問をここでするのは問題ないし JavaScriptで作る回答があるならば、ここで会話を続けていい。 その答えの一つとしてJavaScript使わないでできますって言うのも答えなわけだ。 結論としては 質問者・・・JavaScriptを使うと思っているならば質問していい 回答者・・・JavaScriptでやるのが間違いだと思うならば、他のスレに誘導 手法の一つとしてJavaScriptでやる方法があるのならこのスレでよく、 回答の一つとしてJavaScriptを使わない方法を提示しても良い。 でいいんじゃねーの?
993 名前:デフォルトの名無しさん mailto:sage [2016/07/09(土) 20:34:43.05 ID:iLP51t8A.net] >>967 何でお前は取り扱い範囲を広げたがっているの? それともお前は単発荒らし?なら無視するだけだが。 何で作ればいいか分からない人向けの「Webサイト制作初心者用質問スレ」であって、 ここで聞く限り「JavaScriptで作る気」な場合にしろって事だろ。明確で妥当な基準だ。 既に書いたが、既に機能しているスレでは「範囲を狭めて分化していくか、現状維持か」だよ。 何でも聞けるスレは何も出来ないスレになる。 仮にプログラミング言語一般として、JavaもCもJavaScriptもPHPもありのスレにしても意味無いだろ。 複数の話題に興味があるのなら、お前が複数スレを巡回すればいいだけ。 分化しすぎてて過疎って落ちれば自然と統合されるだけ。そこでバランスが取れるようになっている。 CSSの話題がここで為されるとしたら、CSSスレが落ちて誰も立てなくなった時だよ。 あっちが機能している限り、CSSの話はあちらでやるべきだ。それがお互いの利益になる。 重ねて言うが、お前がCSSに興味があるのなら、お前がCSSスレも見ればいいだけだ。
994 名前:デフォルトの名無しさん mailto:sage [2016/07/09(土) 20:37:57.40 ID:1nvCXdBR.net] >>968 範囲を狭くしたいっていうのなら 純粋なJavaScript専用にしてもいいけど? つまりNode.jsでも動くものしかだめ。 DOMを扱うコードは禁止。
995 名前:デフォルトの名無しさん mailto:sage [2016/07/09(土) 21:25:56.06 ID:iLP51t8A.net] >>968 言い返したいだけのクソガキ乙 俺はそれでもいいと言っているだろ。>>955 分離するのならそこだ。 ただしnodeはスレが別にあるので考慮する必要はない。 (nodeガーについては全部nodeスレに誘導すればいいだけ) 分離する理由は(nodeは関係なく)DOM部分はHTML/CSSとも絡むため、迷子の原因だからだ。 ただこれについては「Webサイト制作初心者用質問スレ」の方が妥当だという意見だ。 俺もそれでいい。つまり、このスレは現状維持で上記スレを新設でいい。 ただしこの新設スレを機能させるには、少なくともフルスタック()な連中がそこにいないといけない。 お前らだけで対応出来ないのなら、他スレからも応援してもらう必要がある。 とは言っても立てないことには始まらないので、妥当だという意見が多いようなら立てればいいと思うが。
996 名前:941 mailto:sage [2016/07/09(土) 22:14:27.41 ID:lCeUP8cE.net] >>958 失礼>>934 の統合をこの板へ移行するものだと読み間違えてた このスレとWeb板のライブラリスレを統合するってことなら自分は反対だ 当初向こうで出た話ではIDの出る板への単なる移行だったはず >>967 ,>>954 の言うように「JSが主になる」質問をそれぞれのスレで扱うことと >>961 の言うように初心者スレ復活を別の流れで模索することには賛成
997 名前:デフォルトの名無しさん mailto:sage [2016/07/10(日) 02:54:32.77 ID:eiCoffPe.net] スクリプトで非同期にファイルダウンロードってどうやるの ajaxでバイト配列を取得するとこまでできたけどファイルを保存する方法がわからねえ
998 名前:デフォルトの名無しさん mailto:sage [2016/07/10(日) 05:23:29.64 ID:bPE6a5y9.net] >>970 その通り。 まず一歩目としてはその結論以外無い。
999 名前:名無しさん@そうだ選挙に行こう! Go to vote! mailto:sage [2016/07/10(日) 12:28:37.49 ID:j73ykfM2.net] ライブラリスレにいる者だが、俺はこのスレに統合する案に賛成だな ライブラリスレがプログラム板に移行するに留まるとほぼ間違いなく、過疎化する 俺の感覚ではライブラリスレで俺以外で回答に参加していたのは信者君+1〜2名というところだが、そもそも質問者の絶対数が少ない JavaScript ライブラリ総合質問所 vol.5 [無断転載禁止]©2ch.net echo.2ch.net/test/read.cgi/hp/1465399470/ このスレでの質問はほとんどないに等しい これじゃあかんと思ってjQueryの感想を書いてつなぎ止めようとしても釣れるのは信者君とその他大勢の煽りだけ 質問者にとって重要なのは質問に答えてくれることであって質問した結果、荒れようがIDが見えなかろうが関係ないからな 信者君は質問には高確率で回答していて、質問者にとっては都合がいよいからjQueryスレの質問がそれなりに多いのだろう 「プログラム板に移行したら今まで黙っていた俺だが、質問する予定があるぜ」という人が名乗り出るなら別だが、俺はプログラム板に移行するだけでは質問者にも移行を促すほどの請求力はないと思うぞ
1000 名前:名無しさん@そうだ選挙に行こう! Go to vote! mailto:sage [2016/07/10(日) 12:35:33.20 ID:rTKcHDH+.net] >>974 俺としては別にライブラリスレでもjQueryスレでも ここでもjQueryの話題があればレスしてるので どこでもかまわないかな
1001 名前:名無しさん@そうだ選挙に行こう! Go to vote! mailto:sage [2016/07/10(日) 13:53:52.88 ID:BhOPIXig.net] >>974 お前は一体何がやりたいのさ?その件については明らかに信者>>975 の方が妥当だぞ。 そのスレってjQueryのスレとスレ立て合戦した奴だろ。頭の方に痕跡も残ってる。 どっちが本家なのかは知らないが、だったらまずそれらと統合すべきだろ。 そしてその話し合いは当該スレでやれ。ここではない。 スレ立て合戦の結果、人が居ないので釣ってみたが無理っぽいから統合したい? 死ね > 質問者にとって重要なのは質問に答えてくれること > 信者君は質問には高確率で回答していて、質問者にとっては都合がいよい 専用スレで信者が積極的に回答するのは全く問題ないし、むしろいいことだ。 それで質問スレとしても完全に機能してるんだろ?何も問題ない。 むしろお前の「ぼくのさいきょうのすれにならなかったから」というのが終わっている。 現実的にはjQuery以外のライブラリは新規に学ぶ価値が無くて、質問もないんだろ。 だったらそれはjQueryスレに飲み込まれるのが正しいあり方だよ。 お前がどれだけjQuery君を嫌ってようが、jQuery以外のライブラリが無用ならそうとしかならない。
1002 名前:名無しさん@そうだ選挙に行こう! Go to vote! mailto:sage [2016/07/10(日) 14:06:47.72 ID:SLnFWOAS.net] > お前がどれだけjQuery君を嫌ってようが、jQuery以外のライブラリが無用ならそうとしかならない。 jQuery以外のライブラリで有用なものはいくつかある。 無用というならばjQuery以外のDOM操作ライブラリというべきだろうね。 DOM操作に関連しないライブラリで有用なものはいくつかある。 例えばJavaScriptの少ない標準関数を補ってくれるlodash(underscore) (Rubyを知っていればJavaScriptの標準関数は本当に少なく感じる) 日付関連をシンプルに扱えるmoment SVGをjQueryライクに扱えるD3 ここらへんが有用なライブラリだな。 なおフレームワークやPolyfillは除いている。
1003 名前:名無しさん@そうだ選挙に行こう! Go to vote! mailto:sage [2016/07/10(日) 15:35:48.24 ID:ZmdhimD5.net] 深淵を覗こうとする時はなんとやら 荒らしに餌やってまで伸ばそうとするのは最早呆れて何も言えないわ あの状態じゃ質問なんて出来る雰囲気ではない 行うべきは燃料投下や統合よりも住み分けによる質問レスの誘導なんじゃないの ここやNodeスレでライブラリやモジュールの質問スルーされてる難民とか結構いるぞ
1004 名前:名無しさん@そうだ選挙に行こう! Go to vote! mailto:sage [2016/07/10(日) 15:54:54.42 ID:SLnFWOAS.net] >>978 誘導したらどういう理由で問題が解決すると言うの?
1005 名前:名無しさん@そうだ選挙に行こう! Go to vote! mailto:sage [2016/07/10(日) 16:35:09.95 ID:BhOPIXig.net] 適切な誘導をして流れるようになればそれでよし。 適切な誘導があっても過疎って落ちるようなら、落ちるべくして落ちただけ。 そのスレは独立して存在する価値がないことになる。 つまり、適切な誘導が行われれば、あとは放置すれば判定は出るというだけ。 話は簡単だ。次スレを立てる時にとりあえずこのスレのテンプレに入れておけばいい。 このスレで出来ることはそこまでだよ。 入れるスレは以下の4つで良いのか?追加あれば挙げて。 JavaScript ライブラリ総合質問所 vol.5 [無断転載禁止]©2ch.net echo.2ch.net/test/read.cgi/hp/1465399470/ JavaScript & jQuery 質問用スレッド vol.6 + [無断転載禁止]c2ch.net echo.2ch.net/test/read.cgi/hp/1465566635/ 【node.js】サーバサイドjavascript 4【io.js】 [無断転載禁止]c2ch.net echo.2ch.net/test/read.cgi/tech/1460359714/ (X)HTML/CSS の質問に優しく答えるスレ23 [無断転載禁止]c2ch.net echo.2ch.net/test/read.cgi/hp/1467511443/ ちなみになあ、テンプレの人>>958 も恣意的すぎるんだよ。 どういう経緯があれ、需要があるのならそのスレは存在するし、迷子は出るのだから、 それらはテンプレに入れないといけない。jQueryのスレがそう。 Canvasのスレなんて完全に死んでいるのだから、それは落とさないといけない。 君には君の論理があるのだろうけど、現状を見ていない。
1006 名前:名無しさん@そうだ選挙に行こう! Go to vote! mailto:sage [2016/07/10(日) 17:22:43.78 ID:6EzdDOVN.net] >>975 回答者が流れても質問が来ないのではないかと思ってね 回答者だけいて質問者がいないのでは質問スレとして成り立たないから質問者が名乗り出てくれるのが有り難い 人が少なければ統合するのは自然な流れだと思う >>978 誘導して人が来るならそうだな
1007 名前:名無しさん@そうだ選挙に行こう! Go to vote! mailto:sage [2016/07/10(日) 17:48:41.01 ID:tgTIUHUH.net] ライブラリスレの問題は気に入らない回答にいちいち噛みつく奴の存在だと思うな 彼一人のせいでまともな回答者が大分減ったし 誰だって自分の回答が馬鹿にされたらいい気持ちはしない プログラム板への移行が望まれるのは当然だね
1008 名前:名無しさん@そうだ選挙に行こう! Go to vote! mailto:sage [2016/07/10(日) 18:04:56.98 ID:bPE6a5y9.net] 俺は個人的にはライブラリ大嫌いだし、今のライブラリスレの元を何年も前に作ったのも俺だが、 統合は反対はしないよ。 だって、向こうのスレ(JSとライブラリ)全く機能してないもん。 逆に、向こうの質問スレに行った方が良いよと言えるまでは少々Web感が強くてもこっちで扱うべきと思う。 もしも、無効にWEB総合スレを作る試みが上手く行った暁には改めて振り分ければいい。
1009 名前:名無しさん@そうだ選挙に行こう! Go to vote! mailto:sage [2016/07/10(日) 18:58:46.48 ID:BhOPIXig.net] 何度も言っているが、統合するかどうかは当該スレの住民が判断する話で、 こちらで決めることではない。 住民が納得して移住し、スレが落ちれば統合は完了する。 分化して専門性を高めたスレが存在して流れているのであれば、 それは存在価値があるからであって、統合する意味はない。 お前らみたいな「おれのさいきょうのすれっど」の馬鹿ばかりだからどうにもならないんだよ。 Web板に一生引きこもってろよ。 IDが出ないのをいいことにWeb板の質問スレでやりたい放題やっていたのはお前らだろ。 そういう馬鹿を見切った奴らがこっちに集まったからここは多少まともなんだよ。 統合して欲しいのなら、当該スレでそういう話し合いをすればいいだけだろ。 お前らは根本的に間違っているよ。
1010 名前:デフォルトの名無しさん mailto:sage [2016/07/10(日) 21:10:07.28 ID:ZmdhimD5.net] ここのプログラム板移行に賛同して極力回答していた身からすれば 延々と荒らしに構って荒れた挙句の過疎なのだから正直ざまあみろと思う所もある でもその認識はちょっと偏見が過ぎるんじゃないの 向こうの両スレでID出ないのをいいことにやりたい放題やっていた輩っていうのは 件の信者であり>>982 の噛みつく奴でありテンプレで注意されていた同一人物だ ここだって結局vol120にしてWeb板同様に乗っ取られているわけだ 向こうの住民だって数年間やれることはやった上での現在なんだろうよ
1011 名前:デフォルトの名無しさん mailto:sage [2016/07/10(日) 21:25:02.79 ID:bPE6a5y9.net] 荒らしはあまり関係ないかと。 昔っから色んな意味で言いたい放題やりたい放題や奴は大勢いたし、 仕切り厨もスレチ厨も大活躍してた。 別に過疎の原因はスレ住民が悪いせいでは無いと思う。 むしろ過疎になったからそういう奴が目立ってきただけ。
1012 名前:デフォルトの名無しさん mailto:sage [2016/07/10(日) 21:28:08.59 ID:ZmdhimD5.net] ああそうなのか ちょうどlodash啓蒙で大荒れ乱立してた頃からしか知らないんだわ
1013 名前:デフォルトの名無しさん mailto:sage [2016/07/10(日) 21:47:15.37 ID:BhOPIXig.net] >>985 そうでもないだろ。 そもそもIDあり板に移動したければさっさとやればよかっただけ。 今までへばりついていたのはID無しの方が都合がよかったからだろ。 こっちに来てからも何度も誘導も見た。どうしてもIDがない方が都合がいい奴がいるのは確かだ。 俺はざまあみろとは思わないが、そういう奴がここに来ると迷惑だと思っている。 ちなみに俺はその「信者」や「噛みつき君」は大して問題視していない。技術的である限り、やればいいのさ。 ゴミコードはゴミコードだと言うべきだし、その指摘が間違っているのなら逆に叩かれればいい。 「ぼくのかいたさいきょうのこーど」が礼賛される方が問題だ。 彼はIDがあったとしてもスタンスは変わらないだろうし、その点でも問題ない。 ちなみに彼の問題は、他スレでも「布教
1014 名前:活動」をしていたことだよ。それは本当に邪魔だから止めてもらいたい。 ただ、今のところjQueryスレにこもって布教することにしたようだから、それは問題ないし、 こちらからもjQueryの専門的な話題は積極的に向こうに誘導すべきだろう。それがお互いの利益になる。 最悪に問題なのは、ID無し板で自演したり釣りをしたり横槍だと明確に分からない形で横槍を入れてくる奴らだ。 それは話の邪魔なんだよ。だからどうにもやりにくかった。それが今文句言っている奴らだろ。 その「信者」「噛みつき君」「注意されていた人」は彼等「自演君」「釣り君」「会話乗っ取り君」とは別の人だよ。 要するに、IDありとID無しで振る舞いを変えるような卑怯なゴミこそが問題なんだよ。 その点、「信者」君は卑怯ではない。繰り返すが、俺は彼には布教活動以外の問題は感じない。 だから彼がjQueryスレにこもってひたすら回答者に徹するのであれば、関連質問者は積極的に誘導でいい。 それの方がこっちのスレとしても楽だろ。 とはいえ、いい加減結論を出さないといけない。 荒らしのスレ>>936 ,956はセオリーどおりスルーとして、俺はテンプレがあった方がいいと思うから、 ベース>>958 で関連スレだけ>>980 に差し替えが俺の意見になる。 「Webサイト制作初心者用質問スレ」は次スレで引き続き検討として、 とりあえずこのスレの次スレをどうするかを決めよう。 [] [ここ壊れてます]
1015 名前:デフォルトの名無しさん mailto:sage [2016/07/10(日) 22:27:02.42 ID:ZmdhimD5.net] 布教活動に限らずスレ乱立に横やりや煽りだらけだったろうに もっとも彼以外にもそういうのが居たってのは同意見だ じゃあここの次スレに争点を絞ろう ・荒らしの立てたスレは使わずに新スレを立てる ・このスレは現状維持 ・状況により初心者スレを検討 まず>>958 の改訂版は統合スレ用のものだから現状維持の場合は適さない 今回は以前のテンプレに>>980 の関連スレを加えたものを使うべきだと思う 肯定的なレスが付いたら建ててくる
1016 名前:デフォルトの名無しさん mailto:sage [2016/07/10(日) 22:31:41.73 ID:J3sPgwrM.net] > ベース>>958 で関連スレだけ>>980 に差し替え 概ね賛成だけど、canvasスレの削除はどうなんだろうね 俺は落ちてない以上は入れてもいいと思う
1017 名前:デフォルトの名無しさん mailto:sage [2016/07/10(日) 22:38:00.44 ID:BhOPIXig.net] >>989 > 統合スレ用のものだから現状維持の場合は適さない 俺は子細はよく分かっていないのでこの辺はID:ZmdhimD5に任せる。 >>990 落とさないといけないって事はない。 ただ、あのスレ入れててもなぁ、とは思うが、 火種になるという意味では、今回は無難に入れておいていいとも思う。 まあいずれにしてもID:ZmdhimD5に任せる。 スレが埋まったらまずいので俺は今後は様子見する。 とにかくID:ZmdhimD5に任せる。よろしく。
1018 名前:デフォルトの名無しさん mailto:sage [2016/07/10(日) 22:39:44.89 ID:tx16mOUk.net] 175 自分:Name_Not_Found[sage] 投稿日:2016/07/10(日) 22:19:22.40 ID:??? どこでもいいよw 俺は人がいるところに行くだけだから。
1019 名前:デフォルトの名無しさん mailto:sage [2016/07/10(日) 22:47:57.91 ID:KHJNSY1I.net] おまえらってさ、javascriptでどんなwebアプリ作ってんだ?
1020 名前:デフォルトの名無しさん mailto:sage [2016/07/10(日) 22:55:57.73 ID:ZmdhimD5.net] + JavaScript の質問用スレッド vol.121 + [無断転載禁止]©2ch.net echo.2ch.net/test/read.cgi/tech/1468158373/ >>990-991 Canvasスレへのリンクは一先ず残した 以前のテンプレはいくらか古い部分があったから結局>>958 をベースにして そぐわない部分をカットしてから>>980 を追加することにした あといつの間にか諸注意の内容がほぼ倍になってたから以前のものを使った Web板のかな、少なくともこのスレで同意を得て追加されたものではないし
1021 名前:デフォルトの名無しさん mailto:sage [2016/07/10(日) 22:58:59.73 ID:Hr2GHwDG.net] >>1 のテンプレを更新した。 https://fiddle.jshell.net/6018r9tu/2/show/light/ >>980 の関連スレを追加した。 Canvasスレ削除は賛否両論なので無難に残した。
1022 名前:デフォルトの名無しさん mailto:sage [2016/07/10(日) 23:03:27.28 ID:XBuYUIhG.net] >>991 がID:ZmdhimD5に一任した途端、独断専行っぷりが酷い どうみてもライブラリスレを統合する流れだっただろうに
1023 名前:デフォルトの名無しさん mailto:sage [2016/07/10(日) 23:08:39.77 ID:tx16mOUk.net] お前ら喧嘩するなよw スレタイがどうなろうが、俺はあちこちのスレに行って jQueryとlodashの話題をするだけなんだからw
1024 名前:デフォルトの名無しさん mailto:sage [2016/07/10(日) 23:12:17.55 ID:ZmdhimD5.net] >>996 そりゃ流れであって統合派も移行派も現状維持派もいたんだから 残りレス数が一桁切ってる状況ならひとまず現状維持で持ち越すしかないでしょ 勢いが冷めないうちに次スレで議論して欲しい
1025 名前:デフォルトの名無しさん mailto:sage [2016/07/10(日) 23:13:07.16 ID:BhOPIXig.net] >>994 乙。 諸注意や信奉者の主張例とかは俺もちょっと気になったが、(テンプレにしては感情すぎる) まあそれもテンプレ作成者の意志だから尊重してもいいかとも思っていた。 俺が落としたくなかったのは関連スレとかのリンクだから、とにかく乙。 >>995 とりあえずここで揉めても意味無いから、今後は >>990 基準で「落ちるまでは関連スレに入れる」でいいんじゃないか。 だからWebGLの奴も入れておけばいい。 分化した専門スレが落ちるようなら需要がないって事だから帰ってくればいい。 流れるようなら存在価値があるのだからそのままでいい。 政治的に「宣伝してやらない」とか考える必要はない。 分化した専門スレであり、質問を受け付けるのであれば、基本的に追加すればいい。
1026 名前:デフォルトの名無しさん mailto:sage [2016/07/11(月) 00:15:27.69 ID:gzpHRxsK.net] うめ
1027 名前:1001 [Over 1000 Thread.net] このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。 life time: 49日 4時間 23分 54秒
1028 名前:1002 [Over 1000 Thread.net] 2ちゃんねるの運営はプレミアム会員の皆さまに支えられています。 運営にご協力お願いいたします。 ─────────────────── 《プレミアム会員の主な特典》 ★ 2ちゃんねる専用ブラウザからの広告除去 ★ 2ちゃんねるの過去ログを取得 ★ 書き込み規制の緩和 ─────────────────── 会員登録には個人情報は一切必要ありません。 月300円から匿名でご購入いただけます。 ▼ プレミアム会員登録はこちら ▼ premium.2ch.net/ pink-chan-store.myshopify.com/
1029 名前:過去ログ ★ [[過去ログ]] ■ このスレッドは過去ログ倉庫に格納されています