+ JavaScript(ECMAScript)質問用スレッド vol.122 +at TECH
+ JavaScript(ECMAScript)質問用スレッド vol.122 + - 暇つぶし2ch650:デフォルトの名無しさん
16/10/27 00:43:35.94 wk+FybyZ.net
ありがとう、インデントではなくスペースを入れるという考え方か。
著名なソース読んでも、機械的には入れてない気がしてたんだ。
にしても無名関数が読み慣れん。

651:デフォルトの名無しさん
16/10/27 00:50:40.68 WMnZ+0Yu.net
適当にコーディングしていても、ツールで変換すればいい

F12開発者ツールで、JSファイルを整形して開くだけでも、正しく直してくれないか?

652:デフォルトの名無しさん
16/10/28 12:59:15.72 pmKmGehb.net
小数点第一位までしかない1以下の小数を四捨五入して1か0にする方法を教えてください
0.1を0
0.5を1
Math.ceilだと1以上ないとだめでした

653:デフォルトの名無しさん
16/10/28 13:34:11.62 dnmvvXjV.net
>>645
Math.ceil()は繰り上げ、四捨五入ならMath.round()

654:デフォルトの名無しさん
16/10/28 13:47:06.25 OnyL+paE.net
>>645
そんなめんどくさい事しなくても、0.5足してfloorでいいんじゃないの?

655:デフォルトの名無しさん
16/10/29 05:43:28.19 gGx5G/bS.net
0.5足すとか、気持ちわるいよ。
少しずれたりしないの?

656:デフォルトの名無しさん
16/10/29 12:07:08.55 yHYEAqhD.net
>>648
0,5未満なら0,5を足して四捨五入して
0.5以上ならそのまま四捨五入したらいいじゃん

657:デフォルトの名無しさん
16/10/29 12:17:53.47 cEJXxPE7.net
>>648
ズレなくて、切りが良い。

658:デフォルトの名無しさん
16/10/29 14:11:06.80 ypb3Na8r.net
>>650
ずれたんだけど
alert(0.49999999999999999+0.5); // 1

659:デフォルトの名無しさん
16/10/29 14:47:07.98 z8URZLOb.net
>>651
alert(0.49999999999999999); // 0.5

問題外

660:デフォルトの名無しさん
16/10/29 15:25:53.31 cEJXxPE7.net
>>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を足して小数部分を捨てれば良い。

661:デフォルトの名無しさん
16/10/29 18:07:27.02 O/3wAc5r.net
いや四捨五入する関数があるのに何でわざわざ計算してから切り捨てとかしなきゃいけないん?

662:デフォルトの名無しさん
16/10/29 18:16:09.69 P+i+TDJ5.net
>>647
マイナスの時に想定外の動作

663:デフォルトの名無しさん
16/10/29 18:55:02.99 Lu2qC+Nv.net
まさに>>654のいう通り
Math.floorを優先する理由はない

664:デフォルトの名無しさん
16/10/29 19:15:01.21 mMTmoVUB.net
そもそも四捨五入する理由はない
欲しがりません勝つまでは
我慢しろ

665:デフォルトの名無しさん
16/10/29 19:27:12.02 Lu2qC+Nv.net
四捨五入は質問(>>645)の要件なのでどう考えても必要

666:デフォルトの名無しさん
16/10/29 19:52:25.39 cEJXxPE7.net
>>655
コードにする以前の問題。
入力で認めていれば、エラー対応が必要だし
入力で処理に影響する情報を排除すればそのままで済む。

そもそもマイナス扱う処理で四捨五入使うかな?

667:デフォルトの名無しさん
16/10/29 19:53:28.10 68KH7Ulz.net
マイナスのときにどっちに寄せたいかじゃないの?
-0.6を四捨五入でどっちにしたいか。
roundで0にできたっけ?

668:デフォルトの名無しさん
16/10/29 19:57:05.98 eSvC8hNl.net
> 小数点第一位までしかない1以下の小数を四捨五入して1か0にする方法を教えてください
小数点第一位までしかないんだから
Math.round() で解決だろ

バカ

669:デフォルトの名無しさん
16/10/29 20:06:28.52 JHScm7pH.net
ビット & なら Math 演算も不要
( (n) * 2) & 1
n が数でなくとも 0 か 1 になるが

670:デフォルトの名無しさん
16/10/29 20:37:58.28 mNGjlCUC.net
ビット演算は32bitなのが問題
速度を稼ぐために制限付きを承知で使うならいいだろうが

671:デフォルトの名無しさん
16/10/30 01:00:03.39 O7t7tgSU.net
>>659
負の場合、例えば-20000.4は
> 小数点第一位までしかない1以下の小数
をみたすので、エラーでは無い
> 四捨五入して1か0にするには
四捨五入する桁を可変にすれば良いのかな?

672:デフォルトの名無しさん
16/10/30 05:11:47.90 hqgegRgF.net
>>663
ビット演算が速度を稼げるという根拠は?
例えば直近のV8 nightlyのアセンブラで書き直させたBuiltin_MathRoundingOperationよりも速いと言えるの?
結局無駄なf64<->i32キャストが発生


673:するし、実際は速くないよ 速く使おうと思ったらUSE_ASM_Context内や、よっぽど変数の扱いを気を付けて キャストが全体として起こらないようにしなければならない



674:デフォルトの名無しさん
16/10/30 05:55:23.89 h7Os3ze3.net
変数の扱いを気を付けてキャストが全体として起こらないようにすると
ビット演算は速度を稼げると
>>665は申しております。

675:デフォルトの名無しさん
16/10/30 10:21:13.83 UrnMpVuD.net
小数一桁の数値を丸めるだけのことで何揉めてるの?

676:デフォルトの名無しさん
16/10/30 10:28:59.39 TSDZ4OFC.net
1/10が0.1になるのがキモイです
普通0じゃないですか?
1.0/10なら0.1ですが

677:デフォルトの名無しさん
16/10/30 11:32:50.61 Z+vVaA9C.net
>>667
要求仕様に対する、解析能力の確認ですね。

678:デフォルトの名無しさん
16/10/30 12:21:33.43 dH+/za6/.net
>>668
URLリンク(ja.wikipedia.org)

679:デフォルトの名無しさん
16/10/30 12:26:08.71 TSDZ4OFC.net
>>670
javaの1/10は出来ないの?
切り捨てたり切り上げたり面倒なんだけど

680:デフォルトの名無しさん
16/10/30 12:39:39.62 dH+/za6/.net
>>671
出来ない
他言語の常識を持ち込むのがナンセンス

681:デフォルトの名無しさん
16/10/30 12:42:33.00 TSDZ4OFC.net
>>672
mjky

682:デフォルトの名無しさん
16/10/30 16:50:23.32 v2s+0v0Z.net
>>673
Math.floor(1/10); であなたの目的は達成できるが、数値演算をJavaと同じにするのは無理

683:デフォルトの名無しさん
16/10/30 17:02:25.81 TSDZ4OFC.net
>>674
負数もそれでいける?
負数だと絶対値が切り捨てで増えて、切り上げで減るとか聞いたけど

684:デフォルトの名無しさん
16/10/30 21:42:24.67 v2s+0v0Z.net
>>675
やってみれば分かることをなぜ聞くかな
試してから聞いてくれ

685:デフォルトの名無しさん
16/10/31 03:18:16.89 vSxBS38U.net
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クラスみたいなものを宣言する存在意義がわかりません。教えて下さい。

686:デフォルトの名無しさん
16/10/31 04:43:21.97 lofvnrlW.net
プロトタイプを持たないオブジェクトを作りたいのならクラスを使わない方がいい
JSON出し入れした場合などはプロトタイプが削除されどうせinstanceof等機能しないのだから。
お作法的にはcreatePersonという関数にする

まあクラスでもとんでもなくいけないということはない
それでわかりやすくなるというのならね

687:デフォルトの名無しさん
16/10/31 05:10:17.86 vSxBS38U.net
>JSON出し入れした場合などはプロトタイプが削除されどうせinstanceof等機能しないのだから。
ですよね。

>まあクラスでもとんでもなくいけないということはない
>それでわかりやすくなるというのならね
デシアライズした後はあんまわかりやすくならなさそうだったので質問してみした。

ありがとうございます。

688:デフォルトの名無しさん
16/10/31 06:43:17.85 xWfuY90D.net
>>677
POJOの意味をわかってないねw

URLリンク(ja.wikipedia.org) より

> POJOの概念は、明らかにPOJOという用語より前から存在する。なぜなら、
> オブジェクトクラスの自然なありさまとは、何ら特別なものではないからである。
> この用語の功績は、何らかのフレームワークを使う利点がその複雑さを補って
> あまりあるかどうかということを開発者に考えさせるという点にある。
> シンプルな設計の方が優れている場合もあるということを思い出させる明確な用語がなくては、
> 複雑なフレームワークが十分な理由のないままシステムアーキテクチャに含まれてしまいやすい。
> POJOによる設計が一般的になるにつれて、大規模フレームワークの機能の一部はPOJOでも
> 実現できることが明らかになってきており、実際に必要な機能領域に対する選択肢は増えている。
> HibernateとSpringがその例である。

意味わかる? POJOっていうのは単なるクラス。フレームワークとかのクラスを継承しない
単なるクラス。それがシンプルで良いという考え方から生まれた用語。

JavaScriptでも同じ。単なるクラスがシンプルで良い。
wikipediaに書いてあるように、特別なものじゃないんだが?

永続化? 補完? そんなものPOJOの意義とは全く関係無い。

