+ JavaScript の質問用スレッド vol.120 + [無断転載禁止]©5ch.io
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2016/05/22(日) 19:51:33.37ID:WwOYSBmy>>2-4のテンプレを読んだ上で質問してください。次スレは>>950が>>2のテンプレ案(本スレで改善案があれば考慮)を元に立ててください
■質問を書く上で
(1) 煽り、コード制作依頼等、人を不快にさせる投稿はご遠慮下さい。公序良俗を守った応対を心がけてください。
(2) 他の人に迷惑をかけるスクリプトの質問はご遠慮ください。
(ブラクラ、[戻る], [閉じる], [クリック] の妨害、画面占有など)
(3) 質問者及び議論を行う人はメール欄を空欄にし、名前にレス番を入れることを強く推奨します。回答者はなりすましを判断できませんので、なりすましが現れても自己責任となります。
(4) 常に自発的に調べる心構えを持ってください。
具体的には「自分で調べてから質問する」「回答をもらってわからない単語があればGoogle検索してみる」など。
わからない内容を代わりに調べてくれる回答者をお望みの方は余所で質問してください。
(5) 出来るだけ一般的な用語を使用してください。脳内オレオレ用語は混乱の元です。
(6) 出来るだけサンプルコードを掲示してください。言葉による説明は行き違いが生まれる場合があります。
※必ず「問題の事象が再現されること」を確認してください。
必要な部分だけ切り出したつもりで現象が再現できていなかったケアレスミスがしばしば見られます。
(7) サンプルコードに HTML が含まれる場合は http://validator.w3.org/ で [Check] してみてください。
(8) 質問を具体的かつ詳細に書くと回答を得られやすいです。>>2の質問テンプレートを活用してみてください。
(9) 時にはあなたが望む「答え」だけでなく、「意見」などが寄せられる場合もあります。
0002デフォルトの名無しさん
2016/05/22(日) 19:57:06.35ID:Jbe/yyc4ス ル ー 推 奨 。
0003デフォルトの名無しさん
2016/05/22(日) 20:14:45.33ID:FTGg1fS80004デフォルトの名無しさん
2016/05/22(日) 21:13:57.23ID:5X2RDQPHまず、次立てずに埋めた馬鹿は荒らしだろ。IDコロコロだし。 >>2
次に、このテンプレでいいのなら124を再利用すべきだろ。
そしてこのスレで行くつもりなら続きのテンプレも落とせよ。 >>1
ライブラリ禁止ならテンプレが異なるので立て直すべき。
個人的にはワッチョイの方がいいと思う。IDない頃よりはだいぶマシになってるし。
IDコロコロ埋め立て放置荒らしはWeb板に戻ってきて欲しいのかもしれないが、
どっちかというとお前らは議論したがっているし、(と言うよりは蘊蓄を披露したいだけか?)
正直今のお前らの日本語力でID無しでの議論は無理だから、この板が妥当だろう。
議論内容は正直どうでもいいものだけど、それでも議論したければするがいいさ。
ただ、あの内容については、500行程度のコードを書くようになれば自然に納得いくから、
もやもやしている奴は、こんな所で時間を消費するのではなく、コードを書いた方がいい。
お前らは本当に「50行のコードしか書いてないんだな」と思える展開が多すぎる。
0005デフォルトの名無しさん
2016/05/22(日) 21:26:22.79ID:FTGg1fS80006デフォルトの名無しさん
2016/05/23(月) 00:01:13.45ID:nh4t1HCu0007デフォルトの名無しさん
2016/05/23(月) 09:44:02.18ID:09f5J8xU0008デフォルトの名無しさん
2016/05/23(月) 19:52:15.88ID:aItG7/vaいきなりかよw
0009デフォルトの名無しさん
2016/05/24(火) 01:18:13.42ID:1wjjU4Dvvar foo = {};
foo.bar = foo.bar || "value";
こういう書き方意外になにかありますか?
もしくは、rubyのHash.new("value")みたいにデフォルト値を与える方法はありますか?
初心者なのでどうすべきなのかさっぱりわかりません
0010デフォルトの名無しさん
2016/05/24(火) 02:37:42.45ID:wmKZ/4EEif(!hoge.a) hoge.a='aaa';
がわかりやすくてよく使う。
オブジェクトなら、mergeObjって関数作ってて、デフォルト値のオブジェクトにマージする関数も作ってる。
0011デフォルトの名無しさん
2016/05/24(火) 11:09:37.02ID:57joSblrfoo.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));
0012デフォルトの名無しさん
2016/05/24(火) 11:43:05.72ID:Fup9czqTfoo.barがどのような過程で生成されるかで違ってくるよ
0013デフォルトの名無しさん
2016/05/24(火) 12:18:09.22ID:fTRdDZnUサイトで時間で表示非表示のスクリプトを入れているのですが
非表示でもリロード時に一瞬表示されてしまいます。
このちらつきを防止する策はありませんでしょうか?
コードははこんな感じです↓
<script type=
0014デフォルトの名無しさん
2016/05/24(火) 12:23:18.22ID:iG1UUWT4www
ごめんでも笑えた
0015デフォルトの名無しさん
2016/05/24(火) 12:24:06.53ID:c4cnVHPj001613
2016/05/24(火) 12:35:17.27ID:fTRdDZnU<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>
0017デフォルトの名無しさん
2016/05/24(火) 13:16:31.22ID:iG1UUWT4window.onloadじゃなくてDOMContentLoadedで処理するとか
0018デフォルトの名無しさん
2016/05/24(火) 13:21:28.18ID:57joSblrdocument.styleSheets で
#hoge1 { display: block; }
#hoge2 { display: none; }
を宣言する
0019デフォルトの名無しさん
2016/05/24(火) 13:47:40.17ID:Fup9czqTvar timer = 0;
function changeDisplay(){
clearTimeout(timer);
...
if (now < changeTime) {
...
timer = setTimeout("changeDisplay()", 1000);
} else {
...
timer = setTimeout("changeDisplay()", 1000);
}
方法は色々あるけどこれで良いんじゃない?
0020デフォルトの名無しさん
2016/05/24(火) 19:32:47.77ID:cROy8nMz手元にある変数をhashtableとして使って
var model = {};
model[a][b][c] = value; // ←これができるような準備をしたい
みたいにして実行時に受け取ったkeyを使ってモデルを構築したいんですね
それをするためにデフォルト値の設定か、key所持の有無を知りたかったんです
>>11
> プロパティチェックには in 演算子か hasOwnProperty を使う
ありがとうございます。さっそくそれらをぐぐって学びました。
まさにそれです。hasOwnPropertyでピッタリのようです。
>>10
> if(!hoge.a) hoge.a='aaa';
ありがとうございます。タイピング量的にはこれがいいですね。
今回、厳密にプロパティ所持の有無だけをチェックする必要も実は無いですし。
0021デフォルトの名無しさん
2016/05/24(火) 21:04:07.49ID:TKpsNxtt> すみません、質問です。
> サイトで時間で表示非表示のスクリプトを入れているのですが
<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>
0022デフォルトの名無しさん
2016/05/24(火) 21:08:36.04ID:TKpsNxttCSSの知識が必要不可欠ってこと。(もちろんHTML自体の知識も必要)
CSSを使ううちに不満が出てきて、SASS(SCSS)に乗り換えることだろう。
見た目に関する多くの処理をCSSでやることで
JavaScriptは驚くほどシンプルになる。
0023デフォルトの名無しさん
2016/05/24(火) 22:57:09.14ID:fFhHkZMI0024デフォルトの名無しさん
2016/05/25(水) 00:22:00.09ID:oaeRtxYkJSON はただの String 型
0025デフォルトの名無しさん
2016/05/25(水) 00:38:42.00ID:Jdaj3qLbそれは、なんか関数用意したほうがいいんじゃないの?
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;
}
みたいな感じで。
0026デフォルトの名無しさん
2016/05/25(水) 01:02:30.80ID:e2/1A4Vq板TOPに書かれているルール
>JSはweb管理板で
現行スレ
+ JavaScript の質問用スレッド vol.130 +
http://echo.2ch.net/test/read.cgi/hp/1463395557/50
0027デフォルトの名無しさん
2016/05/25(水) 01:49:09.77ID:VNiDmyVP0028デフォルトの名無しさん
2016/05/25(水) 07:14:03.46ID:cVBZ9i9Yルールのために我々があるのではない。
0029デフォルトの名無しさん
2016/05/25(水) 07:23:06.88ID:hMNMImmNJSONをパースしたオブジェクトの構造を定義しておけば、IDEの支援受けられるやろ?
だからソース上にはないクラスの定義できるかって聞いた
JSONが文字列って事くらい誰でもわかる
0030デフォルトの名無しさん
2016/05/25(水) 09:26:14.89ID:Yyi7LTu70031デフォルトの名無しさん
2016/05/25(水) 09:59:51.34ID:oaeRtxYkJSON は String 型なのでオブジェクトとしての補完機能は必要ない
String.prototype 系の補完機能が働けばそれでいい
まさかとは思うが、JSON をパースしたオブジェクトを JSON と誤解してないだろうな...
0032デフォルトの名無しさん
2016/05/25(水) 14:33:22.24ID:Jdaj3qLbその頃のjsは、Webだけのためのものだったからなぁ
0033デフォルトの名無しさん
2016/05/25(水) 17:16:25.85ID:hMNMImmNそうなんだ
例えば、TwitterAPIで返ってくるJSONをパースしたオブジェクトの構造をJSDcoコメントで定義しておけば、オートコンプリートの支援が受けられるやろ?
それみたいに、APIで返ってくる形式をDocで定義したい
0034デフォルトの名無しさん
2016/05/25(水) 18:20:50.93ID:6lXHJSGuJSON.parse したオブジェクトは new Object か new Array のどちらかしかない
JSON Interface のオブジェクトというものは存在しない
0035デフォルトの名無しさん
2016/05/25(水) 18:30:33.44ID:Rwgeje6LJSONデータにまで、インテリセンスを効かせたいの?
0036デフォルトの名無しさん
2016/05/25(水) 18:50:53.98ID:hMNMImmNうん
0037デフォルトの名無しさん
2016/05/25(水) 20:50:05.00ID:RmI4sgQT0038デフォルトの名無しさん
2016/05/25(水) 23:00:15.35ID:cOSJO7dHそれなら、Object 型を指定するだけで済むはずだが(>>34)
0039デフォルトの名無しさん
2016/05/26(木) 00:59:59.52ID:xmgEeB9V実質的に今も大して変わらず、9割以上ブラウザだろ。
それよりは、XHRがでかい。
あれで単なるブラウザ専用DSLからプログラミング言語へと脱皮した。
>>25
脱線するが、君はあいかわらずのコードを書いてるな。
指摘は正しいし、そのコードも悪くはないが、良くはない。8/10だ。
普通はshiftだろうし、keysが抜けているが、俺が言っているのはそういう文法的なことではない。
それはさておき、君はC++出身ということでいいのかな?
これをちょっと聞きたかった。
あと、君は ID:WwOYSBmy か?
これについては荒れるリスクがあるから、答えたくなければ無視でいい。
その代わり、回答があれば、そちらに有益な情報(と俺が思っているだけだが)を一つ出すことにする。
0040デフォルトの名無しさん
2016/05/26(木) 01:22:55.48ID:cAjDmLh7当たり前に入れるべきスペースすら無いからかな。
経験の低さがにじみ出てる
0041デフォルトの名無しさん
2016/05/26(木) 01:48:29.92ID:xw9RGDuQ初めてnodejsのexpress?というのでwebアプリ作成してみたのですが
非同期が難しすぎるし、IDEの補完がきかないのでメソッドもいちいち調べるの面倒です(以下コードです)
https://github.com/himanannyaga/angular2-express-mongo-quiz/blob/master/server/app.js
受け取ったJSONの型チェックとかバリデーション簡単にできる方法ってないんですか?
そもそもnodejs自体やめたほうがいいんでしょうか?
やめるとしたら今流行りのサーバーサイドのフレームワークってどれがいいんでしょうか?
0042デフォルトの名無しさん
2016/05/26(木) 02:21:24.67ID:dKizvVLh>>34
0043デフォルトの名無しさん
2016/05/26(木) 02:55:58.29ID:Zah1U3qmすまんな。スマホで書いてるから。
普段はそういう瑣末な事は、beautifyで綺麗にしてるよ。
俺はperlとgauche。
1ではないよ。
0044デフォルトの名無しさん
2016/05/26(木) 03:07:20.77ID:cAjDmLh7それができないってのはやはり初心者のようだね。
0045デフォルトの名無しさん
2016/05/26(木) 07:33:19.93ID:QBGIcNJU?
0046デフォルトの名無しさん
2016/05/26(木) 07:40:08.69ID:CRvI10Ce0047デフォルトの名無しさん
2016/05/26(木) 07:55:50.23ID:clpr93dzビルドしたらjsになるし開発時だけの機能じゃないんですか?
0048デフォルトの名無しさん
2016/05/26(木) 08:40:29.43ID:Zah1U3qmつい入れてしまうが分からん。
どのみち機械が解決してくれる内容は手で修正なんかしないだろ。
瑣末な所を気にしすぎて納期的に死ぬ自称中級者みたいなこと言ってないでさ。
popじゃなくてshiftじゃね?ってのは凄く恥ずかしいが。
0049デフォルトの名無しさん
2016/05/26(木) 08:42:44.53ID:wYXEPUUAJSON は String 型固定だから型チェックする必要はないよね
0050デフォルトの名無しさん
2016/05/26(木) 12:08:35.93ID:z6iFNo2hJSON-Schemaで検索
0051デフォルトの名無しさん
2016/05/26(木) 12:12:08.35ID:grnWiB9o0052デフォルトの名無しさん
2016/05/26(木) 12:54:37.58ID:z6iFNo2hスマホじゃ仕方ないと思うが、その結論はどうなんだ
beautifierや規約強制系のツールは、必要最低限で人が意識して書くほどには綺麗にならないし
つかそもそも作業中に自分でも見づらいし、コード書いてたら普通は入れるだろうよ
0053デフォルトの名無しさん
2016/05/26(木) 13:13:53.91ID:z6iFNo2h(obj.prop == null) のが良い
0054デフォルトの名無しさん
2016/05/26(木) 13:15:55.40ID:Zah1U3qmうーん。タイプ数がとにかく減ってくれれば。
ショートカットもバインドしてあるから、2・3行書いて叩いて、って普段はしてるよ。
人の意識なんかそれぞれだから、規約で縛っちゃったほうが後から来る人に引き継ぎやすいし、rcファイルを撒いてる。
規約は真面目に決める。
0055デフォルトの名無しさん
2016/05/26(木) 13:19:24.85ID:Zah1U3qmそれは微妙では?
やるなら、
((typeof obj.prop === "undefined") || obj.pro===null)
で見てやったほうがいいと思う。
0056デフォルトの名無しさん
2016/05/26(木) 13:29:07.06ID:z6iFNo2hそれは初心者がやること
undefined == nullだからやらんでよろしい
少しは他人に突っ込む前に考えろって
0057デフォルトの名無しさん
2016/05/26(木) 13:31:26.42ID:z6iFNo2hスタイル強制ツールも完全じゃないんだってば
それも本当に使ってりゃわかるだろ
0058デフォルトの名無しさん
2016/05/26(木) 13:44:38.38ID:Z4ePso6qfalsy な値を考慮するなら null, undefined だけ特別扱いするコードも微妙
in 演算子か hasOwnProperty を使う方がよい
0059デフォルトの名無しさん
2016/05/26(木) 13:47:14.61ID:azrLOfn9in演算子よりhasOwnPropertyメソッドのほうが処理が軽かったりもするのかな?
0060デフォルトの名無しさん
2016/05/26(木) 14:14:23.15ID:z6iFNo2h一般にはデフォルト値を与える場合はnullを置き換える事が多いから、こうしてる
nullが入る事も考慮する場合ならそれに同意する
ただ、JSON相手ならinよりhasOwnPropertyのが良いぞ
0061デフォルトの名無しさん
2016/05/26(木) 14:16:43.93ID:z6iFNo2hまあどちらにしろ in 使う場合はモンキーパッチとかしてる場合でも無い限りまず無いと思う
0062デフォルトの名無しさん
2016/05/26(木) 14:25:27.17ID:tAENBh2t中でカンマ使うから?
0063デフォルトの名無しさん
2016/05/26(木) 15:08:38.61ID:iU2f12RAデニスリッチーとかブライアンカーニハンとかケントンプソンに聞くべきじゃねえのか
0064デフォルトの名無しさん
2016/05/26(木) 15:25:45.42ID:7MaZAWY8==での比較とか、もう!の誤爆と発想のレベルが変わらなさすぎてなんと言うかだなぁ。
>>57
まぁ、完全じゃないってか少し冗長になる事は多いが、完全じゃない、ってのはどんなとき?
>>62
文だから。
0065デフォルトの名無しさん
2016/05/26(木) 15:34:27.62ID:e0xtAfbK論理的なコードを書いていない証
パーフォーマンスが悪くなるよ
0066デフォルトの名無しさん
2016/05/26(木) 15:35:50.71ID:DQmxlFQb頭がパーだからパーフォーマンスか
ははは
0067デフォルトの名無しさん
2016/05/26(木) 15:38:36.64ID:uxvxPhHyforってどういう意味なの?
なんでふんどしなの?
0068デフォルトの名無しさん
2016/05/26(木) 15:50:42.51ID:z6iFNo2h>==での比較とか、もう!の誤爆と発想のレベルが変わらなさすぎてなんと言うかだなぁ。
俺から言わせればお前さんが同レベルだよ
そうやって仕様をまるで把握していないから、そういう事を平気で言えるんだろうけどね
0069デフォルトの名無しさん
2016/05/26(木) 15:57:13.56ID:VNKitGFpどうでもいいだろこんな初心者がひっかかるような話
俺ら上級者様には一切関係ねえ話だろうが
undefinedなんて出すバカなんてほっとけや
0070デフォルトの名無しさん
2016/05/26(木) 16:03:05.34ID:z6iFNo2hリッチー先生はもうこの世におらん…
0071デフォルトの名無しさん
2016/05/26(木) 16:09:23.69ID:CcMPN8b7そんなバカな
0072デフォルトの名無しさん
2016/05/26(木) 16:14:10.74ID:z6iFNo2h最近は本当に惜しまれる人ばかりがいなくなってるな
0073デフォルトの名無しさん
2016/05/26(木) 16:36:33.73ID:UN7L7nZy>リーナスにゲイツ最近は本当に惜しまれる人ばかりがいなくなってるな
2人とも生きているのでは?
0074デフォルトの名無しさん
2016/05/26(木) 16:39:58.63ID:z6iFNo2h0075デフォルトの名無しさん
2016/05/26(木) 16:42:16.87ID:rGVMPRNj0076デフォルトの名無しさん
2016/05/26(木) 16:51:40.48ID:7MaZAWY8あーあー、お前のコードでもういいよ。
obj.propがnullで初期化されてればそれで良くなったら、改修がめんどくさいとかほっとくよ。
0077デフォルトの名無しさん
2016/05/26(木) 17:01:57.05ID:TSvbJ/YB0078デフォルトの名無しさん
2016/05/26(木) 17:22:20.13ID:99YjRWAc0079デフォルトの名無しさん
2016/05/26(木) 18:50:41.26ID:ZS10B00B0080デフォルトの名無しさん
2016/05/26(木) 18:58:27.62ID:etrunD2Eいつからここは初心者レクチャー講座になったんだ鬱陶しい
0081デフォルトの名無しさん
2016/05/26(木) 19:23:51.43ID:e0xtAfbKnullとundefined
視覚的な違いがある
0082デフォルトの名無しさん
2016/05/26(木) 19:26:21.87ID:z6iFNo2hnullも欲しいならそもそも判定する必要すらないだろ
お前が何を言ってるのか、何を想定して何を問題としてるのかもわからん
はっきり言えよ
0083デフォルトの名無しさん
2016/05/26(木) 19:37:17.07ID:e0xtAfbKobj.prop がどうしてnull になるのか?
だ
0084デフォルトの名無しさん
2016/05/26(木) 19:42:34.13ID:OguWhub7==を使った場合という意味?
だとしたら==で比較すりゃ型変換されるからでは
0085デフォルトの名無しさん
2016/05/26(木) 20:18:59.79ID:7MaZAWY8あるわ。
未定義と、正しくnullで初期化しました、は相当違う。
要は、横着するならfalsyなオブジェクトを容認すりゃ良いし、
横着しないのであれば型と中身はチェックすべき。
null==trueはfalseで、null==trueもfalseで、余計な地雷を生む。
って話。
0086デフォルトの名無しさん
2016/05/26(木) 20:19:52.73ID:WcKFKF+t0087デフォルトの名無しさん
2016/05/26(木) 20:31:24.69ID:z6iFNo2hいやその違いが問題だと言うなら問題となる事例を出せと…
少なくとも自分の経験上では、効率考えるとこれが一番妥当
それ以上厳密な型が欲しいならそもそもJavsScriptなんて使わない
0088デフォルトの名無しさん
2016/05/26(木) 20:32:48.87ID:iLE0aKXK0089デフォルトの名無しさん
2016/05/26(木) 20:35:37.26ID:z6iFNo2h>要は、横着するならfalsyなオブジェクトを容認すりゃ良いし、
まずこの結論が極端
0を容認するが、null/undefinedを容認しない事例なんてゴマンとあるのに対し、
nullを容認するがundefinedを容認しない事例はほとんどない
0090デフォルトの名無しさん
2016/05/26(木) 21:53:32.28ID:7MaZAWY80091デフォルトの名無しさん
2016/05/26(木) 21:56:38.20ID:cAjDmLh7https://github.com/airbnb/javascript/
今時typeofつかって"undefined"と比較するのはアホ
0092デフォルトの名無しさん
2016/05/26(木) 22:11:08.45ID:5gTTFtf/0093デフォルトの名無しさん
2016/05/26(木) 23:10:54.73ID:UjMbTLsxDBでも、null があって、3値論理で手一杯で、
偉い学者が唱えた、undefind も入れての4値論理は、ややこし過ぎて、否定されただろ
Rubyの偽は、nil, false だけ。
これが覚えるルールが少なく、最もシンプル
JSはおかしい。言語実装者用の内部ルールが、
一般のプログラマーにも見えてしまっている
0094デフォルトの名無しさん
2016/05/27(金) 00:40:25.02ID:fXm66YRcよくねえよ
問題とするなら具体的にどう問題になるのか出せって
それが正しいならこっちだって改める
0095デフォルトの名無しさん
2016/05/27(金) 01:55:13.24ID:10EzBfKpでもなぁ、現実問題便利なんだよ
null・・・データーベースの値としてnullを代入
undefined・・・省略(何も変化させない)
0096デフォルトの名無しさん
2016/05/27(金) 02:38:39.80ID:5O2HSGrs改めて貰わなくて結構。
自分が正しいと盲信してる人間に説明し付けるほど無駄なことは無い。
0097デフォルトの名無しさん
2016/05/27(金) 02:58:22.81ID:fXm66YRcなんだそれ、事例出すなんて一言で済む話だろ
それを虚勢で言っていないなら、ただ荒らしてかき回してるだけの嫌な奴でしかない
0098デフォルトの名無しさん
2016/05/27(金) 03:03:17.59ID:fXm66YRc具体的に実装コードが見えないがそれ便利なのか?
0099デフォルトの名無しさん
2016/05/27(金) 04:27:40.50ID:Ck73qeVz0100デフォルトの名無しさん
2016/05/27(金) 08:31:12.52ID:bXpUR2n80101デフォルトの名無しさん
2016/05/27(金) 08:44:39.94ID:N6sFDxPGnullはオブジェクトに置けるNaNみたいなもので、
基本オブジェクトを扱う文脈で基本効果を持って取り扱われる値。
あくまで参照が同じな特殊な役割を持った偽性のオブジェクトのようなサインが共有されていると思えばいい。
undefinedはもっと広く、何も扱うべき値がない時に充てがわれる基本効果の無い値。
0102デフォルトの名無しさん
2016/05/27(金) 08:53:49.08ID:UCpt+1On少し違う。
null 値の定義はES2015で定義されてる。
---
primitive value that represents the intentional absence of any object value
http://www.ecma-international.org/ecma-262/6.0/#sec-null-value
---
null 値は意図的にオブジェクトが存在しないことを表す値。
undefined は未定義値。文脈上、初期化される前の値を表す。
0103デフォルトの名無しさん
2016/05/27(金) 08:55:46.53ID:u/p+Wu9Yそんなややこしい事考えるくらいならnullだけ有ればいいよね
0104デフォルトの名無しさん
2016/05/27(金) 09:10:27.24ID:N6sFDxPGESの範囲だけならそうだが、実際はESの範囲でnullは極めて限定的にしか表に現れない。
実際のnullのイメージというのは外様APIが作ってる面が大きい。
そしてprompt()みたいに基本文字列型を返す代わりにnullを返すものもある。
よって、nullは”明示的”な「サイン」と考えるのが一番現実に合っている。
undefinedもしかり。ただこちらはESの範囲でも様々に”暗黙的”に表に現れる。
そういう意味でレイヤーが違う。
>>103
どちらかというと内部的には両方の概念が合ったほうがいい。
表に出す時nullだけに絞ると言ったことは勿論可能。
nullだけあればいいというより、nullだけに絞る選択をすることも可能というべきか。
だが使える道具の大小というのはどっちもメリット・デメリットがあって、
個人的に考えるに両方ほぼ同価値で優劣は付けられないと思う。
0105デフォルトの名無しさん
2016/05/27(金) 10:14:21.43ID:wAuO+eAi> null 値は意図的にオブジェクトが存在しないことを表す値。
> undefined は未定義値。文脈上、初期化される前の値を表す。
論理的にはこれが正しい
構文が論理的ではないからnullが必要になる
0106デフォルトの名無しさん
2016/05/27(金) 11:52:08.31ID:5O2HSGrsnullも、undefinedも、NaNもある理由があってあるんだから。
nullだけで良かったはずなんてアホみたいな事言われても困る。
nullを四則演算したら0として扱われるが、undefinedに四則演算したら、NaNになる。
NaNに四則演算しても、NaNのままだし、x=NaNでも、x==NaNはfalse。
当たり前。数値ではない事が確定しているが、「数値ではない」だけで、足し引きした結果は、「別の「数値ではない」もの」だから。
nullってのは、明確にnullだと代入ないし宣言されてるもの。
undefinedは、宣言すらされていないもの。
これを不要という人間は、そこまで考えないといかんシステム作ってないだけ。
mongoのdocumentを出し入れ返しれするapiなんか想定したら良いと思うが、少なくともnullで初期化されてるフィールドは使っても良い。
nullで初期化されていないundefinedなフィールドはもしかすると使うべきでないかもしれない。
それくらいの問題。
0107デフォルトの名無しさん
2016/05/27(金) 12:16:24.73ID:9jKz8E7p0108デフォルトの名無しさん
2016/05/27(金) 12:28:34.05ID:AZKYjFu+window.open("http://localhost/2.html", "localhost", "width=200, height=200");
window.openでウィンドウを開くときに指定したサイズで開きたいんですが
2回目のwindow.openでサイズが1回目のウィンドウサイズのまま変わりません
どうやってwindow.openで開いた時にウィンドウサイズを指定したサイズにできますか?
0109デフォルトの名無しさん
2016/05/27(金) 12:58:47.82ID:5O2HSGrs0110デフォルトの名無しさん
2016/05/27(金) 13:35:54.88ID:mSvZp4nB0111デフォルトの名無しさん
2016/05/27(金) 14:02:06.44ID:61QydpaFイメージというのは各々で異なるものだと思うのだが、他者に意見するほどのものがそこにあるのだろうか…。
prompt も getElementById も「存在しない事を表す」という意味ではES2015の範囲内でおさまっている。
(ES2015的には prompt が空文字を返した方が返り値が String 型で統一されてそれらしいとは思うが、イメージの話なら多少の誤差は許容されるだろう。ここでは文字列が存在しない事を null で表している。)
サインという表現を使うぐらいなら、それが定義済値(null)か未定義値(undefined)かで区別する方がES2015らしい。
関数が undefined を返すのは返り値が未定義(指定されていない)だからだ。
明示的にないことを表すなら定義済のnull が望ましい。
そうでなければ、その関数が初期値のundefined を返したのか、明示的にundefined を返したのかを区別できないだろう。
0112デフォルトの名無しさん
2016/05/27(金) 15:20:53.00ID:fXm66YRcだからそこまで考えないといかんシステムって具体的になんなんだよって
出してる例もデフォ値とか、Map返して列挙で十分なものばっかりじゃん
0113デフォルトの名無しさん
2016/05/27(金) 15:37:37.19ID:fXm66YRc言語実装側が使う分には便利、という言い分は事例もすぐ出せるし納得はできるが
NaNになるとかのユーザー側の仕様ついては、
本来はundefinedの使用は全てエラーとすべき事で是とするものではないだろ
0114デフォルトの名無しさん
2016/05/27(金) 16:28:18.28ID:5O2HSGrsうち医療系のシステム屋。
NaNも、undefinedも、nullも検査なんかだと戻す値としてあり得る。
サチった、検査項目に入ってない、検査としては行ったが、検体の問題などで結果は出なかった。
0115デフォルトの名無しさん
2016/05/27(金) 16:41:32.15ID:swGPgzcA0116デフォルトの名無しさん
2016/05/27(金) 16:46:54.76ID:fXm66YRcそんなので反論するのはいいけど、実際医療システムでそういう仕様にする?
しないっしょ?
全部専用の型用意すべきだし、未定義じゃ例外送出だし、
サチったらNaNとかInfinityじゃなくてエラー吐かせるし
0117デフォルトの名無しさん
2016/05/27(金) 16:47:23.18ID:ftcnTlL4> サチった、検査項目に入ってない、検査としては行ったが、検体の問題などで結果は出なかった。
これJavascriptで判定するの?
0118デフォルトの名無しさん
2016/05/27(金) 16:55:34.96ID:fXm66YRcそういうシステム実装はありえないとは言ってないよ
実際にあるなら黙るし
0119デフォルトの名無しさん
2016/05/27(金) 16:56:34.37ID:7C5pluWz戻す値としてあり得る……ってことは
return NaN;
return undefined;
とかがあるってことか
エラーコードでも例外ブジェクトでもなく
0120デフォルトの名無しさん
2016/05/27(金) 17:41:11.86ID:5O2HSGrsあるよ。ビューアで。
サーバから返すけど、トラフィックの都合上昔ながらの電文でそれを解釈してるのは足回り。
専用の型って言うけど、オブジェクトのメンバがnullかundefinedかはだいぶ違う。
>>119
違うよ。
解釈した結果をobjectに入れるけど、
解釈した結果そのフィールドが無ければ単にそのフィールドを持ってないオブジェクトになる。
エラーでも、例外でもなく結果だからね。
エラーはエラーで吐くよ。
0121デフォルトの名無しさん
2016/05/27(金) 17:55:45.05ID:7C5pluWzif (なんか結果ある) {
obj.result = なにか(null含む)
}
return obj;
ってことか
呼び出し側はそのobj.resultがundefinedなのかnullなのか判断する
0122デフォルトの名無しさん
2016/05/27(金) 18:10:16.56ID:fXm66YRcそれも結局Mapと列挙で済むからundefinedいらんな
0123デフォルトの名無しさん
2016/05/27(金) 18:11:25.03ID:ftcnTlL4> サーバから返すけど、トラフィックの都合上昔ながらの電文でそれを解釈してるのは足回り。
サーバ側でコンテキストに応じたコードなりなんなりを生成して戻すべきだ
と俺は思う
0124デフォルトの名無しさん
2016/05/27(金) 18:16:51.38ID:fXm66YRc>専用の型って言うけど、オブジェクトのメンバがnullかundefinedかはだいぶ違う。
でもそのビュワーの元データ受け取る時はundefinedなんて入れてないでしょ?
有効活用の事例としてはかなり微妙でしょ
わざわざ複雑な仕様にしてるように見えるもの
0125デフォルトの名無しさん
2016/05/27(金) 18:41:50.65ID:zWRALPjL文ではないけど、LexicalDeclaration や Expression に存在しない区切り文字として都合が良かったからかな
0126デフォルトの名無しさん
2016/05/27(金) 18:48:41.37ID:fXm66YRcただのCの名残っしょ
0127デフォルトの名無しさん
2016/05/27(金) 18:53:39.13ID:5O2HSGrs病院の回線ってそんなに贅沢に使えないんよ。
>>124
undefinedを入れないよ。
受け取るときにと言うより、受け取っていないから、そのキーがundefinedで、nullチェックではなくて、undefinedチェックしないとならん。
台帳表示でも何でも良いが、患者/日/項目のピンポイントで見た時に、値/失敗/結果無しが取れる必要があるってこと。
RDBで言うと、
・行自体が存在しない
・行の中身がNULL
・行の中身に有意な値が入っている
と似たようなもんだよ。
0128デフォルトの名無しさん
2016/05/27(金) 18:56:39.91ID:fXm66YRcそれって初期値のビューに対して、そのまま列挙して設定すればいいだけだと思うけど、
わざわざ未定義と判定する事で利便性が高まる事あるの?
0129デフォルトの名無しさん
2016/05/27(金) 19:02:06.07ID:5O2HSGrsexpression(opt)
を2つ以上取るからで、expressionとexpressionの区切りはセミコロンだからじゃねえの?
言語仕様に書いてあったと思うけど。
0130デフォルトの名無しさん
2016/05/27(金) 19:03:11.34ID:5O2HSGrsそのまま列挙して設定したものを、
未定義と判定して「未検査」と表示する話をしてるんだが。
頭おかしいの?
0131デフォルトの名無しさん
2016/05/27(金) 19:04:16.73ID:fXm66YRcその型チェックをJS側がやってるってこと?ひえー
それならまあ必要といわれても仕方ないか
0132デフォルトの名無しさん
2016/05/27(金) 19:08:24.93ID:fXm66YRc????
そのサービスから受け取ったrowにプロパティがなければ未検査なんでしょ?
なら普通に列挙していけば設定されないデータを、未定義か判定する必要ないっしょ?
それをわざわざなんで判定するの?
0133デフォルトの名無しさん
2016/05/27(金) 19:15:05.42ID:fXm66YRc列挙の度に設定していけば済む話でしょ?
わざわざ複雑にしてるように見えるけど
0134デフォルトの名無しさん
2016/05/27(金) 19:18:13.93ID:IDoL/fjn0135デフォルトの名無しさん
2016/05/27(金) 19:21:01.02ID:7C5pluWz[{"検査項目":"視力","結果":1},{"検査項目":"聴力","結果":"100db"}]
っていうデータじゃなくて、
{"視力":1,"聴力":"100db"}
っていうデータなんじゃないかな(実際はjsonじゃないんだろうけどとりあえず分かりやすさの為ね)
だから
{"視力":1}
ってデータがあると、JavaScript側は
kensa.tyoryokuがundefinedになるから
表示する際はundefinedチェックをするっていいたいんじゃないかな?
※その場合俺ならinを使うかも
0136デフォルトの名無しさん
2016/05/27(金) 19:29:01.92ID:fXm66YRcうん…その場合にundefinedのチェック付ける必要ないよねと
Viewを初期化し、各カラムに対応するView側項目を一個ずつ設定すれば、
無駄な処理もなくて効率いいでしょ?
0137デフォルトの名無しさん
2016/05/27(金) 19:37:17.42ID:fXm66YRcそれを敢えてundefinedを確認するようにするのは、
わざわざ複雑にしてるように見えるけど
言ってる事が伝わった上で、何か自分がわかってない問題があるのか?
0138デフォルトの名無しさん
2016/05/27(金) 19:47:32.72ID:JIhds0M1(x === void 0)でおk?
0139デフォルトの名無しさん
2016/05/27(金) 20:07:52.97ID:5O2HSGrsあ、そうそう。
ただ、何人も並べたり、何日も並べたり、そういう事する。
inでも良いね。コスト低そうだし。
>>136
>>10、で既に俺言ってるけど。
その中で、ちゃんとオブジェクトをマージするか横着するかって話。
0140デフォルトの名無しさん
2016/05/27(金) 20:17:12.65ID:Dt+fFMyqReferenceError になるケースを除けばそう
0141デフォルトの名無しさん
2016/05/27(金) 20:27:35.45ID:fXm66YRcいや別にオブジェクトのマージの話じゃないんだけど
まあどちらにしろ必要ないっしょ?
0142デフォルトの名無しさん
2016/05/27(金) 20:37:53.46ID:fXm66YRc実際使ってる実装があるならundefined値も必要ってことでいいやもう
あとで消化しよう
0143デフォルトの名無しさん
2016/05/27(金) 20:38:54.16ID:5O2HSGrsどーしても必要ない事にしたいんだな。
手入力や、他システムから飛んでこられた時に、画面定義にもデータにもない、ってのはどう判断するのかね。nullを取りうる値を持ってんのに。
仕事として開発したこと無いんじゃねえの?
自分の無知が認められない人間とはみっともないもんだ。
0144デフォルトの名無しさん
2016/05/27(金) 20:39:37.88ID:5O2HSGrsundefinedを値として必要としてる訳じゃねえよ。
お前マジで頭おかしいんじゃねえの?
0145デフォルトの名無しさん
2016/05/27(金) 20:45:22.04ID:Dt+fFMyq> undefinedは、宣言すらされていないもの。
これがプロパティの事を指すなら in 演算子か Object#hasOwnProperty で解決できるという事を>>105でいってるんだろうけど、マージ云々は何を言いたいのかわからない
0146デフォルトの名無しさん
2016/05/27(金) 20:50:00.83ID:fXm66YRcなぜ急に煽る?
まあ言わせてもらうけどね、本当に仕事でやってるならそんなクソ仕様「ありえない」だよ
「医療システム」用なら本来は別途に未検査を表す値を用意するべき内容
でも実装してるってならそうなんだろう
0147デフォルトの名無しさん
2016/05/27(金) 20:51:42.45ID:fXm66YRc0148デフォルトの名無しさん
2016/05/27(金) 20:56:48.42ID:5O2HSGrsそうそう。
検査はしたけど、まだ結果は出てない、だとか、
例えば尿検査だと、尿少なすぎて検査結果出せませんでした、って結果はnullが入ってる。
検査進捗は別に持つから。
それを、テーブルやらグラフに出すときに、
患者一日、みたいなテーブルにガサッと載せたいのであれば、
先に
daily:{
koumokuA:"",
koumokuB:"",
}
みたいなオブジェクト作っといて、その上に、ret.filter(hasKeyIn(daily)).map(convToStr)したものをマージしちゃえば、表は簡単に書けるよねって話。
グラフならconvToScaleとか、何とでもなる。
0149デフォルトの名無しさん
2016/05/27(金) 21:00:52.88ID:5O2HSGrsクソ仕様w
その、まぁ、未検査ではないんだが、結果の無い状態を現す値、がnullなんだけど。
何故別途必要なのか聞いてみたい。
さらに、その値が永劫、その値を返す検査が現れないか、と。
0150デフォルトの名無しさん
2016/05/27(金) 21:03:22.58ID:5O2HSGrsLAMPと全然関係ないと思うが。
何社か医療渡ってるけど割と普通。
0151デフォルトの名無しさん
2016/05/27(金) 21:06:38.13ID:Dt+fFMyqその実装はわかるけど、>>139の主張と結びつかない
>>136の「undefined と比較する必要ないよね、in 演算子で十分だよね」に対して>>139で「オブジェクトのマージ」を仄めかしてるよね
マージ処理なら in 演算子や hasOwnProperty で十分に実装できると思うけど
まあ、ディープマージでなければ Object.assign で十分ではあるけど
0152デフォルトの名無しさん
2016/05/27(金) 21:08:37.38ID:5O2HSGrs物にもよるんよ。検査って。
2項目以上帰ってくるものの、片方だけ表させたいとか。
0153デフォルトの名無しさん
2016/05/27(金) 21:14:25.30ID:fXm66YRc控えめに見てもundefinedの計算結果がNaNという部分は
「未定義値」という値を明確に容認してるよ
少なくともhasOwnPropertyだけで済むと言ってるのとは相容れないし
って…もう最初から何も問題なかったってことでいいや
面倒くせえわ
0154デフォルトの名無しさん
2016/05/27(金) 21:18:25.17ID:Dt+fFMyqよくわからない
プロパティが存在しないことを判断する方法は大きく分けて3つある
1. obj.prop === undefined
2. !('prop' in obj)
3. !(obj.hasOwnPropery('prop'))
1. はあなたが推奨する方法だけど、obj.prop = undefined にも反応する
2. や 3. でも問題ないし、そっちの方が厳密
ここで 1. でなければマージできない理由は?
0155デフォルトの名無しさん
2016/05/27(金) 21:24:59.90ID:fXm66YRcいやお前自分で
>そのまま列挙して設定したものを、
>未定義と判定して「未検査」と表示する話をしてるんだが。
>頭おかしいの?
と言ってるし
本来この未検査ってのはリクエストに対して、ちゃんと定義されたデータを返す物だろ、
適当なWeb環境じゃないんだから、ビュー側で判別して表示とかありえないだろ
つか取得時のコンテキストどうなってんだよ
0156デフォルトの名無しさん
2016/05/27(金) 21:26:20.32ID:Dt+fFMyqPolyfill も当然、Object#hasOwnPropery を使う
条件別マージだから Object.assign を流用できないとしても根幹となるマージ処理は同じで問題ないと思うんだよね
http://www.ecma-international.org/ecma-262/6.0/#sec-object.assign
0157デフォルトの名無しさん
2016/05/27(金) 21:30:34.70ID:5O2HSGrs未定義じゃないんだって。さっきの例みたら分かるだろうけど、数値に変換できない検査結果はNaNにしてるの。
0/1で持ってて、インフルエンザの検査結果を何を血迷ったかグラフで見て、陰性と陽性がピコピコ蠢くグラフ見て楽しいか?
>>154
単に、「である」を否定を使って比較しない、ってコーディングルールの問題。
0158デフォルトの名無しさん
2016/05/27(金) 21:32:08.16ID:fXm66YRcいやお前は最初の方で undefined との四則演算を容認してただろ
つまり値としての undefined が必要と説いてる
こっちはその値としてのundefinedがいらんとさんざんそれを否定してるわけ
0159デフォルトの名無しさん
2016/05/27(金) 21:34:19.11ID:5O2HSGrs未定義は未検査、検査したけど何らかの結果で…って話だよ。
ある検体検査の中で、結果無しと返してるものに対して、電カル側が持ってる項目リストをピンポイントで開いてきたりするんだよ。
適当なWebじゃねえからいちいち処理してんじゃねえか。
0160デフォルトの名無しさん
2016/05/27(金) 21:35:39.58ID:5O2HSGrsしてないから。
四則演算するとこうなるから、四則演算が成り立たないものは正しく判定しなきゃね、そのためには、null,0,undefined,NaN全部扱い違うよねって言ってんじゃん。
0161デフォルトの名無しさん
2016/05/27(金) 21:44:03.54ID:h7QAH+sV0162デフォルトの名無しさん
2016/05/27(金) 21:44:10.18ID:Dt+fFMyq> 単に、「である」を否定を使って比較しない、ってコーディングルールの問題。
そのコーディングルールの話を初めからいっておけばここまでこじれなかったんじゃないの?
端的に言ってあなたは説明が下手だと思う
自分の主張が伝わらなくて憤慨している様子は伝わってくるけど、原因のほとんどはあなたの中で当然と思うコーディングルールが皆に伝わってないことにあるんじゃないかな
>>10 で ! (否定)を使っているのが気になるけど、何かしらのあなたなりのコーディングルールがあるんだろうね
自分のコーディングルールが万人受けするとは限らないことは気に留めておくといいと思う
0163デフォルトの名無しさん
2016/05/27(金) 21:46:10.68ID:fXm66YRcそれって本来は未検査、結果待ち、結果無しって
別の値を定義して分けるべき内容でしょ?
悪いけど普通にクソ仕様だと思います
>>160
四則演算できると言ってる時点で値として認めてる事になるよね、違う?
0164デフォルトの名無しさん
2016/05/27(金) 21:48:08.24ID:UggnfNpm構文書いているんじゃないよ
はっきり言ってゴミだ
0165デフォルトの名無しさん
2016/05/27(金) 21:48:48.08ID:fXm66YRcもうちょっと待ってくれ
0166デフォルトの名無しさん
2016/05/27(金) 21:52:05.84ID:OuviwO3+0167デフォルトの名無しさん
2016/05/27(金) 21:53:49.64ID:7C5pluWz0168デフォルトの名無しさん
2016/05/27(金) 21:54:15.57ID:Y3oSSTyA0169デフォルトの名無しさん
2016/05/27(金) 21:59:59.70ID:/K+aNa26所詮その程度のカス
0170デフォルトの名無しさん
2016/05/27(金) 22:00:29.40ID:fXm66YRc>nullも、undefinedも、NaNもある理由があってあるんだから。
>nullだけで良かったはずなんてアホみたいな事言われても困る。
これで適切に処理しましょうって事は、undefinedは使用禁止にしても良いでしょ?
別にhasOwnPropertyとかinで検査する事になるんだから
その事には同意してるの?
0171デフォルトの名無しさん
2016/05/27(金) 23:20:18.13ID:Ajerz5wWおっと?ちょっと見立てが狂った。まあそれはさておき、回答ありがとう。
ちなみにリクエストある?
見立てが狂っていたので、俺が勝手に「君にとって有益」だと思っているのもゴミでしかないかもしれんし。
君はこの一連の会話には参加してないと思うけど、こいつらが駄目な点を指摘しろと言われればできるけど。
放置しておけば収まるかと思いきや、そういう感じでもないし。
ただ一番カスなのは、単発で煽っている奴だと思うが。
俺個人のスタンスは、この手の技術的応報は「気が済むまでやれ」だからね。
0172デフォルトの名無しさん
2016/05/27(金) 23:21:03.48ID:Dt+fFMyqobj.prop = undefined とか、NaN の比較とか、定義順の列挙とか、諸々の問題は new Map で解消される
ID:5O2HSGrs が作る医療システムは構造が複雑なので単純なオブジェクトマップで対応するよりも、独自のインターフェースを作る方がいい
https://jsfiddle.net/oo1777o0/
0173デフォルトの名無しさん
2016/05/27(金) 23:51:31.16ID:64E4c/Qqundefined はプログラムのバグじゃないの?
それは、アカン
DBでも、null, undefined を加えて、4値論理だと、SQLが複雑化して、バグが増える
0174デフォルトの名無しさん
2016/05/27(金) 23:56:13.71ID:10EzBfKpたとえば、obj.data('name') だと getter、
obj.data('name', 'hoge') だとsetter。
nullだけいいかと思うかもしれないけど、
obj.data('name', null)という風にnullを代入するsetterがあるかもしれないので
nullとundefinedは区別がついたほうがいい。
0175デフォルトの名無しさん
2016/05/28(土) 00:01:17.19ID:2CcTCqQn一番のカスは質問でも回答でもねえ話を続ける場違いなカスに対し
「俺個人のスタンスは〜」とかドヤ顔で言ってしまう脳味噌馬糞野郎だから安心して
0176デフォルトの名無しさん
2016/05/28(土) 00:03:07.76ID:lIlkJ1vanull と undefined は区別すべきだと思うけど、その場合はarguments.lengthで判定するのが普通
0177デフォルトの名無しさん
2016/05/28(土) 00:15:41.95ID:Q7pM0tvA0178デフォルトの名無しさん
2016/05/28(土) 00:17:23.16ID:U+yYkFDLrubyでa = [0, 1, 2]
def f(a, b, c); endに対して
f(*a)できるようなやつある?
もしくは
g = funciton () {/*arguments使う処理*/};
f = function () {/*g()にargumentsを渡す何らかの手段*/};
gを変更せずにf側の工夫だけで何とかなればいいんだけど
0179デフォルトの名無しさん
2016/05/28(土) 00:23:14.01ID:UVJrtMwg次の開く前に前のcloseするとか
0180デフォルトの名無しさん
2016/05/28(土) 00:24:56.37ID:6huP5UCXそうでなければここまで粘着する意味が分からん。
こいつらは質問にも答えた上で「技術的に」やり合ってるんだから、
文句言う必要も筋もないと思うが。
このスレがこの調子なのはいつものことだし。(少なくとも1年以上前からこう)
単発キチガイが「人格的な」批判だけをしている方がうざいし、
気に入らないのなら出ていけばいいだけだろ。
0181178
2016/05/28(土) 00:28:43.02ID:U+yYkFDL自己レス
var g = function () {alert(arguments.length);};
//var f = function () {g(arguments);}; // ダメ
var f = function () {g.apply(this, arguments);}; // これでいい
f(0, 1, 2, 3);
0182デフォルトの名無しさん
2016/05/28(土) 00:45:35.77ID:F7SYakCjああーいい感じに簡潔にまとまってていいね
自分もMapと専用型派だから、そのまま便乗させてもらいたい
0183デフォルトの名無しさん
2016/05/28(土) 00:48:21.69ID:lIlkJ1vaRubyは知らんが、Function#apply の事か?
0184デフォルトの名無しさん
2016/05/28(土) 00:50:15.08ID:F7SYakCj俺なら考えるの面倒だからpostMessageでリサイズしちゃう
0185デフォルトの名無しさん
2016/05/28(土) 01:21:36.93ID:4RY8P4hk10は、評価した結果falseでなければ、だよ。
undefinedである、もしくは、nullであれば、とはちと違う。
当然と思うコーディングルールというか、xxx==null、と書いておいて、実はnull以外にもundefinedも判定されます、という理屈の方が明らかに間違ってる。
>>163
だから、それは状態として持ってるの。
結果の話なんだよ。
状態と結果をごっちゃにしてはいかん。
結果がある見込みすら無い、少なくとも現時点ではまだ無いか有意では無い、有意な結果がある、のたった3つの、結果の値なの。
クソ仕様はお前の頭。
>>163
だから、してはいけないって言ってるんじゃん。
undefinedは状態で、nullは値なんだよ。
>>170
使用禁止って何だ?お前何言ってるか全く理解してないのか?
代入してないから、undefinedで、別にundefinedを突っ込んでる訳ではない。
>>178
apply
0186デフォルトの名無しさん
2016/05/28(土) 01:30:01.42ID:4RY8P4hk確かに綺麗だと思う。
進捗と結果は分けた方が良いね。
進捗は、同じ検体でも検査によって異なるフェーズを辿るし、ひとつの検査で2つ以上の結果が帰ってきたり、2つ以上の検査でひとつの結果が帰ってくるので、そいつらは分割する必要がかる
0187デフォルトの名無しさん
2016/05/28(土) 02:00:19.58ID:F7SYakCj未定義という概念だけが必要だから、jsのundefinedはいらないよね
言ってる意味わかる?
というか
>当然と思うコーディングルールというか、xxx==null、と書いておいて、実はnull以外にもundefinedも判定されます、という理屈の方が明らかに間違ってる。
ってfalsy判定するって言ってる人がそれ言う?酷すぎでしょ
>状態と結果をごっちゃにしてはいかん。
>結果がある見込みすら無い、少なくとも現時点ではまだ無いか有意では無い、有意な結果がある、のたった3つの、結果の値なの。
>クソ仕様はお前の頭。
いや糞仕様だよ普通に
つかなんでいちいち煽りを入れてくるかね…
俺は散々その未検査とかの状態をundefinedじゃなくて、
サービスの値として別で定義するべきと言ってるわけ
電カル云々ってのは結合って意味でしょ?
その結合するにしても、「undefinedを判定に使う」なんてのはやるべきじゃないでしょ?
アプリケーションレベルの話なのだから、きちんと「未検査」「なし」という値を定義すべきでしょ?
きちんとここまで理解できてる?
0188デフォルトの名無しさん
2016/05/28(土) 02:08:55.19ID:F7SYakCj説明聞く限りだと、明らかにまともなシステムじゃないよ?
そんなのをお手本として語っちゃうのは駄目だと思うよ
0189デフォルトの名無しさん
2016/05/28(土) 02:42:07.52ID:F7SYakCjすみませんでした
0190デフォルトの名無しさん
2016/05/28(土) 03:04:53.76ID:4RY8P4hkらちがあかないおつむでご苦労なこった。
おつかれさん。
0191デフォルトの名無しさん
2016/05/28(土) 03:09:13.25ID:4RY8P4hk全部、有意な「何もない」という情報なんだけどな。
0を発明する前の、指で数を数える原始人みたい。滑稽よね。
0192デフォルトの名無しさん
2016/05/28(土) 03:22:22.32ID:4RY8P4hkそれとも、概念が必要ないんだろうか。
phpのissetも、perlのexistsも、Mの$Dも、はたまたcのプリプロセッサマクロのifdefも要らんというか、使いこなせないんだろうな。
0193デフォルトの名無しさん
2016/05/28(土) 03:43:50.37ID:/MxDZHtX「何もない」ものと区別する必要があるだろ。
0194デフォルトの名無しさん
2016/05/28(土) 04:51:05.16ID:BWGRJTprJS界では有意義に使い分けられてるのだからあってもいいと思う。
無い言語では別の機能で代替してそれは成り立ってるのだからなくてもいいと思う。
ただそれだけの無意味な議論。
0195デフォルトの名無しさん
2016/05/28(土) 05:52:30.30ID:/MxDZHtX-1で代用したりでなんとかなってるしなw
ないならないで工夫次第で何とかなるが、
あれば楽になるっていうものなのだろう。
0196デフォルトの名無しさん
2016/05/28(土) 09:38:09.38ID:PPUGo99f専門家でない自分が検査の詳細を知る由もないんだけど、必要であれば 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 がそれにあたる
0197デフォルトの名無しさん
2016/05/28(土) 09:48:10.32ID:UVJrtMwgまったく同意ではあるんだけど
>>127で
> 病院の回線ってそんなに贅沢に使えないんよ。
ってあるから
やむをえずそうしたってことがあるのかねって思ってた
0198デフォルトの名無しさん
2016/05/28(土) 10:07:17.12ID:oSugN8gYundefined 処理のロジックを入れておけば、新たなフィールドが追加されても
プログラムの修正はそのフィールドを直接扱う所だけで済む。
ゆえに、決して拡張されない領域内では undefined も不要になる
(null と undefined はむしろ全然関係ない話)
という理解でok?
0199デフォルトの名無しさん
2016/05/28(土) 10:17:45.97ID:PPUGo99f> 10は、評価した結果falseでなければ、だよ。
>>10が>>157の "「である」を否定を使って比較しない" のコーディングルールと接触しないのか、って事
「hoge.a が truthy である」の否定を使って比較しているよね?
if 文は内部的に ToBoolean を通して true と比較するから「肯定の否定で比較」してる
if 文に限っては ! を使ってもいいルールなら if (!obj.hasOwnProperty('prop')) も許可しなければおかしい
あと、改めて考えると if (obj.hasOwnProperty('prop') === false) で肯定式のみのコーディングが成立するから hasOwnProperty を敬遠する理由がなくなるね
0200196
2016/05/28(土) 11:11:02.33ID:PPUGo99f「実施の有無」はInterfaceの内部処理として隠れるから実際のところはそれ程コード量は増えないと思うんだよね
Interfaceを作ればその後のコード量が少なくなるから相殺されるか、逆にコード量が少なくなる場合もあると思う
このぐらいのコード量ならzlib圧縮してminifiedしたら十分に小さくなるし
0201デフォルトの名無しさん
2016/05/28(土) 11:20:22.38ID:6huP5UCXそれから>>189、お前は概ね間違ったことは言っていない。
お前ら、設計が出来るつもりなのなら、OPPのスレでも見てこい。
お前らにはいい教材になるかもしれん。
http://echo.2ch.net/test/read.cgi/tech/1463663267/
0202デフォルトの名無しさん
2016/05/28(土) 12:01:27.82ID:oFxbpGnEスレタイも読めない阿呆は出て行ってくれ
0203デフォルトの名無しさん
2016/05/28(土) 12:12:29.14ID:8NhNw/7cしょーもない宣伝するな
しかもOPPて
0204デフォルトの名無しさん
2016/05/28(土) 13:07:01.36ID:6huP5UCXお前の回答はどれなのさ?
こいつらは回答してるし、質問は掃けているのだから、回答もしていない奴が口を挟む筋はないよ。
最近、お前みたいな「筋をわきまえないキチガイ」は2ch一般に増えたけどね。
0205デフォルトの名無しさん
2016/05/28(土) 13:29:38.68ID:GZb66p/J0206デフォルトの名無しさん
2016/05/28(土) 15:14:44.57ID:h5j9D0+lすまんが、否定派は結局何が主張したいのかがわけわからん。
true/falseはいらない、1と0でいいと言ってるのと同じでしょ。
無くてもどうにかなるからという論を散々されても、
無いほうがいいということにはならないからね。
でも最初の話はそうじゃなかったでしょ?
JSにおいてnullとundefinedの関係及び立ち位置がやや難しいという話だったでしょ。
undefinedが要るか要らないかのような単純な話じゃないし、
今からJS2を作ろうというのでもないのだからそんな話をしても全く意味が無い。
それよりも関係及び立ち位置をここで、またこれから振り返って整理していこうというのが
正しい論議だと思うよ。
0207デフォルトの名無しさん
2016/05/28(土) 15:34:39.73ID:7z0JA/T2age: 1,
f: () => {
console.log(this.age);
}
};
obj.f();
functionじゃなくて() =>で関数を書いた時にf()の中からageの値を取得する方法を教えてください
0208デフォルトの名無しさん
2016/05/28(土) 16:01:02.90ID:jKO2qa04自己満足で解決
0209デフォルトの名無しさん
2016/05/28(土) 16:28:58.11ID:6huP5UCXその場合はfunctionと書く方が正解
0210196
2016/05/28(土) 16:47:58.29ID:PPUGo99f一緒くたにされてるけど、別に undefined 不要は唱えていない
自分が主張したのはプロパティが存在しない事を確認する為に obj.prop === undefined を使うべきではない、という事と
ID:5O2HSGrs が考える医療システムコードの問題点だけ
null, undefined の違いは>>102で説明したことが全て
undefined 比較はほとんどの場合において不要
0211デフォルトの名無しさん
2016/05/28(土) 16:53:14.43ID:F7SYakCjレスしないと行ったけどむかついたから言わせて
>>192
なぜそう煽るの?しかもそのレスってこっちの内容まともに読めてないよね?
まず未定義の判定操作がいらないとは言ってないよ
未定義を値として扱う事全般が駄目と言ってる
まず大前提として、こっちは端的にBoolean、Number、文字列やユーザー定義の列挙型と、
Nullable、Undefinable(?)な型はそれぞれ直交した概念ときちんと分けて考えてるわけ
(NaNはNumber型の値の一つとして見てるから、その点でそちらとは考えが違う)
で君の言ってるシステムは本来アプリケーションの1つの型(もちろん値が直交した型なら複数)として実装する物を
変数の未定義状態を表す型(Undefineable)に対し、
なぜかアプリケーション側の定義値の一つをぶっこんでいるでしょ?
それ普通に糞仕様だよねって話
理解できてる?
違うと言うならズレた煽りを入れずに、何が違うか具体的に言ってね?
0212196
2016/05/28(土) 17:01:36.87ID:PPUGo99fobj.age で可能だけど、そこでアロー関数を使う意図が疑問
アロー関数はthis値を変化させないときに使うもの
0213196
2016/05/28(土) 17:22:13.49ID:PPUGo99fお疲れ様
多分、彼( ID:4RY8P4hk )はあなたの意見を誤読してるだけだと思う
あなたの主張「>>196の状況でundefinedと比較する仕様(設計)がNG」
彼が解釈したあなたの主張「JSにundefinedは必要ない」
0214デフォルトの名無しさん
2016/05/28(土) 17:31:05.73ID:B2G67qElでもってアプリレベルでは共通するシンボルを使えばいいとも考えられる。
但し、1つ理由のためnullは存在価値がある。
それは偽性だということ。
では偽性のシンボルを自由に作れれば良いのかというとそれは微妙。
偽性な値というのは各型に1つくらいしかなく限られてるからこそ、
その性質を活用しやすいと言うこともある。
nullはだいたいオブジェクト型の唯一な犠牲の値としての立場を振るう。
よって、nullという存在を用意しておくのは、
シンプルや汎用的にし過ぎて利便性を犠牲にすることがない
良いバランスを狙えていると思う。
0215デフォルトの名無しさん
2016/05/28(土) 17:37:37.39ID:F7SYakCjすまないありがとう、落ち着いたよ
まさにおっしゃるとおりなので、>>196に便乗させてもらいます
よく考えたらコードに一切落としてないから、人に強く言える立場でもないなあ…
0216デフォルトの名無しさん
2016/05/28(土) 18:51:22.49ID:bfGuDmoK0217デフォルトの名無しさん
2016/05/28(土) 19:13:15.00ID:B2G67qEl0218デフォルトの名無しさん
2016/05/28(土) 19:21:59.51ID:4RY8P4hkぶっこんでないから、undefinedなんだけど、まぁいいや。
定義されていない、を定義してるっておかしいと思わないのかな。
クソ仕様は、undefinedを代入してる、って誤解してるババロアと取り替えても支障のないレベルの脳ミソだと思うけどね。
0219デフォルトの名無しさん
2016/05/28(土) 19:59:16.01ID:1ecGmLwKてめえのあたま埃でも入ってんじゃねえの
0220デフォルトの名無しさん
2016/05/28(土) 20:06:57.74ID:6huP5UCXいや違うぞ。
>>211の主張は、「undefinedを代入するな」ではなく、「undefinedを有効値(意味のあるもの)として使うな」だ。
プログラミング言語上のundefinedに対し、アプリケーション上の意味をオーバーロードしていることを問題視している。
といってもこの表現では君には伝わらないだろう。そこでさらに平易に言い換えると、
例えば、Ruby等、undefinedがない言語で組んだ時、
アプリ上で「未実施」「成功」「失敗」「情報無し」の4値状態が必要であれば、
当然 true/false/nil では足りないから何らかの対策をするだろ。
それをJavaScript(4値状態可能)であったとしてもやれと言っている。
まあ君はNaNも導入しているので5値状態まで行けるのかもしれんが、どこまでそれやるの?という話になる。
0221デフォルトの名無しさん
2016/05/28(土) 20:14:47.49ID:19MLvfJY0222デフォルトの名無しさん
2016/05/28(土) 21:13:45.88ID:/MxDZHtXhttp://bleis-tift.hatenablog.com/entry/scala-null-none-nothing-nil
似たような意味でも違う概念なら違うものに割り当てるべきだよ。
0223デフォルトの名無しさん
2016/05/28(土) 21:22:05.08ID:ynWa4gys変数の初期化をしたいけど、いれる物がない時はnullを入れるべき
undefinedを入れるのは間違っている
0224デフォルトの名無しさん
2016/05/28(土) 21:34:27.07ID:ubVCvz+aお願いだから書き込むのをもうやめてくれ
何いきなり「cのdelete」とか言い出しちゃってるの?
0225デフォルトの名無しさん
2016/05/28(土) 21:42:53.12ID:ynWa4gysまだ一回しか書き込んでいない
0226デフォルトの名無しさん
2016/05/28(土) 21:43:39.30ID:LvedKHwv俺c/c++メインだが、その例えは意味がわからん
0227デフォルトの名無しさん
2016/05/28(土) 21:44:56.20ID:ynWa4gysc言語で、フラグの為にnullを代入することはあっても、deleteで消すことはないだろ?
0228デフォルトの名無しさん
2016/05/28(土) 21:50:45.87ID:LvedKHwv言いたいことはわかったけど、それと例えが全くマッチしてない気が…
0229デフォルトの名無しさん
2016/05/28(土) 21:51:00.22ID:ubVCvz+a0230デフォルトの名無しさん
2016/05/28(土) 21:52:08.66ID:UVJrtMwg0231デフォルトの名無しさん
2016/05/28(土) 22:55:04.19ID:4RY8P4hk何もない事を現すものに、何かを使うと、それは、「何もない事を現すもの」という実体になっちゃうでしょ。
1つ2つの欠けうるフィールドにであれば意味はあるだろうけど、
数千の項目のうち必要なものだけが帰ってくるというものに対して、
この項目は今回入ってません、って通信する意味はあるのかな。
0232デフォルトの名無しさん
2016/05/28(土) 23:20:30.96ID:6huP5UCXとりあえずデータ取得はJSONでサーバからもらって、フォーマットは>>135みたいなのなんだろ?
つまりネットワークバンド幅をケチるためにundefinedは最初から抜けていると。
そこまではその実装で正しいと思うぞ。問題はその先だ。
あとついでに答えも言っておくと、どっちの実装でも一長一短あるんだよ。
だからそれぞれの利害得失を分かった上でその実装にしているのならそれでいいんだよ。(これを設計という)
ただ、お前らどちらも「俺の方が正しい」と思っているだけで、
相手側の実装も含めての利害得失をさらっと言えないだろ。
それじゃ駄目なんだな。
なお、俺ならお前らの中間の実装にする。でも君達はこれも想像できないだろ?
君達には実装時のオプションが足りてない。
まあ、でもこういう風に議論することは多分お互いのためになるだろうから、頑張れ。
0233デフォルトの名無しさん
2016/05/28(土) 23:31:47.42ID:viYscYES滑稽やなこいつw
0234デフォルトの名無しさん
2016/05/29(日) 00:46:26.74ID:0W+JhSU+ネットワークからもらうのは通信電文だよ。
通信電文自体イメージできてないかもしれないけど。
意味のない中間の実装とか要らないの。
相手側の実装、結果の値の入っていないものに、わざわざ結果が入ってませんと入れていく、に文句つけるとすればただ一つで、
結果が入っていないことが問題になるのは、その結果を使用しようとするときで、電文をパースしてオブジェクトに乗せた段階では、
どれに結果が入っていて欲しいか、なんて事は把握してないんだよ。
だから、足回りが結果が入ってなかったと設定する事はできないし、
「知りうるすべてのフィールドに対して、これは入っていなかった」って設定する事も無駄すぎるの。
知りうるすべてのフィールド、も保守管理していくとなると、永遠に保守を続ける必要が発生するよね。
そうなると、話はシンプルで、貰っていない≒入っていない、の構造を維持するのが一番よね。
あと、検査結果に対して、(今のところ)結果無しを何か定数(文字列でも)で持つのはよろしくない。
その後、新しい検査結果として、同じ、またはとてもよく似たものが入ってきた時に、それと鑑別するのが不可能だったり後からデータコンバートが必要だったり、エスケープしていく必要があるよね。
であれば、データを解釈した結果未来永劫に渡って帰ってくる可能性の無い、かつどこにでもある定数としてのnullを使うべきでだよね。
進捗自体は、別のデータが貰えてるので、そいつでフィルタすれば良い。
0235デフォルトの名無しさん
2016/05/29(日) 02:13:36.39ID:JYpYJI9w0236デフォルトの名無しさん
2016/05/29(日) 02:33:08.25ID:qvzR6wN9おいおい俺にレスを付けるかw
やり合ってるのは俺じゃないぜ。まあ、安価自体には大して意味がないかもしれんが。
> 無駄すぎる
> 貰っていない≒入っていない、の構造を維持するのが一番よね。
これらについては正解。相手側の欠点と、自分側の利点は言えた。
では相手側の利点と自分側の欠点は言えるか?つまり相手側が何故相手側の主張をするかだ。
まあこれは言えなければ相手側に言ってもらえばいいんだが。
そうすればお前らお互いに知恵を出し合ってブレスト出来て前に進めるだろ。
そうやって自分の中の実装オプションを増やしていけば、
仕様を聞いた瞬間に複数の実装が思い浮かんで選択できるようになる。
下らない文法争いからはいい加減に卒業した方がいい。あんな事をやっていても全く上達しない。
0237デフォルトの名無しさん
2016/05/29(日) 02:33:34.96ID:qvzR6wN9というか正直、こじつけただけのように見える。ただ、それはそれでいいんだよ。
君の実装は軽量高速動作向きだ。
だからプリミティブで対応するというポリシーなら、それはありなんだよ。
問題はそれを分かってやっているのか?ということなんだよ。
あと、話を大きく考えすぎだ。身近な成功例があるのだから、それを参考にすればいい。例えば、
000: 未実施
100: 実施中、結果待ち
200: 結果良好、終了
303: 再検査中
304: 再検査終了、問題なし
404: 結果不良
とかな。何の事かは分かるだろ?それを参考に決めうちしたとして、ほぼ全部設定できるはずだ。
どうしても駄目なら 600: その他、で直接stringを指定すれば済むが、
まあこれは分かると思うが避けられれば避けた方がいいだろう。
いずれにしても、この方式は拡張するにしても容易だ。
0238デフォルトの名無しさん
2016/05/29(日) 02:34:17.67ID:qvzR6wN9http://echo.2ch.net/test/read.cgi/tech/1449440793/
お前らが延々と文法の話しかできない事に辟易していた。
この手のプログラミングの本質についての話なら、当然歓迎する。
だからあっちで勝手にやってくれても構わないし、今回みたいに収拾つかない場合には助け船も出す。
とはいえ、今回は君らだけでもっと走れるはずだ。
上記のように、反対側サイドは相手側に出してもらってもいいのだから。一人で走りきる必要はない。
だからまあ、今話している連中で行けるところまで行ってみるべきだね。
場所は上記の通り、移動したければどうぞだが、個人的にはここでやって構わないと思うけどね。
役に立たないレスしかしないゴミは無視でいい。
君らがガンガン回答しているのだから、君らが牛耳るべきなんだよ。
回答者のレベルが分かるのは質問者にとっても有益だ。
質問も全部掃けている。
質問と混線してやりにくいということになったら、その時にスレ分割を考えればいいだけのことだ。
なお、ここは質問スレなのだから、質問者は議論の空気を読まずにいきなり質問を落としていい。
それで議論がぶった切られるのが嫌なら、議論は別の場所でやれってことでしかない。
0239デフォルトの名無しさん
2016/05/29(日) 04:35:50.01ID:qTFaTssRもうお前が型の基本も読解力もなく煽ってるだけの存在ってのは理解したから良いよ
結局何も答えられずに煽るだけだったね
0240デフォルトの名無しさん
2016/05/29(日) 04:45:22.18ID:qTFaTssR設計がUndefined許容になる事を秤にかけたら遥かに前者のがいいっしょ
利得がって言ってる拡張は、プロトコル上は1レスポンス1バイト〜高々数十バイト(項目数)程度の差で済む
ISDN相手じゃあるまいし、中は同軸使ってた頃のシステムでも1Mぐらいはあるから、そんなの問題にならないよ
単に古いからなし崩し的に使ってるだけだと思うよ
で、それをかの人はなぜか良設計だと思い込んでると
まあもうどうでも良いけどね、本人最後まで理解しなかったし
0241デフォルトの名無しさん
2016/05/29(日) 04:47:37.88ID:qTFaTssR正しくは、プロトコルを拡張するのと、設計がUndefined許容になる事を秤にかけたら
0242デフォルトの名無しさん
2016/05/29(日) 05:02:06.30ID:9ISBvfBu0243デフォルトの名無しさん
2016/05/29(日) 05:07:22.44ID:qTFaTssR>知りうるすべてのフィールド、も保守管理していくとなると、永遠に保守を続ける必要が発生するよね。
全部フィールドを保守するのが無駄と言ってるけど、
ビュー側で分けてるんだから同じ事だよ?
なぜか保守してないことになってるけど
0244デフォルトの名無しさん
2016/05/29(日) 05:22:17.03ID:qTFaTssR末端でそれぞれ対応してるモジュール同士が理解できればそれで良いっていう体の
オブジェクト送信と保存のための汎用ミドルウェア扱いしかしてないって事だよね
そして結果と言う名の値にごちゃごちゃデータ入れてるから、
各値を読めない末端は何のメタ情報も取得できない
それで保守しにくいって当たり前じゃんよ、何も考えずに末端で適当に実装してるんだから
どういう体系なのかは知らんが、正直関わりたくない案件です
0245デフォルトの名無しさん
2016/05/29(日) 05:24:34.66ID:uH1/jPAHバイナリのプロトコルがいいよ。
たとえばJSONをgzip圧縮するとかNE!
0246デフォルトの名無しさん
2016/05/29(日) 05:32:26.63ID:9ISBvfBu貰った明示的な空値と貰ってない暗黙的な空値を区別するために
両方の存在が必要ということだな
0247デフォルトの名無しさん
2016/05/29(日) 06:24:18.47ID:0W+JhSU+空論だらけで笑えるわ。
undefined許容と言うか、お前らの見識狭すぎるだろ。
ざっくり白本から引用すると
http://shirobon.net/22/ika_2_3/i_m_2_3.htm
こうあるわけだ。
中見るとわかるけど、ひとつの検体でも、凄まじく別れるわけ。
0248デフォルトの名無しさん
2016/05/29(日) 08:06:23.01ID:7TpVCW1+JavaScriptスレの住人に医療知識を求める方がおかしいと思うけど、あなたは ID:4RY8P4hk ?
多態性が必要ならオブジェクト指向をすればいい
一つのオブジェクトでプロパティチェックを一つ一つやって確認していく方法は極めて無駄
0249デフォルトの名無しさん
2016/05/29(日) 09:08:45.76ID:0W+JhSU+だから、知らないなら知らないで良いんだよ。
しったかぶって、この設計で大丈夫、クラスやら、インターフェイスでガッチガチに固めれば良い、なんて発想されても、それじゃ不便なんだよねえ、って話するしか無いじゃん。
DBにも実際にスキーマフリーなkvsのような物に入ってるんだし。
何を持っているかは、もの次第。
その上で、持っていないものに関しては、定義しない、
持っているけど、中身の入っていないものは、定義して中身にnullを入れる。
そんなけ。
0250デフォルトの名無しさん
2016/05/29(日) 09:18:33.91ID:cJcPZgXw> 中身の入っていないものは、定義して中身にnullを入れる
お前は雑巾で顔を拭くのか?
0251デフォルトの名無しさん
2016/05/29(日) 09:43:12.25ID:BS/+K0m3iPhoneのtextwellで使用したいです。
0252デフォルトの名無しさん
2016/05/29(日) 10:11:38.70ID:pBCN0dYY0253デフォルトの名無しさん
2016/05/29(日) 10:29:29.44ID:0W+JhSU+喩えが下手すぎて何も伝わらん。。
>>251
(""+str).replace(/(\r|\n|\r\n)/g," $1")
でいいんじゃないの?
>>252
php(isset)
perl(exists)
なんかじゃないの?メジャーどころでは。
定義せずにいきなり代入できる言語にはたいていあると思うよ。
0254デフォルトの名無しさん
2016/05/29(日) 12:24:19.31ID:7TpVCW1+String(string).replace(/(?=\r\n|[\n\r])/g, ' ');
>>253
そのコードは \r\n にマッチしない
\r\n に対して2回置換処理を行う
0255デフォルトの名無しさん
2016/05/29(日) 12:26:53.13ID:GuNB7bh5貴重な時間を数日間も潰してよく続けられるものだと思う
よほど時間の使い方を学習せずに育ったか、毎日が日曜日で暇なのだろうな
0256デフォルトの名無しさん
2016/05/29(日) 12:35:23.09ID:0W+JhSU+ありゃ、そうだっけ。
貪欲だと思ってた。
\r\n|\r\|\nならいいっぽいな。勉強になったわ、ありがとう。
>>255
だって先月ブッチギリでサブロクをオーバーして強制休暇で暇なんだもの。
0257デフォルトの名無しさん
2016/05/29(日) 12:36:31.11ID:7TpVCW1+何がどう不便なのか全く伝わってこない
悪いけど、情報を小出しにして情報アドバンテージを得ようとしているように見える
「持っているもの」や「持っていないもの」のような抽象的な概念で誤魔化さないで全体の処理の流れを具体的に説明したら?
DBからそのまま二次元配列に落とし込む訳じゃないよね
データベースから引き出しすデータのフォーマットがどのようなものなの
DBから引き出したデータをJavaScript出扱いやすいように構造化する処理があるはず
オブジェクト思考を推奨しつるのは後者の処理であって元のデータ構造がどうなっているかは関係ない
0258デフォルトの名無しさん
2016/05/29(日) 12:43:40.90ID:qvzR6wN9> プロトコルを拡張するのと、設計がUndefined許容になる事を秤にかけたら
> 遥かに前者のがいいっしょ
プログラミング的には、はいその通り。
> ビュー側で分けてるんだから同じ事だよ?
はいその通り。どこに書くかだけでコード量自体は大して変わらない。
だったら一箇所に纏めて書いている方が保守しやすいというのも事実。
> 汎用ミドルウェア扱いしかしてない
はいその通り。
というわけでまあ、プログラミング一般論として言うなら、君の実装の方がかなり「マシ」だし、「マトモ」だと思う。
言っていることも至極まともだ。プログラミングの腕前も、君の方が上だろう。
ただ、多分あの「軽量実装」が「仕様」なんだよ。
0259デフォルトの名無しさん
2016/05/29(日) 12:44:04.66ID:qvzR6wN9低速だが安定堅牢に動作する。何か問題があればたちどころに検出できる、まさにエンタープライズソリューション。
しかし、悪く言えばSEが余分な機能をくっつけまくった、顧客にとっては使わない機能の固まりだ。
あれでどうにかなっているんだから、ビュワー自体は簡易的なもので、本体はDBだ。
これまで紙でやっていた物を、電子化することによって閲覧、検索をサクッと出来るようにしたい。
でも、それだけでいいんだよ。DBが壊れていたり、ネットワークが潰れたら、最悪紙で対応できる。
ただ、そういう非常時じゃない時は、サクサク検索閲覧したい、多分それだけ。
だからビューワーはつべこべ言わず、今あるDBにアクセスして、内容をサクッと表示できればいいんだよ。
そこであれこれ検出する必要はなく、DBアクセスして見えた内容を表示できればいい。
だからビューワーのためにプロトコルを拡張するなんてあり得ない。
今あるDBのデータを再構築とかもあり得ない。
今動いているシステムの上に「きっちり居候しろ」、ということなんだと思うよ。
DBも多分デタラメ投げ込み方式だが、それもありだろう。
もちろんITソリューションとしてはやや問題があるが、
現実的には、今時の医者は患者の顔もろくに見ずパソコン操作に忙しいと聞く。
本来は彼等の負担を減らす為の「ソリューション」が負担を増やしている、本末転倒な事態になっている。
だからIT側の都合ではなく、医療実務者の都合側に100%振ったら、多分彼が言っている感じになる。
登録だけはしておくから、あとはよろしく。検索と閲覧がサクサクできればいいです、ってところだろう。
(この「登録」ってのは整合性がある状態ではなく、情報漏れがない状態で登録されているだけ。
つまり検査によってnullの意味が異なったりもするが、それはIT側で辞書引きして対応しろということ)
0260デフォルトの名無しさん
2016/05/29(日) 12:44:27.00ID:qvzR6wN9> 設計がUndefined許容
これは大問題なのだが、NaNをbool値扱いしていることからも分かるように、彼はこれを理解していない。
さてこれについては、グローバルは禁止(キリッみたいなのは入門書でも触れている=全員一度は聞いたことがあるとして、
undefinedについては所詮入門書を書いている奴らはその程度だということなのか、
あるいはそもそもundefinedがあるようなゆるふわ言語で業務システムを構築することがこれまで無かったのか、
少なくとも(キリッとかやっている奴は見たことがないから、初心者が知る範囲にはそういう情報が無いのだろう。
てな感じか。では続きをどうぞ。
0261デフォルトの名無しさん
2016/05/29(日) 12:47:26.66ID:7TpVCW1+JavaScriptは貪欲(最長一致)だけど、貪欲でなくても結果は同じ
0262デフォルトの名無しさん
2016/05/29(日) 13:01:45.99ID:0W+JhSU+なんでそんなに突っかかるのかわからん。
アドバンテージもなにも、現にお前が無知なだけだし、だからといって臨床検査の事細かく説明したところで理解できんの?
お前が、卑怯な手段で叩かれてると思ってるのは、全部お前が単純に馬鹿で無知で加えて想像力と謙虚さを持ってない故の卑屈なコンプレックスだわ。
ほぼそのまま二次元どころか多次元配列に落とすよ。
誰もが受けたことあってわかりやすいところで説明すると、眼科のあの気球見るオートレフだと、球面度数と、乱視度数と乱視軸度の3項目が一発で出て、そいつらは同一時刻の検査結果としてひとつの結果にまとまってるもんなんだが、
左右の目を必ず測るとは決まってない。
右、左自体の結果が入ってない事がありうる。
ところが、左右測ったけど右だけ測れなかった、それは、測ったって事実は残さないとならん。
だが、右目のなんとか、が測れなかったわけではなく、右目の結果自体がまとめて、無い。
そしたら、右目の結果には詳細を入れようが無いわな。測れなかったんだから、何が測れなかったと言うわけではなく、右目が測れなかったという事実しか無い。
また、再トライして測れない、というわけでも無いので、端的に失敗で終わらせるわけにも行かん。
それは、測ったけど今のところまだ結果は入っていない、って状態でしかない。
それを、オートレフ計測失敗、と個別の定義値を持って管理したらあの項目数でどうなるんよ。
ホルター心電図なんかもっとめんどくさい。24時間の時系列データひとつながりが端子数ある。それが一まとまりのデータ。
0263デフォルトの名無しさん
2016/05/29(日) 13:07:42.96ID:0W+JhSU+ダメ。DBが最悪潰れていたら、は許容され得ない。
電子カルテ三原則というものがあって、真正性、保存性、見読性ってみっつの要素が保てていないものは、診療録、照射録たりえない。
なので、どんな入れ方をされても、後からなんとでもなるようなゆるふわ仕様で、それを確実に歴を含めて保存してる。
都合が悪くなったから、この定数はこの日から別の意味です、は使えない。
組み込みの型で、あとからかぶり得ない値である必要と、無いものは無い、無かったと勝手に書かないという原則もある。
測ってもない熱が、カルテに「熱無し」って書かれても困るっしょ。
0264デフォルトの名無しさん
2016/05/29(日) 13:24:29.14ID:xy9Dpqm6こんな頭おかしいのがまともな職場にいられるわけないから当然か
0265デフォルトの名無しさん
2016/05/29(日) 13:30:53.09ID:KqqGQ0oS(※なおクライアント側でのルーティングフレームワークは初めて)
/fooと/foo/barと/foo/bar/baz
みたいなルーティング定義できるけど
これってよくやるもの?
これすると、<img src="../hoge.jpg">とかの相対指定がおかしくなる……
(1)mod_rewriteで弄る?
(2)それとも<img src="/img/hoge.jpg">みたいに相対指定やめる?
(3)そもそも複数階層を同一ページみたいなことはしない?
よろしくお願いします
0266265
2016/05/29(日) 13:32:19.27ID:KqqGQ0oS/fooも/foo/barも/foo/bar/bazも同じhtmlファイル
で、/foo/bar/bazあたりでリロードしたときに
<img src="../hoge.jpg">がちゃんと出なくなるという現象……
0267デフォルトの名無しさん
2016/05/29(日) 13:33:37.15ID:0W+JhSU+0268デフォルトの名無しさん
2016/05/29(日) 13:35:41.41ID:0W+JhSU+どーしても同一ページを別の階層にルーティングしたかったら、
なんか画像パス返すcomputed定義したmixinでも用意したら?
でも何でも別の階層にルーティングしたいの?
0269デフォルトの名無しさん
2016/05/29(日) 13:45:07.54ID:qvzR6wN9いや、そういう話をしているわけではない。
というか、「電子カルテ」と「プログラム構造」の仕様は別物だから、別に考えてくれ。
多分な、君が担当している案件は、医者達は一旦「紙」に記録して、
それをおそらく別の人がDBに再入力しているだろ?
この場合は電子システム以外でのバックアップを持っていることになる。
また、別の人が入力する時に「明らかな間違い」はそこで検出される。それを言っている。
(これが「電子カルテ」として容認されるかどうかは俺は知らない)
この場合は君の実装でも悪くはないんだよ。
ただ、マスターがDBで、医者が直接入力、失われた場合に代替手段は無いというのであれば、
君の実装(というよりそのシステム全体)が駄目だろ、ってことになる。
(問題発生時の検出機構がないので危険)
とはいえ、常に全員が最新鋭の完璧システムを使えるわけもないのだから、
その場合は、それは懸案事項として挙がっており、予算が付けば改修されますって事なんだとは思うが。
0270デフォルトの名無しさん
2016/05/29(日) 15:26:36.97ID:0W+JhSU+しないよ。紙に。
紙に書いたものも正としたら、診療録が2倍になるでしょ。
そしたら、2倍の物を五年間保存するはめになる。
入力の間違いは、間違いとして明確に訂正をもって再度、訂正前の情報と共に保存するんだよ。
失われた場合に代替手段が無いって、そんなもの紙カルテでも火事で燃えたり、津波で流されたら終わりだよ。
だから、寸分のコピー劣化もなく複製できて、情報量が増えても物理的な量が増えない、デジタルな情報としてバックアップを他拠点に持っていける形にするし、それを保存するんだよ。
問題発生時の検出機構はあるよ。真正性の担保がそのもの。
とはいえ、それは医師がそう書いたならそれが正しいんだけど、なんにせよすべてをジャーナルとして保存してあるから、追えるし復元は出来る。
…おまえ業務系の経験無いんだろ。
0271デフォルトの名無しさん
2016/05/29(日) 15:59:45.12ID:pBCN0dYYsetTimeout(func(), 0);
という記述を見たのですが、どういう効果がありますか?
func();
とやるとの同じだと思うのですが何か違うのでしょうか?
0272デフォルトの名無しさん
2016/05/29(日) 16:13:27.53ID:KqqGQ0oS回答ありがとう
こうしたいっていう要件があるわけじゃなく
http://router.vuejs.org/ja/nested.html
の説明で疑問に思った次第
ニュアンス的には
複数階層を同一ページなんてしない
→どうしてもするならパス構築するなんらかの仕組み(vueならv-attrあたり)
って感じなのかな
0273デフォルトの名無しさん
2016/05/29(日) 16:19:19.34ID:uH1/jPAHfunc()だとその場で実行される。
setTimeout(func(), 0)だと関数(正確にはクリックなどの
イベントハンドラ)が終わってから実行される。
setTimeoutを使った場合、関数が終わった後にすぐに実行されるわけじゃなくて、
暇になってから実行される。暇っていうのはブラウザがやれなければいけない
レンダリングなどの処理を行って何もしなくなってからということ。
だから
・クリックなどのイベント → func()実行 → イベントハンドラ終了
・クリックなどのイベント → イベントハンドラ終了 → ブラウザの処理 → func() 実行
という違いがある。
0274デフォルトの名無しさん
2016/05/29(日) 17:29:54.45ID:s6IpqRgC内容の真偽はともかく、そろそろ注意した方がいいんじゃね?
業務知識をこんなところに書くとか、社会人としての人間性を疑われてもおかしくないぞ。
0275デフォルトの名無しさん
2016/05/29(日) 17:34:17.73ID:G8EDN3vdそれなりのブライドはあるけれども、散々他人をこき下ろしたあなたに謙虚さを持ってないとはいわれたくないなあ
あなたには謙虚さがかけらも感じられない
> ところが、左右測ったけど右だけ測れなかった、それは、測ったって事実は残さないとならん。
> だが、右目のなんとか、が測れなかったわけではなく、右目の結果自体がまとめて、無い。
「右だけ測れなかった」としておきながら、「測れなかったわけではなく、右目の結果自体がまとめて、無い」は意味不明
「測れなかった原因」がさっぱり書いてないのに「再トライして測れない、というわけでも無い」の根拠はどこにあるのか
「測らなかった」ならともかく、「図れなかった」のなら「測れなかった原因」を記録に残さないと同じ失敗の繰り返しになる
右目の計測結果については「計測不能」として備考欄にでも「測れなかった原因」を記録に残しておくのが妥当
というか、いきなりこの人は何を言い出してるんだろうね
null云々よりもundefinedの扱いに非難が集中していたと思うけど
0276デフォルトの名無しさん
2016/05/29(日) 17:38:12.13ID:G8EDN3vdfunc() の返り値となる関数オブジェクトが非同期に実行される
func() の返り値が関数オブジェクトではないのなら setTimeout は期待通りに動作しない
0277デフォルトの名無しさん
2016/05/29(日) 18:17:47.96ID:eYOjmycoこういう風にdomをconstで変数に入れても大丈夫ですか?
o.innerHTMLを書き換えたりoの中の子要素が変化してもエラーにならないんですが・・・
constって書き換えるとエラーになるんじゃなかったんですかね?
0278デフォルトの名無しさん
2016/05/29(日) 18:27:43.87ID:uH1/jPAH書き換え不可能なCD-Rに、http://www.google.co.jp ってリンクが書いてあっても
それをクリックするたびに、表示される内容は変わるだろ?
それと一緒
0279デフォルトの名無しさん
2016/05/29(日) 19:30:52.11ID:rcX9jYV5そのひも付けが固定化されるというだけで値の変化は関与しない。
0280デフォルトの名無しさん
2016/05/29(日) 20:10:17.52ID:roFUTjZ8代入とか比較するのはダメ?
プロパティの有無を見るにはinやhasOwnPropertyで十分?
0281デフォルトの名無しさん
2016/05/29(日) 20:11:28.98ID:qvzR6wN9言っていることは分かるのだけど、それは常識的なことであって、ああそうですか程度でしかない。
そこではなくて、他の人が批判しているのは、(ガチの本番系で)君の実装は駄目だろ、ということなんだよ。
俺は実装を聞いて、多分本番系ではなくて傍系だと思った。だからそれもありだというスタンスだったんだ。
(出先で確認するためとか、或いは他システムで代替も出来る状態)
ただ、それが本当にガチの本番系なのなら、それはマジであり得ないくらい酷い仕様だよ。
だってプリミティブに状態を割り当てるとか、せいぜい5〜6個しか無いんだから、将来的にヤバイでしょ。
(というか最初から無理だと思うが、、、)
おそらくやたらある状態をstringでそのまま持っているっぽいけど、それだと検索もしづらい。
タグなりコードなりを割り付けておかないと、書き方の揺らぎだけで検索から落ちてしまう。
undefinedを残しても特段メリットもなく、デバッグがしづらくなるだけ。NaNについても同様。
だから本当に君が君の案件の状況を理解できていて、プログラミングの腕前もあるのなら、その態度はないんだよ。
最初から組めるのなら、ど素人でもしない程の酷い実装になっている。(というか逆にそれで組む方が難しい)
多分、これまで少しずつシステムを組み上げてきて、キメラ状態になっている物をそのまま使っているのだと思う。
一言で言うと、
> 単に古いからなし崩し的に使ってるだけだと思うよ (>>240)
が多分当たってる。
冷静に考えてみればいい。今君はその案件の仕様を知っている。
そこでシステム刷新の機会があり、予算が十分付いたとして、今の実装を選ぶかい?
0282デフォルトの名無しさん
2016/05/29(日) 20:52:17.36ID:pBCN0dYY詳しい説明ありがとうございました。かなり分かってきました。
>>276
>func() の返り値となる関数オブジェクトが非同期に実行される
>func() の返り値が関数オブジェクトではないのなら setTimeout は期待通りに動作しない
と言う事は
setTimeout(func(), 0);
function func(){
...
return "string";
};
これはダメで、
function func(){
return function(){
...
return "string";
}
};
これならOKと言う事ですか?
0283デフォルトの名無しさん
2016/05/29(日) 20:58:12.35ID:uH1/jPAH>>276は忘れたほうがいい。
意味不明だから。
0284デフォルトの名無しさん
2016/05/29(日) 21:22:43.29ID:KqqGQ0oS仕様的には第1引数は関数または実行したいコードの文字列
setTimeout(func, delay)
だとfuncそのものをdelay後に実行
setTimeout(func(), delay)
だとfuncを即実行してその戻り値をdelay後に実行
ってことだと解釈してる
というわけで前者("string"をreturnしているほう)はエラーが出ると思う
stringってなんやねんって
0285デフォルトの名無しさん
2016/05/29(日) 21:38:07.82ID:bghshKckそれだけでは決められない。
例えばundefinedを直に扱わないようにhasOwn等を利用するスタイルにするとしたら、
他の部分でもそういう関数テスト型に揃えないとおかしい。
逆に言うとスタイルを揃えるのならどうだっていい。おかしくないように書け。
0286デフォルトの名無しさん
2016/05/29(日) 22:36:23.66ID:9WOIUBG7後者のコードで問題ないが、コールバックの返り値はどこにも返されない
もし、あなたがコールバック関数の返り値をどこかで受け取りたいのなら Promise のような仕組みを利用する事になる
関数の返り値が関数というロジックは同じ形式の関数を複数生成したり、関数スコープに値を閉じ込める場合に使われるわけだが、テクニックとして知っておくとコードの表現力が上がる
0287デフォルトの名無しさん
2016/05/30(月) 01:34:16.16ID:Kp7czbyF>>285の言っているとおりで正しい。
加えて言うと、コーディング以前の段階でそれらは既に確定している。
逆に言えば、コーディング時に迷うようならそもそもそれがおかしい。(「設計」が出来ていない)
といっても多分君には通じないだろう。(その質問をすること自体がおかしい)
そこで平易に言い換えると、
その質問は、「車は右と左とどちらを走るのがいいの?」と等しい。
日本では「左」を走るように設計されているのだから、「左」なんだよ。
新車(新しい関数)をいくら導入しようが、「左」として設計されている場所では「左」なんだよ。
当たり前だが「右」として設計されている場所なら「右」になる。
「左」か「右」か選べるのは最初の「設計」時だけであって、基本それ以降は踏襲するしかない。
(コーディング時には決められているとおり記述するだけ)
変更するのは大手術が必要となる。
>>239
> 型の基本
>>285
> 揃えないとおかしい
レスをつまみ食いして悪いんだが、君達は何言語の出身?
前から思っているんだが、JavaScriptスレの連中は不思議なほど育っていない。
言語自体はいろんな事がお気楽に試せる面白い言語なので、普通にやっていれば普通に育つはず。
だからここまでヘボ揃いなのは確実に何かしらの理由があるはずで、
今ちょっと思っているのは、多分こいつらはダックタイピングに溺れているのではないかと。
具体的に言うと、 if (obj) がいいだ悪いだnullと比較すべきだいやundefinedも考えろとか永遠とやっているから
その先(データ/制御構造)に進めていないのではないかと思っている。
どうかね?
0288デフォルトの名無しさん
2016/05/30(月) 02:34:29.25ID:ewV/OC7Oみりゃわかるよw
0289デフォルトの名無しさん
2016/05/30(月) 05:24:03.84ID:NXhb520V0290デフォルトの名無しさん
2016/05/30(月) 08:05:58.62ID:5tgErZe9もしかして延々っていいたかったの?
バカゆとり丸出し
0291デフォルトの名無しさん
2016/05/30(月) 08:35:34.56ID:yN0jSRJK> といっても多分君には通じないだろう。(その質問をすること自体がおかしい)
> そこで平易に言い換えると、
このスレでこの説明をしてくる奴よくいるが、平易に言い換えた説明が逆にわかりにくい場合がほとんど
物言いがいちいちくどくどしくて日本語力が足りてないというべきか
自分に酔った文章を書かず、簡潔に書け
0292デフォルトの名無しさん
2016/05/30(月) 09:30:20.73ID:ewV/OC7Oまずお前から実践しろよw
0293デフォルトの名無しさん
2016/05/30(月) 09:34:30.19ID:gPEMgWAi知ったかぶってとか言ってるけど、最初からそう作ればいいだけだ
そういうのは設計や技術力が無いだけで手抜きとは言わん
0294デフォルトの名無しさん
2016/05/30(月) 09:36:25.96ID:gPEMgWAi僕が言いたかったのは永遠
0295デフォルトの名無しさん
2016/05/30(月) 09:41:35.60ID:gPEMgWAi正直真逆の印象
今は構造化プログラミング世代の言語でもLinuxカーネルのような洗練さが求められてる時代
このスレでお前さんだけ20年ぐらい遅れてる
0296デフォルトの名無しさん
2016/05/30(月) 09:42:51.04ID:PwZzpqigかつ、デザイナとしてもこいつらは害悪だしな。
放っておくと理由の伴わない感覚でのデザインしよる。
しかも、個人の「これは良くない」なんて感覚で。
0297デフォルトの名無しさん
2016/05/30(月) 09:45:48.62ID:PwZzpqig入ってもないデータに、「入っていなかった」って書くと、それは「入っていない事を確認した」データになってしまうんだけどね。
>>274
法律で決まってる話だったり、厚労省の保険適用のものの話しかしてないから、この範囲は業務知識ですらないよ。
0298デフォルトの名無しさん
2016/05/30(月) 09:47:31.51ID:gPEMgWAi盲目的に従ってるだけの無能が何勘違いしてふんぞり返ってるんだ?
0299デフォルトの名無しさん
2016/05/30(月) 10:06:14.30ID:d3v2hj/G0300デフォルトの名無しさん
2016/05/30(月) 10:21:11.46ID:SiNcM0fD0301デフォルトの名無しさん
2016/05/30(月) 12:35:00.36ID:REX8Pswdなら Object.keys
var array = [{name: '視力', value: 1.5}, {name: '聴力', value: '100db'}];
なら Array.prototype 系関数を使う
未調査などのステータスが必要ならプロパティを付け加えるだけ
undefined を使う必要はないな
0302デフォルトの名無しさん
2016/05/30(月) 12:36:07.87ID:XUi+aAng0303デフォルトの名無しさん
2016/05/30(月) 12:36:56.29ID:ysRBPLLz0304デフォルトの名無しさん
2016/05/30(月) 16:54:37.32ID:PwZzpqigjsonっぽくすると
患者A:[{
試験日:aaaaa ,
シーケンス:bbbbb ,
検査値:[
{視力:{
左右:右,
近視度数:xxx,
乱視軸:{値:yyy,単位:degree},
乱視度数:zzz
}}
,{カーブ:{
...
}},
{視力:{
左右:左
近視度数:zzz
}}
}
...
みたいなのかな。
検査日..
氏名 左 近視度数
乱視軸
乱視度数
カーブ
右 ...
氏名 ....
みたいなグリッドに出すのに、無い場所の値を用意するだけで無駄。
定義されていない→無い、で充分。
0305デフォルトの名無しさん
2016/05/30(月) 17:20:40.14ID:SiNcM0fD別に検査してなければ項目なしでもいいんだけど、描画するコードでループの一番内側がセルの数に
なるようなループして、いちいちundefinedかどうか判定するようなロジックにするの?
0306デフォルトの名無しさん
2016/05/30(月) 17:43:51.15ID:/sRU0ua40307デフォルトの名無しさん
2016/05/30(月) 18:22:59.82ID:ht1IyunNvar 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を返してくれるので範囲チェックしなくていい」
っていうふうにポジティブな解釈していいですか?
0308デフォルトの名無しさん
2016/05/30(月) 18:31:32.90ID:hoOpO478nullを返すより0な
0309デフォルトの名無しさん
2016/05/30(月) 18:34:38.43ID:SiNcM0fDa[undefined]のときa.lastがundefinedになるということと、自分がなにをしたくてなにを求めているのかを
勘案すれば、どう実装すべきか決定できるのでは
0310デフォルトの名無しさん
2016/05/30(月) 18:48:17.09ID:ht1IyunNありがとうございます。でもそれだと、
配列に整数を入れて使うとき悶絶しちゃうと思うんですがw
いや…それは結局nullのときでも一緒ですよね。
undefinedのときでも一緒ではありますね。
それらを代入できるという以上…。
>>309
ありがとうございます。
「a[undefined]のとき」っという表現が不勉強で分からなかったのですが、
いずれにせよ var value = a.last() のあとは単に
if (value) するくらいのことしか考えてませんのでundefinedで十分そうです。
0311デフォルトの名無しさん
2016/05/30(月) 18:53:42.83ID:PwZzpqigループの内側の数とか言うより、描画用の項目定義は項目定義である。
医者が並べて見る時に、項目数が変わったり並び順が変わったら困るから。
それは医者次第だけど、内部的には
xpathみたいなもので指定する。
>>306
ごめん、軸度だな。
>>307
lastの用途次第だけど、popの仕様と合わせるならundefinedだと思う。
俺はpopしてundefinedじゃなければもう一回pushしておく。
そのためには、undefinedをpushしなくても良い実装にしておかなきゃならんけど。
0312デフォルトの名無しさん
2016/05/30(月) 18:59:41.70ID:ht1IyunNありがとうございます。popに合わせておこうと思います。
あとはせっかくなんで使う側はせめて if (a.last())
するよりは if (a.last() === void 0) としてみようかと。
0313デフォルトの名無しさん
2016/05/30(月) 19:12:01.08ID:/sRU0ua4軸度とは
0314デフォルトの名無しさん
2016/05/30(月) 19:22:00.69ID:PwZzpqigなんて言うか、正直眼科は不勉強だけど、乱視がどの方向にあるかだよ。
メガネ作るとき、放射状の線見せられて、どの方向が濃いか聞かれるじゃん。
あれを答えてもらった方向に90°足した、何度の方向に対して焦点がずれてるかが乱視軸度だよ。
普通は度で持つけど、たまにラジアンで持ってたりする。
0315デフォルトの名無しさん
2016/05/30(月) 19:42:49.89ID:4aFguERh頭おかC
0316デフォルトの名無しさん
2016/05/30(月) 20:20:03.03ID:/sRU0ua4そんな事聞かれるのかよ
知らなかった
0317デフォルトの名無しさん
2016/05/30(月) 21:22:29.72ID:PwZzpqigなんか話題提供してよ。
0318デフォルトの名無しさん
2016/05/30(月) 21:24:24.86ID:PwZzpqigこういったふうに、ただの視力検査でも、人によってやらないものもあるんだよ。
0319デフォルトの名無しさん
2016/05/30(月) 23:02:14.89ID:Kp7czbyFリクエスト無いみたいだし、もう無しで良いってことにさせてもらうぜ。
俺も大量にこのスレに書き込んだ。多分そちらにも多少は有効情報があっただろうし。
このスレは俺よりも20年先を行くスーパーハカーだらけらしいし、とりあえず引退してみよう。
>>312
多態しないのなら if (a.length>0) にしとけ
>>311
> 俺はpopしてundefinedじゃなければもう一回pushしておく。
おい!
ってかまじめな話、もうちょっと普通のやり方を覚えた方がいいぞ。
undefinedについて気になるのなら、他の知っている奴が回答するか、少し待つんだね。
それで出てこないようなら、俺のスレに聞きに来れば教えてやるよ。
とはいえ君は無駄に煽りすぎだ。だから出てこないかもしれない。
しかし、君は自力で辿り着けるレベルだから、ヒントを与えておこう。
君はNaNの仕様を知っている。で、それを便利に使っているわけだが、>>106
あれはそういう仕様が必要だったからなんだよ。
だからNaNの正しい使い方を調べて、そこから推測すれば、
undefined許容/非許容のそれぞれの得失を理解できる。
その上でundefined許容を選択するのなら、それは「設計」なんだよ。やればいい。
ところで、俺および俺が立てたスレがどうにも気に入らない奴がこのスレに複数いるだろ?
君達がやるべき事は、>>297に答えることだ。
そうしないと、俺のスレが流れ出しちゃうぜ?
あとついでだが、やはり君の案件は「正規」ではないよ。運用上「本番系」になっているだけだ。
読み出せないDBなんてあり得ないだろ?最初から何らかのビュワーが付いてる。
JavaScriptで受けるのなら、APIはJSON一択だろ?
今何かしら妙なAPIなのは、元々のビュワー用のAPIだからだよ。
そして何らかの理由で「正規」ビュワーが破棄され、今のビュワーになったんだよ。多分。
0320デフォルトの名無しさん
2016/05/30(月) 23:24:12.29ID:ILfmqIwk0321デフォルトの名無しさん
2016/05/30(月) 23:41:05.43ID:Kp7czbyFAPIのことか?
ビュワーはexeまたはelf等バイナリで、古い機材では動くが、新端末では動かないから、JS化したと。
あり得るシナリオだね。
だとすればParserでラップして終わりだし、鯖は当然そのまま運用するわな。
今のところの証言と状況証拠とは一致するw
0322デフォルトの名無しさん
2016/05/31(火) 00:15:08.11ID:KJUuPgzh混乱を招く回答が追加されているので伝えるが、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
0323デフォルトの名無しさん
2016/05/31(火) 01:17:08.26ID:l5PlpRpuめんどくさいやつだなぁ。
煽りすぎた、って、煽られて沸騰した奴が言ったら二重どころか三重くらいにみっともないぞ。
煽って面白くなるだけ。
ビュワー用のAPIとか、だからさあ。。
電文だ、って言ってんじゃん。
電文、理解できない?知らないの?
>>320のほぼそのまま、今もう一回そこ書くならもうちょい綺麗にパーズするけど、要は[通信開始][要素種][要素長]....[チェックサム][通信終了]みたいなもの。
そのまま、要素種が始まったら要素長取り出して、その中も要素種と要素長で出来てるから、って形。
正規もなんもないよ。妙なAPIって、これハード屋的には何一つ妙じゃないよ。
案件ってか、自社製品だけど、運用 上の本番系、ってどんな寝言だよ。
運用してるなら、それは即ち本番系だろ。
おまえ学生なの?コードとして落とした事無いとか、無意味な理想論語ったりとか、結構痛いよ。
0324デフォルトの名無しさん
2016/05/31(火) 01:56:46.28ID:C610iy1kあんさん2chフィルタ通して見ても尊大やし態度悪すぎやで
学生と比べて技術力高いわけでもなし、人を煽れる立場や無いやろ?
0325デフォルトの名無しさん
2016/05/31(火) 02:06:15.74ID:C610iy1kJSONだろうと1メッセージ単位なら電文や
0326デフォルトの名無しさん
2016/05/31(火) 03:10:34.97ID:24hp8pmxお前、、、いちいち指摘するのが面倒なくらい色々読み間違ってるぞ、、、、
まあ俺の書き方もまずい点はあったが、、、
一応、俺は聞きに来れば答えるというスタンスだったんだ。
(出てこないってのは「他の知っている奴」のことであって、俺のことではないつもりだった。
ただこの点は俺の書き方が悪かった)
とはいえ、面倒だし、今回は他の連中も正解を知っていることが確定しているから、
天秤にかければ誰か答えるかと思ってな。
しかし、まあもう無理だと思うが。俺も面倒になってきたし。
学生の作品と企業製品では、検証レベルが全然違う。
undefined非許容というのは、まともに検証すれば自明なんだよ。だからみんな知っている。
逆にそれを知らないってのは、お前は検証してないって事なんだよ。
しかも医療系だろ?煽り抜きでヤバイと思うぞ。
> 電文
知らんよ。てかこれって一般用語か?ググッた限りはただの「パソコン」と同レベルの集合名詞だと思うが。
俺はWeb系ではないので、Web系のローカル用語は知らんよ。
XHRでArrayBufferなら最初からそう言ってくれたほうが良かった。
とはいえそこは本題ではないが。
>>324
おう、ありがとうよ。
俺は見ての通りこのスタンスだし、これくらいの粘着や煽りはいつも通りだ。
特段怒っているわけではないのだが、そう見えたのなら済まない。
というか、Web系の連中のこの自信はどこから来るのか、本当にかなり疑問だ。
お前ら、プログラミング一般からすると、かなり「ひよこ」だと思うぞ。
大口を叩くのは、10k行のコードを普通に取り扱えるようになってからにした方がいい。
そんな奴はこの界隈にはさらにいるのだから。
0327デフォルトの名無しさん
2016/05/31(火) 09:05:24.34ID:l5PlpRpuわざとこの態度だからなぁ。
逆に、沸点低いやつがよくわかっていいじゃん。
沸点低いやつが何言っても、反射的に言ってるだけなんだし。
>>325
おう。JSONとして流れてきたらそりゃJSONという電文だな。
バイナリパスカル文字列式可変長電文か。
>>326
undefined許容というか、ずっと読み間違えてない?
データとしてundefinedを入れるわけではなくて、
解釈した結果そのフィールドには値が入っていない→それをオブジェクトに起こしても、そのプロパティ自体が設定されていない、だよ?
可能な限りの、「データは入ってませんでした」を設定して回るほうが現実的で無いよ。
俺、あとウェブ系じゃないからね。
基本はDB屋だよ。
DBに入ってもない無い値を、入っていた事にされるのは許せんだけ。
0328デフォルトの名無しさん
2016/05/31(火) 09:19:18.21ID:KJUuPgzh誰もそんなことは言ってなかったと思うが、何が許せないんだろうな
このスレだと hasOwnProperty, forEach, keys で判定する処理は見かけたが
0329デフォルトの名無しさん
2016/05/31(火) 09:20:08.42ID:EjSYfMvt0330デフォルトの名無しさん
2016/05/31(火) 09:40:27.01ID:l5PlpRpuそりゃいいよ。それはそれで。
最初に初期値で初期化しとけば良いとか、そういうアホに対しての反論だから。
0331デフォルトの名無しさん
2016/05/31(火) 10:16:07.42ID:LdI3VN67> DBに入ってもない無い値を、入っていた事にされるのは許せんだけ。
outer joinやcross joinについてはどう思うのかね
0332デフォルトの名無しさん
2016/05/31(火) 10:17:56.42ID:d9LvTqQRこれの答えは何なの?
0333デフォルトの名無しさん
2016/05/31(火) 10:21:15.79ID:LdI3VN67> ループの内側の数とか言うより、描画用の項目定義は項目定義である。
> 医者が並べて見る時に、項目数が変わったり並び順が変わったら困るから。
> それは医者次第だけど、内部的には
> xpathみたいなもので指定する。
なかなか話が通じないが、要は表示項目数×人数のループをしてundefinedかどうかを
判定するということだろ?表示項目数が30で20人分表示なら600回の処理をする。
そうじゃなくて、存在するデータ側を元に表示するか、あるいは全く別のアプローチをすれば
いちいちundefinedかどうかなんて判定は不要ではとうこと。
0334デフォルトの名無しさん
2016/05/31(火) 10:37:22.17ID:wxR5ZVVT無ければ困る事もわかるけど、凄く嫌い。
行列のDBは集合に対しての操作だと意識してないと最悪の結果に陥ると思うわ。
>>333
ふむ、では、その冴えたアプローチで綺麗にしたデータを、行と列、ないしはグラフにレンダリングする術を
提示してみてくれよ。
まさか、最初にレンダリング域全体のメモリを確保して、データ一つ一つに対して、RCや軸をデータから推測してその場所へデータを載せれば良い、最終的に残るのはundefinedだった項目だけ、とか考えてんのかな。
0335デフォルトの名無しさん
2016/05/31(火) 11:08:00.91ID:LdI3VN67> ふむ、では、その冴えたアプローチで綺麗にしたデータを、行と列、ないしはグラフにレンダリングする術を
> 提示してみてくれよ。
> まさか、最初にレンダリング域全体のメモリを確保して、データ一つ一つに対して、RCや軸をデータから推測してその場所へデータを載せれば良い、最終的に残るのはundefinedだった項目だけ、とか考えてんのかな。
グラフという単語がでてきたので話が根本的にかみ合ってない気もするが、基本的にはそういうことだよ。
テーブルで表示することを考えれば、項目が決まれば行あるいは列が決まり、人が決まれば列あるいは
行が決まる。それをメモリ上のデータ構造として作成して一気にテーブル化するとか、DOMを直接書き
換えるとか、あるいは、テンプレートを使うか、データバインディングしてModelが自動的にViewに反映
されるようにするとか、やりようはいくらでもある。
グラフのメタファーで言えば、定義域:0〜100, 値域:0〜100のグラフがあるとき、(1, 3), (2, 5)という二つの
データしか無ければ二回プロットすれば終了ということだよ。
0336デフォルトの名無しさん
2016/05/31(火) 12:25:58.83ID:wxR5ZVVTやりようはいくらでもある、な。
アホか。
データバインディングするにしても、いや、バインディングするならそれこそ、データは歯抜けでいいだろう。
データバインディングするってことは、ビュー側から、どの要素をとバインドすべきだし。
一気にメモリに載せてられるかww
0337デフォルトの名無しさん
2016/05/31(火) 12:33:55.20ID:wxR5ZVVT0338デフォルトの名無しさん
2016/05/31(火) 13:25:23.48ID:LdI3VN67なにか勘違いされてる気もするけど、歯抜けのデータが悪いとは一言も言ってないよ。
>>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回の実行が必要。
そうじゃなくて、逆からのアプローチはできないのという疑問。
逆というのは、「存在するデータを元にする」やりかた。
0339デフォルトの名無しさん
2016/05/31(火) 13:26:54.24ID:LdI3VN67どのような問題なのかを想像することしかできないわけお。
>>336
> 一気にメモリに載せてられるかww
とか言われても、困惑するのみ。
0340デフォルトの名無しさん
2016/05/31(火) 13:49:49.08ID:wxR5ZVVTできないなら、自分には理解できない事だと納得して無意味な提案やめて寝ればいいのにり
0341デフォルトの名無しさん
2016/05/31(火) 13:54:56.19ID:LdI3VN67まぁ、ざっと読むと君の環境はこのスレ的には異端みたいだし、フロントエンドエンジニアでもないようだから
どうでもいいっちゃいいんだけどね。
0342デフォルトの名無しさん
2016/05/31(火) 14:14:48.43ID:WCbBJW5L想像でしかないんだけど表示項目1に対してデータ項目がn(n>0)って可能性とか
たとえば視力検査の欄に表示する際
{"視力左":1.0,"視力右":1.0}の両方があって初めて表示するとか
{"視力左":1.0,"視力右":1.0}→「おっけー」って表示
{"視力左":1.0,"視力右":null}→「右目は測りきれない4.0とか超いいかも」って表示
{ "視力右":1.0}→「左目測ってない」って表示
{"視力左":1.0 }→「右目測ってない」って表示
{ }→「視力検査してないっぽい」って表示
0343デフォルトの名無しさん
2016/05/31(火) 14:29:29.32ID:mikttA8+undefinedはシステムからの処理上の値が無いですよという知らせ。
nullは誰かが明示的にそれを表明したもの。
0344デフォルトの名無しさん
2016/05/31(火) 15:57:03.36ID:wxR5ZVVTあー、それ一番的を射てる。
0345デフォルトの名無しさん
2016/05/31(火) 18:51:35.17ID:znL0FvMW0346デフォルトの名無しさん
2016/05/31(火) 19:40:15.04ID:e360ttrJ大多数の人間はnull返せハゲって思ってるっての
0347デフォルトの名無しさん
2016/05/31(火) 20:00:07.25ID:JD+3IcFiありがとうございます。
ちょっと本題から逸れるんですが、[,,,] の中身が新鮮ですね。
lengthは3で、キーは何も無いと言う。
一見、{0:undefined, 1:undefined, 2:undefined, length:3}
こういう中身になってていいじゃないかと思うんですがそうはしないんですね。
いや、まぁどうでもいいんですが。
あ、次にpush('foo')しときにlength見て{3:'foo', length:4}になるから嬉しいのか。
lengthだけ持ってても十分なのか。なるほどなるほど。
0348デフォルトの名無しさん
2016/05/31(火) 20:32:52.55ID:wxR5ZVVTnullしかない言語は、dbNullを扱えるようになってるような。
0349デフォルトの名無しさん
2016/05/31(火) 22:33:17.75ID:C610iy1k末端に判定ロジック大量に積んでるのか
ウンコですね
0350デフォルトの名無しさん
2016/05/31(火) 22:51:11.93ID:ZB9BdGtVそういった言語では例えば存在しないプロパティにアクセスすると例外となるので必要性が薄い。
JSがスクリプト言語だからこそ映える設計。
>>347
ぶっちゃけ歯抜けはよほどの場面じゃないと推奨しない。
言語エンジンの最適化試行ぶち壊しで気持ち悪い。
あと、Array.prototype.lastなんて夢でも死んでも使わないように。
その機能の標準化が一番危うくてデリケートで予測が付かない段階にきてる。
今最もprototype下に自作してはならない機能の1つ。
0351デフォルトの名無しさん
2016/05/31(火) 23:04:26.90ID:VEM8svzW> 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 型である必要がある
0352デフォルトの名無しさん
2016/05/31(火) 23:13:56.84ID:C610iy1k本人以外は皆仕様知っててこの態度なんやし
0353デフォルトの名無しさん
2016/05/31(火) 23:17:06.49ID:VEM8svzW>>307でprototype拡張されていなかったのでいわなくても伝わるだろうと思って伏せていたが、Array.prototype.last はあくまでも便宜上のサンプルねので念のため
Array.prototype 拡張は将来的に同名プロパティが定義されたときに互換性が崩れるのでお勧めしない
静的関数や独自オブジェクトによる拡張で代用するのが妥当だろう
何らかの理由でどうしても定義したいのなら一昔前のfor-inによる汚染問題を解消するために Object.defineProperty を使うべきだ
Object.defineProperty(Array.prototype, 'last', {writable: true, enumerable: false, configurable: true, function last () {}});
0354デフォルトの名無しさん
2016/05/31(火) 23:19:21.13ID:VEM8svzWObject.defineProperty(Array.prototype, 'last', {writable: true, enumerable: false, configurable: true, value: function last () {}});
0355デフォルトの名無しさん
2016/05/31(火) 23:20:01.54ID:wxR5ZVVT「本人以外は全員わかってる」んだろうけど、笑えるわ。
0356デフォルトの名無しさん
2016/05/31(火) 23:38:40.59ID:24hp8pmxお前はいつか事故るぞ。投薬履歴だって表示が間違っていれば死人が出るんだ。
Web系の「リロードすれば万事おk」のノリでは駄目なんだ。お前はそれですらないが。
ただ、検証を手抜きすれば単価はいくらでも落とせるわけで、このように、
一通りの知識すらない馬鹿を雇って一通りの検証すらせずに出荷する悪徳業者をどうするかは
今後の課題になるのだろうね。
契約上、ソフトウェアのバグについては責任追及できないようになっているのだろうけど、
これまでソフトウェア産業が培ってきた常識すら知らない奴がコーディングし、
まともな検証すらせずに出荷するというのは、業務上過失致死/偽計業務妨害に問われるべきだ。
AS IS WARRANTY を完全に悪用している。
とはいえ、普通に考えればこういう悪徳業者はいつか出てくるわけで、不思議ではない展開だ。
死人が出てこの構造が判明してからでないと、行政は動かない。
願わくば、お前がその最初の犠牲者となり、自業自得を以て業界の浄化に貢献してくれ。
というわけで君には「人殺し君」というあだ名をあげよう。
多分君は既に人を殺しているか、今後人を殺す。
無知も罪なのだよ、業界によっては。
それはさておき、ここに来て気づいたが、 AS IS WARRANTY って性善説ベースだったんだな。
こりゃ性悪説ベースの何かを導入しないと駄目だ。
とはいえ資格なんて糞の役にも立たない業界だし、なかなか難しい。
調べた限りではPL法も適用外だし、悪徳業者はやりたい放題だ。
(ただここまで来るとマ板の話題でスレチだが)
話を聞いている限りこいつは鯖屋で、ソフトウェアの知識は一切無い。
フリーソフト等を組み合わせれば悪徳零細学生レベルでも見目麗しいシステム()を構築でき、
素人を騙せる時代になった。そしてそれがすべて自分の能力で出来たものだと勘違いしている。
(組み合わせる能力はあるが、使われているソフトを記述する能力は無いことに気付いていない)
とはいえ、現実問題として、これを顧客に見抜けというのは不可能だろう。
なんだかなあ。
0357NAS6 ◆n3AmnVhjwc
2016/05/31(火) 23:43:38.27ID:ZnwkUC0dx3domのサンプル集とライブラリ
完璧な2/3D行列計算ライブラリに仕上がりました
x3domは簡単でいいよ
ポリゴンテスト&ライブラリヘルプ.htmでも見てください
完璧に計算されています^^
0358デフォルトの名無しさん
2016/05/31(火) 23:44:24.50ID:+fB1tt6Wそうやって作られたのがUnderscore(lodash)というライブラリで
わざわざ作らずとも、 _.last([1,2,3]) で取得できるんだよ。
0359デフォルトの名無しさん
2016/05/31(火) 23:50:20.60ID:C610iy1kRASISすら守っとらんみたいやし
RDB使ってる現場やけど、そんな場当たり的な実装の経験ないで
普通はリクエスト間違ったら全部エラーやしfail safe前提や
あんさんが無知すぎるんやで?
0360デフォルトの名無しさん
2016/06/01(水) 00:02:09.20ID:J/AVgXyAなんでそんな無理して知ったかぶるんやろ
0361デフォルトの名無しさん
2016/06/01(水) 00:03:48.85ID:XVpspPb0行列のライブラリはどれが有名か知らんけど、
この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
> http://glmatrix.net/
> webgl-mjs http://code.google.com/p/webgl-mjs/
> Sylvester http://sylvester.jcoglan.com/
> CanvasMatrix.js khronosのWebGLのチュートリアルで使っているがどこでダウンロードできるのか分からなかった
> glMatrix.jsがシンプルなのでオススメ。
>
> 2014/01/19追記
> glMatrixの公式サイトができてた。
0362デフォルトの名無しさん
2016/06/01(水) 00:04:59.00ID:XVpspPb0> DB屋ならjoinできないようなデータ構造の時点で問題あると気づくやろ
どういうこと?
nullがあるとjoin出来ないとかそういう話?
なわけないよな。left joinとかあるわけだし。
0363デフォルトの名無しさん
2016/06/01(水) 00:11:15.87ID:XVpspPb00364NAS6 ◆n3AmnVhjwc
2016/06/01(水) 00:18:19.22ID:CPNT1MjHライブラリを作る前に探したけど
回転行列←→回転ベクトル、回転行列←→四元数
この相互変換を扱ってるのは見当たらなかったよ
0365デフォルトの名無しさん
2016/06/01(水) 00:19:48.60ID:XVpspPb0興味ない。
0366デフォルトの名無しさん
2016/06/01(水) 00:20:56.87ID:XVpspPb0もう少し丁寧に言うね。
githubで公開してもいないようなものを使う気にはならない。
0367デフォルトの名無しさん
2016/06/01(水) 00:21:24.97ID:iqAUu6wp俺>>342なんだけど挙げたデータ構造は
あくまで俺がてきとーに想像しただけなので
それで誤解与えてしまってたらごめん
0368デフォルトの名無しさん
2016/06/01(水) 00:42:46.14ID:JLTaiLCk多分そちらも気づいていると思うけど、人殺し君には「信頼性を上げる」という感覚がないんだ。
だから俺たちが何を問題視しているのか、全く通じていない。
ただ、当たり前のように信頼性を上げようと努力してきた側からすると、
業界全体が悪徳業者に対して全く無防備だったってのが結構ショックなんだよね、、、
というかよくこれまでこれで回ってたなと。
0369デフォルトの名無しさん
2016/06/01(水) 00:43:15.64ID:r3hfxk1X必死すぎて笑えるw
おつかれさん、底辺学生さん。
0370デフォルトの名無しさん
2016/06/01(水) 00:46:19.01ID:XVpspPb0そちらってお前誰だよw
0371デフォルトの名無しさん
2016/06/01(水) 01:00:31.81ID:+8Has+9Zあなたは x3dom.js と比較して何がどう「完璧」なのかを説明する必要があると思うのだが
ドキュメントも簡易説明文のみで x3dom.org と比べれば雲泥の差があるように思う
http://www.x3dom.org/
0372デフォルトの名無しさん
2016/06/01(水) 01:02:19.24ID:J/AVgXyA関連があるのに関連を付けずに
見つからない場合もright joinと同じ事するんやろ?
破綻しとるやん
0373デフォルトの名無しさん
2016/06/01(水) 01:05:25.70ID:XVpspPb0関連つければいいだけだよね?
まさか片方にnullが入っていると関連がつけられないとでも?
left joinでもright joinでも、別に使うことに問題無いし
問題ないから標準機能なのだし、どこが破綻?
DB素人なら、すいません、素人だから
勘違いしてましたって謝れば許してあげるよ?w
0374デフォルトの名無しさん
2016/06/01(水) 01:10:30.88ID:+8Has+9Z各自にとっては空論ではないのであろうが、持論が相手に正しく伝わっているとは思えん
0375デフォルトの名無しさん
2016/06/01(水) 01:12:17.78ID:XVpspPb0今はRDBMSの超基本レベルことを分かってないやつが相手みたいだから
そこまでやる必要ないかなw
0376デフォルトの名無しさん
2016/06/01(水) 01:22:41.36ID:JLTaiLCkいや十分通じてるよ。表面的には。
ただ、根本的な部分で人殺し君は分かってないから、通じない。
とはいえこれは、ここでなんとかなる話ではないよ。これではどうやっても平行線だ。
0377デフォルトの名無しさん
2016/06/01(水) 01:25:01.12ID:+8Has+9Zお互いに相手が低レベルと思っているように読めるんだがな
相互理解が目的なら言葉を選べ
馬鹿にしたいなら他の人の邪魔になるから口を慎め
0378デフォルトの名無しさん
2016/06/01(水) 01:31:01.82ID:XVpspPb0質問に答えられない方はどちらか?
それを見ればわかるでしょ。
まだ、レス帰ってきてないよw
0379デフォルトの名無しさん
2016/06/01(水) 02:20:52.04ID:r3hfxk1X余裕無い奴は大変だな。
そりゃ、せっかくundefinedなのを無意味にnullで初期化とかドヤ顔で言っちゃうわけだ。
0380デフォルトの名無しさん
2016/06/01(水) 09:21:35.68ID:jwFJ9KH20381デフォルトの名無しさん
2016/06/01(水) 09:26:09.02ID:P2FwW4b50382デフォルトの名無しさん
2016/06/01(水) 09:33:08.65ID:wzx/dknC0383デフォルトの名無しさん
2016/06/01(水) 13:31:22.60ID:KEu/R4xXビューの状態全体に対して、必要か不必要かは置いておいてすべてのビューが表示しうる形での裏画面を持っておこう、
って大富豪の主張がありうる、って話だよね。
面白い事に。
XMLDBとか、KVSとか、多次元配列DBに向いてない人なんだろうけど。
そもそもJOIN出来ないからなんたら、なんていう人は、そもそもそういうDBに向いてないけど。
0384デフォルトの名無しさん
2016/06/02(木) 01:24:38.27ID:g2tgMhPe犬の糞と猫の糞。
0385デフォルトの名無しさん
2016/06/02(木) 02:42:13.57ID:XqRYmg3l関連つければいいだけだよね
その通り
つけてないけど
0386デフォルトの名無しさん
2016/06/02(木) 02:43:59.04ID:XqRYmg3lこりゃ周りの奴らは大変やで
0387デフォルトの名無しさん
2016/06/02(木) 08:36:48.79ID:8VCgKElP端から見たらどちらも相手を見下す事が主論になってる
どちらの方が正しいとか、もうどうでもいいから
0388デフォルトの名無しさん
2016/06/02(木) 08:39:24.52ID:I85Xb9LU壁に向かって話してろゴミ
0389デフォルトの名無しさん
2016/06/02(木) 08:51:25.41ID:0vkxmVo80390デフォルトの名無しさん
2016/06/02(木) 09:15:26.93ID:oJukbexp0391デフォルトの名無しさん
2016/06/02(木) 13:24:04.29ID:BtmdPReZ内部を露出して活用を許すのと、メタ的に内部に干渉するの、どちらが良いかという話。
0392デフォルトの名無しさん
2016/06/02(木) 13:58:00.69ID:tGqw3Zei上手いこと云うな
オレのコピペにしますん
0393デフォルトの名無しさん
2016/06/02(木) 15:58:54.65ID:gjH3g/Dcその通り。特に動的言語なら。
mallocした結果をどの型として使うか論にも近いけど。
0394デフォルトの名無しさん
2016/06/02(木) 16:21:31.47ID:0vkxmVo80395デフォルトの名無しさん
2016/06/02(木) 16:42:37.48ID:T7FoO03Y0396デフォルトの名無しさん
2016/06/02(木) 16:44:57.76ID:tGqw3Zei0397デフォルトの名無しさん
2016/06/02(木) 17:03:14.89ID:E1oCL6WJ.,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::::| ! .::| ┏┓┏┓
`''''" ヽ,,,,,,..-'―′ \,,,,,,,,,.. '" ゝ ノゝ、,,,,,./ -.../// \: ト--^^^^^┤ 丿 \ . ┗┛┗┛
0398デフォルトの名無しさん
2016/06/02(木) 17:41:24.84ID:tGqw3Zei< >_∧
= ()二)V;・∀・)
\ヽ ノ )
ノ(○´ノ ガッ
(_ノ(__)
0399デフォルトの名無しさん
2016/06/02(木) 19:45:18.42ID:foj8oVvi`ヽ `ヽ、-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 |
| | |
0400デフォルトの名無しさん
2016/06/02(木) 23:25:10.25ID:3RkkmY6H> 関連つければいいだけだよね
> その通り
> つけてないけど
ってことは、ORM使ってないのか?
ORM使ってプログラム言語でモデルを定義していってその関連もモデルで定義する。
その結果をマイグレーション機能を使ってデータベースに反映、
ついでにER図も生成しちゃうっていうのが今時の開発でしょう?
モデルに関連を定義しておかなければ、あるモデルから関連している
別のモデルのデータを取得するのができないわけで開発効率下がりまくりでしょ?
(厳密に言えば手動でコードを書けば取得できるがそれだとORMを使う意味がない)
0401デフォルトの名無しさん
2016/06/03(金) 00:32:44.38ID:1GfBsi1m人殺し君は悪徳業者に勤めており、検証不十分のソフトウェアを出荷している。
そのソフトウェアでは競合系のバグ等は完全に放置されている。
平たく言えば、間違った内容/値が表示される事が偶に発生する。
とはいえ、再現確率は低く(1日〜1週間に1回程度)、再び確認すればほぼ常に正しい値が表示されるため、
「見間違いだった」として処理されているはず。
結果、このバグによって発生した医療ミスは本当は医者のミスではないのだが、
「医者の過労または不注意による見間違い」として処理される。
また医療ミス自体も隠蔽される方向のため、二重に隠蔽されることになる。
医療系は単価が高いため、悪徳業者にとっては甘い汁状態だ。
医療関係者は金を吸い取られた上に、ぬれぎぬを着せられている可能性がある。
もし仮に医療系の人がこれを見ていて、「表示がおかしかった」事に気づいたことがあった、
また「最近『見間違い』事故が多すぎる」というときは、この類の悪徳業者の製品でないか確かめた方がいい。
悪徳業者の技術レベルは信じられないほど低い。普通のIT関係者なら絶句する。
JavaScriptの場合ソースは確認可能な事が多いので、非公式にでも知り合いのIT実務者を頼り、
ソースを確認してもらえば、すぐに判明すると思う。
このスレのこれまでの議論およびここに記載した情報で十分だと思うが、
もしもっと詳細を確認したい医療関係者がいれば、
以下スレで問い合わせてくれれば対応するかも。
> http://echo.2ch.net/test/read.cgi/tech/1449440793/
技術的には、
undefinedの何が問題なのか自分で判断できないような馬鹿はundefinedを活用(キリッするなって事だ。
では続きをどうぞ。
0402デフォルトの名無しさん
2016/06/03(金) 00:47:09.21ID:ZgLr+wQeじゃあ存在しない値にアクセスした時各言語ではどんな挙動をするのだろう?
0403デフォルトの名無しさん
2016/06/03(金) 01:00:55.33ID:4VbjelCP例外が発生する
0404デフォルトの名無しさん
2016/06/03(金) 01:57:17.93ID:qC3of5q80405デフォルトの名無しさん
2016/06/03(金) 08:37:03.10ID:yTlzgE6f例えば?
0406デフォルトの名無しさん
2016/06/03(金) 08:38:53.12ID:oIsEebnB0407デフォルトの名無しさん
2016/06/03(金) 08:41:45.97ID:WTDDDw9O検証不十分とか人殺しだとか言ってくれるよなぁ。
試験中ですら、稀にも発生したらハンコリレーで大変な目に遭うよ。
医療ミスがどうとか言ってるけど、隠蔽されるわけないじゃん。
見間違いだった、もあり得ないよ。
お前ら一般側には隠蔽されているように見えるんだろうけど、製造業のラインからの不良品混入程度に、委員会とかで裁かれるよ。
表示内容の確認に対して不足があった、って話になるだろうね。
これ判例もある。医者の判断と機械の値が一致しない場合は、医師の判断が優先され、かつ医師がその間違った値を信じ込んだ場合は「治療行為が行えるのは医師のみ」という原則に則ると、医師が医師である理由を満たせていない、ってやつ。
>>402
undefinedはたくさん存在してるじゃん。
書いてないだけで。
例外が発生するってのは良くない動きだと思うけどな。コスト高い。
0408デフォルトの名無しさん
2016/06/03(金) 08:55:59.89ID:e85j2qyA自己満足で解決
0409デフォルトの名無しさん
2016/06/03(金) 13:00:26.72ID:D6MzcBW9このバカはその手動で書くと言うのを良しとしてるんやで
そしてあと付けで関連つければいいだけだと抜かしよる
付けとらんから問題なんやろ
0410デフォルトの名無しさん
2016/06/03(金) 13:11:35.19ID:WTDDDw9O俺はそれを言った覚えは無いが、言わなくてもデータ:DB:ビュー全体に対するマッパー自体の実装の話だけどね。
0411デフォルトの名無しさん
2016/06/03(金) 13:21:31.04ID:D6MzcBW9ORMで関連付けてるならundefined云々での分岐なんて出るわけないやろ
その場しのぎで適当言いすぎやろ頭おかしいんちゃうか
0412デフォルトの名無しさん
2016/06/03(金) 13:35:21.14ID:WTDDDw9O当たり前じゃん。多次元DB触った事無いのかな?
クラスベースな考え方してるからそういう思考なんじゃない?
undefinedで分岐、って考えるから頭追いつかないんじゃないかな。
値は、「定義されていないか、オブジェクトか、値か、値として表すことのできるオブジェクトか、null」。シンプルじゃん。
javascript屋ならもっと理解早いと思うんだけどな。
HTMLのスクレイピングそっくりなんだけど。
0413デフォルトの名無しさん
2016/06/03(金) 16:01:53.05ID:LK0McYVX>HTMLのスクレイピング
すまん。
言葉の意味が分からない。
つまり、どういうこと?
0414デフォルトの名無しさん
2016/06/03(金) 16:54:41.91ID:iJVPPkrY> 値は、「定義されていないか、オブジェクトか、値か、値として表すことのできるオブジェクトか、null」。シンプルじゃん。
これをシンプルだと思ってる奴は何脳なんですかね
0415デフォルトの名無しさん
2016/06/03(金) 17:23:55.54ID:WTDDDw9O誤解のしようが無いでしょ。
その項目が無かった、は「その項目が無かったクラス」のインスタンスが格納されている、とか、
「その項目はあるけどまだ結果は出ていない」クラスのインスタンスが格納されている、とか、
定義しだすときりがないと思うけど。
npmに登録されているモジュール全体の空フォルダがnpm initしたら作成されたらinode一瞬でなくなるじゃん。
かつ、空ディレクトリ作って準備してても、そのモジュールが更新されたら準備とは異なるし。
さらに、requireは別にpackage.jsonに依存せず使えるよね。
存在チェック、中身のパーズ、その他を経て、成功か失敗か、別のフォルダを見るのか決まるっしょ。
undefinedは、そのディレクトリのない状態。
nullは、module.exportがnullの状態。
0416デフォルトの名無しさん
2016/06/03(金) 17:31:46.02ID:iJVPPkrYで、お前は何脳なの?
0417デフォルトの名無しさん
2016/06/03(金) 17:39:25.42ID:D6MzcBW9その多次元DBはテーブル同士の関連必須やで?
あんさんの言ってる仕様はキーそのものが取得できない仕様やから
ORMなんて出しとるけど全く関係ない話やろ
0418デフォルトの名無しさん
2016/06/03(金) 17:41:36.14ID:hMBisG69. /_ノυ___ιヽ_ \
/ / /⌒ ⌒\ ヽ \
( く /( ●) (●)\ > ) お前らの頭は
\ `/::::::⌒(__人__)⌒:::::\' /
ヽ| |r┬-| |/
\ `ー'´ /
(( (ヽ三/) (ヽ三/) ))
. (((i ) ___ ( i)))
/ / /_ノ ヽ_\ ヽ \
( く /( ●) (●)\ > ) くるくる
\ `/::::::⌒(__人__)⌒:::::\' /
ヽ|  ̄ |/
\ /
∩∩∩ . ∩∩∩
.∩_:||_:|_:| |_:||_:|_:∩
│ ___ つ ⊂ ___ │
ヽ ノ ___ ヽ ノ
/ / /_ノ ヽ、_\ ヽ \
( く o゚((●)) ((●))゚o > ) パーだおwwwwwwwwwwwwwwwwwww
\ `/::::::⌒(__人__)⌒:::::\' /
ヽ| |r┬-| |/
\ | | | /
| | |
`ー'´
0419デフォルトの名無しさん
2016/06/03(金) 17:43:47.98ID:D6MzcBW9なんやこれわざとやってんのか?
0420デフォルトの名無しさん
2016/06/03(金) 17:48:26.82ID:cxSjYB6Rおまえもバカなの?
バカ同士気が合うんだな
0421デフォルトの名無しさん
2016/06/03(金) 18:46:51.17ID:qTHUaoua0422デフォルトの名無しさん
2016/06/03(金) 19:43:22.52ID:1XJ7uNxljsonを受信しようと組んでみましたが、うまくいきません。
ブラウザは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が表示されます。
ただ、ブラウザが別のページだとコンソールには何も表示されません。
どのようにすればよろしいでしょうか?
ログには「クロスオリジン要求をブロックしました・・・」のようなメッセージが出ます。
0423デフォルトの名無しさん
2016/06/03(金) 20:10:29.09ID:p9oJqMem頭いかれてんなこいつ
0424デフォルトの名無しさん
2016/06/03(金) 20:20:21.84ID:WTDDDw9Oテーブル同士の結合www
まあ、おまえが多次元DB使ったとこ無いことは理解したよw
0425デフォルトの名無しさん
2016/06/03(金) 20:31:02.84ID:n0THg94n頼むから!!!
頼むから!!!もう!!!二度と!!!
onreadystatechangeなんて使わないでくれ!!!!!
readyState?!目が腐る!!!!!
0426デフォルトの名無しさん
2016/06/03(金) 21:01:10.72ID:1XJ7uNxlどうすればいいか教えてください
マジで困っています
0427デフォルトの名無しさん
2016/06/03(金) 21:08:50.41ID:0G5q73nhhttp://www.html5rocks.com/en/tutorials/cors/?redirect_from_locale=ja
0428デフォルトの名無しさん
2016/06/03(金) 21:43:27.43ID:6tJjdY0+0429デフォルトの名無しさん
2016/06/03(金) 21:48:09.86ID:TYtzKZdV0430デフォルトの名無しさん
2016/06/03(金) 22:37:38.94ID:D6MzcBW9何や君結合と関連の違いも分からんで突っ込んどったんか?
どおりで説明が怪しいわけやな
必死に無知を隠してたんやから
0431デフォルトの名無しさん
2016/06/04(土) 00:08:42.59ID:3lsMjWzhクロスドメインなら、JSONP かな?
「jsonp クロスドメイン jquery」で検索!
0432デフォルトの名無しさん
2016/06/04(土) 08:28:02.51ID:vbA2Z8Vh昔から null 判定にはほとんど ToBoolean だけ使っていますが、困ったことはありません。
Polyfill コードを書くときには === を使うこともあります。
0433憲法に守られる在日スパイ・創価・ヤクザ
2016/06/04(土) 08:57:11.18ID:SVOilD6U日本は、2,000年以上続く皇室のおかげで、世界最古の国として、
ギネス認定されているそうです。
自民党は憲法の改正で、日本の国家元首=天皇陛下と条文に明記することで、
天皇制廃止をもくろむ帰化人スパイ勢力(政党、憲法学者、弁護士・言論人等)から、
皇室を守ろうとしています。
※イギリス、オランダ、ノルウェー、デンマーク、スペインなどは国王を国家元首と
憲法上に定めている。(日本同様、政治の実権は有さない。)
※日本で支配的な「護憲派」憲法学者の多くは反天皇。憲法から天皇の条項ごと削除したい
人たちなので、本来は改憲派である。(「象徴天皇制度と日本の来歴」坂本多加雄著より)
公明党「天皇は日本の国家元首ではない」
http://hayabusa3.2ch.net/test/read.cgi/news/1363226509/
自民党・西田昌司
「橋下さん(おおさか維新)の憲法改正は、国柄を破壊することが目的」(自民とは真逆)
https://www.youtube.com/watch?v=sRkdQ2Rlwxs
日本共産党 「目標としては天皇制をなくす立場に立つ」「天皇制のない民主共和制をめざす」
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/
0434デフォルトの名無しさん
2016/06/04(土) 13:17:48.82ID:BFaRmD8M0435デフォルトの名無しさん
2016/06/04(土) 13:26:46.16ID:qPi1xPU60436デフォルトの名無しさん
2016/06/04(土) 15:45:22.85ID:3F7VjM1TTypeSprict
0437デフォルトの名無しさん
2016/06/04(土) 15:58:08.55ID:ZPhk/eMO0438デフォルトの名無しさん
2016/06/04(土) 17:42:38.85ID:vhhVz63c↑こーいうふうに
タグとか補完して欲しいんですけど、
何のエディタ使えばいいんですか?
Windowsでお願いします。
0439デフォルトの名無しさん
2016/06/04(土) 18:03:53.99ID:BiFmHB/Phttps://www.sublimetext.com/
その動画のやつならWindowsでも使えるよ。
0440デフォルトの名無しさん
2016/06/04(土) 18:13:24.70ID:vhhVz63c0441デフォルトの名無しさん
2016/06/04(土) 18:36:53.03ID:TumyIwY9「あまり」とは具体的に何ですか?
JavaScriptを使いながらJavaScriptを意識しないのは相当矛盾していると思いますが、何が目的ですか?
0442デフォルトの名無しさん
2016/06/04(土) 19:03:08.12ID:vhhVz63c動画のしょっぱなのhtmlとか入力すると
必要なタグをボンっと出すやつどうやるんですか??
0443デフォルトの名無しさん
2016/06/04(土) 19:46:47.25ID:925XNPqISQLが集合論だとも理解してない人には難しかったかな。
小さなオツムで、undefinedは不要、nullが含まれている行と、行がないのは等価値だと一生騒いで、
そのままエンジニアにならずにホームレスにでもなってくれw
0444デフォルトの名無しさん
2016/06/04(土) 19:53:11.80ID:Eqdj22Ns理解させようと説明して歩み寄るならともかく、お互いに避難しあってるだけでは前進しないぞ
その気がないなら沈黙で返すのが周囲に迷惑をかけない唯一の方法
0445デフォルトの名無しさん
2016/06/04(土) 20:54:05.74ID:71w07kjf作成時にコーティングを必要とせず、ジャバスクリプトの動的効果は享受したいということです
0446デフォルトの名無しさん
2016/06/04(土) 21:05:17.49ID:AIJuo/HE0447デフォルトの名無しさん
2016/06/04(土) 21:05:18.12ID:Eqdj22Nsコーディングしないならそれはプログラミングではないですね。
既存のライブラリや使いまわせるコピペコードを検索して探してみてはいかがですか。
いずれにしても、このスレで聞くには趣旨がずれていると思いますが。
0448デフォルトの名無しさん
2016/06/04(土) 21:16:28.25ID:AIJuo/HE0449デフォルトの名無しさん
2016/06/04(土) 21:27:23.54ID:Eqdj22NsJavaScriptを勉強せずにJavaScriptを書きたいとする要望が子のスレの趣旨に反していると言いたかったのですが。
0450デフォルトの名無しさん
2016/06/04(土) 21:29:46.92ID:AIJuo/HE0451デフォルトの名無しさん
2016/06/04(土) 22:02:26.83ID:Y4cfNkA+0452デフォルトの名無しさん
2016/06/04(土) 22:27:00.97ID:o5H+FwEMそう思うなら、質問しなければいいんじゃないですかね?
0453デフォルトの名無しさん
2016/06/04(土) 23:09:22.49ID:AIJuo/HE0454デフォルトの名無しさん
2016/06/04(土) 23:34:41.13ID:M/5wRGJi0455デフォルトの名無しさん
2016/06/05(日) 00:03:18.80ID:mO7gP4jxこの状況でそんな基本事項を嬉々として出すって、
おっさん本当に学生以下とちゃうか?
少しはまともなレスしろや
そもそも集合(テーブル)間の射の話なんやから、
そのレスじゃ何にも反論できとらんどころか、
結局おっさんの仕様じゃ繋がっとらん状況じゃ自分で自分の首絞めとるやろ
そして自分から多次元DB持ち出してきた癖に何棚上げしとるんや
知ったかと煽りしかできない珍獣は、某関数型ヴォルデモートでお腹いっぱいやで
0456デフォルトの名無しさん
2016/06/05(日) 00:18:27.24ID:hY1lA33Bこんだけ偉そうなこと言ってんだからどこに出しても恥ずかしくないレベルのもんかけるんだろ?
あくしろよ
0457デフォルトの名無しさん
2016/06/05(日) 01:09:47.31ID:Ewjxu1z+「JavaScriptのプログラムを作りたいけどJavaScriptを勉強する気がないので、ウィザード形式で質問に答えるだけでJavaScriptコードを生成するジェネレータを下さい」
って事かな
さすがにクレクレ君すぎる
0458デフォルトの名無しさん
2016/06/05(日) 01:27:22.46ID:bEHxSIM9Haxe (ヘックス)
ECMAScript 4に似ている。
Adobe Flashおよび独自のNekoVMで、実行可能なバイトコードにコンパイルされるほか、
JavaScript、ActionScript、C++、C#、Java、PHP、Pythonへのソースコードの変換が可能である
0459デフォルトの名無しさん
2016/06/05(日) 01:33:27.00ID:mO7gP4jx誰に言ってるんや?
ワイに言ってるならDBの定義の話やからコードもクソもないやろ
0460デフォルトの名無しさん
2016/06/05(日) 02:34:08.07ID:b0qHmmcLド頭は大丈夫ですか?
0461デフォルトの名無しさん
2016/06/06(月) 02:21:20.33ID:6giGfHQ3(基本的にサーバ側の処理は無しにしたい)
ストリーミングの録音の実装は初めてなんだが、どうやったら良いのだろうか?
何らかのライブラリを使えば楽そうだとは思うが…
0462デフォルトの名無しさん
2016/06/06(月) 05:01:20.04ID:QbKl1YZHなぜそんなことが可能だと思った?
0463デフォルトの名無しさん
2016/06/06(月) 12:22:15.75ID:23OtUYllローカルに node.js を立てるとか。
0464デフォルトの名無しさん
2016/06/06(月) 21:05:53.55ID:RzJ8yYQp0465デフォルトの名無しさん
2016/06/07(火) 05:14:58.76ID:Gl1NOXsxこいつすぐに煽るからわかりやすいな
0466デフォルトの名無しさん
2016/06/07(火) 19:02:47.33ID:PnKxWLGBありがとうございました。
できるようになりました。
0467デフォルトの名無しさん
2016/06/07(火) 19:26:52.79ID:87JRkB9l俺ならもう少し嫌な感じで煽るよ。
0468デフォルトの名無しさん
2016/06/08(水) 08:52:28.55ID:zEmhDMcI0469デフォルトの名無しさん
2016/06/08(水) 21:39:35.82ID:BBcfGQEZちゃんと質問に答えてやれよ
0470デフォルトの名無しさん
2016/06/08(水) 22:37:16.03ID:ISsCi+NM> あと、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界隈にありますか?
0471デフォルトの名無しさん
2016/06/09(木) 08:26:24.28ID:EGkuN86i0472デフォルトの名無しさん
2016/06/09(木) 08:46:22.16ID:e3vAFbmOvar f1 = new F(1);
var f2 = new F(2);
var ary = [];
ary.push(f1);
ary.push(f2);
console.log(f1, f2, ary);
prototypeなど使わずに、普通にこれでいい
0473デフォルトの名無しさん
2016/06/09(木) 09:04:45.80ID:5KODI7Ed0474デフォルトの名無しさん
2016/06/09(木) 09:05:55.20ID:dIu2vu4F0475デフォルトの名無しさん
2016/06/09(木) 09:25:17.23ID:rjZdspVd0476デフォルトの名無しさん
2016/06/09(木) 09:31:01.62ID:E+QhxTx8こう書くぐらいなら
function F(age){ this.age = age; }
こう書けばいいのに。
0477デフォルトの名無しさん
2016/06/09(木) 09:35:16.54ID:E+QhxTx8中古で安いの探せば3000円ぐらいで買えるのでは?
0478デフォルトの名無しさん
2016/06/09(木) 13:53:50.48ID:QTm6YzLaその方法でどうやってfirst()を呼び出すのかな
0479デフォルトの名無しさん
2016/06/09(木) 14:40:04.41ID:G4u6WZVB後者は旧石器時代の方式だな
0480デフォルトの名無しさん
2016/06/09(木) 16:54:36.03ID:+YsNEGfA0481デフォルトの名無しさん
2016/06/09(木) 17:06:35.65ID:bsniAtVUぜんぜんちゃうやんw
0482デフォルトの名無しさん
2016/06/09(木) 17:26:41.69ID:G4u6WZVB旧石器時代には後者の方法が多用されていたが、それでは問題があるので
近代にはめったに使われなくなったということだが
0483デフォルトの名無しさん
2016/06/09(木) 19:11:58.00ID:U5aI2wboどちらもES3の頃から存在して使い分けされていたわけだが
関数式を使わない時代っていつだ?
せめて、関数名ぐらいつけろよ、といいたい
0484デフォルトの名無しさん
2016/06/09(木) 19:22:11.65ID:Homi8Ck7const fn = function fn () {};
0485デフォルトの名無しさん
2016/06/09(木) 19:32:23.75ID:KvDILg9Tそのコードが制限付きで動作している事を理解していればそれでいい
- iterable でない(Symbol.iteratorで対応可能)
- a[100] = 1; で length を書き換えない(new Proxy で対応可能)
- a.length = 5; が働かない(Object.definePropertyで対応可能)
- 一部の汎用的ではない関数(concat等)が期待通りに動作しない(独自にコードを書けば対応可能)
0486デフォルトの名無しさん
2016/06/09(木) 23:45:53.30ID:W5L1fKQF詳細にありがとうございます!!
> - 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に非対応なブラウザもあるようなので注意ですね。
0487デフォルトの名無しさん
2016/06/09(木) 23:47:09.04ID:W5L1fKQF> - iterable でない(Symbol.iteratorで対応可能)
現時点ではワケが分かっておりませんが頂いたヒントは大事に記憶しておきます。
> - 一部の汎用的ではない関数(concat等)が期待通りに動作しない(独自にコードを書けば対応可能)
これも今確認しました。concat使えないの悔しいです。
Object.defineProperty(a, 'concat', {enumerable: false, value: function () {
return A.prototype.concat.apply(this.slice(), arguments);
}});
しかしまぁこういうのを結局書いていくのは悔しいですね。
ちょっとラクしたいだけなのに段々大袈裟になっていくという…。
0488デフォルトの名無しさん
2016/06/10(金) 00:39:24.13ID:G+eNnn4N言っていることは間違いではないが、(結果的にでも)無垢な少年を騙すのはいかがなものか、、、
>>487
てかお前、それ自分でやってておかしいって思うだろ?
ここの連中は仕様には詳しいが、コードを書いてないから、実装方式については話半分に聞け。
(まあ今回は君が勝手に突っ走ったのであり、騙したわけではないとは思うが)
そのコードを見る限り、君は自力で解に辿り着けるはずだ。
俺がぱっと思いつくだけで解は3通りある。当たりかどうかは答えてやるから、冷静に考えてみろよ。
0489デフォルトの名無しさん
2016/06/10(金) 01:01:27.01ID:DHroUP1C初回起動時のform(画面項目)の値と現在の値を比較して1つでも変更があった場合にはポップアップを表示するといった処理を実装したいのですが何か良い方法があれば、ご教授お願い致します。
0490デフォルトの名無しさん
2016/06/10(金) 01:02:08.05ID:DHroUP1Cはじめはその項目のvalueとdefaultValueにて比較できると思いましたが、defaultValueは画面を再描画するタイミングで取得しますが、行いたい処理の途中でアクションが走り必ず再描画されるタイミングがあるためその方法では比較できないことに気づきました。
0491デフォルトの名無しさん
2016/06/10(金) 01:02:31.57ID:DHroUP1C(また項目の入力チェックなのでエラーになった場合にも)
なので再描画されても、初期表示時の値と現在の値を比較する方法はないでしょうか…
ちなみに画面はJSPにて実装しており、項目はtextやradioやoptionなどあります。
0492デフォルトの名無しさん
2016/06/10(金) 01:28:33.37ID:rm3c6PtRhttps://mitsuruog.github.io/javascript-style-guide/#%E9%96%A2%E6%95%B0functions
7.1 関数式より関数宣言を利用してください。
なぜ? 名前が付けられた関数宣言はコールスタックで簡単に見分けることができます。
さらに関数宣言は関数の本体が巻き上げられます。それに対し、関数式は参照だけが巻き上げられます。
このルールにより、関数式の部分を常にアロー関数で置き換えて利用することができます。
// bad
const foo = function () {
};
// good
function foo() {
}
0493デフォルトの名無しさん
2016/06/10(金) 01:45:19.78ID:rm3c6PtR}
という書き方が古臭いとかいうことは当然なくて、
特定の場合では、var hoge = function() {} と書くべきという話を、
頭の悪い、なーんも考えてない馬鹿が、
絶対にvar hoge = function() {} と書かないといけない、
これからはfunction hoge() {} と書いてはならないんだ!って
言ってるだけ。
function Klass() {} という書き方が古くなったとか
聞いたこと無いし、使っていいし、むしろ推奨されている。
ほんと何も考えてない、誰かにaといわれれば
理由も考えずに妄信的にaばっかり使う、そんなやつが多いよなw
0494デフォルトの名無しさん
2016/06/10(金) 02:03:50.61ID:G+eNnn4N俺は仕様には詳しくないから具体的に何が問題になるのかは分からないが、
基本的に「普通」の書き方にしておいた方がいいと思うぞ。
というか、何故お前らが妙なこだわりを持つのか、かなり謎なんだが。
> 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
0495デフォルトの名無しさん
2016/06/10(金) 02:06:08.67ID:rm3c6PtRそこに書いてあるだろw
// Student コンストラクタを定義する
function Student(firstName, subject) {
// 親のコンストラクタを呼び出す。呼び出しの際に "this" が
// 適切に設定されるようにする (Function#call を使用)
Person.call(this, firstName);
// Student 固有のプロパティを初期化する
this.subject = subject;
};
これは普通の書き方。
0496デフォルトの名無しさん
2016/06/10(金) 02:18:52.51ID:G+eNnn4Nおっと?これは失敬。
ということはこれについては統一見解はなくて、どっちでもいいって事だな。
0497デフォルトの名無しさん
2016/06/10(金) 02:49:43.87ID:OOVSLX1/引用元もそうなってたけど、
最後のセミコロンはいらないよねぇ。
0498デフォルトの名無しさん
2016/06/10(金) 05:22:06.39ID:naViO+5cアホかこいつ
0499デフォルトの名無しさん
2016/06/10(金) 08:02:38.57ID:52VYMGKmいろいろと挙動がおかしいのでよく確認してみるといい
繰り返すが、A.prototype.concat は汎用的ではない
https://jsfiddle.net/cw8umnqd/
0500デフォルトの名無しさん
2016/06/10(金) 08:21:29.14ID:o8hFzx97関数式よりも、巻き上げのある関数宣言の方が、良いのか?
0501デフォルトの名無しさん
2016/06/10(金) 08:31:51.96ID:52VYMGKm> しかしまぁこういうのを結局書いていくのは悔しいですね。
ビルトイン関数には汎用的なものと汎用的でないものがあって、汎用的でない機能をエミュレーションするのは単純じゃない
(とはいえ、JavaScriptは汎用的なプロパティ/関数があるだけエミュレーションするのは楽な方だと思う)
内部的に new Array を保持しておき、new Proxy で透過的に new Array を参照すらば比較的楽に実装出来るが、コストがかかる
完璧なエミュレーションに拘らないのであれば妥協も必要
0502デフォルトの名無しさん
2016/06/10(金) 08:33:32.04ID:INHt9BTUこの状態と比較したい、って状況で、「画面の対象のコントロール回ってvalueを;かなんかで繋いで返す」関数作って、それ呼んで値を覚える。
変更チェックかけるときに、もう一回その関数呼んで、覚えたものと===で無ければ何かしら変更があった。
ってやってるよ。
「対象のコントロール」にはclassにcheckDatumとか空クラスつけとけばそれで列挙できるし。
0503デフォルトの名無しさん
2016/06/10(金) 08:47:37.80ID:BhzVNYOIこんなのが毎日偉そうに能書き垂れてんの?
そりゃサンプル出せって言われたら黙るわけだ
0504デフォルトの名無しさん
2016/06/10(金) 09:33:17.22ID:o8hFzx97Groovyのメタプログラミングなら、
実行時に既存のクラスに、メソッドを追加するなら、Category・Mixin。
メソッド・プロパティを変更・追加するなら、ExpandoMetaClass
そういう複雑極まりない方向へ進むのは、最初から考え方がおかしいのでは?
0505デフォルトの名無しさん
2016/06/10(金) 09:36:28.17ID:+uuPJDCE> 関数式よりも、巻き上げのある関数宣言の方が、良いのか?
何も考えてねぇ馬鹿は、変数の巻き上げの問題(もちろん理由がある)の話を、
全く関係ない関数にまで適用しようとする(笑)
理由は何だよw
ブロック内だけで使う関数など、関数式でなければいけない場合もあるが
通常は関数宣言の方がいいに決まってるだろ。
C言語は宣言された関数しか使えなかったため「前方宣言」などという
物が生み出されてしまったが、それ以降、それ以外の殆どの言語は
関数はどこで宣言しても(巻き上げされたかのように)使うことが出来る。
0506デフォルトの名無しさん
2016/06/10(金) 09:40:10.83ID:4srunpG+0507デフォルトの名無しさん
2016/06/10(金) 09:40:12.48ID:+uuPJDCE「さいきんのクールなプログラマはvarで関数入れて使うんだぜ!
今時関数に名前つけるなんてのは旧石器時代だな!」とか言ってるんだぜw
バカっぽいだろ?事実なんにも考えてない。
デバッガ時に関数名表示がでなくなる問題があるというのにな。
0508デフォルトの名無しさん
2016/06/10(金) 10:33:45.27ID:GFWTaLNc> どちらもES3の頃から存在して使い分けされていたわけだが
誰もが(いいすぎ)使い分けるようになったのは、近代になってから
> 関数式を使わない時代っていつだ?
だから旧石器時代だって
ゼロ年代初頭あたりまで
0509デフォルトの名無しさん
2016/06/10(金) 10:36:19.23ID:GFWTaLNc> function Klass() {} という書き方が古くなったとか
> 聞いたこと無いし、
グローバルネームスペースを汚染する弊害について聞いたことないのか
0510デフォルトの名無しさん
2016/06/10(金) 11:04:28.13ID:rddDxbo4クロージャの中でやる分には大丈夫なんじゃないの?巻き上げられたっけ?
0511デフォルトの名無しさん
2016/06/10(金) 11:31:26.83ID:xHgczCBO0512デフォルトの名無しさん
2016/06/10(金) 11:46:24.26ID:XqAkh7YWそんなしょうもない理由だったのか
0513デフォルトの名無しさん
2016/06/10(金) 14:12:05.29ID:dpRBFPup聞いたことないが、その弊害の発生条件は?
0514デフォルトの名無しさん
2016/06/10(金) 14:36:22.02ID:4srunpG+汚染ってなんだよ
0515デフォルトの名無しさん
2016/06/10(金) 15:06:36.55ID:LT2C5Mf10516デフォルトの名無しさん
2016/06/10(金) 15:59:08.90ID:DxAsZ/F50517デフォルトの名無しさん
2016/06/10(金) 16:05:16.91ID:3bO9ZAmE0518デフォルトの名無しさん
2016/06/10(金) 18:15:57.76ID:LT2C5Mf1アラートで出すの?
アラートで出たら、めちゃくちゃ怖いかもww
0519デフォルトの名無しさん
2016/06/10(金) 19:06:13.75ID:qrHSyLm3しかし、風呂敷を広すぎではないかね
元々はprototuype汚染の話ではなかったわけで段々と本題がずれてきているように思う
0520デフォルトの名無しさん
2016/06/10(金) 19:27:07.34ID:qrHSyLm3画面を再描画するならサーバサイドの処理があるはずだが、それはJavaScriptで実装すべき案件なのかね
フォームで値を受け渡してサーバサイドで処理、セッションを使う等、いくつか対策があるはずだが
jsを使うなら再描画させずに動的にDOMを書きかえれば済むが、マルチポスト先を読む限りではこの質問者にはハードルが高そうだな
https://teratail.com/questions/37462
https://teratail.com/questions/37489
0521デフォルトの名無しさん
2016/06/10(金) 20:02:15.97ID:G+eNnn4N少なくとも文法上は大差ないのだろう。MDNにも説明はある。
> 全ての関数は実際には Function オブジェクトです。
> Function コンストラクタか関数宣言か関数式か
> https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Functions_and_function_scope
new Functionや非トップレベル関数(strict modeでは禁止)も含めて書いてあるから余計に分かりにくくなっているが、
要するにどうでもよさそうだ。
現実的にはコンストラクタだけ前方参照できてもプロトタイプが用意できていないから意味がない。
だから関数式の方が似合っている気はする。
ちなみに汚染については変数名か関数名かだけでどちらも汚染する。
また、デバッグ時にこんなところが関数表示されたところで嬉しくない。
どのみちコンストラクタが呼ばれればコールスタックには載るし、ブレークポイントも当てられる。
お前らは異様に文法にこだわることを止めて、もっとコードを書いた方がいい。
指摘が間抜けなのは、コードを書いてないからだ。(実践的ではない)
○○の問題がある(キリッというのは正しいが、それが重要なことなのか、わりとどうでもいいことなのか、区別が出来ていない。
>>520
> マルチポスト先
よく見つけたなw
というかこの手のモラルがない奴、急に増えたよな?何か理由があると思うのだが。
昔から居たけど、マルチポスト先が増えたから発覚しやすくなっただけか?
0522デフォルトの名無しさん
2016/06/10(金) 20:08:51.44ID:RNr8lFlWどうもありがとうございます。おかげで気がついてしまいました。
concatはArrayを受け取ってArrayを返すつもりで>>487では書きましたが、
よく考えると今回拡張したA(以下単にA)を引数に受け取りたいですし、
返す結果もよく考えるとAであったほうが嬉しいかもしれません。
実装の手間という面だけでも尻込みしつつあったんですが、
いまや設計の方針と言う面でも相当きな臭いというか。
concatの返す値が決められなくて不気味。使うときに不安。
仮にsliceやspliceなどのもまとめて全部Aを返すように統一したとしても、
最終的にはArrayとAの二系統が混在する世界になっちゃうわけで不気味。
>>501
> 完璧なエミュレーションに拘らないのであれば妥協も必要
そのつもりだったんですがいざ用意してみると、
欲が出るわ粗が目立つわ方針で不安になるわで散々でした。
今後は生のArrayのみを運用していくつもりです(結論)。
>>504
ありがとうございます。Groovyはぐぐったことすら無いので分かりません。
> そういう複雑極まりない方向へ進むのは、最初から考え方がおかしいのでは?
はい。完全にそのとおりです。
0523デフォルトの名無しさん
2016/06/10(金) 21:47:53.40ID:qrHSyLm3> 今後は生の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 よりは互換コードを書きやすいはずだ
機会があれば、是非新しい世界を作ることに挑戦してみてほしい
0524デフォルトの名無しさん
2016/06/10(金) 21:58:16.74ID:MdFWcZSW0525デフォルトの名無しさん
2016/06/10(金) 22:12:29.26ID:AlU+uWXE結局
Object.defineProperty(...){........}
と書かんといけんのか
0526デフォルトの名無しさん
2016/06/10(金) 22:18:01.79ID:G+eNnn4N0527523
2016/06/10(金) 22:51:59.24ID:qrHSyLm3どういうわけが改行コードが一部消えているな…
0528デフォルトの名無しさん
2016/06/10(金) 23:08:39.56ID:+uuPJDCE(*・ω・*) ゚ *。*
*〇 〇………………………**
祝☆jQuery 3.0 リリース https://blog.jquery.com/2016/06/09/jquery-3-0-final-released/
**………………………………*
+ JavaScript & jQuery 質問用スレッド vol.6 + [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/hp/1465566635/
0529デフォルトの名無しさん
2016/06/10(金) 23:10:44.42ID:+uuPJDCE> > function Klass() {} という書き方が古くなったとか
> > 聞いたこと無いし、
> グローバルネームスペースを汚染する弊害について聞いたことないのか
なにいってんだおめぇ?
var Klass = function() {} という書き方をしても
グローバルネームスペース汚染してるだろw
function hoge() {
function Klass() {}
}
↑Klassがグローバルネームスペース汚染ってどういうこと?w
0530デフォルトの名無しさん
2016/06/10(金) 23:13:14.16ID:+uuPJDCE同じこと思ったw
0531デフォルトの名無しさん
2016/06/11(土) 00:01:17.78ID:MQjYfq34JavaScript ライブラリ総合質問所 vol.5 [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/hp/1465399470/
0532デフォルトの名無しさん
2016/06/11(土) 08:41:10.92ID:MQjYfq340533デフォルトの名無しさん
2016/06/11(土) 13:03:48.93ID:n8nif7qiここ乗っ取られスレだよ
0534デフォルトの名無しさん
2016/06/11(土) 13:06:25.18ID:ijG8u0pc初めてpromiseで簡単な非同期処理を書いたんですが、一応動くもののどうにもコードがしっくりきません
もっとシンプルにできたり、適切な書き方があるところがあったら教えてください
内容は単語queryに対応する画像検索結果がローカルストレージになかったら外部APIに問い合わせるというものです
0535534
2016/06/11(土) 13:09:15.52ID:ijG8u0pcreturn 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);
});
}
0536デフォルトの名無しさん
2016/06/11(土) 13:14:41.27ID:ijG8u0pc<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>
0537デフォルトの名無しさん
2016/06/11(土) 13:21:07.32ID:e5AOazPtこの記事が参考になるかな
http://gao-tec.seesaa.net/article/427643074.html
0538デフォルトの名無しさん
2016/06/11(土) 13:33:33.96ID:ijG8u0pcありがとう 3回読んできます
0539デフォルトの名無しさん
2016/06/11(土) 13:39:59.04ID:n8nif7qi2chはHTMLタグ使えないからjsFiddleみたいな投稿サイトを使うといいよ
前まではテンプレにあったんだが
一見ネストが深いように見えるけど結構シンプルに纏まってると思う
fetchの部分を外に出せば視認性がよくなるんじゃないのって程度
しいて言えばgetImageData内でPopUp関数を呼び出してるのがしっくりこない
getImageData自身もPromiseインスタンスを返してresolve(json)するのがいい
0540デフォルトの名無しさん
2016/06/11(土) 13:59:44.48ID:ijG8u0pc今日だけ師匠と呼ばせてください
自分でもそこはなんか気持ちわるかったんです promiseチェインがcatchで始まった挙句、頭でっかちで
でも外に出すというのはどうやるんでしょう・・・
fetchからの処理をまとめた関数(返り値は最終的なjsonデータのpromise)を外に定義して、それを呼び出す感じですか?
そしてgetImageDataがPromiseインスタンスを返すように書き換えるには、ええと・・・(思考フリーズ)
0541デフォルトの名無しさん
2016/06/11(土) 14:41:46.28ID:n8nif7qigetCachedDataと同じ書き方をfetchとgetImagedataでやるだけだよ
0542デフォルトの名無しさん
2016/06/11(土) 15:16:00.71ID:NAulAg4n> 一見ネストが深いように見えるけど結構シンプルに纏まってると思う
え? ちょっとまてよ?
0543デフォルトの名無しさん
2016/06/11(土) 15:45:12.80ID:NAulAg4nこれgetImageDataの中でキャッシュあるか調べてるからいけないんだよ。
一般論として、キャッシュというのは存在を意識しないようにコードにするべき。
関数の役割ってのが書いてないし、これだけじゃ読み取れないから難しいんだが、
そのgetImageDataっていうのは画像があれば、ポップアップウインドウを表示するんだろう?
であれば、getImageData() ではなくて showImageData() とかいう名前にするべき。
そして、getCachedData()ではなく、こっちをgetImageData()にするべき。
getImageData()っていうのは単にImageDataを返すだけ、その中でキャッシュを使っていようが
使っていまいが関係ないし、別の仕組みのキャッシュを使うかもしれない。がgetImageData()を
使う人からはそんなこと知ったことじゃない
>>535のコードは、chrome.storage.local を使っている箇所が、getCachedDataと
getImageDataの2つに分かれているだろ? 関数の役目が明確に分離されていないからそうなる。
非同期の書き方の問題の前にまずやることがあるってことさ。
あと、スペース1個でインデントは見にくいからやめろw
最低でも2個だ。
0544デフォルトの名無しさん
2016/06/11(土) 15:47:35.86ID:NAulAg4nやりたいならば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;
}
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);
});
}
0545デフォルトの名無しさん
2016/06/11(土) 15:56:05.66ID:NAulAg4n動かせる環境がないので、これで正しく動いているかはしらない。
元のコードに合わせて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;
});
}
0546534
2016/06/11(土) 16:03:43.18ID:ijG8u0pc自分でああでもないこうでもないと考えてコードを修正していたら返信遅れました
か ら く ちwwww と思って訂正コードと自作スパゲッティを見比べたらグウの音も出ませんでした
この整理されたしっくり来る感じ 勉強になります
あとは・・ エラーハンドリングについてわからないところがあります!
0547デフォルトの名無しさん
2016/06/11(土) 16:07:35.34ID:ZhHlBSFM良い記事だ。
が、前から疑問なのだが、何故お前らはネストにこだわるのだ?
俺は展開して書いていて、特に問題を感じない。
要求が「脳筋無限ループの例ぐらい単純な構造で」「非同期処理を実現する」
「処理は上から下へ」「ネストが深くならない」ならば、これでいいと思うのだが。
好きずきはあると思うが、このような場合にでも例としても出てこないのは謎なんだが。
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();
0548デフォルトの名無しさん
2016/06/11(土) 16:12:31.73ID:NAulAg4n実はcacheのあとにthenをつなげたことないんでねw
まあ関数の中を試行錯誤すりゃできるだろうと思うけど。
最悪>>544でいいし。
"何をする" 関数か?(クラスか?)ってことをよく考えることが重要。
動くようにコードを配置するんじゃなくて、何をする関数か?を定義して
それに合わない所はたとえコードが増えても外にだすべきだし、
入れるべきだと思えば、どうにかして持ってくる。
もちろん場合によっては、"何をする" の定義を変えてもいいけど
はっきり定義させることが重要。
例えば、このgetImageData()はchrome.storage.local を使うことが前提になってるけど、
いろんなキャッシュの仕組みを入れ替えられるようにする関数(というかクラスになるだろうけど)を定義すれば
getImageData()の中からはchrome.storage.localが消えて、キャッシュの仕組みを
入れ替えられるだけのことをするクラスができあがるわけ。
0549デフォルトの名無しさん
2016/06/11(土) 16:15:59.14ID:NAulAg4n> が、前から疑問なのだが、何故お前らはネストにこだわるのだ?
やりかけで覚えておかなければならないことが増えるからだよ。
Aが終わってからBをして、Bが終わってからCをする。というやり方よりも
Aの途中でBをして、Bをしているその途中でCをするほうが疲れるから。
Cが終わったら、Bはどうなったんだっけ? そしてAはどうなったんだっけ?って
戻って行かないといけないからね。
言い換えると可読性の問題だからだ。
非同期とかそういうところが問題になってるんじゃない。
やりかけの作業を脳に貯めておくと言うところが問題なんだよ。
0550デフォルトの名無しさん
2016/06/11(土) 16:20:02.55ID:NAulAg4nあと、そのコードの問題は「名前」が増える。
名前が増えるっていうのも、いちいち記憶して
おかなければならないことだから面倒
限りある記憶領域は、記憶する価値のある物、
汎用的でどこでも使えることだけに絞る必要がある。
覚える価値がないものは覚えなくていい。
そのコードは関数の名前が増えているだけだが、
クロージャーじゃなくなっているから、変数の名前も増えるだろうね
あと処理があちこちに飛ぶから、コードが長くなったらスクロールする回数も増えるよw
もちろん関数が長ければ分けるが少なければその場に埋め込むという意味だ。
0551デフォルトの名無しさん
2016/06/11(土) 16:26:52.64ID:ZhHlBSFMそうか?ぶった切られているだけで、実は同じだろ。追加部分を見やすいように編集しておいた。
同期的に「放り投げて終わり」にしたいという気持ちも分かるが、無理にネスト/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();
0552デフォルトの名無しさん
2016/06/11(土) 16:29:29.39ID:tWgkOxEq0553デフォルトの名無しさん
2016/06/11(土) 16:35:45.96ID:NAulAg4nサンプルコードでやってるからだめなんだよ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();
0554デフォルトの名無しさん
2016/06/11(土) 16:36:17.69ID:ZhHlBSFM「名前」が増えるのは事実だけど、関数内関数で隠蔽するし、
そもそも処理を必ず「上から下に」書くのでその点は問題にならない。
つまり、このように展開した場合、その関数は直前のsetTimeoutからしか呼ばれない。
したがって、覚える必要はないし、
処理があちこちに飛ぶこともない。(ただこれはそう書く、ということだが)
ちなみにクロージャーにはなっている。
> もちろん関数が長ければ分けるが少なければその場に埋め込むという意味だ。
いや、結構糞長い奴もそこに書くよね?
$.ajaxとかその場にだらだら全部書くほうが普通じゃないか?
0555デフォルトの名無しさん
2016/06/11(土) 16:39:28.40ID:NAulAg4nもうそろそろ>>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
0556デフォルトの名無しさん
2016/06/11(土) 16:39:52.50ID:ZhHlBSFMああ、ちょっと遅れたが、それは既に書いたように、俺内コーディングルール
処理を必ず「上から下に」書く
で対応している。というか、そもそも意図的に可読性を落とす必要はないだろ。
「上から下に」書けるところでは「上から下に」書くのが常識だろ。
名前もこの手の場合は XXX_1, XXX_2, ..... と順に付けていく。おかしな名前を付けたりすることはない。
0557デフォルトの名無しさん
2016/06/11(土) 16:40:41.06ID:NAulAg4n> $.ajaxとかその場にだらだら全部書くほうが普通じゃないか?
下手なやつが多いだけ。
俺は関数に分けるべき理由が生まれれば当然分ける。
0558534
2016/06/11(土) 16:40:58.22ID:ijG8u0pcfunction 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;
}
0559デフォルトの名無しさん
2016/06/11(土) 16:44:00.74ID:NAulAg4n> 処理を必ず「上から下に」書く
>
> で対応している。というか、そもそも意図的に可読性を落とす必要はないだろ。
> 「上から下に」書けるところでは「上から下に」書くのが常識だろ。
ほらなw お前の常識w
何処かで、function hoge() {} じゃなくて var hoge = function() {} って
書けって言っていたやつが居るが、
(ちなみに俺はその必要がないならばfunction hoge()って書け派)
これは上から下に書けない。
hoge();
var hoge = function() {}
hage()
var hage = function() {}
まあ 「上から下に」"書けるところでは" って書いているところからもわかるように
書けない場合があると自覚してるんだろうがw
その書ける所と書けない所、ここは書ける所だという前提を知ってるのも「記憶」だよねw
0560デフォルトの名無しさん
2016/06/11(土) 16:44:38.09ID:ZhHlBSFM何が言いたいのか分からんが、これでいいか?
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();
0561デフォルトの名無しさん
2016/06/11(土) 16:46:15.25ID:NAulAg4n勝手にコード書き換えんなよ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
0562デフォルトの名無しさん
2016/06/11(土) 16:50:41.71ID:NAulAg4nいやw 何が疑問なのかさっぱりわからないんだがwww
0563デフォルトの名無しさん
2016/06/11(土) 16:51:15.94ID:ijG8u0pc1.最後のcatchのなかでもう一度new Error(err)を投げる
2.Promise.reject(error)を返す
3.そもそも書き方が悪い、 >>544みたいにfetchをnew Promiseでラップして、reject(err)してください
どれが適切なんでしょうか
0564デフォルトの名無しさん
2016/06/11(土) 16:54:15.22ID:ZhHlBSFMいや勝手に書き換えたのはお前だろ。
>>555のコードでは var v=1 は Mainの中じゃないか。
Main_1の中で新しい変数が必要なら、
・Main_2をMain_1内に移動する(ネストが増える)
・v を Main内で定義しておく
のどちらかだろ。俺なら後者的アプローチを取ることが多いと思う。
ただ、途中で変数が必要なときも管理しなくていいというのは確かにメリットかもな。
0565デフォルトの名無しさん
2016/06/11(土) 17:02:05.55ID:ZhHlBSFMそれはクラスの時の話だ。
クラスの場合は、コンストラクタだけ呼べても意味がないだろ。
Hoge.prototype.XXX = function(){...};
の記述が「順序が必要」なので、どのみちその記述以降じゃないと new Hoge() 出来ないんだよ。
誰も普通の関数 hoge を全部 var hoge = function(){} と書けとは言ってない。
お前が話について来れてないだけ。
まあ分かった、お前が「文法的に読み込める方が善」というのならそれでいい。
で、他の連中もそうなのか?
0566デフォルトの名無しさん
2016/06/11(土) 17:09:12.67ID:ZhHlBSFMちと細かいがこれにも言っておくと、
> 俺は関数に分けるべき理由が生まれれば当然分ける。
彼等は「関数に分けるべき理由」が分からないのではなくて、その必要がないという判断でそこに書いているんだよ。
下手なわけではない。
通常、$.ajaxの場合はそこでしか使われない関数になるから、ネスト派ならそこにだらだら書く方が自然なんだ。
ただ、「ネストが深くなる」のが嫌いなくせに、「ネストでしか書かない」のが俺には疑問なんだ。
0567デフォルトの名無しさん
2016/06/11(土) 17:31:06.27ID:aOjkg+66毎度ありがとうございます。
> 機会があれば、是非新しい世界を作ることに挑戦してみてほしい
今回のことで色々勉強させてもらいましたので、
次に生かせたいと思います! 色々ありがとうございまし!
0568デフォルトの名無しさん
2016/06/11(土) 17:31:44.01ID:aOjkg+66×まし!
○ました!
0569デフォルトの名無しさん
2016/06/11(土) 18:02:04.85ID:NAulAg4n> 下手なわけではない。
> 通常、$.ajaxの場合はそこでしか使われない関数になるから、ネスト派ならそこにだらだら書く方が自然なんだ。
> ただ、「ネストが深くなる」のが嫌いなくせに、「ネストでしか書かない」のが俺には疑問なんだ。
いや、俺は$.ajaxでDeferred使うし、やっぱり下手なだけじゃね?
0570デフォルトの名無しさん
2016/06/11(土) 18:05:04.82ID:NAulAg4n> どれが適切なんでしょうか
どれか迷ったら、一番楽な方法を選べばいいよw
何でもそうだけど原則として楽になるように作られてるわけなんだしさ。
しばらくPromiseは触ってないから忘れたが、throwで任意のエラーオブジェクトでも
投げればいいんじゃね?
0571デフォルトの名無しさん
2016/06/11(土) 18:07:10.39ID:NAulAg4n> クラスの場合は、コンストラクタだけ呼べても意味がないだろ。
意味あるぞ?
function NantokaManager(params) {
this.params = params;
this.run = function() {}
}
var manager = new NantokaManager;
manager.run()
とかさ。
0572デフォルトの名無しさん
2016/06/11(土) 18:08:34.97ID:NAulAg4n> 誰も普通の関数 hoge を全部 var hoge = function(){} と書けとは言ってない。
> お前が話について来れてないだけ。
俺もそんな話はしていない。
ついてこいよw
0573デフォルトの名無しさん
2016/06/11(土) 19:28:03.24ID:ZhHlBSFMすまんが意味が分からんし、お前の主張も分からん。
その場合の駄目なコードとそちらの主張を対で出せるか?(以下例のように)
一応こちらの意見をもう一度言っておくと、
function hoge(){} // OK。通常の関数はこちら。
var Hoge = function(){}; // コンストラクタの場合はこっちの方がよさそう
となる。
そのコードが「共通プロトタイプを持たない場合」に限定しているつもりなら、勝手にどうぞでしかない。
0574デフォルトの名無しさん
2016/06/11(土) 19:33:03.15ID:NAulAg4nえ? お前コードは必ずプロトタイプを持つものっていう前提なの?
どうやらお前は限定しているようだが、
俺は、どんな限定もしていない。
0575デフォルトの名無しさん
2016/06/11(土) 19:40:17.64ID:ZhHlBSFM何が言いたいのか分からん。
そちらが説明しきれないのなら、相互理解は不能だから終わりでいい。
0576デフォルトの名無しさん
2016/06/11(土) 21:27:53.17ID:NAulAg4nお前がこう言ってきたんだろ?
> クラスの場合は、コンストラクタだけ呼べても意味がないだろ。
だから俺は、コンストラクタだけ呼べても意味がある場合を言ったまで。
そしたらお前が「俺は共通プロトタイプをもった場合に限定してるんだ」って
いい出したんだろw
俺はお前と違って何も限定していない。
コンストラクタだけ呼べても意味がある場合は
実際に存在している。
0577デフォルトの名無しさん
2016/06/11(土) 22:29:21.64ID:ZhHlBSFMなるほど、お前は人殺し君か。
どおりで話が通じないわけだ。
0578デフォルトの名無しさん
2016/06/12(日) 00:46:04.68ID:hCgFiHr7>>576は俺ではないし、正直、ID:ZhHlBSFMは頑張って色々回答してるけど実務レベルではないわ。
処理は上から下へ流れるように、なんて、飼い犬が死んでも言わんレベルのたわ言じゃん。
相互に呼び出し合う事のある関数なんかどういう順序で記述するんだろ。
イベンハンドラやら、タイマーのハンドラは、どの順序なのかな。
子供のお題目にしか聞こえん。
逆に何年目か教えてほしいわw
何度かこういう言い方してるけど、ああいう悔しがり方とキレ方する奴が具体的にすら言えないってことは、ほんとに経験無いガクセーさんなんだろうけど。
0579デフォルトの名無しさん
2016/06/12(日) 00:51:30.61ID:CJz8oq6+0580576
2016/06/12(日) 00:51:41.20ID:AMLyjVO9お前のことだったんか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
0581デフォルトの名無しさん
2016/06/12(日) 00:52:45.85ID:AMLyjVO9俺は何回も書いてるよ。
>>546とか読んでみな。(俺が>>546という意味ではない)
0582デフォルトの名無しさん
2016/06/12(日) 01:26:35.68ID:npk74fIw自演じゃないならレベルの高い>>578-581の間で色々解決できるだろうから頑張れ。
0583デフォルトの名無しさん
2016/06/12(日) 01:33:50.33ID:AMLyjVO9自演じゃないぞw
解決できるだろうけど、その前に何も解決すべき
課題が出てないじゃないかw
そして、俺とお前は他人だろ?
その理屈ならいろいろ解決できるだろうな。
何か言ってみろ。俺は手伝わないがwww
0584デフォルトの名無しさん
2016/06/12(日) 01:40:01.79ID:m2Zib5nl最低でも1000行以上あるプログラムとして成立してるもんもってこいや
0585デフォルトの名無しさん
2016/06/12(日) 01:43:07.89ID:npk74fIwじゃあとりあえず>>578の疑問に答えてやれよ
> 相互に呼び出し合う事のある関数なんかどういう順序で記述するんだろ。
> イベンハンドラやら、タイマーのハンドラは、どの順序なのかな。
厳密にはこれは質問ではないから、「俺がどう書くか」の予想でもいいぞ。
とにかくお前らで色々話をしてみろ。
面白そうなら俺も加わるし、他も加わってくるだろう。
どうでもよければ無視されるだけだ。
0586デフォルトの名無しさん
2016/06/12(日) 02:01:39.12ID:AMLyjVO9どうせ質問に答えても自演じゃないって認めないんだろw
まあ質問じゃないとお前もわかってるようだから、それにレスしろと
いうならば、レスするのは何の問題もない。
>>578
> 相互に呼び出し合う事のある関数なんかどういう順序で記述するんだろ。
> イベンハンドラやら、タイマーのハンドラは、どの順序なのかな。
全くだなw 必ずしも上から書けるわけがない。
関数を呼び出される順番に書くとか言っているやつは馬鹿じゃないだおろうかね
どういう順番で書くかは、ばらばらで人によってはアルファベット順ってこともあるだろう。
だから必要もないのに小さな関数に分けるなんて論外。
一つの関数にし、ネストがいやだからPromiseというのが使われるようになった。
この件に関しては、俺は>>578と同じ意見だろうな
0587デフォルトの名無しさん
2016/06/12(日) 02:36:10.54ID:npk74fIw> この件に関しては、俺は>>578と同じ意見だろうな
そりゃ同一人物だからなw
まあ、人殺し君も多投するタイプだから、待ってればレスが返ってくるはずだ。
そして本当に別人なら、色々意見交換すれば相違点が発見できるだろう。
それは俺関係なしにいいことだから、やってみることだね。
0588デフォルトの名無しさん
2016/06/12(日) 02:56:48.44ID:hCgFiHr7同一人物とかよくわからんな。
俺が連投するのは暇だからで、まともに過ごしてる時はそれなりにしか書かんけど。
10日間際は忙しいからな。
まさか本気で同一人物だと思ってたら笑えるww
0589デフォルトの名無しさん
2016/06/12(日) 03:17:12.70ID:hCgFiHr7うむ。アルファベット順ならまだマシだけど。
台帳に書いてある順とかちょっとびっくりする会社もあるからな。どことは言わんけど。
多分業務経験ない奴は笑うだけだが、
実務やってれば「NDA結ばないとリバースエンジニアリングすら難しい」という人間minifierだったりする。
必要に応じて関数は分けるべきというより、むしろ、関数は射影的であるべきだと思う。
コールバック関数のネストを「関数と関数を繋いでる」と単純に誤解して悪手だと思ってほしくないのが、
本来は関数と「関数を引数に取る関数」を定義して、「関数を引数にとる関数」に関数を食わせるが為の手段を逆に見た結果、「コールバック」って姿に見えてるだけ。
だから、yieldとジェネレーターを使おうが、Promiseを使おうが、本来は何一つ定義が変わってる訳でも、処理が変わってる訳でも無い。
関数に関数を食わせて値を取り出してる。
・水を冷やして出来た物を、回転する鉋で削って、皿に落とし入れたもの、
・皿で受け止めた、回転する鉋で削られた、冷やされた水、
・回転する鉋で水を冷やして出来た塊を削り、皿に落としたもの
は全部主題が同じもの。
水を冷やす、という関数と水を、値として「氷」と扱おうが、
かき氷機を「『水を冷やした物』削り機」と展開しようが、とう扱うかは使い方次第。
そこに、ニーズ外の要件なんて無いの。扱いにくいとかどうでもいいんよ。
また、undefinedの時と同じ勘違いしてるけどさ。
水→機械A→中間生成物→機械B→製品、
というシーケンスであらわすのが正しいのか、
((水→機械A)→機械B)→製品、とフローで合わすのかは瑣末すぎるほどの差。
しかし、言われてるのは俺じゃないが、関数を大文字から始めると経験不足なんだwww
C20年目かもしれんけどな、そういう人はww
0590デフォルトの名無しさん
2016/06/12(日) 03:21:29.67ID:hCgFiHr7voidとか、岡部健みたいな感じの破綻者に対して憧れてる人間、くらい性根がさもしい。
0591デフォルトの名無しさん
2016/06/12(日) 09:01:52.07ID:AMLyjVO9だから同一人物じゃねーよw
0592デフォルトの名無しさん
2016/06/12(日) 09:04:46.11ID:AMLyjVO9> しかし、言われてるのは俺じゃないが、関数を大文字から始めると経験不足なんだwww
JavaScriptのコーディング規約はいくつもあるが、どれも関数は小文字で始める。クラスは大文字。
JavaScriptの経験があるなら、これに従ってるはずなので
見た瞬間気持ち悪さを感じるものだよw
0593デフォルトの名無しさん
2016/06/12(日) 09:10:26.75ID:AMLyjVO9> だから、yieldとジェネレーターを使おうが、Promiseを使おうが、本来は何一つ定義が変わってる訳でも、処理が変わってる訳でも無い。
処理が変わってるわけでもない・・・ならば
読みやすい方がいいだろ?
逆に考えれば、どんなに読みづらく書いても
処理が変わっていないというコードにすることはできるだろう?
読みづらくても処理が同じならいいと言うのか?
そうではないだろう。
コードっていうのは書いて終わりじゃない。修正するもの。
むしろ読むほうが多いので、書くよりも読むほうが大事。
だから「可読性」という言葉がある。「可書性」という言葉はない。
> そこに、ニーズ外の要件なんて無いの。扱いにくいとかどうでもいいんよ。
俺はいまだかつて「時間的に早く書けて修正も簡単で、メンテナンスにかかるコストが低い」
という要件がなかったことはないぞw
どんなプロジェクトでも安く仕上げることは、暗黙的に含まれてる要件だ。
0594デフォルトの名無しさん
2016/06/12(日) 13:15:07.43ID:npk74fIwみんな見てくれてるから、せいぜい頑張れ。
0595デフォルトの名無しさん
2016/06/12(日) 13:19:20.40ID:AMLyjVO90596デフォルトの名無しさん
2016/06/12(日) 13:20:50.61ID:AMLyjVO9一人だから意図的に会話できる。
それが自作自演の証拠って言うつもりだなw
0597デフォルトの名無しさん
2016/06/12(日) 15:04:26.78ID:npk74fIwだったら俺を引っ張り出す方向のレスを付けること自体おかしいだろ。
ガン無視してくれよw
いずれにしても、君らが「別人」かどうかは皆が判断することであって、
俺が「自演」主張しても、逆に君らが「別人」主張しても意味無いんだよ。
どちらがキチガイかは皆が判断してくれる。
そして一つアドバイスをするなら、君のキャラなら>>592は
「え?お前偉そうなこと言っている割には『大文字』のルールも知らないんだwww」
と煽るべきだった。キャラを変えると自然な自演に見えない。
君も煽りで相手を引き出すキャラなんだし、
このレスなら人殺し君のキャラなら確実に食いついてくるし。
本当に別人なら、君らが会話すれば君らにとっても得る物があるはず。だからもっとやればいい。
いちいち俺に対してキョロキョロしたり、
或いはここに来て会話を終わらせる方向にキャラ変更するのは不自然だ。
はい続きをどうぞ。
0598デフォルトの名無しさん
2016/06/12(日) 16:27:25.35ID:9HFtYPb0悔しくて大ハッスルしてるの?
0599デフォルトの名無しさん
2016/06/12(日) 16:54:18.02ID:hCgFiHr7そりゃ、javascriptの規約はいくらでもあるだろうけど、
javascriptの規約しか知らないどころか、ありえないような口ぶりで話してたからねw
なんかからトランスパイルするなら、こうなるだろうな、って考えたりしないんだ、って感じ。
>>593
もちろんそう。
しかし、読みやすいのと書きやすいのと、定義しやすいのはそれぞれ別の概念だから、そういう意味では可読性に相当する単語は、独立性とか、依存度とか、抽象度とか
見方次第でいくらでも変わるものじゃないか?
安くあげる事より、致命的な不具合を出さない事の方が求められるプロジェクトしかやってないからな。
正直、安くなくても売れるから。
安くないほうが売れるとも言えるレベルで。
>>597
お前ほんと何と戦ってんの?
0600デフォルトの名無しさん
2016/06/12(日) 19:20:47.80ID:npk74fIw> わざとこの態度だからなぁ。 (>>327)
煽っていくスタイルプリーズ
0601デフォルトの名無しさん
2016/06/12(日) 19:39:15.05ID:AMLyjVO9なんでそんなコード書くの?www
0602デフォルトの名無しさん
2016/06/12(日) 19:40:36.87ID:z4XaqaSOlet t = a;
t[0] = 1;
console.log(a);
console.log(t);
}
let a = [0];
f(a);
これaも[1]になっちゃうんですが
ES2015とか新しい書き方で配列をコピーする方法ありませんか?
0603デフォルトの名無しさん
2016/06/12(日) 19:41:46.51ID:AMLyjVO9> どちらがキチガイかは皆が判断してくれる。
お前がキチガイだって俺は判断したよwww
0604デフォルトの名無しさん
2016/06/12(日) 22:24:47.44ID:QKWa7och0605デフォルトの名無しさん
2016/06/12(日) 22:34:59.19ID:npk74fIw馬鹿にはちゃんと安価付けろ。気づいてもらえないぞ。
てかお前もちゃんと煽れよ。
>>599
>>601は>>599宛だぞ。
おーい。煽られてるぞー。
0606デフォルトの名無しさん
2016/06/12(日) 22:46:30.04ID:xguVhByI0607デフォルトの名無しさん
2016/06/12(日) 23:31:28.41ID:GjxFekK/concat
0608デフォルトの名無しさん
2016/06/12(日) 23:34:06.35ID:xguVhByI最初は?ってなるけど、知ってしまえば簡単に覚えられるし。
なんらかのdeepコピーの場合はライブラリ使うしか無いかな?
0609デフォルトの名無しさん
2016/06/12(日) 23:54:06.37ID:npk74fIw0610デフォルトの名無しさん
2016/06/12(日) 23:56:00.26ID:hCgFiHr7お前、脳みその代わりにババロア詰まってて、しかも微妙に機能してんじゃねえの?
一番煽られてんのはお前だと思うんだけどw
恥ずかしくねえのかな。。
0611デフォルトの名無しさん
2016/06/12(日) 23:57:34.48ID:hCgFiHr7JSON.parse(JSON.stringify(obj))
が、一番手軽で早い。
0612デフォルトの名無しさん
2016/06/13(月) 00:05:59.69ID:6Ot446qT関数コピーできない。
日付がおかしくなる。
undefinedが消える。
使えないねw
0613デフォルトの名無しさん
2016/06/13(月) 00:15:43.00ID:rTAmnA9g値をコピーするなら十分でしょ。
関数をコピーとか必要性がわからんし、
undefinedが消えるって、元からundefinedだったんだから、消えてないでしょ。
undefinedが消えるってのは、undefinedで無くなるときだよ。
お前の頭が使えねえなぁ。
0614デフォルトの名無しさん
2016/06/13(月) 00:15:53.62ID:+G6yi6vXfor文の中でのみ使う変数を let で宣言しようとしたら、forの中と外どちらで宣言したほうがいいんでしょうか
0615デフォルトの名無しさん
2016/06/13(月) 00:32:34.63ID:6Ot446qT> 値をコピーするなら十分でしょ。
勝手に決めるな。
日付がおかしくなる問題は解決できてないし、
undefinedが消えるっていうのは、キーが無くなるんだよ。
まったく使えないって言ってるだろ
0616デフォルトの名無しさん
2016/06/13(月) 00:40:16.01ID:6Ot446qTどうするのが一番可読性が良いかを考えれば自ずと答えは出る。
可読性を高くするには、頭の中で覚えておくコードを少なくするということでもある。
だからより小さい範囲、つまり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でよくなる。
0617デフォルトの名無しさん
2016/06/13(月) 01:17:56.81ID:+G6yi6vXむむむ・・・ インデックス用の変数でも終了条件でもないです
後で見たときに何をしているか分かりやすいように、計算途中の値に名前をつけて一時変数に入れていました
forの試行毎に新しい計算値が入ります
0618デフォルトの名無しさん
2016/06/13(月) 01:49:05.39ID:6Ot446qTつまりこういうことでしょう?
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の外に置くことは出来ない。
0619デフォルトの名無しさん
2016/06/13(月) 02:07:05.34ID:LLEcmK37なんでjavascriptでdeep copyができないのですか?
}
0620デフォルトの名無しさん
2016/06/13(月) 02:13:16.73ID:+G6yi6vXありがとうございます! forの中に引っ越します
varに慣れていたので繰り返し処理のなかで宣言するのに違和感があったんですよね
0621デフォルトの名無しさん
2016/06/13(月) 02:41:54.70ID:6Ot446qTそこだけでしか使わないし、別に文法エラーでもなんでも無いんだから。
0622デフォルトの名無しさん
2016/06/13(月) 06:18:58.38ID:o3uO7eJPキーが無くなるのと、キーに対応する値にundefinedが入ってるのは同値だろ。
だから、undefinedを代入してる!みたいな勘違いしたのかな?頭おかしいのかなw
日付がおかしくなるって具体的にはどう言うこと?エポックがズレるみたいな話では無くて、型が誤解されるみたいな話なら苦笑いだな。
>>616
変数に代入しないlet、では無いんじゃねえの?
仮宣言みたいなもんで。
0623デフォルトの名無しさん
2016/06/13(月) 07:23:07.35ID:+G6yi6vXコード修正時にtemporal dead zoneによるミスを起こし易いので、スコープ途中でlet宣言する場合は、明示的に新たにブロックスコープを作ったほうがいいと書いてあるのをどこかで読んだんですが、
最後まで使う変数にそれをするとスコープのためだけにネストが深くなってしまって気持ち悪いです
0624デフォルトの名無しさん
2016/06/13(月) 07:33:47.84ID:ZIxcBfsqlet a=nullで宣言しておいたら?
0625デフォルトの名無しさん
2016/06/13(月) 09:10:57.92ID:6Ot446qT> キーが無くなるのと、キーに対応する値にundefinedが入ってるのは同値だろ。
違うぞw
keysで出力されるもの見てみwww
0626デフォルトの名無しさん
2016/06/13(月) 09:47:02.30ID:uHiiHky6わざわざブロック使えなんていうなら、関数全体で同じことしてるvarだって先頭で全部明示しろってなると思うんだけど
0627デフォルトの名無しさん
2016/06/13(月) 09:57:57.31ID:CfEi32hJvar 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]
0628デフォルトの名無しさん
2016/06/13(月) 10:10:14.80ID:CfEi32hJnew 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 関数を作るのが妥当
0629デフォルトの名無しさん
2016/06/13(月) 10:57:57.06ID:ZIxcBfsqあのさ、keysで定義されていてもその中身はundefinedなんだろ?
なら、データとしての扱われ方として、同じだと思うんだけど。
キーがある事が大切であれば、キーを列挙したもの、というデータがあるべきだと思うんだけどどうなの?
>>628
あーなるほど、そういうことか。
参照を失わせるために、そういう事するんだから、であればそのオブジェクトの.toJSONを定義してやるべきだろうね。
0630デフォルトの名無しさん
2016/06/13(月) 11:55:17.37ID:CfEi32hJ> あのさ、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: '太郎'} に書き換えるメリットがない
0631デフォルトの名無しさん
2016/06/13(月) 12:22:56.73ID:CfEi32hJひょっとして、new Person する為の拡張構文をJSON に追加してやるといいたかったのだろうか
私が deep copy するのは構造を書き換えたいが、元の構造も残したい場合だからデータそのものは元のままでいい
new Person('太郎') はたった一人の太郎であり、同名の太郎を作ってもらっては困る
同名オブジェクトを作ると taro === person の比較が出来ず、person instanceof Person && taro.name === person.name のようにダックタイピング的に比較しなければならない
こうなるともう new Person を定義した意味がなく、{name: '太郎'} を生成したのと大して変わらない
0632デフォルトの名無しさん
2016/06/13(月) 13:52:54.74ID:KnYKOJ/Mあー、わからんでもない。
undefinedを値として使う、ってニーズがあれは、それもまた真なんだろうな。
そうなると、assignでもなくオブジェクト毎にちゃんとcloneを実装すべきって感じか。
>>631
ちょっとまって、それはdeepcopyでは無いんじゃないの?
ただの参照の張替えじゃないか。
比較するのであれば、それはequals的なメソッドを作るか、諦めて、stringifyした物同士が同じになるかを比較すべきだろ。
0633デフォルトの名無しさん
2016/06/13(月) 17:10:28.33ID:CILZ2bdj{}, [] は deep copy する
[{person: new Person('太郎')}, {person: new Person('一朗')}]
逆に new Person を deep copy したいと思う状況が分からない
new Date も関数も期待通りに動かないわけで汎用性が大きく犠牲になっていると思うが…
0634デフォルトの名無しさん
2016/06/13(月) 17:51:17.99ID:u+uz+gNLソースはこれです↓
http://i.imgur.com/IQLz1Kp.jpg
0635デフォルトの名無しさん
2016/06/13(月) 17:52:47.17ID:viWjyZUMはるか遠くで使うのに頭に全部羅列してるかとおもいきや次は使う直前に書いてたり
そうしなきゃいけない時ももちろんあるけど、特にそういう理由も見受けられないのもいっぱいある
あまり詳しくないんだがなんか意味あるのああいうの
0636デフォルトの名無しさん
2016/06/13(月) 18:30:36.62ID:K+DNMsci状況がわからない、とか言ってちゃぶ台返しされても。。
deepcopyの話じゃないの?
それはシャローコピーそのものじゃん。。一番上っ面だけコピーするって。
Personをdeepcopyしたいって要件ならいくらでもあるじゃん。
オブジェクト変更するから、変更前の「前回オブジェクト」を持っておきたいとか、
保存ボタン押すときに、保存の必要性あるか確認したいから、オブジェクトと退避オブジェクトを比較したい、その退避オブジェクトを作るとか。
0637デフォルトの名無しさん
2016/06/13(月) 20:36:13.44ID:WO2lddk8var 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界隈に既に、こういう「ぽく」したい場合のイディオムってある?
0638デフォルトの名無しさん
2016/06/13(月) 21:22:27.21ID:pgYO3XjB0639デフォルトの名無しさん
2016/06/13(月) 22:52:41.14ID:O5DunmIwだから、{}, [] は 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する状況によって解決策が変わるだろうからあなたの考えがな聞きたかった
0640デフォルトの名無しさん
2016/06/13(月) 22:57:06.96ID:O5DunmIw> オブジェクト変更するから、変更前の「前回オブジェクト」を持っておきたいとか、
なるほど、その発想はなかったな
私ならPersonかPersonを管理するクラスを作ってその中で履歴を管理しそうだ
0641デフォルトの名無しさん
2016/06/13(月) 23:38:40.69ID:K+DNMsciだから、あのさあ。。
他の言語で考えてみれば?そんな関数は、jsで言う、そのインスタンスのプロトタイプが持つべきで、そのインスタンスが持つべきものじゃないでしょ。
二回目だけど、それはdeepcopyではない。
どうしてもしたければ、laveでもしろ。
問題が理解出来てなさすぎるんじゃないか?
>>640
Personを管理するクラスを作ったなら、そいつが持つのは一体何なんだ?
Personじゃないの?
「Person」と、「Personのコピー」と、「PersonとPersonのコピーを管理するクラス」って無駄すぎるだろ。
どう考えてもPersonを正しくコピー出来るべきで、Personのインスタンス同士を中身を使って比較出来るべきじゃないの?
0642デフォルトの名無しさん
2016/06/13(月) 23:45:19.16ID:O5DunmIwJSONでもdeep copy出来てなかったと思うのだが
否定ばかりであなたの考える最善が何も出てこないな
0643デフォルトの名無しさん
2016/06/14(火) 00:47:25.44ID:DODkZCvX例えば、次のオブジェクトの 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を持ち出すのは妥協の結果であり、他を圧倒するほどのメリットはない(そもそも、シリアライズする意味がない)
それぞれの妥協解を開示して意見を募るぐらいが妥当ではないかね
0644デフォルトの名無しさん
2016/06/14(火) 02:01:10.19ID:9x/TacpJ最善は、オブジェクトはオブジェクトとして、関数をもたず、単なるデータの塊として、関数とは別に定義して、
stringify/parseで文字列と相互に変換できる、だよ。
ネットワークを経てrpc的なもので関数呼び合うにも便利だし。
値の持ち主が関数を持つのは好きじゃない。
>>643
圧倒するほどのメリットと言えば、それこそAPIやら、socket.ioを経ても素直に透過な所じゃないかな。
0645デフォルトの名無しさん
2016/06/14(火) 02:03:53.91ID:M6DJWkXG日付が壊れる問題はどうすんの?
0646デフォルトの名無しさん
2016/06/14(火) 02:06:47.27ID:M6DJWkXG日付らしき文字があったからもう情報出てると思ってたw
まあぐぐればすぐに分かるよね?って話。
JavaScriptのDeepCopyでJSON.parse/stringifyを使ってはいけない
http://qiita.com/seihmd/items/74fa9792d05278a2e898
0647デフォルトの名無しさん
2016/06/14(火) 02:11:20.97ID:M6DJWkXG> 最善は、オブジェクトはオブジェクトとして、関数をもたず、単なるデータの塊として、関数とは別に定義して、
> stringify/parseで文字列と相互に変換できる、だよ。
理由がないよね。
> ネットワークを経てrpc的なもので関数呼び合うにも便利だし。
今はDeep Copyの話をしている。
シリアライズの話なら別でやれ
0648デフォルトの名無しさん
2016/06/14(火) 02:24:34.32ID:TbEnZJwBなんでこういう事いう奴のJSON.parse/stringifyには第二引数がないんだろう?w
0649デフォルトの名無しさん
2016/06/14(火) 02:31:07.43ID:M6DJWkXG広まらないように先に言っておくと、これはNumber、String、Booleanにしか
対応できません。
0650デフォルトの名無しさん
2016/06/14(火) 04:26:35.95ID:TbEnZJwB嘘吐くなよ試しちまったじゃねぇかw
parseに渡すreviverは文字列を受け取って問題なくオブジェクトを返せるし
stringifyに渡すreplacerはオブジェクトを受け取って任意の文字列に変換出来る
別にコピーのためだけに局所的に使うならreplacerは正しいjsonを吐く必要もないしな
復元のための情報山盛りにして吐き出せばいい
Dateとundefinedを試してコピー出来たのは確認した
Functionとクロージャはスコープの問題があるのでシャローコピーにせざるを得ないが
同一スコープ内でstringify/parseをするならreviverでオリジナルから参照をコピーするのは簡単だ
ただまあここまでやるのはシリアライザとデシリアライザを自前で実装するのと変わらんからオブジェクトを直接弄った方が早いなw
ところでディープコピーってjQueryからextendメソッドをパクって来るんじゃダメなんか?
循環参照で死ぬので他のライブラリのでもいいがディープコピーを実現しようとしてるライブラリは少なくないと思うんだが
0651デフォルトの名無しさん
2016/06/14(火) 09:05:34.57ID:BcKyLCvc「js button click event」で検索!
0652デフォルトの名無しさん
2016/06/14(火) 09:26:05.33ID:VOPCCsis「いやです!>_<」
0653デフォルトの名無しさん
2016/06/14(火) 09:30:58.95ID:DODkZCvX> 最善は、オブジェクトはオブジェクトとして、関数をもたず、単なるデータの塊として
だから、それをどうやって実装するのか、という事を聞いているのだが
「データの塊」とは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が最適解だが、「私は」シリアライズ不可能なオブジェクトを扱うので最適解が「シリアライズ不可能なオブジェクトを社ローコピーする」になっている
トレードオフの関係にあることは間違いない
0654デフォルトの名無しさん
2016/06/14(火) 09:41:30.57ID:DODkZCvX0655デフォルトの名無しさん
2016/06/14(火) 10:11:55.55ID:dYSnVaKQ最適解が「シャローコピー」となる、その主語はなに?
何に関して議論してるの?
0656デフォルトの名無しさん
2016/06/14(火) 10:29:28.31ID:ScASA3Ww別の手としてはMessageChannel使えば非同期で循環参照も扱える
まあJSONも少し手を加えれば循環参照を扱えるが
昔作ったこんな感じで
http://ideone.com/Zxp7kN
昔関数も扱えないかと考えたことがある
まあちょっとコピーとは感じが違うが、NodeとブラウザでWSを使いオブジェクトを共有しようと思っていた。
その時はオブジェクト情報を送るのではなく影となるProxyを使い、
操作を原本に問い合わせることでだいたい可能という判断になった。
原本に与える影響を最小限にして、あたかもでディープコピーされたかのように振る舞うのも
まあ巧みなProxyとレシーバーを守るメソッド定義に気をつけていれば可能な範疇だろう
0657デフォルトの名無しさん
2016/06/14(火) 11:59:42.69ID:9x/TacpJ頭おかしいのかな。
そうだと言ってるんだよ。
データと操作と、操作のためのオブジェクトは別個に考えるべきだと。
最適解として、シリアライズ不可能な物はシャローコピーする、は、
お前の運用に対する無難な妥協点であって、ディープコピーじゃないよ。
だからlave使えって。
0658デフォルトの名無しさん
2016/06/14(火) 12:02:10.51ID:9x/TacpJtoJSON実装しとけ。
0659デフォルトの名無しさん
2016/06/14(火) 12:50:00.83ID:DODkZCvXシリアライズ不可能なオブジェクト
>>657
「あなたの考えるdeep copyかどうか」はどうでもいいんだがな
「あなたの考えるあなたの為のdeep copy」が私にとっては使えないし、逆もしかりというだけなんだが
で、「あなたの考えるdeep copy」と「私の考えるdeep copy」の仕様が違うだけ
laveとは何のことだ?
>>658
toJSONとは?
0660デフォルトの名無しさん
2016/06/14(火) 12:51:12.47ID:DODkZCvX「ディープコピーじゃないよ」といわれてもあなたの中ではそうなんだろう、としか言いようがない
0661デフォルトの名無しさん
2016/06/14(火) 13:11:10.09ID:dYSnVaKQ> シリアライズ不可能なオブジェクト
それ、そもそも問題設定がおかしくないか?
もともとはオブジェクトをコピーするときの話で、その目的・実現方法による分類として
シャローコピーとディープコピーがある。
シリアライズ不可能なオブジェクトでもシャローコピーで良い場合もあれば悪い場合もある。
それは目的によって異なるというだけのこと。
0662デフォルトの名無しさん
2016/06/14(火) 13:20:14.73ID:dYSnVaKQ> 一口にdeep copyといってもいろいろ問題があるわけで「この問題にあなたはどう考えているのか?」
> この問題は個々がdeep copyする状況によって解決策が変わるだろうからあなたの考えがな聞きたかった
つまり、ディープコピーしたいんだが、ある項目についてはそれが難しいという話でしょ?
で、その問題解決の最適解がシャローコピー?
>>636の
> オブジェクト変更するから、変更前の「前回オブジェクト」を持っておきたいとか、
> 保存ボタン押すときに、保存の必要性あるか確認したいから、オブジェクトと退避オブジェクトを比較したい、その退避オブジェクトを作るとか
目的でディープコピーをしたいのだという人と、根本的に議論がかみ合ってない。
0663デフォルトの名無しさん
2016/06/14(火) 13:22:09.03ID:9x/TacpJdeepcopyの定義から考えような。勝手キーワードじゃないよ。
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
お前の中でしか違わないよ。
0664デフォルトの名無しさん
2016/06/14(火) 16:09:36.89ID:9x/TacpJ絶対地雷踏み抜くわ。
同名のtaroオブジェクトとかで苦笑いしておくべきだったか。
0665デフォルトの名無しさん
2016/06/14(火) 17:54:57.29ID:DODkZCvXあなたの主張はわかった
0666デフォルトの名無しさん
2016/06/14(火) 18:07:30.48ID:dYSnVaKQ=> でもそれは間違ってる
=> 私が間違っていた
=> あなたも正しいが、私の主張も正しい
のどれだろうか。
0667デフォルトの名無しさん
2016/06/14(火) 18:47:33.56ID:9x/TacpJ無知を省みて自分の至らぬ所を認め、その上で正しい知識を入れ直さないと、
技術者として致命的な場面がやってくるよ。
匿名で出来る間にやっておけばいかがかな。
0668デフォルトの名無しさん
2016/06/14(火) 19:35:30.53ID:TG3hSyiU複製されない方がよいだろう(一時的な管理データなど
よって、何を複製すべきかは複製した結果を利用する文脈に依存する
元と同じ文脈で利用する場合でも、すべてのデータを複製した方が
いいとは限らない( id みたいに重複すると困るものなど
0669デフォルトの名無しさん
2016/06/14(火) 22:10:43.05ID:VJ/4c5wEマップした結果が偶々ディープコピーと同じ結果になる事はあるけど
転送はJsonXmlバイナリのどれかのシリアライズだし
0670デフォルトの名無しさん
2016/06/14(火) 23:14:40.87ID:9x/TacpJ0671デフォルトの名無しさん
2016/06/14(火) 23:28:10.46ID:M6DJWkXGディープコピーにシリアライズ用の関数を使うのは間違い。
それだけの話だろ
0672デフォルトの名無しさん
2016/06/15(水) 00:12:34.59ID:cIXZs8w1そりゃおっしゃる通り。
一番元々の要件に対して、「手軽で早い」解決策。
そこから、変なものをdeepcopyだと寝言言う奴があらわれてこうなっただけ。
cloneとequalsを定義すべきだと思うよ。「正しい実装」では。
0673デフォルトの名無しさん
2016/06/15(水) 00:19:47.28ID:wTcNi+2Oもともとの要件? もともとの要件は、ディープコピーなんだが?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))
が、一番手軽で早い。
0674デフォルトの名無しさん
2016/06/15(水) 01:25:24.86ID:Iz/1ukPU構造下のオブジェクトは再作成することになるが、
関数に限ってはクロージャの面からも参照コピーした方がいい。
しかしそうなると関数オブジェクトのプロパティの取り回しが困る。
他にも非列挙やシンボルの扱いもあるし一般的に何が正しいかなんてない。
0675デフォルトの名無しさん
2016/06/15(水) 02:03:52.98ID:wTcNi+2O例えそうだとしても日付が壊れるとか
undefinedが消えるだとかいうのは問題外
0676デフォルトの名無しさん
2016/06/15(水) 04:32:57.44ID:Iz/1ukPU0677デフォルトの名無しさん
2016/06/15(水) 08:08:29.44ID:SSaOcc+iディープコピー全体に対して、すべてをシリアライズで解決するのは正しいか間違いか、
って話であって、
少なくともconcat使うような配列やらなんやらでは、シリアライズで必要十分だねと。
訳わからん前提を持ち出して、あまつさえディープコピーではないものをディープコピーと言い出した奴は気が狂ってると思うけど。
だから、何度かclone/equalsの話もしてんじゃん。
お前、自分が何故叩かれたか理解してないの?
>>675
そんな形で持つからだろ。
0678デフォルトの名無しさん
2016/06/15(水) 08:56:16.37ID:FEVYup+X参照型のディープコピーの実装は大きく分けて3つ
プロパティの自動マッピング、シリアライズ、明示的なコピー関数
実行効率や制約の多さはともかくとして工数的にはシリアライズを利用する方法は有力な選択肢だよ
もちろんそもそも論としてディープコピーなんかそんなに使わないってのがあるけどね
0679デフォルトの名無しさん
2016/06/15(水) 09:05:04.59ID:wTcNi+2O> プロパティの自動マッピング、シリアライズ、明示的なコピー関数
オレオレ定義すんなよ。
見苦しいんだよ。
0680デフォルトの名無しさん
2016/06/15(水) 09:08:01.05ID:wTcNi+2Oどこぞのライブラリを使えばいい。
0681デフォルトの名無しさん
2016/06/15(水) 11:46:17.65ID:SSaOcc+iこれ、オレオレ定義か?
CoRしたいなら1つめ、あとはごく当たり前な実装だと思うけど。
0682デフォルトの名無しさん
2016/06/15(水) 13:00:32.42ID:RkIC2p5j一般にディープコピーするのにシリアライズは必要ないんじゃない?
無駄な処理を挟んでいるだけに見える
0683デフォルトの名無しさん
2016/06/15(水) 13:11:48.27ID:SSaOcc+ijavascriptみたいな、オブジェクトのプロパティの型がプリミティブだって保証が無い言語で、
制限事項少なめで一発でコピーするには楽だと思うけどなぁ。
0684デフォルトの名無しさん
2016/06/15(水) 13:37:00.47ID:RkIC2p5jJavaScriptの場合、JSONが楽に実装できることは否定しないよ
サーバにデータを送るならシリアライズする意味はあるけど、ディープコピーする為だけにシリアライズする必要はないってだけ
シリアライズしたフォーマット(JSON)の制約を受けるわけだし、シリアライズする時点で目的と手段が一致してないように見える
Object.keysやfor-ofで列挙したキーを順番にコピーしていく方がどう考えても制約が少ない
0685デフォルトの名無しさん
2016/06/15(水) 14:34:35.52ID:KXw+rbZwどのライブラリとってみてもそれなりな実装しかしてないんだよね。
>>684とか制約が少ない(キリッ
って言うけどそこまでしてその制約の少なさを求める妥当性を一切言わない。
0686デフォルトの名無しさん
2016/06/15(水) 15:00:16.56ID:RkIC2p5j「制約が少ない」は>>683の「制限事項少なめ」に反論しただけ
上の方で「ディープコピーじゃないよ」云々の人がいたし、ディープコピーのクオリティを向上させる流れだと思ったんだけどね
それなりの実装でいいなら各々が自分の好きなように実装すればいいし、他人の実装を否定する必要もないね
0687デフォルトの名無しさん
2016/06/15(水) 15:03:11.81ID:KXw+rbZw0688デフォルトの名無しさん
2016/06/15(水) 15:39:36.39ID:SSaOcc+ifor ofで、オブジェクトなら再帰的に、とやると、今度は参照が循環してしまった場合に備えて、メモ化する必要が出てきたりと、制限事項を制限事項とするためにとても面倒な段取りを踏まないといかんのよ。
そういう意味では、やっぱりインスタンス各自に任せるのが一番なのかもしれんよ。
cloneを必ず実装して、その中の実装でも、どんなオブジェクトも自力ではコピーせずに、cloneを呼び出すようにして、呼び出せるcloneが無い場合、死ぬかないしは参照のコピーとなる可能性があるとワーニング吐くとくとか。
.toJSON実装しときゃstringifyだと割と解決するんだけどね。
0689デフォルトの名無しさん
2016/06/15(水) 15:42:17.53ID:TAanDQJ+ディープコピーの実装する為だけに面倒くさいだけのツマラナイコード書く必要なくね?
シリアライズでサッサと済ませればいいじゃん
0690デフォルトの名無しさん
2016/06/15(水) 16:25:26.27ID:RkIC2p5j> for ofで、オブジェクトなら再帰的に、とやると、今度は参照が循環してしまった場合に備えて、メモ化する必要が出てきたりと、制限事項を制限事項とするためにとても面倒な段取りを踏まないといかんのよ。
なるほど、参照をメモ化すれば循環参照を保持出来るね
オブジェクトの配列をメモ化しておいて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の限界かな
0691デフォルトの名無しさん
2016/06/15(水) 17:24:42.09ID:uCNYQdtw仕事でも探せば?
0692デフォルトの名無しさん
2016/06/15(水) 17:35:48.15ID:SSaOcc+iそうそう。
すでにクローン済みとメモ化するにも、ネストしたオブジェクトの底の方で発見したオブジェクトと、浅い所で発見したオブジェクトに対して、再起だと上にメモを返してやらないと、同一参照にはならんので、割とめんどくさいと思うよ。
吹き飛ばすのが一番、かつ、そんなデータを作らないのが一番と言う所に落ち着くんじゃないかな。
0693デフォルトの名無しさん
2016/06/15(水) 18:40:06.70ID:kCCRbfyeそれを複製するにはそれぞれのクラスごとに対応しないといけないし、その最たるものである関数は対処不能。
>>690
ちょっと工夫すればJSON APIを活用しつつも循環参照も扱える
>>656みたいに(バグあり)
0694デフォルトの名無しさん
2016/06/15(水) 23:17:16.03ID:wTcNi+2O> シリアライズでサッサと済ませればいいじゃん
だから、その結果、日付型がおかしくなり関数が消え
undefinedの値がキーごとなくなるのはひどすぎという話。
0695デフォルトの名無しさん
2016/06/16(木) 07:45:47.42ID:oMjTOMdB酷いか酷くないかで言うと酷くないと思う。
0696デフォルトの名無しさん
2016/06/16(木) 09:28:45.12ID:J7Y57E8z何でもかんでも汎用化しようとするのはヴァカのやる事だし
そもそも込み入った形式のオブジェクトをディープコピーする機会は少ない
適用可能な範囲で簡単に実装できるならそうしたほうがいい
できない範囲にはポリモーフィックに対応すればいい
0697デフォルトの名無しさん
2016/06/16(木) 09:30:35.19ID:u57UUEr0日付型や関数はundefinedが値として入っているのは
ぜんぜん込み入った形式じゃないですよ?
0698デフォルトの名無しさん
2016/06/16(木) 12:30:42.86ID:TTOq9A9Q設計が悪いだろ。そりゃデータとロジックが分離できてないとしか言いようが無くないか?
0699デフォルトの名無しさん
2016/06/16(木) 15:06:47.71ID:peThILAI0700デフォルトの名無しさん
2016/06/16(木) 19:02:21.99ID:ykd7wui8以下のURLを参考にフォントを拡大して使っています。
iOSのSafariで表示してるページの文字の大きさを自由に変更しよう!
http://mag.torumade.nu/?p=7260
ここにあるJavaScriptの+/ーそれぞれの記述ですが、
フォントを多きく/小さくしている箇所は何処でしょうか?
今は2,3回ポチって文字を大きくしています。
出来ればポチったら一発で好みの文字の大きさにするスクリプトにしたいです。
JavaScriptで文字の大きさを買えるのに、試行するのは構いませんので
宜しくお願いします。
JavaScriptは書いたこと無いので、ここでの記述をコピペになると思います。
0701デフォルトの名無しさん
2016/06/16(木) 21:35:26.83ID:DYttMfqrまともな造りしてればまあ読めるだろ
大きさ変えたいなら 20px を好きな値にしな
javascript:document.body.innerHTML+='%3Cstyle%3E*%7Bfont-size:20px!important%7D%3C/style%3E';
0702デフォルトの名無しさん
2016/06/16(木) 22:07:33.10ID:u57UUEr0> 設計が悪いだろ。そりゃデータとロジックが分離できてないとしか言いようが無くないか?
日付やundefinedはデータですよ?
これをロジックと言い張る人、初めて見たわーwww
0703デフォルトの名無しさん
2016/06/17(金) 00:16:54.38ID:XW0r+pFS関数、に言ってるんだけど。
とにかく言い負かされたくなくて必死なんだな。
あと、undefinedは正確にはデータではなく、状態。
日付は、日付。Dateクラスは、日付を扱うためのクラスであり、日付の値では無い、あくまで値は、.valueOf()で取得できる値。
ババロア君は馬鹿か無知かどちらかにしとけよ。ババロアすら詰まってないんじゃねえの?
0704デフォルトの名無しさん
2016/06/17(金) 00:31:17.80ID:gkJjvuAcなんで3つのうち関数にしか言わないの?
残り2つは反論できませんって話かwww
0705デフォルトの名無しさん
2016/06/17(金) 00:33:59.24ID:gkJjvuAc文字列はクラスだって知らないのかな?www
0706デフォルトの名無しさん
2016/06/17(金) 00:46:16.36ID:XW0r+pFS2つはその、下で反論してるけど。
文字も読めないの?
>>705
.valueOf実行してみ。
薄いラッパーに包まれたただの値だとわかるよ。
0707デフォルトの名無しさん
2016/06/17(金) 00:47:44.33ID:XW0r+pFSプロトタイプに実装されてるか、それともインスタンスに実装したのかも分けて考えような、ボンクラ。
0708デフォルトの名無しさん
2016/06/17(金) 01:18:50.68ID:gkJjvuAc日付.valueOf実行してみ。
薄いラッパーに包まれたただの値だとわかるよ。
0709デフォルトの名無しさん
2016/06/17(金) 01:20:43.01ID:gkJjvuAc> プロトタイプに実装されてるか
String.prototype.hoge = function() {} と定義したものが
"abc".hoge() で呼び出されるな。
プロトタイプに実装されてるわけか。
0710デフォルトの名無しさん
2016/06/17(金) 01:38:53.96ID:MlF9RYHU例えば以下の様なケース
if(new Boolean(false) && new Number(0)){
//どちらもオブジェクトが存在するのでtrue
//よってここは常に実行される
}
if(false || 0){
//どちらもプリミティブでfalseとして扱われる値
//よってこちらは実行されない
}
0711デフォルトの名無しさん
2016/06/17(金) 02:49:55.65ID:bQl7rsTfありがとうございました。
0712デフォルトの名無しさん
2016/06/17(金) 09:31:42.05ID:srh2csoYいろんなJS質問スレ見てきてるが半年ぶりくらいに
まともな初心者解説のコードが書かれたな。
0713デフォルトの名無しさん
2016/06/17(金) 16:34:23.27ID:6iHig3Yk0714デフォルトの名無しさん
2016/06/17(金) 17:12:33.16ID:BB7ZCZitiframeとvideoはdocumentでイベントリスナ(load, loadedmetadata)すれば検出できるんですが、なぜかobjectとembedちゃんからのお便りが来ません(chrome ver51)
とりあえず暫定的にクリック毎にgetElementsByTagName()で代替しているんですが、
何かもっとスマートな方法ないでしょうか
0715デフォルトの名無しさん
2016/06/17(金) 19:02:26.08ID:Rqj2POSn0716デフォルトの名無しさん
2016/06/17(金) 19:29:30.69ID:BB7ZCZit動画サイトの場合、オプション{childList true, subTree: true}でノード追加を監視すると、コンソールが常時ナイアガラの滝のように・・・
0717デフォルトの名無しさん
2016/06/17(金) 19:41:50.28ID:nZkVhJBcその通りだね
俺様流カレーライスの作り方みたいなもんだよねw
0718デフォルトの名無しさん
2016/06/18(土) 02:23:30.51ID:zfC6EzMSその俺様流カレーライスの作り方で、ドヤ顔でハヤシライスの作り方説明して、これが「妥当なカレーライス」とか言っちゃうような俺流deepcopyerが
主みたいなスレだからね。
まともな奴はレスしなくなるっしょw
0719デフォルトの名無しさん
2016/06/18(土) 09:38:41.31ID:Fpexe9SW0720デフォルトの名無しさん
2016/06/18(土) 09:43:04.22ID:pG9pCEms["a","b,c"]を取得したいのですが、["a","b"]になります
どうすrばいいですか
0721デフォルトの名無しさん
2016/06/18(土) 10:53:48.22ID:49KWKmmudocument.getElementById('a').addEventListener('input', function(e) {
console.log(e);
}, false);
enterキーを押した時だけログがでないんですがどうしてですか?
0722デフォルトの名無しさん
2016/06/18(土) 13:22:34.63ID:z24FpIHhreturn 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;
})
});
って書くってことであっていますか?意図通り動くのですが、回りくどいし見にくい気がして
0723デフォルトの名無しさん
2016/06/18(土) 13:28:02.54ID:z24FpIHhdocument.getElementById('a').addEventListener('keydown', function(e) {
console.log(e);
}, false);
keydown にすればenterも拾える
0724デフォルトの名無しさん
2016/06/18(土) 13:30:40.39ID:qpxG5nAOそんなわけなかろうw
いまゲームしてるからちょっと待てwww
0725デフォルトの名無しさん
2016/06/18(土) 13:32:40.70ID:z24FpIHhsplitだけでその配列を取得するのは無理
0726デフォルトの名無しさん
2016/06/18(土) 13:33:55.65ID:z24FpIHhお、ありがとうございます
たのんます
0727デフォルトの名無しさん
2016/06/18(土) 13:40:53.70ID:lYop9Jcbそれ戻り値["a"]じゃね?
とりあえず脳内補正で第二引数は2だとするとjavascriptのsplitだとその希望の動作にはならない
第二引数なしでsplitして[t[0],t.slice(1).join(',')]とか
indexOfとsubstring組み合わせて自分で切り出すとか
他にも色々やり方はあるので要求に合った方法を考えて関数化しとけばいいよ
0728デフォルトの名無しさん
2016/06/18(土) 13:48:58.73ID:7whaN/tJindexOfでインデックスを取得してslice
0729デフォルトの名無しさん
2016/06/18(土) 13:49:03.57ID:z24FpIHhtest1().then(() => {
return test2();
}, () => {
console.log('1のNG');
}).then(() => {
// 1 も 2 も成功
}, () => {
console.log('2のNG');
}).catch(function(e){
console.log('ここにはいつくるんだろう?');
});
0730デフォルトの名無しさん
2016/06/18(土) 13:52:05.82ID:ousMayNpthenの結果は自動でプロミスに変換されるから、function test2 のなかでプロミスを作らなくておk
シンプルにfunction test2(previousResult) { // 非同期な処理 return resTest2} としておいて
test1
.catch(resTest1 => resCatch1)
.then(test2)
.catch(resTest2 => resCatch2) 〜 とつなげればいい
一個目のcatchを省略した場合、 test1でエラーが起きると最後のキャッチにジャンプする
0731デフォルトの名無しさん
2016/06/18(土) 13:54:20.50ID:7whaN/tJ可能性はいくつかある
- input要素で [Enter] キーを押している
- IME変換時に [Enter] キー
0732デフォルトの名無しさん
2016/06/18(土) 13:56:06.15ID:ousMayNpthenの第二引数をcatchとして使うと、そのthenで起きたエラーは拾わなあいから、必要ないときはcatchを使ったほうがいいよ 分かり易いから
0733デフォルトの名無しさん
2016/06/18(土) 13:56:58.21ID:qpxG5nAOほらよ。ついでに値の渡し方も書いておいたぞ。
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);
});
0734デフォルトの名無しさん
2016/06/18(土) 14:06:33.76ID:qpxG5nAO>>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);
})
);
0735デフォルトの名無しさん
2016/06/18(土) 14:09:27.96ID:qpxG5nAOfunction 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));
0736デフォルトの名無しさん
2016/06/18(土) 14:18:57.19ID:qpxG5nAOPromise.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);
});
0737デフォルトの名無しさん
2016/06/18(土) 14:27:30.76ID:lYop9Jcbまず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に飛ぶのでこれで充分なはずだけど?
0738デフォルトの名無しさん
2016/06/18(土) 14:30:46.97ID:qpxG5nAO.then(test1) これでよかったな。
0739デフォルトの名無しさん
2016/06/18(土) 14:38:51.52ID:qpxG5nAOPromise.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);
}
);
0740デフォルトの名無しさん
2016/06/18(土) 14:51:32.54ID:z24FpIHhまだ若干こんがらがってますが、理解がだいぶマシになりました。
test2はプロミスにしなくてOKということですが、
test2を単独で使用する可能性がある場合は今のままでも大丈夫ですよね...?
0741デフォルトの名無しさん
2016/06/18(土) 14:52:59.75ID:z24FpIHhfunction 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に入ってきましたが、これはこういうものでしょうか?
0742デフォルトの名無しさん
2016/06/18(土) 14:54:43.38ID:z24FpIHh0743デフォルトの名無しさん
2016/06/18(土) 15:02:45.38ID:qpxG5nAO> test1でrejectしてもそのままtest2に入ってきましたが、これはこういうものでしょうか?
あれ?そういう仕様だと思ってたよw
じゃあ書き換えが必要だね。
いまゲームしてるから(ry
0744デフォルトの名無しさん
2016/06/18(土) 15:15:57.87ID:HfDVf1Azhttp://www.html5rocks.com/ja/tutorials/es6/promises/
0745デフォルトの名無しさん
2016/06/18(土) 15:28:56.46ID:z24FpIHh>>743-744
ありがとうございます、そのサイト見てたはずですが見落としていました
だいたい理解できました。
一連の質問は解決ということで問題ないです。
皆さんありがとうございました。
0746デフォルトの名無しさん
2016/06/18(土) 23:31:55.96ID:aNvZce140747デフォルトの名無しさん
2016/06/19(日) 01:39:49.43ID:XpUIM/8aIME周りはブラウザ毎に実装が違ったりして面倒なので全てのブラウザで動くとは保証出来んが
keydownでキーコード229,0,13を拾えばだいたい拾えるんじゃないかね?
0748デフォルトの名無しさん
2016/06/19(日) 01:54:37.93ID:jkRTuMFS0749デフォルトの名無しさん
2016/06/19(日) 15:42:45.26ID:j/5yp6z/よくわからないんだけどこういうのって作者が対応すれば使えるようになるの?
VSなんかだと参照突っ込むだけで機能使えるようになるけど
そういうお手軽はお話じゃないんかね
0750デフォルトの名無しさん
2016/06/19(日) 19:29:55.99ID:fmRoj+h3奴らは自分のブラウザで動けばいいので毎日のように互換性壊しまくりのスケ〜
0751デフォルトの名無しさん
2016/06/20(月) 18:11:29.60ID:tys3WiX60752デフォルトの名無しさん
2016/06/20(月) 18:48:32.16ID:hRWj67CX0753デフォルトの名無しさん
2016/06/21(火) 00:26:47.70ID:qdV120KE意図としてはページに飛ばされる前にどこに飛ぶのか判断したいためです。
0754デフォルトの名無しさん
2016/06/21(火) 00:47:36.70ID:Zouo8B6wJavaScriptでページ遷移するなら遷移先URLもJavaScriptで分かっているはずなのだが
0755デフォルトの名無しさん
2016/06/21(火) 08:14:40.47ID:vlWZNI1X最終的な遷移先のURLを鯖側で生成してたらわからんけど
0756デフォルトの名無しさん
2016/06/21(火) 09:06:55.19ID:zhgdBgoI説明が足らずすみません。
他者が作ったウェブサイトの環境で、ブラウザの拡張機能などで自前のJavaScriptを実行して判断したいということでした。
そういうことだと>>755さんの言うとおり、他者のサーバで生成してるからわからないってことになりそうですね。
0757デフォルトの名無しさん
2016/06/21(火) 11:17:04.95ID:Zouo8B6wURLの生成規則を探すとか、JavaScriptコードを読んでコードから遷移先URLを得る、とか一概には言えないと思う
0758デフォルトの名無しさん
2016/06/21(火) 12:14:28.77ID:VoVagir1クライアントが移動先を知ってるなら取る方法はない訳ではないが
鯖側でリダイレクトさせる場合にはAjaxでリンクを踏んで戻った内容からリダイレクト先をスクレイピングするとかしないと無理だろうね
つまり画面遷移をせずにリンク先を取得する事は可能、鯖と通信せずにリンク先を取得する事は不可能なケースがある
クライアント上で動作している以上、クライアントが知らない情報は取得出来ない
0759デフォルトの名無しさん
2016/06/21(火) 13:29:33.82ID:NcocGzZAいろんな方法・想定で常識的な範囲で全て判断できると言えるだろう
0760デフォルトの名無しさん
2016/06/21(火) 19:00:28.03ID:s0xSal8Kデザイナでペタペタ配置してロジックは画面オブジェクトにハンドラを書くだけ的なやつです
0761デフォルトの名無しさん
2016/06/21(火) 19:02:39.48ID:rJ2mr4JYホームページビルダで出来ない?
使ったことないから知らんが
0762デフォルトの名無しさん
2016/06/21(火) 20:02:34.86ID:zhgdBgoI>>758
丁寧に回答していただきありがとうございます。
リンククリック時のJavaScriptからレスポンスを解析してURLを取得できるかを試してみます。
0763デフォルトの名無しさん
2016/06/21(火) 22:07:52.39ID:8xYufxWOvar data = "write text test!";
fs.writeFile('writetest.txt', data , function (err) {
console.log(err);
});
0764デフォルトの名無しさん
2016/06/21(火) 22:09:11.15ID:8xYufxWO0765デフォルトの名無しさん
2016/06/21(火) 22:14:12.35ID:8xYufxWO先にNodistを入れたのですがUpdateすると依存関係のエラーが多かったので
Nodejp単体で入れることにしました。
ところが
npm install webpack -g とかするとなぜかNodistのフォルダに入ってしまいます。
そのせいでビルドができてないのでしょうか。
経験のある方お願いします。
スレ違いなら誘導していただけるとありがたいです。
0766デフォルトの名無しさん
2016/06/21(火) 23:28:49.59ID:8xYufxWOrequire is not defined
と出ますね。
一応webpackは通したのですが。
ブラウザはFirefoxです。
0767デフォルトの名無しさん
2016/06/22(水) 00:14:59.67ID:azjhZ3WASortedSetが欲しいです
0768デフォルトの名無しさん
2016/06/22(水) 07:19:51.98ID:cIEa5wGZ自分で作ったら?
0769デフォルトの名無しさん
2016/06/22(水) 11:58:39.11ID:q9pILfZynpm root -g としてモジュールがインストールされるディレクトリを見ると
C:\Program Files (x86)\Nodist\bin\node_modules
なっています。
環境変数も見ましたがNodistの残骸が残っているようにはありません。
どこにNodistの情報が残っているのでしょうか。
0770デフォルトの名無しさん
2016/06/22(水) 14:53:18.59ID:q9pILfZy0771デフォルトの名無しさん
2016/06/22(水) 14:58:05.09ID:q9pILfZyrequire is not defined
のエラーが解決されません。
/***/ },
/* 2 */
/***/ function(module, exports) {
module.exports = require("fs");
/***/ }
/******/ ]);
どうもコメントばかりついていてうまく変換されたように見えません見えません。
0772デフォルトの名無しさん
2016/06/22(水) 21:00:04.72ID:/0SrxieV0773デフォルトの名無しさん
2016/06/23(木) 00:00:47.49ID:wmr/9KTO恐らく環境変数node_pathがNodistのディレクトリのままだろうから書き換え
あとfsのようなNode.js用モジュールはWebpackでバンドルできないはず
Webpackからファイル読みたい場合はLoader使って事前に含めるしかない
0774デフォルトの名無しさん
2016/06/23(木) 01:13:09.29ID:Lewr0A8PWebpackからは基本できないのですね。
set コマンドでは
NODE_PATH=C:\Users\habu\AppData\Roaming\npm\node_modules
アンインストーラーを使っても環境変数を調べてもどうにもならなかったので
アンインストーラーが削除し忘れた
"C:\Users\xxxx\.npmrc"
を手動で削除したらパスの通ったところにモジュールをインストールするようになりました。
0775デフォルトの名無しさん
2016/06/23(木) 12:30:54.99ID:TKILd+kMjavascriptを更新したらブラウザに切り替えてページ更新するのが面倒くさいんですが
ファイルが更新されたら自動的に更新する方法ありませんか?
0776デフォルトの名無しさん
2016/06/23(木) 12:33:06.98ID:p9xHkbsy定期的にリロードするようにしたら良いんじゃないの?
0777デフォルトの名無しさん
2016/06/23(木) 14:14:01.07ID:1rhmo8jO0778デフォルトの名無しさん
2016/06/23(木) 15:28:59.42ID:it3byhHh簡単に出来ますよ
0779デフォルトの名無しさん
2016/06/24(金) 11:16:15.69ID:M5Y9qYORいまいち例が無くてどのローダーを使えばテキストファイル出力ができるのか
分からないです。
ホームページで確認してraw-loaderがUTF-8に出力するみたいなことを書かれていた
GreasemonkeyからinnerTextをテキストファイルに出力したいだけなのですが
かなり敷居が高いようですね。
色々なサイトで実験されている
0780デフォルトの名無しさん
2016/06/24(金) 11:22:06.51ID:M5Y9qYORraw-loaderの使い方の例がもう少しサンプルで出されているサイトがあればいいのですが。
あと、少し2ちゃん専用のソフトの使い方になれてなくて間違えて文章を途切れ途切れに
送ってしまったことをお詫びします。
0781デフォルトの名無しさん
2016/06/24(金) 12:30:59.24ID:V/itJnf4ブラウザから書き込みしたいなら拡張機能のAPIを探すしかない
0782デフォルトの名無しさん
2016/06/24(金) 14:35:52.18ID:M5Y9qYORそうなんですか。どこを探しても無理なわけですね。
拡張機能と言うのはブラウザの拡張機能ですか?
煮詰まったので今のところはローカルにapacheでサーバーを立てて
PHPでアクセスすることを考えています。
それでだめなら拡張機能のAPIを探すことを考えています。
0783デフォルトの名無しさん
2016/06/24(金) 23:07:00.20ID:qTbX1cTa初心者なので説明力、知識が乏しいですが申し訳ありません。
私は、不特定多数の人が画像をサイト上のみで「読み込み→編集→ダウンロード」を全てできる画像編集サイトを作ろうと思っていて、
色々調べている内にImageMagickと言うプログラムにたどり着きました。
ですが使い方などが全くわからず、困っております。現在xサーバーを利用していてホームページを取得しています。
xサーバーは公式で既にImageMagickがインストールされているということです。(この事についてもいまいち分かりません)
どなたか分かりやすく画像編集サイトの作り方を教えていただけませんでしょうか。
OSはwin7 64bitです。
本当に困っています。
0784デフォルトの名無しさん
2016/06/24(金) 23:12:05.32ID:Fo67yJqkPHPで作った方がいいと思うよ
PHP板行ったら?
http://echo.2ch.net/test/read.cgi/tech/1466683550/
0785デフォルトの名無しさん
2016/06/24(金) 23:14:07.58ID:qTbX1cTaPHP板にてここで聞いた方がいいと言われ、質問いましました
0786デフォルトの名無しさん
2016/06/24(金) 23:14:44.48ID:Fo67yJqkjsじゃ無理だよ
PHPじゃないと出来ない
0787デフォルトの名無しさん
2016/06/24(金) 23:16:31.66ID:Fo67yJqkRubyスレ行ってみたらどうだ?
0788デフォルトの名無しさん
2016/06/24(金) 23:28:09.79ID:V/itJnf4その通りブラウザ拡張機能のAPI
でもローカルにHttpd立てていいなら>>763の弄って使えばいいんじゃない
どうせグリモンで動かすUserScriptからHTTPでやり取りするんだろうし
>>783
まず画像を読み込んで編集して保存するのはJSで出来る
画像を不特定多数でどう扱うのかによってはサーバー側の実装も必要だけど
これもNode.jsを使えばJSで作れる、因みにこっちはPHPでも作れる
ただ作り方となると手順が膨大だから一々説明してられん
「JavaScript ファイル読み込み」など一つずつググって勉強するしかない
0789デフォルトの名無しさん
2016/06/25(土) 11:12:38.28ID:FcXCwkAU0790デフォルトの名無しさん
2016/06/25(土) 11:24:52.49ID:YFtEcFF6コピペなんかも含めると、入力される前の文字列をバッファしておいて、今回文字列と一番最初に差異が発生する文字まで素直に比較するほうが早いんじゃないかな。
0791デフォルトの名無しさん
2016/06/25(土) 18:02:11.94ID:4KOaD2ntselection とか range で調べるよろし
>>790
aaa => aaaa どこだと思う?
0792デフォルトの名無しさん
2016/06/26(日) 00:07:56.02ID:nF43cUdI日経ソフトウェアのJavascript特集しか読まないんだけど、
久しぶりに書店でJavascriptの本あさってたら、
JAVAの本と混同してJavascripの本が並べてあった。
何十人かに試したことあるが、プログラム興味ない人がらみたら、
JAVA=Javascripの省略して言うとJAVA
Javascrip=JAVAの正式名称
って認識しかしてないからな。
0793デフォルトの名無しさん
2016/06/26(日) 05:07:36.84ID:G2D2TVQW例えば旅行本だと国別に区切られてるが、プログラミング言語にはそれがない。
0794デフォルトの名無しさん
2016/06/26(日) 05:45:31.43ID:FIFPZYCa自分の住んでる地元の一番大きい本屋もまんまこれだった
CとかVBAとか有名な言語は分類札付けて、カテゴリ分かれてるのに
JavaScriptだけJavaの所に全部突っ込まれてる
0795デフォルトの名無しさん
2016/06/26(日) 08:11:55.58ID:lQezokMeJQueryよりもそういうことを扱うことに長けたフレームワークみたいなのがあればそちらに移りたいのですが何かそういったことを補助してくれるようなものはありませんか?
0796デフォルトの名無しさん
2016/06/26(日) 10:40:37.56ID:TQCRDnYp具体的に何がしたいのかがわかならい
エスパーするとJQueryの使い方がわからないってことかな?
0797デフォルトの名無しさん
2016/06/26(日) 11:55:24.56ID:9G4pt3CC学習コストかかるだろうけど、流行ってるReactとか
0798デフォルトの名無しさん
2016/06/26(日) 12:24:25.89ID:rwwPSVEUセンスがないとでも言うのだろうかw
0799デフォルトの名無しさん
2016/06/26(日) 12:39:49.80ID:AVATszy2Web制作板の荒れようをみるにプログラム板にもライブラリスレを持ってくるべきなんだろうが、統合する流れでいいのかね
あるいは、べつにスレを立てるべきか
0800デフォルトの名無しさん
2016/06/26(日) 12:51:24.25ID:mFfhShD5あっちのライブラリスレもこの板に移す話はあったんだけどよくわからんな
0801デフォルトの名無しさん
2016/06/26(日) 14:02:23.24ID:8VkrGxxn0802デフォルトの名無しさん
2016/06/26(日) 15:09:43.72ID:Tksz8qNKYahoo知恵袋がおすすめ
0803デフォルトの名無しさん
2016/06/26(日) 15:12:21.33ID:GJBR8D9Hjavaの道(掲示板)がおすすめ
0804デフォルトの名無しさん
2016/06/26(日) 20:07:37.03ID:YbtLHjt0みたいにHTMLエンティティがエスケープされてるテキストノードをtextContentで参照するとエスケープが解除されるので、innerHTMLに代入した瞬間にalertが鳴るよって記事をどっかで見たんだけど、
誰か見覚えあってURLわかる人おらんかのう
0805デフォルトの名無しさん
2016/06/26(日) 20:28:22.69ID:nF43cUdI難しいんだよな
問題を書き出すって骨の折れる作業だし
0806デフォルトの名無しさん
2016/06/26(日) 22:32:25.10ID:D+buTpss立て直すとスレが乱立するからこのスレに新しいテンプレを貼り付ける程度で十分かと
問題はライブラリスレもここに統合するか、別スレに独立させるか
0807デフォルトの名無しさん
2016/06/26(日) 22:58:59.69ID:oKpI3hc9本来荒らしの立てたスレを再利用するってのはよくないし、まあ今はずるずる来てるけど
0808デフォルトの名無しさん
2016/06/26(日) 23:29:46.97ID:S5Kwqidrスルーすればいいだけ
0809デフォルトの名無しさん
2016/06/26(日) 23:30:12.91ID:yAtATLvzブレークポイントを適度に付けて、デバッグする。
変数の内容も見る。
エラーメッセージで検索する
C/C++以外の言語は、シャローコピーするから、破壊的変更をするときは要注意!
0810デフォルトの名無しさん
2016/06/27(月) 00:44:37.06ID:Azx2VHQP書いてもElectronで動いたのがwebkitじゃダメでしたとかままあるし
>>806
復活したWeb板のライブラリスレもぼちぼち伸びてきてるし
また潰されるかあるいは埋まりそうになるまで保留でいいんじゃない
0811デフォルトの名無しさん
2016/06/27(月) 00:51:43.37ID:Qt/WCn3i0812デフォルトの名無しさん
2016/06/27(月) 04:38:11.54ID:Hl6kI6LEJSにはDOMしかないわけでもないし
0813534
2016/06/27(月) 12:24:43.46ID:oBcOOaIt試作機1号ができたのでさっそく試してみたんですが・・・
2chのコメのなかにコーディングのカラースキームが混在してる違和感が凄いww
http://i.imgur.com/a1EvCdi.png
http://i.imgur.com/cGSR5cj.png
http://i.imgur.com/JVt9adl.png
http://i.imgur.com/rPbmqg9.png
0814デフォルトの名無しさん
2016/06/27(月) 19:39:44.45ID:jJ8qgrxg上記のようにHTMLでPDFのリンクを作成しPDFをダウンロードさせたいのですが、IEのみ同一タブでPDFが表示されてしまいダウンロードできません。
IEの設定を変更することなく、HTMLとjavascriptだけでIEでもダウンロードできるようにしたいのですが、何か良い方法はありませんでしょうか。
ちなみに、以下の4ブラウザ全てでダウンロード可能にしたいです。
・IE11
・chrome
・firefox
・safari(mac)
よろしくお願いします。
0815デフォルトの名無しさん
2016/06/27(月) 20:20:31.97ID:Hl6kI6LE0816デフォルトの名無しさん
2016/06/27(月) 20:45:40.58ID:Qt/WCn3i普通はHTTPヘッダで制御する。
つまりウェブサーバーかサーバー側のアプリ
あんたがクライアントアプリしか書けないとか
サーバーいじる能力がないなら諦めなさい
0817デフォルトの名無しさん
2016/06/27(月) 20:59:41.80ID:zoQ6BtW7>>816
やはり無理なんですね……
ありがとうございます!
0818デフォルトの名無しさん
2016/06/27(月) 21:24:55.66ID:zcQLvEgnxhr.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();
0819デフォルトの名無しさん
2016/06/28(火) 15:38:36.90ID:+n63MTqJ最低限のモラルも守れないようじゃねぇ
まあdownload属性のエミュなら良いと思うよ
0820デフォルトの名無しさん
2016/06/28(火) 16:46:50.81ID:YVMoIJVbのページのサンプロコード、20行目で見かけたのですが、
この場合のvideoの前後にあるスラッシュはどういう意味があるのでしょうか?
if( !/video/.test(file.type) ){
!video.test(file.type)
ではダメなのでしょうか
0821デフォルトの名無しさん
2016/06/28(火) 17:09:49.76ID:+pusRZvtこの場合file.typeに"video"って文字列が含まれてるかみてる
0822デフォルトの名無しさん
2016/06/28(火) 18:04:00.99ID:YVMoIJVbなるほど、ありがとうございます
0823デフォルトの名無しさん
2016/06/29(水) 11:29:03.86ID:VdhPxYFiわりと素で聞きたいんだけど、このケースのどの部分がモラルに反してるの?
他のブラウザがdownload属性でできることを、IEができないから代替策探してるだけだよね
0824デフォルトの名無しさん
2016/06/29(水) 16:17:09.72ID:L39nkKa/var ファイル数 = files.length;
var ファイル名 = new Array();
var パス = new Array();
for (i=0; i<ファイル数; i++) {
ファイル名[i] = files[i].name;
パス[i] = files[i].webkitRelativePath; // 行A
}
}
これでフォルダの全てのファイルのパスがわかるんだが
これを絶対パスにするにはどうすればいいんだ?
0825デフォルトの名無しさん
2016/06/29(水) 21:48:19.77ID:ViUTH2Wh$(hoge)が出来るというのは関数だと思うんですが、$.foo(bar)が出来るというのは連想配列だと思います
一体何なんですか?あのキモイ未知の変数は
0826デフォルトの名無しさん
2016/06/29(水) 22:21:45.97ID:uR/sla0B0827デフォルトの名無しさん
2016/06/29(水) 22:29:13.21ID:ViUTH2Whhoge=function(){
//処理
}
hoge.a=function(){
//処理
}
hoge.b=function(){
//処理
}
って事ですか?
0828デフォルトの名無しさん
2016/06/29(水) 22:45:16.05ID:11RiuwSNjQueryは関係ありません。
あなたはJavaScript自体がわかっていません。
そしてオブジェクト指向もわかっていません。
「オブジェクト指向言語であるJavaScriptは、関数もオブジェクトです。」
この一言で理解できますかね?w
function foo(a, b, c) {} という関数を作ったら関数もオブジェクトなんだから
console.log(foo.name) とか ※nameは非標準だけれどだいたい使える
console.log(foo.length) とか ※関数の引数の数
foo.toString() とか ※ソースコードを返す。
標準でできるんですよ。
0829デフォルトの名無しさん
2016/06/29(水) 22:48:52.04ID:11RiuwSN考え方ができるかどうかですねw
JavaScriptではオブジェクトではないものもあるけれど、
どちらかと言えばオブジェクトであるものが多い方
真のオブジェクト指向に近づくほど
なんでもオブジェクトになる。
0830デフォルトの名無しさん
2016/06/29(水) 22:52:05.42ID:0EN53mtKそんな事出来るのかよ
凄い
0831デフォルトの名無しさん
2016/06/30(木) 00:37:24.48ID:s9p3Net10832デフォルトの名無しさん
2016/06/30(木) 01:51:26.57ID:RtLNL8QeObjectは、処理(メソッド)・状態(プロパティ)を持つ
関数型言語ではオブジェクトは、1級市民オブジェクト(First Class Object)と言って、
持ち運べたり、関数の引数に渡したり、関数から戻り値として返したりできる
つまり、Functionはオブジェクトだから、持ち運んで、後で呼べる(遅延・コールバック)
クラス・無名クラス・クロージャ・ラムダも同じで、オブジェクト。
primitive 以外は、すべてオブジェクト
0833デフォルトの名無しさん
2016/06/30(木) 11:12:43.81ID:bL1n9aIG0834デフォルトの名無しさん
2016/06/30(木) 12:54:42.82ID:EibH/T4h0835デフォルトの名無しさん
2016/06/30(木) 12:55:18.07ID:s9p3Net1でも和訳で覚えるとググるとき大変じゃね
0836デフォルトの名無しさん
2016/06/30(木) 13:18:07.02ID:bL1n9aIGググった結果、驚愕の真実が・・・
ファーストクラスオブジェクト: 約 1,520 件
第一級オブジェクト: 約 1,400 件
一級市民オブジェクト: 約 49 件
少なすぎじゃね?
Googleぶっこわれてんのか?
0837デフォルトの名無しさん
2016/06/30(木) 13:41:53.09ID:9tXhK5Ll0838デフォルトの名無しさん
2016/06/30(木) 14:17:10.15ID:bL1n9aIG逆かもよ
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」という文脈で初めて使われた。
0839デフォルトの名無しさん
2016/06/30(木) 14:32:43.41ID:WQ4EC21M0840デフォルトの名無しさん
2016/06/30(木) 19:06:07.78ID:nv8TDX79この訳がおかしい、といわれてるだけ
一級市民を名乗るなら "citizens" を入れればいい
- 一級市民のような関数(functions as first-class citizens)
- 第一級オブジェクト(First Class Object)
0841デフォルトの名無しさん
2016/06/30(木) 22:26:27.40ID:s/7LoWQJ「第一級市民関数」と呼ぶなら "functions of first-class citizens" と書いてもらわんと
ただし、as から of になると「一級市民に属する関数」の意味になって本質と全く異なる表現になる
何をもって「一級市民」が出てきたのかをよく考えるといい
0842デフォルトの名無しさん
2016/07/01(金) 10:57:22.28ID:2ngPRN1W0843デフォルトの名無しさん
2016/07/01(金) 13:26:49.33ID:swuu46hdどう書くのが正しい?
0844デフォルトの名無しさん
2016/07/01(金) 14:26:32.24ID:GE+MZRxs0845デフォルトの名無しさん
2016/07/02(土) 18:28:16.22ID:m2NwGvL3「としての」なんて日常生活で殆ど使わないし
意味もぱっとしないだろ
「としての」「としての」「としての」
用意にゲシュタルト崩壊するだろ?
0846デフォルトの名無しさん
2016/07/02(土) 18:47:47.96ID:hHp4sSVy0847デフォルトの名無しさん
2016/07/02(土) 20:14:00.55ID:AmR+G6iWプロジェクトの担当としての回答はこうですが、理想論としては確かに認めます、とか。
低い次元の日常生活してるな。
そもそも、イギリスでのfirst-class citizenとsecond-class citizenの違い知ってりゃ理解出来るだろうけど、そういう教養も無いんだろうし。
言っとくと、British citizen otherwise than by descentと、British citizen by descentだからな。
「誰かから受け継いだものではない『英国市民』」と「誰かから受け継いだ(にすぎない)『英国市民』」の違い。
だから、何かから作られたものではない関数含めるオブジェクトを一級市民になぞらえ、そうではないものを二級市民になぞらえてる。
どっかのスレで論破されて発狂してた奴そっくりだな。
0848デフォルトの名無しさん
2016/07/02(土) 20:18:56.43ID:AmR+G6iW・イギリスで産まれれば一級市民
・親がイギリス人(一級市民)でも、イギリス国外で産まれれば二級市民、
・親がイギリス人でも、二級市民であれば、イギリス国外で産んだ場合国籍を与えることは出来ない
0849デフォルトの名無しさん
2016/07/02(土) 20:31:38.20ID:/wal4gbUちゃんと税金を払ってる人のことですよ
0850デフォルトの名無しさん
2016/07/03(日) 04:16:19.31ID:+KSQOYrqそれは普通では無いな。
意地を張らずに自分の非を認めろよ。
低い次元の日常生活してる奴には無理かもな。
0851デフォルトの名無しさん
2016/07/03(日) 10:44:20.95ID:xMv6BMC9お前らは所詮使い捨ての奴隷よ。
0852デフォルトの名無しさん
2016/07/03(日) 12:12:49.74ID:btJwgGWt普通でしょw
とりあえず言いかえせば良いと思ってるんだろうけど。
0853デフォルトの名無しさん
2016/07/03(日) 13:30:07.63ID:oNgHKg4Cvar moji="\/";
って具合にエスケープするって認識でいたのですが、
good parts P11に
「/とコントロール文字を除くすべてのユニコード文字」
って書いてあるのですが、
スラッシュ/ってコントロール文字ではないのですか?
0854デフォルトの名無しさん
2016/07/03(日) 14:14:39.57ID:A4NkGxi20855デフォルトの名無しさん
2016/07/03(日) 14:16:55.67ID:A4NkGxi2へぇーって言うんだろうなw
0856デフォルトの名無しさん
2016/07/03(日) 14:43:21.41ID:JMRewaFc0857デフォルトの名無しさん
2016/07/03(日) 16:11:02.52ID:YeoQWaDz0858デフォルトの名無しさん
2016/07/03(日) 16:11:29.21ID:qk7lGSjHジジイの方がググらねーけどな
0859デフォルトの名無しさん
2016/07/03(日) 16:18:36.85ID:YeoQWaDzもしかしてBotでも仕掛けてある?
0860デフォルトの名無しさん
2016/07/03(日) 16:41:53.92ID:5c1HtZx3SNSのやりすぎ
0861デフォルトの名無しさん
2016/07/03(日) 16:53:17.69ID:YeoQWaDzもしそれで俺の時まで回答を待っていたのなら、完全に病気だな。
0862デフォルトの名無しさん
2016/07/03(日) 19:28:43.02ID:+KSQOYrq普通じゃないでしょw
とりあえず言いはれば良いと思ってるんだろうけど。
0863デフォルトの名無しさん
2016/07/03(日) 21:31:43.21ID:EZH9raf40864デフォルトの名無しさん
2016/07/03(日) 21:51:09.80ID:A4NkGxi2じゃあお前から立場を明示してくれ
0865デフォルトの名無しさん
2016/07/03(日) 22:03:40.88ID:EZH9raf4俺個人としては痛い子がこれ以上恥を上塗りするのがかわいそうだと思ったから発言した
一人の社会人としては、個人の発言を会社の見解と取られるリスクは避けたいので個人的な発言には必ず私個人としてはと前置きするのが普通だと思う
これでいいか?
0866デフォルトの名無しさん
2016/07/03(日) 22:10:11.68ID:A4NkGxi2お前なんか可哀想だな。
休日の書き込みなのに、
会社の顔色をうかがってるんだね。
会社第一の人生って感じがするよ。
会社が悪く思われるからこんなことはできん!ってな。
0867デフォルトの名無しさん
2016/07/03(日) 22:21:47.90ID:EZH9raf4そうか、まあどちらが可哀想かは見解の相違だな
ところで何故そんなにイラついてるんだ?
腹でも減ってるのか?ちゃんと食わんと体に悪いぞ?
0868デフォルトの名無しさん
2016/07/03(日) 22:23:43.44ID:A4NkGxi2いらついてるのお前じゃね?w
なんで俺がいらついていることにしたいか知らんけどw
0869デフォルトの名無しさん
2016/07/03(日) 22:26:30.67ID:EZH9raf4そうか、まあイラついてないならいいんだ
話題をすり替えてまで攻撃的な言葉を向けて来たから
何かイラついてるのかと思ったんだ、まあ気にするな
0870デフォルトの名無しさん
2016/07/03(日) 22:28:43.96ID:A4NkGxi20871デフォルトの名無しさん
2016/07/03(日) 22:30:05.90ID:A4NkGxi2お前は一体誰と戦ってるんだ?w
俺は遊べそうと思ったから遊んでるだけだw
0872デフォルトの名無しさん
2016/07/03(日) 22:37:55.93ID:EZH9raf4まあ俺は相手は誰でもいいんよ、反応のいい馬鹿をからかうのが楽しいだけだから
では寝る、スレ汚し失礼した
0873デフォルトの名無しさん
2016/07/03(日) 22:51:46.92ID:YeoQWaDzおかしな擁護をするからゆとりはゆとりのまま。それはゆとりのためにもよくない。
0874デフォルトの名無しさん
2016/07/04(月) 04:44:18.07ID:gPjkHcng人を馬鹿にする奴は雇わない
0875デフォルトの名無しさん
2016/07/04(月) 07:56:58.66ID:Nc/f1szG確かに!
0876デフォルトの名無しさん
2016/07/04(月) 21:07:56.31ID:xBEl8jJ1いよいよここもゆとり汚染が酷いな
そうやって自分の周りを自分より馬鹿で固めて安心しているうちはゆとりのままだね
じきに会社が潰れるからそれでいいと思うけど
資本主義はゆとりを特別扱いしてはくれない
君らがコントロール文字すら知らない中年になるのは数年後さ
若いという言い訳が通用しなくなった時にどうなるか見物だね
0877デフォルトの名無しさん
2016/07/04(月) 22:32:04.97ID:vRFMByUMコントロール文字を知らない中年と
他人を馬鹿にする事しかしない中年
確実に後者の方が害悪だな
0878デフォルトの名無しさん
2016/07/04(月) 22:52:08.82ID:xBEl8jJ1君らが正しければ再就職先はあるだろうし、間違っていれば無いだけの話だ。
ここで言い争う意味はない。楽しみに待てばいい。
0879デフォルトの名無しさん
2016/07/04(月) 22:55:17.69ID:0oVcG5wMvar moji="\/";
って具合にエスケープするって認識でいたのですが?
0880デフォルトの名無しさん
2016/07/04(月) 23:07:56.13ID:xBEl8jJ1>>874
>>875
>>877
俺らの対応に文句を言っているお前らが答えろよ。
当然知っているからその態度なんだろ?
それで放置するのなら俺らに文句を言う筋はないよ。
もっともゆとりにはこの「筋」ってのが通じなくて困るんだが。
0881デフォルトの名無しさん
2016/07/04(月) 23:15:25.46ID:2qwL8Tkvなぜ、controlだけカタカナにするんだろう?
コントロールキャラクタの方がまだ分かる
0882デフォルトの名無しさん
2016/07/04(月) 23:27:23.31ID:vyHh0WrX0883デフォルトの名無しさん
2016/07/04(月) 23:50:51.04ID:SuUmocnFこれ使ってフォルダ読み込んでいるんだけど
指定する場所が毎回同じだから最初からそこを指定するにはどうすればいいんだろう?
わかる人いたら教えて下さい。
0884デフォルトの名無しさん
2016/07/05(火) 00:16:53.06ID:50xvo8fd元々ハードを制御する為に使われていたASCIIコードの先頭32文字を指していた言葉、改行や前述されたBELなど通常の文字として画面表示されないもの
Unicodeではこの32文字に加えて第14面の追加特殊用途面などに更に多くの制御文字がマッピングされている
なおスラッシュは/という文字なのでコントロール文字ではないし、エスケープが必要かと制御文字どうかには直接的な関連性はない
>>881
本当はコントロールキャラクターと表記したいが多くの日本人はキャラクターという言葉から文字を連想しないから文字と置き換えたのではないかね?
0885デフォルトの名無しさん
2016/07/05(火) 00:24:24.40ID:aq1IVl4D0886デフォルトの名無しさん
2016/07/05(火) 01:58:08.99ID:94G9IfNv<p>〜</p> はいらないので、コメントにするか、削除する
コメントにする場合、<!-- と --> で囲む。
ただし、コメントの中に、コメントは含められないため、<!-- 行C --> を削除する
<!--
<p>
〜
</p>
-->
<script>
fileListDilectory("フォルダ名")
function fileListDilectory(files) {
<script>タグと、function〜の間に、fileListDilectory("フォルダ名")を追加する。
フォルダ名は、半角ダブルクォーテーションで囲む
0887デフォルトの名無しさん
2016/07/05(火) 02:14:24.57ID:iQZ7PuWsどちらかといえば、「制御文字」が広く知られていると思うのだが
0888デフォルトの名無しさん
2016/07/05(火) 03:12:34.89ID:gnmCE5Y/<!と>の中にある--で開始で--で終了だから
<!ここはコメントじゃない--ここはコメント--ここはコメントじゃない>
0889デフォルトの名無しさん
2016/07/05(火) 03:15:48.89ID:gnmCE5Y/↑これコメント閉じてない
0890デフォルトの名無しさん
2016/07/05(火) 03:31:12.38ID:94G9IfNvオブジェクトを辞書として使う際、キーに、hasOwnProperty, __proto__ などを使うと、
既存のプロパティが上書きされて、バグるというのは本当なの?
var dict = { hasOwnProperty : null, __proto__ : null }
>>889
<!-- と --> の間では、-- は使えない
0891デフォルトの名無しさん
2016/07/05(火) 04:05:49.05ID:gnmCE5Y/だから>>888なんだってば
0892デフォルトの名無しさん
2016/07/05(火) 04:07:46.52ID:Dhx8/uPEhttps://github.com/whatwg/html/commit/518d16fdc672d1023dcfd2847d86f559d13a842f
0893デフォルトの名無しさん
2016/07/05(火) 14:28:39.06ID:eormrIAEそんなことはない
https://html.spec.whatwg.org/multipage/syntax.html#comments
その理屈が認められるならDOCTYPE宣言にもコメントを埋め込み可能になる
<!DOCTYPE html--コメント-->
0894デフォルトの名無しさん
2016/07/05(火) 14:49:36.44ID:eormrIAEあなたが 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
0895デフォルトの名無しさん
2016/07/05(火) 16:01:54.40ID:50xvo8fdw3cのhtml5勧告によると、<!--の4文字シーケンスで始まり-->の3文字シーケンスで終わるときっぱり書いてある
以下出典と該当する部分の引用
http://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 (-->).
0896890
2016/07/05(火) 23:08:07.75ID:94G9IfNv入力されたデータを、オブジェクトのハッシュとして扱った際、バグらないのかな?
または、これを利用して、システムを壊したりするとか
0897デフォルトの名無しさん
2016/07/05(火) 23:17:50.58ID:eormrIAEそれはそういう設計にしているプログラマが悪い
プロパティに何でも代入可能なハッシュ値ならプロトタイプ上のプロパティが上書きされる事も考慮すべきだ
Object.keys, Object.prototype.hasOwnProperty.call で回避できるからな
あるいは new Map でも使えばいい
0898853
2016/07/05(火) 23:21:29.77ID:fKNXFIY8言ってたら、まずいですか?
0899デフォルトの名無しさん
2016/07/05(火) 23:49:25.07ID:Coapt2bz" (</ とコントロール文字を除くすべてのユニコード文字> | <エスケープ文字>)* "
なぜ "/" (スラッシュ) を除く?
ES6 を読んだが、"/" が許可されないようには読めん
http://www.ecma-international.org/ecma-262/6.0/#sec-literals-string-literals
『JavaScript: The Good Parts』の説明では """ が許可されるように読めるが、実際そんなことはなく、SyntaxError になる
<" とコントロール文字を除くすべてのユニコード文字> であるべきだと思うのだが
0900853
2016/07/06(水) 00:00:08.69ID:zGLlF+OqString
""で囲まれた文字列は、
any unicode character except
" and \ and control character
''で囲まれた文字列は、
any unicode character except
" and \ and control character
となっており、日本語版のgood partsとは書いてあることが違う
英語版にはexcept / とは書いてない。
オライリーの公式には、ここの訂正がない。
ってなってるんだけど、もちろん、このスレの住民は
英語版のgood partsくらい普通に読んでるんで、
気づいているはず
0901デフォルトの名無しさん
2016/07/06(水) 00:02:33.66ID:Np1SAbRe運が良かったな。誤字って予想ぐらいすぐにおもいつけよ
http://bdcampbell.net/javascript/book/javascript_the_good_parts.pdf
0902デフォルトの名無しさん
2016/07/06(水) 00:14:41.00ID:1PwyVn8f0903899
2016/07/06(水) 00:14:59.53ID:YMmDVDK6気が付いていたなら初めから>>853で正しい情報を書け、といいたい
間違いと分かっている和訳版の情報を寄せるのはミスリードを誘っているようにしか見えん
>>901
公式サイトに添削がないからおかしいとは思った
仕様書にない時点で間違いだと99%確信はしてたが、誰も指摘しなかったんだな
ただ、はっきりいって誤字のレベルを超えていると思う
"'と/ではキーの位置が大きく違うが、どうやったら誤字になるんだ?
0904デフォルトの名無しさん
2016/07/06(水) 00:18:21.76ID:Np1SAbRe/と\ の間違いだろw
0905デフォルトの名無しさん
2016/07/06(水) 00:18:26.98ID:YMmDVDK6/が制御文字と主張するなら「何を制御しているのか」をよく考えろ
通常、制御文字とは NUL, BS, LF, CR のように入力された機器に特別な制御命令を与える文字を指す
/は入力された機器に何も制御命令を出さないので普通は制御文字とは呼ばない
プログラミング言語や正規表現で現れる特殊文字は「メタキャラクタ(meta character)」と呼ぶ
扱う言語によってメタキャラクタは変化するので「JavaScriptの正規表現では/はメタキャラクタ」というように言語指定してやれば正しく伝わるだろう
0906853
2016/07/06(水) 01:02:18.07ID:zGLlF+Oq/を除くと書いてない。
(コントロール文字に/を含めにないとき)
The escape sequencesに\/があるってことは
/がコントロール文字でないと辻褄が合わないではないか!?
っと考えました。
/はコントロール文字ではないが、正規表現で使う特殊文字だから、
コントロール文字の中に含めているって解釈でいい(?)
>>905
メタキャラって/もですが、+ / *とかもメタキャラですよね
しかし+ / *はThe escape sequencesでない。
0907デフォルトの名無しさん
2016/07/06(水) 01:11:51.83ID:Np1SAbReコントロール文字って定義があるんだから
それ以外はコントロール文字じゃねーだろ。
それだけの話んだが。
0908デフォルトの名無しさん
2016/07/06(水) 01:31:13.03ID:YMmDVDK6escape sequencesは制御文字の反意語ではない
そもそも、文字列リテラル上で制御文字は特別な文字ではなく、エスケープを必要としない
文字列リテラルでエスケープが必要なのは "'\ と LineTerminator だけだ
http://www.ecma-international.org/ecma-262/6.0/#sec-literals-string-literals
0909デフォルトの名無しさん
2016/07/06(水) 01:35:42.48ID:YMmDVDK6『JavaScript: The Good Parts』よりも参考になる
0910デフォルトの名無しさん
2016/07/06(水) 01:51:00.52ID:YMmDVDK6> /はコントロール文字ではないが、正規表現で使う特殊文字だから、
> コントロール文字の中に含めているって解釈でいい(?)
1行目と2行目の「コントロール文字」の定義が違うのはなぜだ?
「文字列リテラルのメタキャラクタ」と「正規表現のメタキャラクタ」は区別しろ
制御文字とメタキャラクタは別個の定義だ
よくわからんなら制御文字は気にしなくていいが、/や\はメタキャラクタであっても制御文字ではない(文字列リテラルでは/はメタキャラクタではない)
しっかりと理解してないなら全て「特殊文字」に統一しておいた方がマシ
http://www.ecma-international.org/ecma-262/6.0/#sec-unicode-format-control-characters
0911デフォルトの名無しさん
2016/07/06(水) 02:04:58.41ID:3UYEMUlZ間違いを認めればいいだけだろ。
もしそれをこれまで吹聴していたのなら、お前は既に馬鹿老害扱いされている。
それでも今後とも間違いを吹聴し続けるよりはマシ。
0912デフォルトの名無しさん
2016/07/06(水) 07:18:52.57ID:sTXK0Kzpそれは優しすぎる傲慢。
その権利は俺達にないし、彼の問題に一々付き合ってやる義理もない。
0913デフォルトの名無しさん
2016/07/06(水) 07:43:14.67ID:zGLlF+Oqはい。
/はコントロール文字でない。
「文字列リテラルのメタキャラクタ」と「正規表現のメタキャラクタ」が分からないので
/と\はコントロール文字でないが、escape sequencesに/と\があるのは
特殊文字だからって覚えておきます。
0914デフォルトの名無しさん
2016/07/06(水) 08:07:50.32ID:Uvvu3JgG0915デフォルトの名無しさん
2016/07/06(水) 08:27:04.26ID:sTXK0Kzp例えば制御文字を表すためのエスケープ表現を『制御文字』と慣用的に読んだって間違いじゃないし、
『\』をそのエスケープ表現の開始記号として『制御文字』と言ったって必ずしも伝わらなかったり悪いわけじゃない。
慣用的に使われる言葉と、仕様のキーワードは別。
0916デフォルトの名無しさん
2016/07/06(水) 09:51:11.02ID:aYInvTWe/もちろん/
0917デフォルトの名無しさん
2016/07/06(水) 10:42:32.00ID:cNn6jv5yそれリテラルのデリミタ。正規表現の一部じゃ無い
0918デフォルトの名無しさん
2016/07/06(水) 11:35:43.96ID:YMmDVDK6補足感謝
「/がメタキャラクタ」は適切な表現ではなかったな
0919デフォルトの名無しさん
2016/07/06(水) 11:48:57.84ID:sTXK0Kzp実際書く上では実質「正規表現」の「メタ」なキャラクタと考えられなくはないけど。
0920デフォルトの名無しさん
2016/07/06(水) 21:22:48.04ID:3UYEMUlZゆとり「通じればいいんだ。間違いではない」
他人(なんだこのゆとり…間違いは間違いだろ)
間違いだし、伝わりにくいし、悪いよ。いちいち言わないだけで。
0921デフォルトの名無しさん
2016/07/06(水) 21:26:31.47ID:zGLlF+Oq趣味でJavascriptの勉強してるだけだし別にいいだろ
って開き直ってやる
0922デフォルトの名無しさん
2016/07/06(水) 21:32:48.07ID:3UYEMUlZ過ちては改むるに憚ることなかれ
リアルで誤用しまくりなら信用の回復は無理ぽだけど、そういうことではなさそうだし
0923デフォルトの名無しさん
2016/07/06(水) 22:48:29.74ID:Np1SAbReASCIIコードを勉強するときに
必ずコントロール文字は出てくるだろ。
JavaScript以前の問題だ。
0924デフォルトの名無しさん
2016/07/06(水) 23:09:55.62ID:3UYEMUlZ10代ならあり得るが、20代しかも後半なのはちょっと不自然だけど
逆に俺はJavaScriptのソースコードがユニコードなのが衝撃的だったが
0925デフォルトの名無しさん
2016/07/07(木) 07:09:03.14ID:kX0s01tc何が衝撃的だったの?
0926デフォルトの名無しさん
2016/07/07(木) 19:41:06.60ID:xu7eLIup変数名をhanteiにしたら、クレームが来て、
取引先の会社「変数名hentai(ヘンタイ)ってどいうことですか?」
当社「違いますhanteiの間違えです。」
って事件があったとさ
これってなんかのコピペなんですか?
実際に、仕事でhanteiなんて変数名に使うものなのでしょうか?
0927デフォルトの名無しさん
2016/07/07(木) 21:22:02.81ID:emRikmn60928デフォルトの名無しさん
2016/07/07(木) 21:34:20.25ID:+CDrHRBKコピペかどうかはさておき、hanteiは使っててもおかしくないと思う
良いか悪いかは別の話ね
0929デフォルトの名無しさん
2016/07/07(木) 22:43:23.54ID:iLaVioOvconst app = hoge;
ES6の定数宣言で、この二つの書き方は何が違うんでしょうか?
どちらを使うべきか指針とかあったりしますか?
0930デフォルトの名無しさん
2016/07/07(木) 23:01:35.80ID:H48+30O4普遍的なルールとして、短い方を選ぶ方が良い。
0931デフォルトの名無しさん
2016/07/07(木) 23:39:05.17ID:emRikmn6明らかに挙動の違うものを「どちらを使うべきか指針」といわれても…
http://js-next.hatenablog.com/entry/2015/05/18/181956
>>930
if (x) x.y = 1; と if (x) { x.y = 1; } とか、長い方がいい場合もあると思うけど
0932デフォルトの名無しさん
2016/07/07(木) 23:40:07.51ID:j5TOflcBconst {app} = hoge;
は
const app = hoge.app;
と等価
0933デフォルトの名無しさん
2016/07/07(木) 23:44:51.74ID:iLaVioOv理解しました、ありがとうございました
0934デフォルトの名無しさん
2016/07/08(金) 00:17:25.93ID:gFg8sSWKあと、テンプレも復活させる必要がある
0935デフォルトの名無しさん
2016/07/08(金) 00:27:47.76ID:+TjkY6Hgプログラム板のJS総合スレの2つに分けるのがいい。
0936デフォルトの名無しさん
2016/07/08(金) 00:54:45.54ID:yD4trqxh+ JavaScript の質問用スレッド vol.121 + [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/tech/1467906869/
0937デフォルトの名無しさん
2016/07/08(金) 07:41:13.87ID:lv/3l3yT0938デフォルトの名無しさん
2016/07/08(金) 07:46:45.99ID:lv/3l3yTこれを組み合わせればいいと思う。
■関連スレ
JavaScript ライブラリ総合質問所 vol.5 [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/hp/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
0939デフォルトの名無しさん
2016/07/08(金) 08:49:21.45ID:+TjkY6HgWeb板の方で統合した方がいいと思う。
0940デフォルトの名無しさん
2016/07/08(金) 08:50:41.84ID:vGS1irmk(9)を削除して「諸注意」を書き変えればいいかね
完全に消すと初見さんが荒らしへの対処に困りそうだし
0941デフォルトの名無しさん
2016/07/08(金) 11:24:47.84ID:KhEBU29mWeb板は既にそれぞれの質問スレがあるから上から統合立てるのはどうかと
統合するならどれか立たなくなってから徐々にまとめていく形がいいと思う
その場合ここのテンプレは前スレのリンク切れ直すくらい
いずれにせよ荒らしの立てたスレ使うのは本当によくないから>>936はスルーで
0942デフォルトの名無しさん
2016/07/08(金) 13:47:44.11ID:U0/kuRoyプログラム板に統合する案に賛成
0943デフォルトの名無しさん
2016/07/08(金) 18:33:42.72ID:+TjkY6Hg俺はそれならそれでいいが、多くの人が納得するかは知らない。
いずれにしろ統合するならそういう文言を必ずテンプレに入れてくれ。
0944デフォルトの名無しさん
2016/07/08(金) 21:17:40.39ID:GrB7vStf俺もその意見に賛成。>>939も言ってるけどDOMの話をするのなら
HTMLとCSSは必ず出てくる。UIを作るときにはかならず使うものだからね。
時々JavaScriptだけで見た目を制御しようとして
ごちゃごちゃしたコードを書く人がいるけど
HTMLとCSSを正しく使えばJavaScriptコードは減る。
「CSSだけで作る」で検索すればいろいろと動きのある
メニューとかが出てくるはず。
0945デフォルトの名無しさん
2016/07/08(金) 22:04:36.09ID:+TjkY6Hghttp://design.kayac.com/topics/2011/06/css-programing.php
0946デフォルトの名無しさん
2016/07/08(金) 23:30:39.02ID:CZkAeEnBhttp://echo.2ch.net/test/read.cgi/hp/1467511443/
本来はあっちでDOM操作関連のチョロJavaScript(〜30行程度)までは取り扱うべきなんだよ。
それを越えてきたらこちらということで。
あいつらは今後ともstaticなHTML/CSSだけのつもりなのか?
0947デフォルトの名無しさん
2016/07/08(金) 23:36:09.26ID:/soOgtk10948デフォルトの名無しさん
2016/07/08(金) 23:45:11.18ID:BGnGAFetそれなら同じ理屈で、こっちでも30行程度の
HTMLやCSSを扱うべきじゃね?
0949デフォルトの名無しさん
2016/07/08(金) 23:48:54.41ID:3Ch7jsxiそういう輩は「技術的に詳しそうなのでスレ違いを承知で質問します」という体だから裾野だけ増やしても仕方ない
一つ例外を認めればあれもこれも認めろという声が上がるのは明白
0950デフォルトの名無しさん
2016/07/08(金) 23:50:58.91ID:BGnGAFetそもそもHTMLやCSSはスレ違いではないという話だよ。
0951デフォルトの名無しさん
2016/07/08(金) 23:53:38.62ID:/soOgtk10952デフォルトの名無しさん
2016/07/08(金) 23:56:27.86ID:3Ch7jsxiWeb制作初心者スレならHTML/CSSはスレ違いではない
HTML/CSSにも関わりのあるJavaScriptの質問をするなら許されることもあろうが、JavaScriptと関係しないHTML/CSSの質問は完全にスレ違い
ex: article要素とsection要素の違いは何ですか?
0953デフォルトの名無しさん
2016/07/09(土) 00:00:07.52ID:My2a4Ewi0954デフォルトの名無しさん
2016/07/09(土) 00:03:20.01ID:ej5NI84GJavaScriptが主、HTML/CSSが従の質問をすればいい
ECMAScriptの範疇でしか質問を受け入れないわけではない
0955946
2016/07/09(土) 00:11:15.70ID:iLP51t8Aいやそれはない。俺はあのスレの内容には全く興味がない。
DOMはJSにとっては入出力だから外すことは出来ないが、
本格的にプログラミングすると当然DOM以外の部分が大半になる。
むしろ、DOM関連のJavaScriptだけ分離するべきか?
まあそれが元々はjQueryスレだったんだろうけど。
とはいえ>>949,954は妥当だな。とりあえず現状維持でいいよ。
迷ったら一番妥当だと思うところで聞けばいいだけ。
その判断が間違いならスレチ誘導すればいいだけ。
維持出来ないほど過疎れば自然と統合されるだけ。
0956デフォルトの名無しさん
2016/07/09(土) 00:14:45.57ID:3ye6tHD5+ JavaScript の質問用スレッド vol.121 + [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/tech/1467906869/
0957デフォルトの名無しさん
2016/07/09(土) 00:16:51.15ID:3DBY5ZwOnodejsを見ればわかるようにDOMは必須じゃない
0958デフォルトの名無しさん
2016/07/09(土) 00:52:31.22ID:US7tnKBOhttps://fiddle.jshell.net/6018r9tu/1/show/light/
>>935,937-938,940-942を採用。他は保留。
0959デフォルトの名無しさん
2016/07/09(土) 00:57:59.04ID:jK+6h30t住み分けは>>954の考え方が俺も適切だと思う
そもそもの板ルールだってケースバイケースでやれとのお達しが出ているし
とりあえずライブラリスレはまだ埋まるまで時間があるから議論は持ち越しとして
このスレの現状維持には賛成だが>>936,>>956を使うのには重ねて反対だ
0960デフォルトの名無しさん
2016/07/09(土) 05:01:09.70ID:u3A/GFo2統合しようとしてる今の全体状況を考えても、それは難しい。
統合するならWeb全般と、JS全般の2つにするか、
HTMLの質問くらいなら許容してあげるくらいのJS全般1つにすべき。
0961デフォルトの名無しさん
2016/07/09(土) 07:11:01.87ID:ej5NI84G統合するならHTML/CSS/JavaScriptだけに特化して統合する必要はない
SEO対策、ブラウザ、サーバサイドスクリプト...etc
境界線が分からない質問者が質問しそうな話題は無数にある
Web制作板で「Webサイト制作初心者用質問スレ」を復活させるのが妥当だが、JavaScriptスレとは無関係に進めるべき
あと、統合するなら周辺スレの住人の合意を得る必要があるから
0962デフォルトの名無しさん
2016/07/09(土) 08:39:06.50ID:Bk+A+H3d○ アコーディオンメニューの作り方(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%)
0963デフォルトの名無しさん
2016/07/09(土) 10:41:56.68ID:iLP51t8Aお前がそういうことにしたいのは分かったが、ところで統合しようとしている相手はどのスレなのよ?
このスレは十分流れているし、機能もしている。
jQueryのスレも同様。どちらもどこかに合流する必要はない。
統合ってのは過疎スレが維持出来ずに落ちて、
そこの住人がどこか近いところに移住することによって行われる。
十分流れているスレで上から「統合」指令出しても効果はない。
落ちそうな過疎スレをそのまま落とせば自然と統合されるし、それ以外の妥当な方法はない。
結果的にスレチ誘導出来ず、その落ちたスレが取り扱っていた内容も自然と取り扱うことになる。
つまり統合に関してはここでの議論は無意味で、統合される側のスレ住民が納得しないと効果も無い。
分化したスレが機能している以上、それは分離すべきだったということだ。
「ぼくのかんがえたさいきょうのとうごうすれ」は存在し得ない。
例えば主にDOM関連に興味があるのなら、そいつはこれまで同様HTML/CSSのスレも見ろってことでしかない。
0964デフォルトの名無しさん
2016/07/09(土) 14:22:57.47ID:8raa4CZVどちらが主になるかなんて実装次第だが、このスレに投下した時点でJavascriptで実装すること前提であってほしい
何で作るのがいいかわかってないような奴をここでいちいち相手にしたくないから総合的スレがこのスレと別に向こうにあったらありがたいとは思うな
このスレをどこかと統合する必然性はないと思うが、おかしな奴をまず総合スレで相談して来いって追い出せるのは便利だ
0965デフォルトの名無しさん
2016/07/09(土) 15:30:53.75ID:iLP51t8Aついでだから追加。
既に述べたように、
機能しているスレで議論できる内容は、「何かを分離するか、現状維持か」
過疎って機能してないスレで議論すべき内容は、「どこかに統合するか、現状維持か」
統合したいのなら、統合される過疎スレ側に連絡し、それを住民が受け入れれば統合されるだけ。
こっちが過疎スレ側にごそっと移動してもスレ乗っ取りにしかならないだろ。
最近は減ったように思うが、テンプレ回答として
・PHPでやれ
・CSSでやれ
ってのがあったから、>>964の言う総合案内所は役に立つだろう。
ただそこで複数の実装方法があったとして、どれがいいかを説明するのはかなり難しいとは思うが、
お前らは説明の再生産はしたがっているようだから、それもいいのではないか。理解を深めることにはなる。
上手く行けばそのスレはめちゃめちゃ繁盛するだろう。
多分最初からJS/HTML/CSS/PHPまで入れておいた方がいい。
質問「○○をやりたい」に対し、基本的には「○○スレに行け」という回答で案内に徹せば上手く行く。
0966デフォルトの名無しさん
2016/07/09(土) 18:27:15.89ID:/ZL1+tl10967デフォルトの名無しさん
2016/07/09(土) 20:10:41.89ID:1nvCXdBRアコーディオンメニューをCSS100%で作れるからと言って、
質問する人はそう思ってない。JavaScriptが必要だと思ってる。
だから最初からCSSスレに書き込むのは不可能
JavaScriptスレで質問するのは仕方がないことだが
これをCSSスレに移動させるか?といえば、実はそうとは限らない。
CSS100%で作れると言ったが細かい要件によっては
CSS100%で作れないかもしれないからだ。
だからCSSで作れるかどうか分からない質問をここでするのは問題ないし
JavaScriptで作る回答があるならば、ここで会話を続けていい。
その答えの一つとしてJavaScript使わないでできますって言うのも答えなわけだ。
結論としては
質問者・・・JavaScriptを使うと思っているならば質問していい
回答者・・・JavaScriptでやるのが間違いだと思うならば、他のスレに誘導
手法の一つとしてJavaScriptでやる方法があるのならこのスレでよく、
回答の一つとしてJavaScriptを使わない方法を提示しても良い。
でいいんじゃねーの?
0968デフォルトの名無しさん
2016/07/09(土) 20:34:43.05ID:iLP51t8A何でお前は取り扱い範囲を広げたがっているの?
それともお前は単発荒らし?なら無視するだけだが。
何で作ればいいか分からない人向けの「Webサイト制作初心者用質問スレ」であって、
ここで聞く限り「JavaScriptで作る気」な場合にしろって事だろ。明確で妥当な基準だ。
既に書いたが、既に機能しているスレでは「範囲を狭めて分化していくか、現状維持か」だよ。
何でも聞けるスレは何も出来ないスレになる。
仮にプログラミング言語一般として、JavaもCもJavaScriptもPHPもありのスレにしても意味無いだろ。
複数の話題に興味があるのなら、お前が複数スレを巡回すればいいだけ。
分化しすぎてて過疎って落ちれば自然と統合されるだけ。そこでバランスが取れるようになっている。
CSSの話題がここで為されるとしたら、CSSスレが落ちて誰も立てなくなった時だよ。
あっちが機能している限り、CSSの話はあちらでやるべきだ。それがお互いの利益になる。
重ねて言うが、お前がCSSに興味があるのなら、お前がCSSスレも見ればいいだけだ。
0969デフォルトの名無しさん
2016/07/09(土) 20:37:57.40ID:1nvCXdBR範囲を狭くしたいっていうのなら
純粋なJavaScript専用にしてもいいけど?
つまりNode.jsでも動くものしかだめ。
DOMを扱うコードは禁止。
0970デフォルトの名無しさん
2016/07/09(土) 21:25:56.06ID:iLP51t8A言い返したいだけのクソガキ乙
俺はそれでもいいと言っているだろ。>>955
分離するのならそこだ。
ただしnodeはスレが別にあるので考慮する必要はない。
(nodeガーについては全部nodeスレに誘導すればいいだけ)
分離する理由は(nodeは関係なく)DOM部分はHTML/CSSとも絡むため、迷子の原因だからだ。
ただこれについては「Webサイト制作初心者用質問スレ」の方が妥当だという意見だ。
俺もそれでいい。つまり、このスレは現状維持で上記スレを新設でいい。
ただしこの新設スレを機能させるには、少なくともフルスタック()な連中がそこにいないといけない。
お前らだけで対応出来ないのなら、他スレからも応援してもらう必要がある。
とは言っても立てないことには始まらないので、妥当だという意見が多いようなら立てればいいと思うが。
0971941
2016/07/09(土) 22:14:27.41ID:lCeUP8cE失礼>>934の統合をこの板へ移行するものだと読み間違えてた
このスレとWeb板のライブラリスレを統合するってことなら自分は反対だ
当初向こうで出た話ではIDの出る板への単なる移行だったはず
>>967,>>954の言うように「JSが主になる」質問をそれぞれのスレで扱うことと
>>961の言うように初心者スレ復活を別の流れで模索することには賛成
0972デフォルトの名無しさん
2016/07/10(日) 02:54:32.77ID:eiCoffPeajaxでバイト配列を取得するとこまでできたけどファイルを保存する方法がわからねえ
0973デフォルトの名無しさん
2016/07/10(日) 05:23:29.64ID:bPE6a5y9その通り。
まず一歩目としてはその結論以外無い。
0974名無しさん@そうだ選挙に行こう! Go to vote!
2016/07/10(日) 12:28:37.49ID:j73ykfM2ライブラリスレがプログラム板に移行するに留まるとほぼ間違いなく、過疎化する
俺の感覚ではライブラリスレで俺以外で回答に参加していたのは信者君+1〜2名というところだが、そもそも質問者の絶対数が少ない
JavaScript ライブラリ総合質問所 vol.5 [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/hp/1465399470/
このスレでの質問はほとんどないに等しい
これじゃあかんと思ってjQueryの感想を書いてつなぎ止めようとしても釣れるのは信者君とその他大勢の煽りだけ
質問者にとって重要なのは質問に答えてくれることであって質問した結果、荒れようがIDが見えなかろうが関係ないからな
信者君は質問には高確率で回答していて、質問者にとっては都合がいよいからjQueryスレの質問がそれなりに多いのだろう
「プログラム板に移行したら今まで黙っていた俺だが、質問する予定があるぜ」という人が名乗り出るなら別だが、俺はプログラム板に移行するだけでは質問者にも移行を促すほどの請求力はないと思うぞ
0975名無しさん@そうだ選挙に行こう! Go to vote!
2016/07/10(日) 12:35:33.20ID:rTKcHDH+俺としては別にライブラリスレでもjQueryスレでも
ここでもjQueryの話題があればレスしてるので
どこでもかまわないかな
0976名無しさん@そうだ選挙に行こう! Go to vote!
2016/07/10(日) 13:53:52.88ID:BhOPIXigお前は一体何がやりたいのさ?その件については明らかに信者>>975の方が妥当だぞ。
そのスレってjQueryのスレとスレ立て合戦した奴だろ。頭の方に痕跡も残ってる。
どっちが本家なのかは知らないが、だったらまずそれらと統合すべきだろ。
そしてその話し合いは当該スレでやれ。ここではない。
スレ立て合戦の結果、人が居ないので釣ってみたが無理っぽいから統合したい?
死ね
> 質問者にとって重要なのは質問に答えてくれること
> 信者君は質問には高確率で回答していて、質問者にとっては都合がいよい
専用スレで信者が積極的に回答するのは全く問題ないし、むしろいいことだ。
それで質問スレとしても完全に機能してるんだろ?何も問題ない。
むしろお前の「ぼくのさいきょうのすれにならなかったから」というのが終わっている。
現実的にはjQuery以外のライブラリは新規に学ぶ価値が無くて、質問もないんだろ。
だったらそれはjQueryスレに飲み込まれるのが正しいあり方だよ。
お前がどれだけjQuery君を嫌ってようが、jQuery以外のライブラリが無用ならそうとしかならない。
0977名無しさん@そうだ選挙に行こう! Go to vote!
2016/07/10(日) 14:06:47.72ID:SLnFWOASjQuery以外のライブラリで有用なものはいくつかある。
無用というならばjQuery以外のDOM操作ライブラリというべきだろうね。
DOM操作に関連しないライブラリで有用なものはいくつかある。
例えばJavaScriptの少ない標準関数を補ってくれるlodash(underscore)
(Rubyを知っていればJavaScriptの標準関数は本当に少なく感じる)
日付関連をシンプルに扱えるmoment
SVGをjQueryライクに扱えるD3
ここらへんが有用なライブラリだな。
なおフレームワークやPolyfillは除いている。
0978名無しさん@そうだ選挙に行こう! Go to vote!
2016/07/10(日) 15:35:48.24ID:ZmdhimD5荒らしに餌やってまで伸ばそうとするのは最早呆れて何も言えないわ
あの状態じゃ質問なんて出来る雰囲気ではない
行うべきは燃料投下や統合よりも住み分けによる質問レスの誘導なんじゃないの
ここやNodeスレでライブラリやモジュールの質問スルーされてる難民とか結構いるぞ
0979名無しさん@そうだ選挙に行こう! Go to vote!
2016/07/10(日) 15:54:54.42ID:SLnFWOAS誘導したらどういう理由で問題が解決すると言うの?
0980名無しさん@そうだ選挙に行こう! Go to vote!
2016/07/10(日) 16:35:09.95ID:BhOPIXig適切な誘導があっても過疎って落ちるようなら、落ちるべくして落ちただけ。
そのスレは独立して存在する価値がないことになる。
つまり、適切な誘導が行われれば、あとは放置すれば判定は出るというだけ。
話は簡単だ。次スレを立てる時にとりあえずこのスレのテンプレに入れておけばいい。
このスレで出来ることはそこまでだよ。
入れるスレは以下の4つで良いのか?追加あれば挙げて。
JavaScript ライブラリ総合質問所 vol.5 [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/hp/1465399470/
JavaScript & jQuery 質問用スレッド vol.6 + [無断転載禁止]c2ch.net
http://echo.2ch.net/test/read.cgi/hp/1465566635/
【node.js】サーバサイドjavascript 4【io.js】 [無断転載禁止]c2ch.net
http://echo.2ch.net/test/read.cgi/tech/1460359714/
(X)HTML/CSS の質問に優しく答えるスレ23 [無断転載禁止]c2ch.net
http://echo.2ch.net/test/read.cgi/hp/1467511443/
ちなみになあ、テンプレの人>>958も恣意的すぎるんだよ。
どういう経緯があれ、需要があるのならそのスレは存在するし、迷子は出るのだから、
それらはテンプレに入れないといけない。jQueryのスレがそう。
Canvasのスレなんて完全に死んでいるのだから、それは落とさないといけない。
君には君の論理があるのだろうけど、現状を見ていない。
0981名無しさん@そうだ選挙に行こう! Go to vote!
2016/07/10(日) 17:22:43.78ID:6EzdDOVN回答者が流れても質問が来ないのではないかと思ってね
回答者だけいて質問者がいないのでは質問スレとして成り立たないから質問者が名乗り出てくれるのが有り難い
人が少なければ統合するのは自然な流れだと思う
>>978
誘導して人が来るならそうだな
0982名無しさん@そうだ選挙に行こう! Go to vote!
2016/07/10(日) 17:48:41.01ID:tgTIUHUH彼一人のせいでまともな回答者が大分減ったし
誰だって自分の回答が馬鹿にされたらいい気持ちはしない
プログラム板への移行が望まれるのは当然だね
0983名無しさん@そうだ選挙に行こう! Go to vote!
2016/07/10(日) 18:04:56.98ID:bPE6a5y9統合は反対はしないよ。
だって、向こうのスレ(JSとライブラリ)全く機能してないもん。
逆に、向こうの質問スレに行った方が良いよと言えるまでは少々Web感が強くてもこっちで扱うべきと思う。
もしも、無効にWEB総合スレを作る試みが上手く行った暁には改めて振り分ければいい。
0984名無しさん@そうだ選挙に行こう! Go to vote!
2016/07/10(日) 18:58:46.48ID:BhOPIXigこちらで決めることではない。
住民が納得して移住し、スレが落ちれば統合は完了する。
分化して専門性を高めたスレが存在して流れているのであれば、
それは存在価値があるからであって、統合する意味はない。
お前らみたいな「おれのさいきょうのすれっど」の馬鹿ばかりだからどうにもならないんだよ。
Web板に一生引きこもってろよ。
IDが出ないのをいいことにWeb板の質問スレでやりたい放題やっていたのはお前らだろ。
そういう馬鹿を見切った奴らがこっちに集まったからここは多少まともなんだよ。
統合して欲しいのなら、当該スレでそういう話し合いをすればいいだけだろ。
お前らは根本的に間違っているよ。
0985デフォルトの名無しさん
2016/07/10(日) 21:10:07.28ID:ZmdhimD5延々と荒らしに構って荒れた挙句の過疎なのだから正直ざまあみろと思う所もある
でもその認識はちょっと偏見が過ぎるんじゃないの
向こうの両スレでID出ないのをいいことにやりたい放題やっていた輩っていうのは
件の信者であり>>982の噛みつく奴でありテンプレで注意されていた同一人物だ
ここだって結局vol120にしてWeb板同様に乗っ取られているわけだ
向こうの住民だって数年間やれることはやった上での現在なんだろうよ
0986デフォルトの名無しさん
2016/07/10(日) 21:25:02.79ID:bPE6a5y9昔っから色んな意味で言いたい放題やりたい放題や奴は大勢いたし、
仕切り厨もスレチ厨も大活躍してた。
別に過疎の原因はスレ住民が悪いせいでは無いと思う。
むしろ過疎になったからそういう奴が目立ってきただけ。
0987デフォルトの名無しさん
2016/07/10(日) 21:28:08.59ID:ZmdhimD5ちょうどlodash啓蒙で大荒れ乱立してた頃からしか知らないんだわ
0988デフォルトの名無しさん
2016/07/10(日) 21:47:15.37ID:BhOPIXigそうでもないだろ。
そもそもIDあり板に移動したければさっさとやればよかっただけ。
今までへばりついていたのはID無しの方が都合がよかったからだろ。
こっちに来てからも何度も誘導も見た。どうしてもIDがない方が都合がいい奴がいるのは確かだ。
俺はざまあみろとは思わないが、そういう奴がここに来ると迷惑だと思っている。
ちなみに俺はその「信者」や「噛みつき君」は大して問題視していない。技術的である限り、やればいいのさ。
ゴミコードはゴミコードだと言うべきだし、その指摘が間違っているのなら逆に叩かれればいい。
「ぼくのかいたさいきょうのこーど」が礼賛される方が問題だ。
彼はIDがあったとしてもスタンスは変わらないだろうし、その点でも問題ない。
ちなみに彼の問題は、他スレでも「布教活動」をしていたことだよ。それは本当に邪魔だから止めてもらいたい。
ただ、今のところjQueryスレにこもって布教することにしたようだから、それは問題ないし、
こちらからもjQueryの専門的な話題は積極的に向こうに誘導すべきだろう。それがお互いの利益になる。
最悪に問題なのは、ID無し板で自演したり釣りをしたり横槍だと明確に分からない形で横槍を入れてくる奴らだ。
それは話の邪魔なんだよ。だからどうにもやりにくかった。それが今文句言っている奴らだろ。
その「信者」「噛みつき君」「注意されていた人」は彼等「自演君」「釣り君」「会話乗っ取り君」とは別の人だよ。
要するに、IDありとID無しで振る舞いを変えるような卑怯なゴミこそが問題なんだよ。
その点、「信者」君は卑怯ではない。繰り返すが、俺は彼には布教活動以外の問題は感じない。
だから彼がjQueryスレにこもってひたすら回答者に徹するのであれば、関連質問者は積極的に誘導でいい。
それの方がこっちのスレとしても楽だろ。
とはいえ、いい加減結論を出さないといけない。
荒らしのスレ>>936,956はセオリーどおりスルーとして、俺はテンプレがあった方がいいと思うから、
ベース>>958で関連スレだけ>>980に差し替えが俺の意見になる。
「Webサイト制作初心者用質問スレ」は次スレで引き続き検討として、
とりあえずこのスレの次スレをどうするかを決めよう。
0989デフォルトの名無しさん
2016/07/10(日) 22:27:02.42ID:ZmdhimD5もっとも彼以外にもそういうのが居たってのは同意見だ
じゃあここの次スレに争点を絞ろう
・荒らしの立てたスレは使わずに新スレを立てる
・このスレは現状維持
・状況により初心者スレを検討
まず>>958の改訂版は統合スレ用のものだから現状維持の場合は適さない
今回は以前のテンプレに>>980の関連スレを加えたものを使うべきだと思う
肯定的なレスが付いたら建ててくる
0990デフォルトの名無しさん
2016/07/10(日) 22:31:41.73ID:J3sPgwrM概ね賛成だけど、canvasスレの削除はどうなんだろうね
俺は落ちてない以上は入れてもいいと思う
0991デフォルトの名無しさん
2016/07/10(日) 22:38:00.44ID:BhOPIXig> 統合スレ用のものだから現状維持の場合は適さない
俺は子細はよく分かっていないのでこの辺はID:ZmdhimD5に任せる。
>>990
落とさないといけないって事はない。
ただ、あのスレ入れててもなぁ、とは思うが、
火種になるという意味では、今回は無難に入れておいていいとも思う。
まあいずれにしてもID:ZmdhimD5に任せる。
スレが埋まったらまずいので俺は今後は様子見する。
とにかくID:ZmdhimD5に任せる。よろしく。
0992デフォルトの名無しさん
2016/07/10(日) 22:39:44.89ID:tx16mOUkどこでもいいよw
俺は人がいるところに行くだけだから。
0993デフォルトの名無しさん
2016/07/10(日) 22:47:57.91ID:KHJNSY1I0994デフォルトの名無しさん
2016/07/10(日) 22:55:57.73ID:ZmdhimD5http://echo.2ch.net/test/read.cgi/tech/1468158373/
>>990-991
Canvasスレへのリンクは一先ず残した
以前のテンプレはいくらか古い部分があったから結局>>958をベースにして
そぐわない部分をカットしてから>>980を追加することにした
あといつの間にか諸注意の内容がほぼ倍になってたから以前のものを使った
Web板のかな、少なくともこのスレで同意を得て追加されたものではないし
0995デフォルトの名無しさん
2016/07/10(日) 22:58:59.73ID:Hr2GHwDGhttps://fiddle.jshell.net/6018r9tu/2/show/light/
>>980の関連スレを追加した。
Canvasスレ削除は賛否両論なので無難に残した。
0996デフォルトの名無しさん
2016/07/10(日) 23:03:27.28ID:XBuYUIhGどうみてもライブラリスレを統合する流れだっただろうに
0997デフォルトの名無しさん
2016/07/10(日) 23:08:39.77ID:tx16mOUkスレタイがどうなろうが、俺はあちこちのスレに行って
jQueryとlodashの話題をするだけなんだからw
0998デフォルトの名無しさん
2016/07/10(日) 23:12:17.55ID:ZmdhimD5そりゃ流れであって統合派も移行派も現状維持派もいたんだから
残りレス数が一桁切ってる状況ならひとまず現状維持で持ち越すしかないでしょ
勢いが冷めないうちに次スレで議論して欲しい
0999デフォルトの名無しさん
2016/07/10(日) 23:13:07.16ID:BhOPIXig乙。
諸注意や信奉者の主張例とかは俺もちょっと気になったが、(テンプレにしては感情すぎる)
まあそれもテンプレ作成者の意志だから尊重してもいいかとも思っていた。
俺が落としたくなかったのは関連スレとかのリンクだから、とにかく乙。
>>995
とりあえずここで揉めても意味無いから、今後は
>>990基準で「落ちるまでは関連スレに入れる」でいいんじゃないか。
だからWebGLの奴も入れておけばいい。
分化した専門スレが落ちるようなら需要がないって事だから帰ってくればいい。
流れるようなら存在価値があるのだからそのままでいい。
政治的に「宣伝してやらない」とか考える必要はない。
分化した専門スレであり、質問を受け付けるのであれば、基本的に追加すればいい。
1000デフォルトの名無しさん
2016/07/11(月) 00:15:27.69ID:gzpHRxsK10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
life time: 49日 4時間 23分 54秒
10021002
Over 1000Thread運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 2ちゃんねる専用ブラウザからの広告除去
★ 2ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
http://premium.2ch.net/
http://pink-chan-store.myshopify.com/
レス数が1000を超えています。これ以上書き込みはできません。