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) 時にはあなたが望む「答え」だけでなく、「意見」などが寄せられる場合もあります。
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 で > 病院の回線ってそんなに贅沢に使えないんよ。 ってあるから やむをえずそうしたってことがあるのかねって思ってた