板検索:
+ JavaScript(ECMAScript)質問用スレッド vol.122 + (978)
まとめビュー
最新スレッド候補が見つかりました
+ JavaScript(ECMAScript)質問用スレッド vol.123 + (8) スレ作成日時:2016/12/21 21:56:53
表示中 + JavaScript(ECMAScript)質問用スレッド vol.122 + (978)
1
デフォルトの名無しさん[sage]   投稿日:2016/08/29 01:23:24  ID:MUTWRWKo.net
プログラマ板の趣旨にあわせてブラウザ限定ではなくサーバーサイドJavaScriptや
トランスパイラなどの関連技術の話題も取り扱うように変わりました。

ECMAScriptの言語仕様の話題。最新ECMAScriptによるモダンな書き方、Promiseやasync/awaitを
使った非同期プログラミング。ES2015、2016、2017等の最新ECMAScriptをブラウザで今すぐ使う方法、
ビルド環境やbowerやnodeのパッケージを使う方法等、モダンなJavaScript環境についての幅広い話をしましょう。

ECMAScript対応実行環境一覧(ブラウザやbabelを含む)
http://kangax.github.io/compat-table/es5/
http://kangax.github.io/compat-table/es6/ (= es2015)
http://kangax.github.io/compat-table/es2016plus/
http://kangax.github.io/compat-table/esnext/

JavaScriptとは?
もともとMozillaの前身のNetscapeが作った言語であり本来のJavaScriptはFirefoxの実装のみです。
JavaScriptの正式な仕様名はECMAScriptです。ですが一般に使われているとおり
ChromeやEdgeで使う言語もJavaScriptとしてこのスレでは扱います。
Firefox等のJavaScript実装は最新のECMAScriptに準拠しています。

※DOMはブラウザが提供しているものでありJavaScript(ECMAScript)の範囲外です。
なのでDOMを使ったプログラミングは原則としてこのスレの対象外です。
DOMはwindowオブジェクト(ブラウザのホストオブジェクト)経由で
参照するもので、window自体、window.document、window.Workerなどです。
これに関する話題はWeb制作板の下記のスレに移動してください。

+ JavaScript & jQuery 質問用スレッド vol.7 + [無断転載禁止]©2ch.net
+ JavaScript & jQuery 質問用スレッド vol.7 + /Web制作板
+ JavaScript の質問用スレッド vol.130 + [無断転載禁止]©2ch.net
+ JavaScript の質問用スレッド vol.130 + /Web制作板

前スレ + JavaScript の質問用スレッド vol.121 + [無断転載禁止]©2ch.net
+ JavaScript の質問用スレッド vol.121 +
コメント1件


2
デフォルトの名無しさん[sage]   投稿日:2016/08/29 02:19:02  ID:LPmR1rz1.net(3)
サンプルコードを書く場合はES6+に対応している
以下のサイトがおすすめです。

https://jsfiddle.net/ babel対応
http://ideone.com/ SpiderMonkey、Node.js 対応

3
デフォルトの名無しさん[sage]   投稿日:2016/08/29 02:22:18  ID:LPmR1rz1.net(3)

4
デフォルトの名無しさん[sage]   投稿日:2016/08/29 02:22:35  ID:LPmR1rz1.net(3)
TC39 Process: Stage
https://azu.github.io/slide-what-is-ecmascript/slide/12.html

Stage 0: Strawman
アイデア

Stage 1: Proposal
プロポーザルの目的や解決方法を示す
Polyfillやデモ等を用いて解説する

Stage 2: Draft
いわゆるドラフト
ECMAScript標準と同じルールでAPIや構文、セマンティックについて説明していなければならない

Stage 3: Candidate
仕様は完成した状態
実装や外部のフィードバックを求める状態
レビュアはその仕様策定者以外ならだれでもなれるが専門的な知識を持っている必要がある
ECMAScriptのエディタがチェックする必要があり

Stage 4: Finished
2つの実装(not Polyfill)が必要
ECMAScriptへ取り込まれる準備が完了したことを示す状態
ECMAScriptのエディタがチェックする必要があり

5
デフォルトの名無しさん[age]   投稿日:2016/08/29 09:37:00  ID:V2I771t3.net(3)
こっちのスレの後継も兼ねています。

ECMAScript デス 5 [転載禁止]©2ch.net
ECMAScript デス 5

6
デフォルトの名無しさん[sage]   投稿日:2016/08/29 09:37:26  ID:V2I771t3.net(3)
《ECMAScriptを語るスレ》

1. - 概要 -
ECMA-262規格として知られる言語(通称 ECMAScript)についての利用法や言語仕様、
その他四方山話をするスレです。
Standard ECMA-262 ECMAScript Language Specification Edition 5.1 (June 2011) 標準規格(英語)
http://www.ecma-international.org/publications/standards/Ecma-262.htm
Annotated ECMAScript 5.1
http://es5.github.com/
Draft Specification for ES.next (Ecma-262 Edition 6)
http://wiki.ecmascript.org/doku.php?id=harmony:specification_drafts
Under Translation of ECMA-262 3rd Edition (日本語訳)
http://www2u.biglobe.ne.jp/~oz-07ams/prog/ecma262r3/


■前スレ
ECMAScript デス 4

■過去スレ
JavaScript デス
プログラム板の別スレッドへ
ECMAScript デス 2
プログラム板の別スレッドへ
コメント1件

7
デフォルトの名無しさん[sage]   投稿日:2016/08/29 09:37:45  ID:V2I771t3.net(3)

8
デフォルトの名無しさん[]   投稿日:2016/08/29 22:45:03  ID:/4QG0Ido.net
ワロスワロスw

↓動作保証外ですというためにはテストしないといけないらしいよw

930 名前: ◆SEdFBOkLSw [sage] 投稿日:2016/08/29(月) 08:06:03.18 ID:FpDQPGJ0
>929
だから、動作保証外です、って言うためには、ノーテストだから動作保証外はだめでしょ。
テストして動作保証外と表示される所まで見て動作保証外だよ。

9
デフォルトの名無しさん[sage]   投稿日:2016/08/29 22:45:52  ID:BFY9f7LW.net(35)
あの、いつまでこの流れ続けるんすか
コメント1件


10
デフォルトの名無しさん[sage]   投稿日:2016/08/29 22:46:28  ID:6Q0H184Q.net
◆SEって言ってることが妙にSE臭くって、
それは技術的におかしいよね。
意味ないよね。
間違ってるよね。

っていうのがたくさんある。
トリップが本質を示してるw
コメント1件

11
デフォルトの名無しさん[sage]   投稿日:2016/08/29 22:53:05  ID:1MLmR57m.net(26)
まあ冗談抜きで今更古臭いコードで書く気にはなれんよな。

最低でもES2015もしくはTypeScriptじゃないと
書きたくない。
コメント1件

12
デフォルトの名無しさん[sage]   投稿日:2016/08/29 22:53:43  ID:BFY9f7LW.net(35)
>11
TypeScriptのバージョンがあがったらテストし直しですよ
正気ですか?
コメント1件

13
◆SEdFBOkLSw [sage]   投稿日:2016/08/29 22:54:50  ID:v+VBJ2wi.net(25)
そりゃ、ちゃんと動くか、もしくはちゃんと止まるか、がテストじゃん。
ちゃんと動くことだけテストしてどーすんだろ。

>9
このスレこういうスレなんじゃねえの?1的に。

>10
そりゃSIerのSEだからな。
コメント2件

14
デフォルトの名無しさん[sage]   投稿日:2016/08/29 22:55:06  ID:1MLmR57m.net(26)
>12
バージョンなんて何を使っても上がるだろ?w
コメント2件

15
デフォルトの名無しさん[sage]   投稿日:2016/08/29 22:55:45  ID:BFY9f7LW.net(35)
>13
システムインテグレーターヤーのシステムエンジニアの方ですか?
コメント1件

16
◆SEdFBOkLSw [sage]   投稿日:2016/08/29 22:55:57  ID:v+VBJ2wi.net(25)
自転車派とか話逸してたけど、
ちゃんと走ってちゃんと止まるまともな車検受けた車に乗る派だよ。
エンジンかかったからよしこれで行こうみたいなバカじゃない。
コメント1件

17
デフォルトの名無しさん[sage]   投稿日:2016/08/29 22:56:30  ID:BFY9f7LW.net(35)
>14
はい工数オーバー、デスマ確定、精神病んで実家タウンにさよならバイバイ
コメント1件

18
デフォルトの名無しさん[sage]   投稿日:2016/08/29 22:57:11  ID:BFY9f7LW.net(35)
>16
おまえ車検のバージョン上がったらどうすんの?
ネジのバージョンに脆弱性が見つかったけどどうすんの?
コメント1件

19
デフォルトの名無しさん[sage]   投稿日:2016/08/29 22:57:17  ID:1MLmR57m.net(26)
>13
> そりゃ、ちゃんと動くか、もしくはちゃんと止まるか、がテストじゃん。

それはある条件のときに「ちゃんと止まる」という動きをしたってことでしょ?
それは「ちゃんと動く」の中に含まれてるんだよw
コメント1件

20
デフォルトの名無しさん[sage]   投稿日:2016/08/29 22:57:51  ID:1MLmR57m.net(26)
>17
> はい工数オーバー、デスマ確定、精神病んで実家タウンにさよならバイバイ

意味がわからん。

俺は何を使ってもバージョンは上がるって言っただけなんだが?
コメント2件

21
◆SEdFBOkLSw [sage]   投稿日:2016/08/29 22:58:15  ID:v+VBJ2wi.net(25)
>14
全部内製したら良いじゃん。
割とマジで。

>15
確かにヤーはどこから来てんだろうな。
System IntEgratoRなのかねえ。
コメント2件

22
デフォルトの名無しさん[sage]   投稿日:2016/08/29 22:58:23  ID:BFY9f7LW.net(35)
Don\'t stop Don\'t stop the JavaScript♪

23
デフォルトの名無しさん[sage]   投稿日:2016/08/29 22:59:08  ID:1MLmR57m.net(26)
もしかして、バージョンが上がったときに
デスマにならないようにする方法知らないのか?

Windows 10が出たときに、Windows 10対応を
無料でやるからお前はデスマになるんだよw

24
デフォルトの名無しさん[sage]   投稿日:2016/08/29 22:59:26  ID:BFY9f7LW.net(35)
>21
はい車輪の再発明、ギルティ。リーダブルコード読んで、どうぞ。
コメント1件

25
◆SEdFBOkLSw [sage]   投稿日:2016/08/29 22:59:51  ID:v+VBJ2wi.net(25)
>18
そりゃ、リコールだよ。

>19
またすり替える。
たまたま動いてる、のに、止まったとて、「たまたま止まってる」だけじゃん。

>20
ちょっとわかるわ。
無理聞くからそうなる。
コメント1件

26
デフォルトの名無しさん[sage]   投稿日:2016/08/29 23:00:04  ID:BFY9f7LW.net(35)
>20
じゃあおまえバージョンあがったらどうすんの?誰が責任取るの?
コメント3件

27
デフォルトの名無しさん[sage]   投稿日:2016/08/29 23:00:39  ID:1MLmR57m.net(26)
>21
> 全部内製したら良いじゃん。
> 割とマジで。

内製したら、コードを修正するたびに
バージョンが上がるってことになるんですが?

まさか、中身が変わってるけど
バージョン番号が変わってないなら
同じバージョンだって言うんじゃあるまいな?w


それに比べりゃ、複数のコード修正を一括して適用して
バージョンアップするほうが、よっぽどバージョンアップの回数は少ないよw
コメント2件

28
デフォルトの名無しさん[sage]   投稿日:2016/08/29 23:01:02  ID:BFY9f7LW.net(35)
>25
1回目のブレーキは止まったけど2回目のブレーキは止まるの?100回目は?
テストした?
コメント1件

29
デフォルトの名無しさん[sage]   投稿日:2016/08/29 23:01:19  ID:1MLmR57m.net(26)
>26
今お前は誰が責任とってるんだよw

自分の胸に手を当てて考えてみろw
コメント1件

30
デフォルトの名無しさん[sage]   投稿日:2016/08/29 23:02:04  ID:BFY9f7LW.net(35)
>27
じゃあおまえ依存性の注入されたTypeScriptでバグ見つかったらどうすんの?
コメント1件

31
デフォルトの名無しさん[sage]   投稿日:2016/08/29 23:02:25  ID:BFY9f7LW.net(35)
>29
誰だろうね?

32
◆SEdFBOkLSw [sage]   投稿日:2016/08/29 23:02:54  ID:v+VBJ2wi.net(25)
>24
なんぼでも再発明したらよろしいw
フレームはアルミで、何グラム以下で、タイヤの素材は○○で、何インチで、何キロに耐えられる車輪、
は、車輪の再発明には違いないが、その車輪としては初出だからな。
コメント1件

33
デフォルトの名無しさん[sage]   投稿日:2016/08/29 23:05:29  ID:1MLmR57m.net(26)
>30
バグが見つかったときの対応は最初の契約で決まってる
多くは納品してから○週間までは無料で対応
それ移行は別途見積もりが普通

ブラウザやOSなどのバージョンアップも同じ。対応している環境はどれこれと指定して
それ以外の新しいバージョンも古いバージョンも動作保証はしない。別途見積もり。(別途契約があれば別)
もちろん動作保証しないのだからテストもしない。そもそも納品後の新しいバージョンでテストなんかできるかw
コメント1件

34
デフォルトの名無しさん[sage]   投稿日:2016/08/29 23:06:02  ID:BFY9f7LW.net(35)
>32
おう、バグのないJavaScript発明しろよ
あくしろ

35
デフォルトの名無しさん[sage]   投稿日:2016/08/29 23:06:27  ID:BFY9f7LW.net(35)
>33
無責任

36
◆SEdFBOkLSw [sage]   投稿日:2016/08/29 23:08:37  ID:v+VBJ2wi.net(25)
>27
そうだよ。
構成部品のどれがどう変わっても、ある製品には違いないよ。
ビルドナンバー違うけどね。
ビルドナンバーごとに構成管理してるっしょ。

一括適用は事故起きるよ。
こまめに何度もテストとVerUp。定期出荷するんだし。

>28
ただテストしただけのバカにそれ言ったら泣いたことあるわ。
何故2回のテストで十分か、パターン教えて、単純に考えたら120c6じゃん。ここからどう絞ったの?納品として良いの?って。
コメント1件

37
デフォルトの名無しさん[sage]   投稿日:2016/08/29 23:10:04  ID:BFY9f7LW.net(35)
>36
なるほど、それで?
コメント1件

38
デフォルトの名無しさん[sage]   投稿日:2016/08/29 23:10:47  ID:1MLmR57m.net(26)
> こまめに何度もテストとVerUp。定期出荷するんだし。

こまめに何度もテストができる状態にあれば
babel使っても、テストすりゃいいんだから
テストのコストは変わらんじゃんw
コメント1件

39
◆SEdFBOkLSw [sage]   投稿日:2016/08/29 23:11:02  ID:v+VBJ2wi.net(25)
>37
お前は印欧語祖のankとang調べとけw
コメント1件

40
◆SEdFBOkLSw [sage]   投稿日:2016/08/29 23:13:38  ID:v+VBJ2wi.net(25)
>38
だから、それじゃあbabelに依存するでしょ。
さっき言ってたけど、ブラウザのバージョン上げるけどbabel上げないとか、ポリフィル残るし無意味でしょ。
そうでなくても依存度下げてるのに意味ないじゃん。
babelが問題あったらそれこそ面倒だし、こないだもnpm自体あんなに無意味に揺れたじゃん。

何故babelにそんなにこだわんの?
コメント2件

41
デフォルトの名無しさん[sage]   投稿日:2016/08/29 23:13:48  ID:BFY9f7LW.net(35)
>39
僕は今怒ってるんだよ?君の不誠実な態度に。
ちゃんと説明して。胸に手を当ててよく考えて。

42
デフォルトの名無しさん[sage]   投稿日:2016/08/29 23:13:50  ID:1MLmR57m.net(26)
>40
アホかw

babel導入前と導入後で同じテストを流すんだよw

後々はコードを変えるかもしれんが
導入した直後はまったく一緒だ。
コメント1件

43
デフォルトの名無しさん[sage]   投稿日:2016/08/29 23:16:10  ID:1MLmR57m.net(26)
>40
> 何故babelにそんなにこだわんの?

babelを使わずに、
ES6に対応したブラウザを使って
ES6で書いてアプリコードをテストを、
古いブラウザでそのまま動かせるから。


新しいブラウザでbabelを使わずにテストをして動いているのだから
アプリのコードとテストのコードに問題がないことは証明済み。

それをbabelを使っても正しくテストが通るのだから
これに問題がないことも証明済み。
コメント1件

44
◆SEdFBOkLSw [sage]   投稿日:2016/08/29 23:16:46  ID:v+VBJ2wi.net(25)
こまめに改修のテストするのと、
こまめにやらなくても良いテストをやる羽目になるんじゃ、それこそコストかかるじゃん。
その会社が請けの金額内で勝手にやって確実なもの納品するなら良いけど、
何かあったらそれこそ入札させんよ。ライブラリに不備があり、なんて言い訳。

俺自身ずっとパッチ見てるし、そういうのも割と見つけるけどな。
コメント2件

45
デフォルトの名無しさん[sage]   投稿日:2016/08/29 23:17:09  ID:1MLmR57m.net(26)
もしこれがbabelじゃなかったとしたら、
例えば、CoffeeScriptだったとしたら、
それはブラウザでそのまま動かすことが出来ない。

だけどbabelであれば、babelを使わずに
新しいブラウザで動かすこともできる。

46
デフォルトの名無しさん[sage]   投稿日:2016/08/29 23:17:37  ID:BFY9f7LW.net(35)
お茶ペットでときめきポポロンのドラム打ってたら破裂した・・・

47
デフォルトの名無しさん[sage]   投稿日:2016/08/29 23:17:45  ID:1MLmR57m.net(26)
>44
> こまめにやらなくても良いテストをやる羽目になるんじゃ、それこそコストかかるじゃん。

意味がわからん。

アプリを修正するだろ?
テストを実行するだろ?


同じじゃんか。
コメント1件

48
◆SEdFBOkLSw [sage]   投稿日:2016/08/29 23:18:22  ID:v+VBJ2wi.net(25)
>42
同じテストを流すから何なの?
同じテストなら金掛からんの?
全く動作変わらないの?
じゃあ、何故VerUpする必要があるの?

>43
未証明。
こないだもスコープ抜けあったでしょ。
コメント1件

49
デフォルトの名無しさん[sage]   投稿日:2016/08/29 23:19:14  ID:1MLmR57m.net(26)
>44
> 何かあったらそれこそ入札させんよ。ライブラリに不備があり、なんて言い訳。

ライブラリに不備があろうがなかろうが、
テストコードが通ればOKだしテストコードが通らなければNG

テストコードが通ってもバグが有るのなら、
それはライブラリの問題じゃなくて
テストコードを書いた開発会社の問題。
ライブラリの問題じゃない。

っていうか、ライブラリにバグがあれば
テストコードは失敗するってわかってる?
コメント1件

50
デフォルトの名無しさん[sage]   投稿日:2016/08/29 23:19:40  ID:BFY9f7LW.net(35)
おまいらのノリに合わせて基地害演じるの疲れるんだけど
君たち素なの?お酒飲んでる?

51
◆SEdFBOkLSw [sage]   投稿日:2016/08/29 23:19:43  ID:v+VBJ2wi.net(25)
>47
誰が、どう、テスト結果を検収して、どうリリースノート書いて、どうリリースして、どう立ち会って、どう研修印貰うの?

動くはずだからどーぞ使ってくださいの世界じゃねえぞ。
コメント1件

52
デフォルトの名無しさん[sage]   投稿日:2016/08/29 23:20:28  ID:1MLmR57m.net(26)
>48
> 同じテストなら金掛からんの?
> 全く動作変わらないの?

お前何のためにテスト書いてるんだよw

中身が変わっても(改修を行っても)正しく動くことを
証明するためにテスト書いてるんだろw
コメント1件

53
◆SEdFBOkLSw [sage]   投稿日:2016/08/29 23:20:35  ID:v+VBJ2wi.net(25)
>49
違うわw

54
◆SEdFBOkLSw [sage]   投稿日:2016/08/29 23:21:40  ID:v+VBJ2wi.net(25)
>52
改修しても、正しく動く事を目的にテストしとんのだ。
誰のなんのどの金使うんだよそれに。
コメント1件

55
デフォルトの名無しさん[sage]   投稿日:2016/08/29 23:22:14  ID:1MLmR57m.net(26)
>51
お前IE使ってるんだよな?
IEのソースコード見れないよな?

それでテストしてるんだろ?
中身が見れなくてもテストしてるんだろ?

それと同じなんだが。テストって言うのは中身の実装に対してやるもんじゃないんだよ。
中身がどうであれテストの内容は同じものになる。

だから、お前がいう
誰がどうテスト結果を研修して〜の内容も
babelを使ったときと使わないときで何も変わらない。
コメント2件

56
デフォルトの名無しさん[sage]   投稿日:2016/08/29 23:22:46  ID:BFY9f7LW.net(35)
でもTypeScript便利だよね

57
デフォルトの名無しさん[sage]   投稿日:2016/08/29 23:23:18  ID:1MLmR57m.net(26)
>54
> 改修しても、正しく動く事を目的にテストしとんのだ。

改修しても正しく動くことを目的とした
テストが自動化されてるんだろ?

じゃあ、中身をどう変えたところで
テスト内容は何も変わらんだろ。
コメント1件

58
デフォルトの名無しさん[sage]   投稿日:2016/08/29 23:25:37  ID:BFY9f7LW.net(35)
テストって何?
あの誰も読まないテスト項目書に丸付けたあと適当にモンキーテストするやつ?
それともたまにしか通らないバグコードを増やすだけのUnitTest?
コメント1件

59
デフォルトの名無しさん[sage]   投稿日:2016/08/29 23:28:55  ID:1MLmR57m.net(26)
>58
ユニット(単体)テスト+結合テスト+統合テスト
困ったことにこれらの用語と意味する内容は
会社ごとに微妙に違う。

これらすべてが自動化されていることが理想。
特にウェブアプリは、一般的にブラウザもOSも
バージョンが頻繁に上がるから、自動化されてないとやっていけない。

ここまではbabel導入とは関係ない話な。

で、自動化されてるならば、babel導入しても
テストは変わらないんだからコストも変わらんという話をしてうr。
コメント1件

60
◆SEdFBOkLSw [sage]   投稿日:2016/08/29 23:29:05  ID:v+VBJ2wi.net(25)
>55
だから、
babelのバージョン上げる、babelでどうの、が全部要らなくなるよな。使わなければ。

使わないときと使ったときでは明らかに違うじゃん。
babelのバージョン上がったからテスト、が一切無いんだし。
babelのバージョン上げねばならん、も一切無い。
文化オリエントに依存して死んでった会社みたい。

>57
「改修しても」な。要望出した客か、不具合出した会社の「改修」が金出すわな。保守費からの間接か、スポット契約ならなおさら。
babelのテスト〜納品、検収。
これ誰の持ちだし?
コメント1件

61
デフォルトの名無しさん[sage]   投稿日:2016/08/29 23:30:14  ID:1MLmR57m.net(26)
>60
> 使わないときと使ったときでは明らかに違うじゃん。

babelを使ったときと使わないときでテストの内容は変わらん。

何を言ってるんだ?
お前はどんなテストを書いてるんだ?
それがどう変わるのか言ってみろよ。
コメント2件

62
◆SEdFBOkLSw [sage]   投稿日:2016/08/29 23:30:21  ID:v+VBJ2wi.net(25)
>55
ちなみに、IEがどうのというが、契約次第だよ。

63
◆SEdFBOkLSw [sage]   投稿日:2016/08/29 23:31:01  ID:v+VBJ2wi.net(25)
>61
テストの内容じゃなくて、テストの意味と金。
コメント1件

64
デフォルトの名無しさん[sage]   投稿日:2016/08/29 23:31:23  ID:1MLmR57m.net(26)
> babelのバージョン上がったからテスト、が一切無いんだし。

意味が全くわからん。

その理屈だとブラウザのバージョンが上がったらからテストだって一切ないよな?
コメント1件

65
◆SEdFBOkLSw [sage]   投稿日:2016/08/29 23:31:59  ID:v+VBJ2wi.net(25)
>61
続き書いてんのに、自分が理解できない事が出てきたら読めなくなる病気にでもかかってんのかな。

66
◆SEdFBOkLSw [sage]   投稿日:2016/08/29 23:32:52  ID:v+VBJ2wi.net(25)
>64
は?
babelのバージョン上がったからテスト、がなんで無いと思う?

使ってないからだよ。
コメント2件

67
デフォルトの名無しさん[sage]   投稿日:2016/08/29 23:33:10  ID:1MLmR57m.net(26)
>63
お前が言ってるテストって何のテストをしてるんだ?

普通は単体テストであれば、
関数に引数を与えて答えがちゃんと帰ってくるかなんだが、
そこに関数の中身がどうなってようが関係ないだろ。

単体テストじゃないならばもっと関数は関係ない。
アプリの動作が全く同じならば、中身が何で作られてようが
全く関係ない。
コメント2件

68
デフォルトの名無しさん[sage]   投稿日:2016/08/29 23:33:38  ID:BFY9f7LW.net(35)
>66
JavaScriptのバージョンが上がったらどうすんの?
コメント1件

69
◆SEdFBOkLSw [sage]   投稿日:2016/08/29 23:34:21  ID:v+VBJ2wi.net(25)
>67
総合テスト。

関係あるから言ってんじゃん。

70
デフォルトの名無しさん[sage]   投稿日:2016/08/29 23:34:21  ID:BFY9f7LW.net(35)
>67
でもbabelで作ってたらbabelのためにbabelのテストしないとだよね?
コメント1件

71
デフォルトの名無しさん[sage]   投稿日:2016/08/29 23:34:37  ID:1MLmR57m.net(26)
>66
お前が言ってる内容は
お前にしか通じんわw


だから他の人に聞く
> babelのバージョン上がったからテスト、がなんで無いと思う?
これの意味を説明してくれ(もし理解できる人がいるならばだ)


どうせ誰も説明できないさw
それこそ意味不明である証拠だからね。
コメント2件

72
◆SEdFBOkLSw [sage]   投稿日:2016/08/29 23:34:55  ID:v+VBJ2wi.net(25)
>68
上げない。
上げるときは、予算とってやるよ。
コメント2件

73
デフォルトの名無しさん[sage]   投稿日:2016/08/29 23:35:11  ID:1MLmR57m.net(26)
>70
> でもbabelで作ってたらbabelのためにbabelのテストしないとだよね?

いらない。というかそのテストの一例を書いてみてくれ。
コメント1件

74
デフォルトの名無しさん[sage]   投稿日:2016/08/29 23:35:45  ID:BFY9f7LW.net(35)
>59
そのテスト自動化されてる環境が、
今の日本にどれだけあると思ってるの?
コメント1件

75
デフォルトの名無しさん[sage]   投稿日:2016/08/29 23:36:18  ID:1MLmR57m.net(26)
>72
予算取るのかよ(爆笑)
コメント2件

76
デフォルトの名無しさん[sage]   投稿日:2016/08/29 23:36:37  ID:BFY9f7LW.net(35)
>71
じゃあおまえPHP使ってないだろうけど今すぐPHPのテストしてこいよ

77
デフォルトの名無しさん[sage]   投稿日:2016/08/29 23:36:49  ID:1MLmR57m.net(26)
>74
自動化されてないならば、
どうやってブラウザがバージョンアップしたときの
テストをしているのか教えてくれ。
コメント1件

78
デフォルトの名無しさん[sage]   投稿日:2016/08/29 23:36:58  ID:BFY9f7LW.net(35)
>72
銭ゲバSE
泥棒
コメント1件

79
◆SEdFBOkLSw [sage]   投稿日:2016/08/29 23:37:57  ID:v+VBJ2wi.net(25)
>71
次の行に書いてんのになぁ。

あるネジのあるロットに不備があるから、そのネジ使ってる製品全部リコール、
の、リコール対象って、ネジ使ってる製品だけじゃん。
コメント1件

80
デフォルトの名無しさん[sage]   投稿日:2016/08/29 23:38:08  ID:BFY9f7LW.net(35)
>77
みんなで手と手を取り合って愛と根性でテストするんだよ
日本の伝統文化だよ、ゲイシャフジヤマニンゲツ
コメント1件

81
デフォルトの名無しさん[sage]   投稿日:2016/08/29 23:38:36  ID:BFY9f7LW.net(35)
>75
誰の金で飯食えてると思ってるんだ、クソニートが

82
デフォルトの名無しさん[sage]   投稿日:2016/08/29 23:38:38  ID:1MLmR57m.net(26)
>79 >80
なら、そのぽちぽちとやる人海戦術のテストの前に
babelを導入すれば、テストは一回ですみますよねw
コメント1件

83
デフォルトの名無しさん[sage]   投稿日:2016/08/29 23:39:55  ID:BFY9f7LW.net(35)
>82
バベルのバージョンが上がったらどうすんの?

84
◆SEdFBOkLSw [sage]   投稿日:2016/08/29 23:40:18  ID:v+VBJ2wi.net(25)
>75
取るわwだれがタダで働くかww
>78
なんとでも言えwその代わり出した金の分はきっちり二次請けがどう泣こうが品質保証する。盲判でリリースしてないから安心して金出してくれ。
コメント1件

85
デフォルトの名無しさん[sage]   投稿日:2016/08/29 23:41:35  ID:BFY9f7LW.net(35)
>84
跋扈の範囲内なのに・・・

86
デフォルトの名無しさん[sage]   投稿日:2016/08/29 23:42:40  ID:BFY9f7LW.net(35)
>73
No 内容             期待値
1 テストデータを用意する。   正常に購入完了できること。

はいどうぞ
コメント1件

87
◆SEdFBOkLSw [sage]   投稿日:2016/08/29 23:47:14  ID:v+VBJ2wi.net(25)
>86
最悪のテスト。
テストに「正常」と言う言葉を使って、「正常となる」とテストすんなバカ。
何がどう正常かを定義してその通りだと確認すんのがテストだよ。
コメント1件

88
デフォルトの名無しさん[sage]   投稿日:2016/08/29 23:47:42  ID:BFY9f7LW.net(35)
糞社畜ども
そろそろ寝る時間だよ
明日は交通機関が止まる可能性があるんだから1h前に家を出るんだよ
台風程度で遅刻する社会不適合者のゴミ屑は上司のウンコ喰って死ぬのが
この国の伝統文化だからね
コメント1件

89
デフォルトの名無しさん[sage]   投稿日:2016/08/29 23:49:15  ID:BFY9f7LW.net(35)
>87
自分で考えろ、ガキじゃないんだから
適切なデータを用意して、正常に動作することを保証するんだよ
行間を嫁って小学校の国語の授業で習わなかったのか?
そんなの上司に質問したら張り手もんだぞ

90
◆SEdFBOkLSw [sage]   投稿日:2016/08/29 23:49:20  ID:v+VBJ2wi.net(25)
>88
さすがに1hくらい時差出勤しなよ…
コアタイムには間に合うだろ。
コメント1件

91
デフォルトの名無しさん[sage]   投稿日:2016/08/29 23:51:15  ID:BFY9f7LW.net(35)
>90
コアタイム9-18時
1時間前に出社して社屋の清掃
その1時間前に余裕を持って出社する

92
デフォルトの名無しさん[sage]   投稿日:2016/08/29 23:54:05  ID:BFY9f7LW.net(35)
君たちにはアジャイル力が圧倒的に足りない
細かい言葉の違いなんかしょうもないことを気にせずテストは気楽に
ドキュメントは書いてはいけない

93
デフォルトの名無しさん[sage]   投稿日:2016/08/29 23:56:37  ID:BFY9f7LW.net(35)
俺の貴重な夜が糞バカどもとの糞バカみたいなレスの欧州で終わった
損害賠償もんですわ
コメント1件

94
◆SEdFBOkLSw [sage]   投稿日:2016/08/29 23:59:07  ID:v+VBJ2wi.net(25)
>93
楽しかったよ。
でもお前酔ってるだろw

95
デフォルトの名無しさん[sage]   投稿日:2016/08/29 23:59:13  ID:BFY9f7LW.net(35)
aaaaaaaaaaaa今日がおわるうううううううううううううuuuuuuuuuu

96
◆SEdFBOkLSw [sage]   投稿日:2016/08/30 00:00:49  ID:aQC/u3Rc.net(2)
瑕疵の範囲かと思って、よく見たら跋扈の範囲だったのが面白かったわ。
反復横飛びじゃねえよ。

97
デフォルトの名無しさん[sage]   投稿日:2016/08/30 00:08:00  ID:vxcmsfn4.net(2)
世界広と言えども、jsでここまでしょーもない話題で盛り上がれるスレはここしかないと思う

98
デフォルトの名無しさん[sage]   投稿日:2016/08/30 00:44:53  ID:h5DGk6QO.net
本スレから分かれたのは何故?
明らかに主題と離れているから?
それとも、ワッチョイがコワいから?
コメント2件

99
◆SEdFBOkLSw [sage]   投稿日:2016/08/30 01:11:41  ID:aQC/u3Rc.net(2)
>98
俺が立てたから気に食わんのだろう。
雑談スレにすれば?
ブラウザとは全く関係のない、そして、古いJavaScriptではなく本人曰く、唯一無二の最新のJavaScriptの質問が来るまで。

100
デフォルトの名無しさん[sage]   投稿日:2016/08/30 09:36:39  ID:JoG6iYvQ.net(4)
>98
プログラマ板の趣旨からは外れているからですね。

掲示板にこのように書かれています。
別板リンク(tech)
> プログラム・ソフトの使い方はパソコン初心者板やソフトウェア板へ。
> ウイルス、ハッキング・クラッキングを求めるような発言は禁止です。
> Javascript はweb制作管理板、CGI はWEBプログラミング板へ。
> 業界談義、愚痴はプログラマー板へどうぞ。

JavaScriptは本来Web制作管理板なんですよ。
だからブラウザ専用の話がしたいならそっちでやるべき。

だけど、これが書かれたのはJavaScriptがブラウザでしか動かなかった時代の話で、
サーバーサイドJavaScriptがWeb制作管理板とは思えない。
なのでこちらは純粋に言語の話と普通のコンパイラ言語のように
ビルド周りの話に切り分けるべきでしょう。

その話をWeb制作管理板でやるのは荷が重すぎますからね。
あちらはウェブデザイナーに毛が生えたようなレベルですから。
コメント1件

101
デフォルトの名無しさん[sage]   投稿日:2016/08/30 10:31:44  ID:rnePWv6a.net(4)
ビルド周りの話?
まあそれもいいかもしれんがECMAScriptとスレタイにつけた限りは
過去のESスレのように仕様周りの話も期待させてもらうぞ。

どのみち、このスレはあまり業務向けではないな。

102
◆SEdFBOkLSw [sage]   投稿日:2016/08/30 11:56:39  ID:7P5106vD.net
>100
ビルド周りがわからんなぁ。
ES5で書いてても、node動いてるならム板でいいんじゃねえの?逆に。
ビルドするか、せずに使うかは好き好きだし。

ビルドするならブラウザの話もしても良いみたいな論調に聞こえるなぁ。

「純粋に言語の話」と「普通のコンパイラ言語」がビルドで別れてるわけでもあるまいて。
ビルドする処理系も、しない処理系も、しないけどJITな処理系もあるんだし。言語自体も、コンパイラとは全く関係ないじゃん。

「バベる話は含みます」と言いたい事言えばいいのに。
コメント2件

103
デフォルトの名無しさん[sage]   投稿日:2016/08/30 18:30:50  ID:rnePWv6a.net(4)
別に明確な線引は必要ない。
整理しなきゃならないほどレス多くないんだから。
あくまで目安よ。目安。

104
デフォルトの名無しさん[sage]   投稿日:2016/08/30 21:24:04  ID:vxcmsfn4.net(2)
>102
でもおまえbabelアンチじゃん?
コメント1件

105
デフォルトの名無しさん[sage]   投稿日:2016/08/30 21:55:39  ID:JoG6iYvQ.net(4)
>102
> ES5で書いてても、node動いてるならム板でいいんじゃねえの?逆に。
> ビルドするか、せずに使うかは好き好きだし。
そう書いたつもりですけど?

> 「バベる話は含みます」と言いたい事言えばいいのに。
babel語なんてものは存在しない。っていうかもしかして知らないの?
babelでトランスパイルするように書いたコードにbabel専用の特別な命令なんかない。
最新のブラウザであればそのまま動くコード。

> 言語自体も、コンパイラとは全く関係ないじゃん。
あんたが言ったとおり。言語自体はトランスパイラ(babel)とは全く関係ない。

JavaScrpt(=ECMAScript)の部分はブラウザでもnodeでも同じように動く。
nodeで動かないのはDOMの部分だけ。DOMの部分というのは
windowホストオブジェクト経由で参照するもの。

そもそもJavaScriptはプログラム言語なのだから、この板対応だと思うが、
なぜかム板のルールでWeb制作版に追いやられてる。
(昔はウェブ専用の簡易スクリプトでしかなかったからだと思うが)

俺としてはJavaScriptの話をム板でやるのは問題ないと思うが、
Web制作版にもJavaScriptスレは必要というのなら、
DOM関連の話をWeb制作版に持っていこうという話。
コメント1件

106
デフォルトの名無しさん[sage]   投稿日:2016/08/30 22:46:30  ID:rnePWv6a.net(4)
DOMっていうくくりが適切かは分からんけどな。
昔はDOMだったPromiseみたいにWebと関係ない独立したAPIも多いしね。
ブラウザだってWebサイトを回覧するためのものだけではなくなってて
Web自体がプラットフォーム化してる今APIで区切っても仕方ない。
コメント1件

107
デフォルトの名無しさん[sage]   投稿日:2016/08/30 22:49:09  ID:JoG6iYvQ.net(4)
> 昔はDOMだったPromiseみたいに
昔からPromiseはDOMじゃないよ。

108
デフォルトの名無しさん[sage]   投稿日:2016/08/30 22:56:53  ID:JoG6iYvQ.net(4)
そんな話聞いたこと無いので、昔のPromiseがどれのことを
指しているか知らんけど、

PromiseがJavaScriptの世界に提唱された初期の文書は
これなんだがURLからもわかるとおりCommonJSから生まれた
http://wiki.commonjs.org/wiki/Promises

CommonJSっていうのはサーバーサイドJavaScript

109
デフォルトの名無しさん[sage]   投稿日:2016/08/30 23:29:26  ID:rnePWv6a.net(4)
DOM Promiseも歴史も知らんのか。
勉強しなおしてきなさい。
コメント2件

110
◆SEdFBOkLSw [sage]   投稿日:2016/08/31 00:33:00  ID:hBi44Zvn.net(2)
>104
アンチでもないよ。
あれは処理系として数えたいだけ。
ただのAltJS。

>105
専用の命令でもあるし、汎用の命令でもあるよ。
解釈のされ方の問題だってば。

問題ないと思うが、と思うなら変な応酬も復讐まがいのこともせんと、受け入れれば良いんじゃねえの?
勝ち負けにこだわる人だこと。

>109
こいつその辺の話知らんよ。
そもそも大体殆どのものが借用語みたいな言語だって事も理解してない。
JavaScriptとは関数が一級市民で、って話も、いつぞやドヤ顔でしてたけど、
原始再帰関数もリストも知らん、lispもerlangも見たことないカスだから。

111
デフォルトの名無しさん[sage]   投稿日:2016/08/31 01:42:04  ID:mbRHTL3V.net(2)
>109
それは標準化されてない

112
デフォルトの名無しさん[sage]   投稿日:2016/08/31 01:44:35  ID:mbRHTL3V.net(2)
しかもFutureという名前

http://www.html5rocks.com/ja/tutorials/es6/promises/
> JavaScript Promise は、最初 "Future" という名前で DOM の一部として実装されていたのが、
> 後に "Promise" と改名されて、最終的に JavaScript の一部として実装されました。
コメント2件

113
◆SEdFBOkLSw [sage]   投稿日:2016/08/31 02:01:42  ID:hBi44Zvn.net(2)
>112
最初、と、最終的に、の間に何があったと思ってるんだろう。

114
デフォルトの名無しさん[sage]   投稿日:2016/08/31 08:18:41  ID:j/FYmeM2.net(2)
>112
すまんな。俺が最初に>106で要らんちょっかい書けたのが悪かった。
もう事実に関係なく意味のない、相手の意見をどうにか覆すためだけの
単なる言葉の掛け合い合戦になってるのは分かるだろう?
ここらで終わりにしようや。

115
デフォルトの名無しさん[sage]   投稿日:2016/08/31 09:31:50  ID:mxX4GOAr.net
どもまだ◆SEdFBOkLSwが納得してないようだが、

これが初期のJavaScript1.1という仕様書
http://www.planetpdf.com/codecuts/pdfs/tutorial/jsspec.pdf
この段階からDOMはJavaScriptという言語の中に入ってなかったんだよ。

それは今も変わらずで、DOMはJavaScriptの仕様の範囲に入ってないから
ブラウザがDOMを作成して、それをJavaScriptの環境から参照できるようにしている。
これがブラウザでない場合はDOMはではなく、別のものになる。

◆SEdFBOkLSwはどうも曲解してこれを認めないから聞くだけ無駄だが、
この話が違うって言いたい人いる?
コメント1件


116
デフォルトの名無しさん[sage]   投稿日:2016/08/31 12:36:42  ID:05Cg2vNV.net
すみません
親クラスのプロパティを子クラスと共有する方法は何か無いでしょうか
コメント1件

117
デフォルトの名無しさん[sage]   投稿日:2016/08/31 17:46:15  ID:j/FYmeM2.net(2)
具体的にどうぞ。
普通に考えて継承関係にあるなら共有されてるじゃん。

118
デフォルトの名無しさん[]   投稿日:2016/09/01 01:28:37  ID:G09cpOvF.net
すごい、こんな実用的なjavascriptの使い方を始めて見た

comic loスレより転載

パス:sage
http://www1.axfc.net/u/3712796
コメント1件

119
デフォルトの名無しさん[sage]   投稿日:2016/09/01 01:31:37  ID:qZMo0Rlk.net
>116
具体的なコードを書いてくれないと意味がわからない。

例えばこれはMDNから持ってきたサンプルだが、
親クラス(Animal)のプロパティ(name)を子クラスと共有している。
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Classes

class Animal {
 constructor(name) {
  this.name = name;
 }

 speak() {
  console.log(this.name + ' makes a noise.');
 }
}

class Dog extends Animal {
 speak() {
  console.log(this.name + ' barks.');
 }
}
コメント1件

120
◆SEdFBOkLSw [sage]   投稿日:2016/09/01 07:33:51  ID:yxBt3oxw.net
>115
なんでこう、曲解に曲解を重ねたり、
俺が納得するしないにこだわんのかね。

間違ってる部分が1ミリでもあるうちは、納得しないに決まってんじゃんねえ。
納得させたいのか、勝ちたいのか、認めさせたいのか、

自分の知識が不安なのかはっきりしろよ。
コメント1件

121
デフォルトの名無しさん[]   投稿日:2016/09/01 08:56:57  ID:+FVjZRJv.net(6)
>120
お前に聞いてねーよw

ほれ見ろ、誰ひとりとして俺が言ってることが
間違ってるとは言ってないじゃないかw

122
デフォルトの名無しさん[sage]   投稿日:2016/09/01 09:30:51  ID:+FVjZRJv.net(6)
ちなみに>119はChromeやFirefoxやEdgeで動く
適切なJavaScript(≒ECMAScript)コードであるが、
babelを使って古いIEなどで動かすことができる。

重要なのはこれをbabelで変換するからと言って
babel専用の構文ではない。
コメント1件

123
デフォルトの名無しさん[sage]   投稿日:2016/09/01 09:32:58  ID:+FVjZRJv.net(6)
◆SEはそれを分かってないんだと思う。

おそらく、babel専用の共通の文法から
新しいブラウザ向けにclassに変換 or 古いブラウザ向けにfunctionに
変換するんだと思っているんだろうね。

AltJSはたしかにそれに近いが、babelは
新しいブラウザ向けの構文を変換するので
babel専用の文法なんてものは存在しない。
コメント1件

124
デフォルトの名無しさん[sage]   投稿日:2016/09/01 09:51:14  ID:5kBL1onl.net
BabelHelperとかいうクソみたいな関数が自動生成されるのは俺の目の錯覚だったか

125
◆SEdFBOkLSw [sage]   投稿日:2016/09/01 11:24:18  ID:4NaaelJA.net
>123
わかってるって(笑)
専用の文法とも、専用の言語とも言ってないだろ。

ただ、babelで使うために書いたのであれば、
FireFoxで使うために書いたコードがFireFox向けに書いたコードであるのと同様に
babelで使うために書いたコードは、babel向けに書いたコードであって、ネイティブなFireFoxの為に書いたコードとは意味合いが違うって言ってんじゃん。
webpackも同じ。

専用では無いよ、babelの為に書いたコードだってば。
そういう意味で、ほかのaltJS用のコンパイラに対して書いた言語と「立ち位置」が同じなの。
コメント3件

126
デフォルトの名無しさん[sage]   投稿日:2016/09/01 19:58:52  ID:+FVjZRJv.net(6)
> ただ、babelで使うために書いたのであれば、

だから、そんなのが存在しない。
babelの存在は忘れろ。

ES6で書いてるだけだ。


知ってるか?ブラウザ内部でES6は
ネイティブコードに変換されてるんだぞ?
コメント1件

127
デフォルトの名無しさん[sage]   投稿日:2016/09/01 20:00:45  ID:+FVjZRJv.net(6)
>125
もしかしてクロスブラウザの開発をやってないの?

まさか、Firefox向けのコード、IE向けのコード
Chrome向けのコードって、完全にファイルが違うのか?
コメント1件

128
デフォルトの名無しさん[sage]   投稿日:2016/09/01 20:01:38  ID:+FVjZRJv.net(6)
> FireFoxで使うために書いたコードがFireFox向けに書いたコードであるのと同様に
> babelで使うために書いたコードは、babel向けに書いたコードであって

この理屈だと、FirefoxもaltJSと立ち位置が同じってことになるが?
コメント1件

129
デフォルトの名無しさん[sage]   投稿日:2016/09/01 20:04:32  ID:6CqO2Avn.net
誘導されてきました。

promiseのチェーンをn個動的につなげたいときはどうしたらいいの?

a().then(b).then(c).then(d);

これをこう書き
function run(a){
 return a[0]().then(a[1]).then(a[2]).then(a[3]);
}

a[] を4個固定じゃなくてn個にしたい
コメント1件

130
デフォルトの名無しさん[]   投稿日:2016/09/01 20:11:11  ID:np9Y5BfB.net
>129
ネットでググるとreduceを使った例がよく出てくるけど、
forを使った例の方がわかりやすいと思う。

// 初期値として解決済みのpromiseを入れておく、
// これはthenメソッドを使えるようにするため。
var p = Promise.resolve();

for (var i = 0; i < 10; i++) {
 p = p.then(function() {
  return a[i]();
 });
}

// ES6版
for (let i = 0; i < 10; i++) {
 p = p.then(() => a[i]());
}

ようするにp変数に入っているpromiseに対してthenを実行して作った
新たなpromiseにどんどん入れ替えていけばいい。
reduceを使ったコードはこれを単に書き換えただけ。

131
デフォルトの名無しさん[sage]   投稿日:2016/09/01 20:14:21  ID:Wbd9Msfr.net
>125
> FireFoxで使うために書いたコードがFireFox向けに書いたコードであるのと同様に
> babelで使うために書いたコードは、babel向けに書いたコードであって

babelというブラウザがあるわけじゃないんだけど?

Firefoxで使うために書いた(babelで変換する)Firefox向けのコードならあるよ。
でもbabelで使うために書いたコードなんてものはない。
babelは変換しかしないわけで、そのコードを使うのはFirefoxやChromeやIE。

そこをあんたは勘違いしてるんじゃない?

132
デフォルトの名無しさん[sage]   投稿日:2016/09/01 20:24:24  ID:gqH8EeeU.net
あ、なるほどw

◆SEdFBOkLSw は babelというブラウザの上で
実行するって勘違いしてるんだw

もしくはbabelとnodeを勘違いしてるとかだな。
コメント1件

133
デフォルトの名無しさん[sage]   投稿日:2016/09/01 20:34:43  ID:scPPFiSF.net(11)
>125
> babelで使うために書いたコードは、babel向けに書いたコードであって、ネイティブなFireFoxの為に書いたコードとは意味合いが違うって言ってんじゃん。

これがbabelで使うために書いたコード

 let func = () => console.log('hello');

これがネイティブなFirefoxのために書いたコード

 let func = () => console.log('hello');

何が違うのか教えてほしい。
コメント1件

134
デフォルトの名無しさん[sage]   投稿日:2016/09/01 21:48:08  ID:scPPFiSF.net(11)
意味合いが違うとは言ってるが
どう違うかは何も言ってない。

135
◆SEdFBOkLSw [sage]   投稿日:2016/09/01 22:01:56  ID:x5Fi8ahc.net(3)
>126
アホか。

>127
完全には違わんよ。
多少は足周りは違うな。

>128
頭おかしいのか?

>132
違うわ。お前が理解なさすぎ。

>133
処理系が違う、だな。
babelで処理したJSが実際に動かすのは、下記コードで、ES6ではない。

'use strict';

var func = function func() {
return console.log('hello');
};

匿名関数で無くなってるよね。
コメント1件

136
デフォルトの名無しさん[sage]   投稿日:2016/09/01 22:05:27  ID:scPPFiSF.net(11)
>135

これがbabelで変換して出力されたコード
'use strict';

var func = function func() {
return console.log('hello');
};


これがネイティブなFirefoxのために書いたコード
'use strict';

var func = function func() {
return console.log('hello');
};


何が違うのか?
コメント1件

137
デフォルトの名無しさん[sage]   投稿日:2016/09/01 22:12:28  ID:scPPFiSF.net(11)
もしかしてさ、テストを書いてリファクタリングして
よりシンプルに書き直して、以前と全く同じように動くコードなのに、
元のコードとは記述が違うから、そういう修正はするなって言うタイプの人なの?
コメント1件

138
◆SEdFBOkLSw [sage]   投稿日:2016/09/01 22:16:55  ID:x5Fi8ahc.net(3)
>136
それES6じゃないじゃん。正確にはES6でもあり、お前が否定していた古いJavaScriptじゃんww

$msg='hello world';
echo $msg;

が、perlなのかphpなのかは、どっちに食わすかによって決まるんじゃねえの?
何か違うか?見た目も動作も同じだけど、別物だよね。

>137
手弁当で全部終わらせるんならいいんじゃねーの?
予算使うなら、余計なことすんなって言うけど。
コメント3件

139
デフォルトの名無しさん[sage]   投稿日:2016/09/01 22:19:19  ID:scPPFiSF.net(11)
>138
古いJavaScriptだからなの?

babelで変換した結果とFirefoxがネイティブで動かすコードは
全く一緒なのに何が問題なの?って聞いてる。


重要なのは同じように動くこと(仕様を満たしていること)であって
中身の実装なんてどうでもいいでしょw

140
デフォルトの名無しさん[sage]   投稿日:2016/09/01 22:20:42  ID:scPPFiSF.net(11)
>138
> が、perlなのかphpなのかは、どっちに食わすかによって決まるんじゃねえの?
> 何か違うか?見た目も動作も同じだけど、別物だよね。


どちらもFirefoxに食わせていますよw
babelで動かすんじゃなくて
babelで変換したコードをFirefoxで動かすか、
babelで変換しないコードをFirefoxで動かすかって
話をしてるんだから。

141
デフォルトの名無しさん[sage]   投稿日:2016/09/01 22:27:03  ID:scPPFiSF.net(11)
>138
お前が何を不安がっているのかわかったわw


前提条件: どちらも同じブラウザFirefoxで動かします。

1. ES6のコードをそのままFirefoxで動かす
(※ES6のコードのテストの結果は当然問題ない)

2. ES6のコードをbabelで変換してESにしたコードをFirefoxで動かす
(※ES5のコードのテストの結果は当然問題ない)


どちらもテストでOKとでてるのに、もしかしたら
バグがあるんじゃないか?って思ってるだろw
コメント1件

142
デフォルトの名無しさん[sage]   投稿日:2016/09/01 22:40:53  ID:UGSC1Nbq.net
美しいソースを志すプログラマからしたら自動生成には美学をまるで感じない
男なら黙ってprototype
不便に堪えて手書きでNative JavaScript

という冗談はともかく、納品するスクリプトはクライアントが使うんだから変な書き方も最新の玩具も使わずにネイティブのみで分かりやすくコメント添えながら書くのが普通じゃないのか?
コメント1件

143
デフォルトの名無しさん[sage]   投稿日:2016/09/01 22:40:55  ID:Yfa1ihki.net
babelがたまたま実行結果が読めるというだけで
ブラウザみたいな巨大なブラックボックスと区別する意味がよく分からん
コメント1件

144
デフォルトの名無しさん[sage]   投稿日:2016/09/01 22:46:12  ID:scPPFiSF.net(11)
>142
ネイティブかどうかは重要じゃない。

正しく動くことが重要。
そのためにテストをするんだよ。

145
デフォルトの名無しさん[sage]   投稿日:2016/09/01 22:50:05  ID:scPPFiSF.net(11)
>143
だよね。例えば内部でES6をES5に変換してから
実行するブラウザがあったっておかしくない。

そもそもJavaScriptなんてコンパイルして
バイナリにてから動かしているわけで、
そのバイナリなんてブラウザが違ったら違うだろうし、
同じブラウザでもバージョンアップしたら違う可能性もある。

どういう変換が行われて実行されるかは大した問題じゃない。
仕様通りに動いているかが重要。

146
◆SEdFBOkLSw [sage]   投稿日:2016/09/01 23:09:24  ID:x5Fi8ahc.net(3)
>141
全然わかってねえじゃん。
コメント1件

147
デフォルトの名無しさん[sage]   投稿日:2016/09/01 23:15:55  ID:scPPFiSF.net(11)
>146
ん?ってことは、

ES6をbabelで変換してFirefoxで動かすのと
ES6をそのままFirefoxで動かすのは
全く同じだってことでいいかい?

はい か いいえ で答えてくれ。
コメント1件

148
デフォルトの名無しさん[sage]   投稿日:2016/09/01 23:21:14  ID:uGmloWI1.net
>122
細かい話だけど、extendsは古いブラウザでは完全にエミュレートされないよ。
extendsはprototypeだけでなくstaticなメソッドも継承する。
つまり、任意のプロトタイプを持つコンストラクタを作れないと行けないのだけど、
これはES2015以前ではブラウザの独自実装の__proto__を使わないと実現できない。
コメント1件

149
デフォルトの名無しさん[sage]   投稿日:2016/09/01 23:25:45  ID:scPPFiSF.net(11)
>148
完全にエミュレートできないことでバグになることはなく、
エミュレートできない機能を使っていればバグになる。
でも、それを含めてテストするわけだからね。
動かないならテストで分かる。

ブラウザ間の互換性がない問題と同じよ。
互換性がない部分があっても、テストで動けば問題ない。
コメント3件

150
デフォルトの名無しさん[sage]   投稿日:2016/09/02 00:00:38  ID:OcKaQeg4.net(2)
>149
客「IE8で動かないんだけど?」
コメント1件

151
デフォルトの名無しさん[]   投稿日:2016/09/02 00:01:45  ID:gFIXdWf6.net(21)
>150
IE8でテストしろよw

152
デフォルトの名無しさん[sage]   投稿日:2016/09/02 00:04:27  ID:gFIXdWf6.net(21)
うーん、マジで分かってない気がするわ。

テストコードっていうのは、一つ書くだけで
それをどのブラウザでも実行可能にしておくものなんだよ。
もちろん同じテストを何度も短時間で実行できる。

いろんなブラウザが有って色んなバージョンがあって
バージョンアップが頻繁なウェブの世界ではそれができてないと
やってられないでしょ?

コードを修正するたびにサポートしてる全ブラウザ
(IE8をサポートするのならIE8以上)で全部テストしてる。
コメント1件

153
◆SEdFBOkLSw [sage]   投稿日:2016/09/02 00:28:38  ID:nUqjDcPO.net(14)
>147
いいえ、だな。それは。
全く同じではない。挙動が同じでも。

>149
エミュレートできないコードを使わない、って事は、
エミュレート前提で書いてて、やっぱ違うんじゃねえの?そういう意味でもないけど。立ち位置の話は。

>152
テストコードが一つでいいわけ無いじゃん。。
単体ならいざ知らず。
コメント1件

154
デフォルトの名無しさん[sage]   投稿日:2016/09/02 00:29:55  ID:OcKaQeg4.net(2)
IE8で開いたことあるならBabelが如何に実用性が低いかくらい察しとけよ……
コメント2件

155
◆SEdFBOkLSw [sage]   投稿日:2016/09/02 00:34:20  ID:nUqjDcPO.net(14)
>154
babelでトランスパイルするために書いたJSと、webkitで動かす為のJSが、同じES6で記述するから意味論的にも同じスクリプトなんだってさw
コンパイラや実行環境の為のスクリプトじゃなくて、言語仕様で、それが同じものか決まるらしい。

意味としては前者はなんの意味もなく、立ち位置的にはAltJSの類と同じ意味のものだと思うんだけどね。
コメント2件

156
デフォルトの名無しさん[sage]   投稿日:2016/09/02 00:35:15  ID:gFIXdWf6.net(21)
>154
> 全く同じではない。挙動が同じでも。

なら挙動が同じ場合に何が問題になる?

そこだよね。挙動が同じななのに全く同じではないというだけで
問題点を今までなにも言ってない。

例えば、
var foo = function() { console.log(123) }
foo()

function foo() { console.log(123) }
foo()
は、全く同じではないと言うだろう。

そう、全く同じではないと言うだけで、
何が問題かを言わない。
コメント1件

157
デフォルトの名無しさん[sage]   投稿日:2016/09/02 00:37:02  ID:gFIXdWf6.net(21)
>153
> テストコードが一つでいいわけ無いじゃん。。

じゃあいくつ用意するんだよ?

なお普通のウェブサイトであり使うブラウザは
ユーザーが決めることなので、まったく制御できないものとする。

いくつ用意するんだよ?じゃなくて
いくつ用意してるんだよ?って聞いたほうが良いなw

158
デフォルトの名無しさん[sage]   投稿日:2016/09/02 00:41:24  ID:gFIXdWf6.net(21)
>155
> babelでトランスパイルするために書いたJSと、webkitで動かす為のJSが、同じES6で記述するから意味論的にも同じスクリプトなんだってさw

意味はどうでもいい。
重要なのは動作。

実行された結果が同じであれば、
それは正しく動くといって良い。

例えばJavaScriptは、ARM搭載したAndroidと
Intel CPUを搭載したWindowsで、
違う機械語で動くいているが、そんなこと関係ないだろ?
コメント1件

159
◆SEdFBOkLSw [sage]   投稿日:2016/09/02 00:45:42  ID:nUqjDcPO.net(14)
>156
だから、問題だとかそうじゃないって。
その問題は、babelで変な地雷踏みたくないとかそういう問題であって(それは無いと言うなら、githubで何件openあるか数えてこい)

何より単純に、目的が違うって言ってんの。
トランスパイラに任せるためのソースコードと、それ自身がネイティブで動くためのスクリプトだって。

日本語が読めない外国人のために、社内の人への翻訳依頼のための書く文書と、社外の日本語がわかる外国人に出す文書は、
例え同じフォーマットで同じ内容が書いてあって、即ち同じ文書でも、目的も意味も違うでしょ。
社内の人への文書の方は、それ単体では全く意味をなさないの。
コメント2件

160
デフォルトの名無しさん[sage]   投稿日:2016/09/02 00:46:44  ID:gFIXdWf6.net(21)
>155
> 意味としては前者はなんの意味もなく、立ち位置的にはAltJSの類と同じ意味のものだと思うんだけどね。

AltJSのAltってどういう意味か知ってる?
Altnative(代案)って意味だよ

Altnative JavascriptっていうのはJavaScriptの代案。
そしてAltJSというのは具体的に言えば、
TypeScript、CoffeeScript、Dartなどの"プログラミング言語"

はぁ〜、いいから調べてきてごらん。
AltJSっていうのは言語のことだからさ。

babelは言語ではなくてトランスパイラ。
言語はFirefoxでも動くECMAScript。
AltJSのような別言語じゃないの。

全くジャンルが違うのだから「同じ意味」になるわけないだろ
コメント1件

161
◆SEdFBOkLSw [sage]   投稿日:2016/09/02 00:51:18  ID:nUqjDcPO.net(14)
>158
どうでも良くないから言ってんじゃん。
お前が馬鹿だから同じだ、どうでもいい、なぜなら「多分同じ動きをしているから」だっていうならそうなんだろ。openの数は見えないみたいだけど。

>Androidとwindows
CPUは関係ないが、ブラウザは関係あるっしょ。
caniuseでも見てこいよ。
だからターゲット依存だって言ってんのに。

162
◆SEdFBOkLSw [sage]   投稿日:2016/09/02 00:53:33  ID:nUqjDcPO.net(14)
>160
だから、立ち位置だって言ってるじゃん。
お前ホントに馬鹿だな。

AlternativeなJavaScriptでしょ、ES6以前のJavaScriptから見れば。

AltJSは別言語?
機械語になれば同じなんでは?ww

いや、別言語だとはわかってるけど。
ES6と、古いJavaScriptも、後方互換のある別言語だけどね。
コメント1件

163
デフォルトの名無しさん[sage]   投稿日:2016/09/02 00:55:55  ID:gFIXdWf6.net(21)
>159
> その問題は、babelで変な地雷踏みたくないとかそういう問題であって(それは無いと言うなら、githubで何件openあるか数えてこい)

Issueはないな。(設置されてない)PRは66件オープンだな。
新機能もあるから問題の数が66件ではない。

バグはすごく少ないようだね(笑)


バグの話をするならブラウザにだってバグが有る
Firefoxのバグがいくつあるか調べてごらん。
https://bugzilla.mozilla.org/describecomponents.cgi?product=Firefox

あんた他人のバグを言い訳にするんじゃないよ。何のためにテストしてる?
ブラウザやOSにバグが有ったって、その上で正しく動くアプリを
作れないと仕事にならんのだよ。
コメント1件

164
デフォルトの名無しさん[sage]   投稿日:2016/09/02 01:01:16  ID:gFIXdWf6.net(21)
>162
> だから、立ち位置だって言ってるじゃん。

「立ち位置」ってなんだよ?

全く違うものを並べて「立ち位置は同じ」ってお前が主張しているが
その立ち位置が同じである条件はなんだ?

その条件は世間一般に広く認められたものなのか?
お前が自分で作ったオレオレ条件だろ。


俺は言葉の定義通りの話をしている。
AltJSはJavaScriptではない言語のこと。
ES6はJavaScriptだし、babelは言語ですら無い。

> 162
> AltJSは別言語?
> 機械語になれば同じなんでは?ww

また話をすり替えようとしてるな。
俺がいつbabelが機械語になると言ったんだよ?

JavaScriptもAltJSは最終的に機械語になる。
だがbabelは言語ではないのだから機械語にならない。

俺はAltJSは言語であり、babelは言語ではないと言ってる。
コメント1件

165
◆SEdFBOkLSw [sage]   投稿日:2016/09/02 01:06:04  ID:nUqjDcPO.net(14)
>163
Issue無かったわwこれは俺が悪い。勘違いしてた。
プルリクにfixesは結構あったけど。

ブラウザのバグを把握するために、LTS使うんだけど。
俺は別に言い訳にはせんよ。むしろ、請けが言い訳できない様にその辺は抑えてる。
そんな当たり前の事言われても困るわ。
だからブラウザごとに違うソースが一部でもあるんじゃん。さっき言ったけどさ。

166
◆SEdFBOkLSw [sage]   投稿日:2016/09/02 01:11:01  ID:nUqjDcPO.net(14)
>164
何度も言ったけどさぁ。

全く違うのは、中身だろ。
意味は同じく、古いJavaScriptにトランスパイルするんじゃん。

立ち位置としては、JavaScriptのソースコードを出力するためのなんらかのコンパイラだよ。
C#のコンパイラもvb.netのコンパイラも、.netのコード吐くためのコンパイラ。

AltJSのソースコードと、babelの為に書いたソースコードが同じだとは言ってないでしょ。
babelは言語ですらない、ってそれそうだよ。ES6のトランスパイラだよ。
tscと同じようなもんだ、って言ってんの。
トランスパイラだから、そのためのソースコードであって、ネイティブのES6とは目的が違う同じ書式の、扱われ方の違う物だってばさぁ。
コメント2件

167
デフォルトの名無しさん[sage]   投稿日:2016/09/02 01:13:32  ID:gFIXdWf6.net(21)
> ブラウザのバグを把握するために、LTS使うんだけど。
ChromeのLTSってどれだ?

エンドユーザーが使うブラウザは指定できない。
例えばAmazonやGoogleはどうしてる?
ブラウザ指定してるか?

> だからブラウザごとに違うソースが一部でもあるんじゃん。さっき言ったけどさ。

それは全体の何%ぐらいだ?
コメント1件

168
デフォルトの名無しさん[sage]   投稿日:2016/09/02 01:16:19  ID:gFIXdWf6.net(21)
>166
> 全く違うのは、中身だろ。
> 意味は同じく、古いJavaScriptにトランスパイルするんじゃん。

だから、中身が違っても
動作が同じなら問題ないだろって話をしてる。

なんで中身を拘るんだよ。
中身の話をすれば、babel以前に
IEとFirefoxとChromeでもぜんぜん違うだろ。

中身がぜんぜん違っても、同じ動作をするようにしないといけないんだよ。
その手めにテストコードが有って、そのテストコードにより
同じ動作をすることが保証されている。

テストコードで同じ動作をすることが保証されているんだから、
中身を変えることに何の問題も発生しない。

論理的な結論がこれ。

お前は、中身が違ってるだろ(どん!)で話が終わってる。
問題があるか無いかまで話を続けろよ。
コメント1件

169
◆SEdFBOkLSw [sage]   投稿日:2016/09/02 01:17:05  ID:nUqjDcPO.net(14)
>167
chronium+自社パッチ。

Amazonとグーグル?
ポリフィルまみれな上にブラウザごとに違うソース吐いてなかったっけ?
逆アプローチであって、決して「同じソースでなんとかする」って発想じゃないよ。

なんで%聞かれんのかわからん。それで何が知りたいの?
どう計数してもイチャモンつけられるのが目に見えてるわ。コード量でもファイル数でもステップ数()でも。

170
◆SEdFBOkLSw [sage]   投稿日:2016/09/02 01:19:59  ID:nUqjDcPO.net(14)
>168
えー。中身が違っても問題ないなら、ES6使用禁止で古いブラウザで、ブラウザごとにソース書いて、babel禁止でもいいって事なの?

中身にこだわってはないよ。お前の認識が間違ってる(と言うか、最初にbabelはAltJSと同じ立ち位置、に噛み付いてきた)だけであって、
問題があるかどうかは問題ですらないんだよ。

中身が違ってるというか、お前の理解力が足りなすぎる。
コメント1件

171
デフォルトの名無しさん[sage]   投稿日:2016/09/02 01:20:00  ID:gFIXdWf6.net(21)
>166
> AltJSのソースコードと、babelの為に書いたソースコードが同じだとは言ってないでしょ。
> babelは言語ですらない、ってそれそうだよ。ES6のトランスパイラだよ。
> tscと同じようなもんだ、って言ってんの。

AltJSは言語だ。
babelは言語ではない。「ES6のトランスパイラ」だ
tscは「TypeScriptという言語」のトランスパイラだ

AltJSとTypeScriptはどちらも言語なのだから同じようなものだが、
TypeScript(言語)とtsc(トランスパイラ)は同じようなものではない。
同じようにbabelはtscと同じようなものであって、TypeScriptと同じようなものではない。
コメント1件

172
デフォルトの名無しさん[sage]   投稿日:2016/09/02 01:22:46  ID:gFIXdWf6.net(21)
>170
> えー。中身が違っても問題ないなら、ES6使用禁止で古いブラウザで、ブラウザごとにソース書いて、babel禁止でもいいって事なの?

なんで中身が違っても問題ないって話をしているのに、
お前はまた中身の話をしているんだ?

古いブラウザであっても、テストが通って問題なく動くのであれば
中身が違っていても問題ないのは当たり前だろ。
なんで中身まで全く一緒にしようとしてるんだ?

そもそも全く同じコードじゃ動かないって話をお前はしただろ。
だから中身をブラウザごとに違うコードにしてまで、同じ動きをするようにするんだろ?

ならば中身がどんなに変わろうが、同じ動きをするのであれば
問題ないと言ってる俺の話も理解できるはずだが?
コメント1件

173
◆SEdFBOkLSw [sage]   投稿日:2016/09/02 01:23:30  ID:nUqjDcPO.net(14)
>171
だから、
babelは言語ではない。「ES6のトランスパイラ」だ
tscは「TypeScriptという言語」のトランスパイラだ

「ES6のトランスパイラ」で処理されるためのJavaScriptソースがある、
「tscは「TypeScriptという言語」のトランスパイラ」で処理されるためのソースがある。

トランスパイラで処理されるためのソースがある。

それらのソースは、トランスパイラで処理されるためのものである。

おわかり?
コメント1件

174
デフォルトの名無しさん[sage]   投稿日:2016/09/02 01:23:45  ID:gFIXdWf6.net(21)
> 最初にbabelはAltJSと同じ立ち位置、に噛み付いてきた)だけであって、
babelはトランスパイラ、AltJSは言語

全然立ち位置が違う。

tsc(トランスパイラ)とTypeScript(言語)が立ち位置が同じと言っているようなもん

175
デフォルトの名無しさん[sage]   投稿日:2016/09/02 01:25:11  ID:gFIXdWf6.net(21)
>173

> 「ES6のトランスパイラ」で処理されるためのJavaScriptソースがある、

それはどんなJavaScriptソースなんだ?
ここに具体的なコードを書いてみろ。
コメント1件

176
◆SEdFBOkLSw [sage]   投稿日:2016/09/02 01:25:31  ID:nUqjDcPO.net(14)
>172
理解はしてるよ。
中身が同じにこだわるのは、
「一つの言語で云々、babelというのはなんに対しても最新のJavaScriptが使えるもの」ってお前の発言に則って話してるから、
それを否定するなら俺としてはありがたい話だ。

177
◆SEdFBOkLSw [sage]   投稿日:2016/09/02 01:27:24  ID:nUqjDcPO.net(14)
>175
そりゃ、ES6だよ。
let func = () => console.log('hello');

ただ、目的としてはトランスパイラにかけるためのソースなだけで。
だから、目的論なの。
>159の後半な。
コメント1件

178
デフォルトの名無しさん[sage]   投稿日:2016/09/02 01:27:51  ID:gFIXdWf6.net(21)
170 返信: ◆SEdFBOkLSw [sage] 投稿日:2016/09/02(金) 01:19:59.68 ID:nUqjDcPO [9/11]
> 中身にこだわってはないよ。

176 名前: ◆SEdFBOkLSw [sage] 投稿日:2016/09/02(金) 01:25:31.37 ID:nUqjDcPO [11/11]
> 中身が同じにこだわるのは、


↑ こいつ頭大丈夫か?w

中身にこだわってないと言ったくせに
ほんの6レスで中身が同じにこだわってるwww

179
デフォルトの名無しさん[sage]   投稿日:2016/09/02 01:28:54  ID:gFIXdWf6.net(21)
>177

> let func = () => console.log('hello');

そのコードはどの部分が、

「ES6のトランスパイラで処理されるため」になってるんだ?
コメント2件

180
◆SEdFBOkLSw [sage]   投稿日:2016/09/02 01:29:42  ID:nUqjDcPO.net(14)
>179
お前敢えて誤読してるか理解してないフリしてんの?
それともマジでバカなの?

181
◆SEdFBOkLSw [sage]   投稿日:2016/09/02 01:30:47  ID:nUqjDcPO.net(14)
あきれるわ。おやすみ。

182
デフォルトの名無しさん[sage]   投稿日:2016/09/02 01:31:21  ID:gFIXdWf6.net(21)
>179
俺は

「ES6のトランスパイラ」で処理される、ES6のコードと
「ES6のトランスパイラ」で処理されない、ES6のコードの

違いが何かってことを聞いてるんだよ。

183
デフォルトの名無しさん[sage]   投稿日:2016/09/02 01:37:01  ID:gFIXdWf6.net(21)
ES6のコードはES6に対応してない古いブラウザに対応するときにだけbabelで変換する必要があるのであって、

ES6に対応しているブラウザではそのまま動かせるって分かってないのかな?
babelを通すか通さないかの違いは、それぞれのブラウザで動作するかどうかの
テストコードが有って、それで保証されるから何の問題もない。

中身が変わるだけで(中身にはこだわりません)
動きが変わってなければ(テストで保証する所)何も問題ない。

babelは言語ではなくトランスパイラであって
言語はES6。このES6はブラウザでネイティブに動く言語
その他のAltJSはブラウザでネイティブに動かない言語

だから、AltJSとES6は「同じ言語というカテゴリで比較すると「立ち位置が違う」と言えよう。
なおAltJS(言語)とbabel(トランスパイラ)はそもそもカテゴリが違う。

184
デフォルトの名無しさん[sage]   投稿日:2016/09/02 03:38:22  ID:kWkQROgW.net
漫画喫茶のダイス(DICE)を運営してるのはベルシティ(ザ シティ)というパチンコ店です。
ザ シティ・ベルシティ伊勢佐木町店(神奈川県)の周りにはソープランドがたくさんあります(ソープランド街です)。
このパチンコ店は韓国人か中国人が経営者の可能性があります(パチンコ店のほとんどは韓国人が経営してます)。
ザ シティ・ベルシティ伊勢佐木町店の周りには韓国料理店がたくさんあり、数キロ先には横浜中華街があります(韓国人、中国人がすごく多い地域です)。
普通はこんな場所に店を出さない気がします。

DICE系列 関東圏4 /ネットカフェ板


ダイス(DICE)=まんがランド(漫画喫茶)=ちょっと気分転館(漫画喫茶)=ねっとラボ=ベルシティ(ザ シティ)というパチンコ店


パチンコ店のほとんどは韓国人が経営してます

185
デフォルトの名無しさん[sage]   投稿日:2016/09/02 12:34:18  ID:n2lhI+0z.net
>149
違う。普通はテストに引っかかる前でも後でも、
互換性のない部分で問題ないように書こうねということになる。
つまり使えるのはちょっとES2015に近いaltJSであって、
ES2015フルに使っていい状況で作るのとは大きく違う。
コメント1件

186
デフォルトの名無しさん[]   投稿日:2016/09/02 22:23:40  ID:gFIXdWf6.net(21)
>185
> 互換性のない部分で問題ないように書こうねということになる。

それはbabelを使わなくても、やってることだろ?

babelが対象とするのはECMAScriptの部分でDOM APIは対象外。
特定のブラウザでしか使えないAPIに比べれば
互換性がない部分は遥かに少ない。

その互換性がない部分っていうのはES6の部分なんだから・・
おまえ、普段ES6のコード書いてないだろ?

お前はES6のコードを書かないように気をつけている。
それに比べれば書かないように気をつけるコードはほんの僅かだよ。   
互換性がない所はES5で書けば良いんだしね。
コメント1件

187
デフォルトの名無しさん[sage]   投稿日:2016/09/02 22:25:51  ID:gFIXdWf6.net(21)
ざっと見る限りbabelとES6で互換性がない点は全体の1%程度だよ。

知らずに書いてしまうことはほとんどありえない。

188
デフォルトの名無しさん[]   投稿日:2016/09/02 22:34:24  ID:gFIXdWf6.net(21)
★SE 曰く、

中身が違うからポリフィルは使ってはいけない。
動作が同じになるように作られていたとしても
中身が違うからポリフィルは使ってはいけない。

また、MSが実装したPromiseも使ってはいけない。
PromiseはFirefoxが作ったものが唯一の本物であり、
中身が違えば動作が同じでも別物である。
コメント1件

189
デフォルトの名無しさん[sage]   投稿日:2016/09/03 05:16:03  ID:N47o0j5/.net(17)
>186
Proxyが非対応でSymbolやWM周りが非常に気をつける必要がある時点で1%じゃ済まないね。
>>それはbabelを使わなくても、やってることだろ?
やらないし。もうモダンブラウザはほぼ100%対応してるのだから。
実質8割のbabelとは全然全然違う。
おまえ、普段ES6のコード書いてないだろ?
コメント1件

190
デフォルトの名無しさん[sage]   投稿日:2016/09/03 08:43:25  ID:GDuT1yRG.net
レスバトル案の定自演だった

191
デフォルトの名無しさん[]   投稿日:2016/09/03 10:02:38  ID:1nvmVGqX.net
>189
ならそれだけ使わなければいいだけだろ?w

babelを使わない場合に、Proxyが使えるのか?
コメント2件

192
デフォルトの名無しさん[sage]   投稿日:2016/09/03 10:08:49  ID:EZVA2rF2.net(102)
> Promiseで実行指定した処理群内部では
> タイマー関連を使えないのでしょうか?
使える。

> これが使えないならば、WebWorkerでも極力使わない方が良い様に思います。

タイマー関連が使えるかどうかが、WebWorkerとどう関係があるのか
さっぱりわからん。

まず前提として以下のような制限がある。

https://developer.mozilla.org/ja/docs/Web/API/Web_Workers_API/Using_web_wor...
> 例えば、Worker 内から直接 DOM を操作することはできません。また window
> オブジェクトのデフォルトのメソッドやプロパティで、使用できないものがあります。

そして以下にはsetTimeoutはWorkerの中で使えると書いてある。

https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Functions_...

193
+ JavaScript の質問用スレッド vol.122 +の73[sage]   投稿日:2016/09/03 10:41:23  ID:e3VOV86p.net(2)
此方に来ましたか。 お返事ありがとうございます。

Promiseは非同期処理群の処理と認識しています。
WebWorkerは単発の非同期処理と思っています。
WebWorkerはタイマーの稼働・停止の一連の処理を処理内部でまとめているのに対して
Promiseは非同期処理群の処理中ならば
タイマーの稼働・停止を別の処理で対応出来るかと思っていました。

Promiseの指定した処理群の個々でタイマーの稼働・停止が必要ならば
WebWorkerと同じ感じで作れば良いのかな。

Promiseは未使用なので、VS2015の実装状況を確認してから試してみます。
コメント2件

194
デフォルトの名無しさん[sage]   投稿日:2016/09/03 10:53:57  ID:EZVA2rF2.net(102)
> Promiseは非同期処理群の処理と認識しています。
それ自体は間違ってはいない。
だけど重要なのはJavaScript自体はシングルスレッドということ

まずJavaScript(≒ECMAScript)自体にスレッドを扱う機能はない。
setTimeoutやXMLHttpRequest とかはブラウザが提供する機能であり、
その内部ではスレッドが使えるし、使っている。
そしてこれらの機能からイベントと言う形で処理の状況を知ることができる。

イベントは通常コールバックを使うことで知ることができるが、
Promiseっていうのはコールバックの一部である「処理が終了したというイベント」を
容易に扱えるようにしたもの。

終了したと言うイベントというのは「setTimeoutで指定した時間が過ぎた」とか
XMLHttpRequestであれば「HTTPリクエストが完了した」とかいうイベント。
なので、HTTPリクエストが10%完了、20%完了という進捗状況をPromiseで知ることは出来ない。
コメント1件

195
デフォルトの名無しさん[sage]   投稿日:2016/09/03 10:58:35  ID:EZVA2rF2.net(102)
WebWorkerというのはブラウザが提供する機能で
JavaScriptでスレッドを使うものとざっくり言われているが、

正確に言えば、JavaScriptではスレッドが使えないのは変わらずで、
ブラウザが新たなスレッドを作って、そのスレッドの環境内で
新たなJavaScriptを実行するというのが正しい。

WebWorkerの作り方なんてこんなんだしねw
> var myWorker = new Worker("worker.js");

他の言語のスレッドの作り方を知ってると、
JavaScriptファイルを指定するとか、なんじゃこりゃ?って思うよw


そして、メインのJavaScriptと、Workerで作ったスレッドとは
postMessageを使って通信することができる。
メッセージの内容は自由だから、どんなやり取りでもできる。

196
デフォルトの名無しさん[sage]   投稿日:2016/09/03 11:03:08  ID:EZVA2rF2.net(102)
>193

> Promiseは未使用なので、VS2015の実装状況を確認してから試してみます。

Promiseは別にVS2015で実装されてるかどうかを考える必要はないよ。
動かすブラウザがPromiseの機能を持っているかどうかだから。

そしてPromiseは純粋なJavaScriptの範囲で実装できるのでJavaScriptライブラリが存在する。
jQueryライブラリ導入のようにPromiseライブラリ導入すればよい。

そももブラウザが持ってるPromiseの機能は最低限のものなので
それを拡張して便利なメソッドを追加したbluebirdが使われることも多い。
http://bluebirdjs.com/docs/getting-started.html

197
デフォルトの名無しさん[sage]   投稿日:2016/09/03 11:04:45  ID:EZVA2rF2.net(102)
>193

で、ここまで説明したんだが、

> WebWorkerはタイマーの稼働・停止の一連の処理を処理内部でまとめているのに対して
> Promiseは非同期処理群の処理中ならば
> タイマーの稼働・停止を別の処理で対応出来るかと思っていました。

それはこれが意味不明だからなんだわw

そもそもの前提知識がずれてるよって話。

198
デフォルトの名無しさん[sage]   投稿日:2016/09/03 11:16:01  ID:EZVA2rF2.net(102)
違う方面から説明をすると、

ある処理をする関数があったとして「その処理をWebWorkerを使って実行する。」
というのは文章として成り立ってる。

だけど「その処理をPromiseを使って実行する。っていうのは文章としておかしい。
Promiseっていうのは単に終了イベントを知るためのものだから。

ある処理をする関数があったとして、その関数はPromiseオブジェクトを返す。
その処理の終了はPromiseの仕組みで知ることができる。
というのであれば文章として問題ない。
従来は処理の終了をコールバックを使って判断していた。

199
193[sage]   投稿日:2016/09/03 11:20:58  ID:e3VOV86p.net(2)
>194-195
説明ありがとうございます。

WebWorkerは自分で書いてみた事が有ります。 入門書片手ですが。
入門書でメッセージの構成が明確でなかったので、苦労しました。
Promiseの動作確認は、現在有るWebWorkerの処理の塗り替えでやってみます。

ありがとうございました。

200
デフォルトの名無しさん[sage]   投稿日:2016/09/03 11:35:38  ID:EZVA2rF2.net(102)
> Promiseの動作確認は、現在有るWebWorkerの処理の塗り替えでやってみます。

そこがなんかずれてるんだよねw
PromiseかWebWorkerか じゃないんだよw

スレッドを使う方法としては、2通りの方法があって、
WebWorkerを使うか、WebWorkerを使わないか。

WebWorkerを使わないでスレッドを使うっていうのは、
WebWorker以外のブラウザの機能、つまりsetTimeoutやXMLHttpRequestが
内部で使ってるスレッドを使うって意味ね。

で、これらとPromiseは全く別の概念。Promiseは処理の終了処理を
コールバックよりも容易に判定したいだけ。

だから、XMLHttpRequest + Promise (Fetch APIがまさにこれ)や
WebWorker + Promiseという組み合わせで使うんだよ。

WebWorkerからは通常postMessageを使って処理をやり取りするんだけど、
その部分(new Worker部分まで含めて)を関数やクラスでラッピングしてPromiseを返すことで
「内部で別スレッドを使って非同期で処理してその結果をPromiseで知ることができる」
と言うものを作ることができる。
コメント1件

201
◆SEdFBOkLSw [sage]   投稿日:2016/09/03 12:00:04  ID:o5roFWxE.net(2)
俺は、どれが悪でどれが善って話はしてないんだよなぁ。

>188
Promiseがどうの、誰かどうの、じゃ無くて。
中身が違えば動作が同じでも別物である、の着眼点の違いがわかったわ。
ブラックボックスを許さないし、違うのであれば、その違う部分が同じ動きをする保証が必要である、それは、「ほぼ同じ」では無意味で「完璧に全く同じ」と保証されないといけない、
故に完璧に同じだと保証する工数が無駄なので、ポリフィルは使わない。ポリフィルのバージョンアップに追従する価値は余計にない、
だな。
要はその程度の開発だってことだろ、Webってのは(笑)
コメント2件

202
◆SEdFBOkLSw [sage]   投稿日:2016/09/03 12:01:39  ID:o5roFWxE.net(2)
>200
イベントドリブンに最初からしておけば、Promiseなんか要らんのだけどな。
何を発火させて何をリッスンするかの違いに落ち着くんだけど。
コメント1件

203
デフォルトの名無しさん[sage]   投稿日:2016/09/03 12:18:31  ID:EZVA2rF2.net(102)
>202
> イベントドリブンに最初からしておけば、Promiseなんか要らんのだけどな。

実現できるか? 実現できないか?
だけで判断するのは未熟な証拠。

Promiseはコールバックでもできることを別の形で実現したもの。
必須か必須でないかの話をするならば、最初から必須ではない。
Promiseは可読性とメンテナンス性を上げるための道具なんだから。

だからお前がしたり顔で「要らんのだけどな」って言ったところで
俺は最初からそれは知ってるとしか言いようがない。

無くてもできると言うのを踏まえた上でみんな話をしてるのに、
あんたはその話をする最低ラインに到達していない。

204
デフォルトの名無しさん[sage]   投稿日:2016/09/03 12:20:20  ID:EZVA2rF2.net(102)
>201
> ブラックボックスを許さないし、違うのであれば、その違う部分が同じ動きをする保証が必要である、それは、「ほぼ同じ」では無意味で「完璧に全く同じ」と保証されないといけない、

じゃあ、お前、IEとChromeとFirefoxは
ブラックボックスで、同じ動きをするという保証もないけど、
どうすんの?

OSの違いもあるし、今はAndroidで機種ごとに
微妙に動き違うんだけど?

お前、そんなんで仕事できるの?
「俺はIEでしか仕事できません!」じゃ
仕事にならなんからねw

205
デフォルトの名無しさん[sage]   投稿日:2016/09/03 12:22:20  ID:EZVA2rF2.net(102)
Webはその程度って言うけど、
Webは多くのブラウザやOSに対応するのが絶対条件なんだが、
何を持って「Webはその程度」って言ってるの?

顧客の条件が、多くのブラウザやOSといった
ブラックボックスの環境に対応することなんだけど?

お前は「その程度」のことも出来ないの?
コメント1件

206
◆SEdFBOkLSw [sage]   投稿日:2016/09/03 13:38:12  ID:WfmCkwdk.net(15)
何を反射的に噛み付いてるかわからん。
俺も知ってるから使わんのだよ。
それが読み取れない時点でお前がついてこれてなくない?

IEもFireFoxもChromeも全然ブラックボックスじゃないじゃんw
お前がなんのソースも読んだことなければ、MSと保守契約結んだこともなさすぎて笑えるわ。
iOSのバージョンやAndroidごとに動き違うね。だから、社用には決まった機種を使うんだよ。
そんなんで仕事できるよ。

>205
お前のレベルをもって、その程度、って言ってるんだよ。
コメント1件

207
◆SEdFBOkLSw [sage]   投稿日:2016/09/03 13:44:41  ID:WfmCkwdk.net(15)
一回、このアホがどれくらいの規模の物を商品として作ったのか聞いてみたいわ。

208
◆SEdFBOkLSw [sage]   投稿日:2016/09/03 13:48:52  ID:WfmCkwdk.net(15)
まぁいいや。
こいつの言うのが何であれ、なんの意味も成さんな。
実務ゼロっぽいし。

209
デフォルトの名無しさん[sage]   投稿日:2016/09/03 13:57:18  ID:EZVA2rF2.net(102)
>26
へ? IEのソースコード公開されてないよ?
保守契約結んでもIEのソースは公開されない。

つーかソースコード開示する契約があるとしたら
それは保守契約じゃないしwww


> iOSのバージョンやAndroidごとに動き違うね。だから、社用には決まった機種を使うんだよ。
それはお前が決められることじゃない。
客が決めること。

客が世の中で使われているスマホの9割に対応するって言ったら
それに対応しないといけないんだよ。

で、どうするの? お前は出来ないの?w
コメント1件

210
デフォルトの名無しさん[sage]   投稿日:2016/09/03 13:57:46  ID:EZVA2rF2.net(102)
わかると思うけど、>26じゃなくて>206あてね。

211
デフォルトの名無しさん[sage]   投稿日:2016/09/03 13:59:56  ID:EZVA2rF2.net(102)
それから、babelで変換したとしても変換したコードは見れるし、
babel自体もオープンソースなので、全然ブラックボックスではありませんね
ブラックボックスってどこから出てきたのでしょうか?w
コメント1件

212
◆SEdFBOkLSw [sage]   投稿日:2016/09/03 14:02:05  ID:WfmCkwdk.net(15)
>209
結んでから言ってねw

後半。
違うよ。要件定義ってそうじゃない。
対応してほしいなら、どの機種のどれに対応して欲しいか明確じゃないと。
保証できない事を約束できないっしょ。
お前、マとしての実務以前に、要件定義すらしたことないの?
9割って、一体何だ?w
コメント1件

213
◆SEdFBOkLSw [sage]   投稿日:2016/09/03 14:03:10  ID:WfmCkwdk.net(15)
>211
お前は本当に馬鹿だな。
それはブラックボックスとは関係なく、中間層の話だろ。
議題が変わると混乱するタイプの話かな。
コメント1件

214
デフォルトの名無しさん[sage]   投稿日:2016/09/03 14:13:08  ID:EZVA2rF2.net(102)
>212
> 対応してほしいなら、どの機種のどれに対応して欲しいか明確じゃないと。
普通は、IE9以上、Edge、Chrome、Firefoxとかだな。
Edge、Chrome、Firefoxに関しては短期間でバージョンアップするので
固定するようなことはしないし、できない。

一例をあげるとこれぐらいの頻度で更新されてる。1ヶ月に1回だな。
https://ja.wikipedia.org/wiki/Google_Chrome
48.0.2564 2016-01-20
49.0.2623 2016-03-02
50.0.2661 2016-04-13
51.0.2704 2016-05-25
52.0.2743 2016-06-02
53.0 2016-06-02

> 保証できない事を約束できないっしょ。
> お前、マとしての実務以前に、要件定義すらしたことないの?

保証できないことは約束しない。当たり前のことなんだが?
お前開発したときよりも1ヶ月あとにリリースされるバージョンで動作するかどうやって保証するんだ?
なんでもかんでも保証するなよ。保証しませんの一言でおしまいだろ。


> 9割って、一体何だ?w
は? 世の中に存在するスマホの機種の9割に対応するってことだけど?
OSで言えば、iOS8以上 + Android 4.0以上とか。
これ実際に仕事で大手企業から言われた条件な。
お前、スマホ対応とかの仕事できないだろw
コメント1件

215
デフォルトの名無しさん[sage]   投稿日:2016/09/03 14:14:40  ID:EZVA2rF2.net(102)
>213
> それはブラックボックスとは関係なく、中間層の話だろ。

ブラックボックスって言い出したのはお前だろ?w
お前の言うブラックボックスはどこなんだって話。

babelはブラックボックスではないと確定しました。

はい、で?お前は何がブラックボックスだって?
コメント1件

216
デフォルトの名無しさん[sage]   投稿日:2016/09/03 14:24:14  ID:EZVA2rF2.net(102)
そういやソースコード見るために、MSと保守契約(笑)の話もあったな。
こっちは恥ずかしくてスルーするんだろうなw
コメント1件

217
◆SEdFBOkLSw [sage]   投稿日:2016/09/03 14:26:12  ID:WfmCkwdk.net(15)
>214
普通とか別に要らないよw

Edgeに関しては撒くKBでコントロールできる、
FireFoxはLTS
ChromeはChronium
で固定できるし、してるよ。

その後の保証が要るなら保守契約結んでもらうだけじゃん?
こっちが保証するのは、要件定義どおりに決めた結果でしかないし、検収印もらったらそれで良い話。

世の中に存在するスマホを全部列挙してもらわないと、その9割なんか定義できんだろ。
iOS8以上、なら俺も発注出すな。

>215
うん、得体のしれないポリフィル、に対して言ってた。
読めば良いだけ、なら、そんな工数無駄なので、作れば良いだけ。
お前はなんのソースも読まずに、これで大丈夫だ!なぜならこれが最新のもので、オープンソースのグループによって更新されてるから、って態度なんだけど。

218
デフォルトの名無しさん[sage]   投稿日:2016/09/03 14:26:14  ID:bZbzbaoD.net
面白いのが居るね。
制御系をやらせてみたいなwww
コメント2件

219
◆SEdFBOkLSw [sage]   投稿日:2016/09/03 14:28:46  ID:WfmCkwdk.net(15)
>216
ソースコード見ると言うよりも、
動かん、スペックシート送れって言ってみ?
無駄の多いMSDNみたいなクソみたいなの送ってくるから。
それでもおかしいとなると、人間よこせ、確認しろって言って、
確認後KB作ってくれるよ。
.net 2.0になりたての頃よく呼んだ。
いずれにせよ、ソースを見ずに、中身は理解できるし、おかしければ治る。

まぁ、そんなことした事ないんだろうけど(笑)
コメント1件

220
デフォルトの名無しさん[sage]   投稿日:2016/09/03 14:36:29  ID:EZVA2rF2.net(102)
> Edgeに関しては撒くKBでコントロールできる、
俺をどうやってKBでコントロールする気だ?w
ウェブの世界っていうのは世界中の人間を相手にしてる。

コントールするのは不可能という大前提がある。
この大前提は、お前の一存で決めることは不可能な絶対条件。

お前にはこの世界の仕事は無理だよw

> その後の保証が要るなら保守契約結んでもらうだけじゃん?
> こっちが保証するのは、要件定義どおりに決めた結果でしかないし、検収印もらったらそれで良い話。

だからbabel使って変換したソースコードが、こっちが保証しているブラウザで
動けばそれでおしまいってだけなんだが?お前が言っていることの範囲内だろ。

当たり前だがbabelはソースコードを変換するだけで納品物は変換されたソースコードだ。
だからbabelが勝手にバージョンアップすることはない。babelが原因で動かなくなることはない。


> 世の中に存在するスマホを全部列挙してもらわないと、その9割なんか定義できんだろ。
Andorid 4.0以上のスマホという条件があれば、全部列挙することはできるだろw
その作業をどちらがやるかは客と相談して決めること。

> うん、得体のしれないポリフィル、に対して言ってた。
ポリフィルはすべてソースコード公開されてるから
ブラックボックスじゃないなwwww

で、ブラックボックスって何の話?w
コメント1件

221
デフォルトの名無しさん[sage]   投稿日:2016/09/03 14:37:53  ID:EZVA2rF2.net(102)
>218
> 面白いのが居るね。
> 制御系をやらせてみたいなwww

制御系は特許の塊だから、ブラックボックスのまま
使う必要があるだろうね。


ブラックボックスだから保証できません!
だからブラックボックスの環境では仕事できません!
じゃだめなんだよね。

ブラックボックスがあるという前提で
どこまで保証できるか?できないかを
はっきりさせるのが仕事。
コメント1件

222
◆SEdFBOkLSw [sage]   投稿日:2016/09/03 14:38:54  ID:WfmCkwdk.net(15)
>218
死屍累々だぞこの調子だと。
でも未だに業界的に変なの動いてるからな。
俺もCバスはそろそろ捨ててほしいと思うが、思うだけであって実際問題は金かかるからな。リプレイス待ち案件。
そういうのを見た上で、それでも、彼は最新のコードを使えば大丈夫だと思っているに違いないよ。

>220
うん、だから、イントラの話しであって、Webの話じゃないじゃん。
で、その上で、お前の開発への考え方聞いて、Webってそんなもんなんだな()って言ってんの。理解できる?

ブラックボックスじゃない、は読んだあとわかるんだよね。それまでは依然としてブラックボックスだよ。
読む工数は誰かくれんの?
コメント2件

223
デフォルトの名無しさん[sage]   投稿日:2016/09/03 14:39:52  ID:EZVA2rF2.net(102)
>219
> 確認後KB作ってくれるよ。

いや、KB作って終わりじゃないだろ・・・・

ウェブの世界では多くの人と環境を相手してる。
という変えられない絶対条件があるんだよ。

その条件で仕事しないといけないの。
KBあればばっちりだ!じゃない。それを世界中の人に使わせないことには
お前のやり方じゃ仕事できんだろ。つまりそのやり方は破綻してるんだよ。

224
デフォルトの名無しさん[sage]   投稿日:2016/09/03 14:42:29  ID:EZVA2rF2.net(102)
>222
> うん、だから、イントラの話しであって、Webの話じゃないじゃん。

だからお前は「ウェブ程度」のことができないって結論なの。
一度世界中の人と環境を相手に仕事してごらん?w

> ブラックボックスじゃない、は読んだあとわかるんだよね。それまでは依然としてブラックボックスだよ。
> 読む工数は誰かくれんの?
何を読む工数?

ChromeやFirefoxはブラックボックじゃなくて
お前はそれを読んでるんだろ?
その工数を誰かがくれたんだろ?

マッチポンプかw


ブラックボックスは駄目だ!ソースコード読まなきゃ!
→ ソースコード読む工数は誰がくれるんだ!

じゃあブラックボックスでやれよw
コメント1件

225
◆SEdFBOkLSw [sage]   投稿日:2016/09/03 14:42:49  ID:WfmCkwdk.net(15)
客と相談して決める事なら、決めた結果が要件定義に反映する内容であって、
9割、が要件じゃないような。

納品はバベったコード、で、改修させてえらい工数見積もられたことあるな。
即切ったわ。

>221
NDAさんはどこ行くんだよ。
コメント2件

226
◆SEdFBOkLSw [sage]   投稿日:2016/09/03 14:45:38  ID:WfmCkwdk.net(15)
>224
Web程度、って言うほどの事でもないような。
Web屋には一目置いてるけど、結局こういう精神性なのか、と残念に思ってる所だけど。
世界中の人は相手にしてるよ。割と。

FireFoxとchromeは読んでるよ。いわば環境じゃん。
コメント1件

227
デフォルトの名無しさん[sage]   投稿日:2016/09/03 14:46:43  ID:EZVA2rF2.net(102)
>225
> 客と相談して決める事なら、決めた結果が要件定義に反映する内容であって、

はぁ。いっつもこいつそうだよ。

俺が以下の文脈で「相談」って言ったら、

> Andorid 4.0以上のスマホという条件があれば、全部列挙することはできるだろw
> その作業をどちらがやるかは客と相談して決めること。

その「相談」だけを抜き出して、別の意味で使うんだよ。

卑怯だよねw



> 客と相談して決める事なら、決めた結果が要件定義に反映する内容であって、
> 9割、が要件じゃないような。

9割は客が決めた要件。相談して決めていない。俺が言って「相談」とはAndoroid4.0以上のスマホの列挙作業を誰がやるかだ。

228
デフォルトの名無しさん[sage]   投稿日:2016/09/03 14:48:21  ID:EZVA2rF2.net(102)
>226
> FireFoxとchromeは読んでるよ
その工数は誰が出してると思ってるんだ?

じゃあ、FirefoxでPromiseを定義している
ソースコードはどれだい?みたいな質問に
答えられるはずだよな。

一応証拠として聞いておこうか?
コメント1件

229
デフォルトの名無しさん[sage]   投稿日:2016/09/03 14:48:57  ID:EZVA2rF2.net(102)
言っとくが読むっていうのはファイルを探すことじゃないぞ
その中身まで理解していなければ読んだことにはならない。

230
◆SEdFBOkLSw [sage]   投稿日:2016/09/03 14:49:16  ID:WfmCkwdk.net(15)
知財かどうかなんて、APIが知財かどうかすら関係するんだから、弁理士弁護士案件だろ。
ブラックボックスのまま、ってどういう事かわからん。
エラッタかどうか挙動を確かめる行為すら、既に解析行為だろ。
コメント1件

231
デフォルトの名無しさん[sage]   投稿日:2016/09/03 14:50:05  ID:EZVA2rF2.net(102)
>225
> 納品はバベったコード、で、改修させてえらい工数見積もられたことあるな。

なんでだ? babelは単なるES6なんだが?

そのES6のコードをbabelで変換せずに
納品すればいいだけじゃねーかw
コメント1件

232
◆SEdFBOkLSw [sage]   投稿日:2016/09/03 14:50:24  ID:WfmCkwdk.net(15)
>228
何の噛みつき方かわからんよ。
そりゃ業務知識だからほいほい言うわけないじゃん。
コメント1件

233
デフォルトの名無しさん[sage]   投稿日:2016/09/03 14:50:48  ID:EZVA2rF2.net(102)
>230
> 知財かどうかなんて、APIが知財かどうかすら関係するんだから、弁理士弁護士案件だろ。
> ブラックボックスのまま、ってどういう事かわからん。

そもそもお前が、ブラックボックスって話を始めたよな?

マッチポンプかwwww
コメント1件

234
デフォルトの名無しさん[sage]   投稿日:2016/09/03 14:51:38  ID:EZVA2rF2.net(102)
>232
> そりゃ業務知識だからほいほい言うわけないじゃん。

Promiseのソースコードがどれかって質問しただけで、
業務知識(?)なんか聞いてませんよw
コメント1件

235
◆SEdFBOkLSw [sage]   投稿日:2016/09/03 14:51:58  ID:WfmCkwdk.net(15)
>231
請け先に言えw
babel変換元を納品してないが故に、うち用にも使ってる社内ライブラリがうんぬん、その当時のうんぬん、で結果そうなったんだよ。
バイナリ書かせてる時代にはよくあった話だけど、またこれかと。
コメント1件

236
◆SEdFBOkLSw [sage]   投稿日:2016/09/03 14:52:14  ID:WfmCkwdk.net(15)
>233
お前頭おかしいだろ。

237
◆SEdFBOkLSw [sage]   投稿日:2016/09/03 14:52:38  ID:WfmCkwdk.net(15)
>234
仕事で調べたことは、会社の資産な。
コメント1件

238
デフォルトの名無しさん[sage]   投稿日:2016/09/03 14:53:23  ID:aPmwwe34.net(3)
>222
> Cバス
脱線するが、君はそっち系なのか?酷く懐かしすぎる名前だが。
新商品なんて出てるのか?母艦が手に入らないと思うが。
コメント1件

239
デフォルトの名無しさん[sage]   投稿日:2016/09/03 14:53:30  ID:EZVA2rF2.net(102)
>235
> babel変換元を納品してないが故に、うち用にも使ってる社内ライブラリがうんぬん、その当時のうんぬん、で結果そうなったんだよ。

はぁ? それって実行ファイルのバイナリ(exeファイル)だけを納品して
ソースコードを納品してないという、ちゃんとした仕事をしてない所に
ありがちな話ってだけじゃねーか。

それは明らかにbabelの問題じゃねーよw
コメント1件

240
デフォルトの名無しさん[sage]   投稿日:2016/09/03 14:57:15  ID:EZVA2rF2.net(102)
>237
> 仕事で調べたことは、会社の資産な。
それは違うぞw

データベースの著作権の話でもぐぐれ。

内容が非公開情報であるとか特殊な条件が揃わない限り、
それは会社の資産にはならない。

(当然オープンソースのChromeのソースコードは非公開ではない)
コメント1件

241
◆SEdFBOkLSw [sage]   投稿日:2016/09/03 14:57:18  ID:YIu9WVDu.net(31)
>238
80年生まれのくせにそのへん触れるか故にオッサン扱いされてるけど、
機械から人体から得体のしれない設備まで手広く通信周りやってるよ。

手に入らんから困るんよ。もう共食いも良いところだよ。
捨てないで!ってアナウンスするレベル。
コメント2件

242
デフォルトの名無しさん[sage]   投稿日:2016/09/03 14:59:04  ID:EZVA2rF2.net(102)
まあなんてていうか、

◆SE って変化させる能力が
極端に劣ってるみたいねw
コメント1件

243
◆SEdFBOkLSw [sage]   投稿日:2016/09/03 15:00:35  ID:YIu9WVDu.net(31)
>239
babelのせいじゃない?うん、まぁ、その会社がbabelをつかったせい、であってbabelに罪はないのは確かだよ。
だから、ネイティブでES6で書くか、古いJavaScript書くかどっちかにして、って話なんだけど。

>240
それは著作権というか、それこそ知財の問題であって、
そうじゃなくて俺なり社内のだれなりが工数使って調べたことは、資産なの。
お前働いた事無いの?
コメント1件

244
デフォルトの名無しさん[sage]   投稿日:2016/09/03 15:01:00  ID:EZVA2rF2.net(102)
>241
え? Cバスの中身、ブラックボックスじゃなくて
全部知り尽くしてるんでしょ?
自分で作れば良いんじゃないですかねぇw
コメント1件

245
◆SEdFBOkLSw [sage]   投稿日:2016/09/03 15:01:30  ID:YIu9WVDu.net(31)
>242
そりゃ、敢えて変化させないからな。
それで良いと思ってるよ。

246
◆SEdFBOkLSw [sage]   投稿日:2016/09/03 15:01:54  ID:YIu9WVDu.net(31)
>244
誰がどの金で?
お前バカなの?
コメント1件

247
デフォルトの名無しさん[sage]   投稿日:2016/09/03 15:02:36  ID:EZVA2rF2.net(102)
>243
> だから、ネイティブでES6で書くか、古いJavaScript書くかどっちかにして、って話なんだけど。

ネイティブでES6を書くという結論でいいだろw


そして納品してから1ヶ月後にな、やっぱり古いブラウザでも動かしたいって
客に言われたらな、そんときにbabel使って変換してやれば良いんやで?
コメント1件

248
デフォルトの名無しさん[sage]   投稿日:2016/09/03 15:02:47  ID:aPmwwe34.net(3)
>241
ちなみにCバスにこだわる理由は?
まあ色々便利だとは聞いているが、保守部品なら仕方ないとして、新規商品で使う必要はない。
今時ならarduinoなりラズパイみたいな奴にに仕込んでイーサで通信する方が楽なはずだが。
コメント1件

249
デフォルトの名無しさん[sage]   投稿日:2016/09/03 15:03:41  ID:EZVA2rF2.net(102)
>246
馬鹿はお前だ。

ブラックボックスが嫌なら金がかかる。
金がかからないならばブラックボックスのままでやる

ブラックボックスのままテストをしっかりやれば
それで十分だって話をしてるんだよ。
コメント1件

250
デフォルトの名無しさん[sage]   投稿日:2016/09/03 15:05:42  ID:EZVA2rF2.net(102)
俺は、ブラックボックスを許さないと言ったお前の>201の発言を
否定しているだけ。

つまりお前は金がかかるからブラックボックスのままでやるんだろ?
コメント1件

251
デフォルトの名無しさん[sage]   投稿日:2016/09/03 15:07:52  ID:EZVA2rF2.net(102)
つーか組み込み系でもCバスを使った製品の中身が
変わることだってあるんだが。
同じ製品であっても、中身を変えることがある。

中身にこだわるな。中身が違っていたとしても、
テストに合格すればそれは問題ない。
コメント1件

252
◆SEdFBOkLSw [sage]   投稿日:2016/09/03 15:09:41  ID:YIu9WVDu.net(31)
>247
え?うん、ネイティブで動くものに対してES6で書くことは全く否定してないけど、どしたの?

やっぱり古いブラウザで動かしたい、は多分断るな。
余程言われても、babelは使わずに直すと思うよ。

>248
新商品で積極的には使わないよ。
リプレイスするなら新しい組込の仕様品あるからそっちで構築するんだけど、
2台壊れたから!とかそう言うの多い。
法改正で制度上この数値が残らないと困るからこれだけDBに残して!とか。
上的にはSIになったから単位だけ、で改修受けたのがマズったなって思ってるとのこと。
Cバスにこだわると言うより、何故か他社製旋盤に相乗りしてる、とか、いにしえの何かがあるらしいよ。自分が幼児の頃の歴史を紐解いて良いもの出てきた事無いから積極的には聞かん。
コメント2件

253
◆SEdFBOkLSw [sage]   投稿日:2016/09/03 15:12:09  ID:YIu9WVDu.net(31)
>249
しっかりやれば、が定義できないじゃん。
見た目上、データ上正しければそれは正しいデータだ、って言う根拠。

>250
逆。
金がかかるから、ブラックボックスを使わんのだよ。
コメント1件

254
◆SEdFBOkLSw [sage]   投稿日:2016/09/03 15:12:51  ID:YIu9WVDu.net(31)
>251
何を言うてるかわからん。
ソリューション売りしてんだよ。
コメント1件

255
デフォルトの名無しさん[sage]   投稿日:2016/09/03 15:18:04  ID:EZVA2rF2.net(102)
>252
> やっぱり古いブラウザで動かしたい、は多分断るな。
> 余程言われても、babelは使わずに直すと思うよ。

そのコスト誰がだすん?w

babel使ったら簡単に対応できる。
テストコードがあるからそのテストを通せば良い。
babelはブラックボックスではないがブラックボックスと考え
中身がどうなっても、テストが動けば良い。そうだろう?
いざとなったら中身を確認することもできる。

どうせ古いIEへの対応でIEはブラックボックス
IEとFirefoxとChromeで動きも違う。バージョンごとで動きも違う。
ホワイトボックスとして扱うことはコストの点から実質不可能。

問題はコストだよ。最新のES6を使ってコストを減らせ
babelを使えば古いブラウザに対応するコストも減らせる。

256
デフォルトの名無しさん[sage]   投稿日:2016/09/03 15:18:46  ID:EZVA2rF2.net(102)
>254
> 何を言うてるかわからん。

他の人に聞きたい。

> ソリューション売りしてんだよ。

↑これ何を言うてるか分かる人おる?w

257
デフォルトの名無しさん[sage]   投稿日:2016/09/03 15:19:58  ID:EZVA2rF2.net(102)
>253
> 金がかかるから、ブラックボックスを使わんのだよ。

じゃあ、ブラックボックスがあったら、
それに相当するものを自分で作るわけですよね?

その金誰が出すの?w



はぁ、ブラックボックスがあるという
絶対変えられない世界に生きてるって分かってないのかな?
IEやWindowsのソースコードは保守契約結んでも見れません(笑)

258
デフォルトの名無しさん[sage]   投稿日:2016/09/03 15:20:23  ID:EZVA2rF2.net(102)
> やっぱり古いブラウザで動かしたい、は多分断るな。
能力がないから

259
デフォルトの名無しさん[sage]   投稿日:2016/09/03 15:23:04  ID:aPmwwe34.net(3)
>252
なるほど何となく状況は想像がついた。回答ありがとう。

260
デフォルトの名無しさん[sage]   投稿日:2016/09/03 15:23:16  ID:EZVA2rF2.net(102)
古いブラウザ古いブラウザっていうけど、
最新のSafari 9でもArrow functionsに対応していない。
http://caniuse.com/#feat=arrow-functions
書いてあるSafari 10はまだリリースされてません

261
デフォルトの名無しさん[sage]   投稿日:2016/09/03 15:25:34  ID:EZVA2rF2.net(102)
最新のブラウザだけを相手にする場合でも
このブラウザはこのES6の機能に対応している?していない?
って考えて特定のブラウザのために使うのをやめるよりも

babel使ってES6の機能はどのブラウザでも使える。
ただし一部完璧じゃないものがある。

って考える方がはるかにコストが低いんだわ。


Android 4.0以上という要件だと、それらの
ブラウザを全部集めないとテストできないからね。

262
◆SEdFBOkLSw [sage]   投稿日:2016/09/03 15:50:53  ID:YIu9WVDu.net(31)
「簡単に対応が出来る」
ようわからんな。
対応はできてもテストの金がかかる事は否定しないとか。

メンツの勝負になってない?
そういうメンツの勝負であれば、お前の勝ちで良いけど。

ホワイトボックスとして扱う事はコスト上不可能、ってそれくらいのコストしかかけない製品作んないから良いんだよ。
変な言い方で、敢えて語弊のある言い方すると、
高いほう、全て内製が良いとすら言われる製品だからお前がいってる製品とは多分だいぶ違うので、その辺の予算とは乖離あると思うわ。
ただその金の根拠は必要だけど。

内製良いよ。ライブラリに左右されんから。
コンパイラと処理系自体すら昔は作ってたしな。
そろそろまた元号でテキトーにやってる会社は死に目見るだろうし。
コメント2件

263
デフォルトの名無しさん[sage]   投稿日:2016/09/03 15:53:21  ID:EZVA2rF2.net(102)
>262
> 対応はできてもテストの金がかかる事は否定しないとか。

そこはbabelと関係ないからだよ。
babelを使っても使わなくてもテストはしないといけないだろ。
テスト内容自体は同じ。
コメント1件

264
デフォルトの名無しさん[sage]   投稿日:2016/09/03 15:53:47  ID:EZVA2rF2.net(102)
>262
> 内製良いよ。ライブラリに左右されんから。
そのコストは誰が出すと思ってるんだ?w
コメント1件

265
◆SEdFBOkLSw [sage]   投稿日:2016/09/03 15:57:26  ID:YIu9WVDu.net(31)
>263
え?うん。
なら、最初から使わずに書けばいいんでは?って話だけど。
>264
客。

あのさあ、何が言いたいの?
babelは完璧なES6で、AltJSとは一線を画す物だ、とエヴァンジェリスト気取りたいなら、それでいいよ。
もうその話題には触れん。
何が自分の苛立ちの原点なの?否定されたところ?正しいと思ってるところが理解されないところ?
コメント3件

266
デフォルトの名無しさん[sage]   投稿日:2016/09/03 15:58:34  ID:EZVA2rF2.net(102)
>265
> なら、最初から使わずに書けばいいんでは?って話だけど。
図式化しないと理解できんのかな?w


[ 開発 ] + [ テスト ]

テストは同じ。開発はbabelを使ったほうが簡単になる。

267
デフォルトの名無しさん[sage]   投稿日:2016/09/03 15:59:48  ID:EZVA2rF2.net(102)
>265
> babelは完璧なES6で、AltJSとは一線を画す物だ、とエヴァンジェリスト気取りたいなら、それでいいよ。

だからbabelはトランスパイラ。言語はES6(JavaScript)
AltJSとはJavaScriptではない言語のことなんだから
その言葉自体が間違ってんの。

268
デフォルトの名無しさん[sage]   投稿日:2016/09/03 16:00:56  ID:EZVA2rF2.net(102)
>265
なに? コストは客が払うだって!
ならbabel使ってもコストは客に払わせばいいじゃないかw

もっともbable使ったほうがコストは下がるけどな。

269
デフォルトの名無しさん[sage]   投稿日:2016/09/03 16:04:48  ID:EZVA2rF2.net(102)
どうせbabelはES6に完全対応してないと言ってくるだろうから
先に反論しておくと、最新版Safariも完全対応してないw

ブラウザごとにコードを変えるっていうのはコストがかかる。
どうせ客がコストを払うから知ったことじゃないっていうんだろうけどさw

ブラウザがバージョンも含めればたくさんあって
ウェブの世界では特定のブラウザとバージョンを指定できないのだから
使用されているほぼ全てに対応しないといけない。

それごとにコードを変えるなんてやってられないので、
babelを使う。babelを使うとそれぞれのブラウザの差が減る。
そのため単一のコードで多くのブラウザに対応できるのでコストも減る。

どうせコストは客が払うから、いくらかかっても
知ったことじゃないって考えの人にはわからないかw

270
デフォルトの名無しさん[sage]   投稿日:2016/09/03 16:16:36  ID:EZVA2rF2.net(102)
◆SE に言っておくけど、
お前、頭の固いおっさんに育ってしまったな

リアルで誰も言ってくれないだろうから俺が言ってあげるよ。
お前は子供の頃誰もが、ああはなりたくないと思ってる
頭の固いただのおっさん。

変化することをやめ、挑戦することをやめ、
現状維持。これ以上何もしたくない。

そういう、頭の固いおっさん。

271
◆SEdFBOkLSw [sage]   投稿日:2016/09/03 16:30:32  ID:P8EZ6WkE.net(5)
研究開発は、研究開発費でしてるけどね。
変化させない事と、変化させる事、ひいては、運用する事、改善する事は全部ひとつながりだけど、全部それぞれが違うよ。

何かを変化させない事が別の何かを変化させることだったり、何かを変化させて何かを変化させない事もあるし、
そんな革新、革新!と騒いでも、何が革新か自体よくわからなくなるよ、そのうち。

今まであった物に、新しい名前をつけると割としっくりくるようなもんと同じ。今俺が何ヤジってるかはわかると思うけど。

272
デフォルトの名無しさん[sage]   投稿日:2016/09/03 16:35:14  ID:EZVA2rF2.net(102)
◆SE が今度は研究開発とか
また関係ない話をしだしたぞw

お前と話をしてると話がまとまらないって
よく言われるだろwww

273
デフォルトの名無しさん[sage]   投稿日:2016/09/03 16:36:40  ID:EZVA2rF2.net(102)
俺が言ってるのは、◆SE 自身に
変える能力がないってこと。

個人の能力だよ。

あ、だから変えるのは研究所とかがやってくれることで
俺には関係ないって発想につながってるのかwww
コメント1件

274
◆SEdFBOkLSw [sage]   投稿日:2016/09/03 16:40:21  ID:P8EZ6WkE.net(5)
そもそも、立ち位置の問題であって、
それは処理系作ってた人間が一番わかってんだけどなぁ。
同じ正しいCのソースでも何でコンパイルするかで割と意味が違ったり、そのチューニング、このコンパイラだと無意味だからオプティマイザにまかせましょ、みたいな話に近い。
そのうち、C++が出来て、でもまだCへのトランスパイラで、そのうち、STLだ、いや、これは標準になったんだ、って無駄なやりとりがあった時代を知らんのだろうな。俺もリアルタイムじゃないけど。
コメント1件

275
◆SEdFBOkLSw [sage]   投稿日:2016/09/03 16:41:21  ID:P8EZ6WkE.net(5)
>273
知らんがな。。どんな仕事をしてるんだ、と言うから仕事の話をできる範囲で話したんじゃん。

個人的には色々しとるよ。

276
◆SEdFBOkLSw [sage]   投稿日:2016/09/03 16:43:51  ID:P8EZ6WkE.net(5)
その上で、最初の方のレスに戻るけど、
そういう先端()の人間が殲滅すべきものはbabelであって、babel無けりゃ古いブラウザも死んでいくんじゃねえの?本来死んでる物を活かすからそうなるんじゃねえの?みたいな話してたんじゃん。
だからネイティブで書くことには何の問題も無いって言ってるんだけど。
コメント1件

277
◆SEdFBOkLSw [sage]   投稿日:2016/09/03 16:44:46  ID:P8EZ6WkE.net(5)
なんかプライド傷つけたんならすまんな。
そんじゃ。
コメント1件

278
デフォルトの名無しさん[sage]   投稿日:2016/09/03 16:46:08  ID:EZVA2rF2.net(102)
>274
> 同じ正しいCのソースでも何でコンパイルするかで割と意味が違ったり、

やっぱり、同じソースでC言語の仕様の範囲なのに、
コンパイルされた結果が違うから動作まで違うんですよね?w

でもbabelはES6で書いたコードをES5に変換するだけです。
だから動作は同じです。
コメント1件

279
デフォルトの名無しさん[sage]   投稿日:2016/09/03 16:46:40  ID:EZVA2rF2.net(102)
>277
プライド? 傷ついたのはお前じゃね?

お前、俺が傷つくようなこと言ってないじゃんw

280
デフォルトの名無しさん[sage]   投稿日:2016/09/03 16:52:59  ID:EZVA2rF2.net(102)
>276
お前はネイティブで書きたいから、古いブラウザに対応するために
ES5でコードを書くって言ったばかりじゃんw

じゃあ今まさにそのES5のコードは増えていってるわけで、ES6へ変化できないってことになる。
えとさ、コードをES6用に書き換えるのにもコストは掛かるんだよ。
どうせ金は客が出すからって考えなんだろうけど。

babelを使っていれば、今すぐES6ネイティブでコードを書ける。
ES5の対応を切るのはbabelでES6からES5への変換プリセットをOFFにするだけでいい。

babelを使っていれば、ES6をブラウザでネイティブに動かす対応は一瞬で終わる。(当然だがテストは常に行われている)
それがAltJSとは全然立場が違うって話に繋がる。
AltJSで書けば、AltJSの設定をOFFにしても動かずコード書き換えが必要だからね。

重要なのは今ES5のコードを減らすこと。
対応ブラウザをどうするかは顧客の要求できまることだから
こっちがあれこれ言えることではない。

281
デフォルトの名無しさん[sage]   投稿日:2016/09/03 17:16:40  ID:AuZUWRpv.net
少なくともブラウザのソースを見ないと!っていうのは愚の骨頂だな

282
デフォルトの名無しさん[sage]   投稿日:2016/09/03 17:32:29  ID:EZVA2rF2.net(102)
その言い方だとまたトンチンカンなレスしてきそうだがw

283
デフォルトの名無しさん[sage]   投稿日:2016/09/03 17:48:47  ID:N47o0j5/.net(17)
>191
使わなければいいという返しが来るとは思わなかった。
君はアレだね。できればES6で書きたいな、でも古いブラウザのしがらみから抜けられないな、
全く使えないよりも使える方がマシ、だから悪くなりようがないという考えなのだろう。

もちろんそれもあるよ。でもね、状況は動いてるのよ。
2016年になるまでなら、対応途中のモダンブラウザも含めて、できるだけ対応させるという
1つのより良くするための解でしか無かったけれど、
今ES6対応ブラウザが出揃ってきた状態でその中で対応を広げる役目としてのbabelを考えると、
億劫な点が出てくるというのは分かるだろう?

勘違いしてほしくないけれど、babalが悪いと言ってるんじゃないよ。
babelで生成されるコードのレベルが、ES6の時代なので書きま〜すっていう意気込みとは合わないってこと。

それでここからが大事な点になるのだけど、
babelのES6からの乖離は部分部分で見ると確かに小さい。SymbolやProxyを除いたとして、
それらを寄せ集めるともしかしたら1%と言えるくらいしかないのかもしれない。
でもね、各ブラウザstable版に機能が実装されていく時は、基本的には安定した機能が丸ごと有効になるわけで、
機能があるかないか程度にしか気にしなくていいのよ。

でもね、babelのように細かな非互換が多いと、
それは開発版ブラウザに機能が実装されてる最中で、フラグで有効化してES6の振る舞いを実験していた
1年前の状態さながらなのよ。
コメント1件

284
デフォルトの名無しさん[sage]   投稿日:2016/09/03 17:49:36  ID:N47o0j5/.net(17)
>191
1年前でもフラグを全て有効にすれば、世にあるES6対応度テストでは9割以上取れていた。
でもね、じゃあ今年に入ってから俺がES5以前気にしないで書いたコードが1年前のそのブラウザで動くかというと、
精々8割くらいしか動かないと思う。そういう意味で、babelのコードは8割といったのよ。

babalを使っていれば常に最新を追えるような感覚もするかもしれない。
それは、確かに今ES2017以上の機能をES2016対応実装向けのコードとして書きだした場合は正しい。
でもね、今ES2015のしっかりした実装がある中、ES5向けにコードを書き出す場合と言うのは、
何時までたってもハッカーが時期早々と揶揄されながら開発版ブラウザでフラグを有効にして、
不安定で未完成なES6で遊んでいた2016年より前のもやもやしていた状況のままだということ。

つまり時代遅れなのに時期早々感を負わないといけないという欠点があるわけ。
もちろんbabelが悪いわけではないし、対応を広げたいという前提のもとでなら、babelを使うという結論しかない。ES6はオマケなわけだ。
でも、モダンで良いコードを書きたいという気持ちが強いなら、古く取り残された環境を切り捨てる勇気も必要だと思う。

切り捨てるのはまだ早いと思うかも知れないが、意外とそうでもない。
IE8以前をJS OFFと同じとみなして、もう2段階くらい設定してプログレッシブ・エンハンスメントをするということがあるが、
ES5対応環境もピンからキリまで広くなりすぎたし、ここらで思い切ってJS OFF側にまとめて、
ES6対応以降のモダンなブラウザとの二極にするというのはある案だと思っているし、俺のところは今年度からそうしてる。
コメント3件

285
デフォルトの名無しさん[sage]   投稿日:2016/09/03 18:08:14  ID:EZVA2rF2.net(102)
>283
あんたは重要な点を見落としているね。

あんたが言っているのはすべてbabelを使わなうても当てはまることなんだよ。

ブラウザ間の互換性は完璧ではない。
あるブラウザには搭載されていて、あるブラウザには搭載されていない。
そういう機能がある。

babelはその機能の差を減らすものでしか無い。


話は単純。
1. ブラウザの間での違いはあるしなくならない。(もちろんbabelを使わない場合の話)
2. babelを使わないならばブラウザ間での違いが大きい。
3. babelを使うとブラウザ間の違いが減る。

これを前提の話をしよう。

286
デフォルトの名無しさん[sage]   投稿日:2016/09/03 18:13:17  ID:EZVA2rF2.net(102)
babelを使うとブラウザ間の違いが減る。
という前提で話をすると、

ES6を完全に搭載していないブラウザが多く使われている今は
babelによって、その機能の差が大きく減る。

そしてその次はES2016、ES2017と話は進んでいく。
当然今のブラウザはES2016、ES2017の対応は少ないだろう。
ある時それらに対応したブラウザが一つだけでた。

となるとやっぱりブラウザの間の違いがでてくる。
そしてまた新しい仕様がでてきて、それに対応しているのはどれ?
という状況がずっと続く。

ブラウザの数は多い。バージョンアップの頻度も高い。
だからブラウザ任せでは機能の差を埋めることは難しい。
そこでbabelがでてくる。babelを使うことで機能の差は減る。

287
デフォルトの名無しさん[sage]   投稿日:2016/09/03 18:16:26  ID:EZVA2rF2.net(102)
>284
> でも、モダンで良いコードを書きたいという気持ちが強いなら、古く取り残された環境を切り捨てる勇気も必要だと思う。

モダンで書くよりも重要なのは、今あるブラウザで動かすこと。
そしてその次が開発コストを下げること。

多種多様なブラウザを相手にしていたら開発コストは下がらない。
だからbabelを使ってブラウザ間の違いを減らして
コストを下げることが重要になる。

その次だよモダンで書くことでコストを下げるという理由がくるのは。
優先順位は低い。だからbabelで対応していないものは使わないと言う
選択肢が当然成り立つ。

そして「babelで対応していない機能」は「babelを使わなくてもブラウザが対応した時」に使えばよかろう?
ES6の機能をすべて使うことが目的じゃないんだからさ。

288
デフォルトの名無しさん[sage]   投稿日:2016/09/03 18:18:01  ID:EZVA2rF2.net(102)
>284
> ES6対応以降のモダンなブラウザとの二極にするというのはある案だと思っているし、俺のところは今年度からそうしてる。

Safari最新版はアロー関数に対応していないんだが?
コメント1件

289
デフォルトの名無しさん[sage]   投稿日:2016/09/03 19:21:50  ID:N47o0j5/.net(17)
>288
Safariはモダンブラウザに含めていない。
ウチではずっとChrome第一Firefox第二、近頃はEdge第三。
他は眼中にない。
コメント1件

290
デフォルトの名無しさん[sage]   投稿日:2016/09/03 19:27:20  ID:EZVA2rF2.net(102)
>289
じゃあスマホは?
例えばAndroid 4系はアロー関数に対応していない。
http://caniuse.com/#feat=arrow-functions
コメント1件

291
デフォルトの名無しさん[sage]   投稿日:2016/09/03 19:32:55  ID:EZVA2rF2.net(102)
Chrome、Firefox、Edgeということは
https://www.netmarketshare.com/browser-market-share.aspx?qprid=0&;qpcustomd=0
ブラウザの66.82%にしか対応していません。

モバイルの場合は
https://www.netmarketshare.com/browser-market-share.aspx?qprid=0&;qpcustomd=1
Chrome、Firefox、Edgeの53.65%にしか対応していませんってことだよね。
(Android Browserを入れても62.22%)

292
デフォルトの名無しさん[sage]   投稿日:2016/09/03 19:35:23  ID:N47o0j5/.net(17)
>290
いや、逆だよ。超逆。
Androidの古いブラウザを切り捨てられる時期というのが強い。
Android 4系と言っても、実は後半くらいか徐々に、終盤は大体、
ベンダーがChrome載せててデフォルトにしてるから、実は問題ないんだよ。
一番問題あるのはSafariくらいで、それももうすぐだろう。

誤解無いように書くが、
上でも言ったようにプログレッシブ・エンハンスメントだし、
当然全てのコードを書き換えたわけではない。
今年度から新しく初めて長くメンテしていくサービスでのコードは原則そういうポリシーになっただけ。
なので問題は無い。
コメント1件

293
デフォルトの名無しさん[sage]   投稿日:2016/09/03 19:40:30  ID:EZVA2rF2.net(102)
>292
意味がわからん。

重要なのは切り捨てるタイミングと
コードを新しくするタイミングの問題。

babelを使うと古いブラウザを切り捨てるタイミングを
自由にコントロールできる。

そして古いブラウザを切り捨てるよりも前にコードを新しくできる。
つまり古いブラウザを切り捨てたときにはすでにコードは新しくなってる。

あんた、今、古いブラウザを切り捨てたのに、
古いコードを抱えてるじゃん。

> Android 4系と言っても、実は後半くらいか徐々に、終盤は大体、
> ベンダーがChrome載せててデフォルトにしてるから、実は問題ないんだよ。
だからシェアのリストだしただろ? ChromeとAndroid Browserを
入れたとしても62.22%にしかならない。
コメント2件

294
◆SEdFBOkLSw [sage]   投稿日:2016/09/03 20:12:11  ID:YIu9WVDu.net(31)
俺以外とも噛み合ってねえじゃんw
>284は説明上手いな。

295
デフォルトの名無しさん[sage]   投稿日:2016/09/03 20:15:24  ID:EZVA2rF2.net(102)
おい、馬鹿(◆SE)がまた来たぞw
コメント1件

296
デフォルトの名無しさん[sage]   投稿日:2016/09/03 20:18:55  ID:EZVA2rF2.net(102)
重要なのは、ES6対応度テストで合格する割合じゃないんだよね。
どれだけ多くの世間で使われているブラウザに対応できるか。

俺が一番重要視してるのは、より実用的なのはどれかだよ。

ES6対応度テストで9割合格していても、
それが今使われてるブラウザの6割じゃ役に立たない。

ES6対応度テストで8割でもそれを使うことで
ブラウザの9割で動かせるほうが重要。

297
デフォルトの名無しさん[sage]   投稿日:2016/09/03 20:22:54  ID:N47o0j5/.net(17)
>293
>>babelを使うと古いブラウザを切り捨てるタイミングを
>>自由にコントロールできる。

いやー一年前まではそう思ってましたよ。
上でも書いたけれど、君の発言を見てると一年前二年前の若い自分を思い出す。
でもそうじゃなかったから使ってないの。まだ分からない?
理由は大体書いたよ。
babelただ使うだけで使わないよりも『より良くなる』時代ってのはもう終わったの。

あんまり踏み込んで欲しくないので書かなかったことを少しだけ言うと、
ウチではES6基本というのは実は嘘。今はもうES2016基本にしかけてる。
で、そのために、『より良くする』ためにbabelではないがトランスパイラ+ポリフィル使ってる。

が、これもES2016の重箱の角はつつけていないので、本当は使わないで済むなら使いたくないのよ。
モダンなコードを書くメリットと、重箱の角を心の隅で気にしないといけないコストと、若干の好奇心のつり合いを見て今はこういう形になっている。

だから本当に100%ES2016で開放された気分で書けてるのかというとそうではない。
あれだけ変更の少ない2016->2015でもそうなんだよ?
babelのES5変換なんて満足できていたのは最初だけ、ブラウザの対応が未熟だった頃だけだよ。

当初君と同じ夢を見ていたウチのメンバーは一年くらいかけて
実は古いブラウザというしがらみから逃れるために、babelというしがらみに縋ってただけだって気がついたの。
今はbabel使って後から外すなんて夢物語だよ。黒歴史。
実はそういった試みで始めたものいくつかあったんだが、まともに活用しきれない。
多くは実らず捨てることになって、一部は泣きながらリファクタリングしてる最中。
コメント2件

298
デフォルトの名無しさん[sage]   投稿日:2016/09/03 20:24:00  ID:N47o0j5/.net(17)
>293
でもまあ、ふと思ったけど、俺も今のbabelは触ってないからな。精々半年前の感覚のままだ。
今はもしかしたら殆ど完璧になってて、憂いが減ってんのかな?
そこはちょっと反省。

どうしてbabelで旧ブラウザの対応するのを見限ったかって言うとね、
そもそも、babelのバグや細かい非互換のせいで大きいコードがしばしばまともに通らなかったからだよ。
だから、笑えるけどbabelで通るように書き換えてたの。当然歪になってるから使い回せない、使い回したくないの。

でも今babelの対応状況改めて見てみたらやっぱり無理だ。
マイナーかもしれないけれど、毎度一箇所は使うだろう点が残ってる。
やっぱり痛いのはプロトタイプの設定や、サブクラス化かなぁ。
めっちゃ使うということは無いが、ここらを我慢するのはやっぱりES6使ってるとは俺は思えないわ。
コメント2件

299
デフォルトの名無しさん[sage]   投稿日:2016/09/03 20:26:29  ID:EZVA2rF2.net(102)
>297

あんた自分で言ったセリフ思い出してね。

> Safariはモダンブラウザに含めていない。
> ウチではずっとChrome第一Firefox第二、近頃はEdge第三。

Safariに対応できてない、IEに対応できてない。
対応できるブラウザは6割。

それがお前が今できることの限界だよ。
コメント1件

300
◆SEdFBOkLSw [sage]   投稿日:2016/09/03 20:27:46  ID:YIu9WVDu.net(31)
>295
無意味な中傷せんと、皆の意見を真摯に聞いとけ。
だいたい同じ事言ってる。

あとな、動作が同じって、それは違うからな。
いくら時間がかかっても良いから同じ結果を出します、ってのは、結果同じでも動作違うからな。
万回以上呼ばれだしたら体感で速度変わるし。
>278に対してだけど。
コメント1件

301
デフォルトの名無しさん[sage]   投稿日:2016/09/03 20:28:02  ID:EZVA2rF2.net(102)
>298
> そもそも、babelのバグや細かい非互換のせいで大きいコードがしばしばまともに通らなかったからだよ。
> だから、笑えるけどbabelで通るように書き換えてたの。当然歪になってるから使い回せない、使い回したくないの。

だったらbabelで通るように書き換えないで、
その機能を使わなければいいだけでは?

だってそもそもbabelを使わないならば
その機能は使えないんだからさ。

その機能を使わないと言う選択肢をとることはできるはずだ。
コメント1件

302
デフォルトの名無しさん[sage]   投稿日:2016/09/03 20:28:44  ID:EZVA2rF2.net(102)
>300
今はお前と話はしてない。
お前のみんなの扱いはすでに決まってるんだよ。
おバカさんw
コメント1件

303
◆SEdFBOkLSw [sage]   投稿日:2016/09/03 20:30:06  ID:YIu9WVDu.net(31)
>298
そう。だから、結局同じ構文で書いた、ただのbabelって処理系用の言語なんよね。

>301
それは、babel用のコードを書くに、他ならなくないか?
babel無視したら、そんな回避コード書かんで良いんだから。
俺が仕事でES5書いてるのとレベル全く変わらんじゃないか。
コメント1件

304
デフォルトの名無しさん[sage]   投稿日:2016/09/03 20:30:30  ID:EZVA2rF2.net(102)
>297
言ってることが抽象的すぎて
具体例が一つもないよね。

問題があるという前提で話をしているが、
そもそも、お前が言う問題は本当にあるのか?って話。

まず、具体的な問題があることが前提だから
どういうときに問題があるのかを言ってくれないか?

305
デフォルトの名無しさん[sage]   投稿日:2016/09/03 20:31:13  ID:EZVA2rF2.net(102)
>303
> それは、babel用のコードを書くに、他ならなくないか?

ぜんぜん違う。その言語はES6でそのまま動く
ES6用とbabel用に違いはない。
コメント1件

306
◆SEdFBOkLSw [sage]   投稿日:2016/09/03 20:31:17  ID:YIu9WVDu.net(31)
>302
お前の中だろ。
問題を極端に矮小化したり拡大解釈したり、一般化したり特殊化すんのは良くないぞ。
コメント1件

307
デフォルトの名無しさん[sage]   投稿日:2016/09/03 20:32:03  ID:EZVA2rF2.net(102)
> 俺が仕事でES5書いてるのとレベル全く変わらんじゃないか。

わざわざES6のコードを避けるほうが大変だろwww

どちらがどれだけ大変かの話をしてる。
babelを使えば、避ける必要性が大きく減る。
コメント1件

308
デフォルトの名無しさん[sage]   投稿日:2016/09/03 20:32:49  ID:EZVA2rF2.net(102)
>306
あっちのスレでもお前、馬鹿にされてるじゃんwww
自覚しとけ。

お前は俺に反論できないことはたくさんあったが
それはお前にほとんどレスしてるだろw
コメント1件

309
◆SEdFBOkLSw [sage]   投稿日:2016/09/03 20:33:04  ID:YIu9WVDu.net(31)
>305
ES5もES6でそのまま動くよw

babel用に使えないものがあるから使わないのは、ES6のサブセットじゃん。
babel用に使えないものを避けて書いたのと、気にせず書いたES6は違うコードなんじゃねえの?
コメント1件

310
◆SEdFBOkLSw [sage]   投稿日:2016/09/03 20:33:43  ID:YIu9WVDu.net(31)
>308
明後日のレスだけして、それで答えた気になってたらしゃーないわ。

311
◆SEdFBOkLSw [sage]   投稿日:2016/09/03 20:36:11  ID:YIu9WVDu.net(31)
>307
避ける方が大変?なんだそりゃ。
言語仕様把握せずに開発してる訳でもあるまい。
規約が無い訳でもあるまい。

子供のバイトみたいな話しないでくれ。
コメント1件

312
デフォルトの名無しさん[sage]   投稿日:2016/09/03 20:37:02  ID:EZVA2rF2.net(102)
>309
> ES6のサブセットじゃん。

ん? 各ブラウザのES6の実装度を知らないのかな?
どのブラウザでも使えるのはES6のサブセットでしか無いんだけど?
コメント1件

313
デフォルトの名無しさん[sage]   投稿日:2016/09/03 20:38:01  ID:EZVA2rF2.net(102)
>311
> 避ける方が大変?なんだそりゃ。

そりゃそうだろ。

どのブラウザで、どの機能が使えるかをいちいち把握しないといけない。
お前アロー関数がSafariで使えないことを把握していたか?

そういった細かい機能を把握する必要がなくなる。
コメント1件

314
デフォルトの名無しさん[sage]   投稿日:2016/09/03 20:38:52  ID:EZVA2rF2.net(102)
言語仕様を把握していても、アロー関数がSafariで
動かないってことを知ることは出来ないんだよ。

315
◆SEdFBOkLSw [sage]   投稿日:2016/09/03 20:41:04  ID:YIu9WVDu.net(31)
>312
そうだね。
だから、ブラウザごとに要件定義すんじゃんね。
そこに、これまたbabelって処理系が入る、と。

お前の理屈破綻してるのわかる?
どこが、一つのES6で良いの?w

最大公約数で書けば良い、なら、
ホントに最大公約数で書けばいいじゃん。ES5。
要件定義できるなら、その最大公約数で書けばいいだけ。

中途半端に先端気取って無駄な事なの。
コメント1件

316
デフォルトの名無しさん[sage]   投稿日:2016/09/03 20:41:56  ID:EZVA2rF2.net(102)
ES6を完全サポートしているブラウザを100とすると、
babelを使わないと、

1〜100までのすべてのブラウザを考慮しなければいけなくなる。
babelを使えば80以下のブラウザがすべて80にまで底上げされるから
80〜100のブラウザだけを対応すれば良くなる。
コメント1件

317
◆SEdFBOkLSw [sage]   投稿日:2016/09/03 20:43:55  ID:YIu9WVDu.net(31)
>313
してたよ。
ついでに言うとOperaも対応してない。
Android標準ブラウザは4系でも全滅。IEも11でも使えない。
コメント1件

318
◆SEdFBOkLSw [sage]   投稿日:2016/09/03 20:45:13  ID:YIu9WVDu.net(31)
>316
ES5で書けば100のブラウザ相手に書けんじゃん。
底上げしたから、何もしなくて良いわけでもないし。
骨折り損。
コメント1件

319
デフォルトの名無しさん[sage]   投稿日:2016/09/03 20:45:14  ID:N47o0j5/.net(17)
>299
何が言いたいのか、いやもう建設的な話し合いをする気は無いんだろうけど、
一応会話してみるか。

対応するときはES5で書く。それだけでしょ?
そして、その話は本題と関係ないでしょ?

古いブラウザを見限っていいから、Babelを使うなと言ってるんじゃないから。
古いブラウザを見限らないとしても、ウチではBabalは使わない。ただES5で書くだけ。
まさかウチではもう今年度からピュアES6しか書きませんと言ってるのだと思ってた?
誤解させてごめんね。

で、本題はBabalの吐くコードはES_Babalであって、ES6とは遠からず近からずなものでしかないということ。
ES6を使いたいから、後々外せばいいだけだから便利、な感覚でBabelを使うと怪我するよと言ってるの。
Babalを使うのなら、あくまでES_Babelというalt JSを使うんだという認識・覚悟で居たほうが正しい。

そして副題として、俺はそれは嫌ということ。ここは個人的な部分だし、環境なので異論は認めるし、批判は受け付けていない。
二極化提案については、まだ実験中で良し悪し分からず、オススメする気もなくポロッと言ってしまっただけだし、
あまり深入りしてほしくないのでこれ以上話したくない。
コメント1件

320
デフォルトの名無しさん[sage]   投稿日:2016/09/03 20:45:47  ID:EZVA2rF2.net(102)
>315
> だから、ブラウザごとに要件定義すんじゃんね。
> そこに、これまたbabelって処理系が入る、と。

ブラウザは実行環境、
babelはトランスパイラ。

違うものを混ぜるなって何度も言っただろ。

お前はES6に対応していないブラウザを一つずつ何個も
この機能は使える?使えない?って悩んでいるのだろうが
babelを使うと、多くのブラウザの最低レベルが揃うんだよ。

お前の言葉で言う最大公約数がES6に底上げされる。
最大公約数5よりも最大公約数10の方がいいだろw
コメント1件

321
デフォルトの名無しさん[sage]   投稿日:2016/09/03 20:46:33  ID:N47o0j5/.net(17)
おいおい……俺がちょっと推敲してる間に20も進むとか……

322
デフォルトの名無しさん[sage]   投稿日:2016/09/03 20:49:51  ID:EZVA2rF2.net(102)
>319
なんか一人二役ご苦労さんって感じになってきたな。
わざとらしく大文字小文字を使い分けてるのかい?www

> 対応するときはES5で書く。それだけでしょ?
そのES5をES6に書き換えるコストは誰が払うんだ?ずっとES5のまま?
なんで可読性、メンテナンス性が低いコードを今のタイミングで量産するのさ?w
長期的なバージョンアップっていうのが考慮されてないぞ。

> で、本題はBabalの吐くコードはES_Babalであって、ES6とは遠からず近からずなものでしかないということ。

なんでそこでbabelの吐くコードを気にしないといけないのかわからん。
そもそもbabelの吐くコードはES5だ。ES_Babelなんてものはない。
babelは言語ではなくて単なるトランスパイラ。言語はES6そのもの
コメント2件

323
デフォルトの名無しさん[sage]   投稿日:2016/09/03 20:50:46  ID:EZVA2rF2.net(102)
>318
> ES5で書けば100のブラウザ相手に書けんじゃん。

ただし可読性とメンテナンス性が低いコードになる。
コメント1件

324
デフォルトの名無しさん[sage]   投稿日:2016/09/03 20:52:05  ID:EZVA2rF2.net(102)
>317
> ついでに言うとOperaも対応してない。
> Android標準ブラウザは4系でも全滅。IEも11でも使えない。

そっかー、babel使ってテストにもちゃんと通って
手動でも確認したときも問題なく動いていたから知らんかったわーw


まあ嘘だけど、このようにいちいち把握する必要がなくなる。
コメント1件

325
デフォルトの名無しさん[sage]   投稿日:2016/09/03 20:52:33  ID:vfo9HhT2.net
この板ってどのスレでも定期的にこういう事起こるよね
C#のラムダ禁止おじさんとか
コメント1件

326
◆SEdFBOkLSw [sage]   投稿日:2016/09/03 20:52:38  ID:YIu9WVDu.net(31)
>322
一人二役って、アホな発言にも程があるわ。
言うに困ったらそれか。

>322
言語は、そのものじゃなくてサブセットなんじゃねえの?
コメント1件

327
◆SEdFBOkLSw [sage]   投稿日:2016/09/03 20:53:35  ID:YIu9WVDu.net(31)
>323
お前が下手なだけ。

>324
必要が無いのと、無責任なのは違うよ。
あと、letも、ずっとSafariだけ未対応だった。
コメント1件

328
◆SEdFBOkLSw [sage]   投稿日:2016/09/03 20:54:01  ID:YIu9WVDu.net(31)
>325
ラムダは積極的に使えば良いのにな。

329
デフォルトの名無しさん[sage]   投稿日:2016/09/03 20:56:57  ID:EZVA2rF2.net(102)
>326
> 言語は、そのものじゃなくてサブセットなんじゃねえの?
そうだなES6の殆どが使えるがサブセットだなw

それよりもES6に完全対応してないブラウザの方が
より大きな問題だよ。

330
デフォルトの名無しさん[sage]   投稿日:2016/09/03 20:58:33  ID:N47o0j5/.net(17)
もういい。
俺はともかく、ES6ってそんなレベルじゃねーぞって変なこだわり言ってるだけだから。
とりあえずBabel使うとES6でガッツリ書けます。将来的には外すだけみたいに言わないでくれれば他はどうだってよかった。
相手が建設的な話し合いする気がないどころか、現実逃避始めちゃったので、今となってはそれすらどうでもいい。

>320
>>babelを使うと、多くのブラウザの最低レベルが揃うんだよ。

そう。いいこと言った。
最初からこのくらいに収めてくれてれば俺が駄スレで駄レス重ねる必要もなかったのに。
結局会話にならなかったし、ほんと、無駄な時間過ごしちゃったな〜
コメント1件

331
デフォルトの名無しさん[sage]   投稿日:2016/09/03 20:59:03  ID:EZVA2rF2.net(102)
>327
> 必要が無いのと、無責任なのは違うよ。

誰が無責任でいられるって言ったんだよ。
アホかw

ちゃんとテストコード書いて問題なく動くことを確認してる。
それが責任を果たすということだろ。

> あと、letも、ずっとSafariだけ未対応だった。

せっかくより良くなったES6を
全く使えない状況になるんだよねw
コメント1件

332
デフォルトの名無しさん[sage]   投稿日:2016/09/03 21:01:48  ID:EZVA2rF2.net(102)
>330
> とりあえずBabel使うとES6でガッツリ書けます。将来的には外すだけみたいに言わないでくれれば他はどうだってよかった。

もちろん将来的には外すだけじゃねーよw

しっかりテストコード書いて、テストする。
これは、babelとは関係なく、ブラウザのバージョンアップでも
急に動かなくなったりする可能性があるのだから当然するべきこと。

babelを外してもし動かなくなるのなら、その部分だけの修正で済むだろ。
今からbabelを外して動くかどうかもテストしてればいいんだよ。

それをやってるから、ES6で書いてbabelを使っても使わなくても
同じように動くコードになるって言ってるの。
コメント2件

333
デフォルトの名無しさん[sage]   投稿日:2016/09/03 21:09:12  ID:N47o0j5/.net(17)
>332
だからね。君が言ってるそれは、BabalがES6のコードを完璧にES5に変換できるということ前提なの。
実際はね、ES6ではなく、ES_Babalで書かないといけないの。
ES_BabalというのはES6から機能と安定性を取り去った言語なわけ。
で、それを将来ES6か何かに書き換えるわけ。

それがES5のしがらみとどっちが強いかは人次第なのかもしれない。
君はそれに十分満足していて、俺は不満。ただそれだけなのかもしれない。

でも、ES6を使いこなしていったらすぐに俺の考えに近くなるんじゃないかなという想像。
無駄なおせっかいだったのよ。それだけ。

334
デフォルトの名無しさん[sage]   投稿日:2016/09/03 21:13:20  ID:EZVA2rF2.net(102)
> 実際はね、ES6ではなく、ES_Babalで書かないといけないの。
だから書かなくて良いんじゃないですかねぇw
ES6で完璧に書けないものは書かなくていい。

なんでES6を使うって言ったら、babelで使えない機能まで
ES6を使おうってするんだ?w


どうせテスト書くだろ。完璧に動かなくてもテストで通る範囲が動けば問題ないんだよ。
そもそもブラウザですらES6に完全に対応していない。

どちらにしろES6に完全対応していない環境と言う前提のもとで、
正しく動くアプリを作るんだよ。作るのが仕事なの。

そしてより可読性、メンテナンス性に優れたコードを今すぐ書くということ。
コメント1件

335
◆SEdFBOkLSw [sage]   投稿日:2016/09/03 21:15:25  ID:YIu9WVDu.net(31)
>331
テストコード書いて問題なく動く、そこが違うんだよなぁ。
こっちは仕様と実装からテスト仕様書いてて、
お前は仕様からしか書いてないんだもの。

>332
お前は本当に何を問題とされているかわかんねえやつだな。
コメント1件

336
デフォルトの名無しさん[sage]   投稿日:2016/09/03 21:17:26  ID:EZVA2rF2.net(102)
テストコード書いて問題なく動く、そこが違うんだよなぁ。
こっちは仕様と実装からテスト仕様書いてて、

え? だからそのテスト仕様書通り動けばいいだろ?

何言ってるのかさっぱりわからんwww

337
デフォルトの名無しさん[sage]   投稿日:2016/09/03 21:18:06  ID:EZVA2rF2.net(102)
> こっちは仕様と実装からテスト仕様書いてて、

あ、実装を書かないとテスト仕様書が書けないタイプ?
コメント2件

338
デフォルトの名無しさん[sage]   投稿日:2016/09/03 21:21:04  ID:EZVA2rF2.net(102)
実装からテストを書くっていうのは、
要するにprivateメソッドを書いてから
そのテストコードを書くって言ってるのかな?

まあまた意味不明なことを言い出したなって
思ってますよw
コメント1件

339
デフォルトの名無しさん[sage]   投稿日:2016/09/03 21:23:23  ID:EZVA2rF2.net(102)
実装のテストっていうのは、その実装が変われば
同じ動作をしていてもアプリは問題なく動いていても
失敗するものってことでいいんですか?
コメント1件

340
◆SEdFBOkLSw [sage]   投稿日:2016/09/03 21:24:59  ID:YIu9WVDu.net(31)
>337
当たり前だろ。。
>338
違うよ。
コードを書く/書いてもらう前に、何もかも分かった状況にして、こうすれば書けるから、と実装に対する詳細設計を起こすよね。
その詳細設計から書くじゃん、テスト。
実装、がもしかして食い違ってる?
お前が書く内容、って意味じゃなくて、処理系の実装、な。

しかし、改めてbabel見てみたが、末尾再帰もできんままか。
コメント1件

341
◆SEdFBOkLSw [sage]   投稿日:2016/09/03 21:26:13  ID:YIu9WVDu.net(31)
>339
何言ってるのかわからん。
その処理系でテストを完了していない限り、失敗も成功もないだろ。宙ぶらりん。
だからテストすんじゃん。

342
デフォルトの名無しさん[sage]   投稿日:2016/09/03 21:28:37  ID:EZVA2rF2.net(102)
いつの話をしてるのやらw

http://teppeis.hatenablog.com/entry/2015/03/es6-tail-call-optimization

2015-03-29
BabelとTraceurでES6末尾再帰最適化を試す
ちょっと前にBabelに末尾再帰最適化が入って話題になったけど、同じくTraceurにもv0.0.85で最適化が入ったので試してみた。
コメント1件

343
デフォルトの名無しさん[sage]   投稿日:2016/09/03 21:28:59  ID:N47o0j5/.net(17)
>334
うん。だから君は、ES6を、モダンで良い言語で書きたいから使ってるわけではなく、
「Babelが対応してる機能」を「Babelが対応してるから」使ってるだけでしょ?
普通はES6で書いて動かすためにトランスパイラを試す筈だが、
君はおそらくBabelをES6入門用的に使っているのだろう。

Babelはもう成長しないが、君はどうするの?
うーん。もしかして、ES2017や18の時代になっても、
Arrayのサブクラスすら作れないなんちゃってES2017で書くの?

ES6-サブクラス+デコレータ-hogehoge+fugafuga
みたいなおかしな言語で書き続けるの??
そこに無理があると言ってるのよ。

君ももし本当にES_BabelをES6と信じてるのなら成長したほうが良いよ。
で、Babelは使うのは良いが憂いができるだけ少なくなるようにした方がいい。
コメント1件

344
デフォルトの名無しさん[sage]   投稿日:2016/09/03 21:32:40  ID:EZVA2rF2.net(102)
>340

337 自分:デフォルトの名無しさん[sage] 投稿日:2016/09/03(土) 21:18:06.86 ID:EZVA2rF2 [83/86]
> こっちは仕様と実装からテスト仕様書いてて、
あ、実装を書かないとテスト仕様書が書けないタイプ?

340 返信: ◆SEdFBOkLSw [sage] 投稿日:2016/09/03(土) 21:24:59.62 ID:YIu9WVDu [24/25]
>337
当たり前だろ。。

この流れで、↓これとか

> コードを書く/書いてもらう前に、何もかも分かった状況にして、こうすれば書けるから、と実装に対する詳細設計を起こすよね。
> その詳細設計から書くじゃん、テスト。

・・・馬鹿なのか?


1. 実装に対する詳細設計を書く
2. つまり詳細設計は実装を書くよりも前に存在する。
3. (実装を書く前の)詳細設計からテストを書く。

実装を書かなくてもテスト仕様書は書ける。
コメント1件

345
◆SEdFBOkLSw [sage]   投稿日:2016/09/03 21:35:40  ID:YIu9WVDu.net(31)
>342
おお、if文のあとの再帰で死ぬやつ治ってんだ。
ちなみに、その話のあと、一旦disabledになったのよ。

346
◆SEdFBOkLSw [sage]   投稿日:2016/09/03 21:38:38  ID:YIu9WVDu.net(31)
>344
だから。もう。
お前がどう書くかは関係ねえの。
それからテスト書いたら意味ねえじゃん。
ホワイトボックスで、それが検証可能な事には意味があるけど、そうじゃねえよ。
処理系の実装だよ。
コメント1件

347
デフォルトの名無しさん[sage]   投稿日:2016/09/03 21:41:34  ID:EZVA2rF2.net(102)
>343
> 「Babelが対応してる機能」を「Babelが対応してるから」使ってるだけでしょ?
違う。ES6の機能のうち、babelで変換しても確実に動くものだけを使ってる。
だから「ES6が対応している機能」のうち「babelでも対応しているもの」を使っている。
が正解。

そしてそれは普段から書いている「実際のブラウザで問題なく動くか?」という
テストがあれば追加工数は必要なくテストできる。

> Babelはもう成長しないが、君はどうするの?
成長してないと判断したところはどれ?
見ての通りes2017に対応したプリセットもある。 http://babeljs.io/docs/plugins/preset-es2017/
仮にbabelが成長しなくても、今書いているコードはそのままES6対応ブラウザで動くし
ES5ブラウザでも動く。今のやり方はそのまま続けられるじゃん。

場合によっては古いブラウザを切り捨てることで、babelが無くても動く。
将来の心配をしなくて済む。そこがAltJSとの違い。

> ES6-サブクラス+デコレータ-hogehoge+fugafuga
> みたいなおかしな言語で書き続けるの??
と言われてもね。現実に存在するブラウザが、そんな感じでしょw
ES6の全てに対応していない。あんた今、そんなおかしな言語で書いてるんだよw

> うーん。もしかして、ES2017や18の時代になっても、
> Arrayのサブクラスすら作れないなんちゃってES2017で書くの?
Arrayのサブクラスを使わないでES2017で書くよ。

お前は古いブラウザを切り捨てるんだろ?
それが要件として認められるならば、俺古いブラウザを切り捨てるだけだよw
コメント2件

348
デフォルトの名無しさん[sage]   投稿日:2016/09/03 21:46:47  ID:EZVA2rF2.net(102)
>346
またマッチ・ポンプ?w
テストは実装前に書くって話でいいんだよね?w

俺が言いたいのは、>335でお前が言った
> こっちは仕様と実装からテスト仕様書いてて、
実装からテスト仕様書くなやってことなんだけど?


で、俺は仕様と詳細設計からテスト仕様書書いて
それをテストコードにしてるから、
実装が変わっても問題ないって話をしてるんだけど。
コメント1件

349
◆SEdFBOkLSw [sage]   投稿日:2016/09/03 21:51:24  ID:YIu9WVDu.net(31)
>348
だから、処理系の実装だってば。
お前話の流れが読めないやつだな。
前のレス見ればわかんじゃん。

>347
だから、それがbabel用のコードなんじゃねえの?
ES6と同じ構文で書いたES6のサブセットな、babelにコンパイルさせる為の言語。
ただ、そのまま他の環境でも動くだけで。
それは、ES5を書いて、これはES6の仕様範囲内だから、ES6です、って強弁するのと変わらんではないか。
コメント2件

350
デフォルトの名無しさん[sage]   投稿日:2016/09/03 21:54:03  ID:N47o0j5/.net(17)
>347
うーん。君のポリシーがよくわからないね。
今のブラウザがES6の全てに対応していない?
そりゃそうだ。ES5すら全てに対応してるわけではないからね。

ということは、それより遥かに劣るBabelは極めて不完全って認めるわけなの?
さっきも言ったが俺はそここそが一番気になるんだから。

いや違うか、君は不完全でも気にしないと言ってるわけだ。
ES6とES_Babelの見分けなんてつかないよと、
いや、Babelで変換できないES6の機能なんてES6と認めないよと言ってるわけだ。

やっぱり君はBabel志向なんだよ。
それは違う、とにかく対応を広げるために機能の劣るBabelを仕方なく使ってるんだっていうなら
やっぱりES6ではなくES_Babelを書いてるってことを認めないといけない。

それか、実はES6なんて理解してなくてBabel志向なだけですというのも理屈が通る。
そのどちらか。
コメント1件

351
デフォルトの名無しさん[sage]   投稿日:2016/09/03 21:57:03  ID:EZVA2rF2.net(102)
>349
> だから、処理系の実装だってば。

処理系の実装ってなに?

お前は処理系の実装のテストを "書いている" といった。
そうわざわざ言うってことは、当然普段から書いているのだろう?

ブラウザの場合お前はbabel等を使わない。
ってことは当然処理系の実装のテストというのは、
ブラウザが持っているJavaScript実装。
ChakraやSpiderMonkeyやV8という処理系であるはずだ。


お前はこれらのJavaScriptエンジンを
わざわざ開発元がやってるはずのテストを
JavaScriptエンジンの開発や検証という段階でもないのに、
アプリの開発という仕事の中でやってるということか?

そういう話でいいのか?
コメント1件

352
デフォルトの名無しさん[sage]   投稿日:2016/09/03 21:59:14  ID:EZVA2rF2.net(102)
>349
> だから、それがbabel用のコードなんじゃねえの?
> ES6と同じ構文で書いたES6のサブセットな、babelにコンパイルさせる為の言語。

ES6のサブセットという言語はない。
俺がES6のサブセットを使っているだけ。

そもそもどのブラウザもES6に完全対応してないのだから
俺だけじゃなくてみんなES6のサブセットを使ってる。

お前、SafariでES6のサブセットを使ったら、
それをSafariで動かすための言語っていうのかよwwww

それぐらいわからんかなw
コメント1件

353
デフォルトの名無しさん[sage]   投稿日:2016/09/03 22:05:42  ID:EZVA2rF2.net(102)
>350
> 今のブラウザがES6の全てに対応していない?
> そりゃそうだ。ES5すら全てに対応してるわけではないからね。
>
> ということは、それより遥かに劣るBabelは極めて不完全って認めるわけなの?

そこが話がつながってない。

babelはES6に対応していないブラウザをES6対応に近づけるものであって、
ブラウザとES6対応度で競争しているわけじゃない。

ブラウザは他のブラウザとES6対応度で競争しているかもしれない
その競争でどこそこのメーカーのブラウザが劣っているか劣っていないかって
いう話をするのならわかる。

だがbabelの目的は、劣っているブラウザを救済する所にある。
babelと比較するのであれば同じ目的のTraceurやClosureだろう。

あんたはES6を使いたいとしか思ってないようだが、
俺が一番に考えているのは、より多くのユーザーが使ってるブラウザで動かすということだ。
その上で可読性やメンテナンス性を上げるという理由で出来る限りES6を使うって話をしてるんだよ。
コメント1件

354
◆SEdFBOkLSw [sage]   投稿日:2016/09/03 22:15:50  ID:YIu9WVDu.net(31)
>351
文盲なの?

そのエンジンと自社製品の組み合わせのテストだよ。

>352
最後。
その通り、Safariの為の言語だよ。その時点では。
SafariとFireFoxの為に書いたのであれば、SafariとFireFoxの為の言語。
コメント1件

355
デフォルトの名無しさん[sage]   投稿日:2016/09/03 22:17:06  ID:EZVA2rF2.net(102)
ん? まさかと思うが、もしかして◆SEって
ブラウザごとにソースコード書き換えてるのか?

あるサイトを作ったとして、
Chromeはアロー関数を使ったコードで
Safariはアロー関数を使わないコード。

一つのコードで複数のブラウザに対応するのではなく
各ブラウザごとに書き換えたを変えてるのか?

まさかな。babelを使うと一つのコードで
複数のブラウザに対応できるぞwww
コメント1件

356
デフォルトの名無しさん[sage]   投稿日:2016/09/03 22:18:28  ID:W9R0/4bk.net
バベル君面白いw

バベル君の事が理解出来る様に、オレも少しかじってみるわw

357
デフォルトの名無しさん[sage]   投稿日:2016/09/03 22:18:34  ID:EZVA2rF2.net(102)
>354
> そのエンジンと自社製品の組み合わせのテストだよ。

言い方がおかしいな。

普通は
そのエンジンと自社製品の組み合わせ「で」テストをするという。

確認するが
そのエンジンと自社製品の組み合わせ「の」テストを書いているという意味か?
コメント1件

358
デフォルトの名無しさん[sage]   投稿日:2016/09/03 22:19:06  ID:N47o0j5/.net(17)
>353
うん。それならいい。
あくまでES6を意識したBabelScriptという下駄を古いブラウザに履かせるという認識ならいい。


裏切りを知らないサンタクロースを信じる子供か、黒歴史を未経験な魔法に憧れる中二病患者かと思ったから忠告したけど、
そうでないのなら尽く良い。

その他いろんな話をしたが、もうそれに関しての共通理解は諦める。
コメント1件

359
デフォルトの名無しさん[sage]   投稿日:2016/09/03 22:20:31  ID:EZVA2rF2.net(102)
>354
◆SEくんおもしろいw

> その通り、Safariの為の言語だよ。その時点では。

じゃあブラウザとバージョンの数だけ別の言語があるってことかい?
コメント1件

360
デフォルトの名無しさん[sage]   投稿日:2016/09/03 22:21:58  ID:EZVA2rF2.net(102)
>358
> 裏切りを知らないサンタクロースを信じる子供か、黒歴史を未経験な魔法に憧れる中二病患者かと思ったから忠告したけど、

だからテストコードを書いている。
このテストコードはbabelを使った場合と使わない場合の両方で動く。

裏切られる前提で、裏切られてもすぐに修正できるように
ちゃんと対策をしている。
コメント1件

361
デフォルトの名無しさん[sage]   投稿日:2016/09/03 22:24:51  ID:EZVA2rF2.net(102)
◆SEの理屈ではJavaScriptという言語は無いってことになるだろうね。

なぜならばどのJavaScriptでも同じブラウザでも
バージョンが違えば、わずかながらでも違いがあるから。

ECMAScriptという仕様を完全に見対している言語もない。

そういえばC++も仕様を完全に満たしている処理系はないっていわれてるな。
つまり、それぞれの処理系で別々の言語が実装されている。それはC++とは呼ばないw
コメント1件

362
◆SEdFBOkLSw [sage]   投稿日:2016/09/03 22:29:30  ID:zOLpCpsC.net(4)
>355
基本は両方同じ、かつネイティブに処理されるコードを書いて欲しいね。
依存部分はライブラリで吸収するから。

>359
え?うん。
お前も認めてたじゃん。どのブラウザもサブセットだって。
コメント2件

363
◆SEdFBOkLSw [sage]   投稿日:2016/09/03 22:30:37  ID:zOLpCpsC.net(4)
>361
え?MSの2012でコンパイルできる、cppのソースコード、以外の、現実に則した表現あるの?

364
デフォルトの名無しさん[sage]   投稿日:2016/09/03 22:31:28  ID:EZVA2rF2.net(102)
>362
> お前も認めてたじゃん。どのブラウザもサブセットだって。

お前、毎度毎度、重要な単語を抜き取るよなw
わざとやってるだろ。


どのブラウザも「JavaScript(ECMAScript)という言語の」サブセットだって
言ったんだよ。別の言語であればそれはサブセットとはいわない。
コメント1件

365
◆SEdFBOkLSw [sage]   投稿日:2016/09/03 22:31:56  ID:zOLpCpsC.net(4)
>357
そうよ。おかしかったらパッチ書いてプルリクするもの。

366
デフォルトの名無しさん[sage]   投稿日:2016/09/03 22:32:33  ID:N47o0j5/.net(17)
>360
そこに関しては納得してる。
俺が違和感があるのは、よくそれで問題にならず我慢できるなってこと。

よくArrayのサブクラスとか作らないで済むね?
Proxy使ったこと無い?@@系は?
当然独自クラスシステムフレームワーク構築するのに
プロトタイプ書き換えるとか当然やったこと無いんだろうな〜
って感じ。

そういう驚きと、同じ世界に居ない悲しみ。そんなとこ。
コメント2件

367
◆SEdFBOkLSw [sage]   投稿日:2016/09/03 22:32:54  ID:zOLpCpsC.net(4)
>364
重要な単語も何も、本家とサブセットは関係が定義できようが、
サブセット同士はただ違うものとしか。
コメント1件

368
デフォルトの名無しさん[sage]   投稿日:2016/09/03 22:33:53  ID:EZVA2rF2.net(102)
>362
> 依存部分はライブラリで吸収するから。

アロー関数は文法なんだから、JavaScriptファイルを
分離しないと、構文エラーになるんだが?

そのライブラリはブラウザごとに読み込むファイルを分けるのか?
またパフォーマンスが落ちそうなことをwww
コメント1件

369
デフォルトの名無しさん[sage]   投稿日:2016/09/03 22:35:25  ID:EZVA2rF2.net(102)
>367
だから、そうやって重要な単語を抜き取って焦点をぼかすのはやめろ。

とある言語の、サブセット同士が違うものであっても
それはとある言語のサブセットであって、言語としては同じだろうが。

BASICはどの実装でもBASICであり
COBOLはどの実装でもCOBOLだ。
コメント1件

370
デフォルトの名無しさん[sage]   投稿日:2016/09/03 22:37:05  ID:EZVA2rF2.net(102)
>366
> よくArrayのサブクラスとか作らないで済むね?

といわれてもね。長年やってるからね。
長いES5の時代にArrayのサブクラスをつくらないで
やってきた人間に、そんなこといわれてもねw

その他も同じ。

お前のほうがやってきた経験少ないんじゃね?
コメント1件

371
デフォルトの名無しさん[sage]   投稿日:2016/09/03 22:41:45  ID:EZVA2rF2.net(102)
>366
そうだな。君、何かのポリフィルを自分で考えたことある?
特定のブラウザでは簡単にできないことを、
別の方法を使って実現するってことをやったことある?

そういう経験がないんじゃないかな?
バッドノウハウといわれるけど、仕事ではそれをやらないといけない。

Arrayのサブクラスが作れないからできませんって
簡単に泣き言を言ったらだめだよ。

Arrayのサブクラスを作ることが目的になることはまずない。
別の方法で顧客の要求を実現するんだよ。

これって発想力の問題かなぁ、それとも問題解決能力?
コメント1件

372
デフォルトの名無しさん[sage]   投稿日:2016/09/03 22:56:19  ID:N47o0j5/.net(17)
>370
当然俺もいきなり活用できたわけじゃない。
折角の機能活用できるようになろうとここ1,2年実験・研究を人一倍積み重ねてきたのよ。

いや、違うか。それより前から、特にES4の頃からかなぁ
JSなんてと言われる声が大きかった時でも、
これからはJSの時代だ。JSを深く知ろう、そしてJSの良さをもっと知ってもらおう。
JSを良くしていこう。とずっとずーっと思ってたのよ。

だからES6の盛り上がりには喜んだし、
MLも当初から参加して全て読んで、細部だが提案にも参加した。

そして実装される前から、トランスパイラではなく、エンジン毎実装されているエミュレータでテストしたりしてきたのよ。
ブラウザに機能がコミットされたら、いやされる直前に自分でローカルでコミットして即ビルド。
とにかく誰よりもよくES6を知り、よく使えるようになろうと努力した。

というのは多少大袈裟だが、そのくらいの熱はあるよ。

373
デフォルトの名無しさん[sage]   投稿日:2016/09/03 22:59:14  ID:N47o0j5/.net(17)
つかArrayのサブクラスもできるんだけどね。
__proto__がサポートされていれば。

374
◆SEdFBOkLSw [sage]   投稿日:2016/09/03 23:12:05  ID:YIu9WVDu.net(31)
>369
いや、それは言語名を拡大解釈しすぎだろ。

375
◆SEdFBOkLSw [sage]   投稿日:2016/09/03 23:14:31  ID:YIu9WVDu.net(31)
>371
お前どう聞いてもそのノウハウないんだけど。
なんか書いたことある?アーキとしてライブラリ。

>368
うん、文法上無理なものは、無理に使わないよ。

ライブラリはブラウザごとに違うよ?
当たり前だけど、そのブラウザ用に書いてるからパフォーマンス高いよ(笑)

376
デフォルトの名無しさん[sage]   投稿日:2016/09/04 01:41:38  ID:dQFc65WQ.net(3)
そもそも、ブラウザのソースをむっちゃ細かく読み、ブラウザごとに誤差レベルのパフォーマンスのためにプログラムをかき分け、利用者にはKBのバージョンまで指定する
そんならネイティブで書いたほうがいっそ早くね?
コメント1件

377
デフォルトの名無しさん[sage]   投稿日:2016/09/04 01:42:25  ID:dQFc65WQ.net(3)
↑ネイティブっていうのはブラウザ上じゃなくてって意味ね

それだと今度はOSのソースを読み出すのかな?
コメント1件

378
◆SEdFBOkLSw [sage]   投稿日:2016/09/04 02:09:57  ID:OwMR9jkC.net(2)
>376
クラサバの話?
だいたい似たようなもんだよ。
社内端末は、何処の会社でもそうだろうけど、標準品のパターンしか無いから。
クラサバは基本的にはあんまり作らんけどね。
標準品があるがゆえにが、何かにもインストールするのは難しい。

毎月10日に数万人が同時使用するようなものもあるから、ウェブ向きのもあるんだけどね。

379
◆SEdFBOkLSw [sage]   投稿日:2016/09/04 02:11:11  ID:OwMR9jkC.net(2)
>377
案件次第だけど、RedHatと、MSは調査させることができる保守契約だから、
ソースは見なくて済むよ。

380
デフォルトの名無しさん[sage]   投稿日:2016/09/04 02:40:24  ID:dQFc65WQ.net(3)
よくよく考えると、ハードウェアにも依存するよね
テストだけじゃなくてソースまで読むとなると、CPUとかグラフィックカードの設計図まで見ながら実装や結果が異なるかもしれない!とか言いながら開発してるのかな?

これとかは面白かったな
https://www.sophos.com/ja-jp/press-office/press-releases/2014/12/ns-...

381
◆SEdFBOkLSw [sage]   投稿日:2016/09/04 02:52:39  ID:puAB8LUN.net
ハードウエア依存するね。
そのへんはウェブ屋がよくまとめてくれてるよ。
このCSSをONにしたら、アニメーションがGPU使ってる行われるので、適宜利用可能そうであれば取り込んでください、とかたまり来るな。

382
デフォルトの名無しさん[sage]   投稿日:2016/09/05 21:45:07  ID:g6CwjeFO.net
こういうwebアプリってどうやってつくってるんですか
pdgを縮小とかって、どうやってやってるのでしょうか?
javascriptは関係ありますでしょうか?
https://smallpdf.com/jp

383
デフォルトの名無しさん[sage]   投稿日:2016/09/05 23:05:01  ID:La2BdvKf.net(2)
void func(int a)
{

384
デフォルトの名無しさん[sage]   投稿日:2016/09/05 23:10:26  ID:La2BdvKf.net(2)
未使用変数への対処ですが、C言語だと

void func(int /*a*/)
{
....
}

void func(int a)
{
(void)a;
....
}

こんな風にしますが、JavaScriptだと定石みたいなのはありますか?

$('#element').on('mousedown', function(/*event*/) {

});

でよさそうな気がしますが、アロー関数の時は

$('#element').on('mousedown', /*event*/() => {

});

こんな風にしないとだめでかっこ悪いきがします。
コメント3件

385
デフォルトの名無しさん[sage]   投稿日:2016/09/06 00:15:41  ID:vTB9MQXO.net(2)
>384
未使用変数を必ず対処しないといけないということはない。
例えばイベントハンドラで引数にeventやeを取るのは「形」だ。
型宣言みたいなもんで、それを書いてあるからといって必ずしも
eventを利用しないことは皆知っている。

むしろその関数が別定義されていても、eventを受ける関数、
イベントハンドラの定義なんだと瞬時にわかるので意味がある。

つまりイベントハンドラとしてイベントを受け取るということだけで、
機能が満たされて意味的に「未使用」ではないとも見れる。
もしくは本当にイベントをトリガーとして関数を呼び出したいだけであれば、
引数を書かないでおくべき。

コメントアウトする文化はないのでけしてしてはいけない。
上で述べた引数をあえて書く、書かないは、関数の機能やニュアンスを表すための
弱い動的型付け言語における読み手に対する情報の追加だ。

しかしコメントアウトは書き手にとってのメタ的な情報でしか無い。
読み手に未使用変数の情報を伝えても何のプラスにもならないし、
何らかのニュアンスの提示かと思わせて混乱させるだけだ。
コメント2件

386
デフォルトの名無しさん[sage]   投稿日:2016/09/06 03:32:45  ID:R2NwcGdU.net
キモい ◆SEは死んだ?w
コメント1件

387
デフォルトの名無しさん[sage]   投稿日:2016/09/06 03:37:28  ID:s5Bd4cPT.net
>384
使用してない変数なら書かなければいいだけ。

使わないのに引数を省略出来ないっていうのは
C言語特有の問題だ。C言語特有の問題を持ち込まないように
コメント1件

388
◆SEdFBOkLSw [sage]   投稿日:2016/09/06 08:18:45  ID:aJS2GtR8.net
>386
そんなに否定されるか不安なのか?
>384
その定石は要はコンパイラが未使用変数だよ、と警告上げてくるから、使ってるフリするやつじゃないの?

長々誰かが説明してるけど、結論どっちでも良いよ。
書いても書かなくても。
コメント2件

389
デフォルトの名無しさん[sage]   投稿日:2016/09/06 09:41:59  ID:KC/iVCRe.net
>385, >387, >388
ありがとうございます。
すみません、言葉足らずでしたが、>388さんの通りC言語の
コンパイラの警告と同じような意味合いでの
eslintなどのunused-varsへの対処方法の相談でした。

引数消せばそれで良さそうとは思いましたが、それだと>385さんの通り
eventとか意味を持った引数がわかりにくくなりそうなので、定石みたいなのはあるのかなと。

結論はどちらでも良いとのことで好きなようにやっておきます。
コメント1件

390
デフォルトの名無しさん[sage]   投稿日:2016/09/06 13:11:41  ID:vTB9MQXO.net(2)
>389
一番いいのはそういう警告は殆どOFFにするか、無視すること。
正直言って本当に厄介なバグは見つけてくれない気休め程度のもの。
気休めに気を使うことくらい馬鹿らしいことはないと思わないか?

どちらでもいいと言われてるのは書く/書かないであって、
コメントアウトは3つの選択肢の中では最低と思った方がいい。

391
デフォルトの名無しさん[sage]   投稿日:2016/09/08 07:45:15  ID:O7PwNYbW.net
プロミスって簡単に探したら、種類がいっぱい有るんですね。
現在対象にしているのが、WinJS。
timeoutなんてのが有って驚いた。
これだと非同期ロジックにシーケンス書ける。

392
デフォルトの名無しさん[sage]   投稿日:2016/09/08 14:31:46  ID:OkMPKk85.net
標準Promiseは機能が少ないので、async/awaitを使って補うのがベストプラクティス。
もしくはextendsしても良いが、やや大変で難しいと思う。
一応キャンセルの案は入るのでtimeoutとかは簡単に実装できるようにはなる。
CancelToken型になりそうなのがまたちょっとアレだが、まあ拡張としては最適なのだろう。
https://github.com/tc39/proposal-cancelable-promises/blob/master...

393
デフォルトの名無しさん[sage]   投稿日:2016/09/08 23:37:57  ID:Vzj7Ghpg.net(2)
ちなみにasync/awaitに対応しているブラウザは少ないので
必然的にbabelを使うということである。
コメント1件

394
デフォルトの名無しさん[sage]   投稿日:2016/09/08 23:41:49  ID:Vzj7Ghpg.net(2)
なお、俺はasync/awaitを使いたいならbabelと言っただけで
async/awaitを使うと機能が増えるとは言ってない。
その話は言ったやつに聞け

395
デフォルトの名無しさん[sage]   投稿日:2016/09/09 00:04:44  ID:4wEFuM4p.net(3)
>393
ブラウザの話だけでいうのもどうかと思うよ。
WinJSが出てくるのならNW.jsとかNode系V8系の環境の話も十分考えられる。
V8系ならフラグオンで使えるわけだからね。

というかすぐ、互換性が〜とか言い出したり、実務を必ず伴わせようとするのは悪い癖だと思う。
ここはESスレなんだし、仕様やAPIの宙に浮いた話だって良いじゃない。

web制作板だったら確かに互換性や実際に世のブラウザで動く話は無視できないかもしれないけれど、
ここはプログラム技術板なんだし、
JSはそれこそ自分用のブラウザ拡張機能を作るためだったりするのにも使えるわけだし、
別に実験や遊びとしてこういった技術を扱う前提であってもいいと思う。

396
デフォルトの名無しさん[sage]   投稿日:2016/09/09 16:45:04  ID:dcApvFQ/.net(5)
lengthって名前の関数を作るときなんですが、

var Sample = function() {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.length = function() {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return 100;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
};
Sample.length = function() {
&nbsp;&nbsp;&nbsp;&nbsp;return 100;
};

let sample = new Sample();
console.log(sample.length()); // これは OK
console.log(Sample.length()); // これは エラー

っていう動作になるのはこういう仕様でしょうか?

397
デフォルトの名無しさん[sage]   投稿日:2016/09/09 16:46:02  ID:dcApvFQ/.net(5)
すみません、&nbsp;使えなかった
こちらです。

var Sample = function() {
  this.length = function() {
    return 100;
  }
};
Sample.length = function() {
  return 100;
};

let sample = new Sample();
console.log(sample.length());
console.log(Sample.length());

398
デフォルトの名無しさん[sage]   投稿日:2016/09/09 17:42:46  ID:mXWYcTT5.net
何がしたいの?w
コメント1件

399
デフォルトの名無しさん[sage]   投稿日:2016/09/09 18:03:02  ID:dcApvFQ/.net(5)
>398
具体的には
VectorUtil.length = function(x, y, z) {
  return Math.sqrt(x*x + y*y + z*z);
};
これがしたかったです
コメント1件

400
デフォルトの名無しさん[sage]   投稿日:2016/09/09 19:06:00  ID:R/34hIbI.net
Function.lengthは引数の数で定義済なんで無いの
コメント1件

401
デフォルトの名無しさん[sage]   投稿日:2016/09/09 19:15:39  ID:4wEFuM4p.net(3)
>399
class構文を使えばできる。
class Sample {
static length() { return 100 }
}
Sample.length()
コメント1件

402
デフォルトの名無しさん[sage]   投稿日:2016/09/09 21:42:09  ID:mcpsSWXB.net
画像収集の際にGreasemonkeyを利用してa要素+download属性を生成し、
整理しやすいように画像掲載ページのタイトル等から名前をつけて保存しているのですが、どうにかしてクロスドメインの画像に対してもリネームさせられないものでしょうか?
iframeを利用するというのも試してみましたが、元ページ側のタイトル変数などを受け渡すことが出来ず挫折してしまいました

403
デフォルトの名無しさん[sage]   投稿日:2016/09/09 21:52:24  ID:dcApvFQ/.net(5)
>400
そういう仕様っぽいような気がしました。
なぜ上書きできないのか、わかってないですが。

>401
なるほど、ありがとうございます。
classって糖衣構文だと思ってるんですが
内部的にはどうやってるのでしょう(調べてみます)
コメント1件

404
デフォルトの名無しさん[sage]   投稿日:2016/09/09 22:11:57  ID:4wEFuM4p.net(3)
>>なぜ上書きできないのか
[[Writable]]: false だから
https://tc39.github.io/ecma262/#sec-functioninitialize
ただし[[Configurable]]: true なのでディスクリプタセット系メソッドで上書きはできる

>>内部的にはどうやってるのでしょう
コンストラクタが定義され、その時点では上記のようにlengthプロパティを持っているが、
その後PropertyDefinitionEvaluation→ディスクリプタセット系によって上書きされる
https://tc39.github.io/ecma262/#sec-runtime-semantics-classdefinitionevaluation
コメント1件

405
デフォルトの名無しさん[sage]   投稿日:2016/09/09 22:27:00  ID:Ml2lLB3N.net
>403
babelで変換したらこうなったよ。
Object.definePropertyが鍵のようだ。
"use strict";
var _createClass = function () {
 function defineProperties(target, props) {
  for (var i = 0; i < props.length; i++) {
   var descriptor = props[i];
   descriptor.enumerable = descriptor.enumerable || false;
   descriptor.configurable = true;
   if ("value" in descriptor) descriptor.writable = true;
   Object.defineProperty(target, descriptor.key, descriptor);
  }
 }
 return function (Constructor, protoProps, staticProps) {
  if (protoProps) defineProperties(Constructor.prototype, protoProps);
  if (staticProps) defineProperties(Constructor, staticProps); return Constructor;
 };
}();
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
var Sample = function () {
function Sample() {
_classCallCheck(this, Sample);
}
_createClass(Sample, null, [{
key: "length",
value: function length() {
return 100;
}
}]);
return Sample;
}();
コメント1件

406
デフォルトの名無しさん[sage]   投稿日:2016/09/09 22:47:46  ID:dcApvFQ/.net(5)
>404 >405
ありがとうございます。
勉強になりました。

407
デフォルトの名無しさん[sage]   投稿日:2016/09/10 11:41:02  ID:bPnbAneW.net
わざわざインスタンス作るまでのことじゃない
という夢を見た
コメント1件

408
デフォルトの名無しさん[sage]   投稿日:2016/09/12 00:16:46  ID:MSYFEfr8.net
>407


409
デフォルトの名無しさん[]   投稿日:2016/09/14 11:42:56  ID:7fc5lKN8.net
<body onLoad="document.getElementById(id).style.display = 'none'">
でページを読み込んだとき表示させたくない部分を隠せるのだけど
ブラウザで何回もリロードしていると隠れている部分が一瞬表示されることがあります
これを防ぐ方法あったら教えてください
コメント4件

410
デフォルトの名無しさん[sage]   投稿日:2016/09/14 11:55:36  ID:T/00QwAr.net
>409
どうしてonLoadにしているのかが分からない
最初からidの要素に対してやればいいのでは?

411
デフォルトの名無しさん[]   投稿日:2016/09/14 21:09:29  ID:jzervOJ/.net
>409
表示に関することはCSSでやれ

412
デフォルトの名無しさん[sage]   投稿日:2016/09/15 04:07:08  ID:3ffkfw2U.net(2)
>409
そりゃonLoadで消す処理の前に描画処理が走ってしまうと表示されるだろうな
まずonLoad は画像等の外部リソースがすべて読み込まれるまで発火しないので、そういう場合どちらかと言えばDOMContentLoadedで呼ぶ方がいい

一瞬でも見せたくないならcssなど外部リソースへのリンクをすべて切った状態で表示されない状態であるべき
表示したい時にそのエレメントを作るまたは流し込む、あるいは非表示にしてあるものを必要に応じて表示にする方が好ましいと思う

413
デフォルトの名無しさん[sage]   投稿日:2016/09/15 05:14:15  ID:ql+kvaik.net(2)
先にCSSで、非表示に設定しておいて、JSで表示すればいい

414
デフォルトの名無しさん[sage]   投稿日:2016/09/15 05:20:33  ID:ql+kvaik.net(2)
正しいかどうかは知らないけど、

漏れは、<head>内で、CSSを読み込ませて、
<body>の終了直前で、JS, jQuery, jQueryUI を読み込ませている

415
デフォルトの名無しさん[sage]   投稿日:2016/09/15 08:25:11  ID:snQtI1Af.net(2)
>409
JS有効/無効関わらず、適用させるべきなら静的に外部CSSを適用する

JS有効時のみ適用させるなら
1. JSで動的に外部CSSを挿入する
2. JSで動的にstyle要素を挿入する
3. JSで動的にdocument.styleSheetsを操作する

416
デフォルトの名無しさん[sage]   投稿日:2016/09/15 08:35:03  ID:snQtI1Af.net(2)
回答しておいてなんだが、これはES限定の質問ではないので下記スレで質問すべきだな

+ JavaScript の質問用スレッド vol.122 + [無断転載禁止]©2ch.net
+ JavaScript の質問用スレッド vol.122 +

そもそも、このスレがvol.121の後継スレと銘打って立てるから、こういう勘違いした質問者が出てくるんだよな
「ECMAScript デス 6」として立てれば良かったものを…

417
デフォルトの名無しさん[sage]   投稿日:2016/09/15 16:12:55  ID:3ffkfw2U.net(2)
あっちは頭のおかしな子が常駐してるからなぁ

外部CSSでやった場合、その外部CSSを取得するためのhttpリクエストがコケたり読み込みが遅れた場合CSSが解釈される前に表示されてしまうよ
よって絶対に(一瞬たりとも)表示したくないならば外部CSSで隠すのではダメ

最低でもインラインCSSで静的に非表示にしておく事が最低条件で、可能ならそれを表示する必要が生じるまでDOM要素が存在しない状態にしておくべき
コメント1件

418
デフォルトの名無しさん[sage]   投稿日:2016/09/15 18:33:18  ID:tL4oMhKi.net
>417
> 外部CSSでやった場合、その外部CSSを取得するためのhttpリクエストがコケたり読み込みが遅れた場合CSSが解釈される前に表示されてしまうよ
link要素は基本同期読み込みだったと思うがな これ以上は該当スレでやってくれ
変な奴はどこにでもいるからスルーすればいいだけ

419
デフォルトの名無しさん[]   投稿日:2016/09/16 23:25:08  ID:90O68WAb.net
JavaScript の Closure Compiler
https://googledevjp.blogspot.jp/2016/09/closure-compiler-in-javascript.html

> Closure Compiler は、2009 年に元は Java でリリースされました。本日は、
> まったく同じ Closure Compiler がピュア JavaScript で Java を使わずに利用できる
> ことになったことをお知らせします。この仕組みは NodeJS 環境で実行するように設計されており、
> いくつかのよく使われているビルドツールをサポートしています。

> 初めて聞く方のために説明すると、Closure Compiler は JavaScript の最適化、トランスパイル、
> タイプチェックを行うツールです。これを使うと、コードを高パフォーマンスでサイズが縮小された
> コードにコンパイルすることができます。

> let、const、アロー関数などの ES2015 の新機能をサポートしており、まだすべてではサポートされていない
> ES2015 メソッドの polyfill も提供しています。メンテナンス性や拡張性の高い優れたコードを書けるよう、
> Closure Compiler は構文チェック、タイプの使用法の訂正、さまざまな JavaScript における注意点についての警告も行ってくれます。

これは素晴らしい。Closure CompilerはGoogle製でブランド力はあるのだが、
Javaが必要だったのがJavaScriptの世界に馴染めなかったんだ。

ただbabelはその先を行っていて、拡張可能な仕組みでES2015だけじゃなく
JSX対応とかコード変換にまつわることをサポートするツールになってるんだが、
対抗馬に鳴るだろうか?
コメント1件

420
デフォルトの名無しさん[sage]   投稿日:2016/09/17 08:30:02  ID:0xe0k3r9.net
>419
無駄な長文引用は止めてほしいものだな
BabelとClosure Compilerは用途が異なるので競合にはならない

421
デフォルトの名無しさん[sage]   投稿日:2016/09/17 13:55:23  ID:YjgX2ujU.net(2)
'use strict';
"use strict";
のどちらでも良いですか?
上級者の人はどちらを使いますか?
コメント2件

422
◆SEdFBOkLSw [sage]   投稿日:2016/09/17 13:56:43  ID:gYNx5cgj.net
その先を行ってる訳じゃないでしょ。
Javaが必要だった、と言うが、そんな事なんの問題でも無いと思う。
結局、どっちも、誰かの言う「良くないJavaScript」を「良いJavaScript」に変換するだけの存在。

423
デフォルトの名無しさん[sage]   投稿日:2016/09/17 15:18:00  ID:530UZtkB.net
>421
シングルの方がシンプルなので好まれる
ただJSONを書くときとの整合性を考えるとダブルになる
コメント2件

424
デフォルトの名無しさん[sage]   投稿日:2016/09/17 17:33:41  ID:YjgX2ujU.net(2)
>423
JSONでシングルは使えないのですか?

425
デフォルトの名無しさん[]   投稿日:2016/09/17 17:43:37  ID:5r5hyKhZ.net
> ただJSONを書くときとの整合性を考えるとダブルになる

そんなどうでもいいところの整合性なんて考えなくていい。
JSONとの整合性を保つ意味がない。

426
デフォルトの名無しさん[sage]   投稿日:2016/09/18 05:27:32  ID:/bzuSpCV.net(3)
俺はそういうとこを突き詰める人間のほうが好きだけどね。
プログラミングには少なからず美的要素が含まれるから。
少なくともそういうところを考えず放って来た者は上級者ではない。
コメント2件

427
デフォルトの名無しさん[sage]   投稿日:2016/09/18 11:44:00  ID:8zKQ5/pX.net(4)
>426
意味がわからん。

JavaScriptとJSONは似ているが別の言語と考えるべき。

言語に応じた最適な書き方を求めるべきであって、
別の言語の習慣を持ち込むなって話なんだけど?

428
デフォルトの名無しさん[sage]   投稿日:2016/09/18 12:18:29  ID:JCfSaSaV.net
>426
Cobolみたいな表記が良いの?

429
デフォルトの名無しさん[sage]   投稿日:2016/09/18 12:26:41  ID:Wkbj4nCn.net
JSONはCSVやXMLと同じ一つのフォーマットに過ぎない

430
デフォルトの名無しさん[sage]   投稿日:2016/09/18 15:20:31  ID:0+yFEvXA.net
JSONがJavaScript Object Notationであることを勘案すると>423は以下の様に翻訳できる

>ただJSONを書くときとの整合性を考えるとダブルになる
ただオブジェクト宣言時の表記との整合性を考えるとダブルになる

正直どうでもいいな

431
デフォルトの名無しさん[sage]   投稿日:2016/09/18 15:36:58  ID:7fymcmTA.net(2)
整合性ではなく、統一性なんだがw

432
デフォルトの名無しさん[sage]   投稿日:2016/09/18 15:45:54  ID:8zKQ5/pX.net(4)
統一する理由がない

433
デフォルトの名無しさん[sage]   投稿日:2016/09/18 16:59:06  ID:/bzuSpCV.net(3)
統一する理由がない。
つまりそれはどっちでもいいと言うことだろう?
逆にどっちが良いかの理由を探すのならそういうことも理由になり得るということだ。
君がそういうことを理由としないというのは結構だが、
理由とする人がいることは認めないといけない
コメント2件

434
デフォルトの名無しさん[sage]   投稿日:2016/09/18 17:17:43  ID:8zKQ5/pX.net(4)
>433
統一する理由がないと言ったのは、JavaScriptと
JSONのクォートの使い方を統一する必要が無いという意味ね。
JavaScriptはJSONじゃないんだから。

だからJSONを持ち出してきた事自体をなかったことにしろということ。
どちらにするかは採用するコーディング規約に従えばいいだけ。

435
デフォルトの名無しさん[sage]   投稿日:2016/09/18 17:27:13  ID:xD5NzQXy.net(3)
>433
それは理由になっている場合の理屈
君のそれが「正当な理由になってない」という事では?
コメント1件

436
デフォルトの名無しさん[sage]   投稿日:2016/09/18 17:41:30  ID:xD5NzQXy.net(3)
JSONとJavaScriptでは言語体系が違うからなあ
JSONはJavaScriptの文法を真似ているだけのファイルフォーマットだからね
JSONとJavaScriptのクォートを統一するのはPHPとJavaScriptのクォートを統一するようなもの

437
デフォルトの名無しさん[sage]   投稿日:2016/09/18 17:45:59  ID:xD5NzQXy.net(3)
現実的な理由としてHTMLタグをJavaScriptコードに埋め込む場合、文字列リテラルでダブルクォートを使っているとHTML要素の属性を括る文字にシングルクォートを使わないとエスケープが面倒くさいというのがある
HTML文書でシングルクォートを使っているなら統一性が生まれるけど、ダブルクォートを使っているならJSでは逆にシングルクォートを使った方が統一感があっていい
あまりないけど、サーバサイドスクリプトを介在してJSONをJavaScriptコードに埋め込む場合もシングルクォートを使っていた方が都合がよい
コメント1件

438
デフォルトの名無しさん[sage]   投稿日:2016/09/18 18:18:08  ID:7fymcmTA.net(2)
a = "123';
b = '456";
 前後のクォートが異なる ※整合性
a = "123";
b = '456';
 a b のクォートが異なる※統一性

JavaScriptに対しての統一性だと言ったんだよ
整合性が保たれていないと動作しないだろw

439
デフォルトの名無しさん[sage]   投稿日:2016/09/18 18:58:00  ID:/bzuSpCV.net(3)
>435
まず、どっちで書いても機能的には変わらないということが大前提にあるよね
そうしたらもう気分とかそういう人間側の都合になってくるわけよ

例えばHTMLではダブルが使われる事が多いので、
実際に埋め込むことは滅多にないだろうし、今はテンプレートリテラルもあるけれど、
気分的にJSではシングルを使うとかね

逆にそういう事が理由でないという人が今どちらかを使っている理由を聞きたい
その日のサイコロで決めてるというのでなければ理由があるはずだ
例えば本に書いてあったとか、最初に習ったのがこっちだったとかね

自分はそういう理由も理由だと思うけれど、
まだ大前提のうちでは理屈として一般的で、まだマシに意味がある想像を述べることを推してるのよ
コメント1件

440
デフォルトの名無しさん[sage]   投稿日:2016/09/18 22:55:44  ID:8zKQ5/pX.net(4)
>437
> あまりないけど、サーバサイドスクリプトを介在してJSONをJavaScriptコードに埋め込む場合もシングルクォートを使っていた方が都合がよ
そんなことしてるならコードを見直したほうが良いよ。
普通はJavaScriptオブジェクトをJSONに変換する。

441
デフォルトの名無しさん[sage]   投稿日:2016/09/18 23:18:12  ID:8mgjQq3k.net
>439
あなたのいう「認める」とは何?
端から見ればあなたがJSONとの統一性を気にしない人を「認めていない」のだが

442
デフォルトの名無しさん[sage]   投稿日:2016/09/19 05:07:37  ID:io387Cln.net(2)
すみません、よそ者ですが、
そもそもなぜ '' や "" で囲う必要があるのですか?

use strict;

ではダメな理由を教えていただけますでしょうか?
コメント1件

443
デフォルトの名無しさん[sage]   投稿日:2016/09/19 05:42:42  ID:Rfn/Judi.net
>442
use strictに対応してないブラウザでエラーが出るからだよ。
文字列にしておけば、古いブラウザでも単なる文字列があるだけ。
コメント1件

444
デフォルトの名無しさん[sage]   投稿日:2016/09/19 11:33:59  ID:io387Cln.net(2)
>443
ありがとうございました。
長年の疑問が解消しました。

445
デフォルトの名無しさん[sage]   投稿日:2016/09/20 00:04:22  ID:DlF8DRLC.net
Angular2で出来て、Vue.jsで出来ないことはどのような事がありますか?
また逆はありますか?

446
デフォルトの名無しさん[sage]   投稿日:2016/09/20 15:54:14  ID:GpfqQSu0.net
頭が相当悪いみたいだね?
一行目そのまま検索しろよw

447
デフォルトの名無しさん[sage]   投稿日:2016/09/21 14:44:20  ID:wW2qFR9f.net
すまん、言い過ぎた
反省してる

448
デフォルトの名無しさん[]   投稿日:2016/09/22 17:06:35  ID:zXBENXMk.net
誰かflow使ってる人いる?

449
デフォルトの名無しさん[sage]   投稿日:2016/09/23 12:16:27  ID:QcEXcfJB.net
統一する必要は無いけど、覚える量を減らしたいので統一しているよ。
コメント2件

450
デフォルトの名無しさん[sage]   投稿日:2016/09/23 13:55:08  ID:AF/DJJLc.net
>449
何の話?

451
デフォルトの名無しさん[]   投稿日:2016/09/23 22:25:12  ID:MCHe7LJO.net(2)
>449
RubyとJSONで "" と '' のどっちを使うかという話だろう?
コメント1件

452
デフォルトの名無しさん[sage]   投稿日:2016/09/23 23:00:49  ID:MCHe7LJO.net(2)
正直JSONを手書きするのはやめたほうが良いよ。

ライブラリを使って(各言語の)オブジェクトとJSONの
相互変換をした方がいい。だからJSONが""でくくられてる
なんか忘れるべき。

ただテキストエディタのatomとかの設定ファイルや
package.jsonとかがJSONだったりするんだよな。

手書きは全部YAMLにすればいいのに。
コメント1件

453
デフォルトの名無しさん[sage]   投稿日:2016/09/23 23:18:21  ID:oC1wKf1S.net
>451
JSONは"しか使えないから選択肢はないだろうに

>452
> 正直JSONを手書きするのはやめたほうが良いよ。
同意、JSならJSON.stringifyで十分だな

454
デフォルトの名無しさん[sage]   投稿日:2016/09/23 23:27:17  ID:Da0YgZYz.net
元々はjavascriptをシリアライズする為の物だったんだよね?
手書きする事はあまり考えられてなかったんじゃねーの

455
デフォルトの名無しさん[sage]   投稿日:2016/09/23 23:30:53  ID:laz5P8lZ.net(2)
設定ファイルをjsonで書くの多いだろ
jsonに変換するツール書くかのか? w

456
デフォルトの名無しさん[sage]   投稿日:2016/09/23 23:35:07  ID:aAYGOufH.net
ツールなんか使わなくともシリアライズする機能が各言語で用意されてるからな

457
デフォルトの名無しさん[sage]   投稿日:2016/09/23 23:46:44  ID:laz5P8lZ.net(2)
はあ?
じゃ【設定】はどこに書くんだよ w

458
デフォルトの名無しさん[sage]   投稿日:2016/09/23 23:51:52  ID:2jAc0sAD.net
JSON.stringify({a:1, b:2}); とか、普通にやるだろ
JSONを全部手書きしたらプロパティ名をクォートで括らなければならんし、面倒くさい
簡単なJSONの書き換えなら手入力するかもしれんが

459
デフォルトの名無しさん[sage]   投稿日:2016/09/24 00:04:59  ID:y4/Y2YH6.net(9)
お前、設定項目が数個のプログラムしか作った事ないのか? w
そんでもってa:1をa:2に書き換えたら、その都度そのプログラム実行するのか? 大爆笑
コメント2件

460
デフォルトの名無しさん[sage]   投稿日:2016/09/24 00:11:43  ID:8/0tEXHb.net(2)
>459
おまえは読解力が足りないアホなのか
数個だろうが何個あろうが、複数あるからシリアライズする価値がある
簡単な書き換えなら手入力するといってるだろ

461
デフォルトの名無しさん[sage]   投稿日:2016/09/24 00:18:30  ID:y4/Y2YH6.net(9)
お前はアホなのか?情報は一元管理が鉄則

これに反すると
"a":1を"a":2に書き換えてa:1をa:2に書き換えるハメになる
バカしかやらんわ
コメント1件

462
デフォルトの名無しさん[sage]   投稿日:2016/09/24 02:14:00  ID:bcRI8Hfy.net
>459
プログラムを実行も何も、ワンライナーじゃえの
var j=JSON.parse(fs.readFileSync(...));j.hoge=aaa;fs.writeFileSync(JSON.stringify..
コメント1件

463
デフォルトの名無しさん[sage]   投稿日:2016/09/24 06:05:18  ID:54HKSWWZ.net
promptでダイアログボックスを表示して、キャンセルを押すとNaNが返ってきます。
ダイアログボックスのキャンセルはNullが返ってくるとあったのですが、何がいけないのでしょうか?
見入力でOKを押した場合と、キャンセルを押した場合とで違う処理をしたいと思っています。
コメント2件

464
デフォルトの名無しさん[sage]   投稿日:2016/09/24 08:35:07  ID:8/0tEXHb.net(2)
>461
>462藻指摘してるが、JSON.parseしてからJSON.stringifyするだけだろ
2箇所を同時に書き換えなければならない、なんて思ってるのはお前だけ
コメント1件

465
デフォルトの名無しさん[sage]   投稿日:2016/09/24 09:16:15  ID:y4/Y2YH6.net(9)
>464
後出し大将現る
> JSON.stringify({a:1, b:2}); とか
コメント2件

466
デフォルトの名無しさん[sage]   投稿日:2016/09/24 10:00:58  ID:T2jfomp1.net
>463
知らんけどブラウザ依存じゃない?
https://jsbin.com/tamofawite/edit?js,output
Chromeだと false だった
コメント1件

467
デフォルトの名無しさん[sage]   投稿日:2016/09/24 12:47:39  ID:NUokNM1t.net(2)
>465
元々はJSONを入力する時の話だったからJSON.stringifyを紹介した
お前さんが「JSONとオブジェクト初期化子の2箇所を同時に書き換えるのか」とアホな事をいってJSON読み込みの必要が出てきたからJSON.parseを紹介した
お前さんが何の設定する事を想定していてどのように編集しているのか、俺は知らん
俺から見れば情報を曖昧に出して後出ししたのはお前の方

468
デフォルトの名無しさん[sage]   投稿日:2016/09/24 12:51:25  ID:NUokNM1t.net(2)
後な
JSONの設定編集は当初の>421の質問からは大きく話題がずれてる
JSONの設定に合わせてJavaScriptコードの入力スタイルを決める必然性はまるでない
君はそうなんだろうが、別の言語同士でクォートの記述を合わせる必要はないからな

GoogleのJavaScript Style Guideに合わせてシングルクォートを使う人もいるだろう
見た目を気にしてシングルクォートを使う人もいるだろう
HTMLで見慣れているダブルクォートを使う人がいるかもしれない
最終的には自分なりの好みや優先順位で決まるもので他人の考えを否定出来るほどの論理は基本的にない

469
デフォルトの名無しさん[sage]   投稿日:2016/09/24 12:58:58  ID:YdAnVmLb.net
勝手に整合性を自己定義している時点で間違い

470
デフォルトの名無しさん[sage]   投稿日:2016/09/24 13:04:04  ID:y4/Y2YH6.net(9)
後出し大将あらため言い訳番長
【設定ファイル】って知らないらしい
コメント2件

471
デフォルトの名無しさん[sage]   投稿日:2016/09/24 13:56:12  ID:e4J3FKju.net(2)
>470
何の設定ファイル?
JavaScriptには設定ファイルなんてないぞ。
コメント2件

472
デフォルトの名無しさん[sage]   投稿日:2016/09/24 14:33:05  ID:y4/Y2YH6.net(9)
おバカですねえ、揚げ足取りにすらなってない

473
デフォルトの名無しさん[]   投稿日:2016/09/24 15:28:20  ID:e4J3FKju.net(2)
揚げ足取りではなくて、質問なんだが?

質問なのに揚げ足取りに鳴るわけ無いだろw
それで、何の設定ファイル?

474
デフォルトの名無しさん[sage]   投稿日:2016/09/24 17:56:14  ID:y4/Y2YH6.net(9)
そんじゃ、質問で返してやるよ

キミが知ってる【設定ファイル】を読み込むプログラムを記述してる言語を答えよ。そしてその記述言語の設定ファイルの有無も答えよ。

これに回答できたら教えてあげる
コメント1件

475
デフォルトの名無しさん[sage]   投稿日:2016/09/24 18:01:32  ID:fVgLvkCD.net
こっちにも貼っとくか…
http://i.imgur.com/u6Rc0Au.jpg
自分がレスを返してる相手がレスを返す価値のある相手かよく考えろよ

476
デフォルトの名無しさん[sage]   投稿日:2016/09/24 18:32:49  ID:fP/MPmfi.net

477
デフォルトの名無しさん[sage]   投稿日:2016/09/24 20:38:30  ID:6IMs83+U.net(3)
>474
C言語。そしてC言語に設定ファイルなんてものはない。
コメント1件

478
デフォルトの名無しさん[sage]   投稿日:2016/09/24 20:43:52  ID:y4/Y2YH6.net(9)
>477
じゃ、教えてあげよう
atom
コメント1件

479
デフォルトの名無しさん[sage]   投稿日:2016/09/24 21:27:12  ID:6IMs83+U.net(3)
>478
atomはテキストエディタ
コメント1件

480
デフォルトの名無しさん[sage]   投稿日:2016/09/24 21:37:31  ID:y4/Y2YH6.net(9)
>479
そうだよ。javascriptの設定ファイルなんて誰も言ってないのに
どっかのバカがこんな(>471)マヌケな事言い出したから。ハア? だよ

>471
>>470
>何の設定ファイル?
>JavaScriptには設定ファイルなんてないぞ。
コメント1件

481
デフォルトの名無しさん[sage]   投稿日:2016/09/24 22:28:02  ID:/TWDHHcN.net
xjsonとか云うの出すらしいから
手書きも増えるし、要求されるかもしれない。

482
デフォルトの名無しさん[sage]   投稿日:2016/09/24 23:10:20  ID:6IMs83+U.net(3)
>480
意味がわからん。
atomの設定ファイルをJSONで書くからって
C言語などでJSONに合わせてコード書く必要ないだろ。
コメント1件

483
デフォルトの名無しさん[sage]   投稿日:2016/09/24 23:39:01  ID:y4/Y2YH6.net(9)
>482
それはキミがバカだからわからないんだよ
JSONで記述された設定ファイルの話をしていたら、どっかのバカが
>何の設定ファイル?
>JavaScriptには設定ファイルなんてないぞ。
と、絡んできただけ
コメント3件

484
デフォルトの名無しさん[sage]   投稿日:2016/09/25 00:39:56  ID:0J+83ZC2.net(13)
>483
だからJSONで記述された設定ファイルの話を

JavaScriptのスレでする意味ないだろって話なんだが?
コメント2件

485
デフォルトの名無しさん[sage]   投稿日:2016/09/25 05:34:54  ID:y4/VuarS.net(2)
もういいよ
>483が正しいって分かってるから
>484は放っておこう

486
デフォルトの名無しさん[sage]   投稿日:2016/09/25 07:44:51  ID:qiD59u34.net(3)
そうでないかと危ぶんでいたが、やはり、Atomだったか
Atomの設定ファイルをテキストエディタで編集するのはcsonだと思うが、jsonを編集する事なんてあるのか?
改行もインデントもされてないjsonファイルを直接編集するのはいかれてるとしか思えないんだが

> 皆>483が正しいって分かってるから
本人しか同意してないように読めるけどな
コメント1件

487
デフォルトの名無しさん[sage]   投稿日:2016/09/25 08:41:36  ID:hrPU7kVw.net(2)
>463 >466
jQuery UI のダイアログでも使えば?

OK, Cancelの2つのボタンしか無いなら、

if(OK){ }
else { }
でいいだろ

戻り値が、NaN というのは、数値変換エラーだから、プログラムにバグがある

>486
圧縮された、JSファイルでも、Edgeの開発者ツールなどで、きれいに整形して表示してくれる
コメント1件

488
デフォルトの名無しさん[sage]   投稿日:2016/09/25 09:50:51  ID:KU3wtz+G.net(2)
>484
>だからJSONで記述された設定ファイルの話を
>JavaScriptのスレでする意味ないだろって話なんだが?
足りない頭で必死に考えたんだろうが、バカ過ぎる

あるアプリの設定ファイルを設計したい、javascriptなのでJSONで行こうと思うが、
その際の注意点は…
全然問題ない
コメント1件

489
デフォルトの名無しさん[sage]   投稿日:2016/09/25 10:03:00  ID:NgaD/H31.net
そうだよな、設定ファイルがJSON形式というだけ

490
デフォルトの名無しさん[sage]   投稿日:2016/09/25 10:13:15  ID:qiD59u34.net(3)
>487
いや、「config.csonを編集することはあってもapplication.jsonを編集することはないんじゃない?」って事
テキストエディタの設定ファイルをテキストエディタで編集するなら、コメントやインデントをつけたくなるし、俺はAtomでJSONファイルを編集したことがない

> 圧縮された、JSファイルでも、Edgeの開発者ツールなどで、きれいに整形して表示してくれる
そういうツールがあるのは知ってる
JSONを整形するなら内部的にJSON.parseと同等機能を使っているはずだが、彼(>465)はなぜか否定的というか馬鹿にしている感があるし、主張がちぐはぐすぎるんだよな…


491
デフォルトの名無しさん[sage]   投稿日:2016/09/25 10:27:53  ID:qiD59u34.net(3)
そもそも、JSONはテキストエディタで直接編集することを踏まえていない感がある
インデントはできるが、コメントは使えない時点でテキストエディタで編集する気が起きない(Atomで膨大な設定用プロパティを全て覚えるのは無理)
どうしても必要な状況があれば「JSON エディタ」的な何かを使うだろうな

実際には>476のように設定用UIを別に作っているケースが多いと思う
Atomはユーザが直接編集するものはCSONかCoffeeScriptを使い、プログラム側で生成するものはJSONを使っている
コメント1件

492
デフォルトの名無しさん[sage]   投稿日:2016/09/25 12:11:22  ID:qud+/4QR.net
うーん。設定用UIねえ
ゲームエンジン作ったときの話だけど
ユーザー側の設定用UIはボチボチ作るというかJSONにしないけど
そのエンジンの設定ファイルを書き出すためのツール作らないでしょ
バージョンアップの度にUI弄って書き出すのか?と言うことになるし
intファイルと同じく手編集もするものだと思うよ
で、コーディングと一緒に書いていくから、クォーテーションの整合性を気にするのも自然
コメント1件

493
デフォルトの名無しさん[sage]   投稿日:2016/09/25 12:22:42  ID:iekzKwrb.net(3)
JSONがテキストエディタで編集するのに向かないって話じゃないの?
CSVをテキストエディタで編集しないのと同じ

494
デフォルトの名無しさん[sage]   投稿日:2016/09/25 12:24:56  ID:iekzKwrb.net(3)
>492
iniはコメントを許す仕様じゃなかったっけ
テキストエディタで編集する前提ならその設定行の意味するところをコメントで書くべきだと思うな

495
デフォルトの名無しさん[]   投稿日:2016/09/25 13:28:03  ID:0J+83ZC2.net(13)
>488
> あるアプリの設定ファイルを設計したい、javascriptなのでJSONで行こうと思うが、

別にJavaScriptだからってJSONを使う理由はないし
RubyだってJSONを使うことだってある。

っていうか、その理屈だとYAMLはいつ使うんだよ?w
YAMLみたいな言語はないぞ。
コメント1件

496
デフォルトの名無しさん[sage]   投稿日:2016/09/25 13:32:12  ID:0J+83ZC2.net(13)
Atomの例でわかるように、JSONが" " でくくられているからって、
JavaScriptのコードは "" で括る必要はないね。

497
デフォルトの名無しさん[sage]   投稿日:2016/09/25 13:33:11  ID:V/4I7o9u.net(2)
>495
YAMLみたいな言語、がようわからんね。
Yaml ain't markup language
なんだから、言語ではないよ。
コメント1件

498
デフォルトの名無しさん[sage]   投稿日:2016/09/25 13:33:55  ID:0J+83ZC2.net(13)
>497
だから設定ファイルの流儀をソースコードに持ち込むなって話だよ。
atomの例で分かったろw
コメント1件

499
デフォルトの名無しさん[sage]   投稿日:2016/09/25 13:53:31  ID:V/4I7o9u.net(2)
>498
そりゃ変だよ。
パースできるものとソースの書式が同じでなんの問題も無いし、
存在意義とか目的によって、サブセットになるのは至極当然な気がするが。
コメント1件

500
デフォルトの名無しさん[sage]   投稿日:2016/09/25 13:56:15  ID:6/nEO/uB.net
evalでパースすれば関数もパース出来るし、式も使える
コメントもあるし、""をキーに使わなくていいし、''を使う事も出来る
コメント1件

501
デフォルトの名無しさん[sage]   投稿日:2016/09/25 14:39:36  ID:0J+83ZC2.net(13)
>499
話がずれてる。同じだと問題があるなんて一言も言ってない。

同じにする必要はない。設定ファイルのことなんか忘れて
JavaScriptのやり方として良い方を選べって言ってる。

その例としてAtomを出したんだが?わからなかった?
Atomは設定ファイルにJSONを使っているが、
JSONが""だからって、ソースコードは""にする必要はない。
コメント1件

502
デフォルトの名無しさん[sage]   投稿日:2016/09/25 14:41:15  ID:0J+83ZC2.net(13)
>500
それはJSONの仕様を満たしていないから
JSONではない。

503
デフォルトの名無しさん[sage]   投稿日:2016/09/25 14:54:10  ID:hrPU7kVw.net(2)
>491
JSONでは、JSのコメントが使えないの?
それならダメだわ

Ruby, Groovy みたいに、言語そのものが、
設定ファイルとしても読める、DSL風の言語が優れている
コメント2件

504
デフォルトの名無しさん[sage]   投稿日:2016/09/25 15:05:45  ID:0J+83ZC2.net(13)
>503
お前「言語そのものが設定ファイル」の意味分かってないだろ。
言語そのものを設定ファイルとして読むっていうのならどの言語でも可能だよw

コンパイルしないと実行できない言語の場合は
コンパイラを内蔵する必要があるだろうけど。

505
デフォルトの名無しさん[sage]   投稿日:2016/09/25 15:36:47  ID:y4/VuarS.net(2)
>501
「必要はない」じゃないんだよ
「ない」という答えを出すのは簡単
元の質問に、「そんなのどっちでも関係ない、そんなこと聞くな」というのは簡単
でもそれじゃつまらないから、しいて言えばの理由をひねり出してるんでしょ
その前提分かってそういうこと言ってる??
しいて言えばそういうこと気にする人もいるということを言ってるの
別に一般的に気にする必要があるとは誰も言っていない

506
デフォルトの名無しさん[sage]   投稿日:2016/09/25 15:38:42  ID:0J+83ZC2.net(13)
はぁ?

じゃあGoogleのコーディングスタイルに合わせて
'' を使うべきだっていうのが正確だよw

507
デフォルトの名無しさん[sage]   投稿日:2016/09/25 15:39:13  ID:0J+83ZC2.net(13)
あ、見にくかったな。
' ' (シングルクォート)でくくるべきだっていうのが正解だよ。

508
デフォルトの名無しさん[sage]   投稿日:2016/09/25 15:51:35  ID:0J+83ZC2.net(13)
どっちが良いのかは、実際にどちらが多く使われてるかで決めたほうが良いよ。

http://sideeffect.kr/popularconvention#javascript

理由がある場合は必然的に多く使われるし
理由がなくとも一般的なJavaScriptの書き方として統一しておいたほうが良い。

あともちろんJavaScriptとしての話なので、
ここで他の言語のルールを参考にする必要はまったくないw

509
デフォルトの名無しさん[sage]   投稿日:2016/09/25 15:59:27  ID:0J+83ZC2.net(13)
数もそんなにないし転記しようかね? (俺のスタイルと完全に一致してるw)

・最後にカンマ vs 最初にカンマ → 最後にカンマ
○ var obj = {
foo: 1,
bar: 2,
× var obj = {
foo: 1
, bar: 2

・スペース vs タブ → スペース

・関数名の後にスペースを入れる vs いれない → 入れない
○ function foo() {
× function foo () {

・引数の前後にスペースをいれる vs いれない → 入れない
○ function fn(arg1, arg2) {
○ if (true) {
× function fn( arg1, arg2 ) {
× if ( true ) {

・オブジェクト定義の:の前後にスペースを入れる → 値の前のみに入れる
○ foo: 1,
× foo:1,
× foo : 1,

・条件文のキーワードの後にスペースを入れる → 入れる
○ if (true) {
× if(true) {

・シングルクォート vs ダブルクォート → シングルクォート

510
デフォルトの名無しさん[sage]   投稿日:2016/09/25 16:00:55  ID:rgw8PMte.net
前から疑問なんだが
JSONはなぜ大文字なの?
コメント1件

511
デフォルトの名無しさん[sage]   投稿日:2016/09/25 17:02:28  ID:+OU/FywJ.net
>510
JavaScript Object Notationの略であり、英語ではこの様に単語の頭文字を抜き出した略語を他の語と区別するために大文字で表記する慣習があるから

512
デフォルトの名無しさん[sage]   投稿日:2016/09/25 17:17:23  ID:0J+83ZC2.net(13)
つーかatomの例を出したんだから
そこから理解しろよw

JSONとJavaScriptは別物なんだから
JSONがダブルクォートだからって、
ソースコードまでJSONに合わせる必要ねーだろ。

文字列をくくるのはシングルクォートだし、
オブジェクトのキーであればそもそもクォートでくくらない。

513
デフォルトの名無しさん[sage]   投稿日:2016/09/25 17:20:48  ID:iekzKwrb.net(3)
>503
JSONではコメントを使えないのでAtomではテキストエディタで編集する前提のファイルにはCSONを使っている
上でJSON云々で暴れている人はJSONをまるで理解してしないと思われる
コメント1件

514
デフォルトの名無しさん[sage]   投稿日:2016/09/25 18:25:59  ID:afVL0VXc.net
どっかでみた感じのテンションの上がり方だな。

尻カンマではなく頭改行カンマ派だと言うことはおいといて、
なぜその言語のサブセットか自体であるべきではないと言い切っちゃうんだろう。

最悪、パーサが無くても解釈出来るようにだと思うんだが。

515
デフォルトの名無しさん[sage]   投稿日:2016/09/25 18:34:17  ID:KU3wtz+G.net(2)
>513
頭悪いな
じゃpackage.jsonでも、なんでもいいぞ
atomを使ってないのは正解だ

516
デフォルトの名無しさん[sage]   投稿日:2016/09/25 20:12:32  ID:0J+83ZC2.net(13)
知らないかもしれないが、package.jsonっていうのはnpmの話だ。
ソースコードをみれば、何が言いたいのかわかるだろう。
https://github.com/npm/npm/blob/master/lib/completion.js

JSONの流儀に合わせるやつなんていない。

517
デフォルトの名無しさん[sage]   投稿日:2016/09/25 22:29:45  ID:Pt+ww3lU.net
package.jsonをテキストエディタで書く人がいるとは…
彼は反論する度にボロが出てくるな

518
デフォルトの名無しさん[sage]   投稿日:2016/09/26 00:08:05  ID:fnqveAbt.net(2)
奴隷のように決められたパターンでしか使わないなら、手書きしないでも済むだろうね
コメント1件

519
デフォルトの名無しさん[sage]   投稿日:2016/09/26 00:15:10  ID:juGwjv/D.net(4)
>518
奴隷のようにって必要なくね?w

package.jsonは決められたパターンでしか
使わなくて済むようになってる。
だから手書きする必要もない。

OK?

520
デフォルトの名無しさん[sage]   投稿日:2016/09/26 00:17:22  ID:fnqveAbt.net(2)
それは奴隷のキミだけ

521
デフォルトの名無しさん[sage]   投稿日:2016/09/26 00:23:18  ID:vYe4FNCy.net
奴隷のように決められたフォーマット(JSON)でしか書かない人は誰だろうね

522
デフォルトの名無しさん[sage]   投稿日:2016/09/26 00:32:59  ID:juGwjv/D.net(4)
なんかまだ気づいてないみたいだけど、npmの
ソースコードはダブルクォートじゃなくて
シングルクォートを使ってるんだよ。

そしてオブジェクトのキーはダブルクォートでくくらない。
これがJavaScriptの標準的なコーディングスタイルなんだよね。

JSON? 関係ない話だね。

523
デフォルトの名無しさん[sage]   投稿日:2016/09/26 05:04:27  ID:ta1cG+2z.net
そのコーディングスタイルでは関係ない、無視しているというだけで
気になる人も居るだろうということを否定することはできない

524
デフォルトの名無しさん[sage]   投稿日:2016/09/26 18:00:26  ID:BmhEYJ2V.net
ang2で2つの要素をforするにはどうすればいいですか?
定義リストをforで回したいです
コメント1件

525
デフォルトの名無しさん[sage]   投稿日:2016/09/26 22:08:18  ID:vSvkRnqZ.net
>524
ang2とは?
状況は詳しく具体的に

526
デフォルトの名無しさん[sage]   投稿日:2016/09/26 22:38:26  ID:juGwjv/D.net(4)
ang2っていったらAngular2のことに決まってるだろ

527
デフォルトの名無しさん[sage]   投稿日:2016/09/26 22:44:16  ID:xBbiKNTT.net(2)
配列の要素を順番に、かつ非同期に処理するにはどうすりゃいいの?

[a,b,c].forEach((x)=>{
//?
});

コメントの部分にawait書いても当然エラー
(x)=>{の前にasync書いても並列で処理されるだけ
aを使った非同期処理が完了したらbを使った非同期処理を開始したい
なおforや再帰は使わないものとする
コメント2件

528
デフォルトの名無しさん[]   投稿日:2016/09/26 23:41:32  ID:juGwjv/D.net(4)
>527
あんたが言ってる「非同期」の正確な意味は?

JavaScriptはシングルスレッドだから並列に処理することは出来ない。
昔も今もそれは同じ。

スレッドを使うにはJavaScript外の機能を使うしかない。
つまりはブラウザではDOM APIの内部で使われてるスレッドを間接的に使うか
もう少し明確にスレッドを使っていることを明言しているWebWorkersを使うということ。

Promise(await/async)を使うだけならばシングルスレッドでもできる。
どういう意味で「非同期」と言っているか、本当にやりたいことは何かを言ってくれ。
コメント2件

529
デフォルトの名無しさん[sage]   投稿日:2016/09/26 23:55:09  ID:xBbiKNTT.net(2)
>528
たとえば以下で'a'を表示したら1秒待って'b'を表示させる(以下'c'も同様)にはどうすればいい?
forや再帰は無しで

['a','b','c'].forEach((x)=>{
new Promise(resolve=>{
setTimeout(()=>{
console.log(x);
resolve();
}, 1000);
});
});

setTimeoutはapiだからスレチ?
コメント1件

530
デフォルトの名無しさん[sage]   投稿日:2016/09/27 00:26:52  ID:2eVdEzmX.net
>527だけど上のほうに書いてあったreduceでthenを繋げる方法で解決しました
コメント1件

531
デフォルトの名無しさん[sage]   投稿日:2016/09/27 09:19:03  ID:lbwP9zfe.net
自分でeachAとか作って
await ['a','b','c'].eachA( async関数 )
のように書けるようにする必要がある

折角のasync関数なのにPromiseをこねくり回す位なら
for文使ったほうが絶対に良い
コメント1件

532
デフォルトの名無しさん[sage]   投稿日:2016/09/27 09:33:31  ID:Bz+GHRpv.net
>531
だよな、基礎知識の欠落

533
デフォルトの名無しさん[sage]   投稿日:2016/09/27 10:20:45  ID:4v6Nawqj.net
>528
言ってることがめちゃくちゃですがな。
並列・平行、同期・非同期についてもっと調べてからものを言ってくれ。
コメント1件

534
デフォルトの名無しさん[sage]   投稿日:2016/09/27 10:49:37  ID:5SWTtAlN.net
ループ中にsetTimeoutという概念が理解できないわ
コメント2件

535
デフォルトの名無しさん[sage]   投稿日:2016/09/27 11:02:56  ID:+FylPIiv.net(2)
>534
Watch dogタイマー知っている?
あれなんか、簡単な例だと思うよ。
コメント1件

536
デフォルトの名無しさん[sage]   投稿日:2016/09/27 12:31:43  ID:r4YBGm4y.net
>535
>530の解決を見ると例にもならないな
コメント1件

537
デフォルトの名無しさん[sage]   投稿日:2016/09/27 12:41:12  ID:+FylPIiv.net(2)
>536
? 配列要素処理のお話の事なの??
前からお話していた、非同期処理の周期タイマー利用のお話だと思ったけど。

配列要素処理なんだから、mapやreduce使えば済むんだもんね。
タイマーなんか関係ないわ。

538
デフォルトの名無しさん[sage]   投稿日:2016/09/27 12:49:21  ID:BPXrtVfk.net
>534
JSはシングルスレッドだから、イベントを非同期に見せかける。
イベントキューにイベントを投入して、その処理を待たずに、関数が先にリターンする

同期処理なら、インターネットとの通信など、
そのイベントが終了するまで、関数がリターンされない。
処理終了まで待つから、そこで処理が止まる

ちなみに、setTimeoutに、0を指定しても、イベントキューからイベントを取り出すのは、
次のサイクルになるので、最低でも、4msかかる

また非同期では、try-catch は使えないので、
昔ながらの戻り値で、エラーかどうかを判断する

つまり、イベントキューにイベントを投入するだけなので、
処理がそこで止まっていないので、すぐ次の処理へ進んでいくから

そしてどこかのタイミングで、イベントのコールバック関数が呼ばれるから、
どちらが先に呼ばれるか、タイミングが予測できないから、
よくバグるし、再現性がないので、非常に困る

539
デフォルトの名無しさん[sage]   投稿日:2016/09/27 13:25:00  ID:QIjlBim5.net
>529
setTimeoutはまあ非同期処理のダミーだとして回答すると、Promiseをプレースホルダーとしてthenでチェーンをつないでいけばいいので以下の様になる。

var promise=Promise.resolve();
['a','b','c'].forEach((x)=>{
promise=promise.then(()=>{
new Promise((resolve,reject)=>{
setTimeout(()=>{
console.log(x);
resolve();
}, 1000);
});
});
});

540
デフォルトの名無しさん[sage]   投稿日:2016/09/27 20:48:56  ID:pg5DZ73n.net
>533
質問者とは意思疎通できたから
君とは話さなくていいかなって思ってるよw

541
デフォルトの名無しさん[sage]   投稿日:2016/09/28 08:12:30  ID:zSRNZ6Ju.net
何かを理解したい、何かの知識が無い人間とだけ意思疎通できるってみっともないと気づかんのかねぇ。
そりゃ単に、語弊があったり正しいとは限らない言い方をしている事に自分が気づいてないのに加えて、飛んでくるマサカリ避けて終わりな、
とても低レベルな偽技術者ですってドヤ顔されてる気分。
コメント1件

542
デフォルトの名無しさん[sage]   投稿日:2016/09/28 12:21:35  ID:3RTmt4Yz.net
すみませんdwrについての質問はここでよろしいのでしょうか

543
デフォルトの名無しさん[sage]   投稿日:2016/09/28 12:49:31  ID:RDlboUCA.net
Access-Control-Allow-Origin: *
の設定をサーバーでしているのに、クロスドメイン制約でアクセス出来ません
chromeです
networkタブを見たら、アクセス自体が行われていないので、ヘッダの確認も出来ていないはずです

544
デフォルトの名無しさん[sage]   投稿日:2016/09/28 21:34:41  ID:NVy1RbGE.net
>541
> 何かを理解したい、何かの知識が無い人間とだけ意思疎通できるってみっともないと気づかんのかねぇ。

何を言ってるんだ?
今回意思疎通をしたいのは質問者であってお前じゃない。

知識がない人と意思疎通をするんじゃなくて
質問者と意思疎通をするのが目的。

そもそも俺は質問者が知識がないとはは思わないし、
お前、失礼なやつだな。失礼なだけのやつだな。
コメント1件

545
デフォルトの名無しさん[sage]   投稿日:2016/09/28 22:27:51  ID:EXLHhJLL.net
>544
「何かを理解したい」と「何かの知識が無い」は=じゃなくて、「または」だよ。

失礼と言うなら、「俺が『何かを理解したい人間は何かの知識が無い人間だ』と誤解しているに違いない」と言う発想自体が失礼だと思うけど。

お前がやってんのは、Excelの使い方が分からん人の「A列で3番目に大きい数字が欲しいんだけどどんな関数ある?」って質問に、嬉々としてIFとかRANKの使い方説明してるようなもの。
パソコンの大先生以外の何なのかわからんレベル。

何で?→それ以上の数字を更に検索したいんだよ→めんどくさいし使い捨てならA列コピって並べ替えちゃえば良いじゃん
があって然るべき。

546
デフォルトの名無しさん[sage]   投稿日:2016/09/29 02:37:58  ID:kaW1Iqgz.net
それは間違ってるよ
ここは似非回答者が知識をひけらかす場所だからね
けして人助けするスレではない
そこんとこ勘違いしないように!
コメント1件

547
デフォルトの名無しさん[sage]   投稿日:2016/09/29 18:44:44  ID:KUMvFnA4.net
>546
babel君のオナニースレだからねえ。

548
デフォルトの名無しさん[sage]   投稿日:2016/10/04 11:14:52  ID:R4xZGg72.net
オブジェクトをjson化した文字列がサーバーサイドにあり、
それをクライアントのJSに渡してオブジェクトに復元したいのです。
JSON文字列のままJSに渡してJSでJSON.parse()する方法と、
サーバーサイドでDeserializeしてオブジェクトを復元して、
それをJSに渡すのと
どっちが普通ですか?文字列の大きさは数メガバイトくらいです。
コメント1件

549
デフォルトの名無しさん[sage]   投稿日:2016/10/04 12:19:52  ID:Vg4EUv8s.net
>548
JSでJSON.parse()が普通
通信路は負荷が無いならなるべくテキストでな
コメント1件

550
デフォルトの名無しさん[sage]   投稿日:2016/10/04 18:21:44  ID:RzipCig6.net(3)
<input type="button" name="aaa" value="クリック" onClick="Disp_on_off('disp');">

<TABLE border="1">
<TR>
<TD>1行目:</TD><TD>aaaaaa</TD>
</TR>
<TR id="disp">
<TD>2行目:</TD><TD>nnnnnn</TD>
</TR>
</TABLE>

551
デフォルトの名無しさん[sage]   投稿日:2016/10/04 18:22:25  ID:RzipCig6.net(3)
function Disp_on_off(id){

var disp_zyoutai = document.getElementById(id).style.display;

if(disp_zyoutai=="none"){disp_zyoutai = "block";}
else{disp_zyoutai = "none";}

document.getElementById(id).style.display = disp_zyoutai;

}
テーブルの2行目をクリックボタンを押すたびに表示非表示にしたいんですが
クリックを2回押して2行目を表示させるとテーブルが崩れてしまいます
テーブルが崩れないようにするにはどうしたらいいんですか?
コメント2件

552
デフォルトの名無しさん[sage]   投稿日:2016/10/04 19:59:17  ID:oFIFwTqQ.net
>551
if(disp_zyoutai=="none"){disp_zyoutai = "table-row";}
コメント1件

553
デフォルトの名無しさん[sage]   投稿日:2016/10/04 21:56:34  ID:px5zXLds.net(4)
>551
function Disp_on_off(id) {
 var style = document.getElementById(id).style;
 style.display = (style.display === "none") ? "table-row" : "none";
}

554
デフォルトの名無しさん[]   投稿日:2016/10/04 21:56:43  ID:RzipCig6.net(3)
>552
ありがとう^^

それではcssでdisplay:none;したものをjavascriptでdisplay="block";
しようとしても表示されませんcssでnoneしたら表示は無理なんでしょうか?
コメント1件

555
デフォルトの名無しさん[sage]   投稿日:2016/10/04 22:00:08  ID:px5zXLds.net(4)
function Disp_on_off(id) {
 var style = document.getElementById(id).style;
 style.display = {none: "table-row"}[style.display] || "none";
}

556
デフォルトの名無しさん[sage]   投稿日:2016/10/04 22:01:54  ID:px5zXLds.net(4)
>554
CSSを使って表示の制御をするのはいいやり方だ。
CSSを使って表示の制御をするなら、CSSを使って切り替えれば良いのだ

557
デフォルトの名無しさん[sage]   投稿日:2016/10/04 22:10:22  ID:px5zXLds.net(4)
<input type="button"value="クリック" onclick="toggleDisp('disp')">

<table>
<tr><td>1行目:</td><td>aaaaaa</td></tr>
<tr id="disp"><td>2行目:</td><td>nnnnnn</td></tr>
</table>

table { border-collapse: separate }
table, td { border: 1px solid #000 }
#disp { display: none }
#disp.visible { display: table-row }

function toggleDisp(id) {
 document.getElementById(id).classList.toggle("visible");
}

558
デフォルトの名無しさん[sage]   投稿日:2016/10/05 02:32:23  ID:ei6gN13W.net(2)
>549
レスありがとうございました。
>JSでJSON.parse()が普通
そうですか。知らなかったです。
>通信路は負荷が無いならなるべくテキストでな
ちなみに、テキスト以外でデータを送ると問題が出る場合がありますか?
コメント1件

559
デフォルトの名無しさん[sage]   投稿日:2016/10/05 05:46:49  ID:R0YCD/Ke.net
テキスト以外でデータを送るとは?
WSでバイナリ形式オブジェクトで送るの?

560
デフォルトの名無しさん[sage]   投稿日:2016/10/05 19:44:50  ID:v4W0ZcSs.net
>558
パケット見ながらデバッグしてるときに涙が出る程度だよ
コメント1件

561
デフォルトの名無しさん[sage]   投稿日:2016/10/05 20:03:03  ID:ei6gN13W.net(2)
>560
そんなデバッグが出来るのかあ?
コメント1件

562
デフォルトの名無しさん[sage]   投稿日:2016/10/07 11:00:25  ID:NhgFAWyY.net
>561
Just do it!

563
デフォルトの名無しさん[sage]   投稿日:2016/10/09 00:31:57  ID:jFWGfuyl.net
angular2

Error: (SystemJS) Can't resolve all parameters for ActivatedRoute: (?, ?, ?, ?, ?, ?, ?, ?).
と出ます。どうすればいいでしょうか?
コメント3件

564
デフォルトの名無しさん[]   投稿日:2016/10/10 00:56:23  ID:tytyuWsD.net(4)
FirefoxのアドオンGreaseMonkeyつかって開いたページにあるワードが含まれてたらアラートするようにしたいんですがどうすればいいんでしょうか?
コメント4件

565
デフォルトの名無しさん[]   投稿日:2016/10/10 01:00:02  ID:tytyuWsD.net(4)
>564補足
とりあえずRegExp.testつかってやろうとおもったんですけどページの内容をどうやれば検索対象ストリングにいれればいいのかわかりません。

他にももっとスマートな方法あったら教えてください。

566
デフォルトの名無しさん[sage]   投稿日:2016/10/10 02:26:33  ID:6bVjh2uR.net
>563
「Can't resolve all parameters for ActivatedRoute」で検索!

>564-565
Node.textContent
https://developer.mozilla.org/ja/docs/Web/API/Node/textContent

var text = document.getElementsByTagName("body")[0].textContent;

<body> か、<head> の内容もいるなら、<html> 以下を取得すればいい
コメント2件

567
デフォルトの名無しさん[sage]   投稿日:2016/10/10 11:38:06  ID:UL1Nitj4.net(2)
>566
ありがとうございます
出来ました
コメント1件

568
デフォルトの名無しさん[sage]   投稿日:2016/10/10 12:14:26  ID:ToNMYAzu.net
>567
あなたは>563
それとも>564

569
デフォルトの名無しさん[sage]   投稿日:2016/10/10 13:26:43  ID:UL1Nitj4.net(2)
>563です


570
デフォルトの名無しさん[]   投稿日:2016/10/10 14:12:18  ID:tytyuWsD.net(4)
>566
わてもできたよ。
リンクまではっていただきありがとうございます。
ちなみに[0]はなにですか?
リンク先にも書いてなかったし、なくても出来きたけど。
コメント1件

571
デフォルトの名無しさん[sage]   投稿日:2016/10/10 18:59:33  ID:Fn778QpQ.net
>564
なんで猿なんだよ?
コメント1件

572
デフォルトの名無しさん[]   投稿日:2016/10/10 21:04:02  ID:tytyuWsD.net(4)
>571
よくわかりません。
さるつまりGreaseMonkey以外に使える方法があるということですか?

573
デフォルトの名無しさん[sage]   投稿日:2016/10/10 21:27:42  ID:c135JfrF.net
>570
getElementsByTagNameは疑似配列を返す
[0]がなかったら動かないはずだ

574
デフォルトの名無しさん[sage]   投稿日:2016/10/11 05:55:53  ID:GK6S8De2.net
そうなんですか

575
デフォルトの名無しさん[sage]   投稿日:2016/10/11 22:11:58  ID:Ld7sCMib.net
document.body でいいだろ。

というか、<html>/<body> 以外は特に querySelectorAll() をできるだけ使え。
もう getElementById(), getElementsByTagName() を使わないようにすべき。

なぜ getElementById() を使わないか?
var e = document.getElementById('E');
if (e) {console.log(e.id);}
と、わざわざ注意して if を書くよりも
[...document.querySelectorAll('#E')].forEach(e => console.log(e.id));
とか
[for (e of document.querySelectorAll('#E')) e].forEach(略);
とか
Array.from(document.querySelectorAll('#E')).forEach(略);
とか
Array.prototype.slice.call(document.querySelectorAll('#E'), 0).forEach(略);
とかの方が簡潔で高抽象で安定するだろ。
さらに、もし
Array.of(document.getElementById('#E')).filter(e => !!e).forEach(略);
なんて書いたら、filter が if と同じことになるわけで、結局、querySelectorAll() にしときゃ良かったとなるわけだ。

なぜ getElementsByTagName() を使わないか?
これも同様。略。
更に、getElementsByTagNameNS() も選択肢にしなきゃならないXHTMLだったらどうすんのって理由もある。
コメント1件

576
デフォルトの名無しさん[sage]   投稿日:2016/10/12 00:01:01  ID:bJD9Q0hO.net(3)
なぜってjQueryがあるのに、わざわざそんな冗長なことを
書く必要が無いからでは?

毎回Array.prototype.slice.callとかアホらしいw

var e = document.getElementById('E');

var $e = $('#E');

[...document.querySelectorAll('#E')].forEach(e => console.log(e.id));
[for (e of document.querySelectorAll('#E')) e].forEach(略);
Array.from(document.querySelectorAll('#E')).forEach(略);
Array.prototype.slice.call(document.querySelectorAll('#E'), 0).forEach(略);

$('#E').each(function() { console.log(e.id) });
コメント1件

577
デフォルトの名無しさん[sage]   投稿日:2016/10/12 00:14:50  ID:bJD9Q0hO.net(3)
訂正

$('#E').each(function() { console.log(this.id) });

578
デフォルトの名無しさん[sage]   投稿日:2016/10/12 02:21:42  ID:7Aphq+NE.net
javascriptファイルを自分のパソコンでは実行できるけれど
他人のパソコンでは実行できないようにしたいのですが、
そんな事可能でしょうか?
コメント1件

579
デフォルトの名無しさん[sage]   投稿日:2016/10/12 05:13:14  ID:jhqwQTsX.net
>578
認証性にして自アカウントでログインしなければsctipt要素を出力しなければいい

580
デフォルトの名無しさん[sage]   投稿日:2016/10/12 08:42:49  ID:L1c8TvqF.net
>575
あなたがお勧めする手法はgetElementsByTagNameでも使えるのでgetElementsByTagNameを使わない理由にはならない
違いを説明するならliveに言及すべきたが、liveは設計思想次第で利便性が逆転する部分なのでどちらか優れているという話でもない
ただし、同一tagNameの要素ノード群を得るなら基本的にはgetElementsByTagNameの方が優れているだろう
https://html5experts.jp/yoshikawa_t/1932/

581
デフォルトの名無しさん[sage]   投稿日:2016/10/12 20:38:12  ID:ao75rK/8.net
>576
NodeListはイテラブルではないので[...hoge]は使えないし、
Array.fromを使うんなら、forEachを使う必要がない。
やり直し。
コメント1件

582
デフォルトの名無しさん[sage]   投稿日:2016/10/12 22:33:54  ID:bJD9Q0hO.net(3)
>581
レスする相手間違えてるぞw

俺の答えは「jQuery使えば普通にeachが使えて古いブラウザでも動いて短く書ける」だ

$('#E').each(function() { console.log(e.id) });

583
デフォルトの名無しさん[sage]   投稿日:2016/10/15 05:07:47  ID:lTqPwJwr.net
間違いなく要素配列を返す$関数を自作した方がいい。
普通の配列はforEachを使ってるのに、要素配列はeachを使わないといけないのは不便でおかしいから。

jQueryのまずいところの一つはライブラリと言いながら重厚でフレームワークのよう。
一つ使い始めたらその世界全てを受け入れるしか無い。それがまた最新の標準から見て古臭いという点。

つまり機能の補足としてeach的なのが使いたいだけならjQueryを持ってくるのはアホだし、
もっと全体を考えるなら、jQueryよりよっぽど標準と親和性の高いまともなフレームワークを使ったほうが良い。
コメント1件

584
デフォルトの名無しさん[sage]   投稿日:2016/10/15 08:49:38  ID:WUtYR0l7.net
>583
それは自己妄想だろ?w

585
デフォルトの名無しさん[sage]   投稿日:2016/10/15 10:59:50  ID:8Bk/hmGM.net
> jQueryのまずいところの一つはライブラリと言いながら重厚でフレームワークのよう。
ん? どこが?

フレームワークというのは、フレームワークから決まった関数が呼ばれるから
その中身を書くもの。ライブラリは用意された関数を呼び出すもの。
どう見てもライブラリなんだが。DOM操作の代わりでしか無い。

586
デフォルトの名無しさん[sage]   投稿日:2016/10/16 20:58:57  ID:LWTFfjDf.net(12)
JavaScript入門者です。
クロージャで躓いています。

function Counter() {
var n = 0;
return function () {
return ++n;
};
}
var a = Counter();

a(); // 1
a(); // 2
a(); // 3

これでなぜ増えていくのかが分かりません。
a(); を呼ぶ度に、var n = 0; が実行されるはずなので、増えていかないと思うのですが…
なぜ var n = 0; は実行されないのですか?
コメント7件

587
デフォルトの名無しさん[sage]   投稿日:2016/10/16 21:05:46  ID:jbRBUkYK.net
>586
仕様です

588
デフォルトの名無しさん[sage]   投稿日:2016/10/16 21:07:45  ID:cgLhTvvH.net(5)
>586
aの中に何が入っているか、書き出してみてごらん
コメント1件

589
デフォルトの名無しさん[sage]   投稿日:2016/10/16 21:21:34  ID:LWTFfjDf.net(12)
>588
書き出してみるには、どうすればいいのでしょうか?
コメント2件

590
デフォルトの名無しさん[sage]   投稿日:2016/10/16 21:27:41  ID:cgLhTvvH.net(5)

591
デフォルトの名無しさん[sage]   投稿日:2016/10/16 21:33:14  ID:r3gdRhV6.net(2)
>586
a()は
function () {
return ++n;
};
でしょ
n = 0は実行されてない
コメント1件

592
デフォルトの名無しさん[sage]   投稿日:2016/10/16 21:34:44  ID:LWTFfjDf.net(12)
>590
手? こういうことですか?

a() {
var n = 0;
return function () {
return ++n;
};

593
デフォルトの名無しさん[sage]   投稿日:2016/10/16 21:36:43  ID:CBxMhCnR.net
>586
n = 0は一番最初に起動したときに
初期設定として入力されるだけで、あとはこれは呼び出されません
コメント1件

594
デフォルトの名無しさん[sage]   投稿日:2016/10/16 21:42:13  ID:LWTFfjDf.net(12)
>591
なぜ返り値だけになるのですか?
var n = 0; も一緒じゃないんですか?
コメント1件

595
デフォルトの名無しさん[sage]   投稿日:2016/10/16 21:42:56  ID:UhSHekdN.net
>589
console.logかFunction#toString
コメント1件

596
デフォルトの名無しさん[sage]   投稿日:2016/10/16 21:44:43  ID:LWTFfjDf.net(12)
>593
「一番最初に起動したとき」というのは、
a(); // 1
のときでしょうか?


597
デフォルトの名無しさん[sage]   投稿日:2016/10/16 21:57:12  ID:LWTFfjDf.net(12)
>595
それはどうやればいいのでしょうか?
参考書を読んでいるだけなので、デバッグの仕方もよく分かりません。

598
デフォルトの名無しさん[sage]   投稿日:2016/10/16 21:57:36  ID:cgLhTvvH.net(5)
function Counter() {
var n = 0;
return n;
}

var a = Counter();

この場合にaの中に何が入っているかわかるのなら、
>586でaの中に何が入ってるかは
置き換えるだけだろ
コメント4件

599
デフォルトの名無しさん[sage]   投稿日:2016/10/16 21:58:23  ID:cgLhTvvH.net(5)
> なぜ返り値だけになるのですか?

>598で返り値だけになるのなんて当たり前だよね?

600
デフォルトの名無しさん[sage]   投稿日:2016/10/16 22:04:46  ID:LWTFfjDf.net(12)
>598
aの中には、
var n = 0;
return n;
が入ってるのではないのですか?
なぜ、n = 0; は省かれるのですか?
コメント1件

601
デフォルトの名無しさん[sage]   投稿日:2016/10/16 22:12:37  ID:LWTFfjDf.net(12)
>600
間違えました。
aには返り値が入ります。なので、>598の場合は、aにはnが入って、つまり返り値だけになるのは分かります。

しかし、a(); の場合は、
var n = 0;
return n;
なぜ、こうならないのかが分かりません。

602
デフォルトの名無しさん[sage]   投稿日:2016/10/16 22:21:40  ID:22TTvDK/.net
そうするのが論理的で整合的だってことで話し合ってそういう実装にすることになっただけだよ。
JS以前からある思想を踏襲してるんじゃない?
Pythonかなんか知らんけどお

603
デフォルトの名無しさん[sage]   投稿日:2016/10/16 22:26:43  ID:r3gdRhV6.net(2)
>594
>なぜ返り値だけになるのですか?
キミがCounter()をそのように作ったから

>var n = 0; も一緒じゃないんですか?
return function() {return n++;}
のどこにn=0がある?
コメント1件

604
デフォルトの名無しさん[sage]   投稿日:2016/10/16 22:32:07  ID:LWTFfjDf.net(12)
あー、分かりました。
オブジェクトのコピーと混同してました。

var a = Counter();
確かにこれで、var n = 0; は入らないですね。返り値を代入しているだけだから。
すなわち、aには返り値の無名関数が入ると。

で、当然、a();には n = 0 は入ってなくて無名関数だけだから、呼ぶ度に加算される。

605
デフォルトの名無しさん[sage]   投稿日:2016/10/16 22:33:40  ID:LWTFfjDf.net(12)
>603
今になって思えば、まさしくその通りです(笑)

606
デフォルトの名無しさん[sage]   投稿日:2016/10/16 22:35:45  ID:LWTFfjDf.net(12)
>598
何度もよく読み返してみて自分の誤解に気づきました。
ありがとうございます。

607
デフォルトの名無しさん[sage]   投稿日:2016/10/16 22:57:07  ID:cgLhTvvH.net(5)
あー、うん。そしてconsole.log(a)すれば
aの中身は表示されるよ。
コメント1件

608
デフォルトの名無しさん[sage]   投稿日:2016/10/16 23:27:01  ID:LWTFfjDf.net(12)
>607
出ました。これが!

function () {
return ++n;
}

よーし、明日からまた頑張るぞ!

609
デフォルトの名無しさん[sage]   投稿日:2016/10/17 09:44:12  ID:JGocT82E.net
>586
いや、nじゃなくてaを考えろよ
コメント1件

610
デフォルトの名無しさん[sage]   投稿日:2016/10/17 10:02:05  ID:5vFd9dbv.net(4)
>609
周回遅れってわかってる?
コメント1件

611
デフォルトの名無しさん[sage]   投稿日:2016/10/17 10:35:49  ID:SVcsoL0R.net
++n;
これに何の意味、活用性があるのか?
小一時間問い詰めたい
コメント3件

612
デフォルトの名無しさん[sage]   投稿日:2016/10/17 11:35:06  ID:5vFd9dbv.net(4)
>611
キミは周回遅れ以前、出場資格ない

613
デフォルトの名無しさん[sage]   投稿日:2016/10/17 11:44:08  ID:EnKnOK0g.net
>611
ベーシックしか知らない方ですか?

614
デフォルトの名無しさん[sage]   投稿日:2016/10/17 12:15:27  ID:k5b8iytR.net
>611
「インクリメントした値を返す意味がある」としか答えようがないな
リファレンスを読み直しておいで

615
デフォルトの名無しさん[sage]   投稿日:2016/10/17 19:20:09  ID:wBVSlf54.net(2)
>610
馬鹿は口を閉じてろよザッコww
何仕切ってんだこのヴァカがw

616
デフォルトの名無しさん[sage]   投稿日:2016/10/17 19:49:26  ID:5vFd9dbv.net(4)
仕切ってなんかいない 見下してるだけだ
コメント1件

617
デフォルトの名無しさん[sage]   投稿日:2016/10/17 20:08:48  ID:wBVSlf54.net(2)
>616
馬鹿は口を閉じてろww
コメント1件

618
デフォルトの名無しさん[sage]   投稿日:2016/10/17 22:12:14  ID:MSv6dw6i.net
>586
現実的にこんな処理が必要になる状況ってあるの?
コメント1件

619
デフォルトの名無しさん[sage]   投稿日:2016/10/17 22:21:09  ID:xorYyxjj.net(2)
let result = "1\r\n2\r\n".match(/^/mg);
console.log(result);
1の前と、2の前と、最後の\nの前にマッチしてほしいが
1の前と、1つ目の\nの前と、2の前と、2つ目の\nの前と、2つ目の\nの後ろにマッチしてしまう

let result = "1\r\n2\r\n".match(/$/mg);
console.log(result);
1の後ろと、2の後ろと、2つ目の\nの後ろにマッチしてほしいが
1の後ろと、1つ目の\rの後ろ、2の後ろと、2つ目の\rの後ろと、2つ目の\nの後ろにマッチしてしまう

CRLFを含んだ文字列を処理するうまい方法はないものでしょうか?
仕様とあきらめて、LFのみに変換するしかないのでしょうか?
コメント3件

620
デフォルトの名無しさん[sage]   投稿日:2016/10/17 22:29:29  ID:xorYyxjj.net(2)
>619
訂正
1の前と、2の前と、2つ目の\nの後ろにマッチしてほしいが

補足
もう少しわかりやすく書くと、以下のようになってしまうのを修正したいです
result = "1\r\n2\r\n".replace(/^/mg, "!");
^1^
^2^
^
result = "1\r\n2\r\n".replace(/$/mg, "$");
1$$
2$$
$
コメント1件

621
デフォルトの名無しさん[]   投稿日:2016/10/17 22:49:51  ID:5vFd9dbv.net(4)
>617
お前、口開けてキーボード叩いてるのか?
知恵遅れの習性は謎だらけだ

622
デフォルトの名無しさん[sage]   投稿日:2016/10/17 23:36:27  ID:Da5IbuDC.net
口閉じろっていうのは喋るな(書き込むな)って意味だろう?

623
デフォルトの名無しさん[sage]   投稿日:2016/10/18 01:13:52  ID:sMICGAt6.net(2)
>619-620
>1\r\n2\r\n
>1の前と、2の前と、2つ目の\nの後ろに、マッチしてほしい

1の前・2の前は、行頭だろ。
2つ目の\nの後ろは、全文字列の最後

2つに分けて考える。
それか、全文字列の最後は無視して、正規表現とは別に処理にする

624
デフォルトの名無しさん[sage]   投稿日:2016/10/18 01:35:52  ID:g5oHSCaR.net(2)
> 1の前と、2の前と、最後の\nの前にマッチしてほしいが
「最後の\nの前」は「\rと\nの間」
1と2は「\nの後ろ」だったのに最後だけなぜ「\nの前」になるのだろうか?

625
デフォルトの名無しさん[sage]   投稿日:2016/10/18 03:24:17  ID:sMICGAt6.net(2)
>619
>1の前と、2の前と、最後の\nの前にマッチしてほしい

>620
で訂正している

>1の前と、2の前と、2つ目の\nの後ろにマッチしてほしい
コメント1件

626
デフォルトの名無しさん[sage]   投稿日:2016/10/18 08:02:45  ID:De2Roj8e.net(2)
>618
ちょいちょいあるんじゃない?

>625
/m消して、\n探しちゃいかんの?
コメント1件

627
デフォルトの名無しさん[sage]   投稿日:2016/10/18 09:15:43  ID:Vsk5WAhm.net
>626
>618
ドンな時?
コメント2件

628
デフォルトの名無しさん[sage]   投稿日:2016/10/18 09:38:02  ID:cWVmYcde.net(2)
>627
サンプルのコードは単純だけど、たとえばリターンに記述されている
”++n”を三項演算子に書き換えて、上限値に来たらリセットする
ループカウンターにする。
あとは、解析を困難にする為の無駄なコードとして扱う。

サンプルの処理が単純だけど、少し手を加えれば、どの様にでも使える。
コメント1件

629
デフォルトの名無しさん[sage]   投稿日:2016/10/18 11:46:33  ID:g5oHSCaR.net(2)
itaratorのように外部参照不可にする時、かな

630
デフォルトの名無しさん[sage]   投稿日:2016/10/18 11:53:07  ID:De2Roj8e.net(2)
>627
モジュールの中全体で一意な番号が欲しいとき。
シングルスレッドが保証されてるので、正確にはインクリメント演算子は必要無いけど。

>628
3項演算子もifも、比較文が必要でミスヒットすると悲しいから、Moduloの方が楽だと思う。
コメント1件

631
628[sage]   投稿日:2016/10/18 12:16:45  ID:cWVmYcde.net(2)
>630
>モジュールの中全体で一意な番号が欲しいとき。
”一意な番号”と云うと固定のenum宣言が頭に有ったけど
番号をmap管理すれば色々と使えますね。
なるほど。

>3項演算子もifも、比較文が必要でミスヒットすると悲しいから、Moduloの方が楽だと思う。
モジュールもある程度意味を持たせなければいけない考えなモノで
分岐処理も例に上げました。

632
デフォルトの名無しさん[]   投稿日:2016/10/18 16:19:34  ID:Vk/gbf1F.net
誰か気象庁の高解像度レーダー画像取得スクリプト作ってないですか?
低速低容量で使いたいので。

古いの(低解像度)
http://hakobe932.hatenablog.com/entry/20060803/1154575478
http://chameleoncyber.org/?p=335

http://www.kototoka.com/entry/2014/08/11/kishoutyou-nowcast-tenki-yoh...
・・・
標準のやつでもいいかな
コメント1件

633
デフォルトの名無しさん[sage]   投稿日:2016/10/19 17:30:13  ID:BuiU+rAj.net
>632
自作したら?
ES関係ないのでスレ違い

634
デフォルトの名無しさん[]   投稿日:2016/10/26 19:54:01  ID:wme53G2u.net(2)
インデントの仕方がよくわからないです。

var a={b:function (){}};


ってあった場合どんなふうにインデントするのがいいんですかね。
コメント4件

635
デフォルトの名無しさん[sage]   投稿日:2016/10/26 22:19:57  ID:RGR5F2yC.net(2)
整形でググる

636
デフォルトの名無しさん[]   投稿日:2016/10/26 22:49:40  ID:wme53G2u.net(2)
医療整形のぺーじばかりでしたよ。

637
デフォルトの名無しさん[]   投稿日:2016/10/26 22:58:30  ID:nn4J9Ce2.net
>634
var a = {
     b:function (){
      alert(“おまえは💩”);
     }
    };

638
デフォルトの名無しさん[sage]   投稿日:2016/10/26 23:02:07  ID:bmG2AFzy.net
var a = {
        b:function (){
        }
    };

639
デフォルトの名無しさん[sage]   投稿日:2016/10/26 23:23:52  ID:Tc/AxpVE.net(2)
>634
> ってあった場合どんなふうにインデントするのがいいんですかね。
インデントじゃなくてスペースの入れ方だろ?

採用するコーディングスタイル基準による。
こういうのはちゃんとチェックするツールが有って、今だとeslintっていうのが有名。

eslintではスタイルを選ぶことができるが(さらに独自でカスタマイズもできる)
その中で有名なのが、eslint:recommended と airbnb だろう。

eslint:recommended は比較的緩くてその書き方でも問題ない。
airbnbの場合は、var a = { b: function () {} };
(実際は const a = { b() {} }; を推奨される)

改行入れる場合はこうだな。
var a = {
b: function () {}
,
};

あと必ず { の後で改行入れろとか言ってるやつがいるけど、
最近はそれを採用している規約は少ない気がする。

スペースの有無は決まってることが多いけど、
改行の有無は、長ければ改行を入れるという決まりでいいだろう。
もちろん { で改行した場合はインデントを一つ増やす。

640
デフォルトの名無しさん[sage]   投稿日:2016/10/26 23:24:20  ID:Tc/AxpVE.net(2)
訂正

改行入れる場合はこうだな。
var a = {
 b: function () {},
};
コメント1件

641
デフォルトの名無しさん[sage]   投稿日:2016/10/26 23:32:21  ID:RGR5F2yC.net(2)
>634
別に何でもええんやで

642
デフォルトの名無しさん[]   投稿日:2016/10/26 23:50:35  ID:d99+vlL4.net
>640
もともとの>634にはなかった末尾カンマを追加する無能

643
デフォルトの名無しさん[sage]   投稿日:2016/10/27 00:43:35  ID:wk+FybyZ.net
ありがとう、インデントではなくスペースを入れるという考え方か。
著名なソース読んでも、機械的には入れてない気がしてたんだ。
にしても無名関数が読み慣れん。

644
デフォルトの名無しさん[sage]   投稿日:2016/10/27 00:50:40  ID:WMnZ+0Yu.net
適当にコーディングしていても、ツールで変換すればいい

F12開発者ツールで、JSファイルを整形して開くだけでも、正しく直してくれないか?

645
デフォルトの名無しさん[sage]   投稿日:2016/10/28 12:59:15  ID:pmKmGehb.net
小数点第一位までしかない1以下の小数を四捨五入して1か0にする方法を教えてください
0.1を0
0.5を1
Math.ceilだと1以上ないとだめでした
コメント3件

646
デフォルトの名無しさん[sage]   投稿日:2016/10/28 13:34:11  ID:dnmvvXjV.net
>645
Math.ceil()は繰り上げ、四捨五入ならMath.round()

647
デフォルトの名無しさん[sage]   投稿日:2016/10/28 13:47:06  ID:OnyL+paE.net
>645
そんなめんどくさい事しなくても、0.5足してfloorでいいんじゃないの?
コメント1件

648
デフォルトの名無しさん[]   投稿日:2016/10/29 05:43:28  ID:gGx5G/bS.net
0.5足すとか、気持ちわるいよ。
少しずれたりしないの?
コメント2件

649
デフォルトの名無しさん[sage]   投稿日:2016/10/29 12:07:08  ID:yHYEAqhD.net
>648
0,5未満なら0,5を足して四捨五入して
0.5以上ならそのまま四捨五入したらいいじゃん

650
デフォルトの名無しさん[sage]   投稿日:2016/10/29 12:17:53  ID:cEJXxPE7.net(3)
>648
ズレなくて、切りが良い。
コメント1件

651
デフォルトの名無しさん[sage]   投稿日:2016/10/29 14:11:06  ID:ypb3Na8r.net
>650
ずれたんだけど
alert(0.49999999999999999+0.5); // 1
コメント2件

652
デフォルトの名無しさん[sage]   投稿日:2016/10/29 14:47:07  ID:z8URZLOb.net
>651
alert(0.49999999999999999); // 0.5

問題外

653
デフォルトの名無しさん[sage]   投稿日:2016/10/29 15:25:53  ID:cEJXxPE7.net(3)
>651
jsfiddle.netで実行した結果を上げる。

alert(0.49999999999999999+0.5); // 1
alert(0.49+0.5); // 0.99
alert(0.499+0.5); // 0.999
alert(0.4999+0.5); // 0.9999
alert(0.49999+0.5); // 0.9999899999999999
alert(0.499999+0.5); // 0.9999990000000001

この環境の精度では、小数点以下四桁迄なら大丈夫になる。

”小数点第一位までしかない1以下の小数を四捨五入して1か0にする方法を教えてください”
なので、「小数点以下二桁は無い」事になる。
処理手順は、0.5を足して小数部分を捨てれば良い。

654
デフォルトの名無しさん[sage]   投稿日:2016/10/29 18:07:27  ID:O/3wAc5r.net
いや四捨五入する関数があるのに何でわざわざ計算してから切り捨てとかしなきゃいけないん?
コメント1件

655
デフォルトの名無しさん[sage]   投稿日:2016/10/29 18:16:09  ID:P+i+TDJ5.net
>647
マイナスの時に想定外の動作
コメント1件

656
デフォルトの名無しさん[sage]   投稿日:2016/10/29 18:55:02  ID:Lu2qC+Nv.net(2)
まさに>654のいう通り
Math.floorを優先する理由はない

657
デフォルトの名無しさん[sage]   投稿日:2016/10/29 19:15:01  ID:mMTmoVUB.net
そもそも四捨五入する理由はない
欲しがりません勝つまでは
我慢しろ

658
デフォルトの名無しさん[sage]   投稿日:2016/10/29 19:27:12  ID:Lu2qC+Nv.net(2)
四捨五入は質問(>645)の要件なのでどう考えても必要

659
デフォルトの名無しさん[sage]   投稿日:2016/10/29 19:52:25  ID:cEJXxPE7.net(3)
>655
コードにする以前の問題。
入力で認めていれば、エラー対応が必要だし
入力で処理に影響する情報を排除すればそのままで済む。

そもそもマイナス扱う処理で四捨五入使うかな?
コメント1件

660
デフォルトの名無しさん[sage]   投稿日:2016/10/29 19:53:28  ID:68KH7Ulz.net
マイナスのときにどっちに寄せたいかじゃないの?
-0.6を四捨五入でどっちにしたいか。
roundで0にできたっけ?

661
デフォルトの名無しさん[sage]   投稿日:2016/10/29 19:57:05  ID:eSvC8hNl.net
> 小数点第一位までしかない1以下の小数を四捨五入して1か0にする方法を教えてください
小数点第一位までしかないんだから
Math.round() で解決だろ

バカ

662
デフォルトの名無しさん[sage]   投稿日:2016/10/29 20:06:28  ID:JHScm7pH.net
ビット & なら Math 演算も不要
( (n) * 2) & 1
n が数でなくとも 0 か 1 になるが

663
デフォルトの名無しさん[sage]   投稿日:2016/10/29 20:37:58  ID:mNGjlCUC.net
ビット演算は32bitなのが問題
速度を稼ぐために制限付きを承知で使うならいいだろうが
コメント1件

664
デフォルトの名無しさん[sage]   投稿日:2016/10/30 01:00:03  ID:O7t7tgSU.net
>659
負の場合、例えば-20000.4は
> 小数点第一位までしかない1以下の小数
をみたすので、エラーでは無い
> 四捨五入して1か0にするには
四捨五入する桁を可変にすれば良いのかな?

665
デフォルトの名無しさん[sage]   投稿日:2016/10/30 05:11:47  ID:hqgegRgF.net
>663
ビット演算が速度を稼げるという根拠は?
例えば直近のV8 nightlyのアセンブラで書き直させたBuiltin_MathRoundingOperationよりも速いと言えるの?
結局無駄なf64<->i32キャストが発生するし、実際は速くないよ
速く使おうと思ったらUSE_ASM_Context内や、よっぽど変数の扱いを気を付けて
キャストが全体として起こらないようにしなければならない
コメント1件

666
デフォルトの名無しさん[sage]   投稿日:2016/10/30 05:55:23  ID:h7Os3ze3.net
変数の扱いを気を付けてキャストが全体として起こらないようにすると
ビット演算は速度を稼げると
>665は申しております。

667
デフォルトの名無しさん[sage]   投稿日:2016/10/30 10:21:13  ID:UrnMpVuD.net
小数一桁の数値を丸めるだけのことで何揉めてるの?
コメント1件

668
デフォルトの名無しさん[sage]   投稿日:2016/10/30 10:28:59  ID:TSDZ4OFC.net(4)
1/10が0.1になるのがキモイです
普通0じゃないですか?
1.0/10なら0.1ですが
コメント1件

669
デフォルトの名無しさん[sage]   投稿日:2016/10/30 11:32:50  ID:Z+vVaA9C.net
>667
要求仕様に対する、解析能力の確認ですね。

670
デフォルトの名無しさん[sage]   投稿日:2016/10/30 12:21:33  ID:dH+/za6/.net(2)

671
デフォルトの名無しさん[sage]   投稿日:2016/10/30 12:26:08  ID:TSDZ4OFC.net(4)
>670
javaの1/10は出来ないの?
切り捨てたり切り上げたり面倒なんだけど
コメント1件

672
デフォルトの名無しさん[sage]   投稿日:2016/10/30 12:39:39  ID:dH+/za6/.net(2)
>671
出来ない
他言語の常識を持ち込むのがナンセンス
コメント1件

673
デフォルトの名無しさん[sage]   投稿日:2016/10/30 12:42:33  ID:TSDZ4OFC.net(4)

674
デフォルトの名無しさん[sage]   投稿日:2016/10/30 16:50:23  ID:v2s+0v0Z.net(2)
>673
Math.floor(1/10); であなたの目的は達成できるが、数値演算をJavaと同じにするのは無理
コメント1件

675
デフォルトの名無しさん[sage]   投稿日:2016/10/30 17:02:25  ID:TSDZ4OFC.net(4)
>674
負数もそれでいける?
負数だと絶対値が切り捨てで増えて、切り上げで減るとか聞いたけど
コメント1件

676
デフォルトの名無しさん[sage]   投稿日:2016/10/30 21:42:24  ID:v2s+0v0Z.net(2)
>675
やってみれば分かることをなぜ聞くかな
試してから聞いてくれ

677
デフォルトの名無しさん[sage]   投稿日:2016/10/31 03:18:16  ID:vSxBS38U.net(8)
JavaScriptでPOJO的なクラスを宣言することの存在意義ってありますでしょうか?

例えば、何かしらで永続化するとして
class Person {
 constructor(name, age);
}

const p = new Person('あいうえお', 20);
// WebStorage?で永続化してもとに戻す。ここではJSONで
const json = JSON.stringfy(p);
const p1 = JSON.parse(json);

p1でコード補完なんて効くのか??
JavaScriptでPOJOクラスみたいなものを宣言する存在意義がわかりません。教えて下さい。
コメント1件

678
デフォルトの名無しさん[sage]   投稿日:2016/10/31 04:43:21  ID:lofvnrlW.net(2)
プロトタイプを持たないオブジェクトを作りたいのならクラスを使わない方がいい
JSON出し入れした場合などはプロトタイプが削除されどうせinstanceof等機能しないのだから。
お作法的にはcreatePersonという関数にする

まあクラスでもとんでもなくいけないということはない
それでわかりやすくなるというのならね

679
デフォルトの名無しさん[sage]   投稿日:2016/10/31 05:10:17  ID:vSxBS38U.net(8)
>JSON出し入れした場合などはプロトタイプが削除されどうせinstanceof等機能しないのだから。
ですよね。

>まあクラスでもとんでもなくいけないということはない
>それでわかりやすくなるというのならね
デシアライズした後はあんまわかりやすくならなさそうだったので質問してみした。

ありがとうございます。

680
デフォルトの名無しさん[sage]   投稿日:2016/10/31 06:43:17  ID:xWfuY90D.net(6)
>677
POJOの意味をわかってないねw

https://ja.wikipedia.org/wiki/Plain_Old_Java_Object より

> POJOの概念は、明らかにPOJOという用語より前から存在する。なぜなら、
> オブジェクトクラスの自然なありさまとは、何ら特別なものではないからである。
> この用語の功績は、何らかのフレームワークを使う利点がその複雑さを補って
> あまりあるかどうかということを開発者に考えさせるという点にある。
> シンプルな設計の方が優れている場合もあるということを思い出させる明確な用語がなくては、
> 複雑なフレームワークが十分な理由のないままシステムアーキテクチャに含まれてしまいやすい。
> POJOによる設計が一般的になるにつれて、大規模フレームワークの機能の一部はPOJOでも
> 実現できることが明らかになってきており、実際に必要な機能領域に対する選択肢は増えている。
> HibernateとSpringがその例である。

意味わかる? POJOっていうのは単なるクラス。フレームワークとかのクラスを継承しない
単なるクラス。それがシンプルで良いという考え方から生まれた用語。

JavaScriptでも同じ。単なるクラスがシンプルで良い。
wikipediaに書いてあるように、特別なものじゃないんだが?

永続化? 補完? そんなものPOJOの意義とは全く関係無い。

681
デフォルトの名無しさん[sage]   投稿日:2016/10/31 07:43:46  ID:vSxBS38U.net(8)
ありがとうございます。確かにPOJOの意味をしっかり理解してなく
ただシンプルぐらいの感覚で使ってたんですが、
ただ聞きたかったのは「POJOの存在意義」ではなく、
永続化するシンプルなクラスの「クラス宣言」をする存在意義をJavaScriptで知りたかったんです。
実際JavaScriptにはクラスというものはなくて
class Person {
 constructor(name, age);
はただのシンタックスシュガーらしいのですが、わざわざこんな宣言するメリットあるのかなと
それがが聞きたかったのです。
つまり、直接
var p = { };で作ってもいいんじゃないのかと。
コメント1件

682
デフォルトの名無しさん[sage]   投稿日:2016/10/31 07:47:51  ID:vSxBS38U.net(8)
つか、「存在」ってのつけたのがまずかったですね。
存在ってつけたからPOJOの存在意義って風に。すみまんせん。日本語がおかしかったです。
>永続化するシンプルなクラスの「クラス宣言」をする意義
ただの意義でした。
コメント1件

683
デフォルトの名無しさん[sage]   投稿日:2016/10/31 18:41:59  ID:lofvnrlW.net(2)
「クラス」って言うのはね、ただのオブジェクト指向をより良く扱うための概念なのよ。
だから、シンタックスシュガーもクソもなくてJSに「クラス」という概念はあるし、
素朴なプロトタイプベースで何もかもこなすのは非効率だから、昔から何らかのクラスシステムが使われてきた。
ただオブジェクト指向のやり方が「クラス」に縛られていないというだけ。
そして標準class構文は1つのより良いクラスシステムを提供するもの。

クラスから継承を取ったら何が残るかと言うと、それは見た目だよ。
createPersonのような関数で済ますのが普通だが、
もし他にそういった物がまだなく、全てクラススタイルで記述されていたらどうだ?
意味はなくとも意義がある。

>>var p = { };で作ってもいいんじゃないのかと
それは全体的な状況による。
例えばclass構文ガチガチのスタイル縛りの設計に無遠慮入れ込む事はできない。

684
デフォルトの名無しさん[sage]   投稿日:2016/10/31 18:44:45  ID:pApy3Eby.net
var p={};←タプル
class Hoge←OOPのクラス
として使ってる

685
デフォルトの名無しさん[sage]   投稿日:2016/10/31 21:26:05  ID:xWfuY90D.net(6)
>682
JavaScriptに限らず言語の文法っていうのは
可読性を上げるために作られているんだよ。

そして可読性を上げる方法の一つが、コードの中から読まなければ
いけないコードの量を減らすこと。

一定のパターンに対して名前をつけてその名前を覚えてしまうことで
読まなければいけない量を減らすことができる。デザインパターンもその一つだけど文法も同じ。
シンタックスシュガーも読まなければいけなかったコードを
短い言葉で置き換えてそれを覚えてしまうことで可読性を上げることにつながってる。
(とは言えなんでも覚えてしまうのは不可能だから、覚える価値があるものだけに絞るべき。
例えばプロジェクト固有の関数は覚える価値が少ない。言語仕様はどこでも使える知識だから覚える価値がある)

また文法っていうのは、汎用的な命令だたものを専用的な命令に置き換えることが
できるように進化してきている。例えばgotoはあちこちに飛ぶことができるものだが、
これをより専用化してbreakやretrunやthrowなどができた。
これはgotoだけでは色んな意味があるから何のために使っているのかわかりにくいが
専用的なbreakであればループを途中で抜けるんだろうなってことがわかるから。

JavaScriptはclassが無くても作れていたが、だが人間は関数とクラスを区別していた人が多かった。
だからその人間の感覚に近づけることが可読性向上につながるわけ。
可読性の問題なのだから無くてもできるのは当たり前。

var p = { }; これだとただのハッシュなのかクラスなのか、色んな使い方ができるから
これだけ見てもわかりづらいだろ? 使っている箇所を読まなければ分からない。

class Personであればnewして使うんだろうなってことが明確になる。
読まなくて済むわけだよ。これが可読性という話。

686
デフォルトの名無しさん[sage]   投稿日:2016/10/31 21:29:41  ID:xWfuY90D.net(6)
それと可読性というのは全体のコード量にも依存する。
class Personの方がわかりやすいが、全体のコードが数十行程度なら
そこまでする必要はない。

だからコードが短いうちはvar p = {} で書いていても良い。
だけどコードが増えたときには必ずclass Personに変更しなければいけない。

これを放っておけば、犬小屋を作るやり方で一軒家を作るようなことになりかねない。
規模によって適切なやり方は違う。

687
デフォルトの名無しさん[sage]   投稿日:2016/10/31 22:06:57  ID:R+gJxrwJ.net
>681
var p = { };は当然に
p instanceof Personがfalseになる

688
デフォルトの名無しさん[sage]   投稿日:2016/10/31 22:14:03  ID:vSxBS38U.net(8)
色々ありがとうございます。いわゆるクラスベースのオブジェクト指向言語については
もうC++,Delphi,Java,C#と10年以上はずっと使ってきました。
で、今回プロトタイプベースと言われる
JavaScriptを使って本格的にプログラミングし始めたのですが、もちろん最初は
クラス宣言してどんどんクラスを量産してたんですが、今回、例えばSettingsクラスみたいな
シンプルなPOJO的で永続化するクラスを作ろうとしたときに、
デシアライズすると元のプロトタイプチェーン?みたいなものが失われるし、
実際動作させた場合、最初のクラス宣言した元のSettingsクラスのインスタンスは最初の1回だけ作成され
後は別のプロトタイプチェーンが失われた別のインスタンス?とでもいうのでしょうかが動くことになるので、
ん?とちょっと手が止まってしまって質問した次第です。
コメント2件

689
デフォルトの名無しさん[sage]   投稿日:2016/10/31 22:22:26  ID:vSxBS38U.net(8)
まぁ、永続化後に元のプロトタイプチェーンが失われてinstanceofが機能しなくなりますが、
もちろん、クラス宣言があった方が、実際それ参照すれば元々どんな構造だったのか分かりやすいとは
もちろん思ってましたが、それを踏まえてJavaScriptの経験豊富な方たちは
どうしてるのかなと思って質問したわけです。

とりあえずはプロトタイプチェーンとか気にする必要ない用実装するので
クラス宣言する方向で行こうと思います。
コメント1件

690
デフォルトの名無しさん[sage]   投稿日:2016/10/31 22:23:55  ID:vSxBS38U.net(8)
Setttingsクラスとかだとクラス宣言ないとどんな設定あるのか把握きついですしね。

691
デフォルトの名無しさん[sage]   投稿日:2016/10/31 22:55:13  ID:hNQh9muD.net
>688
> デシアライズすると元のプロトタイプチェーン?みたいなものが失われるし、
> 実際動作させた場合、最初のクラス宣言した元のSettingsクラスのインスタンスは最初の1回だけ作成され
> 後は別のプロトタイプチェーンが失われた別のインスタンス?とでもいうのでしょうかが動くことになるので、
考え方がクラスベースで固定されてるのでプロトタイプチェーンをしっかり学ぶべきな気がする。
デシリアライズしたらプロトタイプ上のプロパティが失われるというが、実際にはシリアライズされた時には失われているのでは?
シリアライズが正常動作しているならそれはデシリアライズ処理がおかしいだけ。
最も、プロトタイプ上のプロパティを拾ってないだけな気もするが。

692
デフォルトの名無しさん[sage]   投稿日:2016/10/31 23:08:27  ID:xWfuY90D.net(6)
>688
永続化が問題なのか?クラスの話関係ないじゃん。

シリアライズっていうけどさ、やってるのはJSON文字列への変換だろ?
前提として関数等はJSON文字列に変換することはできない。

シリアライズされたデータの中に関数定義は含まれないので
関数定義とデータは別々に管理しなければならない。
ここまでは自明だよな?

あとはクラス定義(プロトタイプチェーン含む)をコードで作った上で
その中のデータのみをシリアライズ & デシリアライズする。
これがJSONオブジェクトを使った場合のやり方だろ?

693
デフォルトの名無しさん[sage]   投稿日:2016/10/31 23:09:18  ID:xWfuY90D.net(6)
つーかクラスと永続化の話を切り離して考えろ!

694
デフォルトの名無しさん[sage]   投稿日:2016/10/31 23:20:25  ID:xWfuY90D.net(6)
そもそも永続化の話ということで考えると、
お前それ本当に永続化したいと思ってんのか?って言いたくなるんだが。

何のために永続化が必要なんだ?
永続化なんてしないだろ。永続化しないもののために
わざわざ永続化のためのコードなんて書く意味ねーぞ?

Javaの話でも同じ。永続化しないものにSerializableなんて
やる必要ないぞ。何も考えずに無駄にコピペしてねーか?

695
デフォルトの名無しさん[sage]   投稿日:2016/10/31 23:29:48  ID:vSxBS38U.net(8)
え?
永続化する必要あるから永続化しようとしてるのに・・

696
デフォルトの名無しさん[]   投稿日:2016/10/31 23:48:32  ID:VoAu6vx9.net
もう、JavaScriptやめて、Java使えよ

グダグダとくだらねぇこと語って

697
デフォルトの名無しさん[sage]   投稿日:2016/11/01 03:03:10  ID:lWEkG1Wt.net
「Try Haxe」ヘックスで、試してみ

AltJSのHaxeでは、ソースコードを文字列化して送っても、型が消えない。
大規模開発に向く

698
デフォルトの名無しさん[sage]   投稿日:2016/11/01 08:40:03  ID:MkSUKVBa.net(3)
>689
分かった分かった。
君とここの住人はクラスに対する考え方が違うから話が噛み合っているようで無かったみたいだ。

要するに、クラスベース言語では通常捨てオブジェクトを作るにもクラスを設計するしか無いので迷わないが、
JSではプレーンオブジェクトを扱いたい場合にどうしたら良いかという話でしょ?

それならわざわざクラスを設計する必要がないというのが一般的な話だ。
オブジェクトの型ごとに空のクラスを置くのは全くもってJS流ではない。

JSでは、オブジェクトはより自由で気軽なもの。
オブジェクトを作りたいというだけなら、リテラルを使う。

幾つも同じタイプのオブジェクトを生成したい場合関数にて生成するが、
そういった場合それらのオブジェクトに共通した操作を定義したい場合も多い。
ここで初めて出てくるのがクラスだ。

つまりクラスとは、オブジェクト生成に必須のものでは勿論無いし、
あくまでオブジェクト指向の上で構造化のプログラミングする中で出て来る
手法・ツールの一つという位置づけでしか無い。

よって話を戻すと、今回の場合Personクラスを作る必要はない。
というかJSを使いに取っては完全にあり得ない、考えたこともない思考なので、混乱が生じた。
作る必要はないというか、そのような事を考えるのが異常なレベル。
コメント1件

699
デフォルトの名無しさん[sage]   投稿日:2016/11/01 10:02:53  ID:JdgZau7x.net
またバベル君が狂い始めてるのか。
コメント1件

700
デフォルトの名無しさん[sage]   投稿日:2016/11/01 21:13:39  ID:iw2Pppzi.net(3)
>698
お前がJS流とかきめんなや。
クラスを使うかどうかは規模やどう使うか決まる。
言語で決まるわけじゃない。

一般的なクラスとして扱いたいならばクラスにした方がいい。
人間の感覚とコードをできる限り近づけるようにするべきだ。

>699
呼んだ?w
コメント1件

701
デフォルトの名無しさん[sage]   投稿日:2016/11/01 21:24:11  ID:MkSUKVBa.net(3)
>700
いや、今話されてるのは言語で決まる類の話だ。
古き良きクラスベース言語では原則実態であるオブジェクトを作るには
雛形であるクラスを設計しなければならない。
しかしプロトタイプベースでもあるJSではその限りではない。
違いがあって当然。
コメント1件

702
デフォルトの名無しさん[sage]   投稿日:2016/11/01 21:34:38  ID:iw2Pppzi.net(3)
>701
なんで古い前提で話をしてるんだよw

新しいJavaScriptではclass構文が追加された。
当たり前だが気まぐれで追加されたわけじゃない。

これが必要とされたからだ。
であれば、どちらかと言えばclassを使うのが適切な場面では
classを使う方がいい。

プロトタイプベースから”改良"されてclass構文が追加されたんだよ。
コメント1件

703
デフォルトの名無しさん[sage]   投稿日:2016/11/01 21:46:38  ID:o4WGeuVh.net
アロー関数とクラス構文使わない奴は馬鹿と思う
アローのthisそのまま使えるのはチョー便利
長いfunction書かなくていいし

704
デフォルトの名無しさん[sage]   投稿日:2016/11/01 22:07:12  ID:x6lATtpW.net
誰に向かって言ってるの?

705
デフォルトの名無しさん[sage]   投稿日:2016/11/01 22:10:49  ID:iw2Pppzi.net(3)
分割代入もなにげに便利だよな。
最初はあまり使わないかなとも思ったけど
関数の引数で分割代入とか目からうろこのテクニック
Promiseと組み合わせて使うとほんと便利

706
デフォルトの名無しさん[sage]   投稿日:2016/11/01 22:20:38  ID:MkSUKVBa.net(3)
>702
>>どちらかと言えばclassを使うのが適切な場面ではclassを使う方がいい
とは一体何と何を比較して物を言っているの?
もしかしてclass構文と従来の関数+prototypeを比較した話をしているの?

自分はそんな話は全くしていないんだけど。
オブジェクトリテラルは君も使うでしょ?
それが無い言語、シンプルな使い捨てオブジェクトでさえも
そのための使い捨てクラスを作って、newするのが基本な言語もある。
それとJSは違うという話をしてるんだけど。

それとプロトタイプベースから改良されてという意味も分からない。
今まではプロトタイプベースの皮を被った癖のあるクラスシステムしか用意されてなかった
プロトタイプベースはあくまで言語の縁の下でしかなく、
自由に触れられず結局中途半端なクラスシステムに縛られていた。

プロトタイプベースが真に開放され、インスタンスベースなプログラミングが出来るようになったのは
class構文が搭載されたのと同じES2015から。
つまり"改良"はプロトタイプベースからではなく、プロトタイプベースの皮をかぶった中途半端なクラスシステムから。
その壁に穴を開けて下のプロトタイプベースと、上のより良いクラスシステムを見通せるようにしたというのが"改良"だ。

707
デフォルトの名無しさん[sage]   投稿日:2016/11/03 22:59:33  ID:cb4Y2Yz9.net
つうか、jscript.netとかswfのes4とか、十数年前からみんなclassて書いてるよ。

708
デフォルトの名無しさん[sage]   投稿日:2016/11/04 01:26:18  ID:LmRSOsos.net(2)
誰もclass構文の話はしていない
コメント1件

709
デフォルトの名無しさん[]   投稿日:2016/11/04 19:37:01  ID:eNDgRS9h.net
>708
JavaScriptのスレで話す内容ではない。

710
デフォルトの名無しさん[]   投稿日:2016/11/04 21:21:51  ID:LmRSOsos.net(2)
JSのプロトタイプベースに纏わる話は十分このスレの担当範囲だろうよ

711
デフォルトの名無しさん[sage]   投稿日:2016/11/07 21:32:53  ID:toRb2seg.net(2)
だれかCancelTokenについて話さない?
Promise.prototype.cancelよりもどこがどう優れてるのかとか。

712
デフォルトの名無しさん[sage]   投稿日:2016/11/07 22:10:09  ID:883psKTk.net(2)
せめてリンク貼れや

713
デフォルトの名無しさん[sage]   投稿日:2016/11/07 22:35:42  ID:toRb2seg.net(2)

714
デフォルトの名無しさん[sage]   投稿日:2016/11/07 22:46:11  ID:883psKTk.net(2)
> The cancel tokens of this proposal are heavily inspired by Kevin Smith's design sketch,
> which are in turn inspired by the .NET task cancelation architecture.
> They are discussed further, in much more detail, in "Cancel Tokens".

inspired by the .NET task cancelation architecture か
なら良さそうだな。

715
デフォルトの名無しさん[sage]   投稿日:2016/11/08 07:34:19  ID:Cn2WM8Zt.net(3)
そう、これが違和感があるのって、taskのcancelationだからなんだよ。
キャンセルの仕組みを外に出した方が応用が効いて便利ってことは分かるけれど、
PromiseってあえてjQueryなどのDefferedと違って内部を外に出さないように設計したよね。

将来的には増やす案があったし、V8なんかは暫く独自機能残してたけど、立ち消えになったよね。
Promiseはあくまでいつか確定される値の抽象だからそんなの付けるべきでないって意見が強かったよね。

逆にそうだからこそ、キャンセルの仕組みを外に出したとも見れるけれど、
プロミスの状態で考えると、解決・棄却・その他は対等なので、
一つだけ操作・利用の仕組みが大きく違うのが違和感ある。

716
デフォルトの名無しさん[sage]   投稿日:2016/11/08 09:02:08  ID:le3Xpa4U.net(3)
> PromiseってあえてjQueryなどのDefferedと違って内部を外に出さないように設計したよね。
というか、もともとキャンセルの仕組みもついでに処理途中の通知のシステムもないでしょ?

非同期処理をネストしないで書くための方法にとどめておくべきだよ。
asyncとawaitというシンタックスシュガーが使えない環境で
これらを使わずに同じように書くための仕組み。

それ以外は「タスク処理」をするためのフレームワークであって
Promiseとは別に作るべき。

> プロミスの状態で考えると、解決・棄却・その他は対等なので、
Promiseがやるのは順次処理(次の行へ進む)とエラー(例外)だけ
そもそもタスクとして考えるのがおかしい。

つーかついこの間たまたまタスク処理的なものを作ったけど
キャンセルとか状態の通知を追加するとPromiseとは呼べないものになったよ。
内部的にはFetch APIとかPromise使ってるんだけど、それを囲うための
タスク処理とそのタスクを管理する仕組みはイベントベースにせざるを得なかった。
Promiseでは無理

717
デフォルトの名無しさん[sage]   投稿日:2016/11/08 09:41:38  ID:le3Xpa4U.net(3)
なんでタスク管理の仕組みがPromiseじゃ無理かって言うと独自のメソッドが必要になるから。

タスクを管理するためのメソッドは色々ある。
タスクの中止やタスクからの情報通知だけじゃなくて
タスクの一時停止や再開、タスク情報の設定
(例えばダウンローダーみたいなのであれば保存するファイル名の変更とか)

Promiseでは情報がPromiseオブジェクトしか返ってこない
例えばFetch APIはPromiseオブジェクトを返すが、これはFetchオブジェクトじゃない。
Fetchオブジェクトに対してcancelとか色々やるならわかるが、
Promiseにcancel生やすなら、Promiseが内部的にFetchオブジェクトのcancelに
処理を渡さなきゃいけない。他のメソッドも同様。

そしてPromiseにキャンセルがあると思いきや、イベント通知。
つまりFetch APIを例にすると進捗状況だね。その進捗状況のイベントハンドラは
Fetchオブジェクトを知ることができるべきだろうけど、じゃあイベントハンドラで
キャンセルしたいときは? 方やPromiseのcancel、方やFetchオブジェクトのcancelじゃわけがわからない。
イベントハンドラの中でPromiseオブジェクトを取得できるのも意味不明。

Promise内部やPromsieの引数にPromiseを生成したオブジェクトを参照できるようにする方法も考えられるけど
Promiseのチェーンは前の戻り値を引き継いでいけるという仕組みだから使い方がおかしい。

時間切れだからここまでにしておくけど、ようするにPromiseでタスク管理をしてはいけないという話

718
デフォルトの名無しさん[sage]   投稿日:2016/11/08 09:46:21  ID:le3Xpa4U.net(3)
で、俺の意見としてはPromiseはこのままでいいから
別でタスク管理の仕組みを作れ。
タスク登録して優先順位とか並列実行とか
めんどくさかったわw
コメント2件

719
デフォルトの名無しさん[sage]   投稿日:2016/11/08 10:58:01  ID:Cn2WM8Zt.net(3)
>718
いや、君の意見は部分的にはもっともだよ。でも現実そうでないのがなんで?って話。

CancelTokenは、それ自体では完結してない。
あくまでPromiseに「解決」・「棄却」の2つの状態に更に「その他」を加えることが中核。
つまりPromiseが君の言うPromiseじゃなくなることまでは確定されてるのよ。

あくまでそのトリガーを、解決や棄却と同じ形でせずに、
外部からコントロール出来るようにするということでしかない。

だからもっと独立したTaskを作らなかったのが何で?って思うし、
Promiseを継承したCancellablePromiseでもなく、.cancelメソッドを生やすだけでもなく、
どうしてこういう今までのJSの流れと違う、ある意味中途半端で特殊な形にまとめたのかなって疑問。

720
デフォルトの名無しさん[sage]   投稿日:2016/11/08 10:58:54  ID:oVtTKQIX.net
ゴミ

721
デフォルトの名無しさん[sage]   投稿日:2016/11/08 11:04:57  ID:Cn2WM8Zt.net(3)
だから自分が言いたいことを整理すると、
どうしてPromiseとTask管理のキャンセルの仕組みを悪魔合体させたのかということ。
そしてそれが幾らか便利なのは分かるが、
簡単に.cancalメソッドを付けたりするくらいでも多くの場合十分なのではないかということ。

722
デフォルトの名無しさん[sage]   投稿日:2016/11/08 19:41:39  ID:L5B8nS+2.net(5)
classを定義したのですが、そのクラスのメソッド内のコールバックの中で
別のメソッドを呼び出したいのですがどうすればいいでしょうか??
class MyClass {

 method1();

 method2() {
  xhr.onreadystatechange = function() {
   method1を呼びたい。けど、this.method1じゃだめ
  }
 }

}
コメント2件

723
デフォルトの名無しさん[sage]   投稿日:2016/11/08 19:54:23  ID:nv3pE1Bb.net
>722
var that = this; で別変数に入れておいて、xhr.onreadystatechange = function(){ that.method1(); } みたいに使う。
あるいは xhr.onreadystatechange = () => { this.method1(); } みたいにアロー関数を使う。

724
デフォルトの名無しさん[sage]   投稿日:2016/11/08 20:02:58  ID:L5B8nS+2.net(5)
>var that = this; で別変数に入れておいて、xhr.onreadystatechange = function(){ that.method1(); } みたいに使う。
なるほど。this自体を別の変数に入れておけばよかったんですね・・
自分はvar method1 = this.method1
とメソッド自体を別変数に入れて呼び出してたんですけど、呼び出しは成功するっぽいのですが、
method1の内部でthisをmethod1() { thisほにゃらら }と参照するとthisが未定義になって困ってました。

>あるいは xhr.onreadystatechange = () => { this.method1(); } みたいにアロー関数を使う。
アロー関数は聞いた事ありませんでした。調べてみます。

ありがとうございます。

725
デフォルトの名無しさん[sage]   投稿日:2016/11/08 20:36:55  ID:oXq4xn77.net
ぶっちゃけstatechangeは滅多と使うものではない。
onload使え、もっと言うとfetch使え。

726
デフォルトの名無しさん[sage]   投稿日:2016/11/08 21:22:58  ID:L5B8nS+2.net(5)
何が標準でどの資料みればいいのかわかりませんが、
onloadは非標準とか書いてあったので、onreadystatechange使ってました。
onload調べてみます。fetchはなんぞ?
コメント2件

727
デフォルトの名無しさん[sage]   投稿日:2016/11/08 21:35:01  ID:L5B8nS+2.net(5)
FetchってXHRと全くの別物か。

728
デフォルトの名無しさん[sage]   投稿日:2016/11/08 22:01:06  ID:odPOKtVp.net
>722
var that = this; は古い
handleEvent を使えばスマートに書ける
https://developer.mozilla.org/ja/docs/Web/API/EventTarget/addEventListener#The_value_of_this_within_the_handler

729
デフォルトの名無しさん[sage]   投稿日:2016/11/08 22:13:14  ID:L5B8nS+2.net(5)
XHRのエラーハンドリングをまだほとんどしてなかったのですが、
onreadystatechangeだとエラーでstatusが0の時の処理とかあるので、
onloadとonerror使えばすっきりするってことですかね。
ということでonloadとonerrorに書き換えます。

730
デフォルトの名無しさん[]   投稿日:2016/11/09 06:22:28  ID:br65i1Lj.net

板復帰(OK!:Gather .dat file OK:moving DAT 521 -> 520:Get subject.txt OK:Check subject.txt 521 -> 521:Overwrite OK)0.44, 0.42, 0.41
age subject:521 dat:520 rebuild OK!

731
デフォルトの名無しさん[sage]   投稿日:2016/11/09 08:10:50  ID:HRJGJTih.net
>726
もし冗談でなく本当にonloadが非標準と書かれた情報が存在し、
それを見てしまったのなら今すぐに目ン玉を引っこ抜いて洗ったほうが良い。
それは5年以上前の情報だから、けして参考にしてはいけない。
死ぬぞ。

732
デフォルトの名無しさん[sage]   投稿日:2016/11/09 14:41:13  ID:SYPVDf2E.net

733
デフォルトの名無しさん[sage]   投稿日:2016/11/11 11:06:53  ID:hqcaajAu.net
npm install yarnと
linuxのyumとかapt-getでいれるyarn
どっちを使えばいいんですか?

734
デフォルトの名無しさん[sage]   投稿日:2016/11/11 21:39:29  ID:ENznHnYU.net
ndenv、nodenv、nodebrewあたりを使ってるならnpmしか選択肢にならない

735
デフォルトの名無しさん[sage]   投稿日:2016/11/13 16:04:40  ID:QhlptiVm.net
Google翻訳が改善されたというニュースを皆見たと思うが、
これは我々の世界の英語が得意でない者にとって革命だ。
今までは訳すと読むだけで頭が痛くなるような奇妙な日本語が生成されていたが、
今では勉強に集中できる程度に精度が向上している。

736
デフォルトの名無しさん[sage]   投稿日:2016/11/13 16:08:36  ID:foNYoSMf.net(2)
やったぜ

737
デフォルトの名無しさん[sage]   投稿日:2016/11/13 16:32:58  ID:jy2VGr1W.net(3)
Promiseって、処理結果を外に出したり、外から値もらったりするときに
レキシカルバインドした変数を介さないといけなくてダサい
もっとカッチョ良い制御構文無いの?
コメント4件

738
デフォルトの名無しさん[sage]   投稿日:2016/11/13 16:47:42  ID:foNYoSMf.net(2)
>737
*function

739
デフォルトの名無しさん[sage]   投稿日:2016/11/13 16:52:48  ID:TWR6TIrT.net(2)
>737
それ使っても、Promiseが見えなくなるだけで、
「レキシカルバインドした変数」は同じだよな?

740
デフォルトの名無しさん[sage]   投稿日:2016/11/13 21:18:16  ID:nngvad4K.net
>737
try-catch

741
デフォルトの名無しさん[sage]   投稿日:2016/11/13 21:33:19  ID:jy2VGr1W.net(3)
thenのコールバックの戻り値がPromiseだと、新しいPromise作らないで、それを使うのか
配列に複数の値突っ込んでそれを持ち回す事にした

レキシカルバインドした変数に代入する方法では、書き込む方と読み出す方の同期を取るのが厄介

742
デフォルトの名無しさん[sage]   投稿日:2016/11/13 21:51:23  ID:TWR6TIrT.net(2)
> 書き込む方と読み出す方の同期を取るのが厄介
シングルスレッドなのに何を言ってるのだろうか?
コメント1件

743
デフォルトの名無しさん[sage]   投稿日:2016/11/13 23:47:53  ID:jy2VGr1W.net(3)
>742
Promiseは非同期オブジェクトだから
それと同期してない奴が触ったときに処理が完了してるとは限らないんだな、これが
コメント3件

744
デフォルトの名無しさん[sage]   投稿日:2016/11/14 00:34:40  ID:UEPxPzue.net(9)
>743
Promiseは非同期処理を同期的に記述できるようにするものなんだが?
同期的に記述してるのに同期をとるのが厄介ってお前理解してないんじゃね?w
コメント1件

745
デフォルトの名無しさん[sage]   投稿日:2016/11/14 00:47:56  ID:8ZP1uHGR.net
>743
それと同期してない奴というのはPromiseに組み込めないの?

746
デフォルトの名無しさん[sage]   投稿日:2016/11/14 00:49:40  ID:y8otP/4p.net(3)
>744
処理待ちしてる間に別の処理を差し込めるからバインドしたthisの内容が保証されないって言いたいんじゃね
コメント1件

747
デフォルトの名無しさん[sage]   投稿日:2016/11/14 01:06:58  ID:UEPxPzue.net(9)
>746
意味わからん。まあ一言言っておくと、保証されないわけがない。
コメント1件

748
デフォルトの名無しさん[sage]   投稿日:2016/11/14 01:22:56  ID:y8otP/4p.net(3)
>747
オブジェクトにデータ積んで行くイベントをPromiseで繋げて完了待ちしてる合間に、
ユーザの操作で別イベントが発火したら未完了のデータに触れちゃうし書き換えられもするだろ?
コメント1件

749
デフォルトの名無しさん[sage]   投稿日:2016/11/14 01:24:49  ID:Gl21TU7L.net(4)
let g;
(new Promise())
.then()
.then(v => { g = v;}) // <==== (1)
.catch();

console.log(g); // <===== (2)

(2)を実行する時に(1)が完了している事は保証されていない
コメント4件

750
デフォルトの名無しさん[sage]   投稿日:2016/11/14 01:38:40  ID:UEPxPzue.net(9)
>749
> (2)を実行する時に(1)が完了している事は保証されていない

???

その場合は、(2)を実行する時に(1)が完了していないことが事が保証されてる

Promiseを実行して処理を非同期にした時点で、後回しにされるんだよ。
JavaScriptはシングルスレッドなんだから後回しになった処理が先に終わることはない。
他に割り込まれること無く(2)が実行される。
コメント1件

751
デフォルトの名無しさん[sage]   投稿日:2016/11/14 01:40:04  ID:UEPxPzue.net(9)
>748
それはPromise関係ないな。レキシカルバインドした変数も関係ないな。

二つのボタンがあったとして、先にクリックしたほうが
先に変数にデータを入れられるってだけの話だ。
コメント1件

752
750[sage]   投稿日:2016/11/14 01:43:25  ID:UEPxPzue.net(9)
あとついでに行っておくとそのコードはバグってて動かない
もう少しまともなサンプルもってこい
コメント1件

753
デフォルトの名無しさん[sage]   投稿日:2016/11/14 01:44:04  ID:y8otP/4p.net(3)
>751
お前……さては同期の意味を理解してないな?

744 名前:デフォルトの名無しさん [sage] :2016/11/14(月) 00:34:40.39 ID:UEPxPzue
>743
Promiseは非同期処理を同期的に記述できるようにするものなんだが?
同期的に記述してるのに同期をとるのが厄介ってお前理解してないんじゃね?w
コメント1件

754
デフォルトの名無しさん[sage]   投稿日:2016/11/14 01:46:54  ID:UEPxPzue.net(9)
>753
理解してないと思ったなら自分の考えを書けよ。

755
デフォルトの名無しさん[sage]   投稿日:2016/11/14 01:52:00  ID:wKdLnPZ8.net
昔サーバ会社に設定のことで問い合わせしたらさ
「example.jpというドメインは存在しません」
というトンチンカンな返答をもらったことあるんだよ

それに匹敵するくらいの無知さを>752からは感じた
コメント1件

756
デフォルトの名無しさん[sage]   投稿日:2016/11/14 01:54:42  ID:UEPxPzue.net(9)
>755
おまえ馬鹿だろw

今ここで間違ったコードを書く理由がないだろ。
>749はPromiseの使い方を全く分かってない
ということでしかないんだが。

Promiseを使ったコードを書けないから
どういう動きになるのかを自分で確かめることも出来やしない

757
デフォルトの名無しさん[sage]   投稿日:2016/11/14 08:36:58  ID:Gl21TU7L.net(4)
>750
> その場合は、(2)を実行する時に(1)が完了していないことが事が保証されてる

だから何?
逆と対偶って知ってる?
コメント1件

758
デフォルトの名無しさん[sage]   投稿日:2016/11/14 08:49:19  ID:Gl21TU7L.net(4)
想像力が欠如しているID:UEPxPzueには理解出来できなかったが、
複数の非同期オブジェクトを協調して動かす場合は同期が不可避って事だよ

シングルスレッド? 何それ、美味いの w

759
デフォルトの名無しさん[sage]   投稿日:2016/11/14 09:12:07  ID:UEPxPzue.net(9)
>757
どこが逆と待遇なんだよw

保証されてると言ってるだろ。
必ず(2)は(1)よりも先に動くんだよ。

760
デフォルトの名無しさん[sage]   投稿日:2016/11/14 09:20:35  ID:Gl21TU7L.net(4)
このスレは頭の悪い人が多いな

「逆と対偶って知ってる?」今日1日猶予あげるからよく考えてごらん
コメント2件

761
デフォルトの名無しさん[sage]   投稿日:2016/11/14 09:36:25  ID:UEPxPzue.net(9)
こいつ前スレかどこかでsetTimeoutが必要だとか言って暴れてたやつだろw
蓋を開けてみれば、下請けに作らせた(嘘だろうなw)独自実装の
PromiseっぽいPromiseではないもの(つまり別物)の話で
そいつにしか関係ない話だってやつ。
コメント1件

762
デフォルトの名無しさん[sage]   投稿日:2016/11/14 14:11:42  ID:SjW+Vo1Y.net(2)
>761
俺じゃないよ。
俺は眺めてるw

763
デフォルトの名無しさん[sage]   投稿日:2016/11/14 14:29:20  ID:njlrvKgq.net(2)
スマンが俺もずっと様子を見ていたが>737の意味が未だに分からないww
最初はプロミスは基本的に1つの値を流していくため、
非同期処理中沢山の変数を共有しようと思ったら外部変数にするしか無いのが
関数型チックに書ききれなくて煩わしいのかと思ったのだが、そうではないのか?

764
デフォルトの名無しさん[sage]   投稿日:2016/11/14 14:30:47  ID:njlrvKgq.net(2)
>760
頭がいいのなら、馬鹿にも分かるように説明しろ
それができないのならお前の中でのことでしかない

765
デフォルトの名無しさん[sage]   投稿日:2016/11/14 17:08:18  ID:SjW+Vo1Y.net(2)
正直、RxJSが気持ちよすぎてPromiseがあろうが無かろうがどうでも良くなって来てる。俺は。
仕事では使わんけど。

766
デフォルトの名無しさん[sage]   投稿日:2016/11/14 17:17:23  ID:rHIPepSr.net
>749
何を当たり前のことをいってるんだ?
非同期処理ならそれが当然だろう
非同期処理を同期処理化したいならawaitを使えばいい
awaitは非同期処理を理解していない初心者が有り難がるが、非同期処理のメリットが全部なくなるきたがるんだよな

767
デフォルトの名無しさん[sage]   投稿日:2016/11/14 17:27:11  ID:kL+E10ET.net(3)
>749
実行キューに登録された関数が終了するまでは他の関数が起動することはないから絶対2が先に実行される

768
デフォルトの名無しさん[sage]   投稿日:2016/11/14 17:40:50  ID:0PpRMTCP.net
>760
知ってるけど、だから何?
頭が悪いのはお前の方だわ

769
デフォルトの名無しさん[sage]   投稿日:2016/11/14 17:44:02  ID:kL+E10ET.net(3)
何だ荒らしか

770
デフォルトの名無しさん[sage]   投稿日:2016/11/14 17:54:39  ID:kL+E10ET.net(3)
俺もjavaから入ったからjsの非同期はjavaのスレッドと思っていたけど(だから何故どこにも排他処理の事が書いてないか疑問だった)、しっかり説明読んでやっと理解出来た
だから初心者には難しいのは知ってる
でも初心者なら普通黙って聞くよね?

771
デフォルトの名無しさん[sage]   投稿日:2016/11/15 01:46:02  ID:b2LTbejx.net
そう。JavaScriptはシングルスレッドっていうのはそういうこと
非同期処理と非同期は処理がどちらが先に実行されるかは当然わからないが、
非同期処理と同期処理は同期処理が先に実行される。

Promiseを使った時点でそれは非同期処理になる
そしてPromiseは複数の非同期処理を、終わったら次に進むという形に
するものなんだから、どちらが先に実行されるかなんて迷う余地はない。

772
デフォルトの名無しさん[sage]   投稿日:2016/11/15 07:10:15  ID:yv04JlgE.net
XHRがしっかり扱える程度にコールバックや非同期のこと理解してたら
Promiseなんて排他制御が必要になる部類よりずっと簡単ですぐ理解できると思うけどな

773
デフォルトの名無しさん[sage]   投稿日:2016/11/18 17:09:50  ID:3VtCl+DR.net
yarnでeslint-config-airbnbインストールできません
たすけてください
yarn global add eslint-config-airbnb
yarn global v0.17.4
warning No license field
[1/4] Resolving packages...
[2/4] Fetching packages...
[3/4] Linking dependencies...
warning Incorrect peer dependency "eslint-plugin-jsx-a11y@^2.2.3".
[4/4] Building fresh packages...
warning eslint-config-airbnb@13.0.0 has no binaries
warning No license field

774
デフォルトの名無しさん[sage]   投稿日:2016/11/18 17:11:58  ID:Amerid1m.net
いやーん

775
デフォルトの名無しさん[sage]   投稿日:2016/11/26 14:28:20  ID:gspGiUEm.net
JavaScriptやjQueryでObjectをコピーする文法には
馴染めないのですが、そんな事はないですか?
コメント4件

776
デフォルトの名無しさん[sage]   投稿日:2016/11/26 18:46:17  ID:pi8DulB7.net
>775
> Objectをコピーする文法
あなたのその表現が馴染めない
シャローコピー?ディープコピー?
コメント1件

777
デフォルトの名無しさん[sage]   投稿日:2016/11/27 07:31:30  ID:T/GZ1EFf.net
extendとかそう言うやつか。

778
デフォルトの名無しさん[sage]   投稿日:2016/11/27 08:53:16  ID:AMkv8rTe.net
必要性がないなら馴染む必要もないと思う

779
デフォルトの名無しさん[sage]   投稿日:2016/11/27 13:37:49  ID:wcKeEZPe.net
>776
単にコピーと言ったときはシャローコピーだろ
ディープならディープと書く
おまえはキスするときいつも相手に訊くのか?
コメント1件

780
デフォルトの名無しさん[sage]   投稿日:2016/11/27 14:09:11  ID:AZC2UzDM.net
そりゃ、キスする前にバードキスとディープキスどっちがいいって?
マナーとして聞くでしょうに。

781
デフォルトの名無しさん[sage]   投稿日:2016/11/27 15:54:55  ID:4ldlRD1J.net
>775
まずJavaScriptではいかなる方法を使っても
Objectを完全にコピーすることはできない。

だからObjectのコピーではない命令を
あんたが使っているだけにすぎない。

だからあんたがコピーだと思っている文法と
違うわけだ。

782
デフォルトの名無しさん[sage]   投稿日:2016/11/27 17:47:28  ID:mveO+vV3.net
× いかなる方法を使ってもObjectを完全にコピーすることはできない
○ いかなるObjectをも完全にコピーする方法はない

783
デフォルトの名無しさん[sage]   投稿日:2016/11/27 22:08:04  ID:q8z3Tnre.net
>779
ひょっとすると、参照コピーを指しているのかも切れないので、シャローコピーと決めつけるのは早計

var obj1 ={}, obj2 = obj1;
obj1.a = 1;
console.log(obj2.a); // 1

初心者がはまりやすいのはこっちだと思うね
シャローコピーではまるのは Object.assign をディープコピーだと思って使ってしまうとか?
いずれにしても、質問者の情報待ち
コメント1件

784
デフォルトの名無しさん[sage]   投稿日:2016/11/28 18:13:43  ID:E4XiTzNU.net
Objectのコピーも出来ないとかお前ら初心者過ぎるだろ

785
デフォルトの名無しさん[sage]   投稿日:2016/11/28 18:21:10  ID:KKcrSnYF.net
JSON化して戻せばコピーできる

786
デフォルトの名無しさん[sage]   投稿日:2016/11/28 18:28:48  ID:By9NqSkN.net
面倒くさいのでjQueryでコピーしてるわ

787
デフォルトの名無しさん[sage]   投稿日:2016/11/30 21:42:56  ID:0ROmCizq.net
同一ドメインでpostMessageする場合には、
window.open()で開いた親子関係のウインドウ間のみ可能なのでしょうか?
全く他人のウインドウ同士(同一ドメイン内)でも同様にpostMessageできますか?
試したのですが出来ませんでした。
コメント3件

788
デフォルトの名無しさん[sage]   投稿日:2016/12/01 02:35:33  ID:86kKAE3r.net
Broadcast Channelで可能
コメント1件

789
デフォルトの名無しさん[sage]   投稿日:2016/12/01 08:41:27  ID:elqpLc9i.net
>787
>775もそうだが、無理に新しい日本語を発明して質問するのは止めてくれ
「全く他人のウインドウ」とは何か具体的に説明すべき

>775は「Objectをコピーする文法」がオレオレ用語
現存の演算子や制御構文にはObjectをシャローコピー/ディープコピーする機構はない
Object.assignはシャローコピー可能だが、「文法」とはこれいかに?
「文法」が代入演算子を指すなら>783がしっくりくるが、オブジェクトをコピーが曖昧故に既に複数の解釈が出来てる
知ったかぶりで専門用語を並べ立てるぐらいならコードで説明した方が100倍マシ
コメント2件

790
デフォルトの名無しさん[sage]   投稿日:2016/12/01 13:42:59  ID:rRTfenTZ.net
>789
アスペは大変だね

791
デフォルトの名無しさん[sage]   投稿日:2016/12/01 14:51:06  ID:V0GR9lTF.net(2)
>789
> 「全く他人のウインドウ」とは何か具体的に説明すべき
「window.open()で開いた親子関係のウインドウ」ではないウィンドウだと、普通なら理解できると思うが。
コメント2件

792
デフォルトの名無しさん[sage]   投稿日:2016/12/01 14:53:06  ID:MTDix4/Z.net
親子丼と他人丼の関係なら理解できるがw

793
デフォルトの名無しさん[sage]   投稿日:2016/12/01 18:22:15  ID:NluWgpRa.net(2)
>791
その要件ならiframe要素からcontentWindowを得ればいいだろう
が、「window.openだけでなく、フレームはダメでこれこれこういうものなんです」と条件を後出しする気がしてならない
コメント1件

794
デフォルトの名無しさん[sage]   投稿日:2016/12/01 18:48:17  ID:V0GR9lTF.net(2)
>793
どこからiframe要素がでてきたんだ?
質問するのも大変だなという感想。
コメント1件

795
デフォルトの名無しさん[sage]   投稿日:2016/12/01 19:18:46  ID:FPpa4B9L.net
仕様書ですら何の説明もなく用語や謎のフレーズが出てくることはよくあるな

796
デフォルトの名無しさん[sage]   投稿日:2016/12/01 19:27:18  ID:NluWgpRa.net(2)
>794
>791の要件は満たしている
「window.open以外」としか情報がないのにどう解釈するんだ?

797
デフォルトの名無しさん[sage]   投稿日:2016/12/01 21:17:00  ID:wkCVFNfo.net
vue-routerってSPA向けであって、
ただ単にURLを変えずに画面切り替えさせるツールとして使えないの?

やっぱりそれだとCSS切り替えさせるだけがいいのか
コメント1件

798
デフォルトの名無しさん[sage]   投稿日:2016/12/01 21:19:22  ID:d1oSzjmi.net(2)
どう解釈するんだ?ってwindow.open以前に
「全く他人のウインドウ」という要件があるだろ。

iframeの中に入っているwindowなら
「全く他人のウインドウ」でもアクセスできるとでも思ってるのか?
コメント1件

799
デフォルトの名無しさん[sage]   投稿日:2016/12/01 21:20:40  ID:d1oSzjmi.net(2)
>797
URLを変えずに画面を切り替えたいのなら
単なるAjaxで実現できる

800
デフォルトの名無しさん[sage]   投稿日:2016/12/01 22:10:50  ID:qVQfYo/5.net
>798
「全く他人のウインドウ」とは?
ウインドウに他人も何もないが、何がどう他人?
イメージで語ってる感があるから具体的な表現に直した方がいいと思うぞ
コメント1件

801
デフォルトの名無しさん[sage]   投稿日:2016/12/01 22:40:32  ID:WdTiwpMY.net
だからね、他人丼と親子丼の関係だって

802
デフォルトの名無しさん[sage]   投稿日:2016/12/02 00:12:25  ID:tqwX+tIq.net(2)
>800
無能はレスしないで。じゃまだから

803
デフォルトの名無しさん[sage]   投稿日:2016/12/02 01:35:18  ID:yix14ac2.net(2)
他人っていうのは要は血が繋がっていないってことでしょ。
起源が関係ない同ドメインのタブ間でメッセージングしたいってこと。
コメント1件

804
デフォルトの名無しさん[sage]   投稿日:2016/12/02 02:27:06  ID:cAbrvXmy.net
定義するなら「どちらからも API を用いて直接的に参照できない Window オブジェクトどうし」くらいかな

805
デフォルトの名無しさん[sage]   投稿日:2016/12/02 08:30:06  ID:yix14ac2.net(2)
いや、それはかなりおかしいだろう
API関係なく「windowオブジェクトを取得できない状態」

806
デフォルトの名無しさん[sage]   投稿日:2016/12/02 11:43:29  ID:f/evnOKU.net
windowオブジェクトの親子関係など存在しない
コメント1件

807
デフォルトの名無しさん[sage]   投稿日:2016/12/02 13:22:55  ID:7VByTnYi.net(2)
>803
ウインドウに血縁関係を持ち出している時点でいろいろおかしいから
あと、質問者でもないのに憶測でものを語り過ぎ

808
デフォルトの名無しさん[sage]   投稿日:2016/12/02 13:31:01  ID:7VByTnYi.net(2)
>806
一応、window.parent があるからその関係性を親子と呼称しているんだろうね
そこから更に「血が繋がっている」と称しているっぽいけど、定義の範囲が曖昧すぎて本人だけが知るオレオレ用語と化してる
コメント1件

809
デフォルトの名無しさん[sage]   投稿日:2016/12/02 13:57:08  ID:lwDfhxMF.net
>808
血が繋がってる云々は、元発言者の発言ではない
あと、お前以外は大体なんのこといってるかわかってる
コメント1件

810
デフォルトの名無しさん[sage]   投稿日:2016/12/02 21:30:01  ID:Y0rnRsuL.net
「大体」 って、なんか曖昧な感じでちょっと良くないと思うなぁ

811
デフォルトの名無しさん[sage]   投稿日:2016/12/02 22:03:00  ID:tqwX+tIq.net(2)
全員何のこと言ってるかわかってるって
言っていいと思うよw

812
デフォルトの名無しさん[sage]   投稿日:2016/12/02 22:45:13  ID:7KiF/zbr.net
>809
だから、質問者以外が憶測でものを語り過ぎといってるんだよ

813
デフォルトの名無しさん[sage]   投稿日:2016/12/03 02:24:14  ID:1XG4MZmv.net
誰か答えてやれよ

>787
windowオブジェクトが取れないならpostMessageはたしかできない
そもそも同一ドメイン(厳密にはオリジン)なら目的にもよるがCookieやlocalStorage、iframeなんかも制限ゆるく使える
コメント1件

814
デフォルトの名無しさん[sage]   投稿日:2016/12/03 05:01:50  ID:SlvstEBQ.net
>813
次レス>788で答え出てるじゃん。

815
デフォルトの名無しさん[sage]   投稿日:2016/12/03 08:26:46  ID:DMuEuKTJ.net
質問者は雲隠れしてるし、回答する必要はないのでは
それと、ECMAScriptの質問ではないし

816
デフォルトの名無しさん[sage]   投稿日:2016/12/03 08:52:02  ID:kCSsmmVz.net
>787
BroadcastChannel 使えばいけるのでは?
https://html.spec.whatwg.org/multipage/comms.html#broadcasting-to-other-browsing-contexts

817
デフォルトの名無しさん[sage]   投稿日:2016/12/04 18:07:27  ID:DmbMEkfK.net
vue.jsのイベントハンドラで、
keyupがCtrlとEnter同時押しの場合メソッド実行、ってどう記述すればいいんでしょう

漁っても見つかりませんでした。

818
デフォルトの名無しさん[sage]   投稿日:2016/12/04 20:20:50  ID:+/vGZpO/.net
>718
ここの内容を理解してれば書ける
https://jp.vuejs.org/v2/guide/events.html
後はメソッド作ってそこでctrlKeyが押されたか素のjavascriptで書けばおk
コメント1件

819
デフォルトの名無しさん[sage]   投稿日:2016/12/04 20:57:20  ID:ObsZQ3a0.net
>818
お前がマヌケなことはよくわかったよw

820
デフォルトの名無しさん[sega]   投稿日:2016/12/05 14:41:47  ID:py+X8wbm.net(3)
関数の引数で、数値変数を参照渡ししたいんだけど どうすればいいかな

821
デフォルトの名無しさん[sage]   投稿日:2016/12/05 15:08:03  ID:pSDwKct5.net
数値・文字列などは、オブジェクトではなく、primitive なので、
書き込み不可能な値だけが、直接、埋め込まれている

オブジェクトではないので、参照・アドレスなどは存在しない。
値しか存在しない
コメント1件

822
デフォルトの名無しさん[sage]   投稿日:2016/12/05 16:03:02  ID:py+X8wbm.net(3)
>821
そこをなんとか
裏技とか無いかな
コメント1件

823
デフォルトの名無しさん[sage]   投稿日:2016/12/05 16:33:21  ID:8BrnA5VP.net(2)
配列変数で渡せないのかな?
ダメなら、jsonみたいに特定の区切り情報を間に挟んだ文字列にするとか。
コメント1件

824
デフォルトの名無しさん[sage]   投稿日:2016/12/05 16:42:52  ID:ANvwzotj.net
数値を参照渡ししたくなる時点で設計がおかしいから見直した方が良い
どうしても必要なら>823

825
デフォルトの名無しさん[sage]   投稿日:2016/12/05 17:15:20  ID:Oi3oGEbA.net
>822
数値に何を求めているかにもよるが、new Number で大体の要件を満たせる。
valueOfを動的に書き換えれば値を書き換え可能。
コメント1件

826
デフォルトの名無しさん[sage]   投稿日:2016/12/05 18:16:52  ID:py+X8wbm.net(3)
>825
すばらしい
ありがとう
超助かりそう

827
デフォルトの名無しさん[sage]   投稿日:2016/12/05 19:24:44  ID:eUg7PlUS.net
なんか勘違いしてるぞ。
何度も色んなスレで話されてきたことだが、JSに参照渡しはない。
オブジェクトもプリミティブも共有渡し、もとい参照の値渡しだ。
コメント1件

828
デフォルトの名無しさん[sage]   投稿日:2016/12/05 20:05:18  ID:8BrnA5VP.net(2)
Objectのnew・deleteでGCが発生しないって事かな?

作ってみたいモノが有るから、そのうち試してみるか。

829
デフォルトの名無しさん[sage]   投稿日:2016/12/05 21:34:32  ID:PskkFbSl.net
>827
気づいてないのかもしれないが、
「参照の値渡し」のことを参照渡しって言ってるんだよ。
コメント1件

830
デフォルトの名無しさん[sage]   投稿日:2016/12/06 10:27:08  ID:jq2pL0Pu.net
>829
色々と不便だからそうやって呼ぶのやめたほうがいいよ

831
デフォルトの名無しさん[sage]   投稿日:2016/12/06 16:50:09  ID:VokRQswW.net
vueの質問はここでいいのか?

832
デフォルトの名無しさん[sage]   投稿日:2016/12/06 18:31:18  ID:NfACm7RT.net(2)
そもそもESの仕様にはGCに関する記述はWMを除いて無く、
値は新しく作られることしか無い
値が複製されることもなくて、新しい名前が付けられる(共有渡し)

833
デフォルトの名無しさん[sage]   投稿日:2016/12/06 18:33:38  ID:Vi6knW7G.net
CGの仕様がないって事は循環参照で死ぬ参照カウントの可能性もあるって事?

834
デフォルトの名無しさん[sage]   投稿日:2016/12/06 23:39:32  ID:NfACm7RT.net(2)
どんな可能性だってあるし、別にGCがなくてもESの仕様は満たすということ

835
デフォルトの名無しさん[sage]   投稿日:2016/12/07 19:31:41  ID:Medm3i/E.net
普段はPython書いてるんだが、今さらながらjsに手を出してみた
Angular2使ってみたんだがReactの方がスマートに思えてきた
どっちの方がおすすめ?
コメント2件

836
デフォルトの名無しさん[sage]   投稿日:2016/12/07 19:56:56  ID:U/KBvqO4.net
vue.js

837
デフォルトの名無しさん[sage]   投稿日:2016/12/07 20:51:25  ID:BFSqyyg7.net
>835
どんなアプリ作る予定?React触ったことないがAngular2はSPA作るのには良くできてると感じた。小規模アプリならオーバースペックではあるが。

838
デフォルトの名無しさん[sage]   投稿日:2016/12/07 21:15:03  ID:FEJU8uYA.net
>835
ウェブサイトを作る・・・HTML + CSS + jQuery
業務系アプリ(エクセルっぽい画面でデータを弄る)を作る・・・Angular
グラフィカルアプリ(いろいろなコンポーネントを作る)を作る・・・React
ゲーム・・・どれでもない

839
デフォルトの名無しさん[sage]   投稿日:2016/12/08 20:38:15  ID:DwX5bf/v.net
なんかbabelとかwebpackとかそういうプロジェクトの準備でパッケージをインストールするだけで50MBも消費するんですが
これをプロジェクトごとにインストールするのって無駄ですね
20プロジェクトで最低1GB消費するとかすごいですね
globalにインストールしても結局package.txtに書いて
コメント2件

840
デフォルトの名無しさん[sage]   投稿日:2016/12/08 22:35:19  ID:W+Mdrq4F.net
>839
20プロジェクトあったとして1つのプロジェクトで
パッケージのバージョンを上げた時
他のプロジェクトでもバージョンあがってしまっても大丈夫?

っていう質問に、大丈夫に決まってるだろって
答えられるやつだけが、無駄っていう資格があるんだよ
お前にその資格はねーだろ?w

841
デフォルトの名無しさん[sage]   投稿日:2016/12/09 00:03:55  ID:GYMahviX.net
ちょっと違うような。
上がってしまっても大丈夫なようなものでもローカルにみんな持ってるってことでしょ。
ローカルに持つならきちんとバージョン指定すべきだけど、そうじゃないパッケージも多い。
そうじゃないのなら(特定のバージョンでないと絶対に困るのではないのなら)
グローバルを利用するようにすべきで、そうでないのは無駄だろうよ。

842
デフォルトの名無しさん[sage]   投稿日:2016/12/09 00:46:44  ID:EsSFcgle.net
>839
パッケージの定義だけ残して消せばいいんじゃないの?そのための管理ツールでしょ。必要になったらコマンド叩けば復元できるわけだし。
npmもvagrantも設定ファイルだけ残して全部消してるよ。

843
デフォルトの名無しさん[sage]   投稿日:2016/12/09 12:48:43  ID:5/1+VZyq.net
package.txtにlocalとglobalのパッケージをまぜてかいてるんですけど
npm upするとglobalに置いてるけどlocalにはないパッケージをインストールしてしまいます
localにあるパッケージだけupdateするほうほうないですか?

844
デフォルトの名無しさん[sage]   投稿日:2016/12/09 19:37:55  ID:HbVE2MYn.net
>118
今更だけど、なにがすごいのよこれの。
jQueryのdata Tableとかfootableとかこういうのいくらでもあるよ

845
デフォルトの名無しさん[sage]   投稿日:2016/12/10 17:06:30  ID:qLBvM9gz.net
vue.jsの環境構築で
「Unexpected token import」というエラーが出てきます。

import App from './App';

下記のように修正するとエラーは出ないのですが、これは何故でしょう?
var Vue = require('vue')

846
デフォルトの名無しさん[sage]   投稿日:2016/12/10 17:08:40  ID:CHdeaesN.net
babelを使ってないから

847
デフォルトの名無しさん[sage]   投稿日:2016/12/10 20:00:47  ID:z2dlQ4BE.net(2)
下記のようなjavascriptが埋め込まれたhtmlがあります
新しいWebのウインドウを立ち上げるスクリプトです
今は下記のスクリプトが書かれたhtmlファイルをダブルクリックして現れるweb画像をクリックしてウインドウを
立ち上げるのですが、htmlのweb画像をダブルクリックするという過程を省略したいのですが出来ますか
新しいファイルを作ってそれをダブルクリックするといきなり新しいウインドウが立ち上がるようにしたいのです

script
//player popup
function wopen(){
win=window.open(httpwww.xxxplayer.php width=720,height=960)
}
/script
<a href=javascript:wopen()><img src=httpxxxjpxxx.gif class=xxx></a>

注:書き込み不可になるのでhttpwwwとか詰めて書いています
コメント1件

848
デフォルトの名無しさん[sage]   投稿日:2016/12/10 20:02:25  ID:z2dlQ4BE.net(2)
<script></script>
が書き込み不可になるようです

849
デフォルトの名無しさん[]   投稿日:2016/12/10 20:06:30  ID:YyXkI5ew.net(2)
JSDocってみんな使ってる?
オブジェクトの構成とかどうやって書けばいいのかわからん
コメント3件

850
デフォルトの名無しさん[sage]   投稿日:2016/12/10 20:12:33  ID:jVtN6n+v.net(2)
>847
>1
※DOMはブラウザが提供しているものでありJavaScript(ECMAScript)の範囲外です。
なのでDOMを使ったプログラミングは原則としてこのスレの対象外です。
DOMはwindowオブジェクト(ブラウザのホストオブジェクト)経由で
参照するもので、window自体、window.document、window.Workerなどです。
これに関する話題はWeb制作板の下記のスレに移動してください。

851
デフォルトの名無しさん[sage]   投稿日:2016/12/10 20:14:21  ID:jVtN6n+v.net(2)
>>849
http://usejsdoc.org/を全部一通り読んでからスレに来てください

852
デフォルトの名無しさん[sage]   投稿日:2016/12/10 22:41:32  ID:YyXkI5ew.net(2)
一通り読んできたけど、書いてなかったわ
コメント1件

853
デフォルトの名無しさん[sage]   投稿日:2016/12/11 05:02:45  ID:ncQazcOe.net
ECMAScript範囲外の話題は下記スレへ。

■関連スレ
JavaScript の質問用スレッド vol.122
+ JavaScript の質問用スレッド vol.122 +
JavaScript の質問用スレッド vol.131
+ JavaScript の質問用スレッド vol.131 + /Web制作板
JavaScript ライブラリ総合質問所 vol.5 /Web制作板
jQuery 質問スレッド vol.7 /Web制作板

■このスレについて
このスレは「JavaScriptスレ vol.121」を乗っ取っろうとした荒らしがECMAScriptスレに改変して出来ているのでJavaScriptスレと勘違いしている人が多い。
事実上、「ECMAScriptデス 6」の代替スレのようなものだから次スレは「ECMAScriptデス 7」で立てることを推奨。
(「ECMAScriptデス 5」が落ちてから次スレは立てられなかった)

854
デフォルトの名無しさん[sage]   投稿日:2016/12/11 10:43:25  ID:nTv8AIQk.net
>852
一通り読める奴はこんなところに質問しない
コメント1件

855
デフォルトの名無しさん[sage]   投稿日:2016/12/11 15:29:55  ID:8yi/uDpV.net
>854
お前みたいな読めない奴には聞いていないんだ
ちょっと引っ込んでてくれないかな

856
デフォルトの名無しさん[sage]   投稿日:2016/12/11 15:42:15  ID:E18FGHma.net(2)
そこで引っ込んだら本当に読めるやつだけになるだろう?w
それじゃ質問なんか誰もしない。
そんなスレはお断りだ
コメント1件

857
デフォルトの名無しさん[sage]   投稿日:2016/12/11 15:56:32  ID:jBEhBP0b.net
>856
じゃあ回答しろよ

質問もしない、回答もしない、チャチャを入れるだけ
ならこのスレに来る理由もないだろ
ここじゃないどこかで体育座りしててくれ
コメント1件

858
デフォルトの名無しさん[sage]   投稿日:2016/12/11 16:09:03  ID:QckH61YD.net
ドキュメントも読まないバカはお引取り願います

859
デフォルトの名無しさん[sage]   投稿日:2016/12/11 16:16:47  ID:E18FGHma.net(2)
>857
答えられる質問であれば回答してるが?

お前俺にずっと回答だけしてろっていうのか?

じゃあ今お前がやってることは何だよ?
質問でも回答でもねーだろ

他人に質問か回答だけをすることを要求するのなら
まずお前が、質問か回答だけしろ。
自分で言ったことぐらい守れよ

860
デフォルトの名無しさん[sage]   投稿日:2016/12/11 17:20:50  ID:YgjsTwTx.net
>849
JSDocってどんな時に使っているの?
自作ならば、自分の設計思想を基に記録残しながらやっていると思うけど。

861
デフォルトの名無しさん[sage]   投稿日:2016/12/11 19:08:01  ID:DMLZrwtt.net
>849
オブジェクトの構成ってよく分からないけど、
単にオブジェクトごとにリファレンス作りたいなら
@namespaceってタグでオブジェクトごとに分離できる

/** @namespace foo */
var foo = foo || (function() {
// なんかメソッドいろいろ
/**
* @memberOf foo
* // いろんなタグ
*/
}());

/**
* // なんか説明
* @namespace foo.bar
*/
foo.bar = {
// なんかメソッドいろいろ
}

オブジェクト構成図が作りたいみたいな話なら、生成して
できるindex.htmlを自分でいじるしかないんじゃない?
自分はリファレンスとか整備するの好きなんで
自分用のポリフィルライブラリとかにシコシコ書いてる(´・ω・`)
コメント1件

862
デフォルトの名無しさん[sage]   投稿日:2016/12/12 02:26:50  ID:l2OsM7Pl.net
でもドキュメントを読まない普通の子ならOKです。

863
デフォルトの名無しさん[]   投稿日:2016/12/12 10:41:43  ID:YdV6j9Ia.net(2)
>861
/**
* うんこ
* @param {object} hoge
*/
function unko( hoge ){
console.log( hoge.chinko );
}

この関数では引数 hoge の中の chinko を使っています
というのを記述したいんです
コメント1件

864
デフォルトの名無しさん[sage]   投稿日:2016/12/12 14:19:43  ID:dCr75+tg.net
このコードが動くコンパイラを誰か教えてくれませんか
とりあえずbabelでは駄目でした

class MyColor extends Uint8Array{
 constructor(r=0, g=0, b=0, a=255){
  super(r, g, b, a);
 }
 get r(){return this[0];}
 get g(){return this[1];}
 get b(){return this[2];}
 get a(){return this[3];}
}
console.log(new MyColor());
コメント2件

865
デフォルトの名無しさん[sage]   投稿日:2016/12/12 14:54:46  ID:F302LMas.net
ためせばいいだろ数個しかないんだから

866
デフォルトの名無しさん[sage]   投稿日:2016/12/12 18:18:55  ID:rhAg00cc.net
>863
そういった説明は普通に冒頭に書くだけなのでは(うんこと書いている部分)
自分もそういう説明は冒頭、あるいは@paramや@returnsのDescriptionに書いてます。
探して見つからない以上そういうタグもないでしょうし、自分も必要性を感じないです。
コメント1件

867
デフォルトの名無しさん[sage]   投稿日:2016/12/12 18:23:34  ID:snQzvIqt.net
真面目な文章の中にいきなりうんこって単語出てきて吹いたわ
流石2ch

868
デフォルトの名無しさん[sage]   投稿日:2016/12/12 18:45:58  ID:YdV6j9Ia.net(2)
>866
ありがとう。
明示的に書けたら、IDEの自動補完の対象にもできて
一石二鳥だよなァ と思っていたので、出来ないなら
ちょっと残念です。 うんこに書くようにしてみます。

869
デフォルトの名無しさん[sage]   投稿日:2016/12/13 19:37:26  ID:YAjnVVpg.net
>864
クラスの継承、特にビルトインのそれはES5で完全にエミュレートできないんだから仕方がない。
そういうコードを書きたいのならもうピュアESで書くべき。

870
デフォルトの名無しさん[sage]   投稿日:2016/12/13 20:01:34  ID:YnqsBGxe.net
Babelくんが出るぞ。
なんせbabelで万事解決するらしい。

871
デフォルトの名無しさん[sage]   投稿日:2016/12/13 21:07:36  ID:iAtvyUgt.net
つーか釣り針ミエミエだろw
意図を見破られて逃げられてるぞ。
もっとうまくやれ。

872
デフォルトの名無しさん[sage]   投稿日:2016/12/13 21:34:56  ID:DVZ4mkli.net
>864
TypeScript

873
デフォルトの名無しさん[sage]   投稿日:2016/12/14 12:49:50  ID:hfi6HCxW.net
もはやフロントエンドの仕事じゃなくなってるよな

874
デフォルトの名無しさん[sage]   投稿日:2016/12/14 22:52:54  ID:rsGVtDKV.net
だからここにスレたてたんだよ。
フロントエンドの話がしたいならWeb制作板に言ってくれ

875
デフォルトの名無しさん[sage]   投稿日:2016/12/15 07:06:36  ID:BawVZm9b.net(2)
フロントエンドってウェブ制作に限らんだろ。
Electronしかり、Cordovaしかり、ReactNativeしかり、NativeScriptしかり。
babelがどうのと言う割に石器時代みたいな事言ってるんだな。
コメント4件

876
デフォルトの名無しさん[sage]   投稿日:2016/12/15 12:11:19  ID:THL1lN1o.net
react使ってるサイトは重い
qiitaやfacebookで5タブ開くとHDDカリカリうるさい
それなりのスペックのPCなら恩恵あるんだろうが低スペには重いだけのライブラリ


877
デフォルトの名無しさん[sage]   投稿日:2016/12/15 14:50:50  ID:q7exeZSN.net
メモリ3千円で1本増設して、それを丸々RAMディスクにして
仮想メモリとキャシュ置くようにすれば解決する話だよ。
CPUがPentiumDですとか言うなら別だが。

878
デフォルトの名無しさん[sage]   投稿日:2016/12/15 21:27:18  ID:B8ikKJQd.net(2)
>875
Electronか、Cordovaか、ReactNativeか、NativeScriptの
話をしてるならよそに行けとか言わんよ。

誰がいつそれらの話をした?
屁理屈言ってるんじゃねーよ
コメント1件

879
デフォルトの名無しさん[sage]   投稿日:2016/12/15 23:18:16  ID:BawVZm9b.net(2)
>878
誰がいつ、って俺が>875でしたじゃん。それで流れが変われば良いなと様子見をするのではなく、けなされたと激高するのは無能な働き者だよ。

屁理屈はおまえだよwww
なんせ、Chrome最新版だとネイティブで動きます、って話と、フロントエンドの話は別で、って話、どうやっても矛盾してしまうんだから。

880
デフォルトの名無しさん[sage]   投稿日:2016/12/15 23:33:14  ID:B8ikKJQd.net(2)
>875以前で誰も話をしてないと認めちゃったw

881
デフォルトの名無しさん[sage]   投稿日:2016/12/16 11:07:25  ID:1IWVJy5M.net
>875
フロントエンドの技術を使ったデスクトップアプリ作成周辺までフロントエンドに加えるのは違和感がある

882
デフォルトの名無しさん[sage]   投稿日:2016/12/16 18:31:33  ID:XkjBV45S.net(2)
デスクトップアプリねぇ。それこそ単にオフラインWebページ開く
ショートカットの登録案内出すのは簡単だしねぇ。

883
デフォルトの名無しさん[sage]   投稿日:2016/12/16 18:45:25  ID:PNCZZxG5.net
違和感があるとか言われてもなぁ。
UWPとかに至っては、もはや他の何でもないレベルなんだし。
語義通りフロントエンドだし、フロントエンドの技術を使った、って時点でフロントエンドでは無いんだろうか。

884
デフォルトの名無しさん[sage]   投稿日:2016/12/16 20:14:29  ID:XkjBV45S.net(2)
フロントエンドの人=?フロントエンド

885
デフォルトの名無しさん[sage]   投稿日:2016/12/17 14:03:49  ID:D8aTFaeL.net(2)
<textarea>で改行のみしかされていない、というのを判定するにはどうすればいいでしょう?

.lengthではtrueされてしまいました…
コメント1件

886
デフォルトの名無しさん[sage]   投稿日:2016/12/17 14:04:13  ID:D8aTFaeL.net(2)
スレ間違えました
コメント1件

887
デフォルトの名無しさん[sage]   投稿日:2016/12/17 18:47:52  ID:fWgqKda0.net
>886
trimしてlength

888
デフォルトの名無しさん[sage]   投稿日:2016/12/17 19:13:34  ID:FVEXEISP.net
>885-886
+ JavaScript の質問用スレッド vol.131 + /Web制作板 で再質問したならURLを書きなされ
>887のように既出の回答が出てくる

889
デフォルトの名無しさん[sage]   投稿日:2016/12/18 22:58:54  ID:LlbVYW0V.net
結局末尾にはセミコロン要るのか要らないのかハッキリしてくれ
コメント1件

890
デフォルトの名無しさん[sage]   投稿日:2016/12/18 23:05:17  ID:KKAQOfJY.net
夏が来れば セミコロン

891
デフォルトの名無しさん[sage]   投稿日:2016/12/18 23:22:26  ID:T3p8SL26.net
JSではセミコロン要るよーってruby遣いの人に言ったら鼻で笑われたわ

892
デフォルトの名無しさん[sage]   投稿日:2016/12/19 05:12:54  ID:axdrvEtR.net
>889
付けても付けなくても良いんだから、要るも要らないもハッキリは言えない
ただ好きにしたら良いと思う
俺は付けない

893
デフォルトの名無しさん[sage]   投稿日:2016/12/19 09:20:58  ID:5ETaAwZt.net
minifyしたらどうせ付く

894
デフォルトの名無しさん[]   投稿日:2016/12/19 11:15:01  ID:mMcAuoO3.net
okunokentaroとかいう高卒が最近調子に乗って賢そうなツイートしようとしてるけどてんでバカで笑ってしまう
コメント1件

895
デフォルトの名無しさん[sage]   投稿日:2016/12/20 00:12:59  ID:2loEwKbt.net
>894
お前よりは賢そうだがな
コメント1件

896
デフォルトの名無しさん[sage]   投稿日:2016/12/20 08:30:08  ID:SjXx1bqt.net
あのカンガルーのAA

897
デフォルトの名無しさん[sage]   投稿日:2016/12/20 08:42:09  ID:fB91VH02.net
 発 者 同         . 。_   ____           争
 生 同 .じ     .    /´ |  (ゝ___)          い
 .し 士 .レ      .__/'r-┴<ゝi,,ノ   ro、      は、
 .な で .ベ      ∠ゝ (ゝ.//`   ./`|  }⌒j     
 .い し .ル        } ⌒ /`ヽ、_∠l,ノ ・ヽ´
 .! ! か の       /  ´..:.} >、、___,  .r、 ソ、`\
             /   ..:.:.}   /   |∨ ` ̄
            /   ..:.:./    |   丶
           / _、 ..:.:.:.{    .{.:.:.   \
          {   ..:Y  .ゝ、   {.:.:.:.:.    ヽ
          |、  ..:/ 丿 .:〉   >.- ⌒  .  ヽ
          / {. ..:./ ソ ..:./  .(    ..:.:.:`  ..:}
         ./..:.:}.:.:./ ヘ、 ..:./   .\ ..:.:r_,ノ、.:.:}
        ./..:.:/|.:/   {.:./     X.:.:}.}   X X
        /..:.:/ .}.:|    }:/       .Y丶ヽ  Y.:Y
  . __/.:/ { }  《.〈、     _,,__>.:》丶   Y.:\
  /.:.:.:.:.::/   !.:.:ゝ  ゝ.:. ̄ヾ ´:.:.:.:.:.:.:.:.:ヾゝ   \.: ̄>

898
デフォルトの名無しさん[]   投稿日:2016/12/20 10:45:01  ID:aCHo98uD.net(4)
ES6(ES2015)で、new 名前空間.クラス名() みたいなことってできる?
TypeScriptだと「module」使ってできるけど。

899
デフォルトの名無しさん[sage]   投稿日:2016/12/20 10:58:27  ID:MFk6FDSJ.net
それ、名前空間じゃないから

900
デフォルトの名無しさん[]   投稿日:2016/12/20 11:06:35  ID:aCHo98uD.net(4)
で、できる? クラス名がぶつからない方法。new ○○.クラス名() みたいなヤツ。

901
デフォルトの名無しさん[sage]   投稿日:2016/12/20 11:12:09  ID:wd0c4Sl+.net
試せばすぐに分かることをなぜ聞く?
コメント1件

902
デフォルトの名無しさん[]   投稿日:2016/12/20 11:25:05  ID:aCHo98uD.net(4)
わからなくて困ってるんで聞いてます。
----------------------------------
C#の場合、namespace ○○ { class MyClass {... で new ○○.MyClass()
Rubyの場合、module ○○ { class MyClass... で ○○.MyClass.new()
Swiftの場合、class ○○ { class MyClass... で ○○.MyClass()
TypeScriptの場合、module ○○ { export class MyClass {... で new ○○.MyClass()
PHPの場合、namespace ○○; class MyClass {... で new ○○\MyClass()
ASの場合、package ○○ { public class MyClass {... で new ○○.MyClass()
Javaの場合、....
----------------------------------
で、ECMAScript 2015 で new ○○.MyClass() ってできますか?
----------------------------------
(問題解決しないレスはいらないヨ)

903
デフォルトの名無しさん[sage]   投稿日:2016/12/20 11:29:07  ID:fAq+FOJm.net
やってみればわかるよ

904
デフォルトの名無しさん[]   投稿日:2016/12/20 11:31:05  ID:aCHo98uD.net(4)
>901
試せない、試し方がわからない=すぐに分からない だから聞いてる。
(いちいち、めんどくせーな)
コメント1件

905
デフォルトの名無しさん[sage]   投稿日:2016/12/20 11:41:15  ID:j9/nK/yZ.net(2)
var Hoge = {
Foo: function() {
}
}
var foo = new Hoge.Foo()
でダメなん?
コメント2件

906
デフォルトの名無しさん[sage]   投稿日:2016/12/20 11:52:46  ID:N26jdoYe.net(4)
>904
試し方を聞いてないじゃん。
めんどくさいんじゃなくて、質問に横着しないで。

普通にnodeか何かか、chromeでF12でコンソール出せば試せるよ。

俺も
{
 name:{
  foo:function(){}
 }
}
で、やると思う。
コメント3件

907
デフォルトの名無しさん[sage]   投稿日:2016/12/20 12:06:52  ID:ZDgkmudg.net(3)
>906
そういうのが聞きたいんじゃないと思う。
要するに、ファイル分ければES2015+でもexport/import適切に使うことで可能なことを、
一ファイル中に幾つものモジュールを入れられないかということだろう。
具体的に言うと、自モジュール内ではMyClassでアクセスできて、
それを他モジュール内ではMySpace.MyClassでアクセスできるようにするための、
最もスマートな方法が知りたいのだろう。

結論から言うと、ネイティブexport/importを諦めて
CommonJSチックなのを利用するしか無い。
その時点でES2015+としてはスマートさに欠けるが仕方がない。
もしくは我慢して全てをファイル分けする。
コメント2件

908
デフォルトの名無しさん[sage]   投稿日:2016/12/20 12:19:45  ID:pjk6TxQO.net(3)
>907
>結論から言うと、ネイティブexport/importを諦めて
>CommonJSチックなのを利用するしか無い。
楽勝に出来るのに自信満々でウソをつくのか?

// HogeHage.js
class hoge {}
class hage {}

const HogeHage = { hoge , hage};
export default HogeHage;

//
import HogeHage from 'HogeHage';
new HogeHage.hage();
コメント4件

909
デフォルトの名無しさん[sage]   投稿日:2016/12/20 12:59:06  ID:MoWCkeVm.net
>908
なんだこれ・・・

910
デフォルトの名無しさん[sage]   投稿日:2016/12/20 13:33:59  ID:020Rzxth.net
>908
これいいね。クラス増えてもimportを書き換えなくてすむから。

911
デフォルトの名無しさん[sage]   投稿日:2016/12/20 15:19:02  ID:N26jdoYe.net(4)
>907
あー、なるほど。
それなら、
namespace = namespace | {};
namespace.foo = function(){
var _this=this;
  : //必要な事
 return コンストラクタ
}

で良いんじゃ?

912
デフォルトの名無しさん[sage]   投稿日:2016/12/20 15:27:29  ID:43NQe2ZK.net(4)
>905 >906

クラスの継承に対応できないと思われる。
コメント2件

913
デフォルトの名無しさん[sage]   投稿日:2016/12/20 15:29:52  ID:ZDgkmudg.net(3)
>908
多分トランスパイラ使ってできると言ってるんだろうけど、
それは今のトランスパイラがCommonJSチックに変換する(しかない)からであって、
今の所のWhatWGのModule仕様やコンセンサスではそれができることにはなっていない。

914
デフォルトの名無しさん[sage]   投稿日:2016/12/20 15:30:17  ID:N26jdoYe.net(4)
>912
_thisのprototypeで何とかするくらいか。
たしかにめんどくさいな。

915
デフォルトの名無しさん[sage]   投稿日:2016/12/20 15:31:08  ID:pjk6TxQO.net(3)
var使ってる石器人はレス禁止
混乱しかもたらさない

916
デフォルトの名無しさん[sage]   投稿日:2016/12/20 15:50:26  ID:43NQe2ZK.net(4)
>908
import、export はそもそもブラウザ(chrome等)で動作しないと思われる。
コメント1件

917
デフォルトの名無しさん[sage]   投稿日:2016/12/20 16:09:43  ID:pjk6TxQO.net(3)
フツーbabel
コメント2件

918
デフォルトの名無しさん[sage]   投稿日:2016/12/20 16:24:37  ID:ZDgkmudg.net(3)
>916
だからどっちみちES2015でスマートに書ききるのは無理、諦めてという話をしてる。
コメント2件

919
デフォルトの名無しさん[sage]   投稿日:2016/12/20 16:25:20  ID:43NQe2ZK.net(4)
>917
論外

920
デフォルトの名無しさん[sage]   投稿日:2016/12/20 16:26:35  ID:43NQe2ZK.net(4)
>918
のような気がしますね

921
デフォルトの名無しさん[sage]   投稿日:2016/12/20 16:46:50  ID:j9/nK/yZ.net(2)
>918
908の方法でよくない?変換された後がどうなろうが人は名前空間らしきもの使えてるじゃん。

922
デフォルトの名無しさん[sage]   投稿日:2016/12/20 17:25:01  ID:L1JD/wQE.net
ID:43NQe2ZKはバカ過ぎて話になんないな

これとか
>912
>>905 >906
>
>クラスの継承に対応できないと思われる。

923
デフォルトの名無しさん[sage]   投稿日:2016/12/20 19:12:02  ID:N26jdoYe.net(4)
>917
var使いたくないからbabel使う方がおかしい。
どーせvarに置き換わってるのに。
デカ目の型付き配列から、綺麗に確保したり返したりするレベルで正しくコンパイルされるならわかるけど、
そんなまがい物で満足する気持ちがわからん。
ブラウザ切り捨てるほうがマシ。

924
デフォルトの名無しさん[sage]   投稿日:2016/12/20 19:21:33  ID:3IscN3UC.net
今時トランスパイラ嫌とか
コメント1件

925
デフォルトの名無しさん[sage]   投稿日:2016/12/20 22:08:14  ID:YeETBa/P.net
>924
トランスパイラが嫌なんじゃないよ。
トランスパイラはトランスパイラでしかない。
コンパイラなら意味はあるけど。

926
デフォルトの名無しさん[sage]   投稿日:2016/12/20 22:12:52  ID:WrmQq8zj.net
Date.now()して「m月d日 hh;mm」の形式にする綺麗な方法はありませんか?
(hh,mmは1桁でも可)

わざわざgetDate()などして連結するしかないのでしょうか?
コメント2件

927
デフォルトの名無しさん[sage]   投稿日:2016/12/20 22:26:48  ID:UE63r4fu.net
>926
toISOStringして、replaceで(.*?)-(.*?)-(.*?)T(.*?):(.*?)\..*を、$2月$3日 $4;$5
で良いのでは?

928
デフォルトの名無しさん[sage]   投稿日:2016/12/21 00:05:55  ID:xYX0mlO/.net(3)
仮にブラウザでネイティブにexport/importがサポートされたとしても
どっちみちbabelなどは必要になるよ。

なぜなら小さなファイルに分割されていたら読み込みが遅くなるだろ?
だから結合処理が必要になるんだよ。
もちろん単純に結合しただけじゃ無理
コメント1件

929
デフォルトの名無しさん[sage]   投稿日:2016/12/21 00:10:17  ID:RFNpxL9S.net
てかネイティブ対応ブラウザが増えてもIEとかいう糞を使う奴がいなくならない限りサポート切れないから十数年先の話になるでしょ
コメント2件

930
デフォルトの名無しさん[sage]   投稿日:2016/12/21 00:11:10  ID:tskPgAul.net
HTTP/2 が普及したら分割とか関係なくなるかな
コメント1件

931
デフォルトの名無しさん[sage]   投稿日:2016/12/21 01:30:04  ID:XipnktJg.net
>930
SystemJSやばい遅いよね。Ang2は先に行きすぎ。

932
デフォルトの名無しさん[sage]   投稿日:2016/12/21 08:25:11  ID:yT8Lkx8e.net
>928
広げるなよw
babelは要らん。それならwebpackで充分。

933
デフォルトの名無しさん[sage]   投稿日:2016/12/21 09:19:50  ID:MCySocIX.net
>926
ローカル表示にしたいのなら、決め打たずnavigator.languagesを見ながらIntlAPIを使ったほうが良いと思う。

934
デフォルトの名無しさん[]   投稿日:2016/12/21 12:33:15  ID:X1dbNMbH.net
>895
高卒沸いたwww

935
デフォルトの名無しさん[sage]   投稿日:2016/12/21 21:06:14  ID:xYX0mlO/.net(3)
>929
せやね。早いところIEからEdgeに乗り換えてほしいね。
Microsoft Edgeに。

そうすればMicrosoft Edgeはimportサポートしてるから、
あとはFirefoxやChromeの対応を待つだけで良くなる。
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Statements/i...

936
デフォルトの名無しさん[sage]   投稿日:2016/12/21 21:40:39  ID:HG47hG4n.net
そろそろ、次スレだな
「ECMAScript デス 6」で立てるとして「ECMAScript デス 4」のテンプレを元にリンク修正してみた
https://fiddle.jshell.net/65tysya6/1/show/
修正事項があれば意見よろしく
コメント1件

937
デフォルトの名無しさん[sage]   投稿日:2016/12/21 21:57:51  ID:xYX0mlO/.net(3)
うざい。てめーがしきるな
コメント1件

938
デフォルトの名無しさん[sage]   投稿日:2016/12/22 00:03:42  ID:N3v3bTKO.net(2)
>6が貼ってくれたように前スレに倣うテンプレだからいいんでないか
反対意見は具体的に書くべきだな

939
デフォルトの名無しさん[sage]   投稿日:2016/12/22 02:27:59  ID:N3v3bTKO.net(2)
結局、ID:xYX0mlO/ が独断専行で次スレを立ててた
仕切るな、という奴が仕切ってる

+ JavaScript(ECMAScript)質問用スレッド vol.123 + [無断転載禁止]©2ch.net
+ JavaScript(ECMAScript)質問用スレッド vol.123 +

940
デフォルトの名無しさん[sage]   投稿日:2016/12/22 14:53:43  ID:NvKCe79q.net
>936
関連スレのURLに「-100」や「l50」が残ってるね
コメント1件

941
デフォルトの名無しさん[sage]   投稿日:2016/12/22 18:30:07  ID:0dTZqklr.net
nodejs 7.3キタ━━━━(゚∀゚)━━━━!!

942
デフォルトの名無しさん[sage]   投稿日:2016/12/22 23:14:31  ID:zr2stMzt.net

943
デフォルトの名無しさん[sage]   投稿日:2016/12/23 08:46:25  ID:hLVMkx+6.net
ECMAスレの頃にはそもそも次スレを立てる人も居なかったし、
建てても落ちてたのに今や勝手に仕切るなと言われるほどになったんだなぁ(しみじみ)

944
デフォルトの名無しさん[sage]   投稿日:2016/12/23 12:04:43  ID:L8VrAqOy.net
勝手に仕切るなと言われることが、成長した証拠だとか思ってるのか?

945
デフォルトの名無しさん[sage]   投稿日:2016/12/23 12:15:47  ID:UAK6AX6k.net
>937
で、お前誰だよ

946
デフォルトの名無しさん[sage]   投稿日:2016/12/30 21:00:20  ID:x814SSV+.net
2016年のプログラミングのトレンドを振り返る

最新のJavaScriptが急成長する

JavaScript/ECMAScript version 6(通常ECMAScript 2015あるいはES6)は2015年の6月にリリースされた。
私は2016年にはこの言語が広く採用され、デベロッパーが新しいバージョンに慣れるにしたがって新たサポートされた機能が
ウェブに普及するだろうと予測した。この予測は概ね当たった。

主要なブラウザすべてとNode.js(オープンソースのJavaScriptランタイム)の90%はES6準拠となった。
この頃では、ES6は実験的、実験的な小さなシステムや内部利用に限られるツールに埋め込まれているだけでなく、
さまざまな製品や主要顧客が直接触れるようなインターフェイスにも採用されている。

http://jp.techcrunch.com/2016/12/30/201612262016s-top-programming-tren...

947
デフォルトの名無しさん[sage]   投稿日:2016/12/30 22:06:19  ID:Su1lYfd3.net
見出しからして大間違い。一年かけて徐々に普及してきたのは全然急でもないし、それは成長ではない。
ES2016を見ても分かる通り、2016年はJavaScriptにとって休憩・成熟の年。

948
デフォルトの名無しさん[sage]   投稿日:2016/12/31 15:41:57  ID:nUjD4DbZ.net
JavaScript死亡www

「WebAssembly」がITの未来に変革もたらす|Google、Apple、Microsoft、Mozillaが共同で開発した新概念

「WebAssembly」がWebブラウザに変革をもたらします。
Webブラウザは、もともとただテキストを表示するだけのところから始まりました。その出発点から、現在ではコミュニケーションやゲームまで幅広い表現を可能にしています。
そして今回、「Webブラウザ」に新しい概念が加わわることになりました。
それをもたらしたのが、ブラウザに関わりの深い世界規模の4社「Google」「Apple」「Microsoft」「Mozilla」が共同開発した、Webのためのバイナリーフォーマット「WebAssembly」です。
今回はその「WebAssembly」について、「スゴイところって何?」「何が起きるの?」をご紹介していきます。
WebAssemblyは「JS不要。コンパイラ言語だけで動的アプリが作れる」「どの言語でもWebブラウザ上にアプリを作ることができる」

WebAssemblyによってもたらされるスゴイところは次の4つ。
コンパイラ言語だけで、Webブラウザ上に動的なアプリが作れる
ほぼ機械言語にコンパイルされるからヌルヌル動く
OSを一切気にする必要がなくなる。気にするのはブラウザのみ
C,C 以外の言語でもWebAssemblyにコンパイルされる「クロスコンパイラ」の可能性が高まった

これまでWebブラウザで、ユーザからの入力情報を元に、動的なアプリケーションを実現するためには「JavaScript」が必須でした。

「インタプリター言語」であるJavaScriptは、その都度ソースコードを機械語に翻訳する必要があるため、予め機械語に近くコンパイルされる「コンパイラ言語」と比較すると動作が遅いという特徴があります(※)。

もしコンパイル後の機械語に近い形で、Webブラウザ上でコードが実行されたら。
JavaScript以上にヌルヌルに動き、しかもJavaScriptを気にする必要がなくなります。

それを実現したのがこの「WebAssembly」です。

https://mayonez.jp/1690
コメント2件

949
デフォルトの名無しさん[sage]   投稿日:2016/12/31 15:45:11  ID:2NsOdIiQ.net(3)
>948
それもう何年も実現できてないやつじゃないか?

950
デフォルトの名無しさん[sage]   投稿日:2016/12/31 15:52:57  ID:fr6r+Jsz.net
>948
あちこちに宣伝しなくてもええんやで

951
デフォルトの名無しさん[sage]   投稿日:2016/12/31 15:58:37  ID:2NsOdIiQ.net(3)
宣伝しないと普及しないんやで?

952
デフォルトの名無しさん[sage]   投稿日:2016/12/31 16:13:59  ID:z+aCJeF2.net
wasmは宣伝してどうってもんじゃなくね
ESの動向次第だけどJSキラーどころか実行エンジンに組み込まれるのが既定路線っしょ

953
デフォルトの名無しさん[sage]   投稿日:2016/12/31 17:06:25  ID:2NsOdIiQ.net(3)
言語が動くとして問題はライブラリなんだけどね。
新しいGUIツールキットを作るのか、
それともReactなどを使うのか

954
デフォルトの名無しさん[sage]   投稿日:2017/01/01 15:46:08  ID:fjo8Lp7F.net
ぼくのパソコンはねWebGLに対応してないからWebAssemblyなんて宣伝されても動かせないから困るんですよ

955
デフォルトの名無しさん[sage]   投稿日:2017/01/02 08:37:47  ID:GJGsj00t.net
WebAssemblyはこの辺の記事が読みやすかった
https://codezine.jp/article/detail/9072
http://qiita.com/kenju/items/3ec95aebd30bc95b862c
特にasm.jsの中の人へのインタビュー記事がいい感じ
JavaScriptを置き換えるものではなく、asm.jsの後継な印象

956
デフォルトの名無しさん[sage]   投稿日:2017/01/02 14:28:53  ID:cJ1XZtMT.net

957
デフォルトの名無しさん[sage]   投稿日:2017/01/04 15:04:29  ID:umsjl3YZ.net(2)
質問です。
記事の注目度を量るものが作りたいのです。
idのふってある記事があり、スクロールをしてその記事の所で一定時間以上留まった場合に
データベースに+1クリックされた場合に+10といったような感じで記事の注目度を集計したいのですが、
JavaScriptで作れるでしょうか?

958
デフォルトの名無しさん[sage]   投稿日:2017/01/04 15:23:43  ID:NPU+n2sm.net
作れるよ
コメント1件

959
デフォルトの名無しさん[sage]   投稿日:2017/01/04 16:52:21  ID:mqV6TFzJ.net
>958
どうやったらいいのか書いてやれよ、タコ

960
デフォルトの名無しさん[sage]   投稿日:2017/01/04 17:12:55  ID:umsjl3YZ.net(2)
ありがとうございます。
作成可能ということがわかれば大丈夫です。
お手数をおかけしましました。

961
デフォルトの名無しさん[sage]   投稿日:2017/01/05 06:23:52  ID:sTWjNqOn.net
範囲に入ったら、じゃつまんないから、
ディープラーニングを使って、雑多な挙動から人の見てるポイントを当てられるようにしたいね。

962
デフォルトの名無しさん[sage]   投稿日:2017/01/13 12:58:49  ID:/Ly9HZcx.net(2)
for inでループするとき、unfiltered for in という警告がIDEで出るけど、なんでダメなん?
for( v in list ){
 v.unko();
}

こうすると警告でないけど、これちょっと過保護過ぎない?
for( v in list ){
 if( list.hasOwnProperty(v) ){
  v.unko();
 }
}
コメント3件

963
デフォルトの名無しさん[sage]   投稿日:2017/01/13 14:12:40  ID:zjO4Avuj.net
>962
javascript for inでググれ
コメント1件

964
デフォルトの名無しさん[]   投稿日:2017/01/13 18:31:36  ID:/Ly9HZcx.net(2)
>963
ググったけど、納得はできん

965
デフォルトの名無しさん[sage]   投稿日:2017/01/13 22:33:38  ID:9L2JHio8.net
>962
> なんでダメなん?

JSLintを使ってるのがだめ。今はESLintを使うのが普通。
使わないやつはもってのほか

966
デフォルトの名無しさん[sage]   投稿日:2017/01/14 01:36:36  ID:8r+htSmN.net
>962
それは配列もしくはイテレータか?Yesならfor-ofを使え
それはプロトタイプを辿ることを期待しているか?Yesならそのままfor-inを使え、NoならObject.keysを使え

967
デフォルトの名無しさん[sage]   投稿日:2017/01/14 05:07:21  ID:QKiPrSuQ.net
ESLintなんて絶対に要らん
それならTSで書く

968
デフォルトの名無しさん[sage]   投稿日:2017/01/14 07:06:34  ID:iwTuat6d.net
for-ofって?

969
デフォルトの名無しさん[sage]   投稿日:2017/01/14 10:39:47  ID:jF4idfYe.net
エラーの捕捉においてTypeScriptがとても強力であれば、果たしてESLintやJSHintなどのツールは必要でしょうか?
答えは「Yes」です。
例えば、エラーのチェックに加え、ESLintはベストプラクティスや文体といった面でのコードフォーマットのチェックを行えます。
残念ながらESLintとの互換性はTypeScript ESLint Parserプロジェクトに依存しており、このプロジェクトはまだ実験段階です。

http://postd.cc/i-was-wrong-about-typescript-here-is-why/

970
デフォルトの名無しさん[sage]   投稿日:2017/01/15 00:50:13  ID:yEIrJurs.net
A()直下のthis.nを汚さないようにA()の中に関数を定義したいんですけど
こう書いたら汚れてしまいます何でですか?

function A() {
this.n = 1;
console.log('A', this.n);

function B() {
this.n = 2;
console.log('B', this.n);
}
B();
console.log('A', this.n);

const C = () => {
this.n = 3;
console.log('C', this.n);
};
C();
console.log('A', this.n);
}
A();
コメント1件

971
デフォルトの名無しさん[sage]   投稿日:2017/01/15 01:22:24  ID:H2QAGxh+.net
その呼び方じゃどのthisも同じglobalを指すから

972
デフォルトの名無しさん[sage]   投稿日:2017/01/15 07:12:01  ID:xznLPQ3K.net
>970
new演算子が使われていないから
thisの使い方を勉強し直すべき

973
デフォルトの名無しさん[sage]   投稿日:2017/01/18 22:47:50  ID:eABpypnl.net(3)
勉強したてなのですが、
実際にウェブページを開いてるChromeから
ChromeのコンソールよりJSの実行はできたのですが
setIntervalのような処理をしたい場合はどうしら良いのでしょうか?

974
973[sage]   投稿日:2017/01/18 22:57:14  ID:eABpypnl.net(3)
説明不足でした。

setIntervalをコンソールに打って実行すると
一度は処理をしてくれるのですが、それ以降は処理をしてくれません。
ChromeでsetIntervalの機能を実現するためには、どうしたらよろしいでしょうか。

ここまで書いておいてなんですが、これはChromeの板とかで聞いた方がよろしいでしょうか。

975
デフォルトの名無しさん[sage]   投稿日:2017/01/18 23:12:38  ID:Vst0K44u.net
Chromeのコンソールはデバッグのために使うもので
そこを使って自分がしたいなにかを実現するところではありません。

976
デフォルトの名無しさん[sage]   投稿日:2017/01/18 23:21:41  ID:eABpypnl.net(3)
すみません解決しました。

977
デフォルトの名無しさん[sage]   投稿日:2017/01/19 14:41:41  ID:+apAMdxY.net
thisは極力使わない。
使うときは誤解の余地のない定型的な使い方のみとする。

978
デフォルトの名無しさん[sage]   投稿日:2017/01/19 22:22:16  ID:owrdnXbA.net
thisにかぎらず、どんなコードも
誤解の余地のない書き方をするのが普通
更新情報
・スレッド一覧ページで過去ログのタイトル検索・一覧表示ができるようになりました(2016/1/20)
NGワード登録
登録する
スレッド内検索

プログラム板 タイトル検索

このスレッドが人気です(実況系)
<ノイタミナ>クズの本懐 #02「そのぬくもりに用がある」★3 (802)フジ実況
【マターリ】クズの本懐 #02 (460)フジ実況
夜の巷を徘徊する 宇宙大好きマツコ、宇宙旅行を夢見る (922)テレ朝実況
ユアタイム★2 (844)フジ実況
増山超能力師事務所 (819)NTV実況
MATSUぼっち (335)フジ実況
アメトーーク! 大根ありがとう芸人★3 (450)テレ朝実況
報道ステーション★3 (963)テレ朝実況
このスレッドが人気です(ニュース系)
大会組織委、アパホテルに対し「スポーツ理念に則った対応」を求める・・・ホテル借り上げの際に「問題があれば対処する」と説明 (1000)ニュー速+
【NHK】アパホテルに本の撤去打診 冬のアジア大会組織委 ★4 (1001)ニュー速+
【FRIDAY】狩野英孝 17歳現役女子高生と淫行疑惑 ★7 (631)音楽・芸能ニュース
【政治】平昌五輪HPに「独島」=日本政府が懸念伝達 (829)ニュー速+
【NHK】アパホテルに本の撤去打診 冬のアジア大会組織委 ★3 (1002)ニュー速+
【FRIDAY】狩野英孝 17歳現役女子高生と淫行疑惑 ★6 (1001)音楽・芸能ニュース
【NHK】アパホテルに本の撤去打診 冬のアジア大会組織委 ★2 (1000)ニュー速+
【アパホテル】冬のアジア大会組織委員会、アパホテルに本の撤去対応打診…「スポーツ理念に基づいた対応をお願いしたい」 (1000)ニュー速+
プログラム板の人気スレ
【統計分析】機械学習・データマイニング11 (940)
C++相談室 part129 (180)
Excel VBA 質問スレ Part45 (237)
C言語なら俺に聞け 138 (569)
Xamarin Part3 (246)
ふらっと C#,C♯,C#(初心者用) Part126 (257)
Visual Studio 2015 Part7 (1000)
【PHP】下らねぇ質問はここに書き込みやがれ 7 (635)
Androidプログラミング質問スレ revision52 (560)
くだすれPython(超初心者用) その31 (851)
クラス名・変数名に迷ったら書き込むスレ。Part27 (740)
次世代言語議論スレ【Go Rust Haskell Scala Erlang Elixir】 (468)
スレ立てるまでもない質問はここで 145匹目 (94)
推薦図書/必読書のためのスレッド 80 (950)
+ JavaScript(ECMAScript)質問用スレッド vol.122 + (978)
☆★Java質問・相談スレッド179★★ (580)
Swift part9 (584)
Ruby 初心者スレッド Part 59 (552)
人工知能ディープラーニング機械学習のための数学 (105)
VRプログラム雑談【Unity/UnrealEngine】【HTC Vive/Oculus Rift/その他VR】 (347)
+ JavaScript の質問用スレッド vol.122 + (628)
プログラミング言語 Rust 2 (311)
Java入門・初心者質問スレ Part.2 (297)
【JavaScript】スクリプト バトルロワイヤル55【php,py,pl,rb】 (459)
Win32API質問箱 Build123 (332)
Swift part7 (1026)
テストしにくいコードをテストする方法 その2 (51)
【初心者歓迎】C/C++室 Ver.100【環境依存OK】 (240)
このサイトについて
このサイトは2ちゃんねるからデータを取得し、表示するサービスです。
画像のインライン表示機能について
画像のURLの後ろにある[画像をインライン表示]をクリックすると、URLの下に表示します。
表示される画像は横幅100pxに縮小されていて、クリックすると原寸で表示します。
このサイトの特徴
1)スレッド内検索ができます
2)レス(「>>1」など)のポップアップができます
3)不適切な言葉を含む投稿を表示しません
4)ページ内で画像を直接表示できます
5)2ch他スレッドへのリンクはタイトル・板名つきでリンクします
6)すっきりとしたデザインで表示します
7)最新スレや前スレをチェック・一覧表示します
8)NGワード機能の搭載でイヤな言葉が目に入りません
9)荒らしを自動チェックします
10)スレッド内・同一IDの書き込みだけ表示できます
11)レスの返事をレスされた発言の下に表示する「まとめビュー」が利用できます
12)シリーズ化したスレッドの一覧を表示します
13)最新のスレッドがある場合はお知らせします
削除について
こちらをご覧ください
機能要望について
現在機能要望受付中です。
問い合わせについて
こちらのページからどうぞ
Amazon


このサイトは2ch.scからデータを取得・表示しています。削除などについてはこちらをご覧ください。 アクセスモード:差分取得 - 正常取得 - 4件 - 取得完了