689:デフォルトの名無しさん
16/10/31 07:43:46.18 vSxBS38U.net
ありがとうございます。確かにPOJOの意味をしっかり理解してなく
ただシンプルぐらいの感覚で使ってたんですが、
ただ聞きたかったのは「POJOの存在意義」ではなく、
永続化するシンプルなクラスの「クラス宣言」をする存在意義をJavaScriptで知りたかったんです。
実際JavaScriptにはクラスというものはなくて
class Person {
 constructor(name, age);
はただのシンタックスシュガーらしいのですが、わざわざこんな宣言するメリットあるのかなと
それがが聞きたかったのです。
つまり、直接
var p = { };で作ってもいいんじゃないのかと。

690:デフォルトの名無しさん
16/10/31 07:47:51.97 vSxBS38U.net
つか、「存在」ってのつけたのがまずかったですね。
存在ってつけたからPOJOの存在意義って風に。すみまんせん。日本語がおかしかったです。
>永続化するシンプルなクラスの「クラス宣言」をする意義
ただの意義でした。

691:デフォルトの名無しさん
16/10/31 18:41:59.71 lofvnrlW.net
「クラス」って言うのはね、ただのオブジェクト指向をより良く扱うための概念なのよ。
だから、シンタックスシュガーもクソもなくてJSに「クラス」という概念はあるし、
素朴なプロトタイプベースで何もかもこなすのは非効率だから、昔から何らかのクラスシステムが使われてきた。
ただオブジェクト指向のやり方が「クラス」に縛られていないというだけ。
そして標準class構文は1つのより良いクラスシステムを提供するもの。

クラスから継承を取ったら何が残るかと言うと、それは見た目だよ。
createPersonのような関数で済ますのが普通だが、
もし他にそういった物がまだなく、全てクラススタイルで記述されていたらどうだ?
意味はなくとも意義がある。

>>var p = { };で作ってもいいんじゃないのかと
それは全体的な状況による。
例えばclass構文ガチガチのスタイル縛りの設計に無遠慮入れ込む事はできない。

692:デフォルトの名無しさん
16/10/31 18:44:45.95 pApy3Eby.net
var p={};←タプル
class Hoge←OOPのクラス
として使ってる

693:デフォルトの名無しさん
16/10/31 21:26:05.75 xWfuY90D.net
>>682
JavaScriptに限らず言語の文法っていうのは
可読性を上げるために作られているんだよ。

そして可読性を上げる方法の一つが、コードの中から読まなければ
いけないコードの量を減らすこと。

一定のパターンに対して名前をつけてその名前を覚えてしまうことで
読まなければいけない量を減らすことができる。デザインパターンもその一つだけど文法も同じ。
シンタックスシュガーも読まなければいけなかったコードを
短い言葉で置き換えてそれを覚えてしまうことで可読性を上げることにつながってる。
(とは言えなんでも覚えてしまうのは不可能だから、覚える価値があるものだけに絞るべき。
例えばプロジェクト固有の関数は覚える価値が少ない。言語仕様はどこでも使える知識だから覚える価値がある)

また文法っていうのは、汎用的な命令だたものを専用的な命令に置き換えることが
できるように進化してきている。例えばgotoはあちこちに飛ぶことができるものだが、
これをより専用化してbreakやretrunやthrowなどができた。
これはgotoだけでは色んな意味があるから何のために使っているのかわかりにくいが
専用的なbreakであればループを途中で抜けるんだろうなってことがわかるから。

JavaScriptはclassが無くても作れていたが、だが人間は関数とクラスを区別していた人が多かった。
だからその人間の感覚に近づけることが可読性向上につながるわけ。
可読性の問題なのだから無くてもできるのは当たり前。

var p = { }; これだとただのハッシュなのかクラスなのか、色んな使い方ができるから
これだけ見てもわかりづらいだろ? 使っている箇所を読まなければ分からない。

class Personであればnewして使うんだろうなってことが明確になる。
読まなくて済むわけだよ。これが可読性という話。

694:デフォルトの名無しさん
16/10/31 21:29:41.12 xWfuY90D.net
それと可読性というのは全体のコード量にも依存する。
class Personの方がわかりやすいが、全体のコードが数十行程度なら
そこまでする必要はない。

だからコードが短いうちはvar p = {} で書いていても良い。
だけどコードが増えたときには必ずclass Personに変更しなければいけない。

これを放っておけば、犬小屋を作るやり方で一軒家を作るようなことになりかねない。
規模によって適切なやり方は違う。

695:デフォルトの名無しさん
16/10/31 22:06:57.07 R+gJxrwJ.net
>>681
var p = { };は当然に
p instanceof Personがfalseになる

696:デフォルトの名無しさん
16/10/31 22:14:03.50 vSxBS38U.net
色々ありがとうございます。いわゆるクラスベースのオブジェクト指向言語については
もうC++,Delphi,Java,C#と10年以上はずっと使ってきました。
で、今回プロトタイプベースと言われる
JavaScriptを使って本格的にプログラミングし始めたのですが、もちろん最初は
クラス宣言してどんどんクラスを量産してたんですが、今回、例えばSettingsクラスみたいな
シンプルなPOJO的で永続化するクラスを作ろうとしたときに、
デシアライズすると元のプロトタイプチェーン?みたいなものが失われるし、
実際動作させた場合、最初のクラス宣言した元のSettingsクラスのインスタンスは最初の1回だけ作成され
後は別のプロトタイプチェーンが失われた別のインスタンス?とでもいうのでしょうかが動くことになるので、
ん?とちょっと手が止まってしまって質問した次第です。

697:デフォルトの名無しさん
16/10/31 22:22:26.57 vSxBS38U.net
まぁ、永続化後に元のプロトタイプチェーンが失われてinstanceofが機能しなくなりますが、
もちろん、クラス宣言があった方が、実際それ参照すれば元々どんな構造だったのか分かりやすいとは
もちろん思ってましたが、それを踏まえてJavaScriptの経験豊富な方たちは
どうしてるのかなと思って質問したわけです。

とりあえずはプロトタイプチェーンとか気にする必要ない用実装するので
クラス宣言する方向で行こうと思います。

698:デフォルトの名無しさん
16/10/31 22:23:55.93 vSxBS38U.net
Setttingsクラスとかだとクラス宣言ないとどんな設定あるのか把握きついですしね。

699:デフォルトの名無しさん
16/10/31 22:55:13.38 hNQh9muD.net
>>688
> デシアライズすると元のプロトタイプチェーン?みたいなものが失われるし、
> 実際動作させた場合、最初のクラス宣言した元のSettingsクラスのインスタンスは最初の1回だけ作成され
> 後は別のプロトタイプチェーンが失われた別のインスタンス?とでもいうのでしょうかが動くことになるので、
考え方がクラスベースで固定されてるのでプロトタイプチェーンをしっかり学ぶべきな気がする。
デシリアライズしたらプロトタイプ上のプロパティが失われるというが、実際にはシリアライズされた時には失われているのでは?
シリアライズが正常動作しているならそれはデシリアライズ処理がおかしいだけ。
最も、プロトタイプ上のプロパティを拾ってないだけな気もするが。

700:デフォルトの名無しさん
16/10/31 23:08:27.14 xWfuY90D.net
>>688
永続化が問題なのか?クラスの話関係ないじゃん。

シリアライズっていうけどさ、やってるのはJSON文字列への変換だろ?
前提として関数等はJSON文字列に変換することはできない。

シリアライズされたデータの中に関数定義は含まれないので
関数定義とデータは別々に管理しなければならない。
ここまでは自明だよな?

あとはクラス定義(プロトタイプチェーン含む)をコードで作った上で
その中のデータのみをシリアライズ & デシリアライズする。
これがJSONオブジェクトを使った場合のやり方だろ?

701:デフォルトの名無しさん
16/10/31 23:09:18.71 xWfuY90D.net
つーかクラスと永続化の話を切り離して考えろ!

702:デフォルトの名無しさん
16/10/31 23:20:25.00 xWfuY90D.net
そもそも永続化の話ということで考えると、
お前それ本当に永続化したいと思ってんのか?って言いたくなるんだが。

何のために永続化が必要なんだ?
永続化なんてしないだろ。永続化しないもののために
わざわざ永続化のためのコードなんて書く意味ねーぞ?

Javaの話でも同じ。永続化しないものにSerializableなんて
やる必要ないぞ。何も考えずに無駄にコピペしてねーか?

703:デフォルトの名無しさん
16/10/31 23:29:48.72 vSxBS38U.net
え?
永続化する必要あるから永続化しようとしてるのに・・

704:デフォルトの名無しさん
16/10/31 23:48:32.48 VoAu6vx9.net
もう、JavaScriptやめて、Java使えよ

グダグダとくだらねぇこと語って

705:デフォルトの名無しさん
16/11/01 03:03:10.88 lWEkG1Wt.net
「Try Haxe」ヘックスで、試してみ

AltJSのHaxeでは、ソースコードを文字列化して送っても、型が消えない。
大規模開発に向く

706:デフォルトの名無しさん
16/11/01 08:40:03.75 MkSUKVBa.net
>>689
分かった分かった。
君とここの住人はクラスに対する考え方が違うから話が噛み合っているようで無かったみたいだ。

要するに、クラスベース言語では通常捨てオブジェクトを作るにもクラスを設計するしか無いので迷わないが、
JSではプレーンオブジェクトを扱いたい場合にどうしたら良いかという話でしょ?

それならわざわざクラスを設計する必要がないというのが一般的な話だ。
オブジェクトの型ごとに空のクラスを置くのは全くもってJS流ではない。

JSでは、オブジェクトはより自由で気軽なもの。
オブジェクトを作りたいというだけなら、リテラルを使う。

幾つも同じタイプのオブジェクトを生成したい場合関数にて生成するが、
そういった場合それらのオブジェクトに共通した操作を定義したい場合も多い。
ここで初めて出てくるのがクラスだ。

つまりクラスとは、オブジェクト生成に必須のものでは勿論無いし、
あくまでオブジェクト指向の上で構造化のプログラミングする中で出て来る
手法・ツールの一つという位置づけでしか無い。

よって話を戻すと、今回の場合Personクラスを作る必要はない。
というかJSを使いに取っては完全にあり得ない、考えたこともない思考なので、混乱が生じた。
作る必要はないというか、そのような事を考えるのが異常なレベル。

707:デフォルトの名無しさん
16/11/01 10:02:53.69 JdgZau7x.net
またバベル君が狂い始めてるのか。

708:デフォルトの名無しさん
16/11/01 21:13:39.04 iw2Pppzi.net
>>698
お前がJS流とかきめんなや。
クラスを使うかどうかは規模やどう使うか決まる。
言語で決まるわけじゃない。

一般的なクラスとして扱いたいならばクラスにした方がいい。
人間の感覚とコードをできる限り近づけるようにするべきだ。

>>699
呼んだ?w

709:デフォルトの名無しさん
16/11/01 21:24:11.29 MkSUKVBa.net
>>700
いや、今話されてるのは言語で決まる類の話だ。
古き良きクラスベース言語では原則実態であるオブジェクトを作るには
雛形であるクラスを設計しなければならない。
しかしプロトタイプベースでもあるJSではその限りではない。
違いがあって当然。

710:デフォルトの名無しさん
16/11/01 21:34:38.58 iw2Pppzi.net
>>701
なんで古い前提で話をしてるんだよw

新しいJavaScriptではclass構文が追加された。
当たり前だが気まぐれで追加されたわけじゃない。

これが必要とされたからだ。
であれば、どちらかと言えばclassを使うのが適切な場面では
classを使う方がいい。

プロトタイプベースから”改良"されてclass構文が追加されたんだよ。

711:デフォルトの名無しさん
16/11/01 21:46:38.71 o4WGeuVh.net
アロー関数とクラス構文使わない奴は馬鹿と思う
アローのthisそのまま使えるのはチョー便利
長いfunction書かなくていいし

712:デフォルトの名無しさん
16/11/01 22:07:12.64 x6lATtpW.net
誰に向かって言ってるの?

713:デフォルトの名無しさん
16/11/01 22:10:49.88 iw2Pppzi.net
分割代入もなにげに便利だよな。
最初はあまり使わないかなとも思ったけど
関数の引数で分割代入とか目からうろこのテクニック
Promiseと組み合わせて使うとほんと便利

714:デフォルトの名無しさん
16/11/01 22:20:38.57 MkSUKVBa.net
>>702
>>どちらかと言えばclassを使うのが適切な場面ではclassを使う方がいい
とは一体何と何を比較して物を言っているの?
もしかしてclass構文と従来の関数+prototypeを比較した話をしているの?

自分はそんな話は全くしていないんだけど。
オブジェクトリテラルは君も使うでしょ?
それが無い言語、シンプルな使い捨てオブジェクトでさえも
そのための使い捨てクラスを作って、newするのが基本な言語もある。
それとJSは違うという話をしてるんだけど。

それとプロトタイプベースから改良されてという意味も分からない。
今まではプロトタイプベースの皮を被った癖のあるクラスシステムしか用意されてなかった
プロトタイプベースはあくまで言語の縁の下でしかなく、
自由に触れられず結局中途半端なクラスシステムに縛られていた。

プロトタイプベースが真に開放され、インスタンスベースなプログラミングが出来るようになったのは
class構文が搭載されたのと同じES2015から。
つまり"改良"はプロトタイプベースからではなく、プロトタイプベースの皮をかぶった中途半端なクラスシステムから。
その壁に穴を開けて下のプロトタイプベースと、上のより良いクラスシステムを見通せるようにしたというのが"改良"だ。

715:デフォルトの名無しさん
16/11/03 22:59:33.56 cb4Y2Yz9.net
つうか、jscript.netとかswfのes4とか、十数年前からみんなclassて書いてるよ。

716:デフォルトの名無しさん
16/11/04 01:26:18.56 LmRSOsos.net
誰もclass構文の話はしていない

717:デフォルトの名無しさん
16/11/04 19:37:01.89 eNDgRS9h.net
>>708
JavaScriptのスレで話す内容ではない。

718:デフォルトの名無しさん
16/11/04 21:21:51.64 LmRSOsos.net
JSのプロトタイプベースに纏わる話は十分このスレの担当範囲だろうよ

719:デフォルトの名無しさん
16/11/07 21:32:53.88 toRb2seg.net
だれかCancelTokenについて話さない?
Promise.prototype.cancelよりもどこがどう優れてるのかとか。

720:デフォルトの名無しさん
16/11/07 22:10:09.38 883psKTk.net
せめてリンク貼れや

721:デフォルトの名無しさん
16/11/07 22:35:42.50 toRb2seg.net
ほい
URLリンク(github.com)

722:デフォルトの名無しさん
16/11/07 22:46:11.29 883psKTk.net
> 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 か
なら良さそうだな。

723:デフォルトの名無しさん
16/11/08 07:34:19.94 Cn2WM8Zt.net
そう、これが違和感があるのって、taskのcancelationだからなんだよ。
キャンセルの仕組みを外に出した方が応用が効いて便利ってことは分かるけれど、
PromiseってあえてjQueryなどのDefferedと違って内部を外に出さないように設計したよね。

将来的には増やす案があったし、V8なんかは暫く独自機能残してたけど、立ち消えになったよね。
Promiseはあくまでいつか確定される値の抽象だからそんなの付けるべきでないって意見が強かったよね。

逆にそうだからこそ、キャンセルの仕組みを外に出したとも見れるけれど、
プロミスの状態で考えると、解決・棄却・その他は対等なので、
一つだけ操作・利用の仕組みが大きく違うのが違和感ある。

724:デフォルトの名無しさん
16/11/08 09:02:08.41 le3Xpa4U.net
> PromiseってあえてjQueryなどのDefferedと違って内部を外に出さないように設計したよね。
というか、もともとキャンセルの仕組みもついでに処理途中の通知のシステムもないでしょ?

非同期処理をネストしないで書くための方法にとどめておくべきだよ。
asyncとawaitというシンタックスシュガーが使えない環境で
これらを使わずに同じように書くための仕組み。

それ以外は「タスク処理」をするためのフレームワークであって
Promiseとは別に作るべき。

> プロミスの状態で考えると、解決・棄却・その他は対等なので、
Promiseがやるのは順次処理(次の行へ進む)とエラー(例外)だけ
そもそもタスクとして考えるのがおかしい。

つーかついこの間たまたまタスク処理的なものを作ったけど
キャンセルとか状態の通知を追加するとPromiseとは呼べないものになったよ。
内部的にはFetch APIとかPromise使ってるんだけど、それを囲うための
タスク処理とそのタスクを管理する仕組みはイベントベースにせざるを得なかった。
Promiseでは無理

725:デフォルトの名無しさん
16/11/08 09:41:38.26 le3Xpa4U.net
なんでタスク管理の仕組みが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でタスク管理をしてはいけないという話

726:デフォルトの名無しさん
16/11/08 09:46:21.72 le3Xpa4U.net
で、俺の意見としてはPromiseはこのままでいいから
別でタスク管理の仕組みを作れ。
タスク登録して優先順位とか並列実行とか
めんどくさかったわw

727:デフォルトの名無しさん
16/11/08 10:58:01.33 Cn2WM8Zt.net
>>718
いや、君の意見は部分的にはもっともだよ。でも現実そうでないのがなんで?って話。

CancelTokenは、それ自体では完結してない。
あくまでPromiseに「解決」・「棄却」の2つの状態に更に「その他」を加えることが中核。
つまりPromiseが君の言うPromiseじゃなくなることまでは確定されてるのよ。

あくまでそのトリガーを、解決や棄却と同じ形でせずに、
外部からコントロール出来るようにするということでしかない。

だからもっと独立したTaskを作らなかったのが何で?って思うし、
Promiseを継承したCancellablePromiseでもなく、.cancelメソッドを生やすだけでもなく、
どうしてこういう今までのJSの流れと違う、ある意味中途半端で特殊な形にまとめたのかなって疑問。

728:デフォルトの名無しさん
16/11/08 10:58:54.93 oVtTKQIX.net
ゴミ

729:デフォルトの名無しさん
16/11/08 11:04:57.61 Cn2WM8Zt.net
だから自分が言いたいことを整理すると、
どうしてPromiseとTask管理のキャンセルの仕組みを悪魔合体させたのかということ。
そしてそれが幾らか便利なのは分かるが、
簡単に.cancalメソッドを付けたりするくらいでも多くの場合十分なのではないかということ。

730:デフォルトの名無しさん
16/11/08 19:41:39.60 L5B8nS+2.net
classを定義したのですが、そのクラスのメソッド内のコールバックの中で
別のメソッドを呼び出したいのですがどうすればいいでしょうか??
class MyClass {

