- 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) 時にはあなたが望む「答え」だけでなく、「意見」などが寄せられる場合もあります。
- 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も連投するようなキチガイ説明云々以前に頭おかしいだろ
|

|