 method1();

 method2() {
  xhr.onreadystatechange = function() {
   method1を呼びたい。けど、this.method1じゃだめ
  }
 }

}

731:デフォルトの名無しさん
16/11/08 19:54:23.01 nv3pE1Bb.net
>>722
var that = this; で別変数に入れておいて、xhr.onreadystatechange = function(){ that.method1(); } みたいに使う。
あるいは xhr.onreadystatechange = () => { this.method1(); } みたいにアロー関数を使う。

732:デフォルトの名無しさん
16/11/08 20:02:58.32 L5B8nS+2.net
>var that = this; で別変数に入れておいて、xhr.onreadystatechange = function(){ that.method1(); } みたいに使う。
なるほど。this自体を別の変数に入れておけばよかったんですね・・
自分はvar method1 = this.method1
とメソッド自体を別変数に入れて呼び出してたんですけど、呼び出しは成功するっぽいのですが、
method1の内部でthisをmethod1() { thisほにゃらら }と参照するとthisが未定義になって困ってました。

>あるいは xhr.onreadystatechange = () => { this.method1(); } みたいにアロー関数を使う。
アロー関数は聞いた事ありませんでした。調べてみます。

ありがとうございます。

733:デフォルトの名無しさん
16/11/08 20:36:55.73 oXq4xn77.net
ぶっちゃけstatechangeは滅多と使うものではない。
onload使え、もっと言うとfetch使え。

734:デフォルトの名無しさん
16/11/08 21:22:58.34 L5B8nS+2.net
何が標準でどの資料みればいいのかわかりませんが、
onloadは非標準とか書いてあったので、onreadystatechange使ってました。
onload調べてみます。fetchはなんぞ?

735:デフォルトの名無しさん
16/11/08 21:35:01.22 L5B8nS+2.net
FetchってXHRと全くの別物か。

736:デフォルトの名無しさん
16/11/08 22:01:06.66 odPOKtVp.net
>>722
var that = this; は古い
handleEvent を使えばスマートに書ける
URLリンク(developer.mozilla.org)

737:デフォルトの名無しさん
16/11/08 22:13:14.01 L5B8nS+2.net
XHRのエラーハンドリングをまだほとんどしてなかったのですが、
onreadystatechangeだとエラーでstatusが0の時の処理とかあるので、
onloadとonerror使えばすっきりするってことですかね。
ということでonloadとonerrorに書き換えます。

738:デフォルトの名無しさん
16/11/09 06:22:28.44 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!

739:デフォルトの名無しさん
16/11/09 08:10:50.79 HRJGJTih.net
>>726
もし冗談でなく本当にonloadが非標準と書かれた情報が存在し、
それを見てしまったのなら今すぐに目ン玉を引っこ抜いて洗ったほうが良い。
それは5年以上前の情報だから、けして参考にしてはいけない。
死ぬぞ。

740:デフォルトの名無しさん
16/11/09 14:41:13.38 SYPVDf2E.net
>>726
XHR
URLリンク(xhr.spec.whatwg.org)
Fetch
URLリンク(fetch.spec.whatwg.org)

741:デフォルトの名無しさん
16/11/11 11:06:53.92 hqcaajAu.net
npm install yarnと
linuxのyumとかapt-getでいれるyarn
どっちを使えばいいんですか?

742:デフォルトの名無しさん
16/11/11 21:39:29.00 ENznHnYU.net
ndenv、nodenv、nodebrewあたりを使ってるならnpmしか選択肢にならない

743:デフォルトの名無しさん
16/11/13 16:04:40.73 QhlptiVm.net
Google翻訳が改善されたというニュースを皆見たと思うが、
これは我々の世界の英語が得意でない者にとって革命だ。
今までは訳すと読むだけで頭が痛くなるような奇妙な日本語が生成されていたが、
今では勉強に集中できる程度に精度が向上している。

744:デフォルトの名無しさん
16/11/13 16:08:36.94 foNYoSMf.net
やったぜ

745:デフォルトの名無しさん
16/11/13 16:32:58.01 jy2VGr1W.net
Promiseって、処理結果を外に出したり、外から値もらったりするときに
レキシカルバインドした変数を介さないといけなくてダサい
もっとカッチョ良い制御構文無いの?

746:デフォルトの名無しさん
16/11/13 16:47:42.97 foNYoSMf.net
>>737
*function

747:デフォルトの名無しさん
16/11/13 16:52:48.84 TWR6TIrT.net
>>737
それ使っても、Promiseが見えなくなるだけで、
「レキシカルバインドした変数」は同じだよな?

748:デフォルトの名無しさん
16/11/13 21:18:16.74 nngvad4K.net
>>737
try-catch

749:デフォルトの名無しさん
16/11/13 21:33:19.82 jy2VGr1W.net
thenのコールバックの戻り値がPromiseだと、新しいPromise作らないで、それを使うのか
配列に複数の値突っ込んでそれを持ち回す事にした

レキシカルバインドした変数に代入する方法では、書き込む方と読み出す方の同期を取るのが厄介

750:デフォルトの名無しさん
16/11/13 21:51:23.69 TWR6TIrT.net
> 書き込む方と読み出す方の同期を取るのが厄介
シングルスレッドなのに何を言ってるのだろうか?

751:デフォルトの名無しさん
16/11/13 23:47:53.73 jy2VGr1W.net
>>742
Promiseは非同期オブジェクトだから
それと同期してない奴が触ったときに処理が完了してるとは限らないんだな、これが

752:デフォルトの名無しさん
16/11/14 00:34:40.39 UEPxPzue.net
>>743
Promiseは非同期処理を同期的に記述できるようにするものなんだが?
同期的に記述してるのに同期をとるのが厄介ってお前理解してないんじゃね?w

753:デフォルトの名無しさん
16/11/14 00:47:56.56 8ZP1uHGR.net
>>743
それと同期してない奴というのはPromiseに組み込めないの?

754:デフォルトの名無しさん
16/11/14 00:49:40.25 y8otP/4p.net
>>744
処理待ちしてる間に別の処理を差し込めるからバインドしたthisの内容が保証されないって言いたいんじゃね

755:デフォルトの名無しさん
16/11/14 01:06:58.66 UEPxPzue.net
>>746
意味わからん。まあ一言言っておくと、保証されないわけがない。

756:デフォルトの名無しさん
16/11/14 01:22:56.04 y8otP/4p.net
>>747
オブジェクトにデータ積んで行くイベントをPromiseで繋げて完了待ちしてる合間に、
ユーザの操作で別イベントが発火したら未完了のデータに触れちゃうし書き換えられもするだろ?

757:デフォルトの名無しさん
16/11/14 01:24:49.33 Gl21TU7L.net
let g;
(new Promise())
.then()
.then(v => { g = v;}) // <==== (1)
.catch();

console.log(g); // <===== (2)

(2)を実行する時に(1)が完了している事は保証されていない

758:デフォルトの名無しさん
16/11/14 01:38:40.81 UEPxPzue.net
>>749
> (2)を実行する時に(1)が完了している事は保証されていない

???

その場合は、(2)を実行する時に(1)が完了していないことが事が保証されてる

Promiseを実行して処理を非同期にした時点で、後回しにされるんだよ。
JavaScriptはシングルスレッドなんだから後回しになった処理が先に終わることはない。
他に割り込まれること無く(2)が実行される。

759:デフォルトの名無しさん
16/11/14 01:40:04.94 UEPxPzue.net
>>748
それはPromise関係ないな。レキシカルバインドした変数も関係ないな。

二つのボタンがあったとして、先にクリックしたほうが
先に変数にデータを入れられるってだけの話だ。

760:750
16/11/14 01:43:25.22 UEPxPzue.net
あとついでに行っておくとそのコードはバグってて動かない
もう少しまともなサンプルもってこい

761:デフォルトの名無しさん
16/11/14 01:44:04.31 y8otP/4p.net
>>751
お前……さては同期の意味を理解してないな?

744 名前:デフォルトの名無しさん [sage] :2016/11/14(月) 00:34:40.39 ID:UEPxPzue
>>743
Promiseは非同期処理を同期的に記述できるようにするものなんだが?
同期的に記述してるのに同期をとるのが厄介ってお前理解してないんじゃね?w

762:デフォルトの名無しさん
16/11/14 01:46:54.76 UEPxPzue.net
>>753
理解してないと思ったなら自分の考えを書けよ。

763:デフォルトの名無しさん
16/11/14 01:52:00.66 wKdLnPZ8.net
昔サーバ会社に設定のことで問い合わせしたらさ
「example.jpというドメインは存在しません」
というトンチンカンな返答をもらったことあるんだよ

それに匹敵するくらいの無知さを>>752からは感じた

764:デフォルトの名無しさん
16/11/14 01:54:42.93 UEPxPzue.net
>>755
おまえ馬鹿だろw

今ここで間違ったコードを書く理由がないだろ。
>>749はPromiseの使い方を全く分かってない
ということでしかないんだが。

Promiseを使ったコードを書けないから
どういう動きになるのかを自分で確かめることも出来やしない

765:デフォルトの名無しさん
16/11/14 08:36:58.57 Gl21TU7L.net
>>750
> その場合は、(2)を実行する時に(1)が完了していないことが事が保証されてる

だから何?
逆と対偶って知ってる?

766:デフォルトの名無しさん
16/11/14 08:49:19.57 Gl21TU7L.net
想像力が欠如しているID:UEPxPzueには理解出来できなかったが、
複数の非同期オブジェクトを協調して動かす場合は同期が不可避って事だよ

シングルスレッド? 何それ、美味いの w

767:デフォルトの名無しさん
16/11/14 09:12:07.77 UEPxPzue.net
>>757
どこが逆と待遇なんだよw

保証されてると言ってるだろ。
必ず(2)は(1)よりも先に動くんだよ。

768:デフォルトの名無しさん
16/11/14 09:20:35.38 Gl21TU7L.net
このスレは頭の悪い人が多いな

「逆と対偶って知ってる?」今日1日猶予あげるからよく考えてごらん

769:デフォルトの名無しさん
16/11/14 09:36:25.06 UEPxPzue.net
こいつ前スレかどこかでsetTimeoutが必要だとか言って暴れてたやつだろw
蓋を開けてみれば、下請けに作らせた(嘘だろうなw)独自実装の
PromiseっぽいPromiseではないもの(つまり別物)の話で
そいつにしか関係ない話だってやつ。

770:デフォルトの名無しさん
16/11/14 14:11:42.63 SjW+Vo1Y.net
>>761
俺じゃないよ。
俺は眺めてるw

771:デフォルトの名無しさん
16/11/14 14:29:20.23 njlrvKgq.net
スマンが俺もずっと様子を見ていたが>>737の意味が未だに分からないww
最初はプロミスは基本的に1つの値を流していくため、
非同期処理中沢山の変数を共有しようと思ったら外部変数にするしか無いのが
関数型チックに書ききれなくて煩わしいのかと思ったのだが、そうではないのか?

772:デフォルトの名無しさん
16/11/14 14:30:47.94 njlrvKgq.net
>>760
頭がいいのなら、馬鹿にも分かるように説明しろ
それができないのならお前の中でのことでしかない

773:デフォルトの名無しさん
16/11/14 17:08:18.46 SjW+Vo1Y.net
正直、RxJSが気持ちよすぎてPromiseがあろうが無かろうがどうでも良くなって来てる。俺は。
仕事では使わんけど。

774:デフォルトの名無しさん
16/11/14 17:17:23.31 rHIPepSr.net
>>749
何を当たり前のことをいってるんだ?
非同期処理ならそれが当然だろう
非同期処理を同期処理化したいならawaitを使えばいい
awaitは非同期処理を理解していない初心者が有り難がるが、非同期処理のメリットが全部なくなるきたがるんだよな

775:デフォルトの名無しさん
16/11/14 17:27:11.76 kL+E10ET.net
>>749
実行キューに登録された関数が終了するまでは他の関数が起動することはないから絶対2が先に実行される

776:デフォルトの名無しさん
16/11/14 17:40:50.48 0PpRMTCP.net
>>760
知ってるけど、だから何?
頭が悪いのはお前の方だわ

777:デフォルトの名無しさん
16/11/14 17:44:02.19 kL+E10ET.net
何だ荒らしか

778:デフォルトの名無しさん
16/11/14 17:54:39.16 kL+E10ET.net
俺もjavaから入ったからjsの非同期はjavaのスレッドと思っていたけど(だから何故どこにも排他処理の事が書いてないか疑問だった)、しっかり説明読んでやっと理解出来た
だから初心者には難しいのは知ってる
でも初心者なら普通黙って聞くよね?

779:デフォルトの名無しさん
16/11/15 01:46:02.87 b2LTbejx.net
そう。JavaScriptはシングルスレッドっていうのはそういうこと
非同期処理と非同期は処理がどちらが先に実行されるかは当然わからないが、
非同期処理と同期処理は同期処理が先に実行される。

Promiseを使った時点でそれは非同期処理になる
そしてPromiseは複数の非同期処理を、終わったら次に進むという形に
するものなんだから、どちらが先に実行されるかなんて迷う余地はない。

780:デフォルトの名無しさん
16/11/15 07:10:15.19 yv04JlgE.net
XHRがしっかり扱える程度にコールバックや非同期のこと理解してたら
Promiseなんて排他制御が必要になる部類よりずっと簡単ですぐ理解できると思うけどな

781:デフォルトの名無しさん
16/11/18 17:09:50.58 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

782:デフォルトの名無しさん
16/11/18 17:11:58.65 Amerid1m.net
いやーん

783:デフォルトの名無しさん
16/11/26 14:28:20.17 gspGiUEm.net
JavaScriptやjQueryでObjectをコピーする文法には
馴染めないのですが、そんな事はないですか?

784:デフォルトの名無しさん
16/11/26 18:46:17.35 pi8DulB7.net
>>775
> Objectをコピーする文法
あなたのその表現が馴染めない
シャローコピー?ディープコピー?

785:デフォルトの名無しさん
16/11/27 07:31:30.06 T/GZ1EFf.net
extendとかそう言うやつか。

786:デフォルトの名無しさん
16/11/27 08:53:16.82 AMkv8rTe.net
必要性がないなら馴染む必要もないと思う

787:デフォルトの名無しさん
16/11/27 13:37:49.51 wcKeEZPe.net
>>776
単にコピーと言ったときはシャローコピーだろ
ディープならディープと書く
おまえはキスするときいつも相手に訊くのか?

788:デフォルトの名無しさん
16/11/27 14:09:11.37 AZC2UzDM.net
そりゃ、キスする前にバードキスとディープキスどっちがいいって?
マナーとして聞くでしょうに。

789:デフォルトの名無しさん
16/11/27 15:54:55.51 4ldlRD1J.net
>>775
まずJavaScriptではいかなる方法を使っても
Objectを完全にコピーすることはできない。

だからObjectのコピーではない命令を
あんたが使っているだけにすぎない。

だからあんたがコピーだと思っている文法と
違うわけだ。

790:デフォルトの名無しさん
16/11/27 17:47:28.40 mveO+vV3.net
× いかなる方法を使ってもObjectを完全にコピーすることはできない
○ いかなるObjectをも完全にコピーする方法はない

791:デフォルトの名無しさん
16/11/27 22:08:04.56 q8z3Tnre.net
>>779
ひょっとすると、参照コピーを指しているのかも切れないので、シャローコピーと決めつけるのは早計

var obj1 ={}, obj2 = obj1;
obj1.a = 1;
console.log(obj2.a); // 1

初心者がはまりやすいのはこっちだと思うね
シャローコピーではまるのは Object.assign をディープコピーだと思って使ってしまうとか?
いずれにしても、質問者の情報待ち

792:デフォルトの名無しさん
16/11/28 18:13:43.58 E4XiTzNU.net
Objectのコピーも出来ないとかお前ら初心者過ぎるだろ

793:デフォルトの名無しさん
16/11/28 18:21:10.70 KKcrSnYF.net
JSON化して戻せばコピーできる

794:デフォルトの名無しさん
16/11/28 18:28:48.71 By9NqSkN.net
面倒くさいのでjQueryでコピーしてるわ

795:デフォルトの名無しさん
16/11/30 21:42:56.12 0ROmCizq.net
同一ドメインでpostMessageする場合には、
window.open()で開いた親子関係のウインドウ間のみ可能なのでしょうか?
全く他人のウインドウ同士(同一ドメイン内)でも同様にpostMessageできますか?
試したのですが出来ませんでした。

796:デフォルトの名無しさん
16/12/01 02:35:33.78 86kKAE3r.net
Broadcast Channelで可能

797:デフォルトの名無しさん
16/12/01 08:41:27.60 elqpLc9i.net
>>787
>>775もそうだが、無理に新しい日本語を発明して質問するのは止めてくれ
「全く他人のウインドウ」とは何か具体的に説明すべき

>>775は「Objectをコピーする文法」がオレオレ用語
現存の演算子や制御構文にはObjectをシャローコピー/ディープコピーする機構はない
Object.assignはシャローコピー可能だが、「文法」とはこれいかに?
「文法」が代入演算子を指すなら>>783がしっくりくるが、オブジェクトをコピーが曖昧故に既に複数の解釈が出来てる
知ったかぶりで専門用語を並べ立てるぐらいならコードで説明した方が100倍マシ

798:デフォルトの名無しさん
16/12/01 13:42:59.96 rRTfenTZ.net
>>789
アスペは大変だね

799:デフォルトの名無しさん
16/12/01 14:51:06.99 V0GR9lTF.net
>>789
> 「全く他人のウインドウ」とは何か具体的に説明すべき
「window.open()で開いた親子関係のウインドウ」ではないウィンドウだと、普通なら理解できると思うが。

800:デフォルトの名無しさん
16/12/01 14:53:06.08 MTDix4/Z.net
親子丼と他人丼の関係なら理解できるがw

801:デフォルトの名無しさん
16/12/01 18:22:15.66 NluWgpRa.net
>>791
その要件ならiframe要素からcontentWindowを得ればいいだろう
が、「window.openだけでなく、フレームはダメでこれこれこういうものなんです」と条件を後出しする気がしてならない

802:デフォルトの名無しさん
16/12/01 18:48:17.00 V0GR9lTF.net
>>793
どこからiframe要素がでてきたんだ?
質問するのも大変だなという感想。

803:デフォルトの名無しさん
16/12/01 19:18:46.44 FPpa4B9L.net
仕様書ですら何の説明もなく用語や謎のフレーズが出てくることはよくあるな

804:デフォルトの名無しさん
16/12/01 19:27:18.92 NluWgpRa.net
>>794
>>791の要件は満たしている
「window.open以外」としか情報がないのにどう解釈するんだ?

805:デフォルトの名無しさん
16/12/01 21:17:00.50 wkCVFNfo.net
vue-routerってSPA向けであって、
ただ単にURLを変えずに画面切り替えさせるツールとして使えないの?

やっぱりそれだとCSS切り替えさせるだけがいいのか

806:デフォルトの名無しさん
16/12/01 21:19:22.43 d1oSzjmi.net
どう解釈するんだ?ってwindow.open以前に
「全く他人のウインドウ」という要件があるだろ。

iframeの中に入っているwindowなら
「全く他人のウインドウ」でもアクセスできるとでも思ってるのか?

807:デフォルトの名無しさん
16/12/01 21:20:40.53 d1oSzjmi.net
>>797
URLを変えずに画面を切り替えたいのなら
単なるAjaxで実現できる

808:デフォルトの名無しさん
16/12/01 22:10:50.23 qVQfYo/5.net
>>798
「全く他人のウインドウ」とは?
ウインドウに他人も何もないが、何がどう他人?
イメージで語ってる感があるから具体的な表現に直した方がいいと思うぞ

809:デフォルトの名無しさん
16/12/01 22:40:32.66 WdTiwpMY.net
だからね、他人丼と親子丼の関係だって

810:デフォルトの名無しさん
16/12/02 00:12:25.33 tqwX+tIq.net
>>800
無能はレスしないで。じゃまだから

811:デフォルトの名無しさん
16/12/02 01:35:18.54 yix14ac2.net
他人っていうのは要は血が繋がっていないってことでしょ。
起源が関係ない同ドメインのタブ間でメッセージングしたいってこと。

812:デフォルトの名無しさん
16/12/02 02:27:06.31 cAbrvXmy.net
定義するなら「どちらからも API を用いて直接的に参照できない Window オブジェクトどうし」くらいかな

813:デフォルトの名無しさん
16/12/02 08:30:06.20 yix14ac2.net
いや、それはかなりおかしいだろう
API関係なく「windowオブジェクトを取得できない状態」

814:デフォルトの名無しさん
16/12/02 11:43:29.21 f/evnOKU.net
windowオブジェクトの親子関係など存在しない

815:デフォルトの名無しさん
16/12/02 13:22:55.58 7VByTnYi.net
>>803
ウインドウに血縁関係を持ち出している時点でいろいろおかしいから
あと、質問者でもないのに憶測でものを語り過ぎ

816:デフォルトの名無しさん
16/12/02 13:31:01.39 7VByTnYi.net
>>806
一応、window.parent があるからその関係性を親子と呼称しているんだろうね
そこから更に「血が繋がっている」と称しているっぽいけど、定義の範囲が曖昧すぎて本人だけが知るオレオレ用語と化してる

817:デフォルトの名無しさん
16/12/02 13:57:08.34 lwDfhxMF.net
>>808
血が繋がってる云々は、元発言者の発言ではない
あと、お前以外は大体なんのこといってるかわかってる

818:デフォルトの名無しさん
16/12/02 21:30:01.22 Y0rnRsuL.net
「大体」 って、なんか曖昧な感じでちょっと良くないと思うなぁ

819:デフォルトの名無しさん
16/12/02 22:03:00.38 tqwX+tIq.net
全員何のこと言ってるかわかってるって
言っていいと思うよw

820:デフォルトの名無しさん
16/12/02 22:45:13.80 7KiF/zbr.net
>>809
だから、質問者以外が憶測でものを語り過ぎといってるんだよ

821:デフォルトの名無しさん
16/12/03 02:24:14.51 1XG4MZmv.net
誰か答えてやれよ

>>787
windowオブジェクトが取れないならpostMessageはたしかできない
そもそも同一ドメイン(厳密にはオリジン)なら目的にもよるがCookieやlocalStorage、iframeなんかも制限ゆるく使える

822:デフォルトの名無しさん
16/12/03 05:01:50.15 SlvstEBQ.net
>>813
次レス>>788で答え出てるじゃん。

823:デフォルトの名無しさん
16/12/03 08:26:46.93 DMuEuKTJ.net
質問者は雲隠れしてるし、回答する必要はないのでは
それと、ECMAScriptの質問ではないし

824:デフォルトの名無しさん
16/12/03 08:52:02.02 kCSsmmVz.net
>>787
BroadcastChannel 使えばいけるのでは?
URLリンク(html.spec.whatwg.org)

825:デフォルトの名無しさん
16/12/04 18:07:27.84 DmbMEkfK.net
vue.jsのイベントハンドラで、
keyupがCtrlとEnter同時押しの場合メソッド実行、ってどう記述すればいいんでしょう

漁っても見つかりませんでした。

826:デフォルトの名無しさん
16/12/04 20:20:50.75 +/vGZpO/.net
>>718
ここの内容を理解してれば書ける
URLリンク(jp.vuejs.org)
後はメソッド作ってそこでctrlKeyが押されたか素のjavascriptで書けばおk

827:デフォルトの名無しさん
16/12/04 20:57:20.70 ObsZQ3a0.net
>>818
お前がマヌケなことはよくわかったよw

828:デフォルトの名無しさん
16/12/05 14:41:47.17 py+X8wbm.net
関数の引数で、数値変数を参照渡ししたいんだけど どうすればいいかな

829:デフォルトの名無しさん
16/12/05 15:08:03.07 pSDwKct5.net
数値・文字列などは、オブジェクトではなく、primitive なので、
書き込み不可能な値だけが、直接、埋め込まれている

オブジェクトではないので、参照・アドレスなどは存在しない。
値しか存在しない

830:デフォルトの名無しさん
16/12/05 16:03:02.66 py+X8wbm.net
>>821
そこをなんとか
裏技とか無いかな

831:デフォルトの名無しさん
16/12/05 16:33:21.44 8BrnA5VP.net
配列変数で渡せないのかな?
ダメなら、jsonみたいに特定の区切り情報を間に挟んだ文字列にするとか。

832:デフォルトの名無しさん
16/12/05 16:42:52.62 ANvwzotj.net
数値を参照渡ししたくなる時点で設計がおかしいから見直した方が良い
どうしても必要なら>>823

833:デフォルトの名無しさん
16/12/05 17:15:20.81 Oi3oGEbA.net
>>822
数値に何を求めているかにもよるが、new Number で大体の要件を満たせる。
valueOfを動的に書き換えれば値を書き換え可能。

834:デフォルトの名無しさん
16/12/05 18:16:52.64 py+X8wbm.net
>>825
すばらしい
ありがとう
超助かりそう

835:デフォルトの名無しさん
16/12/05 19:24:44.97 eUg7PlUS.net
なんか勘違いしてるぞ。
何度も色んなスレで話されてきたことだが、JSに参照渡しはない。
オブジェクトもプリミティブも共有渡し、もとい参照の値渡しだ。

836:デフォルトの名無しさん
16/12/05 20:05:18.10 8BrnA5VP.net
Objectのnew・deleteでGCが発生しないって事かな?

作ってみたいモノが有るから、そのうち試してみるか。

837:デフォルトの名無しさん
16/12/05 21:34:32.19 PskkFbSl.net
>>827
気づいてないのかもしれないが、
「参照の値渡し」のことを参照渡しって言ってるんだよ。

838:デフォルトの名無しさん
16/12/06 10:27:08.35 jq2pL0Pu.net
>>829
色々と不便だからそうやって呼ぶのやめたほうがいいよ

839:デフォルトの名無しさん
16/12/06 16:50:09.05 VokRQswW.net
vueの質問はここでいいのか?

840:デフォルトの名無しさん
16/12/06 18:31:18.40 NfACm7RT.net
そもそもESの仕様にはGCに関する記述はWMを除いて無く、
値は新しく作られることしか無い
値が複製されることもなくて、新しい名前が付けられる(共有渡し)

841:デフォルトの名無しさん
16/12/06 18:33:38.21 Vi6knW7G.net
CGの仕様がないって事は循環参照で死ぬ参照カウントの可能性もあるって事?

842:デフォルトの名無しさん
16/12/06 23:39:32.25 NfACm7RT.net
どんな可能性だってあるし、別にGCがなくてもESの仕様は満たすということ

843:デフォルトの名無しさん
16/12/07 19:31:41.28 Medm3i/E.net
普段はPython書いてるんだが、今さらながらjsに手を出してみた
Angular2使ってみたんだがReactの方がスマートに思えてきた
どっちの方がおすすめ?

844:デフォルトの名無しさん
16/12/07 19:56:56.70 U/KBvqO4.net
vue.js

845:デフォルトの名無しさん
16/12/07 20:51:25.77 BFSqyyg7.net
>>835
どんなアプリ作る予定?React触ったことないがAngular2はSPA作るのには良くできてると感じた。小規模アプリならオーバースペックではあるが。

846:デフォルトの名無しさん
16/12/07 21:15:03.09 FEJU8uYA.net
>>835
ウェブサイトを作る・・・HTML + CSS + jQuery
業務系アプリ(エクセルっぽい画面でデータを弄る)を作る・・・Angular
グラフィカルアプリ(いろいろなコンポーネントを作る)を作る・・・React
ゲーム・・・どれでもない

847:デフォルトの名無しさん
16/12/08 20:38:15.49 DwX5bf/v.net
なんかbabelとかwebpackとかそういうプロジェクトの準備でパッケージをインストールするだけで50MBも消費するんですが
これをプロジェクトごとにインストールするのって無駄ですね
20プロジェクトで最低1GB消費するとかすごいですね
globalにインストールしても結局package.txtに書いて

848:デフォルトの名無しさん
16/12/08 22:35:19.76 W+Mdrq4F.net
>>839
20プロジェクトあったとして1つのプロジェクトで
パッケージのバージョンを上げた時
他のプロジェクトでもバージョンあがってしまっても大丈夫?

っていう質問に、大丈夫に決まってるだろって
答えられるやつだけが、無駄っていう資格があるんだよ
お前にその資格はねーだろ?w

849:デフォルトの名無しさん
16/12/09 00:03:55.69 GYMahviX.net
ちょっと違うような。
上がってしまっても大丈夫なようなものでもローカルにみんな持ってるってことでしょ。
ローカルに持つならきちんとバージョン指定すべきだけど、そうじゃないパッケージも多い。
そうじゃないのなら(特定のバージョンでないと絶対に困るのではないのなら)
グローバルを利用するようにすべきで、そうでないのは無駄だろうよ。

850:デフォルトの名無しさん
16/12/09 00:46:44.84 EsSFcgle.net
>>839
パッケージの定義だけ残して消せばいいんじゃないの?そのための管理ツールでしょ。必要になったらコマンド叩けば復元できるわけだし。
npmもvagrantも設定ファイルだけ残して全部消してるよ。

851:デフォルトの名無しさん
16/12/09 12:48:43.40 5/1+VZyq.net
package.txtにlocalとglobalのパッケージをまぜてかいてるんですけど
npm upするとglobalに置いてるけどlocalにはないパッケージをインストールしてしまいます
localにあるパッケージだけupdateするほうほうないですか?

852:デフォルトの名無しさん
16/12/09 19:37:55.50 HbVE2MYn.net
>>118
今更だけど、なにがすごいのよこれの。
jQueryのdata Tableとかfootableとかこういうのいくらでもあるよ

853:デフォルトの名無しさん
16/12/10 17:06:30.30 qLBvM9gz.net
vue.jsの環境構築で
「Unexpected token import」というエラーが出てきます。

import App from './App';

下記のように修正するとエラーは出ないのですが、これは何故でしょう?
var Vue = require('vue')

854:デフォルトの名無しさん
16/12/10 17:08:40.15 CHdeaesN.net
babelを使ってないから

855:デフォルトの名無しさん
16/12/10 20:00:47.38 z2dlQ4BE.net
下記のような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とか詰めて書いています

856:デフォルトの名無しさん
16/12/10 20:02:25.98 z2dlQ4BE.net
<script></script>
が書き込み不可になるようです

857:デフォルトの名無しさん
16/12/10 20:06:30.01 YyXkI5ew.net
JSDocってみんな使ってる?
オブジェクトの構成とかどうやって書けばいいのかわからん

858:デフォルトの名無しさん
16/12/10 20:12:33.78 jVtN6n+v.net
>>847
>>1
※DOMはブラウザが提供しているものでありJavaScript(ECMAScript)の範囲外です。
なのでDOMを使ったプログラミングは原則としてこのスレの対象外です。
DOMはwindowオブジェクト(ブラウザのホストオブジェクト)経由で
参照するもので、window自体、window.document、window.Workerなどです。
これに関する話題はWeb制作板の下記のスレに移動してください。

859:デフォルトの名無しさん
16/12/10 20:14:21.17 jVtN6n+v.net
>>>849
URLリンク(usejsdoc.org)を全部一通り読んでからスレに来てください

860:デフォルトの名無しさん
16/12/10 22:41:32.19 YyXkI5ew.net
一通り読んできたけど、書いてなかったわ

861:デフォルトの名無しさん
16/12/11 05:02:45.22 ncQazcOe.net
ECMAScript範囲外の話題は下記スレへ。

■関連スレ
JavaScript の質問用スレッド vol.122
スレリンク(tech板)
JavaScript の質問用スレッド vol.131
スレリンク(hp板)
JavaScript ライブラリ総合質問所 vol.5
スレリンク(hp板)
jQuery 質問スレッド vol.7
スレリンク(hp板)

■このスレについて
このスレは「JavaScriptスレ vol.121」を乗っ取っろうとした荒らしがECMAScriptスレに改変して出来ているのでJavaScriptスレと勘違いしている人が多い。
事実上、「ECMAScriptデス 6」の代替スレのようなものだから次スレは「ECMAScriptデス 7」で立てることを推奨。
(「ECMAScriptデス 5」が落ちてから次スレは立てられなかった)

862:デフォルトの名無しさん
16/12/11 10:43:25.79 nTv8AIQk.net
>>852
一通り読める奴はこんなところに質問しない

863:デフォルトの名無しさん
16/12/11 15:29:55.89 8yi/uDpV.net
>>854
お前みたいな読めない奴には聞いていないんだ
ちょっと引っ込んでてくれないかな

864:デフォルトの名無しさん
16/12/11 15:42:15.22 E18FGHma.net
そこで引っ込んだら本当に読めるやつだけになるだろう?w
それじゃ質問なんか誰もしない。
そんなスレはお断りだ

865:デフォルトの名無しさん
16/12/11 15:56:32.55 jBEhBP0b.net
>>856
じゃあ回答しろよ

質問もしない、回答もしない、チャチャを入れるだけ
ならこのスレに来る理由もないだろ
ここじゃないどこかで体育座りしててくれ

866:デフォルトの名無しさん
16/12/11 16:09:03.30 QckH61YD.net
ドキュメントも読まないバカはお引取り願います

867:デフォルトの名無しさん
16/12/11 16:16:47.68 E18FGHma.net
>>857
答えられる質問であれば回答してるが?

お前俺にずっと回答だけしてろっていうのか?

じゃあ今お前がやってることは何だよ?
質問でも回答でもねーだろ

他人に質問か回答だけをすることを要求するのなら
まずお前が、質問か回答だけしろ。
自分で言ったことぐらい守れよ

868:デフォルトの名無しさん
16/12/11 17:20:50.42 YgjsTwTx.net
>>849
JSDocってどんな時に使っているの?
自作ならば、自分の設計思想を基に記録残しながらやっていると思うけど。

869:デフォルトの名無しさん
16/12/11 19:08:01.12 DMLZrwtt.net
>>849
オブジェクトの構成ってよく分からないけど、
単にオブジェクトごとにリファレンス作りたいなら
@namespaceってタグでオブジェクトごとに分離できる

/** @namespace foo */
var foo = foo || (function() {
// なんかメソッドいろいろ
/**
* @memberOf foo
* // いろんなタグ
*/
}());

/**
* // なんか説明
* @namespace foo.bar
*/
foo.bar = {
// なんかメソッドいろいろ
}

オブジェクト構成図が作りたいみたいな話なら、生成して
できるindex.htmlを自分でいじるしかないんじゃない?
自分はリファレンスとか整備するの好きなんで
自分用のポリフィルライブラリとかにシコシコ書いてる(´・ω・`)

870:デフォルトの名無しさん
16/12/12 02:26:50.08 l2OsM7Pl.net
でもドキュメントを読まない普通の子ならOKです。

871:デフォルトの名無しさん
16/12/12 10:41:43.84 YdV6j9Ia.net
>>861
/**
* うんこ
* @param {object} hoge
*/
function unko( hoge ){
console.log( hoge.chinko );
}

この関数では引数 hoge の中の chinko を使っています
というのを記述したいんです

872:デフォルトの名無しさん
16/12/12 14:19:43.44 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());

873:デフォルトの名無しさん
16/12/12 14:54:46.93 F302LMas.net
ためせばいいだろ数個しかないんだから

874:デフォルトの名無しさん
16/12/12 18:18:55.38 rhAg00cc.net
>>863
そういった説明は普通に冒頭に書くだけなのでは(うんこと書いている部分)
自分もそういう説明は冒頭、あるいは@paramや@returnsのDescriptionに書いてます。
探して見つからない以上そういうタグもないでしょうし、自分も必要性を感じないです。

875:デフォルトの名無しさん
16/12/12 18:23:34.65 snQzvIqt.net
真面目な文章の中にいきなりうんこって単語出てきて吹いたわ
流石2ch

876:デフォルトの名無しさん
16/12/12 18:45:58.13 YdV6j9Ia.net
>>866
ありがとう。
明示的に書けたら、IDEの自動補完の対象にもできて
一石二鳥だよなァ と思っていたので、出来ないなら
ちょっと残念です。 うんこに書くようにしてみます。

877:デフォルトの名無しさん
16/12/13 19:37:26.53 YAjnVVpg.net
>>864
クラスの継承、特にビルトインのそれはES5で完全にエミュレートできないんだから仕方がない。
そういうコードを書きたいのならもうピュアESで書くべき。

878:デフォルトの名無しさん
16/12/13 20:01:34.52 YnqsBGxe.net
Babelくんが出るぞ。
なんせbabelで万事解決するらしい。

879:デフォルトの名無しさん
16/12/13 21:07:36.85 iAtvyUgt.net
つーか釣り針ミエミエだろw
意図を見破られて逃げられてるぞ。
もっとうまくやれ。

880:デフォルトの名無しさん
16/12/13 21:34:56.41 DVZ4mkli.net
>>864
TypeScript

881:デフォルトの名無しさん
16/12/14 12:49:50.71 hfi6HCxW.net
もはやフロントエンドの仕事じゃなくなってるよな

882:デフォルトの名無しさん
16/12/14 22:52:54.32 rsGVtDKV.net
だからここにスレたてたんだよ。
フロントエンドの話がしたいならWeb制作板に言ってくれ

883:デフォルトの名無しさん
16/12/15 07:06:36.17 BawVZm9b.net
フロントエンドってウェブ制作に限らんだろ。
Electronしかり、Cordovaしかり、ReactNativeしかり、NativeScriptしかり。
babelがどうのと言う割に石器時代みたいな事言ってるんだな。

884:デフォルトの名無しさん
16/12/15 12:11:19.86 THL1lN1o.net
react使ってるサイトは重い
qiitaやfacebookで5タブ開くとHDDカリカリうるさい
それなりのスペックのPCなら恩恵あるんだろうが低スペには重いだけのライブラリ

885:デフォルトの名無しさん
16/12/15 14:50:50.45 q7exeZSN.net
メモリ3千円で1本増設して、それを丸々RAMディスクにして
仮想メモリとキャシュ置くようにすれば解決する話だよ。
CPUがPentiumDですとか言うなら別だが。

886:デフォルトの名無しさん
16/12/15 21:27:18.19 B8ikKJQd.net
>>875
Electronか、Cordovaか、ReactNativeか、NativeScriptの
話をしてるならよそに行けとか言わんよ。

誰がいつそれらの話をした?
屁理屈言ってるんじゃねーよ

887:デフォルトの名無しさん
16/12/15 23:18:16.98 BawVZm9b.net
>>878
誰がいつ、って俺が>>875でしたじゃん。それで流れが変われば良いなと様子見をするのではなく、けなされたと激高するのは無能な働き者だよ。

屁理屈はおまえだよwww
なんせ、Chrome最新版だとネイティブで動きます、って話と、フロントエンドの話は別で、って話、どうやっても矛盾してしまうんだから。

888:デフォルトの名無しさん
16/12/15 23:33:14.23 B8ikKJQd.net
>>875以前で誰も話をしてないと認めちゃったw

889:デフォルトの名無しさん
16/12/16 11:07:25.61 1IWVJy5M.net
>>875
フロントエンドの技術を使ったデスクトップアプリ作成周辺までフロントエンドに加えるのは違和感がある

890:デフォルトの名無しさん
16/12/16 18:31:33.63 XkjBV45S.net
デスクトップアプリねぇ。それこそ単にオフラインWebページ開く
ショートカットの登録案内出すのは簡単だしねぇ。

891:デフォルトの名無しさん
16/12/16 18:45:25.14 PNCZZxG5.net
違和感があるとか言われてもなぁ。
UWPとかに至っては、もはや他の何でもないレベルなんだし。
語義通りフロントエンドだし、フロントエンドの技術を使った、って時点でフロントエンドでは無いんだろうか。

892:デフォルトの名無しさん
16/12/16 20:14:29.49 XkjBV45S.net
フロントエンドの人=?フロントエンド

893:デフォルトの名無しさん
16/12/17 14:03:49.55 D8aTFaeL.net
<textarea>で改行のみしかされていない、というのを判定するにはどうすればいいでしょう?

.lengthではtrueされてしまいました…

894:デフォルトの名無しさん
16/12/17 14:04:13.47 D8aTFaeL.net
スレ間違えました

895:デフォルトの名無しさん
16/12/17 18:47:52.93 fWgqKda0.net
>>886
trimしてlength

896:デフォルトの名無しさん
16/12/17 19:13:34.39 FVEXEISP.net
>>885-886
スレリンク(hp板:313番) で再質問したならURLを書きなされ
>887のように既出の回答が出てくる

897:デフォルトの名無しさん
16/12/18 22:58:54.63 LlbVYW0V.net
結局末尾にはセミコロン要るのか要らないのかハッキリしてくれ

898:デフォルトの名無しさん
16/12/18 23:05:17.59 KKAQOfJY.net
夏が来れば セミコロン

899:デフォルトの名無しさん
16/12/18 23:22:26.84 T3p8SL26.net
JSではセミコロン要るよーってruby遣いの人に言ったら鼻で笑われたわ

900:デフォルトの名無しさん
16/12/19 05:12:54.85 axdrvEtR.net
>>889
付けても付けなくても良いんだから、要るも要らないもハッキリは言えない
ただ好きにしたら良いと思う
俺は付けない

901:デフォルトの名無しさん
16/12/19 09:20:58.32 5ETaAwZt.net
minifyしたらどうせ付く

902:デフォルトの名無しさん
16/12/19 11:15:01.89 mMcAuoO3.net
okunokentaroとかいう高卒が最近調子に乗って賢そうなツイートしようとしてるけどてんでバカで笑ってしまう

903:デフォルトの名無しさん
16/12/20 00:12:59.42 2loEwKbt.net
>>894
お前よりは賢そうだがな

904:デフォルトの名無しさん
16/12/20 08:30:08.45 SjXx1bqt.net
あのカンガルーのAA

905:デフォルトの名無しさん
16/12/20 08:42:09.52 fB91VH02.net
 発 者 同         . 。_   ____           争
 生 同 .じ     .    /´ |  (ゝ___)          い
 .し 士 .レ      .__/'r-┴<ゝi,,ノ   ro、      は、
 .な で .ベ      ∠ゝ (ゝ.//`   ./`|  }⌒j     
 .い し .ル        } ⌒ /`ヽ、_∠l,ノ ・ヽ´
 .! ! か の       /  ´..:.} >、、___,  .r、 ソ、`\
             /   ..:.:.}   /   |∨ ` ̄
            /   ..:.:./    |   丶
           / _、 ..:.:.:.{    .{.:.:.   \
          {   ..:Y  .ゝ、   {.:.:.:.:.    ヽ
          |、  ..:/ 丿 .:〉   >.- ⌒  .  ヽ
          / {. ..:./ ソ ..:./  .(    ..:.:.:`  ..:}
         ./..:.:}.:.:./ ヘ、 ..:./   .\ ..:.:r_,ノ、.:.:}
        ./..:.:/|.:/   {.:./     X.:.:}.}   X X
        /..:.:/ .}.:|    }:/       .Y丶ヽ  Y.:Y
  . __/.:/ { }  《.〈、     _,,__>.:》丶   Y.:\
  /.:.:.:.:.::/   !.:.:ゝ  ゝ.:. ̄ヾ ´:.:.:.:.:.:.:.:.:ヾゝ   \.: ̄>

906:デフォルトの名無しさん
16/12/20 10:45:01.39 aCHo98uD.net
ES6(ES2015)で、new 名前空間.クラス名() みたいなことってできる?
TypeScriptだと「module」使ってできるけど。

907:デフォルトの名無しさん
16/12/20 10:58:27.96 MFk6FDSJ.net
それ、名前空間じゃないから

908:デフォルトの名無しさん
16/12/20 11:06:35.25 aCHo98uD.net
で、できる? クラス名がぶつからない方法。new ○○.クラス名() みたいなヤツ。

909:デフォルトの名無しさん
16/12/20 11:12:09.01 wd0c4Sl+.net
試せばすぐに分かることをなぜ聞く?

910:デフォルトの名無しさん
16/12/20 11:25:05.48 aCHo98uD.net
わからなくて困ってるんで聞いてます。
----------------------------------
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() ってできますか?
----------------------------------
(問題解決しないレスはいらないヨ)

911:デフォルトの名無しさん
16/12/20 11:29:07.65 fAq+FOJm.net
やってみればわかるよ

912:デフォルトの名無しさん
16/12/20 11:31:05.45 aCHo98uD.net
>>901
試せない、試し方がわからない=すぐに分からない だから聞いてる。
(いちいち、めんどくせーな)

913:デフォルトの名無しさん
16/12/20 11:41:15.80 j9/nK/yZ.net
var Hoge = {
Foo: function() {
}
}
var foo = new Hoge.Foo()
でダメなん?

914:デフォルトの名無しさん
16/12/20 11:52:46.18 N26jdoYe.net
>>904
試し方を聞いてないじゃん。
めんどくさいんじゃなくて、質問に横着しないで。

普通にnodeか何かか、chromeでF12でコンソール出せば試せるよ。

俺も
{
 name:{
  foo:function(){}
 }
}
で、やると思う。

915:デフォルトの名無しさん
16/12/20 12:06:52.55 ZDgkmudg.net
>>906
そういうのが聞きたいんじゃないと思う。
要するに、ファイル分ければES2015+でもexport/import適切に使うことで可能なことを、
一ファイル中に幾つものモジュールを入れられないかということだろう。
具体的に言うと、自モジュール内ではMyClassでアクセスできて、
それを他モジュール内ではMySpace.MyClassでアクセスできるようにするための、
最もスマートな方法が知りたいのだろう。

結論から言うと、ネイティブexport/importを諦めて
CommonJSチックなのを利用するしか無い。
その時点でES2015+としてはスマートさに欠けるが仕方がない。
もしくは我慢して全てをファイル分けする。

916:デフォルトの名無しさん
16/12/20 12:19:45.20 pjk6TxQO.net
>>907
>結論から言うと、ネイティブexport/importを諦めて
>CommonJSチックなのを利用するしか無い。
楽勝に出来るのに自信満々でウソをつくのか?

// HogeHage.js
class hoge {}
class hage {}

const HogeHage = { hoge , hage};
export default HogeHage;

//
import HogeHage from 'HogeHage';
new HogeHage.hage();

917:デフォルトの名無しさん
16/12/20 12:59:06.22 MoWCkeVm.net
>>908
なんだこれ・・・

918:デフォルトの名無しさん
16/12/20 13:33:59.46 020Rzxth.net
>>908
これいいね。クラス増えてもimportを書き換えなくてすむから。

919:デフォルトの名無しさん
16/12/20 15:19:02.93 N26jdoYe.net
>>907
あー、なるほど。
それなら、
namespace = namespace | {};
namespace.foo = function(){
var _this=this;
  : //必要な事
 return コンストラクタ
}

で良いんじゃ?

920:デフォルトの名無しさん
16/12/20 15:27:29.72 43NQe2ZK.net
>>905 >>906

クラスの継承に対応できないと思われる。

921:デフォルトの名無しさん
16/12/20 15:29:52.21 ZDgkmudg.net
>>908
多分トランスパイラ使ってできると言ってるんだろうけど、
それは今のトランスパイラがCommonJSチックに変換する(しかない)からであって、
今の所のWhatWGのModule仕様やコンセンサスではそれができることにはなっていない。

922:デフォルトの名無しさん
16/12/20 15:30:17.27 N26jdoYe.net
>>912
_thisのprototypeで何とかするくらいか。
たしかにめんどくさいな。

923:デフォルトの名無しさん
16/12/20 15:31:08.43 pjk6TxQO.net
var使ってる石器人はレス禁止
混乱しかもたらさない

924:デフォルトの名無しさん
16/12/20 15:50:26.64 43NQe2ZK.net
>>908
import、export はそもそもブラウザ(chrome等)で動作しないと思われる。

925:デフォルトの名無しさん
16/12/20 16:09:43.45 pjk6TxQO.net
フツーbabel

926:デフォルトの名無しさん
16/12/20 16:24:37.20 ZDgkmudg.net
>>916
だからどっちみちES2015でスマートに書ききるのは無理、諦めてという話をしてる。

927:デフォルトの名無しさん
16/12/20 16:25:20.82 43NQe2ZK.net
>>917
論外

928:デフォルトの名無しさん
16/12/20 16:26:35.17 43NQe2ZK.net
>>918
のような気がしますね

929:デフォルトの名無しさん
16/12/20 16:46:50.43 j9/nK/yZ.net
>>918
908の方法でよくない?変換された後がどうなろうが人は名前空間らしきもの使えてるじゃん。

930:デフォルトの名無しさん
16/12/20 17:25:01.21 L1JD/wQE.net
ID:43NQe2ZKはバカ過ぎて話になんないな

これとか
>>912
>>>905 >>906
>
>クラスの継承に対応できないと思われる。

931:デフォルトの名無しさん
16/12/20 19:12:02.94 N26jdoYe.net
>>917
var使いたくないからbabel使う方がおかしい。
どーせvarに置き換わってるのに。
デカ目の型付き配列から、綺麗に確保したり返したりするレベルで正しくコンパイルされるならわかるけど、
そんなまがい物で満足する気持ちがわからん。
ブラウザ切り捨てるほうがマシ。

932:デフォルトの名無しさん
16/12/20 19:21:33.14 3IscN3UC.net
今時トランスパイラ嫌とか

933:デフォルトの名無しさん
16/12/20 22:08:14.12 YeETBa/P.net
>>924
トランスパイラが嫌なんじゃないよ。
トランスパイラはトランスパイラでしかない。
コンパイラなら意味はあるけど。

934:デフォルトの名無しさん
16/12/20 22:12:52.09 WrmQq8zj.net
Date.now()して「m月d日 hh;mm」の形式にする綺麗な方法はありませんか?
(hh,mmは1桁でも可)

わざわざgetDate()などして連結するしかないのでしょうか?

935:デフォルトの名無しさん
16/12/20 22:26:48.29 UE63r4fu.net
>>926
toISOStringして、replaceで(.*?)-(.*?)-(.*?)T(.*?):(.*?)\..*を、$2月$3日 $4;$5
で良いのでは?

936:デフォルトの名無しさん
16/12/21 00:05:55.85 xYX0mlO/.net
仮にブラウザでネイティブにexport/importがサポートされたとしても
どっちみちbabelなどは必要になるよ。

なぜなら小さなファイルに分割されていたら読み込みが遅くなるだろ?
だから結合処理が必要になるんだよ。
もちろん単純に結合しただけじゃ無理

937:デフォルトの名無しさん
16/12/21 00:10:17.85 RFNpxL9S.net
てかネイティブ対応ブラウザが増えてもIEとかいう糞を使う奴がいなくならない限りサポート切れないから十数年先の話になるでしょ

938:デフォルトの名無しさん
16/12/21 00:11:10.15 tskPgAul.net
HTTP/2 が普及したら分割とか関係なくなるかな

939:デフォルトの名無しさん
16/12/21 01:30:04.07 XipnktJg.net
>>930
SystemJSやばい遅いよね。Ang2は先に行きすぎ。

940:デフォルトの名無しさん
16/12/21 08:25:11.38 yT8Lkx8e.net
>>928
広げるなよw
babelは要らん。それならwebpackで充分。

941:デフォルトの名無しさん
16/12/21 09:19:50.01 MCySocIX.net
>>926
ローカル表示にしたいのなら、決め打たずnavigator.languagesを見ながらIntlAPIを使ったほうが良いと思う。

942:デフォルトの名無しさん
16/12/21 12:33:15.81 X1dbNMbH.net
>>895
高卒沸いたwww

943:デフォルトの名無しさん
16/12/21 21:06:14.85 xYX0mlO/.net
>>929
せやね。早いところIEからEdgeに乗り換えてほしいね。
Microsoft Edgeに。

そうすればMicrosoft Edgeはimportサポートしてるから、
あとはFirefoxやChromeの対応を待つだけで良くなる。
URLリンク(developer.mozilla.org)

944:デフォルトの名無しさん
16/12/21 21:40:39.60 HG47hG4n.net
そろそろ、次スレだな
「ECMAScript デス 6」で立てるとして「ECMAScript デス 4」のテンプレを元にリンク修正してみた
URLリンク(fiddle.jshell.net)
修正事項があれば意見よろしく

945:デフォルトの名無しさん
16/12/21 21:57:51.64 xYX0mlO/.net
うざい。てめーがしきるな

946:デフォルトの名無しさん
16/12/22 00:03:42.02 N3v3bTKO.net
>>6が貼ってくれたように前スレに倣うテンプレだからいいんでないか
反対意見は具体的に書くべきだな

947:デフォルトの名無しさん
16/12/22 02:27:59.81 N3v3bTKO.net
結局、ID:xYX0mlO/ が独断専行で次スレを立ててた
仕切るな、という奴が仕切ってる

+ JavaScript(ECMAScript)質問用スレッド vol.123 + [無断転載禁止]©2ch.net
スレリンク(tech板)

948:デフォルトの名無しさん
16/12/22 14:53:43.08 NvKCe79q.net
>>936
関連スレのURLに「-100」や「l50」が残ってるね

949:デフォルトの名無しさん
16/12/22 18:30:07.32 0dTZqklr.net
nodejs 7.3キタ━━(゚∀゚)━━!!

950:デフォルトの名無しさん
16/12/22 23:14:31.28 zr2stMzt.net
>>940
修正した
URLリンク(fiddle.jshell.net)

951:デフォルトの名無しさん
16/12/23 08:46:25.82 hLVMkx+6.net
ECMAスレの頃にはそもそも次スレを立てる人も居なかったし、
建てても落ちてたのに今や勝手に仕切るなと言われるほどになったんだなぁ(しみじみ)

952:デフォルトの名無しさん
16/12/23 12:04:43.09 L8VrAqOy.net
勝手に仕切るなと言われることが、成長した証拠だとか思ってるのか?

953:デフォルトの名無しさん
16/12/23 12:15:47.82 UAK6AX6k.net
>>937
で、お前誰だよ

954:デフォルトの名無しさん
16/12/30 21:00:20.93 x814SSV+.net
2016年のプログラミングのトレンドを振り返る

最新のJavaScriptが急成長する

JavaScript/ECMAScript version 6(通常ECMAScript 2015あるいはES6)は2015年の6月にリリースされた。
私は2016年にはこの言語が広く採用され、デベロッパーが新しいバージョンに慣れるにしたがって新たサポートされた機能が
ウェブに普及するだろうと予測した。この予測は概ね当たった。

主要なブラウザすべてとNode.js(オープンソースのJavaScriptランタイム)の90%はES6準拠となった。
この頃では、ES6は実験的、実験的な小さなシステムや内部利用に限られるツールに埋め込まれているだけでなく、
さまざまな製品や主要顧客が直接触れるようなインターフェイスにも採用されている。

URLリンク(jp.techcrunch.com)

955:デフォルトの名無しさん
16/12/30 22:06:19.21 Su1lYfd3.net
見出しからして大間違い。一年かけて徐々に普及してきたのは全然急でもないし、それは成長ではない。
ES2016を見ても分かる通り、2016年はJavaScriptにとって休憩・成熟の年。

956:デフォルトの名無しさん
16/12/31 15:41:57.11 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」です。

URLリンク(mayonez.jp)

957:デフォルトの名無しさん
16/12/31 15:45:11.94 2NsOdIiQ.net
>>948
それもう何年も実現できてないやつじゃないか?

958:デフォルトの名無しさん
16/12/31 15:52:57.77 fr6r+Jsz.net
>>948
あちこちに宣伝しなくてもええんやで

959:デフォルトの名無しさん
16/12/31 15:58:37.49 2NsOdIiQ.net
宣伝しないと普及しないんやで?

960:デフォルトの名無しさん
16/12/31 16:13:59.22 z+aCJeF2.net
wasmは宣伝してどうってもんじゃなくね
ESの動向次第だけどJSキラーどころか実行エンジンに組み込まれるのが既定路線っしょ

961:デフォルトの名無しさん
16/12/31 17:06:25.32 2NsOdIiQ.net
言語が動くとして問題はライブラリなんだけどね。
新しいGUIツールキットを作るのか、
それともReactなどを使うのか

962:デフォルトの名無しさん
17/01/01 15:46:08.23 fjo8Lp7F.net
ぼくのパソコンはねWebGLに対応してないからWebAssemblyなんて宣伝されても動かせないから困るんですよ

963:デフォルトの名無しさん
17/01/02 08:37:47.50 GJGsj00t.net
WebAssemblyはこの辺の記事が読みやすかった
URLリンク(codezine.jp)
URLリンク(qiita.com)
特にasm.jsの中の人へのインタビュー記事がいい感じ
JavaScriptを置き換えるものではなく、asm.jsの後継な印象

964:デフォルトの名無しさん
17/01/02 14:28:53.67 cJ1XZtMT.net
次スレ

ECMAScript デス 6
スレリンク(tech板)

965:デフォルトの名無しさん
17/01/04 15:04:29.19 umsjl3YZ.net
質問です。
記事の注目度を量るものが作りたいのです。
idのふってある記事があり、スクロールをしてその記事の所で一定時間以上留まった場合に
データベースに+1クリックされた場合に+10といったような感じで記事の注目度を集計したいのですが、
JavaScriptで作れるでしょうか?

966:デフォルトの名無しさん
17/01/04 15:23:43.08 NPU+n2sm.net
作れるよ

967:デフォルトの名無しさん
17/01/04 16:52:21.31 mqV6TFzJ.net
>>958
どうやったらいいのか書いてやれよ、タコ

968:デフォルトの名無しさん
17/01/04 17:12:55.51 umsjl3YZ.net
ありがとうございます。
作成可能ということがわかれば大丈夫です。
お手数をおかけしましました。

969:デフォルトの名無しさん
17/01/05 06:23:52.60 sTWjNqOn.net
範囲に入ったら、じゃつまんないから、
ディープラーニングを使って、雑多な挙動から人の見てるポイントを当てられるようにしたいね。

970:デフォルトの名無しさん
17/01/13 12:58:49.41 /Ly9HZcx.net
for inでループするとき、unfiltered for in という警告がIDEで出るけど、なんでダメなん?
for( v in list ){
 v.unko();
}

こうすると警告でないけど、これちょっと過保護過ぎない?
for( v in list ){
 if( list.hasOwnProperty(v) ){
  v.unko();
 }
}

971:デフォルトの名無しさん
17/01/13 14:12:40.46 zjO4Avuj.net
>>962
javascript for inでググれ

972:デフォルトの名無しさん
17/01/13 18:31:36.66 /Ly9HZcx.net
>>963
ググったけど、納得はできん

973:デフォルトの名無しさん
17/01/13 22:33:38.93 9L2JHio8.net
>>962
> なんでダメなん?

JSLintを使ってるのがだめ。今はESLintを使うのが普通。
使わないやつはもってのほか

974:デフォルトの名無しさん
17/01/14 01:36:36.33 8r+htSmN.net
>>962
それは配列もしくはイテレータか?Yesならfor-ofを使え
それはプロトタイプを辿ることを期待しているか?Yesならそのままfor-inを使え、NoならObject.keysを使え

975:デフォルトの名無しさん
17/01/14 05:07:21.21 QKiPrSuQ.net
ESLintなんて絶対に要らん
それならTSで書く


976:



977:デフォルトの名無しさん
17/01/14 07:06:34.71 iwTuat6d.net
for-ofって?

978:デフォルトの名無しさん
17/01/14 10:39:47.10 jF4idfYe.net
エラーの捕捉においてTypeScriptがとても強力であれば、果たしてESLintやJSHintなどのツールは必要でしょうか?
答えは「Yes」です。
例えば、エラーのチェックに加え、ESLintはベストプラクティスや文体といった面でのコードフォーマットのチェックを行えます。
残念ながらESLintとの互換性はTypeScript ESLint Parserプロジェクトに依存しており、このプロジェクトはまだ実験段階です。

URLリンク(postd.cc)

979:デフォルトの名無しさん
17/01/15 00:50:13.29 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();

980:デフォルトの名無しさん
17/01/15 01:22:24.01 H2QAGxh+.net
その呼び方じゃどのthisも同じglobalを指すから

981:デフォルトの名無しさん
17/01/15 07:12:01.12 xznLPQ3K.net
>>970
new演算子が使われていないから
thisの使い方を勉強し直すべき

982:デフォルトの名無しさん
17/01/18 22:47:50.54 eABpypnl.net
勉強したてなのですが、
実際にウェブページを開いてるChromeから
ChromeのコンソールよりJSの実行はできたのですが
setIntervalのような処理をしたい場合はどうしら良いのでしょうか?

983:973
17/01/18 22:57:14.78 eABpypnl.net
説明不足でした。

setIntervalをコンソールに打って実行すると
一度は処理をしてくれるのですが、それ以降は処理をしてくれません。
ChromeでsetIntervalの機能を実現するためには、どうしたらよろしいでしょうか。

ここまで書いておいてなんですが、これはChromeの板とかで聞いた方がよろしいでしょうか。

984:デフォルトの名無しさん
17/01/18 23:12:38.51 Vst0K44u.net
Chromeのコンソールはデバッグのために使うもので
そこを使って自分がしたいなにかを実現するところではありません。

985:デフォルトの名無しさん
17/01/18 23:21:41.38 eABpypnl.net
すみません解決しました。

986:デフォルトの名無しさん
17/01/19 14:41:41.47 +apAMdxY.net
thisは極力使わない。
使うときは誤解の余地のない定型的な使い方のみとする。

987:デフォルトの名無しさん
17/01/19 22:22:16.11 owrdnXbA.net
thisにかぎらず、どんなコードも
誤解の余地のない書き方をするのが普通

988:デフォルトの名無しさん
17/01/20 17:51:47.00 wJtT45vW.net
thisは危険だからな

989:デフォルトの名無しさん
17/01/20 18:07:31.87 GCbU9UQF.net
危険な物ほど人間は引かれるんだよ

990:デフォルトの名無しさん
17/01/20 18:41:31.61 ay+DjVWx.net
thisに限らず、使いこなせないものは使わない
適切に学習すればどんなものでも使えるものだ

991:デフォルトの名無しさん
17/01/21 13:38:14.94 s6Ci3q5W.net
初心者なんですが質問良いでしょうか?

・index.html
<!DOCTYPE>
<html>
<head>
<title>ゲーム</title>
<script src="main.js"></script>
<body onload="init();">
<canvas id="canvas" width="1000 height="1000"></canvas>
</body>
</html>

・main.js
function init()
{
var canvas =


992: document.getElementById("canvas"); if (canvas.getContext) { ctx = canvas.getContext('2d'); setInterval(draw, 33); } } function draw() { ctx.fillRect(0, 0, 1000, 600); } これだけのすごい短いコードなんですがctx.fillRect(0, 0, 1000, 600); の600のところを変化させても,200を超えたあたりから変化しないみたいです 何が原因か分かる方いたら教えてください..



993:デフォルトの名無しさん
17/01/21 14:13:04.39 pcFLx4Ty.net
取り敢えずwidth="1000 のダブルクォーテーションを閉じてから
続きの質問をWeb制作板でどうぞ

スレリンク(hp板)

994:デフォルトの名無しさん
17/01/21 14:27:04.14 s6Ci3q5W.net
>>983
ありがとうございます,正常に動くようになりました
今度からはそちらで質問させてもらいます

995:デフォルトの名無しさん
17/01/21 14:27:04.70 s6Ci3q5W.net
>>983
ありがとうございます,正常に動くようになりました
今度からはそちらで質問させてもらいます

996:デフォルトの名無しさん
17/01/28 19:46:33.43 Zf418MWM.net
スレリンク(hp板:570-番) より。

> 570 : Name_Not_Found2017/01/27(金) 16:24:15.01 ID:???
> eval()について詳しくなんでもいいから

ES3 URLリンク(www2u.biglobe.ne.jp)
ES7 URLリンク(www.ecma-international.org)
ES LS URLリンク(tc39.github.io)
MDN URLリンク(developer.mozilla.org)

997:デフォルトの名無しさん
17/01/29 15:12:16.35 CHlx9RpS.net
JavaScript ベスト・オブ・ザ・イヤー 2016
URLリンク(risingstars2016.js.org)

JavaScriptコミュニティは日々進化しています。今日のトレンドも数か月後には陳腐化しているなんてことは日常茶飯事です。

2016年は終わってしまいましたが、何か重要なことを見逃したのではないかと感じているそこのあなた! 2016年の主要なトレンドをおさらいして、そんな不安を払拭しちゃいましょう。

過去12か月に獲得された Github のスター数を比較して、2016年に支持を集めたプロジェクトを数値に基づいて評価していきます。

2015年はなんといっても React でした。そして、Flux 実装を席巻したのは Redux でしたね。 2016年、JavaScript の人気プロジェクトはどのようなものだったのでしょうか?

998:デフォルトの名無しさん
17/01/29 15:34:26.52 0VLffaoK.net
> 過去12か月に獲得された Github のスター数を比較して、

Github のスターはブックマークにすぎないんだから
人気プロジェクトの指標にはならん

そこで紹介されている下のほうがまともなデータだな
URLリンク(stateofjs.com)

例えば、フロントエンドフレームワーク
URLリンク(stateofjs.com)
Vueなんて全く使われてなくて
ReactがVueの5倍、Angularが3倍使われてる

テスト
URLリンク(stateofjs.com)
当然のごとくMochaやJasmineが一番使われてる。
Ava?Jest?なにそれw


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch