+ JavaScript(ECMAScript)質問用スレッド vol.122 + [無断転載禁止]©5ch.io
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2016/08/29(月) 01:23:24.09ID:MUTWRWKoトランスパイラなどの関連技術の話題も取り扱うように変わりました。
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
http://echo.2ch.net/test/read.cgi/hp/1467906819/
+ JavaScript の質問用スレッド vol.130 + [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/hp/1463395557/
前スレ + JavaScript の質問用スレッド vol.121 + [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/tech/1468158373/
0002デフォルトの名無しさん
2016/08/29(月) 02:19:02.03ID:LPmR1rz1以下のサイトがおすすめです。
https://jsfiddle.net/ babel対応
http://ideone.com/ SpiderMonkey、Node.js 対応
0003デフォルトの名無しさん
2016/08/29(月) 02:22:18.61ID:LPmR1rz1The TC39 Process
https://tc39.github.io/process-document/
Stage 1〜3 Proposals
https://github.com/tc39/proposals
Stage 0 Proposals
https://github.com/tc39/proposals/blob/master/stage-0-proposals.md
0004デフォルトの名無しさん
2016/08/29(月) 02:22:35.50ID:LPmR1rz1https://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のエディタがチェックする必要があり
0005デフォルトの名無しさん
2016/08/29(月) 09:37:00.52ID:V2I771t3ECMAScript デス 5 [転載禁止]©2ch.net
http://peace.2ch.net/test/read.cgi/tech/1449027632/
0006デフォルトの名無しさん
2016/08/29(月) 09:37:26.07ID:V2I771t31. - 概要 -
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
http://peace.2ch.net/test/read.cgi/tech/1325448978/
■過去スレ
JavaScript デス
http://pc5.2ch.net/test/read.cgi/tech/1052273054/
ECMAScript デス 2
http://pc11.2ch.net/test/read.cgi/tech/1088298991/
0007デフォルトの名無しさん
2016/08/29(月) 09:37:45.78ID:V2I771t3http://people.mozilla.org/~jorendorff/es6-draft.html
Current Specification
http://tc39.github.io/ecma262/
Current Proposals
https://github.com/tc39/ecma262
tc39-notes
https://github.com/rwaldron/tc39-notes
ES2015 Specificatoin
http://www.ecma-international.org/ecma-262/6.0/
0008デフォルトの名無しさん
2016/08/29(月) 22:45:03.15ID:/4QG0Ido↓動作保証外ですというためにはテストしないといけないらしいよw
930 名前: ◆SEdFBOkLSw [sage] 投稿日:2016/08/29(月) 08:06:03.18 ID:FpDQPGJ0
>>929
だから、動作保証外です、って言うためには、ノーテストだから動作保証外はだめでしょ。
テストして動作保証外と表示される所まで見て動作保証外だよ。
0009デフォルトの名無しさん
2016/08/29(月) 22:45:52.95ID:BFY9f7LW0010デフォルトの名無しさん
2016/08/29(月) 22:46:28.65ID:6Q0H184Qそれは技術的におかしいよね。
意味ないよね。
間違ってるよね。
っていうのがたくさんある。
トリップが本質を示してるw
0011デフォルトの名無しさん
2016/08/29(月) 22:53:05.30ID:1MLmR57m最低でもES2015もしくはTypeScriptじゃないと
書きたくない。
0012デフォルトの名無しさん
2016/08/29(月) 22:53:43.85ID:BFY9f7LWTypeScriptのバージョンがあがったらテストし直しですよ
正気ですか?
ちゃんと動くことだけテストしてどーすんだろ。
>>9
このスレこういうスレなんじゃねえの?1的に。
>>10
そりゃSIerのSEだからな。
0014デフォルトの名無しさん
2016/08/29(月) 22:55:06.23ID:1MLmR57mバージョンなんて何を使っても上がるだろ?w
0015デフォルトの名無しさん
2016/08/29(月) 22:55:45.18ID:BFY9f7LWシステムインテグレーターヤーのシステムエンジニアの方ですか?
ちゃんと走ってちゃんと止まるまともな車検受けた車に乗る派だよ。
エンジンかかったからよしこれで行こうみたいなバカじゃない。
0017デフォルトの名無しさん
2016/08/29(月) 22:56:30.84ID:BFY9f7LWはい工数オーバー、デスマ確定、精神病んで実家タウンにさよならバイバイ
0018デフォルトの名無しさん
2016/08/29(月) 22:57:11.60ID:BFY9f7LWおまえ車検のバージョン上がったらどうすんの?
ネジのバージョンに脆弱性が見つかったけどどうすんの?
0019デフォルトの名無しさん
2016/08/29(月) 22:57:17.74ID:1MLmR57m> そりゃ、ちゃんと動くか、もしくはちゃんと止まるか、がテストじゃん。
それはある条件のときに「ちゃんと止まる」という動きをしたってことでしょ?
それは「ちゃんと動く」の中に含まれてるんだよw
0020デフォルトの名無しさん
2016/08/29(月) 22:57:51.01ID:1MLmR57m> はい工数オーバー、デスマ確定、精神病んで実家タウンにさよならバイバイ
意味がわからん。
俺は何を使ってもバージョンは上がるって言っただけなんだが?
0022デフォルトの名無しさん
2016/08/29(月) 22:58:23.30ID:BFY9f7LW0023デフォルトの名無しさん
2016/08/29(月) 22:59:08.99ID:1MLmR57mデスマにならないようにする方法知らないのか?
Windows 10が出たときに、Windows 10対応を
無料でやるからお前はデスマになるんだよw
0024デフォルトの名無しさん
2016/08/29(月) 22:59:26.85ID:BFY9f7LWはい車輪の再発明、ギルティ。リーダブルコード読んで、どうぞ。
0026デフォルトの名無しさん
2016/08/29(月) 23:00:04.35ID:BFY9f7LWじゃあおまえバージョンあがったらどうすんの?誰が責任取るの?
0027デフォルトの名無しさん
2016/08/29(月) 23:00:39.96ID:1MLmR57m> 全部内製したら良いじゃん。
> 割とマジで。
内製したら、コードを修正するたびに
バージョンが上がるってことになるんですが?
まさか、中身が変わってるけど
バージョン番号が変わってないなら
同じバージョンだって言うんじゃあるまいな?w
それに比べりゃ、複数のコード修正を一括して適用して
バージョンアップするほうが、よっぽどバージョンアップの回数は少ないよw
0028デフォルトの名無しさん
2016/08/29(月) 23:01:02.44ID:BFY9f7LW1回目のブレーキは止まったけど2回目のブレーキは止まるの?100回目は?
テストした?
0029デフォルトの名無しさん
2016/08/29(月) 23:01:19.88ID:1MLmR57m今お前は誰が責任とってるんだよw
自分の胸に手を当てて考えてみろw
0030デフォルトの名無しさん
2016/08/29(月) 23:02:04.20ID:BFY9f7LWじゃあおまえ依存性の注入されたTypeScriptでバグ見つかったらどうすんの?
0031デフォルトの名無しさん
2016/08/29(月) 23:02:25.88ID:BFY9f7LW誰だろうね?
なんぼでも再発明したらよろしいw
フレームはアルミで、何グラム以下で、タイヤの素材は○○で、何インチで、何キロに耐えられる車輪、
は、車輪の再発明には違いないが、その車輪としては初出だからな。
0033デフォルトの名無しさん
2016/08/29(月) 23:05:29.41ID:1MLmR57mバグが見つかったときの対応は最初の契約で決まってる
多くは納品してから○週間までは無料で対応
それ移行は別途見積もりが普通
ブラウザやOSなどのバージョンアップも同じ。対応している環境はどれこれと指定して
それ以外の新しいバージョンも古いバージョンも動作保証はしない。別途見積もり。(別途契約があれば別)
もちろん動作保証しないのだからテストもしない。そもそも納品後の新しいバージョンでテストなんかできるかw
0034デフォルトの名無しさん
2016/08/29(月) 23:06:02.03ID:BFY9f7LWおう、バグのないJavaScript発明しろよ
あくしろ
0035デフォルトの名無しさん
2016/08/29(月) 23:06:27.44ID:BFY9f7LW無責任
そうだよ。
構成部品のどれがどう変わっても、ある製品には違いないよ。
ビルドナンバー違うけどね。
ビルドナンバーごとに構成管理してるっしょ。
一括適用は事故起きるよ。
こまめに何度もテストとVerUp。定期出荷するんだし。
>>28
ただテストしただけのバカにそれ言ったら泣いたことあるわ。
何故2回のテストで十分か、パターン教えて、単純に考えたら120c6じゃん。ここからどう絞ったの?納品として良いの?って。
0037デフォルトの名無しさん
2016/08/29(月) 23:10:04.54ID:BFY9f7LWなるほど、それで?
0038デフォルトの名無しさん
2016/08/29(月) 23:10:47.12ID:1MLmR57mこまめに何度もテストができる状態にあれば
babel使っても、テストすりゃいいんだから
テストのコストは変わらんじゃんw
お前は印欧語祖のankとang調べとけw
だから、それじゃあbabelに依存するでしょ。
さっき言ってたけど、ブラウザのバージョン上げるけどbabel上げないとか、ポリフィル残るし無意味でしょ。
そうでなくても依存度下げてるのに意味ないじゃん。
babelが問題あったらそれこそ面倒だし、こないだもnpm自体あんなに無意味に揺れたじゃん。
何故babelにそんなにこだわんの?
0041デフォルトの名無しさん
2016/08/29(月) 23:13:48.95ID:BFY9f7LW僕は今怒ってるんだよ?君の不誠実な態度に。
ちゃんと説明して。胸に手を当ててよく考えて。
0042デフォルトの名無しさん
2016/08/29(月) 23:13:50.26ID:1MLmR57mアホかw
babel導入前と導入後で同じテストを流すんだよw
後々はコードを変えるかもしれんが
導入した直後はまったく一緒だ。
0043デフォルトの名無しさん
2016/08/29(月) 23:16:10.90ID:1MLmR57m> 何故babelにそんなにこだわんの?
babelを使わずに、
ES6に対応したブラウザを使って
ES6で書いてアプリコードをテストを、
古いブラウザでそのまま動かせるから。
新しいブラウザでbabelを使わずにテストをして動いているのだから
アプリのコードとテストのコードに問題がないことは証明済み。
それをbabelを使っても正しくテストが通るのだから
これに問題がないことも証明済み。
こまめにやらなくても良いテストをやる羽目になるんじゃ、それこそコストかかるじゃん。
その会社が請けの金額内で勝手にやって確実なもの納品するなら良いけど、
何かあったらそれこそ入札させんよ。ライブラリに不備があり、なんて言い訳。
俺自身ずっとパッチ見てるし、そういうのも割と見つけるけどな。
0045デフォルトの名無しさん
2016/08/29(月) 23:17:09.64ID:1MLmR57m例えば、CoffeeScriptだったとしたら、
それはブラウザでそのまま動かすことが出来ない。
だけどbabelであれば、babelを使わずに
新しいブラウザで動かすこともできる。
0046デフォルトの名無しさん
2016/08/29(月) 23:17:37.75ID:BFY9f7LW0047デフォルトの名無しさん
2016/08/29(月) 23:17:45.45ID:1MLmR57m> こまめにやらなくても良いテストをやる羽目になるんじゃ、それこそコストかかるじゃん。
意味がわからん。
アプリを修正するだろ?
テストを実行するだろ?
同じじゃんか。
0049デフォルトの名無しさん
2016/08/29(月) 23:19:14.09ID:1MLmR57m> 何かあったらそれこそ入札させんよ。ライブラリに不備があり、なんて言い訳。
ライブラリに不備があろうがなかろうが、
テストコードが通ればOKだしテストコードが通らなければNG
テストコードが通ってもバグが有るのなら、
それはライブラリの問題じゃなくて
テストコードを書いた開発会社の問題。
ライブラリの問題じゃない。
っていうか、ライブラリにバグがあれば
テストコードは失敗するってわかってる?
0050デフォルトの名無しさん
2016/08/29(月) 23:19:40.65ID:BFY9f7LW君たち素なの?お酒飲んでる?
誰が、どう、テスト結果を検収して、どうリリースノート書いて、どうリリースして、どう立ち会って、どう研修印貰うの?
動くはずだからどーぞ使ってくださいの世界じゃねえぞ。
0052デフォルトの名無しさん
2016/08/29(月) 23:20:28.64ID:1MLmR57m> 同じテストなら金掛からんの?
> 全く動作変わらないの?
お前何のためにテスト書いてるんだよw
中身が変わっても(改修を行っても)正しく動くことを
証明するためにテスト書いてるんだろw
違うわw
改修しても、正しく動く事を目的にテストしとんのだ。
誰のなんのどの金使うんだよそれに。
0055デフォルトの名無しさん
2016/08/29(月) 23:22:14.47ID:1MLmR57mお前IE使ってるんだよな?
IEのソースコード見れないよな?
それでテストしてるんだろ?
中身が見れなくてもテストしてるんだろ?
それと同じなんだが。テストって言うのは中身の実装に対してやるもんじゃないんだよ。
中身がどうであれテストの内容は同じものになる。
だから、お前がいう
誰がどうテスト結果を研修して〜の内容も
babelを使ったときと使わないときで何も変わらない。
0056デフォルトの名無しさん
2016/08/29(月) 23:22:46.60ID:BFY9f7LW0057デフォルトの名無しさん
2016/08/29(月) 23:23:18.10ID:1MLmR57m> 改修しても、正しく動く事を目的にテストしとんのだ。
改修しても正しく動くことを目的とした
テストが自動化されてるんだろ?
じゃあ、中身をどう変えたところで
テスト内容は何も変わらんだろ。
0058デフォルトの名無しさん
2016/08/29(月) 23:25:37.41ID:BFY9f7LWあの誰も読まないテスト項目書に丸付けたあと適当にモンキーテストするやつ?
それともたまにしか通らないバグコードを増やすだけのUnitTest?
0059デフォルトの名無しさん
2016/08/29(月) 23:28:55.81ID:1MLmR57mユニット(単体)テスト+結合テスト+統合テスト
困ったことにこれらの用語と意味する内容は
会社ごとに微妙に違う。
これらすべてが自動化されていることが理想。
特にウェブアプリは、一般的にブラウザもOSも
バージョンが頻繁に上がるから、自動化されてないとやっていけない。
ここまではbabel導入とは関係ない話な。
で、自動化されてるならば、babel導入しても
テストは変わらないんだからコストも変わらんという話をしてうr。
だから、
babelのバージョン上げる、babelでどうの、が全部要らなくなるよな。使わなければ。
使わないときと使ったときでは明らかに違うじゃん。
babelのバージョン上がったからテスト、が一切無いんだし。
babelのバージョン上げねばならん、も一切無い。
文化オリエントに依存して死んでった会社みたい。
>>57
「改修しても」な。要望出した客か、不具合出した会社の「改修」が金出すわな。保守費からの間接か、スポット契約ならなおさら。
babelのテスト〜納品、検収。
これ誰の持ちだし?
0061デフォルトの名無しさん
2016/08/29(月) 23:30:14.67ID:1MLmR57m> 使わないときと使ったときでは明らかに違うじゃん。
babelを使ったときと使わないときでテストの内容は変わらん。
何を言ってるんだ?
お前はどんなテストを書いてるんだ?
それがどう変わるのか言ってみろよ。
ちなみに、IEがどうのというが、契約次第だよ。
テストの内容じゃなくて、テストの意味と金。
0064デフォルトの名無しさん
2016/08/29(月) 23:31:23.80ID:1MLmR57m意味が全くわからん。
その理屈だとブラウザのバージョンが上がったらからテストだって一切ないよな?
続き書いてんのに、自分が理解できない事が出てきたら読めなくなる病気にでもかかってんのかな。
は?
babelのバージョン上がったからテスト、がなんで無いと思う?
使ってないからだよ。
0067デフォルトの名無しさん
2016/08/29(月) 23:33:10.79ID:1MLmR57mお前が言ってるテストって何のテストをしてるんだ?
普通は単体テストであれば、
関数に引数を与えて答えがちゃんと帰ってくるかなんだが、
そこに関数の中身がどうなってようが関係ないだろ。
単体テストじゃないならばもっと関数は関係ない。
アプリの動作が全く同じならば、中身が何で作られてようが
全く関係ない。
0068デフォルトの名無しさん
2016/08/29(月) 23:33:38.78ID:BFY9f7LWJavaScriptのバージョンが上がったらどうすんの?
総合テスト。
関係あるから言ってんじゃん。
0070デフォルトの名無しさん
2016/08/29(月) 23:34:21.71ID:BFY9f7LWでもbabelで作ってたらbabelのためにbabelのテストしないとだよね?
0071デフォルトの名無しさん
2016/08/29(月) 23:34:37.44ID:1MLmR57mお前が言ってる内容は
お前にしか通じんわw
だから他の人に聞く
> babelのバージョン上がったからテスト、がなんで無いと思う?
これの意味を説明してくれ(もし理解できる人がいるならばだ)
どうせ誰も説明できないさw
それこそ意味不明である証拠だからね。
上げない。
上げるときは、予算とってやるよ。
0073デフォルトの名無しさん
2016/08/29(月) 23:35:11.30ID:1MLmR57m> でもbabelで作ってたらbabelのためにbabelのテストしないとだよね?
いらない。というかそのテストの一例を書いてみてくれ。
0074デフォルトの名無しさん
2016/08/29(月) 23:35:45.37ID:BFY9f7LWそのテスト自動化されてる環境が、
今の日本にどれだけあると思ってるの?
0075デフォルトの名無しさん
2016/08/29(月) 23:36:18.74ID:1MLmR57m予算取るのかよ(爆笑)
0076デフォルトの名無しさん
2016/08/29(月) 23:36:37.95ID:BFY9f7LWじゃあおまえPHP使ってないだろうけど今すぐPHPのテストしてこいよ
0077デフォルトの名無しさん
2016/08/29(月) 23:36:49.46ID:1MLmR57m自動化されてないならば、
どうやってブラウザがバージョンアップしたときの
テストをしているのか教えてくれ。
0078デフォルトの名無しさん
2016/08/29(月) 23:36:58.58ID:BFY9f7LW銭ゲバSE
泥棒
次の行に書いてんのになぁ。
あるネジのあるロットに不備があるから、そのネジ使ってる製品全部リコール、
の、リコール対象って、ネジ使ってる製品だけじゃん。
0080デフォルトの名無しさん
2016/08/29(月) 23:38:08.25ID:BFY9f7LWみんなで手と手を取り合って愛と根性でテストするんだよ
日本の伝統文化だよ、ゲイシャフジヤマニンゲツ
0081デフォルトの名無しさん
2016/08/29(月) 23:38:36.70ID:BFY9f7LW誰の金で飯食えてると思ってるんだ、クソニートが
0082デフォルトの名無しさん
2016/08/29(月) 23:38:38.48ID:1MLmR57mなら、そのぽちぽちとやる人海戦術のテストの前に
babelを導入すれば、テストは一回ですみますよねw
0083デフォルトの名無しさん
2016/08/29(月) 23:39:55.78ID:BFY9f7LWバベルのバージョンが上がったらどうすんの?
0085デフォルトの名無しさん
2016/08/29(月) 23:41:35.61ID:BFY9f7LW跋扈の範囲内なのに・・・
0086デフォルトの名無しさん
2016/08/29(月) 23:42:40.99ID:BFY9f7LWNo 内容 期待値
1 テストデータを用意する。 正常に購入完了できること。
はいどうぞ
最悪のテスト。
テストに「正常」と言う言葉を使って、「正常となる」とテストすんなバカ。
何がどう正常かを定義してその通りだと確認すんのがテストだよ。
0088デフォルトの名無しさん
2016/08/29(月) 23:47:42.65ID:BFY9f7LWそろそろ寝る時間だよ
明日は交通機関が止まる可能性があるんだから1h前に家を出るんだよ
台風程度で遅刻する社会不適合者のゴミ屑は上司のウンコ喰って死ぬのが
この国の伝統文化だからね
0089デフォルトの名無しさん
2016/08/29(月) 23:49:15.00ID:BFY9f7LW自分で考えろ、ガキじゃないんだから
適切なデータを用意して、正常に動作することを保証するんだよ
行間を嫁って小学校の国語の授業で習わなかったのか?
そんなの上司に質問したら張り手もんだぞ
さすがに1hくらい時差出勤しなよ…
コアタイムには間に合うだろ。
0091デフォルトの名無しさん
2016/08/29(月) 23:51:15.79ID:BFY9f7LWコアタイム9-18時
1時間前に出社して社屋の清掃
その1時間前に余裕を持って出社する
0092デフォルトの名無しさん
2016/08/29(月) 23:54:05.50ID:BFY9f7LW細かい言葉の違いなんかしょうもないことを気にせずテストは気楽に
ドキュメントは書いてはいけない
0093デフォルトの名無しさん
2016/08/29(月) 23:56:37.04ID:BFY9f7LW損害賠償もんですわ
楽しかったよ。
でもお前酔ってるだろw
0095デフォルトの名無しさん
2016/08/29(月) 23:59:13.57ID:BFY9f7LW0097デフォルトの名無しさん
2016/08/30(火) 00:08:00.53ID:vxcmsfn40098デフォルトの名無しさん
2016/08/30(火) 00:44:53.70ID:h5DGk6QO明らかに主題と離れているから?
それとも、ワッチョイがコワいから?
俺が立てたから気に食わんのだろう。
雑談スレにすれば?
ブラウザとは全く関係のない、そして、古いJavaScriptではなく本人曰く、唯一無二の最新のJavaScriptの質問が来るまで。
0100デフォルトの名無しさん
2016/08/30(火) 09:36:39.00ID:JoG6iYvQプログラマ板の趣旨からは外れているからですね。
掲示板にこのように書かれています。
http://echo.2ch.net/tech/
> プログラム・ソフトの使い方はパソコン初心者板やソフトウェア板へ。
> ウイルス、ハッキング・クラッキングを求めるような発言は禁止です。
> Javascript はweb制作管理板、CGI はWEBプログラミング板へ。
> 業界談義、愚痴はプログラマー板へどうぞ。
JavaScriptは本来Web制作管理板なんですよ。
だからブラウザ専用の話がしたいならそっちでやるべき。
だけど、これが書かれたのはJavaScriptがブラウザでしか動かなかった時代の話で、
サーバーサイドJavaScriptがWeb制作管理板とは思えない。
なのでこちらは純粋に言語の話と普通のコンパイラ言語のように
ビルド周りの話に切り分けるべきでしょう。
その話をWeb制作管理板でやるのは荷が重すぎますからね。
あちらはウェブデザイナーに毛が生えたようなレベルですから。
0101デフォルトの名無しさん
2016/08/30(火) 10:31:44.92ID:rnePWv6aまあそれもいいかもしれんがECMAScriptとスレタイにつけた限りは
過去のESスレのように仕様周りの話も期待させてもらうぞ。
どのみち、このスレはあまり業務向けではないな。
ビルド周りがわからんなぁ。
ES5で書いてても、node動いてるならム板でいいんじゃねえの?逆に。
ビルドするか、せずに使うかは好き好きだし。
ビルドするならブラウザの話もしても良いみたいな論調に聞こえるなぁ。
「純粋に言語の話」と「普通のコンパイラ言語」がビルドで別れてるわけでもあるまいて。
ビルドする処理系も、しない処理系も、しないけどJITな処理系もあるんだし。言語自体も、コンパイラとは全く関係ないじゃん。
「バベる話は含みます」と言いたい事言えばいいのに。
0103デフォルトの名無しさん
2016/08/30(火) 18:30:50.76ID:rnePWv6a整理しなきゃならないほどレス多くないんだから。
あくまで目安よ。目安。
0104デフォルトの名無しさん
2016/08/30(火) 21:24:04.22ID:vxcmsfn4でもおまえbabelアンチじゃん?
0105デフォルトの名無しさん
2016/08/30(火) 21:55:39.79ID:JoG6iYvQ> ES5で書いてても、node動いてるならム板でいいんじゃねえの?逆に。
> ビルドするか、せずに使うかは好き好きだし。
そう書いたつもりですけど?
> 「バベる話は含みます」と言いたい事言えばいいのに。
babel語なんてものは存在しない。っていうかもしかして知らないの?
babelでトランスパイルするように書いたコードにbabel専用の特別な命令なんかない。
最新のブラウザであればそのまま動くコード。
> 言語自体も、コンパイラとは全く関係ないじゃん。
あんたが言ったとおり。言語自体はトランスパイラ(babel)とは全く関係ない。
JavaScrpt(=ECMAScript)の部分はブラウザでもnodeでも同じように動く。
nodeで動かないのはDOMの部分だけ。DOMの部分というのは
windowホストオブジェクト経由で参照するもの。
そもそもJavaScriptはプログラム言語なのだから、この板対応だと思うが、
なぜかム板のルールでWeb制作版に追いやられてる。
(昔はウェブ専用の簡易スクリプトでしかなかったからだと思うが)
俺としてはJavaScriptの話をム板でやるのは問題ないと思うが、
Web制作版にもJavaScriptスレは必要というのなら、
DOM関連の話をWeb制作版に持っていこうという話。
0106デフォルトの名無しさん
2016/08/30(火) 22:46:30.57ID:rnePWv6a昔はDOMだったPromiseみたいにWebと関係ない独立したAPIも多いしね。
ブラウザだってWebサイトを回覧するためのものだけではなくなってて
Web自体がプラットフォーム化してる今APIで区切っても仕方ない。
0107デフォルトの名無しさん
2016/08/30(火) 22:49:09.04ID:JoG6iYvQ昔からPromiseはDOMじゃないよ。
0108デフォルトの名無しさん
2016/08/30(火) 22:56:53.51ID:JoG6iYvQ指しているか知らんけど、
PromiseがJavaScriptの世界に提唱された初期の文書は
これなんだがURLからもわかるとおりCommonJSから生まれた
http://wiki.commonjs.org/wiki/Promises
CommonJSっていうのはサーバーサイドJavaScript
0109デフォルトの名無しさん
2016/08/30(火) 23:29:26.97ID:rnePWv6a勉強しなおしてきなさい。
アンチでもないよ。
あれは処理系として数えたいだけ。
ただのAltJS。
>>105
専用の命令でもあるし、汎用の命令でもあるよ。
解釈のされ方の問題だってば。
問題ないと思うが、と思うなら変な応酬も復讐まがいのこともせんと、受け入れれば良いんじゃねえの?
勝ち負けにこだわる人だこと。
>>109
こいつその辺の話知らんよ。
そもそも大体殆どのものが借用語みたいな言語だって事も理解してない。
JavaScriptとは関数が一級市民で、って話も、いつぞやドヤ顔でしてたけど、
原始再帰関数もリストも知らん、lispもerlangも見たことないカスだから。
0111デフォルトの名無しさん
2016/08/31(水) 01:42:04.32ID:mbRHTL3Vそれは標準化されてない
0112デフォルトの名無しさん
2016/08/31(水) 01:44:35.04ID:mbRHTL3Vhttp://www.html5rocks.com/ja/tutorials/es6/promises/
> JavaScript Promise は、最初 "Future" という名前で DOM の一部として実装されていたのが、
> 後に "Promise" と改名されて、最終的に JavaScript の一部として実装されました。
最初、と、最終的に、の間に何があったと思ってるんだろう。
0114デフォルトの名無しさん
2016/08/31(水) 08:18:41.23ID:j/FYmeM2すまんな。俺が最初に>>106で要らんちょっかい書けたのが悪かった。
もう事実に関係なく意味のない、相手の意見をどうにか覆すためだけの
単なる言葉の掛け合い合戦になってるのは分かるだろう?
ここらで終わりにしようや。
0115デフォルトの名無しさん
2016/08/31(水) 09:31:50.57ID:mxX4GOArこれが初期のJavaScript1.1という仕様書
http://www.planetpdf.com/codecuts/pdfs/tutorial/jsspec.pdf
この段階からDOMはJavaScriptという言語の中に入ってなかったんだよ。
それは今も変わらずで、DOMはJavaScriptの仕様の範囲に入ってないから
ブラウザがDOMを作成して、それをJavaScriptの環境から参照できるようにしている。
これがブラウザでない場合はDOMはではなく、別のものになる。
◆SEdFBOkLSwはどうも曲解してこれを認めないから聞くだけ無駄だが、
この話が違うって言いたい人いる?
0116デフォルトの名無しさん
2016/08/31(水) 12:36:42.81ID:05Cg2vNV親クラスのプロパティを子クラスと共有する方法は何か無いでしょうか
0117デフォルトの名無しさん
2016/08/31(水) 17:46:15.73ID:j/FYmeM2普通に考えて継承関係にあるなら共有されてるじゃん。
0118デフォルトの名無しさん
2016/09/01(木) 01:28:37.64ID:G09cpOvFcomic loスレより転載
パス:sage
ttp://www1.axfc.net/u/3712796
0119デフォルトの名無しさん
2016/09/01(木) 01:31:37.14ID:qZMo0Rlk具体的なコードを書いてくれないと意味がわからない。
例えばこれは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ミリでもあるうちは、納得しないに決まってんじゃんねえ。
納得させたいのか、勝ちたいのか、認めさせたいのか、
自分の知識が不安なのかはっきりしろよ。
0121デフォルトの名無しさん
2016/09/01(木) 08:56:57.32ID:+FVjZRJvお前に聞いてねーよw
ほれ見ろ、誰ひとりとして俺が言ってることが
間違ってるとは言ってないじゃないかw
0122デフォルトの名無しさん
2016/09/01(木) 09:30:51.00ID:+FVjZRJv適切なJavaScript(≒ECMAScript)コードであるが、
babelを使って古いIEなどで動かすことができる。
重要なのはこれをbabelで変換するからと言って
babel専用の構文ではない。
0123デフォルトの名無しさん
2016/09/01(木) 09:32:58.55ID:+FVjZRJvおそらく、babel専用の共通の文法から
新しいブラウザ向けにclassに変換 or 古いブラウザ向けにfunctionに
変換するんだと思っているんだろうね。
AltJSはたしかにそれに近いが、babelは
新しいブラウザ向けの構文を変換するので
babel専用の文法なんてものは存在しない。
0124デフォルトの名無しさん
2016/09/01(木) 09:51:14.48ID:5kBL1onlわかってるって(笑)
専用の文法とも、専用の言語とも言ってないだろ。
ただ、babelで使うために書いたのであれば、
FireFoxで使うために書いたコードがFireFox向けに書いたコードであるのと同様に
babelで使うために書いたコードは、babel向けに書いたコードであって、ネイティブなFireFoxの為に書いたコードとは意味合いが違うって言ってんじゃん。
webpackも同じ。
専用では無いよ、babelの為に書いたコードだってば。
そういう意味で、ほかのaltJS用のコンパイラに対して書いた言語と「立ち位置」が同じなの。
0126デフォルトの名無しさん
2016/09/01(木) 19:58:52.56ID:+FVjZRJvだから、そんなのが存在しない。
babelの存在は忘れろ。
ES6で書いてるだけだ。
知ってるか?ブラウザ内部でES6は
ネイティブコードに変換されてるんだぞ?
0127デフォルトの名無しさん
2016/09/01(木) 20:00:45.39ID:+FVjZRJvもしかしてクロスブラウザの開発をやってないの?
まさか、Firefox向けのコード、IE向けのコード
Chrome向けのコードって、完全にファイルが違うのか?
0128デフォルトの名無しさん
2016/09/01(木) 20:01:38.52ID:+FVjZRJv> babelで使うために書いたコードは、babel向けに書いたコードであって
この理屈だと、FirefoxもaltJSと立ち位置が同じってことになるが?
0129デフォルトの名無しさん
2016/09/01(木) 20:04:32.89ID:6CqO2Avnpromiseのチェーンを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個にしたい
0130デフォルトの名無しさん
2016/09/01(木) 20:11:11.58ID:np9Y5BfBネットでググると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を使ったコードはこれを単に書き換えただけ。
0131デフォルトの名無しさん
2016/09/01(木) 20:14:21.32ID:Wbd9Msfr> FireFoxで使うために書いたコードがFireFox向けに書いたコードであるのと同様に
> babelで使うために書いたコードは、babel向けに書いたコードであって
babelというブラウザがあるわけじゃないんだけど?
Firefoxで使うために書いた(babelで変換する)Firefox向けのコードならあるよ。
でもbabelで使うために書いたコードなんてものはない。
babelは変換しかしないわけで、そのコードを使うのはFirefoxやChromeやIE。
そこをあんたは勘違いしてるんじゃない?
0132デフォルトの名無しさん
2016/09/01(木) 20:24:24.66ID:gqH8EeeU◆SEdFBOkLSw は babelというブラウザの上で
実行するって勘違いしてるんだw
もしくはbabelとnodeを勘違いしてるとかだな。
0133デフォルトの名無しさん
2016/09/01(木) 20:34:43.59ID:scPPFiSF> babelで使うために書いたコードは、babel向けに書いたコードであって、ネイティブなFireFoxの為に書いたコードとは意味合いが違うって言ってんじゃん。
これがbabelで使うために書いたコード
let func = () => console.log('hello');
これがネイティブなFirefoxのために書いたコード
let func = () => console.log('hello');
何が違うのか教えてほしい。
0134デフォルトの名無しさん
2016/09/01(木) 21:48:08.46ID:scPPFiSFどう違うかは何も言ってない。
アホか。
>>127
完全には違わんよ。
多少は足周りは違うな。
>>128
頭おかしいのか?
>>132
違うわ。お前が理解なさすぎ。
>>133
処理系が違う、だな。
babelで処理したJSが実際に動かすのは、下記コードで、ES6ではない。
'use strict';
var func = function func() {
return console.log('hello');
};
匿名関数で無くなってるよね。
0136デフォルトの名無しさん
2016/09/01(木) 22:05:27.31ID:scPPFiSFこれがbabelで変換して出力されたコード
'use strict';
var func = function func() {
return console.log('hello');
};
これがネイティブなFirefoxのために書いたコード
'use strict';
var func = function func() {
return console.log('hello');
};
何が違うのか?
0137デフォルトの名無しさん
2016/09/01(木) 22:12:28.00ID:scPPFiSFよりシンプルに書き直して、以前と全く同じように動くコードなのに、
元のコードとは記述が違うから、そういう修正はするなって言うタイプの人なの?
それES6じゃないじゃん。正確にはES6でもあり、お前が否定していた古いJavaScriptじゃんww
$msg='hello world';
echo $msg;
が、perlなのかphpなのかは、どっちに食わすかによって決まるんじゃねえの?
何か違うか?見た目も動作も同じだけど、別物だよね。
>>137
手弁当で全部終わらせるんならいいんじゃねーの?
予算使うなら、余計なことすんなって言うけど。
0139デフォルトの名無しさん
2016/09/01(木) 22:19:19.19ID:scPPFiSF古いJavaScriptだからなの?
babelで変換した結果とFirefoxがネイティブで動かすコードは
全く一緒なのに何が問題なの?って聞いてる。
重要なのは同じように動くこと(仕様を満たしていること)であって
中身の実装なんてどうでもいいでしょw
0140デフォルトの名無しさん
2016/09/01(木) 22:20:42.89ID:scPPFiSF> が、perlなのかphpなのかは、どっちに食わすかによって決まるんじゃねえの?
> 何か違うか?見た目も動作も同じだけど、別物だよね。
どちらもFirefoxに食わせていますよw
babelで動かすんじゃなくて
babelで変換したコードをFirefoxで動かすか、
babelで変換しないコードをFirefoxで動かすかって
話をしてるんだから。
0141デフォルトの名無しさん
2016/09/01(木) 22:27:03.04ID:scPPFiSFお前が何を不安がっているのかわかったわw
前提条件: どちらも同じブラウザFirefoxで動かします。
1. ES6のコードをそのままFirefoxで動かす
(※ES6のコードのテストの結果は当然問題ない)
2. ES6のコードをbabelで変換してESにしたコードをFirefoxで動かす
(※ES5のコードのテストの結果は当然問題ない)
どちらもテストでOKとでてるのに、もしかしたら
バグがあるんじゃないか?って思ってるだろw
0142デフォルトの名無しさん
2016/09/01(木) 22:40:53.56ID:UGSC1Nbq男なら黙ってprototype
不便に堪えて手書きでNative JavaScript
という冗談はともかく、納品するスクリプトはクライアントが使うんだから変な書き方も最新の玩具も使わずにネイティブのみで分かりやすくコメント添えながら書くのが普通じゃないのか?
0143デフォルトの名無しさん
2016/09/01(木) 22:40:55.87ID:Yfa1ihkiブラウザみたいな巨大なブラックボックスと区別する意味がよく分からん
0144デフォルトの名無しさん
2016/09/01(木) 22:46:12.95ID:scPPFiSFネイティブかどうかは重要じゃない。
正しく動くことが重要。
そのためにテストをするんだよ。
0145デフォルトの名無しさん
2016/09/01(木) 22:50:05.31ID:scPPFiSFだよね。例えば内部でES6をES5に変換してから
実行するブラウザがあったっておかしくない。
そもそもJavaScriptなんてコンパイルして
バイナリにてから動かしているわけで、
そのバイナリなんてブラウザが違ったら違うだろうし、
同じブラウザでもバージョンアップしたら違う可能性もある。
どういう変換が行われて実行されるかは大した問題じゃない。
仕様通りに動いているかが重要。
全然わかってねえじゃん。
0147デフォルトの名無しさん
2016/09/01(木) 23:15:55.41ID:scPPFiSFん?ってことは、
ES6をbabelで変換してFirefoxで動かすのと
ES6をそのままFirefoxで動かすのは
全く同じだってことでいいかい?
はい か いいえ で答えてくれ。
0148デフォルトの名無しさん
2016/09/01(木) 23:21:14.21ID:uGmloWI1細かい話だけど、extendsは古いブラウザでは完全にエミュレートされないよ。
extendsはprototypeだけでなくstaticなメソッドも継承する。
つまり、任意のプロトタイプを持つコンストラクタを作れないと行けないのだけど、
これはES2015以前ではブラウザの独自実装の__proto__を使わないと実現できない。
0149デフォルトの名無しさん
2016/09/01(木) 23:25:45.46ID:scPPFiSF完全にエミュレートできないことでバグになることはなく、
エミュレートできない機能を使っていればバグになる。
でも、それを含めてテストするわけだからね。
動かないならテストで分かる。
ブラウザ間の互換性がない問題と同じよ。
互換性がない部分があっても、テストで動けば問題ない。
0150デフォルトの名無しさん
2016/09/02(金) 00:00:38.90ID:OcKaQeg4客「IE8で動かないんだけど?」
0151デフォルトの名無しさん
2016/09/02(金) 00:01:45.81ID:gFIXdWf6IE8でテストしろよw
0152デフォルトの名無しさん
2016/09/02(金) 00:04:27.07ID:gFIXdWf6テストコードっていうのは、一つ書くだけで
それをどのブラウザでも実行可能にしておくものなんだよ。
もちろん同じテストを何度も短時間で実行できる。
いろんなブラウザが有って色んなバージョンがあって
バージョンアップが頻繁なウェブの世界ではそれができてないと
やってられないでしょ?
コードを修正するたびにサポートしてる全ブラウザ
(IE8をサポートするのならIE8以上)で全部テストしてる。
いいえ、だな。それは。
全く同じではない。挙動が同じでも。
>>149
エミュレートできないコードを使わない、って事は、
エミュレート前提で書いてて、やっぱ違うんじゃねえの?そういう意味でもないけど。立ち位置の話は。
>>152
テストコードが一つでいいわけ無いじゃん。。
単体ならいざ知らず。
0154デフォルトの名無しさん
2016/09/02(金) 00:29:55.10ID:OcKaQeg4babelでトランスパイルするために書いたJSと、webkitで動かす為のJSが、同じES6で記述するから意味論的にも同じスクリプトなんだってさw
コンパイラや実行環境の為のスクリプトじゃなくて、言語仕様で、それが同じものか決まるらしい。
意味としては前者はなんの意味もなく、立ち位置的にはAltJSの類と同じ意味のものだと思うんだけどね。
0156デフォルトの名無しさん
2016/09/02(金) 00:35:15.71ID:gFIXdWf6> 全く同じではない。挙動が同じでも。
なら挙動が同じ場合に何が問題になる?
そこだよね。挙動が同じななのに全く同じではないというだけで
問題点を今までなにも言ってない。
例えば、
var foo = function() { console.log(123) }
foo()
と
function foo() { console.log(123) }
foo()
は、全く同じではないと言うだろう。
そう、全く同じではないと言うだけで、
何が問題かを言わない。
0157デフォルトの名無しさん
2016/09/02(金) 00:37:02.54ID:gFIXdWf6> テストコードが一つでいいわけ無いじゃん。。
じゃあいくつ用意するんだよ?
なお普通のウェブサイトであり使うブラウザは
ユーザーが決めることなので、まったく制御できないものとする。
いくつ用意するんだよ?じゃなくて
いくつ用意してるんだよ?って聞いたほうが良いなw
0158デフォルトの名無しさん
2016/09/02(金) 00:41:24.46ID:gFIXdWf6> babelでトランスパイルするために書いたJSと、webkitで動かす為のJSが、同じES6で記述するから意味論的にも同じスクリプトなんだってさw
意味はどうでもいい。
重要なのは動作。
実行された結果が同じであれば、
それは正しく動くといって良い。
例えばJavaScriptは、ARM搭載したAndroidと
Intel CPUを搭載したWindowsで、
違う機械語で動くいているが、そんなこと関係ないだろ?
だから、問題だとかそうじゃないって。
その問題は、babelで変な地雷踏みたくないとかそういう問題であって(それは無いと言うなら、githubで何件openあるか数えてこい)
何より単純に、目的が違うって言ってんの。
トランスパイラに任せるためのソースコードと、それ自身がネイティブで動くためのスクリプトだって。
日本語が読めない外国人のために、社内の人への翻訳依頼のための書く文書と、社外の日本語がわかる外国人に出す文書は、
例え同じフォーマットで同じ内容が書いてあって、即ち同じ文書でも、目的も意味も違うでしょ。
社内の人への文書の方は、それ単体では全く意味をなさないの。
0160デフォルトの名無しさん
2016/09/02(金) 00:46:44.70ID:gFIXdWf6> 意味としては前者はなんの意味もなく、立ち位置的にはAltJSの類と同じ意味のものだと思うんだけどね。
AltJSのAltってどういう意味か知ってる?
Altnative(代案)って意味だよ
Altnative JavascriptっていうのはJavaScriptの代案。
そしてAltJSというのは具体的に言えば、
TypeScript、CoffeeScript、Dartなどの"プログラミング言語"
はぁ〜、いいから調べてきてごらん。
AltJSっていうのは言語のことだからさ。
babelは言語ではなくてトランスパイラ。
言語はFirefoxでも動くECMAScript。
AltJSのような別言語じゃないの。
全くジャンルが違うのだから「同じ意味」になるわけないだろ
どうでも良くないから言ってんじゃん。
お前が馬鹿だから同じだ、どうでもいい、なぜなら「多分同じ動きをしているから」だっていうならそうなんだろ。openの数は見えないみたいだけど。
>Androidとwindows
CPUは関係ないが、ブラウザは関係あるっしょ。
caniuseでも見てこいよ。
だからターゲット依存だって言ってんのに。
だから、立ち位置だって言ってるじゃん。
お前ホントに馬鹿だな。
AlternativeなJavaScriptでしょ、ES6以前のJavaScriptから見れば。
AltJSは別言語?
機械語になれば同じなんでは?ww
いや、別言語だとはわかってるけど。
ES6と、古いJavaScriptも、後方互換のある別言語だけどね。
0163デフォルトの名無しさん
2016/09/02(金) 00:55:55.82ID:gFIXdWf6> その問題は、babelで変な地雷踏みたくないとかそういう問題であって(それは無いと言うなら、githubで何件openあるか数えてこい)
Issueはないな。(設置されてない)PRは66件オープンだな。
新機能もあるから問題の数が66件ではない。
バグはすごく少ないようだね(笑)
バグの話をするならブラウザにだってバグが有る
Firefoxのバグがいくつあるか調べてごらん。
https://bugzilla.mozilla.org/describecomponents.cgi?product=Firefox
あんた他人のバグを言い訳にするんじゃないよ。何のためにテストしてる?
ブラウザやOSにバグが有ったって、その上で正しく動くアプリを
作れないと仕事にならんのだよ。
0164デフォルトの名無しさん
2016/09/02(金) 01:01:16.42ID:gFIXdWf6> だから、立ち位置だって言ってるじゃん。
「立ち位置」ってなんだよ?
全く違うものを並べて「立ち位置は同じ」ってお前が主張しているが
その立ち位置が同じである条件はなんだ?
その条件は世間一般に広く認められたものなのか?
お前が自分で作ったオレオレ条件だろ。
俺は言葉の定義通りの話をしている。
AltJSはJavaScriptではない言語のこと。
ES6はJavaScriptだし、babelは言語ですら無い。
> 162
> AltJSは別言語?
> 機械語になれば同じなんでは?ww
また話をすり替えようとしてるな。
俺がいつbabelが機械語になると言ったんだよ?
JavaScriptもAltJSは最終的に機械語になる。
だがbabelは言語ではないのだから機械語にならない。
俺はAltJSは言語であり、babelは言語ではないと言ってる。
Issue無かったわwこれは俺が悪い。勘違いしてた。
プルリクにfixesは結構あったけど。
ブラウザのバグを把握するために、LTS使うんだけど。
俺は別に言い訳にはせんよ。むしろ、請けが言い訳できない様にその辺は抑えてる。
そんな当たり前の事言われても困るわ。
だからブラウザごとに違うソースが一部でもあるんじゃん。さっき言ったけどさ。
何度も言ったけどさぁ。
全く違うのは、中身だろ。
意味は同じく、古いJavaScriptにトランスパイルするんじゃん。
立ち位置としては、JavaScriptのソースコードを出力するためのなんらかのコンパイラだよ。
C#のコンパイラもvb.netのコンパイラも、.netのコード吐くためのコンパイラ。
AltJSのソースコードと、babelの為に書いたソースコードが同じだとは言ってないでしょ。
babelは言語ですらない、ってそれそうだよ。ES6のトランスパイラだよ。
tscと同じようなもんだ、って言ってんの。
トランスパイラだから、そのためのソースコードであって、ネイティブのES6とは目的が違う同じ書式の、扱われ方の違う物だってばさぁ。
0167デフォルトの名無しさん
2016/09/02(金) 01:13:32.36ID:gFIXdWf6ChromeのLTSってどれだ?
エンドユーザーが使うブラウザは指定できない。
例えばAmazonやGoogleはどうしてる?
ブラウザ指定してるか?
> だからブラウザごとに違うソースが一部でもあるんじゃん。さっき言ったけどさ。
それは全体の何%ぐらいだ?
0168デフォルトの名無しさん
2016/09/02(金) 01:16:19.67ID:gFIXdWf6> 全く違うのは、中身だろ。
> 意味は同じく、古いJavaScriptにトランスパイルするんじゃん。
だから、中身が違っても
動作が同じなら問題ないだろって話をしてる。
なんで中身を拘るんだよ。
中身の話をすれば、babel以前に
IEとFirefoxとChromeでもぜんぜん違うだろ。
中身がぜんぜん違っても、同じ動作をするようにしないといけないんだよ。
その手めにテストコードが有って、そのテストコードにより
同じ動作をすることが保証されている。
テストコードで同じ動作をすることが保証されているんだから、
中身を変えることに何の問題も発生しない。
論理的な結論がこれ。
お前は、中身が違ってるだろ(どん!)で話が終わってる。
問題があるか無いかまで話を続けろよ。
chronium+自社パッチ。
Amazonとグーグル?
ポリフィルまみれな上にブラウザごとに違うソース吐いてなかったっけ?
逆アプローチであって、決して「同じソースでなんとかする」って発想じゃないよ。
なんで%聞かれんのかわからん。それで何が知りたいの?
どう計数してもイチャモンつけられるのが目に見えてるわ。コード量でもファイル数でもステップ数()でも。
えー。中身が違っても問題ないなら、ES6使用禁止で古いブラウザで、ブラウザごとにソース書いて、babel禁止でもいいって事なの?
中身にこだわってはないよ。お前の認識が間違ってる(と言うか、最初にbabelはAltJSと同じ立ち位置、に噛み付いてきた)だけであって、
問題があるかどうかは問題ですらないんだよ。
中身が違ってるというか、お前の理解力が足りなすぎる。
0171デフォルトの名無しさん
2016/09/02(金) 01:20:00.88ID:gFIXdWf6> AltJSのソースコードと、babelの為に書いたソースコードが同じだとは言ってないでしょ。
> babelは言語ですらない、ってそれそうだよ。ES6のトランスパイラだよ。
> tscと同じようなもんだ、って言ってんの。
AltJSは言語だ。
babelは言語ではない。「ES6のトランスパイラ」だ
tscは「TypeScriptという言語」のトランスパイラだ
AltJSとTypeScriptはどちらも言語なのだから同じようなものだが、
TypeScript(言語)とtsc(トランスパイラ)は同じようなものではない。
同じようにbabelはtscと同じようなものであって、TypeScriptと同じようなものではない。
0172デフォルトの名無しさん
2016/09/02(金) 01:22:46.85ID:gFIXdWf6> えー。中身が違っても問題ないなら、ES6使用禁止で古いブラウザで、ブラウザごとにソース書いて、babel禁止でもいいって事なの?
なんで中身が違っても問題ないって話をしているのに、
お前はまた中身の話をしているんだ?
古いブラウザであっても、テストが通って問題なく動くのであれば
中身が違っていても問題ないのは当たり前だろ。
なんで中身まで全く一緒にしようとしてるんだ?
そもそも全く同じコードじゃ動かないって話をお前はしただろ。
だから中身をブラウザごとに違うコードにしてまで、同じ動きをするようにするんだろ?
ならば中身がどんなに変わろうが、同じ動きをするのであれば
問題ないと言ってる俺の話も理解できるはずだが?
だから、
babelは言語ではない。「ES6のトランスパイラ」だ
tscは「TypeScriptという言語」のトランスパイラだ
「ES6のトランスパイラ」で処理されるためのJavaScriptソースがある、
「tscは「TypeScriptという言語」のトランスパイラ」で処理されるためのソースがある。
トランスパイラで処理されるためのソースがある。
それらのソースは、トランスパイラで処理されるためのものである。
おわかり?
0174デフォルトの名無しさん
2016/09/02(金) 01:23:45.28ID:gFIXdWf6babelはトランスパイラ、AltJSは言語
全然立ち位置が違う。
tsc(トランスパイラ)とTypeScript(言語)が立ち位置が同じと言っているようなもん
0175デフォルトの名無しさん
2016/09/02(金) 01:25:11.41ID:gFIXdWf6> 「ES6のトランスパイラ」で処理されるためのJavaScriptソースがある、
それはどんなJavaScriptソースなんだ?
ここに具体的なコードを書いてみろ。
理解はしてるよ。
中身が同じにこだわるのは、
「一つの言語で云々、babelというのはなんに対しても最新のJavaScriptが使えるもの」ってお前の発言に則って話してるから、
それを否定するなら俺としてはありがたい話だ。
そりゃ、ES6だよ。
let func = () => console.log('hello');
ただ、目的としてはトランスパイラにかけるためのソースなだけで。
だから、目的論なの。
>>159の後半な。
0178デフォルトの名無しさん
2016/09/02(金) 01:27:51.64ID:gFIXdWf6> 中身にこだわってはないよ。
176 名前: ◆SEdFBOkLSw [sage] 投稿日:2016/09/02(金) 01:25:31.37 ID:nUqjDcPO [11/11]
> 中身が同じにこだわるのは、
↑ こいつ頭大丈夫か?w
中身にこだわってないと言ったくせに
ほんの6レスで中身が同じにこだわってるwww
0179デフォルトの名無しさん
2016/09/02(金) 01:28:54.56ID:gFIXdWf6> let func = () => console.log('hello');
そのコードはどの部分が、
「ES6のトランスパイラで処理されるため」になってるんだ?
お前敢えて誤読してるか理解してないフリしてんの?
それともマジでバカなの?
0182デフォルトの名無しさん
2016/09/02(金) 01:31:21.75ID:gFIXdWf6俺は
「ES6のトランスパイラ」で処理される、ES6のコードと
「ES6のトランスパイラ」で処理されない、ES6のコードの
違いが何かってことを聞いてるんだよ。
0183デフォルトの名無しさん
2016/09/02(金) 01:37:01.83ID:gFIXdWf6ES6に対応しているブラウザではそのまま動かせるって分かってないのかな?
babelを通すか通さないかの違いは、それぞれのブラウザで動作するかどうかの
テストコードが有って、それで保証されるから何の問題もない。
中身が変わるだけで(中身にはこだわりません)
動きが変わってなければ(テストで保証する所)何も問題ない。
babelは言語ではなくトランスパイラであって
言語はES6。このES6はブラウザでネイティブに動く言語
その他のAltJSはブラウザでネイティブに動かない言語
だから、AltJSとES6は「同じ言語というカテゴリで比較すると「立ち位置が違う」と言えよう。
なおAltJS(言語)とbabel(トランスパイラ)はそもそもカテゴリが違う。
0184デフォルトの名無しさん
2016/09/02(金) 03:38:22.58ID:kWkQROgWザ シティ・ベルシティ伊勢佐木町店(神奈川県)の周りにはソープランドがたくさんあります(ソープランド街です)。
このパチンコ店は韓国人か中国人が経営者の可能性があります(パチンコ店のほとんどは韓国人が経営してます)。
ザ シティ・ベルシティ伊勢佐木町店の周りには韓国料理店がたくさんあり、数キロ先には横浜中華街があります(韓国人、中国人がすごく多い地域です)。
普通はこんな場所に店を出さない気がします。
DICE系列 関東圏4
http://hayabusa6.2ch.net/test/read.cgi/netspot/1467360487/
ダイス(DICE)=まんがランド(漫画喫茶)=ちょっと気分転館(漫画喫茶)=ねっとラボ=ベルシティ(ザ シティ)というパチンコ店
↑
パチンコ店のほとんどは韓国人が経営してます
0185デフォルトの名無しさん
2016/09/02(金) 12:34:18.86ID:n2lhI+0z違う。普通はテストに引っかかる前でも後でも、
互換性のない部分で問題ないように書こうねということになる。
つまり使えるのはちょっとES2015に近いaltJSであって、
ES2015フルに使っていい状況で作るのとは大きく違う。
0186デフォルトの名無しさん
2016/09/02(金) 22:23:40.28ID:gFIXdWf6> 互換性のない部分で問題ないように書こうねということになる。
それはbabelを使わなくても、やってることだろ?
babelが対象とするのはECMAScriptの部分でDOM APIは対象外。
特定のブラウザでしか使えないAPIに比べれば
互換性がない部分は遥かに少ない。
その互換性がない部分っていうのはES6の部分なんだから・・
おまえ、普段ES6のコード書いてないだろ?
お前はES6のコードを書かないように気をつけている。
それに比べれば書かないように気をつけるコードはほんの僅かだよ。
互換性がない所はES5で書けば良いんだしね。
0187デフォルトの名無しさん
2016/09/02(金) 22:25:51.84ID:gFIXdWf6知らずに書いてしまうことはほとんどありえない。
0188デフォルトの名無しさん
2016/09/02(金) 22:34:24.02ID:gFIXdWf6中身が違うからポリフィルは使ってはいけない。
動作が同じになるように作られていたとしても
中身が違うからポリフィルは使ってはいけない。
また、MSが実装したPromiseも使ってはいけない。
PromiseはFirefoxが作ったものが唯一の本物であり、
中身が違えば動作が同じでも別物である。
0189デフォルトの名無しさん
2016/09/03(土) 05:16:03.21ID:N47o0j5/Proxyが非対応でSymbolやWM周りが非常に気をつける必要がある時点で1%じゃ済まないね。
>>それはbabelを使わなくても、やってることだろ?
やらないし。もうモダンブラウザはほぼ100%対応してるのだから。
実質8割のbabelとは全然全然違う。
おまえ、普段ES6のコード書いてないだろ?
0190デフォルトの名無しさん
2016/09/03(土) 08:43:25.11ID:GDuT1yRG0191デフォルトの名無しさん
2016/09/03(土) 10:02:38.69ID:1nvmVGqXならそれだけ使わなければいいだけだろ?w
babelを使わない場合に、Proxyが使えるのか?
0192デフォルトの名無しさん
2016/09/03(土) 10:08:49.40ID:EZVA2rF2> タイマー関連を使えないのでしょうか?
使える。
> これが使えないならば、WebWorkerでも極力使わない方が良い様に思います。
タイマー関連が使えるかどうかが、WebWorkerとどう関係があるのか
さっぱりわからん。
まず前提として以下のような制限がある。
https://developer.mozilla.org/ja/docs/Web/API/Web_Workers_API/Using_web_workers
> 例えば、Worker 内から直接 DOM を操作することはできません。また window
> オブジェクトのデフォルトのメソッドやプロパティで、使用できないものがあります。
そして以下にはsetTimeoutはWorkerの中で使えると書いてある。
https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Functions_and_classes_available_to_workers
0193+ JavaScript の質問用スレッド vol.122 +の73
2016/09/03(土) 10:41:23.55ID:e3VOV86pPromiseは非同期処理群の処理と認識しています。
WebWorkerは単発の非同期処理と思っています。
WebWorkerはタイマーの稼働・停止の一連の処理を処理内部でまとめているのに対して
Promiseは非同期処理群の処理中ならば
タイマーの稼働・停止を別の処理で対応出来るかと思っていました。
Promiseの指定した処理群の個々でタイマーの稼働・停止が必要ならば
WebWorkerと同じ感じで作れば良いのかな。
Promiseは未使用なので、VS2015の実装状況を確認してから試してみます。
0194デフォルトの名無しさん
2016/09/03(土) 10:53:57.66ID:EZVA2rF2それ自体は間違ってはいない。
だけど重要なのはJavaScript自体はシングルスレッドということ
まずJavaScript(≒ECMAScript)自体にスレッドを扱う機能はない。
setTimeoutやXMLHttpRequest とかはブラウザが提供する機能であり、
その内部ではスレッドが使えるし、使っている。
そしてこれらの機能からイベントと言う形で処理の状況を知ることができる。
イベントは通常コールバックを使うことで知ることができるが、
Promiseっていうのはコールバックの一部である「処理が終了したというイベント」を
容易に扱えるようにしたもの。
終了したと言うイベントというのは「setTimeoutで指定した時間が過ぎた」とか
XMLHttpRequestであれば「HTTPリクエストが完了した」とかいうイベント。
なので、HTTPリクエストが10%完了、20%完了という進捗状況をPromiseで知ることは出来ない。
0195デフォルトの名無しさん
2016/09/03(土) 10:58:35.97ID:EZVA2rF2JavaScriptでスレッドを使うものとざっくり言われているが、
正確に言えば、JavaScriptではスレッドが使えないのは変わらずで、
ブラウザが新たなスレッドを作って、そのスレッドの環境内で
新たなJavaScriptを実行するというのが正しい。
WebWorkerの作り方なんてこんなんだしねw
> var myWorker = new Worker("worker.js");
他の言語のスレッドの作り方を知ってると、
JavaScriptファイルを指定するとか、なんじゃこりゃ?って思うよw
そして、メインのJavaScriptと、Workerで作ったスレッドとは
postMessageを使って通信することができる。
メッセージの内容は自由だから、どんなやり取りでもできる。
0196デフォルトの名無しさん
2016/09/03(土) 11:03:08.37ID:EZVA2rF2> Promiseは未使用なので、VS2015の実装状況を確認してから試してみます。
Promiseは別にVS2015で実装されてるかどうかを考える必要はないよ。
動かすブラウザがPromiseの機能を持っているかどうかだから。
そしてPromiseは純粋なJavaScriptの範囲で実装できるのでJavaScriptライブラリが存在する。
jQueryライブラリ導入のようにPromiseライブラリ導入すればよい。
そももブラウザが持ってるPromiseの機能は最低限のものなので
それを拡張して便利なメソッドを追加したbluebirdが使われることも多い。
http://bluebirdjs.com/docs/getting-started.html
0197デフォルトの名無しさん
2016/09/03(土) 11:04:45.06ID:EZVA2rF2で、ここまで説明したんだが、
> WebWorkerはタイマーの稼働・停止の一連の処理を処理内部でまとめているのに対して
> Promiseは非同期処理群の処理中ならば
> タイマーの稼働・停止を別の処理で対応出来るかと思っていました。
それはこれが意味不明だからなんだわw
そもそもの前提知識がずれてるよって話。
0198デフォルトの名無しさん
2016/09/03(土) 11:16:01.65ID:EZVA2rF2ある処理をする関数があったとして「その処理をWebWorkerを使って実行する。」
というのは文章として成り立ってる。
だけど「その処理をPromiseを使って実行する。っていうのは文章としておかしい。
Promiseっていうのは単に終了イベントを知るためのものだから。
ある処理をする関数があったとして、その関数はPromiseオブジェクトを返す。
その処理の終了はPromiseの仕組みで知ることができる。
というのであれば文章として問題ない。
従来は処理の終了をコールバックを使って判断していた。
0199193
2016/09/03(土) 11:20:58.37ID:e3VOV86p説明ありがとうございます。
WebWorkerは自分で書いてみた事が有ります。 入門書片手ですが。
入門書でメッセージの構成が明確でなかったので、苦労しました。
Promiseの動作確認は、現在有るWebWorkerの処理の塗り替えでやってみます。
ありがとうございました。
0200デフォルトの名無しさん
2016/09/03(土) 11:35:38.80ID:EZVA2rF2そこがなんかずれてるんだよね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で知ることができる」
と言うものを作ることができる。
>>188
Promiseがどうの、誰かどうの、じゃ無くて。
中身が違えば動作が同じでも別物である、の着眼点の違いがわかったわ。
ブラックボックスを許さないし、違うのであれば、その違う部分が同じ動きをする保証が必要である、それは、「ほぼ同じ」では無意味で「完璧に全く同じ」と保証されないといけない、
故に完璧に同じだと保証する工数が無駄なので、ポリフィルは使わない。ポリフィルのバージョンアップに追従する価値は余計にない、
だな。
要はその程度の開発だってことだろ、Webってのは(笑)
イベントドリブンに最初からしておけば、Promiseなんか要らんのだけどな。
何を発火させて何をリッスンするかの違いに落ち着くんだけど。
0203デフォルトの名無しさん
2016/09/03(土) 12:18:31.50ID:EZVA2rF2> イベントドリブンに最初からしておけば、Promiseなんか要らんのだけどな。
実現できるか? 実現できないか?
だけで判断するのは未熟な証拠。
Promiseはコールバックでもできることを別の形で実現したもの。
必須か必須でないかの話をするならば、最初から必須ではない。
Promiseは可読性とメンテナンス性を上げるための道具なんだから。
だからお前がしたり顔で「要らんのだけどな」って言ったところで
俺は最初からそれは知ってるとしか言いようがない。
無くてもできると言うのを踏まえた上でみんな話をしてるのに、
あんたはその話をする最低ラインに到達していない。
0204デフォルトの名無しさん
2016/09/03(土) 12:20:20.05ID:EZVA2rF2> ブラックボックスを許さないし、違うのであれば、その違う部分が同じ動きをする保証が必要である、それは、「ほぼ同じ」では無意味で「完璧に全く同じ」と保証されないといけない、
じゃあ、お前、IEとChromeとFirefoxは
ブラックボックスで、同じ動きをするという保証もないけど、
どうすんの?
OSの違いもあるし、今はAndroidで機種ごとに
微妙に動き違うんだけど?
お前、そんなんで仕事できるの?
「俺はIEでしか仕事できません!」じゃ
仕事にならなんからねw
0205デフォルトの名無しさん
2016/09/03(土) 12:22:20.80ID:EZVA2rF2Webは多くのブラウザやOSに対応するのが絶対条件なんだが、
何を持って「Webはその程度」って言ってるの?
顧客の条件が、多くのブラウザやOSといった
ブラックボックスの環境に対応することなんだけど?
お前は「その程度」のことも出来ないの?
俺も知ってるから使わんのだよ。
それが読み取れない時点でお前がついてこれてなくない?
IEもFireFoxもChromeも全然ブラックボックスじゃないじゃんw
お前がなんのソースも読んだことなければ、MSと保守契約結んだこともなさすぎて笑えるわ。
iOSのバージョンやAndroidごとに動き違うね。だから、社用には決まった機種を使うんだよ。
そんなんで仕事できるよ。
>>205
お前のレベルをもって、その程度、って言ってるんだよ。
0209デフォルトの名無しさん
2016/09/03(土) 13:57:18.18ID:EZVA2rF2へ? IEのソースコード公開されてないよ?
保守契約結んでもIEのソースは公開されない。
つーかソースコード開示する契約があるとしたら
それは保守契約じゃないしwww
> iOSのバージョンやAndroidごとに動き違うね。だから、社用には決まった機種を使うんだよ。
それはお前が決められることじゃない。
客が決めること。
客が世の中で使われているスマホの9割に対応するって言ったら
それに対応しないといけないんだよ。
で、どうするの? お前は出来ないの?w
0210デフォルトの名無しさん
2016/09/03(土) 13:57:46.31ID:EZVA2rF20211デフォルトの名無しさん
2016/09/03(土) 13:59:56.35ID:EZVA2rF2babel自体もオープンソースなので、全然ブラックボックスではありませんね
ブラックボックスってどこから出てきたのでしょうか?w
結んでから言ってねw
後半。
違うよ。要件定義ってそうじゃない。
対応してほしいなら、どの機種のどれに対応して欲しいか明確じゃないと。
保証できない事を約束できないっしょ。
お前、マとしての実務以前に、要件定義すらしたことないの?
9割って、一体何だ?w
お前は本当に馬鹿だな。
それはブラックボックスとは関係なく、中間層の話だろ。
議題が変わると混乱するタイプの話かな。
0214デフォルトの名無しさん
2016/09/03(土) 14:13:08.29ID:EZVA2rF2> 対応してほしいなら、どの機種のどれに対応して欲しいか明確じゃないと。
普通は、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
0215デフォルトの名無しさん
2016/09/03(土) 14:14:40.62ID:EZVA2rF2> それはブラックボックスとは関係なく、中間層の話だろ。
ブラックボックスって言い出したのはお前だろ?w
お前の言うブラックボックスはどこなんだって話。
babelはブラックボックスではないと確定しました。
はい、で?お前は何がブラックボックスだって?
0216デフォルトの名無しさん
2016/09/03(土) 14:24:14.31ID:EZVA2rF2こっちは恥ずかしくてスルーするんだろうなw
普通とか別に要らないよw
Edgeに関しては撒くKBでコントロールできる、
FireFoxはLTS
ChromeはChronium
で固定できるし、してるよ。
その後の保証が要るなら保守契約結んでもらうだけじゃん?
こっちが保証するのは、要件定義どおりに決めた結果でしかないし、検収印もらったらそれで良い話。
世の中に存在するスマホを全部列挙してもらわないと、その9割なんか定義できんだろ。
iOS8以上、なら俺も発注出すな。
>>215
うん、得体のしれないポリフィル、に対して言ってた。
読めば良いだけ、なら、そんな工数無駄なので、作れば良いだけ。
お前はなんのソースも読まずに、これで大丈夫だ!なぜならこれが最新のもので、オープンソースのグループによって更新されてるから、って態度なんだけど。
0218デフォルトの名無しさん
2016/09/03(土) 14:26:14.91ID:bZbzbaoD制御系をやらせてみたいなwww
ソースコード見ると言うよりも、
動かん、スペックシート送れって言ってみ?
無駄の多いMSDNみたいなクソみたいなの送ってくるから。
それでもおかしいとなると、人間よこせ、確認しろって言って、
確認後KB作ってくれるよ。
.net 2.0になりたての頃よく呼んだ。
いずれにせよ、ソースを見ずに、中身は理解できるし、おかしければ治る。
まぁ、そんなことした事ないんだろうけど(笑)
0220デフォルトの名無しさん
2016/09/03(土) 14:36:29.05ID:EZVA2rF2俺をどうやってKBでコントロールする気だ?w
ウェブの世界っていうのは世界中の人間を相手にしてる。
コントールするのは不可能という大前提がある。
この大前提は、お前の一存で決めることは不可能な絶対条件。
お前にはこの世界の仕事は無理だよw
> その後の保証が要るなら保守契約結んでもらうだけじゃん?
> こっちが保証するのは、要件定義どおりに決めた結果でしかないし、検収印もらったらそれで良い話。
だからbabel使って変換したソースコードが、こっちが保証しているブラウザで
動けばそれでおしまいってだけなんだが?お前が言っていることの範囲内だろ。
当たり前だがbabelはソースコードを変換するだけで納品物は変換されたソースコードだ。
だからbabelが勝手にバージョンアップすることはない。babelが原因で動かなくなることはない。
> 世の中に存在するスマホを全部列挙してもらわないと、その9割なんか定義できんだろ。
Andorid 4.0以上のスマホという条件があれば、全部列挙することはできるだろw
その作業をどちらがやるかは客と相談して決めること。
> うん、得体のしれないポリフィル、に対して言ってた。
ポリフィルはすべてソースコード公開されてるから
ブラックボックスじゃないなwwww
で、ブラックボックスって何の話?w
0221デフォルトの名無しさん
2016/09/03(土) 14:37:53.45ID:EZVA2rF2> 面白いのが居るね。
> 制御系をやらせてみたいなwww
制御系は特許の塊だから、ブラックボックスのまま
使う必要があるだろうね。
ブラックボックスだから保証できません!
だからブラックボックスの環境では仕事できません!
じゃだめなんだよね。
ブラックボックスがあるという前提で
どこまで保証できるか?できないかを
はっきりさせるのが仕事。
死屍累々だぞこの調子だと。
でも未だに業界的に変なの動いてるからな。
俺もCバスはそろそろ捨ててほしいと思うが、思うだけであって実際問題は金かかるからな。リプレイス待ち案件。
そういうのを見た上で、それでも、彼は最新のコードを使えば大丈夫だと思っているに違いないよ。
>>220
うん、だから、イントラの話しであって、Webの話じゃないじゃん。
で、その上で、お前の開発への考え方聞いて、Webってそんなもんなんだな()って言ってんの。理解できる?
ブラックボックスじゃない、は読んだあとわかるんだよね。それまでは依然としてブラックボックスだよ。
読む工数は誰かくれんの?
0223デフォルトの名無しさん
2016/09/03(土) 14:39:52.29ID:EZVA2rF2> 確認後KB作ってくれるよ。
いや、KB作って終わりじゃないだろ・・・・
ウェブの世界では多くの人と環境を相手してる。
という変えられない絶対条件があるんだよ。
その条件で仕事しないといけないの。
KBあればばっちりだ!じゃない。それを世界中の人に使わせないことには
お前のやり方じゃ仕事できんだろ。つまりそのやり方は破綻してるんだよ。
0224デフォルトの名無しさん
2016/09/03(土) 14:42:29.94ID:EZVA2rF2> うん、だから、イントラの話しであって、Webの話じゃないじゃん。
だからお前は「ウェブ程度」のことができないって結論なの。
一度世界中の人と環境を相手に仕事してごらん?w
> ブラックボックスじゃない、は読んだあとわかるんだよね。それまでは依然としてブラックボックスだよ。
> 読む工数は誰かくれんの?
何を読む工数?
ChromeやFirefoxはブラックボックじゃなくて
お前はそれを読んでるんだろ?
その工数を誰かがくれたんだろ?
マッチポンプかw
ブラックボックスは駄目だ!ソースコード読まなきゃ!
→ ソースコード読む工数は誰がくれるんだ!
じゃあブラックボックスでやれよw
9割、が要件じゃないような。
納品はバベったコード、で、改修させてえらい工数見積もられたことあるな。
即切ったわ。
>>221
NDAさんはどこ行くんだよ。
Web程度、って言うほどの事でもないような。
Web屋には一目置いてるけど、結局こういう精神性なのか、と残念に思ってる所だけど。
世界中の人は相手にしてるよ。割と。
FireFoxとchromeは読んでるよ。いわば環境じゃん。
0227デフォルトの名無しさん
2016/09/03(土) 14:46:43.87ID:EZVA2rF2> 客と相談して決める事なら、決めた結果が要件定義に反映する内容であって、
はぁ。いっつもこいつそうだよ。
俺が以下の文脈で「相談」って言ったら、
> Andorid 4.0以上のスマホという条件があれば、全部列挙することはできるだろw
> その作業をどちらがやるかは客と相談して決めること。
その「相談」だけを抜き出して、別の意味で使うんだよ。
卑怯だよねw
> 客と相談して決める事なら、決めた結果が要件定義に反映する内容であって、
> 9割、が要件じゃないような。
9割は客が決めた要件。相談して決めていない。俺が言って「相談」とはAndoroid4.0以上のスマホの列挙作業を誰がやるかだ。
0228デフォルトの名無しさん
2016/09/03(土) 14:48:21.76ID:EZVA2rF2> FireFoxとchromeは読んでるよ
その工数は誰が出してると思ってるんだ?
じゃあ、FirefoxでPromiseを定義している
ソースコードはどれだい?みたいな質問に
答えられるはずだよな。
一応証拠として聞いておこうか?
0229デフォルトの名無しさん
2016/09/03(土) 14:48:57.81ID:EZVA2rF2その中身まで理解していなければ読んだことにはならない。
ブラックボックスのまま、ってどういう事かわからん。
エラッタかどうか挙動を確かめる行為すら、既に解析行為だろ。
0231デフォルトの名無しさん
2016/09/03(土) 14:50:05.16ID:EZVA2rF2> 納品はバベったコード、で、改修させてえらい工数見積もられたことあるな。
なんでだ? babelは単なるES6なんだが?
そのES6のコードをbabelで変換せずに
納品すればいいだけじゃねーかw
何の噛みつき方かわからんよ。
そりゃ業務知識だからほいほい言うわけないじゃん。
0233デフォルトの名無しさん
2016/09/03(土) 14:50:48.72ID:EZVA2rF2> 知財かどうかなんて、APIが知財かどうかすら関係するんだから、弁理士弁護士案件だろ。
> ブラックボックスのまま、ってどういう事かわからん。
そもそもお前が、ブラックボックスって話を始めたよな?
マッチポンプかwwww
0234デフォルトの名無しさん
2016/09/03(土) 14:51:38.25ID:EZVA2rF2> そりゃ業務知識だからほいほい言うわけないじゃん。
Promiseのソースコードがどれかって質問しただけで、
業務知識(?)なんか聞いてませんよw
請け先に言えw
babel変換元を納品してないが故に、うち用にも使ってる社内ライブラリがうんぬん、その当時のうんぬん、で結果そうなったんだよ。
バイナリ書かせてる時代にはよくあった話だけど、またこれかと。
お前頭おかしいだろ。
仕事で調べたことは、会社の資産な。
0238デフォルトの名無しさん
2016/09/03(土) 14:53:23.42ID:aPmwwe34> Cバス
脱線するが、君はそっち系なのか?酷く懐かしすぎる名前だが。
新商品なんて出てるのか?母艦が手に入らないと思うが。
0239デフォルトの名無しさん
2016/09/03(土) 14:53:30.60ID:EZVA2rF2> babel変換元を納品してないが故に、うち用にも使ってる社内ライブラリがうんぬん、その当時のうんぬん、で結果そうなったんだよ。
はぁ? それって実行ファイルのバイナリ(exeファイル)だけを納品して
ソースコードを納品してないという、ちゃんとした仕事をしてない所に
ありがちな話ってだけじゃねーか。
それは明らかにbabelの問題じゃねーよw
0240デフォルトの名無しさん
2016/09/03(土) 14:57:15.99ID:EZVA2rF2> 仕事で調べたことは、会社の資産な。
それは違うぞw
データベースの著作権の話でもぐぐれ。
内容が非公開情報であるとか特殊な条件が揃わない限り、
それは会社の資産にはならない。
(当然オープンソースのChromeのソースコードは非公開ではない)
80年生まれのくせにそのへん触れるか故にオッサン扱いされてるけど、
機械から人体から得体のしれない設備まで手広く通信周りやってるよ。
手に入らんから困るんよ。もう共食いも良いところだよ。
捨てないで!ってアナウンスするレベル。
0242デフォルトの名無しさん
2016/09/03(土) 14:59:04.36ID:EZVA2rF2◆SE って変化させる能力が
極端に劣ってるみたいねw
babelのせいじゃない?うん、まぁ、その会社がbabelをつかったせい、であってbabelに罪はないのは確かだよ。
だから、ネイティブでES6で書くか、古いJavaScript書くかどっちかにして、って話なんだけど。
>>240
それは著作権というか、それこそ知財の問題であって、
そうじゃなくて俺なり社内のだれなりが工数使って調べたことは、資産なの。
お前働いた事無いの?
0244デフォルトの名無しさん
2016/09/03(土) 15:01:00.03ID:EZVA2rF2え? Cバスの中身、ブラックボックスじゃなくて
全部知り尽くしてるんでしょ?
自分で作れば良いんじゃないですかねぇw
そりゃ、敢えて変化させないからな。
それで良いと思ってるよ。
誰がどの金で?
お前バカなの?
0247デフォルトの名無しさん
2016/09/03(土) 15:02:36.24ID:EZVA2rF2> だから、ネイティブでES6で書くか、古いJavaScript書くかどっちかにして、って話なんだけど。
ネイティブでES6を書くという結論でいいだろw
そして納品してから1ヶ月後にな、やっぱり古いブラウザでも動かしたいって
客に言われたらな、そんときにbabel使って変換してやれば良いんやで?
0248デフォルトの名無しさん
2016/09/03(土) 15:02:47.73ID:aPmwwe34ちなみにCバスにこだわる理由は?
まあ色々便利だとは聞いているが、保守部品なら仕方ないとして、新規商品で使う必要はない。
今時ならarduinoなりラズパイみたいな奴にに仕込んでイーサで通信する方が楽なはずだが。
0249デフォルトの名無しさん
2016/09/03(土) 15:03:41.91ID:EZVA2rF2馬鹿はお前だ。
ブラックボックスが嫌なら金がかかる。
金がかからないならばブラックボックスのままでやる
ブラックボックスのままテストをしっかりやれば
それで十分だって話をしてるんだよ。
0250デフォルトの名無しさん
2016/09/03(土) 15:05:42.57ID:EZVA2rF2否定しているだけ。
つまりお前は金がかかるからブラックボックスのままでやるんだろ?
0251デフォルトの名無しさん
2016/09/03(土) 15:07:52.79ID:EZVA2rF2変わることだってあるんだが。
同じ製品であっても、中身を変えることがある。
中身にこだわるな。中身が違っていたとしても、
テストに合格すればそれは問題ない。
え?うん、ネイティブで動くものに対してES6で書くことは全く否定してないけど、どしたの?
やっぱり古いブラウザで動かしたい、は多分断るな。
余程言われても、babelは使わずに直すと思うよ。
>>248
新商品で積極的には使わないよ。
リプレイスするなら新しい組込の仕様品あるからそっちで構築するんだけど、
2台壊れたから!とかそう言うの多い。
法改正で制度上この数値が残らないと困るからこれだけDBに残して!とか。
上的にはSIになったから単位だけ、で改修受けたのがマズったなって思ってるとのこと。
Cバスにこだわると言うより、何故か他社製旋盤に相乗りしてる、とか、いにしえの何かがあるらしいよ。自分が幼児の頃の歴史を紐解いて良いもの出てきた事無いから積極的には聞かん。
何を言うてるかわからん。
ソリューション売りしてんだよ。
0255デフォルトの名無しさん
2016/09/03(土) 15:18:04.76ID:EZVA2rF2> やっぱり古いブラウザで動かしたい、は多分断るな。
> 余程言われても、babelは使わずに直すと思うよ。
そのコスト誰がだすん?w
babel使ったら簡単に対応できる。
テストコードがあるからそのテストを通せば良い。
babelはブラックボックスではないがブラックボックスと考え
中身がどうなっても、テストが動けば良い。そうだろう?
いざとなったら中身を確認することもできる。
どうせ古いIEへの対応でIEはブラックボックス
IEとFirefoxとChromeで動きも違う。バージョンごとで動きも違う。
ホワイトボックスとして扱うことはコストの点から実質不可能。
問題はコストだよ。最新のES6を使ってコストを減らせ
babelを使えば古いブラウザに対応するコストも減らせる。
0256デフォルトの名無しさん
2016/09/03(土) 15:18:46.25ID:EZVA2rF2> 何を言うてるかわからん。
他の人に聞きたい。
> ソリューション売りしてんだよ。
↑これ何を言うてるか分かる人おる?w
0257デフォルトの名無しさん
2016/09/03(土) 15:19:58.56ID:EZVA2rF2> 金がかかるから、ブラックボックスを使わんのだよ。
じゃあ、ブラックボックスがあったら、
それに相当するものを自分で作るわけですよね?
その金誰が出すの?w
はぁ、ブラックボックスがあるという
絶対変えられない世界に生きてるって分かってないのかな?
IEやWindowsのソースコードは保守契約結んでも見れません(笑)
0258デフォルトの名無しさん
2016/09/03(土) 15:20:23.76ID:EZVA2rF2能力がないから
0259デフォルトの名無しさん
2016/09/03(土) 15:23:04.80ID:aPmwwe34なるほど何となく状況は想像がついた。回答ありがとう。
0260デフォルトの名無しさん
2016/09/03(土) 15:23:16.22ID:EZVA2rF2最新のSafari 9でもArrow functionsに対応していない。
http://caniuse.com/#feat=arrow-functions
書いてあるSafari 10はまだリリースされてません
0261デフォルトの名無しさん
2016/09/03(土) 15:25:34.19ID:EZVA2rF2このブラウザはこのES6の機能に対応している?していない?
って考えて特定のブラウザのために使うのをやめるよりも
babel使ってES6の機能はどのブラウザでも使える。
ただし一部完璧じゃないものがある。
って考える方がはるかにコストが低いんだわ。
Android 4.0以上という要件だと、それらの
ブラウザを全部集めないとテストできないからね。
ようわからんな。
対応はできてもテストの金がかかる事は否定しないとか。
メンツの勝負になってない?
そういうメンツの勝負であれば、お前の勝ちで良いけど。
ホワイトボックスとして扱う事はコスト上不可能、ってそれくらいのコストしかかけない製品作んないから良いんだよ。
変な言い方で、敢えて語弊のある言い方すると、
高いほう、全て内製が良いとすら言われる製品だからお前がいってる製品とは多分だいぶ違うので、その辺の予算とは乖離あると思うわ。
ただその金の根拠は必要だけど。
内製良いよ。ライブラリに左右されんから。
コンパイラと処理系自体すら昔は作ってたしな。
そろそろまた元号でテキトーにやってる会社は死に目見るだろうし。
0263デフォルトの名無しさん
2016/09/03(土) 15:53:21.77ID:EZVA2rF2> 対応はできてもテストの金がかかる事は否定しないとか。
そこはbabelと関係ないからだよ。
babelを使っても使わなくてもテストはしないといけないだろ。
テスト内容自体は同じ。
0264デフォルトの名無しさん
2016/09/03(土) 15:53:47.63ID:EZVA2rF2> 内製良いよ。ライブラリに左右されんから。
そのコストは誰が出すと思ってるんだ?w
え?うん。
なら、最初から使わずに書けばいいんでは?って話だけど。
>>264
客。
あのさあ、何が言いたいの?
babelは完璧なES6で、AltJSとは一線を画す物だ、とエヴァンジェリスト気取りたいなら、それでいいよ。
もうその話題には触れん。
何が自分の苛立ちの原点なの?否定されたところ?正しいと思ってるところが理解されないところ?
0266デフォルトの名無しさん
2016/09/03(土) 15:58:34.24ID:EZVA2rF2> なら、最初から使わずに書けばいいんでは?って話だけど。
図式化しないと理解できんのかな?w
[ 開発 ] + [ テスト ]
テストは同じ。開発はbabelを使ったほうが簡単になる。
0267デフォルトの名無しさん
2016/09/03(土) 15:59:48.40ID:EZVA2rF2> babelは完璧なES6で、AltJSとは一線を画す物だ、とエヴァンジェリスト気取りたいなら、それでいいよ。
だからbabelはトランスパイラ。言語はES6(JavaScript)
AltJSとはJavaScriptではない言語のことなんだから
その言葉自体が間違ってんの。
0268デフォルトの名無しさん
2016/09/03(土) 16:00:56.87ID:EZVA2rF2なに? コストは客が払うだって!
ならbabel使ってもコストは客に払わせばいいじゃないかw
もっともbable使ったほうがコストは下がるけどな。
0269デフォルトの名無しさん
2016/09/03(土) 16:04:48.79ID:EZVA2rF2先に反論しておくと、最新版Safariも完全対応してないw
ブラウザごとにコードを変えるっていうのはコストがかかる。
どうせ客がコストを払うから知ったことじゃないっていうんだろうけどさw
ブラウザがバージョンも含めればたくさんあって
ウェブの世界では特定のブラウザとバージョンを指定できないのだから
使用されているほぼ全てに対応しないといけない。
それごとにコードを変えるなんてやってられないので、
babelを使う。babelを使うとそれぞれのブラウザの差が減る。
そのため単一のコードで多くのブラウザに対応できるのでコストも減る。
どうせコストは客が払うから、いくらかかっても
知ったことじゃないって考えの人にはわからないかw
0270デフォルトの名無しさん
2016/09/03(土) 16:16:36.11ID:EZVA2rF2お前、頭の固いおっさんに育ってしまったな
リアルで誰も言ってくれないだろうから俺が言ってあげるよ。
お前は子供の頃誰もが、ああはなりたくないと思ってる
頭の固いただのおっさん。
変化することをやめ、挑戦することをやめ、
現状維持。これ以上何もしたくない。
そういう、頭の固いおっさん。
変化させない事と、変化させる事、ひいては、運用する事、改善する事は全部ひとつながりだけど、全部それぞれが違うよ。
何かを変化させない事が別の何かを変化させることだったり、何かを変化させて何かを変化させない事もあるし、
そんな革新、革新!と騒いでも、何が革新か自体よくわからなくなるよ、そのうち。
今まであった物に、新しい名前をつけると割としっくりくるようなもんと同じ。今俺が何ヤジってるかはわかると思うけど。
0272デフォルトの名無しさん
2016/09/03(土) 16:35:14.63ID:EZVA2rF2また関係ない話をしだしたぞw
お前と話をしてると話がまとまらないって
よく言われるだろwww
0273デフォルトの名無しさん
2016/09/03(土) 16:36:40.92ID:EZVA2rF2変える能力がないってこと。
個人の能力だよ。
あ、だから変えるのは研究所とかがやってくれることで
俺には関係ないって発想につながってるのかwww
それは処理系作ってた人間が一番わかってんだけどなぁ。
同じ正しいCのソースでも何でコンパイルするかで割と意味が違ったり、そのチューニング、このコンパイラだと無意味だからオプティマイザにまかせましょ、みたいな話に近い。
そのうち、C++が出来て、でもまだCへのトランスパイラで、そのうち、STLだ、いや、これは標準になったんだ、って無駄なやりとりがあった時代を知らんのだろうな。俺もリアルタイムじゃないけど。
知らんがな。。どんな仕事をしてるんだ、と言うから仕事の話をできる範囲で話したんじゃん。
個人的には色々しとるよ。
そういう先端()の人間が殲滅すべきものはbabelであって、babel無けりゃ古いブラウザも死んでいくんじゃねえの?本来死んでる物を活かすからそうなるんじゃねえの?みたいな話してたんじゃん。
だからネイティブで書くことには何の問題も無いって言ってるんだけど。
0278デフォルトの名無しさん
2016/09/03(土) 16:46:08.31ID:EZVA2rF2> 同じ正しいCのソースでも何でコンパイルするかで割と意味が違ったり、
やっぱり、同じソースでC言語の仕様の範囲なのに、
コンパイルされた結果が違うから動作まで違うんですよね?w
でもbabelはES6で書いたコードをES5に変換するだけです。
だから動作は同じです。
0279デフォルトの名無しさん
2016/09/03(土) 16:46:40.99ID:EZVA2rF2プライド? 傷ついたのはお前じゃね?
お前、俺が傷つくようなこと言ってないじゃんw
0280デフォルトの名無しさん
2016/09/03(土) 16:52:59.71ID:EZVA2rF2お前はネイティブで書きたいから、古いブラウザに対応するために
ES5でコードを書くって言ったばかりじゃんw
じゃあ今まさにそのES5のコードは増えていってるわけで、ES6へ変化できないってことになる。
えとさ、コードをES6用に書き換えるのにもコストは掛かるんだよ。
どうせ金は客が出すからって考えなんだろうけど。
babelを使っていれば、今すぐES6ネイティブでコードを書ける。
ES5の対応を切るのはbabelでES6からES5への変換プリセットをOFFにするだけでいい。
babelを使っていれば、ES6をブラウザでネイティブに動かす対応は一瞬で終わる。(当然だがテストは常に行われている)
それがAltJSとは全然立場が違うって話に繋がる。
AltJSで書けば、AltJSの設定をOFFにしても動かずコード書き換えが必要だからね。
重要なのは今ES5のコードを減らすこと。
対応ブラウザをどうするかは顧客の要求できまることだから
こっちがあれこれ言えることではない。
0281デフォルトの名無しさん
2016/09/03(土) 17:16:40.84ID:AuZUWRpv0282デフォルトの名無しさん
2016/09/03(土) 17:32:29.46ID:EZVA2rF20283デフォルトの名無しさん
2016/09/03(土) 17:48:47.28ID:N47o0j5/使わなければいいという返しが来るとは思わなかった。
君はアレだね。できればES6で書きたいな、でも古いブラウザのしがらみから抜けられないな、
全く使えないよりも使える方がマシ、だから悪くなりようがないという考えなのだろう。
もちろんそれもあるよ。でもね、状況は動いてるのよ。
2016年になるまでなら、対応途中のモダンブラウザも含めて、できるだけ対応させるという
1つのより良くするための解でしか無かったけれど、
今ES6対応ブラウザが出揃ってきた状態でその中で対応を広げる役目としてのbabelを考えると、
億劫な点が出てくるというのは分かるだろう?
勘違いしてほしくないけれど、babalが悪いと言ってるんじゃないよ。
babelで生成されるコードのレベルが、ES6の時代なので書きま〜すっていう意気込みとは合わないってこと。
それでここからが大事な点になるのだけど、
babelのES6からの乖離は部分部分で見ると確かに小さい。SymbolやProxyを除いたとして、
それらを寄せ集めるともしかしたら1%と言えるくらいしかないのかもしれない。
でもね、各ブラウザstable版に機能が実装されていく時は、基本的には安定した機能が丸ごと有効になるわけで、
機能があるかないか程度にしか気にしなくていいのよ。
でもね、babelのように細かな非互換が多いと、
それは開発版ブラウザに機能が実装されてる最中で、フラグで有効化してES6の振る舞いを実験していた
1年前の状態さながらなのよ。
0284デフォルトの名無しさん
2016/09/03(土) 17:49:36.57ID:N47o0j5/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対応以降のモダンなブラウザとの二極にするというのはある案だと思っているし、俺のところは今年度からそうしてる。
0285デフォルトの名無しさん
2016/09/03(土) 18:08:14.44ID:EZVA2rF2あんたは重要な点を見落としているね。
あんたが言っているのはすべてbabelを使わなうても当てはまることなんだよ。
ブラウザ間の互換性は完璧ではない。
あるブラウザには搭載されていて、あるブラウザには搭載されていない。
そういう機能がある。
babelはその機能の差を減らすものでしか無い。
話は単純。
1. ブラウザの間での違いはあるしなくならない。(もちろんbabelを使わない場合の話)
2. babelを使わないならばブラウザ間での違いが大きい。
3. babelを使うとブラウザ間の違いが減る。
これを前提の話をしよう。
0286デフォルトの名無しさん
2016/09/03(土) 18:13:17.33ID:EZVA2rF2という前提で話をすると、
ES6を完全に搭載していないブラウザが多く使われている今は
babelによって、その機能の差が大きく減る。
そしてその次はES2016、ES2017と話は進んでいく。
当然今のブラウザはES2016、ES2017の対応は少ないだろう。
ある時それらに対応したブラウザが一つだけでた。
となるとやっぱりブラウザの間の違いがでてくる。
そしてまた新しい仕様がでてきて、それに対応しているのはどれ?
という状況がずっと続く。
ブラウザの数は多い。バージョンアップの頻度も高い。
だからブラウザ任せでは機能の差を埋めることは難しい。
そこでbabelがでてくる。babelを使うことで機能の差は減る。
0287デフォルトの名無しさん
2016/09/03(土) 18:16:26.40ID:EZVA2rF2> でも、モダンで良いコードを書きたいという気持ちが強いなら、古く取り残された環境を切り捨てる勇気も必要だと思う。
モダンで書くよりも重要なのは、今あるブラウザで動かすこと。
そしてその次が開発コストを下げること。
多種多様なブラウザを相手にしていたら開発コストは下がらない。
だからbabelを使ってブラウザ間の違いを減らして
コストを下げることが重要になる。
その次だよモダンで書くことでコストを下げるという理由がくるのは。
優先順位は低い。だからbabelで対応していないものは使わないと言う
選択肢が当然成り立つ。
そして「babelで対応していない機能」は「babelを使わなくてもブラウザが対応した時」に使えばよかろう?
ES6の機能をすべて使うことが目的じゃないんだからさ。
0288デフォルトの名無しさん
2016/09/03(土) 18:18:01.40ID:EZVA2rF2> ES6対応以降のモダンなブラウザとの二極にするというのはある案だと思っているし、俺のところは今年度からそうしてる。
Safari最新版はアロー関数に対応していないんだが?
0289デフォルトの名無しさん
2016/09/03(土) 19:21:50.91ID:N47o0j5/Safariはモダンブラウザに含めていない。
ウチではずっとChrome第一Firefox第二、近頃はEdge第三。
他は眼中にない。
0290デフォルトの名無しさん
2016/09/03(土) 19:27:20.93ID:EZVA2rF2じゃあスマホは?
例えばAndroid 4系はアロー関数に対応していない。
http://caniuse.com/#feat=arrow-functions
0291デフォルトの名無しさん
2016/09/03(土) 19:32:55.57ID:EZVA2rF2https://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%)
0292デフォルトの名無しさん
2016/09/03(土) 19:35:23.00ID:N47o0j5/いや、逆だよ。超逆。
Androidの古いブラウザを切り捨てられる時期というのが強い。
Android 4系と言っても、実は後半くらいか徐々に、終盤は大体、
ベンダーがChrome載せててデフォルトにしてるから、実は問題ないんだよ。
一番問題あるのはSafariくらいで、それももうすぐだろう。
誤解無いように書くが、
上でも言ったようにプログレッシブ・エンハンスメントだし、
当然全てのコードを書き換えたわけではない。
今年度から新しく初めて長くメンテしていくサービスでのコードは原則そういうポリシーになっただけ。
なので問題は無い。
0293デフォルトの名無しさん
2016/09/03(土) 19:40:30.57ID:EZVA2rF2意味がわからん。
重要なのは切り捨てるタイミングと
コードを新しくするタイミングの問題。
babelを使うと古いブラウザを切り捨てるタイミングを
自由にコントロールできる。
そして古いブラウザを切り捨てるよりも前にコードを新しくできる。
つまり古いブラウザを切り捨てたときにはすでにコードは新しくなってる。
あんた、今、古いブラウザを切り捨てたのに、
古いコードを抱えてるじゃん。
> Android 4系と言っても、実は後半くらいか徐々に、終盤は大体、
> ベンダーがChrome載せててデフォルトにしてるから、実は問題ないんだよ。
だからシェアのリストだしただろ? ChromeとAndroid Browserを
入れたとしても62.22%にしかならない。
>>284は説明上手いな。
0295デフォルトの名無しさん
2016/09/03(土) 20:15:24.73ID:EZVA2rF20296デフォルトの名無しさん
2016/09/03(土) 20:18:55.72ID:EZVA2rF2どれだけ多くの世間で使われているブラウザに対応できるか。
俺が一番重要視してるのは、より実用的なのはどれかだよ。
ES6対応度テストで9割合格していても、
それが今使われてるブラウザの6割じゃ役に立たない。
ES6対応度テストで8割でもそれを使うことで
ブラウザの9割で動かせるほうが重要。
0297デフォルトの名無しさん
2016/09/03(土) 20:22:54.41ID:N47o0j5/>>babelを使うと古いブラウザを切り捨てるタイミングを
>>自由にコントロールできる。
いやー一年前まではそう思ってましたよ。
上でも書いたけれど、君の発言を見てると一年前二年前の若い自分を思い出す。
でもそうじゃなかったから使ってないの。まだ分からない?
理由は大体書いたよ。
babelただ使うだけで使わないよりも『より良くなる』時代ってのはもう終わったの。
あんまり踏み込んで欲しくないので書かなかったことを少しだけ言うと、
ウチではES6基本というのは実は嘘。今はもうES2016基本にしかけてる。
で、そのために、『より良くする』ためにbabelではないがトランスパイラ+ポリフィル使ってる。
が、これもES2016の重箱の角はつつけていないので、本当は使わないで済むなら使いたくないのよ。
モダンなコードを書くメリットと、重箱の角を心の隅で気にしないといけないコストと、若干の好奇心のつり合いを見て今はこういう形になっている。
だから本当に100%ES2016で開放された気分で書けてるのかというとそうではない。
あれだけ変更の少ない2016->2015でもそうなんだよ?
babelのES5変換なんて満足できていたのは最初だけ、ブラウザの対応が未熟だった頃だけだよ。
当初君と同じ夢を見ていたウチのメンバーは一年くらいかけて
実は古いブラウザというしがらみから逃れるために、babelというしがらみに縋ってただけだって気がついたの。
今はbabel使って後から外すなんて夢物語だよ。黒歴史。
実はそういった試みで始めたものいくつかあったんだが、まともに活用しきれない。
多くは実らず捨てることになって、一部は泣きながらリファクタリングしてる最中。
0298デフォルトの名無しさん
2016/09/03(土) 20:24:00.35ID:N47o0j5/でもまあ、ふと思ったけど、俺も今のbabelは触ってないからな。精々半年前の感覚のままだ。
今はもしかしたら殆ど完璧になってて、憂いが減ってんのかな?
そこはちょっと反省。
どうしてbabelで旧ブラウザの対応するのを見限ったかって言うとね、
そもそも、babelのバグや細かい非互換のせいで大きいコードがしばしばまともに通らなかったからだよ。
だから、笑えるけどbabelで通るように書き換えてたの。当然歪になってるから使い回せない、使い回したくないの。
でも今babelの対応状況改めて見てみたらやっぱり無理だ。
マイナーかもしれないけれど、毎度一箇所は使うだろう点が残ってる。
やっぱり痛いのはプロトタイプの設定や、サブクラス化かなぁ。
めっちゃ使うということは無いが、ここらを我慢するのはやっぱりES6使ってるとは俺は思えないわ。
0299デフォルトの名無しさん
2016/09/03(土) 20:26:29.35ID:EZVA2rF2あんた自分で言ったセリフ思い出してね。
> Safariはモダンブラウザに含めていない。
> ウチではずっとChrome第一Firefox第二、近頃はEdge第三。
Safariに対応できてない、IEに対応できてない。
対応できるブラウザは6割。
それがお前が今できることの限界だよ。
無意味な中傷せんと、皆の意見を真摯に聞いとけ。
だいたい同じ事言ってる。
あとな、動作が同じって、それは違うからな。
いくら時間がかかっても良いから同じ結果を出します、ってのは、結果同じでも動作違うからな。
万回以上呼ばれだしたら体感で速度変わるし。
>>278に対してだけど。
0301デフォルトの名無しさん
2016/09/03(土) 20:28:02.67ID:EZVA2rF2> そもそも、babelのバグや細かい非互換のせいで大きいコードがしばしばまともに通らなかったからだよ。
> だから、笑えるけどbabelで通るように書き換えてたの。当然歪になってるから使い回せない、使い回したくないの。
だったらbabelで通るように書き換えないで、
その機能を使わなければいいだけでは?
だってそもそもbabelを使わないならば
その機能は使えないんだからさ。
その機能を使わないと言う選択肢をとることはできるはずだ。
0302デフォルトの名無しさん
2016/09/03(土) 20:28:44.55ID:EZVA2rF2今はお前と話はしてない。
お前のみんなの扱いはすでに決まってるんだよ。
おバカさんw
そう。だから、結局同じ構文で書いた、ただのbabelって処理系用の言語なんよね。
>>301
それは、babel用のコードを書くに、他ならなくないか?
babel無視したら、そんな回避コード書かんで良いんだから。
俺が仕事でES5書いてるのとレベル全く変わらんじゃないか。
0304デフォルトの名無しさん
2016/09/03(土) 20:30:30.26ID:EZVA2rF2言ってることが抽象的すぎて
具体例が一つもないよね。
問題があるという前提で話をしているが、
そもそも、お前が言う問題は本当にあるのか?って話。
まず、具体的な問題があることが前提だから
どういうときに問題があるのかを言ってくれないか?
0305デフォルトの名無しさん
2016/09/03(土) 20:31:13.84ID:EZVA2rF2> それは、babel用のコードを書くに、他ならなくないか?
ぜんぜん違う。その言語はES6でそのまま動く
ES6用とbabel用に違いはない。
お前の中だろ。
問題を極端に矮小化したり拡大解釈したり、一般化したり特殊化すんのは良くないぞ。
0307デフォルトの名無しさん
2016/09/03(土) 20:32:03.05ID:EZVA2rF2わざわざES6のコードを避けるほうが大変だろwww
どちらがどれだけ大変かの話をしてる。
babelを使えば、避ける必要性が大きく減る。
0308デフォルトの名無しさん
2016/09/03(土) 20:32:49.45ID:EZVA2rF2あっちのスレでもお前、馬鹿にされてるじゃんwww
自覚しとけ。
お前は俺に反論できないことはたくさんあったが
それはお前にほとんどレスしてるだろw
ES5もES6でそのまま動くよw
babel用に使えないものがあるから使わないのは、ES6のサブセットじゃん。
babel用に使えないものを避けて書いたのと、気にせず書いたES6は違うコードなんじゃねえの?
明後日のレスだけして、それで答えた気になってたらしゃーないわ。
避ける方が大変?なんだそりゃ。
言語仕様把握せずに開発してる訳でもあるまい。
規約が無い訳でもあるまい。
子供のバイトみたいな話しないでくれ。
0312デフォルトの名無しさん
2016/09/03(土) 20:37:02.13ID:EZVA2rF2> ES6のサブセットじゃん。
ん? 各ブラウザのES6の実装度を知らないのかな?
どのブラウザでも使えるのはES6のサブセットでしか無いんだけど?
0313デフォルトの名無しさん
2016/09/03(土) 20:38:01.48ID:EZVA2rF2> 避ける方が大変?なんだそりゃ。
そりゃそうだろ。
どのブラウザで、どの機能が使えるかをいちいち把握しないといけない。
お前アロー関数がSafariで使えないことを把握していたか?
そういった細かい機能を把握する必要がなくなる。
0314デフォルトの名無しさん
2016/09/03(土) 20:38:52.88ID:EZVA2rF2動かないってことを知ることは出来ないんだよ。
そうだね。
だから、ブラウザごとに要件定義すんじゃんね。
そこに、これまたbabelって処理系が入る、と。
お前の理屈破綻してるのわかる?
どこが、一つのES6で良いの?w
最大公約数で書けば良い、なら、
ホントに最大公約数で書けばいいじゃん。ES5。
要件定義できるなら、その最大公約数で書けばいいだけ。
中途半端に先端気取って無駄な事なの。
0316デフォルトの名無しさん
2016/09/03(土) 20:41:56.59ID:EZVA2rF2babelを使わないと、
1〜100までのすべてのブラウザを考慮しなければいけなくなる。
babelを使えば80以下のブラウザがすべて80にまで底上げされるから
80〜100のブラウザだけを対応すれば良くなる。
してたよ。
ついでに言うとOperaも対応してない。
Android標準ブラウザは4系でも全滅。IEも11でも使えない。
ES5で書けば100のブラウザ相手に書けんじゃん。
底上げしたから、何もしなくて良いわけでもないし。
骨折り損。
0319デフォルトの名無しさん
2016/09/03(土) 20:45:14.45ID:N47o0j5/何が言いたいのか、いやもう建設的な話し合いをする気は無いんだろうけど、
一応会話してみるか。
対応するときはES5で書く。それだけでしょ?
そして、その話は本題と関係ないでしょ?
古いブラウザを見限っていいから、Babelを使うなと言ってるんじゃないから。
古いブラウザを見限らないとしても、ウチではBabalは使わない。ただES5で書くだけ。
まさかウチではもう今年度からピュアES6しか書きませんと言ってるのだと思ってた?
誤解させてごめんね。
で、本題はBabalの吐くコードはES_Babalであって、ES6とは遠からず近からずなものでしかないということ。
ES6を使いたいから、後々外せばいいだけだから便利、な感覚でBabelを使うと怪我するよと言ってるの。
Babalを使うのなら、あくまでES_Babelというalt JSを使うんだという認識・覚悟で居たほうが正しい。
そして副題として、俺はそれは嫌ということ。ここは個人的な部分だし、環境なので異論は認めるし、批判は受け付けていない。
二極化提案については、まだ実験中で良し悪し分からず、オススメする気もなくポロッと言ってしまっただけだし、
あまり深入りしてほしくないのでこれ以上話したくない。
0320デフォルトの名無しさん
2016/09/03(土) 20:45:47.57ID:EZVA2rF2> だから、ブラウザごとに要件定義すんじゃんね。
> そこに、これまたbabelって処理系が入る、と。
ブラウザは実行環境、
babelはトランスパイラ。
違うものを混ぜるなって何度も言っただろ。
お前はES6に対応していないブラウザを一つずつ何個も
この機能は使える?使えない?って悩んでいるのだろうが
babelを使うと、多くのブラウザの最低レベルが揃うんだよ。
お前の言葉で言う最大公約数がES6に底上げされる。
最大公約数5よりも最大公約数10の方がいいだろw
0321デフォルトの名無しさん
2016/09/03(土) 20:46:33.45ID:N47o0j5/0322デフォルトの名無しさん
2016/09/03(土) 20:49:51.97ID:EZVA2rF2なんか一人二役ご苦労さんって感じになってきたな。
わざとらしく大文字小文字を使い分けてるのかい?www
> 対応するときはES5で書く。それだけでしょ?
そのES5をES6に書き換えるコストは誰が払うんだ?ずっとES5のまま?
なんで可読性、メンテナンス性が低いコードを今のタイミングで量産するのさ?w
長期的なバージョンアップっていうのが考慮されてないぞ。
> で、本題はBabalの吐くコードはES_Babalであって、ES6とは遠からず近からずなものでしかないということ。
なんでそこでbabelの吐くコードを気にしないといけないのかわからん。
そもそもbabelの吐くコードはES5だ。ES_Babelなんてものはない。
babelは言語ではなくて単なるトランスパイラ。言語はES6そのもの
0323デフォルトの名無しさん
2016/09/03(土) 20:50:46.13ID:EZVA2rF2> ES5で書けば100のブラウザ相手に書けんじゃん。
ただし可読性とメンテナンス性が低いコードになる。
0324デフォルトの名無しさん
2016/09/03(土) 20:52:05.59ID:EZVA2rF2> ついでに言うとOperaも対応してない。
> Android標準ブラウザは4系でも全滅。IEも11でも使えない。
そっかー、babel使ってテストにもちゃんと通って
手動でも確認したときも問題なく動いていたから知らんかったわーw
まあ嘘だけど、このようにいちいち把握する必要がなくなる。
0325デフォルトの名無しさん
2016/09/03(土) 20:52:33.02ID:vfo9HhT2C#のラムダ禁止おじさんとか
ラムダは積極的に使えば良いのにな。
0329デフォルトの名無しさん
2016/09/03(土) 20:56:57.70ID:EZVA2rF2> 言語は、そのものじゃなくてサブセットなんじゃねえの?
そうだなES6の殆どが使えるがサブセットだなw
それよりもES6に完全対応してないブラウザの方が
より大きな問題だよ。
0330デフォルトの名無しさん
2016/09/03(土) 20:58:33.36ID:N47o0j5/俺はともかく、ES6ってそんなレベルじゃねーぞって変なこだわり言ってるだけだから。
とりあえずBabel使うとES6でガッツリ書けます。将来的には外すだけみたいに言わないでくれれば他はどうだってよかった。
相手が建設的な話し合いする気がないどころか、現実逃避始めちゃったので、今となってはそれすらどうでもいい。
>>320
>>babelを使うと、多くのブラウザの最低レベルが揃うんだよ。
そう。いいこと言った。
最初からこのくらいに収めてくれてれば俺が駄スレで駄レス重ねる必要もなかったのに。
結局会話にならなかったし、ほんと、無駄な時間過ごしちゃったな〜
0331デフォルトの名無しさん
2016/09/03(土) 20:59:03.26ID:EZVA2rF2> 必要が無いのと、無責任なのは違うよ。
誰が無責任でいられるって言ったんだよ。
アホかw
ちゃんとテストコード書いて問題なく動くことを確認してる。
それが責任を果たすということだろ。
> あと、letも、ずっとSafariだけ未対応だった。
せっかくより良くなったES6を
全く使えない状況になるんだよねw
0332デフォルトの名無しさん
2016/09/03(土) 21:01:48.79ID:EZVA2rF2> とりあえずBabel使うとES6でガッツリ書けます。将来的には外すだけみたいに言わないでくれれば他はどうだってよかった。
もちろん将来的には外すだけじゃねーよw
しっかりテストコード書いて、テストする。
これは、babelとは関係なく、ブラウザのバージョンアップでも
急に動かなくなったりする可能性があるのだから当然するべきこと。
babelを外してもし動かなくなるのなら、その部分だけの修正で済むだろ。
今からbabelを外して動くかどうかもテストしてればいいんだよ。
それをやってるから、ES6で書いてbabelを使っても使わなくても
同じように動くコードになるって言ってるの。
0333デフォルトの名無しさん
2016/09/03(土) 21:09:12.58ID:N47o0j5/だからね。君が言ってるそれは、BabalがES6のコードを完璧にES5に変換できるということ前提なの。
実際はね、ES6ではなく、ES_Babalで書かないといけないの。
ES_BabalというのはES6から機能と安定性を取り去った言語なわけ。
で、それを将来ES6か何かに書き換えるわけ。
それがES5のしがらみとどっちが強いかは人次第なのかもしれない。
君はそれに十分満足していて、俺は不満。ただそれだけなのかもしれない。
でも、ES6を使いこなしていったらすぐに俺の考えに近くなるんじゃないかなという想像。
無駄なおせっかいだったのよ。それだけ。
0334デフォルトの名無しさん
2016/09/03(土) 21:13:20.81ID:EZVA2rF2だから書かなくて良いんじゃないですかねぇw
ES6で完璧に書けないものは書かなくていい。
なんでES6を使うって言ったら、babelで使えない機能まで
ES6を使おうってするんだ?w
どうせテスト書くだろ。完璧に動かなくてもテストで通る範囲が動けば問題ないんだよ。
そもそもブラウザですらES6に完全に対応していない。
どちらにしろES6に完全対応していない環境と言う前提のもとで、
正しく動くアプリを作るんだよ。作るのが仕事なの。
そしてより可読性、メンテナンス性に優れたコードを今すぐ書くということ。
テストコード書いて問題なく動く、そこが違うんだよなぁ。
こっちは仕様と実装からテスト仕様書いてて、
お前は仕様からしか書いてないんだもの。
>>332
お前は本当に何を問題とされているかわかんねえやつだな。
0336デフォルトの名無しさん
2016/09/03(土) 21:17:26.35ID:EZVA2rF2こっちは仕様と実装からテスト仕様書いてて、
え? だからそのテスト仕様書通り動けばいいだろ?
何言ってるのかさっぱりわからんwww
0337デフォルトの名無しさん
2016/09/03(土) 21:18:06.86ID:EZVA2rF2あ、実装を書かないとテスト仕様書が書けないタイプ?
0338デフォルトの名無しさん
2016/09/03(土) 21:21:04.16ID:EZVA2rF2要するにprivateメソッドを書いてから
そのテストコードを書くって言ってるのかな?
まあまた意味不明なことを言い出したなって
思ってますよw
0339デフォルトの名無しさん
2016/09/03(土) 21:23:23.04ID:EZVA2rF2同じ動作をしていてもアプリは問題なく動いていても
失敗するものってことでいいんですか?
当たり前だろ。。
>>338
違うよ。
コードを書く/書いてもらう前に、何もかも分かった状況にして、こうすれば書けるから、と実装に対する詳細設計を起こすよね。
その詳細設計から書くじゃん、テスト。
実装、がもしかして食い違ってる?
お前が書く内容、って意味じゃなくて、処理系の実装、な。
しかし、改めてbabel見てみたが、末尾再帰もできんままか。
何言ってるのかわからん。
その処理系でテストを完了していない限り、失敗も成功もないだろ。宙ぶらりん。
だからテストすんじゃん。
0342デフォルトの名無しさん
2016/09/03(土) 21:28:37.51ID:EZVA2rF2http://teppeis.hatenablog.com/entry/2015/03/es6-tail-call-optimization
2015-03-29
BabelとTraceurでES6末尾再帰最適化を試す
ちょっと前にBabelに末尾再帰最適化が入って話題になったけど、同じくTraceurにもv0.0.85で最適化が入ったので試してみた。
0343デフォルトの名無しさん
2016/09/03(土) 21:28:59.57ID:N47o0j5/うん。だから君は、ES6を、モダンで良い言語で書きたいから使ってるわけではなく、
「Babelが対応してる機能」を「Babelが対応してるから」使ってるだけでしょ?
普通はES6で書いて動かすためにトランスパイラを試す筈だが、
君はおそらくBabelをES6入門用的に使っているのだろう。
Babelはもう成長しないが、君はどうするの?
うーん。もしかして、ES2017や18の時代になっても、
Arrayのサブクラスすら作れないなんちゃってES2017で書くの?
ES6-サブクラス+デコレータ-hogehoge+fugafuga
みたいなおかしな言語で書き続けるの??
そこに無理があると言ってるのよ。
君ももし本当にES_BabelをES6と信じてるのなら成長したほうが良いよ。
で、Babelは使うのは良いが憂いができるだけ少なくなるようにした方がいい。
0344デフォルトの名無しさん
2016/09/03(土) 21:32:40.61ID:EZVA2rF2337 自分:デフォルトの名無しさん[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. (実装を書く前の)詳細設計からテストを書く。
実装を書かなくてもテスト仕様書は書ける。
おお、if文のあとの再帰で死ぬやつ治ってんだ。
ちなみに、その話のあと、一旦disabledになったのよ。
だから。もう。
お前がどう書くかは関係ねえの。
それからテスト書いたら意味ねえじゃん。
ホワイトボックスで、それが検証可能な事には意味があるけど、そうじゃねえよ。
処理系の実装だよ。
0347デフォルトの名無しさん
2016/09/03(土) 21:41:34.55ID:EZVA2rF2> 「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
0348デフォルトの名無しさん
2016/09/03(土) 21:46:47.80ID:EZVA2rF2またマッチ・ポンプ?w
テストは実装前に書くって話でいいんだよね?w
俺が言いたいのは、>>335でお前が言った
> こっちは仕様と実装からテスト仕様書いてて、
実装からテスト仕様書くなやってことなんだけど?
で、俺は仕様と詳細設計からテスト仕様書書いて
それをテストコードにしてるから、
実装が変わっても問題ないって話をしてるんだけど。
だから、処理系の実装だってば。
お前話の流れが読めないやつだな。
前のレス見ればわかんじゃん。
>>347
だから、それがbabel用のコードなんじゃねえの?
ES6と同じ構文で書いたES6のサブセットな、babelにコンパイルさせる為の言語。
ただ、そのまま他の環境でも動くだけで。
それは、ES5を書いて、これはES6の仕様範囲内だから、ES6です、って強弁するのと変わらんではないか。
0350デフォルトの名無しさん
2016/09/03(土) 21:54:03.20ID:N47o0j5/うーん。君のポリシーがよくわからないね。
今のブラウザがES6の全てに対応していない?
そりゃそうだ。ES5すら全てに対応してるわけではないからね。
ということは、それより遥かに劣るBabelは極めて不完全って認めるわけなの?
さっきも言ったが俺はそここそが一番気になるんだから。
いや違うか、君は不完全でも気にしないと言ってるわけだ。
ES6とES_Babelの見分けなんてつかないよと、
いや、Babelで変換できないES6の機能なんてES6と認めないよと言ってるわけだ。
やっぱり君はBabel志向なんだよ。
それは違う、とにかく対応を広げるために機能の劣るBabelを仕方なく使ってるんだっていうなら
やっぱりES6ではなくES_Babelを書いてるってことを認めないといけない。
それか、実はES6なんて理解してなくてBabel志向なだけですというのも理屈が通る。
そのどちらか。
0351デフォルトの名無しさん
2016/09/03(土) 21:57:03.42ID:EZVA2rF2> だから、処理系の実装だってば。
処理系の実装ってなに?
お前は処理系の実装のテストを "書いている" といった。
そうわざわざ言うってことは、当然普段から書いているのだろう?
ブラウザの場合お前はbabel等を使わない。
ってことは当然処理系の実装のテストというのは、
ブラウザが持っているJavaScript実装。
ChakraやSpiderMonkeyやV8という処理系であるはずだ。
お前はこれらのJavaScriptエンジンを
わざわざ開発元がやってるはずのテストを
JavaScriptエンジンの開発や検証という段階でもないのに、
アプリの開発という仕事の中でやってるということか?
そういう話でいいのか?
0352デフォルトの名無しさん
2016/09/03(土) 21:59:14.75ID:EZVA2rF2> だから、それがbabel用のコードなんじゃねえの?
> ES6と同じ構文で書いたES6のサブセットな、babelにコンパイルさせる為の言語。
ES6のサブセットという言語はない。
俺がES6のサブセットを使っているだけ。
そもそもどのブラウザもES6に完全対応してないのだから
俺だけじゃなくてみんなES6のサブセットを使ってる。
お前、SafariでES6のサブセットを使ったら、
それをSafariで動かすための言語っていうのかよwwww
それぐらいわからんかなw
0353デフォルトの名無しさん
2016/09/03(土) 22:05:42.45ID:EZVA2rF2> 今のブラウザがES6の全てに対応していない?
> そりゃそうだ。ES5すら全てに対応してるわけではないからね。
>
> ということは、それより遥かに劣るBabelは極めて不完全って認めるわけなの?
そこが話がつながってない。
babelはES6に対応していないブラウザをES6対応に近づけるものであって、
ブラウザとES6対応度で競争しているわけじゃない。
ブラウザは他のブラウザとES6対応度で競争しているかもしれない
その競争でどこそこのメーカーのブラウザが劣っているか劣っていないかって
いう話をするのならわかる。
だがbabelの目的は、劣っているブラウザを救済する所にある。
babelと比較するのであれば同じ目的のTraceurやClosureだろう。
あんたはES6を使いたいとしか思ってないようだが、
俺が一番に考えているのは、より多くのユーザーが使ってるブラウザで動かすということだ。
その上で可読性やメンテナンス性を上げるという理由で出来る限りES6を使うって話をしてるんだよ。
文盲なの?
そのエンジンと自社製品の組み合わせのテストだよ。
>>352
最後。
その通り、Safariの為の言語だよ。その時点では。
SafariとFireFoxの為に書いたのであれば、SafariとFireFoxの為の言語。
0355デフォルトの名無しさん
2016/09/03(土) 22:17:06.63ID:EZVA2rF2ブラウザごとにソースコード書き換えてるのか?
あるサイトを作ったとして、
Chromeはアロー関数を使ったコードで
Safariはアロー関数を使わないコード。
一つのコードで複数のブラウザに対応するのではなく
各ブラウザごとに書き換えたを変えてるのか?
まさかな。babelを使うと一つのコードで
複数のブラウザに対応できるぞwww
0356デフォルトの名無しさん
2016/09/03(土) 22:18:28.08ID:W9R0/4bkバベル君の事が理解出来る様に、オレも少しかじってみるわw
0357デフォルトの名無しさん
2016/09/03(土) 22:18:34.81ID:EZVA2rF2> そのエンジンと自社製品の組み合わせのテストだよ。
言い方がおかしいな。
普通は
そのエンジンと自社製品の組み合わせ「で」テストをするという。
確認するが
そのエンジンと自社製品の組み合わせ「の」テストを書いているという意味か?
0358デフォルトの名無しさん
2016/09/03(土) 22:19:06.56ID:N47o0j5/うん。それならいい。
あくまでES6を意識したBabelScriptという下駄を古いブラウザに履かせるという認識ならいい。
裏切りを知らないサンタクロースを信じる子供か、黒歴史を未経験な魔法に憧れる中二病患者かと思ったから忠告したけど、
そうでないのなら尽く良い。
その他いろんな話をしたが、もうそれに関しての共通理解は諦める。
0359デフォルトの名無しさん
2016/09/03(土) 22:20:31.06ID:EZVA2rF2◆SEくんおもしろいw
> その通り、Safariの為の言語だよ。その時点では。
じゃあブラウザとバージョンの数だけ別の言語があるってことかい?
0360デフォルトの名無しさん
2016/09/03(土) 22:21:58.64ID:EZVA2rF2> 裏切りを知らないサンタクロースを信じる子供か、黒歴史を未経験な魔法に憧れる中二病患者かと思ったから忠告したけど、
だからテストコードを書いている。
このテストコードはbabelを使った場合と使わない場合の両方で動く。
裏切られる前提で、裏切られてもすぐに修正できるように
ちゃんと対策をしている。
0361デフォルトの名無しさん
2016/09/03(土) 22:24:51.69ID:EZVA2rF2なぜならばどのJavaScriptでも同じブラウザでも
バージョンが違えば、わずかながらでも違いがあるから。
ECMAScriptという仕様を完全に見対している言語もない。
そういえばC++も仕様を完全に満たしている処理系はないっていわれてるな。
つまり、それぞれの処理系で別々の言語が実装されている。それはC++とは呼ばないw
え?MSの2012でコンパイルできる、cppのソースコード、以外の、現実に則した表現あるの?
0364デフォルトの名無しさん
2016/09/03(土) 22:31:28.65ID:EZVA2rF2> お前も認めてたじゃん。どのブラウザもサブセットだって。
お前、毎度毎度、重要な単語を抜き取るよなw
わざとやってるだろ。
どのブラウザも「JavaScript(ECMAScript)という言語の」サブセットだって
言ったんだよ。別の言語であればそれはサブセットとはいわない。
そうよ。おかしかったらパッチ書いてプルリクするもの。
0366デフォルトの名無しさん
2016/09/03(土) 22:32:33.75ID:N47o0j5/そこに関しては納得してる。
俺が違和感があるのは、よくそれで問題にならず我慢できるなってこと。
よくArrayのサブクラスとか作らないで済むね?
Proxy使ったこと無い?@@系は?
当然独自クラスシステムフレームワーク構築するのに
プロトタイプ書き換えるとか当然やったこと無いんだろうな〜
って感じ。
そういう驚きと、同じ世界に居ない悲しみ。そんなとこ。
重要な単語も何も、本家とサブセットは関係が定義できようが、
サブセット同士はただ違うものとしか。
0368デフォルトの名無しさん
2016/09/03(土) 22:33:53.31ID:EZVA2rF2> 依存部分はライブラリで吸収するから。
アロー関数は文法なんだから、JavaScriptファイルを
分離しないと、構文エラーになるんだが?
そのライブラリはブラウザごとに読み込むファイルを分けるのか?
またパフォーマンスが落ちそうなことをwww
0369デフォルトの名無しさん
2016/09/03(土) 22:35:25.80ID:EZVA2rF2だから、そうやって重要な単語を抜き取って焦点をぼかすのはやめろ。
とある言語の、サブセット同士が違うものであっても
それはとある言語のサブセットであって、言語としては同じだろうが。
BASICはどの実装でもBASICであり
COBOLはどの実装でもCOBOLだ。
0370デフォルトの名無しさん
2016/09/03(土) 22:37:05.23ID:EZVA2rF2> よくArrayのサブクラスとか作らないで済むね?
といわれてもね。長年やってるからね。
長いES5の時代にArrayのサブクラスをつくらないで
やってきた人間に、そんなこといわれてもねw
その他も同じ。
お前のほうがやってきた経験少ないんじゃね?
0371デフォルトの名無しさん
2016/09/03(土) 22:41:45.37ID:EZVA2rF2そうだな。君、何かのポリフィルを自分で考えたことある?
特定のブラウザでは簡単にできないことを、
別の方法を使って実現するってことをやったことある?
そういう経験がないんじゃないかな?
バッドノウハウといわれるけど、仕事ではそれをやらないといけない。
Arrayのサブクラスが作れないからできませんって
簡単に泣き言を言ったらだめだよ。
Arrayのサブクラスを作ることが目的になることはまずない。
別の方法で顧客の要求を実現するんだよ。
これって発想力の問題かなぁ、それとも問題解決能力?
0372デフォルトの名無しさん
2016/09/03(土) 22:56:19.81ID:N47o0j5/当然俺もいきなり活用できたわけじゃない。
折角の機能活用できるようになろうとここ1,2年実験・研究を人一倍積み重ねてきたのよ。
いや、違うか。それより前から、特にES4の頃からかなぁ
JSなんてと言われる声が大きかった時でも、
これからはJSの時代だ。JSを深く知ろう、そしてJSの良さをもっと知ってもらおう。
JSを良くしていこう。とずっとずーっと思ってたのよ。
だからES6の盛り上がりには喜んだし、
MLも当初から参加して全て読んで、細部だが提案にも参加した。
そして実装される前から、トランスパイラではなく、エンジン毎実装されているエミュレータでテストしたりしてきたのよ。
ブラウザに機能がコミットされたら、いやされる直前に自分でローカルでコミットして即ビルド。
とにかく誰よりもよくES6を知り、よく使えるようになろうと努力した。
というのは多少大袈裟だが、そのくらいの熱はあるよ。
0373デフォルトの名無しさん
2016/09/03(土) 22:59:14.75ID:N47o0j5/__proto__がサポートされていれば。
いや、それは言語名を拡大解釈しすぎだろ。
お前どう聞いてもそのノウハウないんだけど。
なんか書いたことある?アーキとしてライブラリ。
>>368
うん、文法上無理なものは、無理に使わないよ。
ライブラリはブラウザごとに違うよ?
当たり前だけど、そのブラウザ用に書いてるからパフォーマンス高いよ(笑)
0376デフォルトの名無しさん
2016/09/04(日) 01:41:38.94ID:dQFc65WQそんならネイティブで書いたほうがいっそ早くね?
0377デフォルトの名無しさん
2016/09/04(日) 01:42:25.34ID:dQFc65WQそれだと今度はOSのソースを読み出すのかな?
クラサバの話?
だいたい似たようなもんだよ。
社内端末は、何処の会社でもそうだろうけど、標準品のパターンしか無いから。
クラサバは基本的にはあんまり作らんけどね。
標準品があるがゆえにが、何かにもインストールするのは難しい。
毎月10日に数万人が同時使用するようなものもあるから、ウェブ向きのもあるんだけどね。
案件次第だけど、RedHatと、MSは調査させることができる保守契約だから、
ソースは見なくて済むよ。
0380デフォルトの名無しさん
2016/09/04(日) 02:40:24.68ID:dQFc65WQテストだけじゃなくてソースまで読むとなると、CPUとかグラフィックカードの設計図まで見ながら実装や結果が異なるかもしれない!とか言いながら開発してるのかな?
これとかは面白かったな
https://www.sophos.com/ja-jp/press-office/press-releases/2014/12/ns-browser-fingerprints-the-invisible-cookies-you-cant-delete.aspx
そのへんはウェブ屋がよくまとめてくれてるよ。
このCSSをONにしたら、アニメーションがGPU使ってる行われるので、適宜利用可能そうであれば取り込んでください、とかたまり来るな。
0382デフォルトの名無しさん
2016/09/05(月) 21:45:07.44ID:g6CwjeFOpdgを縮小とかって、どうやってやってるのでしょうか?
javascriptは関係ありますでしょうか?
https://smallpdf.com/jp
0383デフォルトの名無しさん
2016/09/05(月) 23:05:01.84ID:La2BdvKf{
0384デフォルトの名無しさん
2016/09/05(月) 23:10:26.66ID:La2BdvKfvoid func(int /*a*/)
{
....
}
void func(int a)
{
(void)a;
....
}
こんな風にしますが、JavaScriptだと定石みたいなのはありますか?
$('#element').on('mousedown', function(/*event*/) {
});
でよさそうな気がしますが、アロー関数の時は
$('#element').on('mousedown', /*event*/() => {
});
こんな風にしないとだめでかっこ悪いきがします。
0385デフォルトの名無しさん
2016/09/06(火) 00:15:41.30ID:vTB9MQXO未使用変数を必ず対処しないといけないということはない。
例えばイベントハンドラで引数にeventやeを取るのは「形」だ。
型宣言みたいなもんで、それを書いてあるからといって必ずしも
eventを利用しないことは皆知っている。
むしろその関数が別定義されていても、eventを受ける関数、
イベントハンドラの定義なんだと瞬時にわかるので意味がある。
つまりイベントハンドラとしてイベントを受け取るということだけで、
機能が満たされて意味的に「未使用」ではないとも見れる。
もしくは本当にイベントをトリガーとして関数を呼び出したいだけであれば、
引数を書かないでおくべき。
コメントアウトする文化はないのでけしてしてはいけない。
上で述べた引数をあえて書く、書かないは、関数の機能やニュアンスを表すための
弱い動的型付け言語における読み手に対する情報の追加だ。
しかしコメントアウトは書き手にとってのメタ的な情報でしか無い。
読み手に未使用変数の情報を伝えても何のプラスにもならないし、
何らかのニュアンスの提示かと思わせて混乱させるだけだ。
0386デフォルトの名無しさん
2016/09/06(火) 03:32:45.25ID:R2NwcGdU0387デフォルトの名無しさん
2016/09/06(火) 03:37:28.46ID:s5Bd4cPT使用してない変数なら書かなければいいだけ。
使わないのに引数を省略出来ないっていうのは
C言語特有の問題だ。C言語特有の問題を持ち込まないように
そんなに否定されるか不安なのか?
>>384
その定石は要はコンパイラが未使用変数だよ、と警告上げてくるから、使ってるフリするやつじゃないの?
長々誰かが説明してるけど、結論どっちでも良いよ。
書いても書かなくても。
0389デフォルトの名無しさん
2016/09/06(火) 09:41:59.19ID:KC/iVCReありがとうございます。
すみません、言葉足らずでしたが、>>388さんの通りC言語の
コンパイラの警告と同じような意味合いでの
eslintなどのunused-varsへの対処方法の相談でした。
引数消せばそれで良さそうとは思いましたが、それだと>>385さんの通り
eventとか意味を持った引数がわかりにくくなりそうなので、定石みたいなのはあるのかなと。
結論はどちらでも良いとのことで好きなようにやっておきます。
0390デフォルトの名無しさん
2016/09/06(火) 13:11:41.52ID:vTB9MQXO一番いいのはそういう警告は殆どOFFにするか、無視すること。
正直言って本当に厄介なバグは見つけてくれない気休め程度のもの。
気休めに気を使うことくらい馬鹿らしいことはないと思わないか?
どちらでもいいと言われてるのは書く/書かないであって、
コメントアウトは3つの選択肢の中では最低と思った方がいい。
0391デフォルトの名無しさん
2016/09/08(木) 07:45:15.23ID:O7PwNYbW現在対象にしているのが、WinJS。
timeoutなんてのが有って驚いた。
これだと非同期ロジックにシーケンス書ける。
0392デフォルトの名無しさん
2016/09/08(木) 14:31:46.31ID:OkMPKk85もしくはextendsしても良いが、やや大変で難しいと思う。
一応キャンセルの案は入るのでtimeoutとかは簡単に実装できるようにはなる。
CancelToken型になりそうなのがまたちょっとアレだが、まあ拡張としては最適なのだろう。
https://github.com/tc39/proposal-cancelable-promises/blob/master/Cancel%20Tokens.md
0393デフォルトの名無しさん
2016/09/08(木) 23:37:57.85ID:Vzj7Ghpg必然的にbabelを使うということである。
0394デフォルトの名無しさん
2016/09/08(木) 23:41:49.64ID:Vzj7Ghpgasync/awaitを使うと機能が増えるとは言ってない。
その話は言ったやつに聞け
0395デフォルトの名無しさん
2016/09/09(金) 00:04:44.99ID:4wEFuM4pブラウザの話だけでいうのもどうかと思うよ。
WinJSが出てくるのならNW.jsとかNode系V8系の環境の話も十分考えられる。
V8系ならフラグオンで使えるわけだからね。
というかすぐ、互換性が〜とか言い出したり、実務を必ず伴わせようとするのは悪い癖だと思う。
ここはESスレなんだし、仕様やAPIの宙に浮いた話だって良いじゃない。
web制作板だったら確かに互換性や実際に世のブラウザで動く話は無視できないかもしれないけれど、
ここはプログラム技術板なんだし、
JSはそれこそ自分用のブラウザ拡張機能を作るためだったりするのにも使えるわけだし、
別に実験や遊びとしてこういった技術を扱う前提であってもいいと思う。
0396デフォルトの名無しさん
2016/09/09(金) 16:45:04.06ID:dcApvFQ/var Sample = function() {
this.length = function() {
return 100;
}
};
Sample.length = function() {
return 100;
};
let sample = new Sample();
console.log(sample.length()); // これは OK
console.log(Sample.length()); // これは エラー
っていう動作になるのはこういう仕様でしょうか?
0397デフォルトの名無しさん
2016/09/09(金) 16:46:02.70ID:dcApvFQ/こちらです。
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());
0398デフォルトの名無しさん
2016/09/09(金) 17:42:46.36ID:mXWYcTT50399デフォルトの名無しさん
2016/09/09(金) 18:03:02.38ID:dcApvFQ/具体的には
VectorUtil.length = function(x, y, z) {
return Math.sqrt(x*x + y*y + z*z);
};
これがしたかったです
0400デフォルトの名無しさん
2016/09/09(金) 19:06:00.54ID:R/34hIbI0401デフォルトの名無しさん
2016/09/09(金) 19:15:39.77ID:4wEFuM4pclass構文を使えばできる。
class Sample {
static length() { return 100 }
}
Sample.length()
0402デフォルトの名無しさん
2016/09/09(金) 21:42:09.18ID:mcpsSWXB整理しやすいように画像掲載ページのタイトル等から名前をつけて保存しているのですが、どうにかしてクロスドメインの画像に対してもリネームさせられないものでしょうか?
iframeを利用するというのも試してみましたが、元ページ側のタイトル変数などを受け渡すことが出来ず挫折してしまいました
0403デフォルトの名無しさん
2016/09/09(金) 21:52:24.77ID:dcApvFQ/そういう仕様っぽいような気がしました。
なぜ上書きできないのか、わかってないですが。
>>401
なるほど、ありがとうございます。
classって糖衣構文だと思ってるんですが
内部的にはどうやってるのでしょう(調べてみます)
0404デフォルトの名無しさん
2016/09/09(金) 22:11:57.62ID:4wEFuM4p[[Writable]]: false だから
https://tc39.github.io/ecma262/#sec-functioninitialize
ただし[[Configurable]]: true なのでディスクリプタセット系メソッドで上書きはできる
>>内部的にはどうやってるのでしょう
コンストラクタが定義され、その時点では上記のようにlengthプロパティを持っているが、
その後PropertyDefinitionEvaluation→ディスクリプタセット系によって上書きされる
https://tc39.github.io/ecma262/#sec-runtime-semantics-classdefinitionevaluation
0405デフォルトの名無しさん
2016/09/09(金) 22:27:00.10ID:Ml2lLB3Nbabelで変換したらこうなったよ。
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;
}();
0406デフォルトの名無しさん
2016/09/09(金) 22:47:46.14ID:dcApvFQ/ありがとうございます。
勉強になりました。
0407デフォルトの名無しさん
2016/09/10(土) 11:41:02.99ID:bPnbAneWという夢を見た
0408デフォルトの名無しさん
2016/09/12(月) 00:16:46.01ID:MSYFEfr8あ
0409デフォルトの名無しさん
2016/09/14(水) 11:42:56.90ID:7fc5lKN8でページを読み込んだとき表示させたくない部分を隠せるのだけど
ブラウザで何回もリロードしていると隠れている部分が一瞬表示されることがあります
これを防ぐ方法あったら教えてください
0410デフォルトの名無しさん
2016/09/14(水) 11:55:36.48ID:T/00QwArどうしてonLoadにしているのかが分からない
最初からidの要素に対してやればいいのでは?
0411デフォルトの名無しさん
2016/09/14(水) 21:09:29.93ID:jzervOJ/表示に関することはCSSでやれ
0412デフォルトの名無しさん
2016/09/15(木) 04:07:08.15ID:3ffkfw2UそりゃonLoadで消す処理の前に描画処理が走ってしまうと表示されるだろうな
まずonLoad は画像等の外部リソースがすべて読み込まれるまで発火しないので、そういう場合どちらかと言えばDOMContentLoadedで呼ぶ方がいい
一瞬でも見せたくないならcssなど外部リソースへのリンクをすべて切った状態で表示されない状態であるべき
表示したい時にそのエレメントを作るまたは流し込む、あるいは非表示にしてあるものを必要に応じて表示にする方が好ましいと思う
0413デフォルトの名無しさん
2016/09/15(木) 05:14:15.52ID:ql+kvaik0414デフォルトの名無しさん
2016/09/15(木) 05:20:33.69ID:ql+kvaik漏れは、<head>内で、CSSを読み込ませて、
<body>の終了直前で、JS, jQuery, jQueryUI を読み込ませている
0415デフォルトの名無しさん
2016/09/15(木) 08:25:11.28ID:snQtI1AfJS有効/無効関わらず、適用させるべきなら静的に外部CSSを適用する
JS有効時のみ適用させるなら
1. JSで動的に外部CSSを挿入する
2. JSで動的にstyle要素を挿入する
3. JSで動的にdocument.styleSheetsを操作する
0416デフォルトの名無しさん
2016/09/15(木) 08:35:03.76ID:snQtI1Af+ JavaScript の質問用スレッド vol.122 + [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/tech/1472426483/
そもそも、このスレがvol.121の後継スレと銘打って立てるから、こういう勘違いした質問者が出てくるんだよな
「ECMAScript デス 6」として立てれば良かったものを…
0417デフォルトの名無しさん
2016/09/15(木) 16:12:55.70ID:3ffkfw2U外部CSSでやった場合、その外部CSSを取得するためのhttpリクエストがコケたり読み込みが遅れた場合CSSが解釈される前に表示されてしまうよ
よって絶対に(一瞬たりとも)表示したくないならば外部CSSで隠すのではダメ
最低でもインラインCSSで静的に非表示にしておく事が最低条件で、可能ならそれを表示する必要が生じるまでDOM要素が存在しない状態にしておくべき
0418デフォルトの名無しさん
2016/09/15(木) 18:33:18.76ID:tL4oMhKi> 外部CSSでやった場合、その外部CSSを取得するためのhttpリクエストがコケたり読み込みが遅れた場合CSSが解釈される前に表示されてしまうよ
link要素は基本同期読み込みだったと思うがな これ以上は該当スレでやってくれ
変な奴はどこにでもいるからスルーすればいいだけ
0419デフォルトの名無しさん
2016/09/16(金) 23:25:08.31ID:90O68WAbhttps://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対応とかコード変換にまつわることをサポートするツールになってるんだが、
対抗馬に鳴るだろうか?
0420デフォルトの名無しさん
2016/09/17(土) 08:30:02.95ID:0xe0k3r9無駄な長文引用は止めてほしいものだな
BabelとClosure Compilerは用途が異なるので競合にはならない
0421デフォルトの名無しさん
2016/09/17(土) 13:55:23.53ID:YjgX2ujU"use strict";
のどちらでも良いですか?
上級者の人はどちらを使いますか?
Javaが必要だった、と言うが、そんな事なんの問題でも無いと思う。
結局、どっちも、誰かの言う「良くないJavaScript」を「良いJavaScript」に変換するだけの存在。
0423デフォルトの名無しさん
2016/09/17(土) 15:18:00.80ID:530UZtkBシングルの方がシンプルなので好まれる
ただJSONを書くときとの整合性を考えるとダブルになる
0424デフォルトの名無しさん
2016/09/17(土) 17:33:41.59ID:YjgX2ujUJSONでシングルは使えないのですか?
0425デフォルトの名無しさん
2016/09/17(土) 17:43:37.89ID:5r5hyKhZそんなどうでもいいところの整合性なんて考えなくていい。
JSONとの整合性を保つ意味がない。
0426デフォルトの名無しさん
2016/09/18(日) 05:27:32.37ID:/bzuSpCVプログラミングには少なからず美的要素が含まれるから。
少なくともそういうところを考えず放って来た者は上級者ではない。
0427デフォルトの名無しさん
2016/09/18(日) 11:44:00.08ID:8zKQ5/pX意味がわからん。
JavaScriptとJSONは似ているが別の言語と考えるべき。
言語に応じた最適な書き方を求めるべきであって、
別の言語の習慣を持ち込むなって話なんだけど?
0428デフォルトの名無しさん
2016/09/18(日) 12:18:29.13ID:JCfSaSaVCobolみたいな表記が良いの?
0429デフォルトの名無しさん
2016/09/18(日) 12:26:41.43ID:Wkbj4nCn0430デフォルトの名無しさん
2016/09/18(日) 15:20:31.34ID:0+yFEvXA>ただJSONを書くときとの整合性を考えるとダブルになる
ただオブジェクト宣言時の表記との整合性を考えるとダブルになる
正直どうでもいいな
0431デフォルトの名無しさん
2016/09/18(日) 15:36:58.44ID:7fymcmTA0432デフォルトの名無しさん
2016/09/18(日) 15:45:54.06ID:8zKQ5/pX0433デフォルトの名無しさん
2016/09/18(日) 16:59:06.74ID:/bzuSpCVつまりそれはどっちでもいいと言うことだろう?
逆にどっちが良いかの理由を探すのならそういうことも理由になり得るということだ。
君がそういうことを理由としないというのは結構だが、
理由とする人がいることは認めないといけない
0434デフォルトの名無しさん
2016/09/18(日) 17:17:43.50ID:8zKQ5/pX統一する理由がないと言ったのは、JavaScriptと
JSONのクォートの使い方を統一する必要が無いという意味ね。
JavaScriptはJSONじゃないんだから。
だからJSONを持ち出してきた事自体をなかったことにしろということ。
どちらにするかは採用するコーディング規約に従えばいいだけ。
0435デフォルトの名無しさん
2016/09/18(日) 17:27:13.31ID:xD5NzQXyそれは理由になっている場合の理屈
君のそれが「正当な理由になってない」という事では?
0436デフォルトの名無しさん
2016/09/18(日) 17:41:30.85ID:xD5NzQXyJSONはJavaScriptの文法を真似ているだけのファイルフォーマットだからね
JSONとJavaScriptのクォートを統一するのはPHPとJavaScriptのクォートを統一するようなもの
0437デフォルトの名無しさん
2016/09/18(日) 17:45:59.39ID:xD5NzQXyHTML文書でシングルクォートを使っているなら統一性が生まれるけど、ダブルクォートを使っているならJSでは逆にシングルクォートを使った方が統一感があっていい
あまりないけど、サーバサイドスクリプトを介在してJSONをJavaScriptコードに埋め込む場合もシングルクォートを使っていた方が都合がよい
0438デフォルトの名無しさん
2016/09/18(日) 18:18:08.32ID:7fymcmTAb = '456";
前後のクォートが異なる ※整合性
a = "123";
b = '456';
a b のクォートが異なる※統一性
JavaScriptに対しての統一性だと言ったんだよ
整合性が保たれていないと動作しないだろw
0439デフォルトの名無しさん
2016/09/18(日) 18:58:00.12ID:/bzuSpCVまず、どっちで書いても機能的には変わらないということが大前提にあるよね
そうしたらもう気分とかそういう人間側の都合になってくるわけよ
例えばHTMLではダブルが使われる事が多いので、
実際に埋め込むことは滅多にないだろうし、今はテンプレートリテラルもあるけれど、
気分的にJSではシングルを使うとかね
逆にそういう事が理由でないという人が今どちらかを使っている理由を聞きたい
その日のサイコロで決めてるというのでなければ理由があるはずだ
例えば本に書いてあったとか、最初に習ったのがこっちだったとかね
自分はそういう理由も理由だと思うけれど、
まだ大前提のうちでは理屈として一般的で、まだマシに意味がある想像を述べることを推してるのよ
0440デフォルトの名無しさん
2016/09/18(日) 22:55:44.47ID:8zKQ5/pX> あまりないけど、サーバサイドスクリプトを介在してJSONをJavaScriptコードに埋め込む場合もシングルクォートを使っていた方が都合がよ
そんなことしてるならコードを見直したほうが良いよ。
普通はJavaScriptオブジェクトをJSONに変換する。
0441デフォルトの名無しさん
2016/09/18(日) 23:18:12.13ID:8mgjQq3kあなたのいう「認める」とは何?
端から見ればあなたがJSONとの統一性を気にしない人を「認めていない」のだが
0442デフォルトの名無しさん
2016/09/19(月) 05:07:37.39ID:io387Clnそもそもなぜ '' や "" で囲う必要があるのですか?
use strict;
ではダメな理由を教えていただけますでしょうか?
0443デフォルトの名無しさん
2016/09/19(月) 05:42:42.21ID:Rfn/Judiuse strictに対応してないブラウザでエラーが出るからだよ。
文字列にしておけば、古いブラウザでも単なる文字列があるだけ。
0444デフォルトの名無しさん
2016/09/19(月) 11:33:59.10ID:io387Clnありがとうございました。
長年の疑問が解消しました。
0445デフォルトの名無しさん
2016/09/20(火) 00:04:22.78ID:DlF8DRLCまた逆はありますか?
0446デフォルトの名無しさん
2016/09/20(火) 15:54:14.06ID:GpfqQSu0一行目そのまま検索しろよw
0447デフォルトの名無しさん
2016/09/21(水) 14:44:20.17ID:wW2qFR9f反省してる
0448デフォルトの名無しさん
2016/09/22(木) 17:06:35.53ID:zXBENXMk0449デフォルトの名無しさん
2016/09/23(金) 12:16:27.04ID:QcEXcfJB0450デフォルトの名無しさん
2016/09/23(金) 13:55:08.58ID:AF/DJJLc何の話?
0451デフォルトの名無しさん
2016/09/23(金) 22:25:12.59ID:MCHe7LJORubyとJSONで "" と '' のどっちを使うかという話だろう?
0452デフォルトの名無しさん
2016/09/23(金) 23:00:49.95ID:MCHe7LJOライブラリを使って(各言語の)オブジェクトとJSONの
相互変換をした方がいい。だからJSONが""でくくられてる
なんか忘れるべき。
ただテキストエディタのatomとかの設定ファイルや
package.jsonとかがJSONだったりするんだよな。
手書きは全部YAMLにすればいいのに。
0453デフォルトの名無しさん
2016/09/23(金) 23:18:21.05ID:oC1wKf1SJSONは"しか使えないから選択肢はないだろうに
>>452
> 正直JSONを手書きするのはやめたほうが良いよ。
同意、JSならJSON.stringifyで十分だな
0454デフォルトの名無しさん
2016/09/23(金) 23:27:17.39ID:Da0YgZYz手書きする事はあまり考えられてなかったんじゃねーの
0455デフォルトの名無しさん
2016/09/23(金) 23:30:53.64ID:laz5P8lZjsonに変換するツール書くかのか? w
0456デフォルトの名無しさん
2016/09/23(金) 23:35:07.87ID:aAYGOufH0457デフォルトの名無しさん
2016/09/23(金) 23:46:44.92ID:laz5P8lZじゃ【設定】はどこに書くんだよ w
0458デフォルトの名無しさん
2016/09/23(金) 23:51:52.39ID:2jAc0sADJSONを全部手書きしたらプロパティ名をクォートで括らなければならんし、面倒くさい
簡単なJSONの書き換えなら手入力するかもしれんが
0459デフォルトの名無しさん
2016/09/24(土) 00:04:59.40ID:y4/Y2YH6そんでもってa:1をa:2に書き換えたら、その都度そのプログラム実行するのか? 大爆笑
0460デフォルトの名無しさん
2016/09/24(土) 00:11:43.60ID:8/0tEXHbおまえは読解力が足りないアホなのか
数個だろうが何個あろうが、複数あるからシリアライズする価値がある
簡単な書き換えなら手入力するといってるだろ
0461デフォルトの名無しさん
2016/09/24(土) 00:18:30.72ID:y4/Y2YH6これに反すると
"a":1を"a":2に書き換えてa:1をa:2に書き換えるハメになる
バカしかやらんわ
0462デフォルトの名無しさん
2016/09/24(土) 02:14:00.16ID:bcRI8Hfyプログラムを実行も何も、ワンライナーじゃえの
var j=JSON.parse(fs.readFileSync(...));j.hoge=aaa;fs.writeFileSync(JSON.stringify..
0463デフォルトの名無しさん
2016/09/24(土) 06:05:18.86ID:54HKSWWZダイアログボックスのキャンセルはNullが返ってくるとあったのですが、何がいけないのでしょうか?
見入力でOKを押した場合と、キャンセルを押した場合とで違う処理をしたいと思っています。
0464デフォルトの名無しさん
2016/09/24(土) 08:35:07.11ID:8/0tEXHb>>462藻指摘してるが、JSON.parseしてからJSON.stringifyするだけだろ
2箇所を同時に書き換えなければならない、なんて思ってるのはお前だけ
0465デフォルトの名無しさん
2016/09/24(土) 09:16:15.32ID:y4/Y2YH6後出し大将現る
> JSON.stringify({a:1, b:2}); とか
0466デフォルトの名無しさん
2016/09/24(土) 10:00:58.09ID:T2jfomp1知らんけどブラウザ依存じゃない?
ttps://jsbin.com/tamofawite/edit?js,output
Chromeだと false だった
0467デフォルトの名無しさん
2016/09/24(土) 12:47:39.74ID:NUokNM1t元々はJSONを入力する時の話だったからJSON.stringifyを紹介した
お前さんが「JSONとオブジェクト初期化子の2箇所を同時に書き換えるのか」とアホな事をいってJSON読み込みの必要が出てきたからJSON.parseを紹介した
お前さんが何の設定する事を想定していてどのように編集しているのか、俺は知らん
俺から見れば情報を曖昧に出して後出ししたのはお前の方
0468デフォルトの名無しさん
2016/09/24(土) 12:51:25.63ID:NUokNM1tJSONの設定編集は当初の>>421の質問からは大きく話題がずれてる
JSONの設定に合わせてJavaScriptコードの入力スタイルを決める必然性はまるでない
君はそうなんだろうが、別の言語同士でクォートの記述を合わせる必要はないからな
GoogleのJavaScript Style Guideに合わせてシングルクォートを使う人もいるだろう
見た目を気にしてシングルクォートを使う人もいるだろう
HTMLで見慣れているダブルクォートを使う人がいるかもしれない
最終的には自分なりの好みや優先順位で決まるもので他人の考えを否定出来るほどの論理は基本的にない
0469デフォルトの名無しさん
2016/09/24(土) 12:58:58.18ID:YdAnVmLb0470デフォルトの名無しさん
2016/09/24(土) 13:04:04.59ID:y4/Y2YH6【設定ファイル】って知らないらしい
0471デフォルトの名無しさん
2016/09/24(土) 13:56:12.12ID:e4J3FKju何の設定ファイル?
JavaScriptには設定ファイルなんてないぞ。
0472デフォルトの名無しさん
2016/09/24(土) 14:33:05.17ID:y4/Y2YH60473デフォルトの名無しさん
2016/09/24(土) 15:28:20.96ID:e4J3FKju質問なのに揚げ足取りに鳴るわけ無いだろw
それで、何の設定ファイル?
0474デフォルトの名無しさん
2016/09/24(土) 17:56:14.37ID:y4/Y2YH6キミが知ってる【設定ファイル】を読み込むプログラムを記述してる言語を答えよ。そしてその記述言語の設定ファイルの有無も答えよ。
これに回答できたら教えてあげる
0475デフォルトの名無しさん
2016/09/24(土) 18:01:32.86ID:fVgLvkCDhttp://i.imgur.com/u6Rc0Au.jpg
自分がレスを返してる相手がレスを返す価値のある相手かよく考えろよ
0476デフォルトの名無しさん
2016/09/24(土) 18:32:49.67ID:fP/MPmfihttp://wedata.net/databases/autopagerize/items
0477デフォルトの名無しさん
2016/09/24(土) 20:38:30.75ID:6IMs83+UC言語。そしてC言語に設定ファイルなんてものはない。
0478デフォルトの名無しさん
2016/09/24(土) 20:43:52.34ID:y4/Y2YH6じゃ、教えてあげよう
atom
0479デフォルトの名無しさん
2016/09/24(土) 21:27:12.07ID:6IMs83+Uatomはテキストエディタ
0480デフォルトの名無しさん
2016/09/24(土) 21:37:31.21ID:y4/Y2YH6そうだよ。javascriptの設定ファイルなんて誰も言ってないのに
どっかのバカがこんな(>>471)マヌケな事言い出したから。ハア? だよ
>>471
>>>470
>何の設定ファイル?
>JavaScriptには設定ファイルなんてないぞ。
0481デフォルトの名無しさん
2016/09/24(土) 22:28:02.67ID:/TWDHHcN手書きも増えるし、要求されるかもしれない。
0482デフォルトの名無しさん
2016/09/24(土) 23:10:20.02ID:6IMs83+U意味がわからん。
atomの設定ファイルをJSONで書くからって
C言語などでJSONに合わせてコード書く必要ないだろ。
0483デフォルトの名無しさん
2016/09/24(土) 23:39:01.41ID:y4/Y2YH6それはキミがバカだからわからないんだよ
JSONで記述された設定ファイルの話をしていたら、どっかのバカが
>何の設定ファイル?
>JavaScriptには設定ファイルなんてないぞ。
と、絡んできただけ
0484デフォルトの名無しさん
2016/09/25(日) 00:39:56.37ID:0J+83ZC2だからJSONで記述された設定ファイルの話を
JavaScriptのスレでする意味ないだろって話なんだが?
0485デフォルトの名無しさん
2016/09/25(日) 05:34:54.46ID:y4/VuarS皆>>483が正しいって分かってるから
>>484は放っておこう
0486デフォルトの名無しさん
2016/09/25(日) 07:44:51.98ID:qiD59u34Atomの設定ファイルをテキストエディタで編集するのはcsonだと思うが、jsonを編集する事なんてあるのか?
改行もインデントもされてないjsonファイルを直接編集するのはいかれてるとしか思えないんだが
> 皆>>483が正しいって分かってるから
本人しか同意してないように読めるけどな
0487デフォルトの名無しさん
2016/09/25(日) 08:41:36.29ID:hrPU7kVwjQuery UI のダイアログでも使えば?
OK, Cancelの2つのボタンしか無いなら、
if(OK){ }
else { }
でいいだろ
戻り値が、NaN というのは、数値変換エラーだから、プログラムにバグがある
>>486
圧縮された、JSファイルでも、Edgeの開発者ツールなどで、きれいに整形して表示してくれる
0488デフォルトの名無しさん
2016/09/25(日) 09:50:51.04ID:KU3wtz+G>だからJSONで記述された設定ファイルの話を
>JavaScriptのスレでする意味ないだろって話なんだが?
足りない頭で必死に考えたんだろうが、バカ過ぎる
あるアプリの設定ファイルを設計したい、javascriptなのでJSONで行こうと思うが、
その際の注意点は…
全然問題ない
0489デフォルトの名無しさん
2016/09/25(日) 10:03:00.83ID:NgaD/H310490デフォルトの名無しさん
2016/09/25(日) 10:13:15.83ID:qiD59u34いや、「config.csonを編集することはあってもapplication.jsonを編集することはないんじゃない?」って事
テキストエディタの設定ファイルをテキストエディタで編集するなら、コメントやインデントをつけたくなるし、俺はAtomでJSONファイルを編集したことがない
> 圧縮された、JSファイルでも、Edgeの開発者ツールなどで、きれいに整形して表示してくれる
そういうツールがあるのは知ってる
JSONを整形するなら内部的にJSON.parseと同等機能を使っているはずだが、彼(>>465)はなぜか否定的というか馬鹿にしている感があるし、主張がちぐはぐすぎるんだよな…
0491デフォルトの名無しさん
2016/09/25(日) 10:27:53.21ID:qiD59u34インデントはできるが、コメントは使えない時点でテキストエディタで編集する気が起きない(Atomで膨大な設定用プロパティを全て覚えるのは無理)
どうしても必要な状況があれば「JSON エディタ」的な何かを使うだろうな
実際には>>476のように設定用UIを別に作っているケースが多いと思う
Atomはユーザが直接編集するものはCSONかCoffeeScriptを使い、プログラム側で生成するものはJSONを使っている
0492デフォルトの名無しさん
2016/09/25(日) 12:11:22.44ID:qud+/4QRゲームエンジン作ったときの話だけど
ユーザー側の設定用UIはボチボチ作るというかJSONにしないけど
そのエンジンの設定ファイルを書き出すためのツール作らないでしょ
バージョンアップの度にUI弄って書き出すのか?と言うことになるし
intファイルと同じく手編集もするものだと思うよ
で、コーディングと一緒に書いていくから、クォーテーションの整合性を気にするのも自然
0493デフォルトの名無しさん
2016/09/25(日) 12:22:42.62ID:iekzKwrbCSVをテキストエディタで編集しないのと同じ
0494デフォルトの名無しさん
2016/09/25(日) 12:24:56.98ID:iekzKwrbiniはコメントを許す仕様じゃなかったっけ
テキストエディタで編集する前提ならその設定行の意味するところをコメントで書くべきだと思うな
0495デフォルトの名無しさん
2016/09/25(日) 13:28:03.63ID:0J+83ZC2> あるアプリの設定ファイルを設計したい、javascriptなのでJSONで行こうと思うが、
別にJavaScriptだからってJSONを使う理由はないし
RubyだってJSONを使うことだってある。
っていうか、その理屈だとYAMLはいつ使うんだよ?w
YAMLみたいな言語はないぞ。
0496デフォルトの名無しさん
2016/09/25(日) 13:32:12.13ID:0J+83ZC2JavaScriptのコードは "" で括る必要はないね。
0497デフォルトの名無しさん
2016/09/25(日) 13:33:11.00ID:V/4I7o9uYAMLみたいな言語、がようわからんね。
Yaml ain't markup language
なんだから、言語ではないよ。
0498デフォルトの名無しさん
2016/09/25(日) 13:33:55.60ID:0J+83ZC2だから設定ファイルの流儀をソースコードに持ち込むなって話だよ。
atomの例で分かったろw
0499デフォルトの名無しさん
2016/09/25(日) 13:53:31.79ID:V/4I7o9uそりゃ変だよ。
パースできるものとソースの書式が同じでなんの問題も無いし、
存在意義とか目的によって、サブセットになるのは至極当然な気がするが。
0500デフォルトの名無しさん
2016/09/25(日) 13:56:15.35ID:6/nEO/uBコメントもあるし、""をキーに使わなくていいし、''を使う事も出来る
0501デフォルトの名無しさん
2016/09/25(日) 14:39:36.71ID:0J+83ZC2話がずれてる。同じだと問題があるなんて一言も言ってない。
同じにする必要はない。設定ファイルのことなんか忘れて
JavaScriptのやり方として良い方を選べって言ってる。
その例としてAtomを出したんだが?わからなかった?
Atomは設定ファイルにJSONを使っているが、
JSONが""だからって、ソースコードは""にする必要はない。
0502デフォルトの名無しさん
2016/09/25(日) 14:41:15.30ID:0J+83ZC2それはJSONの仕様を満たしていないから
JSONではない。
0503デフォルトの名無しさん
2016/09/25(日) 14:54:10.10ID:hrPU7kVwJSONでは、JSのコメントが使えないの?
それならダメだわ
Ruby, Groovy みたいに、言語そのものが、
設定ファイルとしても読める、DSL風の言語が優れている
0504デフォルトの名無しさん
2016/09/25(日) 15:05:45.98ID:0J+83ZC2お前「言語そのものが設定ファイル」の意味分かってないだろ。
言語そのものを設定ファイルとして読むっていうのならどの言語でも可能だよw
コンパイルしないと実行できない言語の場合は
コンパイラを内蔵する必要があるだろうけど。
0505デフォルトの名無しさん
2016/09/25(日) 15:36:47.03ID:y4/VuarS「必要はない」じゃないんだよ
「ない」という答えを出すのは簡単
元の質問に、「そんなのどっちでも関係ない、そんなこと聞くな」というのは簡単
でもそれじゃつまらないから、しいて言えばの理由をひねり出してるんでしょ
その前提分かってそういうこと言ってる??
しいて言えばそういうこと気にする人もいるということを言ってるの
別に一般的に気にする必要があるとは誰も言っていない
0506デフォルトの名無しさん
2016/09/25(日) 15:38:42.41ID:0J+83ZC2じゃあGoogleのコーディングスタイルに合わせて
'' を使うべきだっていうのが正確だよw
0507デフォルトの名無しさん
2016/09/25(日) 15:39:13.51ID:0J+83ZC2' ' (シングルクォート)でくくるべきだっていうのが正解だよ。
0508デフォルトの名無しさん
2016/09/25(日) 15:51:35.05ID:0J+83ZC2http://sideeffect.kr/popularconvention#javascript
理由がある場合は必然的に多く使われるし
理由がなくとも一般的なJavaScriptの書き方として統一しておいたほうが良い。
あともちろんJavaScriptとしての話なので、
ここで他の言語のルールを参考にする必要はまったくないw
0509デフォルトの名無しさん
2016/09/25(日) 15:59:27.55ID:0J+83ZC2・最後にカンマ 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 ダブルクォート → シングルクォート
0510デフォルトの名無しさん
2016/09/25(日) 16:00:55.47ID:rgw8PMteJSONはなぜ大文字なの?
0511デフォルトの名無しさん
2016/09/25(日) 17:02:28.76ID:+OU/FywJJavaScript Object Notationの略であり、英語ではこの様に単語の頭文字を抜き出した略語を他の語と区別するために大文字で表記する慣習があるから
0512デフォルトの名無しさん
2016/09/25(日) 17:17:23.26ID:0J+83ZC2そこから理解しろよw
JSONとJavaScriptは別物なんだから
JSONがダブルクォートだからって、
ソースコードまでJSONに合わせる必要ねーだろ。
文字列をくくるのはシングルクォートだし、
オブジェクトのキーであればそもそもクォートでくくらない。
0513デフォルトの名無しさん
2016/09/25(日) 17:20:48.99ID:iekzKwrbJSONではコメントを使えないのでAtomではテキストエディタで編集する前提のファイルにはCSONを使っている
上でJSON云々で暴れている人はJSONをまるで理解してしないと思われる
0514デフォルトの名無しさん
2016/09/25(日) 18:25:59.06ID:afVL0VXc尻カンマではなく頭改行カンマ派だと言うことはおいといて、
なぜその言語のサブセットか自体であるべきではないと言い切っちゃうんだろう。
最悪、パーサが無くても解釈出来るようにだと思うんだが。
0515デフォルトの名無しさん
2016/09/25(日) 18:34:17.91ID:KU3wtz+G頭悪いな
じゃpackage.jsonでも、なんでもいいぞ
atomを使ってないのは正解だ
0516デフォルトの名無しさん
2016/09/25(日) 20:12:32.35ID:0J+83ZC2ソースコードをみれば、何が言いたいのかわかるだろう。
https://github.com/npm/npm/blob/master/lib/completion.js
JSONの流儀に合わせるやつなんていない。
0517デフォルトの名無しさん
2016/09/25(日) 22:29:45.99ID:Pt+ww3lU彼は反論する度にボロが出てくるな
0518デフォルトの名無しさん
2016/09/26(月) 00:08:05.47ID:fnqveAbt0519デフォルトの名無しさん
2016/09/26(月) 00:15:10.40ID:juGwjv/D奴隷のようにって必要なくね?w
package.jsonは決められたパターンでしか
使わなくて済むようになってる。
だから手書きする必要もない。
OK?
0520デフォルトの名無しさん
2016/09/26(月) 00:17:22.71ID:fnqveAbt0521デフォルトの名無しさん
2016/09/26(月) 00:23:18.72ID:vYe4FNCy0522デフォルトの名無しさん
2016/09/26(月) 00:32:59.19ID:juGwjv/Dソースコードはダブルクォートじゃなくて
シングルクォートを使ってるんだよ。
そしてオブジェクトのキーはダブルクォートでくくらない。
これがJavaScriptの標準的なコーディングスタイルなんだよね。
JSON? 関係ない話だね。
0523デフォルトの名無しさん
2016/09/26(月) 05:04:27.74ID:ta1cG+2z気になる人も居るだろうということを否定することはできない
0524デフォルトの名無しさん
2016/09/26(月) 18:00:26.14ID:BmhEYJ2V定義リストをforで回したいです
0525デフォルトの名無しさん
2016/09/26(月) 22:08:18.59ID:vSvkRnqZang2とは?
状況は詳しく具体的に
0526デフォルトの名無しさん
2016/09/26(月) 22:38:26.95ID:juGwjv/D0527デフォルトの名無しさん
2016/09/26(月) 22:44:16.17ID:xBbiKNTT[a,b,c].forEach((x)=>{
//?
});
コメントの部分にawait書いても当然エラー
(x)=>{の前にasync書いても並列で処理されるだけ
aを使った非同期処理が完了したらbを使った非同期処理を開始したい
なおforや再帰は使わないものとする
0528デフォルトの名無しさん
2016/09/26(月) 23:41:32.26ID:juGwjv/Dあんたが言ってる「非同期」の正確な意味は?
JavaScriptはシングルスレッドだから並列に処理することは出来ない。
昔も今もそれは同じ。
スレッドを使うにはJavaScript外の機能を使うしかない。
つまりはブラウザではDOM APIの内部で使われてるスレッドを間接的に使うか
もう少し明確にスレッドを使っていることを明言しているWebWorkersを使うということ。
Promise(await/async)を使うだけならばシングルスレッドでもできる。
どういう意味で「非同期」と言っているか、本当にやりたいことは何かを言ってくれ。
0529デフォルトの名無しさん
2016/09/26(月) 23:55:09.05ID:xBbiKNTTたとえば以下で'a'を表示したら1秒待って'b'を表示させる(以下'c'も同様)にはどうすればいい?
forや再帰は無しで
['a','b','c'].forEach((x)=>{
new Promise(resolve=>{
setTimeout(()=>{
console.log(x);
resolve();
}, 1000);
});
});
setTimeoutはapiだからスレチ?
0530デフォルトの名無しさん
2016/09/27(火) 00:26:52.16ID:2eVdEzmX0531デフォルトの名無しさん
2016/09/27(火) 09:19:03.59ID:lbwP9zfeawait ['a','b','c'].eachA( async関数 )
のように書けるようにする必要がある
折角のasync関数なのにPromiseをこねくり回す位なら
for文使ったほうが絶対に良い
0532デフォルトの名無しさん
2016/09/27(火) 09:33:31.51ID:Bz+GHRpvだよな、基礎知識の欠落
0533デフォルトの名無しさん
2016/09/27(火) 10:20:45.69ID:4v6Nawqj言ってることがめちゃくちゃですがな。
並列・平行、同期・非同期についてもっと調べてからものを言ってくれ。
0534デフォルトの名無しさん
2016/09/27(火) 10:49:37.22ID:5SWTtAlN0535デフォルトの名無しさん
2016/09/27(火) 11:02:56.83ID:+FylPIivWatch dogタイマー知っている?
あれなんか、簡単な例だと思うよ。
0536デフォルトの名無しさん
2016/09/27(火) 12:31:43.94ID:r4YBGm4y>>530の解決を見ると例にもならないな
0537デフォルトの名無しさん
2016/09/27(火) 12:41:12.30ID:+FylPIiv? 配列要素処理のお話の事なの??
前からお話していた、非同期処理の周期タイマー利用のお話だと思ったけど。
配列要素処理なんだから、mapやreduce使えば済むんだもんね。
タイマーなんか関係ないわ。
0538デフォルトの名無しさん
2016/09/27(火) 12:49:21.75ID:BPXrtVfkJSはシングルスレッドだから、イベントを非同期に見せかける。
イベントキューにイベントを投入して、その処理を待たずに、関数が先にリターンする
同期処理なら、インターネットとの通信など、
そのイベントが終了するまで、関数がリターンされない。
処理終了まで待つから、そこで処理が止まる
ちなみに、setTimeoutに、0を指定しても、イベントキューからイベントを取り出すのは、
次のサイクルになるので、最低でも、4msかかる
また非同期では、try-catch は使えないので、
昔ながらの戻り値で、エラーかどうかを判断する
つまり、イベントキューにイベントを投入するだけなので、
処理がそこで止まっていないので、すぐ次の処理へ進んでいくから
そしてどこかのタイミングで、イベントのコールバック関数が呼ばれるから、
どちらが先に呼ばれるか、タイミングが予測できないから、
よくバグるし、再現性がないので、非常に困る
0539デフォルトの名無しさん
2016/09/27(火) 13:25:00.83ID:QIjlBim5setTimeoutはまあ非同期処理のダミーだとして回答すると、Promiseをプレースホルダーとしてthenでチェーンをつないでいけばいいので以下の様になる。
var promise=Promise.resolve();
['a','b','c'].forEach((x)=>{
promise=promise.then(()=>{
new Promise((resolve,reject)=>{
setTimeout(()=>{
console.log(x);
resolve();
}, 1000);
});
});
});
0540デフォルトの名無しさん
2016/09/27(火) 20:48:56.77ID:pg5DZ73n質問者とは意思疎通できたから
君とは話さなくていいかなって思ってるよw
0541デフォルトの名無しさん
2016/09/28(水) 08:12:30.32ID:zSRNZ6Juそりゃ単に、語弊があったり正しいとは限らない言い方をしている事に自分が気づいてないのに加えて、飛んでくるマサカリ避けて終わりな、
とても低レベルな偽技術者ですってドヤ顔されてる気分。
0542デフォルトの名無しさん
2016/09/28(水) 12:21:35.90ID:3RTmt4Yz0543デフォルトの名無しさん
2016/09/28(水) 12:49:31.69ID:RDlboUCAの設定をサーバーでしているのに、クロスドメイン制約でアクセス出来ません
chromeです
networkタブを見たら、アクセス自体が行われていないので、ヘッダの確認も出来ていないはずです
0544デフォルトの名無しさん
2016/09/28(水) 21:34:41.98ID:NVy1RbGE> 何かを理解したい、何かの知識が無い人間とだけ意思疎通できるってみっともないと気づかんのかねぇ。
何を言ってるんだ?
今回意思疎通をしたいのは質問者であってお前じゃない。
知識がない人と意思疎通をするんじゃなくて
質問者と意思疎通をするのが目的。
そもそも俺は質問者が知識がないとはは思わないし、
お前、失礼なやつだな。失礼なだけのやつだな。
0545デフォルトの名無しさん
2016/09/28(水) 22:27:51.60ID:EXLHhJLL「何かを理解したい」と「何かの知識が無い」は=じゃなくて、「または」だよ。
失礼と言うなら、「俺が『何かを理解したい人間は何かの知識が無い人間だ』と誤解しているに違いない」と言う発想自体が失礼だと思うけど。
お前がやってんのは、Excelの使い方が分からん人の「A列で3番目に大きい数字が欲しいんだけどどんな関数ある?」って質問に、嬉々としてIFとかRANKの使い方説明してるようなもの。
パソコンの大先生以外の何なのかわからんレベル。
何で?→それ以上の数字を更に検索したいんだよ→めんどくさいし使い捨てならA列コピって並べ替えちゃえば良いじゃん
があって然るべき。
0546デフォルトの名無しさん
2016/09/29(木) 02:37:58.14ID:kaW1Iqgzここは似非回答者が知識をひけらかす場所だからね
けして人助けするスレではない
そこんとこ勘違いしないように!
0547デフォルトの名無しさん
2016/09/29(木) 18:44:44.84ID:KUMvFnA4babel君のオナニースレだからねえ。
0548デフォルトの名無しさん
2016/10/04(火) 11:14:52.40ID:R4xZGg72それをクライアントのJSに渡してオブジェクトに復元したいのです。
JSON文字列のままJSに渡してJSでJSON.parse()する方法と、
サーバーサイドでDeserializeしてオブジェクトを復元して、
それをJSに渡すのと
どっちが普通ですか?文字列の大きさは数メガバイトくらいです。
0549デフォルトの名無しさん
2016/10/04(火) 12:19:52.18ID:Vg4EUv8sJSでJSON.parse()が普通
通信路は負荷が無いならなるべくテキストでな
0550デフォルトの名無しさん
2016/10/04(火) 18:21:44.79ID:RzipCig6<TABLE border="1">
<TR>
<TD>1行目:</TD><TD>aaaaaa</TD>
</TR>
<TR id="disp">
<TD>2行目:</TD><TD>nnnnnn</TD>
</TR>
</TABLE>
0551デフォルトの名無しさん
2016/10/04(火) 18:22:25.04ID:RzipCig6var 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行目を表示させるとテーブルが崩れてしまいます
テーブルが崩れないようにするにはどうしたらいいんですか?
0552デフォルトの名無しさん
2016/10/04(火) 19:59:17.28ID:oFIFwTqQif(disp_zyoutai=="none"){disp_zyoutai = "table-row";}
0553デフォルトの名無しさん
2016/10/04(火) 21:56:34.90ID:px5zXLdsfunction Disp_on_off(id) {
var style = document.getElementById(id).style;
style.display = (style.display === "none") ? "table-row" : "none";
}
0554デフォルトの名無しさん
2016/10/04(火) 21:56:43.31ID:RzipCig6ありがとう^^
それではcssでdisplay:none;したものをjavascriptでdisplay="block";
しようとしても表示されませんcssでnoneしたら表示は無理なんでしょうか?
0555デフォルトの名無しさん
2016/10/04(火) 22:00:08.07ID:px5zXLdsvar style = document.getElementById(id).style;
style.display = {none: "table-row"}[style.display] || "none";
}
0556デフォルトの名無しさん
2016/10/04(火) 22:01:54.54ID:px5zXLdsCSSを使って表示の制御をするのはいいやり方だ。
CSSを使って表示の制御をするなら、CSSを使って切り替えれば良いのだ
0557デフォルトの名無しさん
2016/10/04(火) 22:10:22.18ID:px5zXLds<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");
}
0558デフォルトの名無しさん
2016/10/05(水) 02:32:23.82ID:ei6gN13Wレスありがとうございました。
>JSでJSON.parse()が普通
そうですか。知らなかったです。
>通信路は負荷が無いならなるべくテキストでな
ちなみに、テキスト以外でデータを送ると問題が出る場合がありますか?
0559デフォルトの名無しさん
2016/10/05(水) 05:46:49.56ID:R0YCD/KeWSでバイナリ形式オブジェクトで送るの?
0560デフォルトの名無しさん
2016/10/05(水) 19:44:50.64ID:v4W0ZcSsパケット見ながらデバッグしてるときに涙が出る程度だよ
0561デフォルトの名無しさん
2016/10/05(水) 20:03:03.59ID:ei6gN13Wそんなデバッグが出来るのかあ?
0562デフォルトの名無しさん
2016/10/07(金) 11:00:25.76ID:NhgFAWyYJust do it!
0563デフォルトの名無しさん
2016/10/09(日) 00:31:57.19ID:jFWGfuylError: (SystemJS) Can't resolve all parameters for ActivatedRoute: (?, ?, ?, ?, ?, ?, ?, ?).
と出ます。どうすればいいでしょうか?
0564デフォルトの名無しさん
2016/10/10(月) 00:56:23.62ID:tytyuWsD0565デフォルトの名無しさん
2016/10/10(月) 01:00:02.76ID:tytyuWsDとりあえずRegExp.testつかってやろうとおもったんですけどページの内容をどうやれば検索対象ストリングにいれればいいのかわかりません。
他にももっとスマートな方法あったら教えてください。
0566デフォルトの名無しさん
2016/10/10(月) 02:26:33.91ID:6bVjh2uR「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> 以下を取得すればいい
0567デフォルトの名無しさん
2016/10/10(月) 11:38:06.31ID:UL1Nitj4ありがとうございます
出来ました
0568デフォルトの名無しさん
2016/10/10(月) 12:14:26.53ID:ToNMYAzuあなたは>>563?
それとも>>564?
0569デフォルトの名無しさん
2016/10/10(月) 13:26:43.29ID:UL1Nitj40570デフォルトの名無しさん
2016/10/10(月) 14:12:18.24ID:tytyuWsDわてもできたよ。
リンクまではっていただきありがとうございます。
ちなみに[0]はなにですか?
リンク先にも書いてなかったし、なくても出来きたけど。
0571デフォルトの名無しさん
2016/10/10(月) 18:59:33.24ID:Fn778QpQなんで猿なんだよ?
0572デフォルトの名無しさん
2016/10/10(月) 21:04:02.56ID:tytyuWsDよくわかりません。
さるつまりGreaseMonkey以外に使える方法があるということですか?
0573デフォルトの名無しさん
2016/10/10(月) 21:27:42.34ID:c135JfrFgetElementsByTagNameは疑似配列を返す
[0]がなかったら動かないはずだ
0574デフォルトの名無しさん
2016/10/11(火) 05:55:53.39ID:GK6S8De20575デフォルトの名無しさん
2016/10/11(火) 22:11:58.12ID:Ld7sCMibというか、<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だったらどうすんのって理由もある。
0576デフォルトの名無しさん
2016/10/12(水) 00:01:01.78ID:bJD9Q0hO書く必要が無いからでは?
毎回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) });
0577デフォルトの名無しさん
2016/10/12(水) 00:14:50.40ID:bJD9Q0hO$('#E').each(function() { console.log(this.id) });
0578デフォルトの名無しさん
2016/10/12(水) 02:21:42.25ID:7Aphq+NE他人のパソコンでは実行できないようにしたいのですが、
そんな事可能でしょうか?
0579デフォルトの名無しさん
2016/10/12(水) 05:13:14.63ID:jhqwQTsX認証性にして自アカウントでログインしなければsctipt要素を出力しなければいい
0580デフォルトの名無しさん
2016/10/12(水) 08:42:49.25ID:L1c8TvqFあなたがお勧めする手法はgetElementsByTagNameでも使えるのでgetElementsByTagNameを使わない理由にはならない
違いを説明するならliveに言及すべきたが、liveは設計思想次第で利便性が逆転する部分なのでどちらか優れているという話でもない
ただし、同一tagNameの要素ノード群を得るなら基本的にはgetElementsByTagNameの方が優れているだろう
https://html5experts.jp/yoshikawa_t/1932/
0581デフォルトの名無しさん
2016/10/12(水) 20:38:12.37ID:ao75rK/8NodeListはイテラブルではないので[...hoge]は使えないし、
Array.fromを使うんなら、forEachを使う必要がない。
やり直し。
0582デフォルトの名無しさん
2016/10/12(水) 22:33:54.70ID:bJD9Q0hOレスする相手間違えてるぞw
俺の答えは「jQuery使えば普通にeachが使えて古いブラウザでも動いて短く書ける」だ
$('#E').each(function() { console.log(e.id) });
0583デフォルトの名無しさん
2016/10/15(土) 05:07:47.47ID:lTqPwJwr普通の配列はforEachを使ってるのに、要素配列はeachを使わないといけないのは不便でおかしいから。
jQueryのまずいところの一つはライブラリと言いながら重厚でフレームワークのよう。
一つ使い始めたらその世界全てを受け入れるしか無い。それがまた最新の標準から見て古臭いという点。
つまり機能の補足としてeach的なのが使いたいだけならjQueryを持ってくるのはアホだし、
もっと全体を考えるなら、jQueryよりよっぽど標準と親和性の高いまともなフレームワークを使ったほうが良い。
0584デフォルトの名無しさん
2016/10/15(土) 08:49:38.99ID:WUtYR0l7それは自己妄想だろ?w
0585デフォルトの名無しさん
2016/10/15(土) 10:59:50.26ID:8Bk/hmGMん? どこが?
フレームワークというのは、フレームワークから決まった関数が呼ばれるから
その中身を書くもの。ライブラリは用意された関数を呼び出すもの。
どう見てもライブラリなんだが。DOM操作の代わりでしか無い。
0586デフォルトの名無しさん
2016/10/16(日) 20:58:57.45ID:LWTFfjDfクロージャで躓いています。
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; は実行されないのですか?
0587デフォルトの名無しさん
2016/10/16(日) 21:05:46.88ID:jbRBUkYK仕様です
0588デフォルトの名無しさん
2016/10/16(日) 21:07:45.08ID:cgLhTvvHaの中に何が入っているか、書き出してみてごらん
0589デフォルトの名無しさん
2016/10/16(日) 21:21:34.20ID:LWTFfjDf書き出してみるには、どうすればいいのでしょうか?
0590デフォルトの名無しさん
2016/10/16(日) 21:27:41.70ID:cgLhTvvH手で
0591デフォルトの名無しさん
2016/10/16(日) 21:33:14.24ID:r3gdRhV6a()は
function () {
return ++n;
};
でしょ
n = 0は実行されてない
0592デフォルトの名無しさん
2016/10/16(日) 21:34:44.24ID:LWTFfjDf手? こういうことですか?
a() {
var n = 0;
return function () {
return ++n;
};
0593デフォルトの名無しさん
2016/10/16(日) 21:36:43.79ID:CBxMhCnRn = 0は一番最初に起動したときに
初期設定として入力されるだけで、あとはこれは呼び出されません
0594デフォルトの名無しさん
2016/10/16(日) 21:42:13.57ID:LWTFfjDfなぜ返り値だけになるのですか?
var n = 0; も一緒じゃないんですか?
0595デフォルトの名無しさん
2016/10/16(日) 21:42:56.22ID:UhSHekdNconsole.logかFunction#toString
0596デフォルトの名無しさん
2016/10/16(日) 21:44:43.73ID:LWTFfjDf「一番最初に起動したとき」というのは、
a(); // 1
のときでしょうか?
0597デフォルトの名無しさん
2016/10/16(日) 21:57:12.53ID:LWTFfjDfそれはどうやればいいのでしょうか?
参考書を読んでいるだけなので、デバッグの仕方もよく分かりません。
0598デフォルトの名無しさん
2016/10/16(日) 21:57:36.43ID:cgLhTvvHvar n = 0;
return n;
}
var a = Counter();
この場合にaの中に何が入っているかわかるのなら、
>>586でaの中に何が入ってるかは
置き換えるだけだろ
0599デフォルトの名無しさん
2016/10/16(日) 21:58:23.73ID:cgLhTvvH>>598で返り値だけになるのなんて当たり前だよね?
0600デフォルトの名無しさん
2016/10/16(日) 22:04:46.53ID:LWTFfjDfaの中には、
var n = 0;
return n;
が入ってるのではないのですか?
なぜ、n = 0; は省かれるのですか?
0601デフォルトの名無しさん
2016/10/16(日) 22:12:37.29ID:LWTFfjDf間違えました。
aには返り値が入ります。なので、>>598の場合は、aにはnが入って、つまり返り値だけになるのは分かります。
しかし、a(); の場合は、
var n = 0;
return n;
なぜ、こうならないのかが分かりません。
0602デフォルトの名無しさん
2016/10/16(日) 22:21:40.38ID:22TTvDK/JS以前からある思想を踏襲してるんじゃない?
Pythonかなんか知らんけどお
0603デフォルトの名無しさん
2016/10/16(日) 22:26:43.07ID:r3gdRhV6>なぜ返り値だけになるのですか?
キミがCounter()をそのように作ったから
>var n = 0; も一緒じゃないんですか?
return function() {return n++;}
のどこにn=0がある?
0604デフォルトの名無しさん
2016/10/16(日) 22:32:07.26ID:LWTFfjDfオブジェクトのコピーと混同してました。
var a = Counter();
確かにこれで、var n = 0; は入らないですね。返り値を代入しているだけだから。
すなわち、aには返り値の無名関数が入ると。
で、当然、a();には n = 0 は入ってなくて無名関数だけだから、呼ぶ度に加算される。
0605デフォルトの名無しさん
2016/10/16(日) 22:33:40.23ID:LWTFfjDf今になって思えば、まさしくその通りです(笑)
0606デフォルトの名無しさん
2016/10/16(日) 22:35:45.09ID:LWTFfjDf何度もよく読み返してみて自分の誤解に気づきました。
ありがとうございます。
0607デフォルトの名無しさん
2016/10/16(日) 22:57:07.10ID:cgLhTvvHaの中身は表示されるよ。
0608デフォルトの名無しさん
2016/10/16(日) 23:27:01.47ID:LWTFfjDf出ました。これが!
function () {
return ++n;
}
よーし、明日からまた頑張るぞ!
0609デフォルトの名無しさん
2016/10/17(月) 09:44:12.70ID:JGocT82Eいや、nじゃなくてaを考えろよ
0610デフォルトの名無しさん
2016/10/17(月) 10:02:05.92ID:5vFd9dbv周回遅れってわかってる?
0611デフォルトの名無しさん
2016/10/17(月) 10:35:49.18ID:SVcsoL0Rこれに何の意味、活用性があるのか?
小一時間問い詰めたい
0612デフォルトの名無しさん
2016/10/17(月) 11:35:06.10ID:5vFd9dbvキミは周回遅れ以前、出場資格ない
0613デフォルトの名無しさん
2016/10/17(月) 11:44:08.56ID:EnKnOK0gベーシックしか知らない方ですか?
0614デフォルトの名無しさん
2016/10/17(月) 12:15:27.10ID:k5b8iytR「インクリメントした値を返す意味がある」としか答えようがないな
リファレンスを読み直しておいで
0615デフォルトの名無しさん
2016/10/17(月) 19:20:09.73ID:wBVSlf54馬鹿は口を閉じてろよザッコww
何仕切ってんだこのヴァカがw
0616デフォルトの名無しさん
2016/10/17(月) 19:49:26.05ID:5vFd9dbv0617デフォルトの名無しさん
2016/10/17(月) 20:08:48.29ID:wBVSlf54馬鹿は口を閉じてろww
0618デフォルトの名無しさん
2016/10/17(月) 22:12:14.86ID:MSv6dw6i現実的にこんな処理が必要になる状況ってあるの?
0619デフォルトの名無しさん
2016/10/17(月) 22:21:09.76ID:xorYyxjjconsole.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のみに変換するしかないのでしょうか?
0620デフォルトの名無しさん
2016/10/17(月) 22:29:29.43ID:xorYyxjj訂正
1の前と、2の前と、2つ目の\nの後ろにマッチしてほしいが
補足
もう少しわかりやすく書くと、以下のようになってしまうのを修正したいです
result = "1\r\n2\r\n".replace(/^/mg, "!");
^1^
^2^
^
result = "1\r\n2\r\n".replace(/$/mg, "$");
1$$
2$$
$
0621デフォルトの名無しさん
2016/10/17(月) 22:49:51.36ID:5vFd9dbvお前、口開けてキーボード叩いてるのか?
知恵遅れの習性は謎だらけだ
0622デフォルトの名無しさん
2016/10/17(月) 23:36:27.61ID:Da5IbuDC0623デフォルトの名無しさん
2016/10/18(火) 01:13:52.49ID:sMICGAt6>1\r\n2\r\n
>1の前と、2の前と、2つ目の\nの後ろに、マッチしてほしい
1の前・2の前は、行頭だろ。
2つ目の\nの後ろは、全文字列の最後
2つに分けて考える。
それか、全文字列の最後は無視して、正規表現とは別に処理にする
0624デフォルトの名無しさん
2016/10/18(火) 01:35:52.87ID:g5oHSCaR「最後の\nの前」は「\rと\nの間」
1と2は「\nの後ろ」だったのに最後だけなぜ「\nの前」になるのだろうか?
0625デフォルトの名無しさん
2016/10/18(火) 03:24:17.45ID:sMICGAt6>1の前と、2の前と、最後の\nの前にマッチしてほしい
>>620
で訂正している
>1の前と、2の前と、2つ目の\nの後ろにマッチしてほしい
0626デフォルトの名無しさん
2016/10/18(火) 08:02:45.99ID:De2Roj8eちょいちょいあるんじゃない?
>>625
/m消して、\n探しちゃいかんの?
0627デフォルトの名無しさん
2016/10/18(火) 09:15:43.00ID:Vsk5WAhm>618
ドンな時?
0628デフォルトの名無しさん
2016/10/18(火) 09:38:02.36ID:cWVmYcdeサンプルのコードは単純だけど、たとえばリターンに記述されている
”++n”を三項演算子に書き換えて、上限値に来たらリセットする
ループカウンターにする。
あとは、解析を困難にする為の無駄なコードとして扱う。
サンプルの処理が単純だけど、少し手を加えれば、どの様にでも使える。
0629デフォルトの名無しさん
2016/10/18(火) 11:46:33.12ID:g5oHSCaR0630デフォルトの名無しさん
2016/10/18(火) 11:53:07.40ID:De2Roj8eモジュールの中全体で一意な番号が欲しいとき。
シングルスレッドが保証されてるので、正確にはインクリメント演算子は必要無いけど。
>>628
3項演算子もifも、比較文が必要でミスヒットすると悲しいから、Moduloの方が楽だと思う。
0631628
2016/10/18(火) 12:16:45.66ID:cWVmYcde>モジュールの中全体で一意な番号が欲しいとき。
”一意な番号”と云うと固定のenum宣言が頭に有ったけど
番号をmap管理すれば色々と使えますね。
なるほど。
>3項演算子もifも、比較文が必要でミスヒットすると悲しいから、Moduloの方が楽だと思う。
モジュールもある程度意味を持たせなければいけない考えなモノで
分岐処理も例に上げました。
0632デフォルトの名無しさん
2016/10/18(火) 16:19:34.97ID:Vk/gbf1F低速低容量で使いたいので。
古いの(低解像度)
http://hakobe932.hatenablog.com/entry/20060803/1154575478
http://chameleoncyber.org/?p=335
http://www.kototoka.com/entry/2014/08/11/kishoutyou-nowcast-tenki-yohou-gerira-gouu-yosoku-highresorad/
・・・
標準のやつでもいいかな
0633デフォルトの名無しさん
2016/10/19(水) 17:30:13.76ID:BuiU+rAj自作したら?
ES関係ないのでスレ違い
0634デフォルトの名無しさん
2016/10/26(水) 19:54:01.06ID:wme53G2uvar a={b:function (){}};
ってあった場合どんなふうにインデントするのがいいんですかね。
0635デフォルトの名無しさん
2016/10/26(水) 22:19:57.91ID:RGR5F2yC0636デフォルトの名無しさん
2016/10/26(水) 22:49:40.05ID:wme53G2u0637デフォルトの名無しさん
2016/10/26(水) 22:58:30.79ID:nn4J9Ce2var a = {
b:function (){
alert(“おまえは💩”);
}
};
0638デフォルトの名無しさん
2016/10/26(水) 23:02:07.76ID:bmG2AFzyb:function (){
}
};
0639デフォルトの名無しさん
2016/10/26(水) 23:23:52.60ID:Tc/AxpVE> ってあった場合どんなふうにインデントするのがいいんですかね。
インデントじゃなくてスペースの入れ方だろ?
採用するコーディングスタイル基準による。
こういうのはちゃんとチェックするツールが有って、今だとeslintっていうのが有名。
eslintではスタイルを選ぶことができるが(さらに独自でカスタマイズもできる)
その中で有名なのが、eslint:recommended と airbnb だろう。
eslint:recommended は比較的緩くてその書き方でも問題ない。
airbnbの場合は、var a = { b: function () {} };
(実際は const a = { b() {} }; を推奨される)
改行入れる場合はこうだな。
var a = {
b: function () {}
,
};
あと必ず { の後で改行入れろとか言ってるやつがいるけど、
最近はそれを採用している規約は少ない気がする。
スペースの有無は決まってることが多いけど、
改行の有無は、長ければ改行を入れるという決まりでいいだろう。
もちろん { で改行した場合はインデントを一つ増やす。
0640デフォルトの名無しさん
2016/10/26(水) 23:24:20.49ID:Tc/AxpVE改行入れる場合はこうだな。
var a = {
b: function () {},
};
0641デフォルトの名無しさん
2016/10/26(水) 23:32:21.50ID:RGR5F2yC別に何でもええんやで
0643デフォルトの名無しさん
2016/10/27(木) 00:43:35.94ID:wk+FybyZ著名なソース読んでも、機械的には入れてない気がしてたんだ。
にしても無名関数が読み慣れん。
0644デフォルトの名無しさん
2016/10/27(木) 00:50:40.68ID:WMnZ+0YuF12開発者ツールで、JSファイルを整形して開くだけでも、正しく直してくれないか?
0645デフォルトの名無しさん
2016/10/28(金) 12:59:15.72ID:pmKmGehb0.1を0
0.5を1
Math.ceilだと1以上ないとだめでした
0646デフォルトの名無しさん
2016/10/28(金) 13:34:11.62ID:dnmvvXjVMath.ceil()は繰り上げ、四捨五入ならMath.round()
0647デフォルトの名無しさん
2016/10/28(金) 13:47:06.25ID:OnyL+paEそんなめんどくさい事しなくても、0.5足してfloorでいいんじゃないの?
0648デフォルトの名無しさん
2016/10/29(土) 05:43:28.19ID:gGx5G/bS少しずれたりしないの?
0649デフォルトの名無しさん
2016/10/29(土) 12:07:08.55ID:yHYEAqhD0,5未満なら0,5を足して四捨五入して
0.5以上ならそのまま四捨五入したらいいじゃん
0650デフォルトの名無しさん
2016/10/29(土) 12:17:53.47ID:cEJXxPE7ズレなくて、切りが良い。
0651デフォルトの名無しさん
2016/10/29(土) 14:11:06.80ID:ypb3Na8rずれたんだけど
alert(0.49999999999999999+0.5); // 1
0652デフォルトの名無しさん
2016/10/29(土) 14:47:07.98ID:z8URZLObalert(0.49999999999999999); // 0.5
問題外
0653デフォルトの名無しさん
2016/10/29(土) 15:25:53.31ID:cEJXxPE7jsfiddle.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を足して小数部分を捨てれば良い。
0654デフォルトの名無しさん
2016/10/29(土) 18:07:27.02ID:O/3wAc5r0655デフォルトの名無しさん
2016/10/29(土) 18:16:09.69ID:P+i+TDJ5マイナスの時に想定外の動作
0656デフォルトの名無しさん
2016/10/29(土) 18:55:02.99ID:Lu2qC+NvMath.floorを優先する理由はない
0657デフォルトの名無しさん
2016/10/29(土) 19:15:01.21ID:mMTmoVUB欲しがりません勝つまでは
我慢しろ
0658デフォルトの名無しさん
2016/10/29(土) 19:27:12.02ID:Lu2qC+Nv0659デフォルトの名無しさん
2016/10/29(土) 19:52:25.39ID:cEJXxPE7コードにする以前の問題。
入力で認めていれば、エラー対応が必要だし
入力で処理に影響する情報を排除すればそのままで済む。
そもそもマイナス扱う処理で四捨五入使うかな?
0660デフォルトの名無しさん
2016/10/29(土) 19:53:28.10ID:68KH7Ulz-0.6を四捨五入でどっちにしたいか。
roundで0にできたっけ?
0661デフォルトの名無しさん
2016/10/29(土) 19:57:05.98ID:eSvC8hNl小数点第一位までしかないんだから
Math.round() で解決だろ
バカ
0662デフォルトの名無しさん
2016/10/29(土) 20:06:28.52ID:JHScm7pH( (n) * 2) & 1
n が数でなくとも 0 か 1 になるが
0663デフォルトの名無しさん
2016/10/29(土) 20:37:58.28ID:mNGjlCUC速度を稼ぐために制限付きを承知で使うならいいだろうが
0664デフォルトの名無しさん
2016/10/30(日) 01:00:03.39ID:O7t7tgSU負の場合、例えば-20000.4は
> 小数点第一位までしかない1以下の小数
をみたすので、エラーでは無い
> 四捨五入して1か0にするには
四捨五入する桁を可変にすれば良いのかな?
0665デフォルトの名無しさん
2016/10/30(日) 05:11:47.90ID:hqgegRgFビット演算が速度を稼げるという根拠は?
例えば直近のV8 nightlyのアセンブラで書き直させたBuiltin_MathRoundingOperationよりも速いと言えるの?
結局無駄なf64<->i32キャストが発生するし、実際は速くないよ
速く使おうと思ったらUSE_ASM_Context内や、よっぽど変数の扱いを気を付けて
キャストが全体として起こらないようにしなければならない
0666デフォルトの名無しさん
2016/10/30(日) 05:55:23.89ID:h7Os3ze3ビット演算は速度を稼げると
>>665は申しております。
0667デフォルトの名無しさん
2016/10/30(日) 10:21:13.83ID:UrnMpVuD0668デフォルトの名無しさん
2016/10/30(日) 10:28:59.39ID:TSDZ4OFC普通0じゃないですか?
1.0/10なら0.1ですが
0669デフォルトの名無しさん
2016/10/30(日) 11:32:50.61ID:Z+vVaA9C要求仕様に対する、解析能力の確認ですね。
0670デフォルトの名無しさん
2016/10/30(日) 12:21:33.43ID:dH+/za6/https://ja.wikipedia.org/wiki/IEEE_754
0671デフォルトの名無しさん
2016/10/30(日) 12:26:08.71ID:TSDZ4OFCjavaの1/10は出来ないの?
切り捨てたり切り上げたり面倒なんだけど
0672デフォルトの名無しさん
2016/10/30(日) 12:39:39.62ID:dH+/za6/出来ない
他言語の常識を持ち込むのがナンセンス
0673デフォルトの名無しさん
2016/10/30(日) 12:42:33.00ID:TSDZ4OFCmjky
0674デフォルトの名無しさん
2016/10/30(日) 16:50:23.32ID:v2s+0v0ZMath.floor(1/10); であなたの目的は達成できるが、数値演算をJavaと同じにするのは無理
0675デフォルトの名無しさん
2016/10/30(日) 17:02:25.81ID:TSDZ4OFC負数もそれでいける?
負数だと絶対値が切り捨てで増えて、切り上げで減るとか聞いたけど
0676デフォルトの名無しさん
2016/10/30(日) 21:42:24.67ID:v2s+0v0Zやってみれば分かることをなぜ聞くかな
試してから聞いてくれ
0677デフォルトの名無しさん
2016/10/31(月) 03:18:16.89ID:vSxBS38U例えば、何かしらで永続化するとして
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クラスみたいなものを宣言する存在意義がわかりません。教えて下さい。
0678デフォルトの名無しさん
2016/10/31(月) 04:43:21.97ID:lofvnrlWJSON出し入れした場合などはプロトタイプが削除されどうせinstanceof等機能しないのだから。
お作法的にはcreatePersonという関数にする
まあクラスでもとんでもなくいけないということはない
それでわかりやすくなるというのならね
0679デフォルトの名無しさん
2016/10/31(月) 05:10:17.86ID:vSxBS38Uですよね。
>まあクラスでもとんでもなくいけないということはない
>それでわかりやすくなるというのならね
デシアライズした後はあんまわかりやすくならなさそうだったので質問してみした。
ありがとうございます。
0680デフォルトの名無しさん
2016/10/31(月) 06:43:17.85ID:xWfuY90DPOJOの意味をわかってないねw
https://ja.wikipedia.org/wiki/Plain_Old_Java_Object より
> POJOの概念は、明らかにPOJOという用語より前から存在する。なぜなら、
> オブジェクトクラスの自然なありさまとは、何ら特別なものではないからである。
> この用語の功績は、何らかのフレームワークを使う利点がその複雑さを補って
> あまりあるかどうかということを開発者に考えさせるという点にある。
> シンプルな設計の方が優れている場合もあるということを思い出させる明確な用語がなくては、
> 複雑なフレームワークが十分な理由のないままシステムアーキテクチャに含まれてしまいやすい。
> POJOによる設計が一般的になるにつれて、大規模フレームワークの機能の一部はPOJOでも
> 実現できることが明らかになってきており、実際に必要な機能領域に対する選択肢は増えている。
> HibernateとSpringがその例である。
意味わかる? POJOっていうのは単なるクラス。フレームワークとかのクラスを継承しない
単なるクラス。それがシンプルで良いという考え方から生まれた用語。
JavaScriptでも同じ。単なるクラスがシンプルで良い。
wikipediaに書いてあるように、特別なものじゃないんだが?
永続化? 補完? そんなものPOJOの意義とは全く関係無い。
0681デフォルトの名無しさん
2016/10/31(月) 07:43:46.18ID:vSxBS38Uただシンプルぐらいの感覚で使ってたんですが、
ただ聞きたかったのは「POJOの存在意義」ではなく、
永続化するシンプルなクラスの「クラス宣言」をする存在意義をJavaScriptで知りたかったんです。
実際JavaScriptにはクラスというものはなくて
class Person {
constructor(name, age);
はただのシンタックスシュガーらしいのですが、わざわざこんな宣言するメリットあるのかなと
それがが聞きたかったのです。
つまり、直接
var p = { };で作ってもいいんじゃないのかと。
0682デフォルトの名無しさん
2016/10/31(月) 07:47:51.97ID:vSxBS38U存在ってつけたからPOJOの存在意義って風に。すみまんせん。日本語がおかしかったです。
>永続化するシンプルなクラスの「クラス宣言」をする意義
ただの意義でした。
0683デフォルトの名無しさん
2016/10/31(月) 18:41:59.71ID:lofvnrlWだから、シンタックスシュガーもクソもなくてJSに「クラス」という概念はあるし、
素朴なプロトタイプベースで何もかもこなすのは非効率だから、昔から何らかのクラスシステムが使われてきた。
ただオブジェクト指向のやり方が「クラス」に縛られていないというだけ。
そして標準class構文は1つのより良いクラスシステムを提供するもの。
クラスから継承を取ったら何が残るかと言うと、それは見た目だよ。
createPersonのような関数で済ますのが普通だが、
もし他にそういった物がまだなく、全てクラススタイルで記述されていたらどうだ?
意味はなくとも意義がある。
>>var p = { };で作ってもいいんじゃないのかと
それは全体的な状況による。
例えばclass構文ガチガチのスタイル縛りの設計に無遠慮入れ込む事はできない。
0684デフォルトの名無しさん
2016/10/31(月) 18:44:45.95ID:pApy3Ebyclass Hoge←OOPのクラス
として使ってる
0685デフォルトの名無しさん
2016/10/31(月) 21:26:05.75ID:xWfuY90DJavaScriptに限らず言語の文法っていうのは
可読性を上げるために作られているんだよ。
そして可読性を上げる方法の一つが、コードの中から読まなければ
いけないコードの量を減らすこと。
一定のパターンに対して名前をつけてその名前を覚えてしまうことで
読まなければいけない量を減らすことができる。デザインパターンもその一つだけど文法も同じ。
シンタックスシュガーも読まなければいけなかったコードを
短い言葉で置き換えてそれを覚えてしまうことで可読性を上げることにつながってる。
(とは言えなんでも覚えてしまうのは不可能だから、覚える価値があるものだけに絞るべき。
例えばプロジェクト固有の関数は覚える価値が少ない。言語仕様はどこでも使える知識だから覚える価値がある)
また文法っていうのは、汎用的な命令だたものを専用的な命令に置き換えることが
できるように進化してきている。例えばgotoはあちこちに飛ぶことができるものだが、
これをより専用化してbreakやretrunやthrowなどができた。
これはgotoだけでは色んな意味があるから何のために使っているのかわかりにくいが
専用的なbreakであればループを途中で抜けるんだろうなってことがわかるから。
JavaScriptはclassが無くても作れていたが、だが人間は関数とクラスを区別していた人が多かった。
だからその人間の感覚に近づけることが可読性向上につながるわけ。
可読性の問題なのだから無くてもできるのは当たり前。
var p = { }; これだとただのハッシュなのかクラスなのか、色んな使い方ができるから
これだけ見てもわかりづらいだろ? 使っている箇所を読まなければ分からない。
class Personであればnewして使うんだろうなってことが明確になる。
読まなくて済むわけだよ。これが可読性という話。
0686デフォルトの名無しさん
2016/10/31(月) 21:29:41.12ID:xWfuY90Dclass Personの方がわかりやすいが、全体のコードが数十行程度なら
そこまでする必要はない。
だからコードが短いうちはvar p = {} で書いていても良い。
だけどコードが増えたときには必ずclass Personに変更しなければいけない。
これを放っておけば、犬小屋を作るやり方で一軒家を作るようなことになりかねない。
規模によって適切なやり方は違う。
0687デフォルトの名無しさん
2016/10/31(月) 22:06:57.07ID:R+gJxrwJvar p = { };は当然に
p instanceof Personがfalseになる
0688デフォルトの名無しさん
2016/10/31(月) 22:14:03.50ID:vSxBS38UもうC++,Delphi,Java,C#と10年以上はずっと使ってきました。
で、今回プロトタイプベースと言われる
JavaScriptを使って本格的にプログラミングし始めたのですが、もちろん最初は
クラス宣言してどんどんクラスを量産してたんですが、今回、例えばSettingsクラスみたいな
シンプルなPOJO的で永続化するクラスを作ろうとしたときに、
デシアライズすると元のプロトタイプチェーン?みたいなものが失われるし、
実際動作させた場合、最初のクラス宣言した元のSettingsクラスのインスタンスは最初の1回だけ作成され
後は別のプロトタイプチェーンが失われた別のインスタンス?とでもいうのでしょうかが動くことになるので、
ん?とちょっと手が止まってしまって質問した次第です。
0689デフォルトの名無しさん
2016/10/31(月) 22:22:26.57ID:vSxBS38Uもちろん、クラス宣言があった方が、実際それ参照すれば元々どんな構造だったのか分かりやすいとは
もちろん思ってましたが、それを踏まえてJavaScriptの経験豊富な方たちは
どうしてるのかなと思って質問したわけです。
とりあえずはプロトタイプチェーンとか気にする必要ない用実装するので
クラス宣言する方向で行こうと思います。
0690デフォルトの名無しさん
2016/10/31(月) 22:23:55.93ID:vSxBS38U0691デフォルトの名無しさん
2016/10/31(月) 22:55:13.38ID:hNQh9muD> デシアライズすると元のプロトタイプチェーン?みたいなものが失われるし、
> 実際動作させた場合、最初のクラス宣言した元のSettingsクラスのインスタンスは最初の1回だけ作成され
> 後は別のプロトタイプチェーンが失われた別のインスタンス?とでもいうのでしょうかが動くことになるので、
考え方がクラスベースで固定されてるのでプロトタイプチェーンをしっかり学ぶべきな気がする。
デシリアライズしたらプロトタイプ上のプロパティが失われるというが、実際にはシリアライズされた時には失われているのでは?
シリアライズが正常動作しているならそれはデシリアライズ処理がおかしいだけ。
最も、プロトタイプ上のプロパティを拾ってないだけな気もするが。
0692デフォルトの名無しさん
2016/10/31(月) 23:08:27.14ID:xWfuY90D永続化が問題なのか?クラスの話関係ないじゃん。
シリアライズっていうけどさ、やってるのはJSON文字列への変換だろ?
前提として関数等はJSON文字列に変換することはできない。
シリアライズされたデータの中に関数定義は含まれないので
関数定義とデータは別々に管理しなければならない。
ここまでは自明だよな?
あとはクラス定義(プロトタイプチェーン含む)をコードで作った上で
その中のデータのみをシリアライズ & デシリアライズする。
これがJSONオブジェクトを使った場合のやり方だろ?
0693デフォルトの名無しさん
2016/10/31(月) 23:09:18.71ID:xWfuY90D0694デフォルトの名無しさん
2016/10/31(月) 23:20:25.00ID:xWfuY90Dお前それ本当に永続化したいと思ってんのか?って言いたくなるんだが。
何のために永続化が必要なんだ?
永続化なんてしないだろ。永続化しないもののために
わざわざ永続化のためのコードなんて書く意味ねーぞ?
Javaの話でも同じ。永続化しないものにSerializableなんて
やる必要ないぞ。何も考えずに無駄にコピペしてねーか?
0695デフォルトの名無しさん
2016/10/31(月) 23:29:48.72ID:vSxBS38U永続化する必要あるから永続化しようとしてるのに・・
0696デフォルトの名無しさん
2016/10/31(月) 23:48:32.48ID:VoAu6vx9グダグダとくだらねぇこと語って
0697デフォルトの名無しさん
2016/11/01(火) 03:03:10.88ID:lWEkG1WtAltJSのHaxeでは、ソースコードを文字列化して送っても、型が消えない。
大規模開発に向く
0698デフォルトの名無しさん
2016/11/01(火) 08:40:03.75ID:MkSUKVBa分かった分かった。
君とここの住人はクラスに対する考え方が違うから話が噛み合っているようで無かったみたいだ。
要するに、クラスベース言語では通常捨てオブジェクトを作るにもクラスを設計するしか無いので迷わないが、
JSではプレーンオブジェクトを扱いたい場合にどうしたら良いかという話でしょ?
それならわざわざクラスを設計する必要がないというのが一般的な話だ。
オブジェクトの型ごとに空のクラスを置くのは全くもってJS流ではない。
JSでは、オブジェクトはより自由で気軽なもの。
オブジェクトを作りたいというだけなら、リテラルを使う。
幾つも同じタイプのオブジェクトを生成したい場合関数にて生成するが、
そういった場合それらのオブジェクトに共通した操作を定義したい場合も多い。
ここで初めて出てくるのがクラスだ。
つまりクラスとは、オブジェクト生成に必須のものでは勿論無いし、
あくまでオブジェクト指向の上で構造化のプログラミングする中で出て来る
手法・ツールの一つという位置づけでしか無い。
よって話を戻すと、今回の場合Personクラスを作る必要はない。
というかJSを使いに取っては完全にあり得ない、考えたこともない思考なので、混乱が生じた。
作る必要はないというか、そのような事を考えるのが異常なレベル。
0699デフォルトの名無しさん
2016/11/01(火) 10:02:53.69ID:JdgZau7x0700デフォルトの名無しさん
2016/11/01(火) 21:13:39.04ID:iw2Pppziお前がJS流とかきめんなや。
クラスを使うかどうかは規模やどう使うか決まる。
言語で決まるわけじゃない。
一般的なクラスとして扱いたいならばクラスにした方がいい。
人間の感覚とコードをできる限り近づけるようにするべきだ。
>>699
呼んだ?w
0701デフォルトの名無しさん
2016/11/01(火) 21:24:11.29ID:MkSUKVBaいや、今話されてるのは言語で決まる類の話だ。
古き良きクラスベース言語では原則実態であるオブジェクトを作るには
雛形であるクラスを設計しなければならない。
しかしプロトタイプベースでもあるJSではその限りではない。
違いがあって当然。
0702デフォルトの名無しさん
2016/11/01(火) 21:34:38.58ID:iw2Pppziなんで古い前提で話をしてるんだよw
新しいJavaScriptではclass構文が追加された。
当たり前だが気まぐれで追加されたわけじゃない。
これが必要とされたからだ。
であれば、どちらかと言えばclassを使うのが適切な場面では
classを使う方がいい。
プロトタイプベースから”改良"されてclass構文が追加されたんだよ。
0703デフォルトの名無しさん
2016/11/01(火) 21:46:38.71ID:o4WGeuVhアローのthisそのまま使えるのはチョー便利
長いfunction書かなくていいし
0704デフォルトの名無しさん
2016/11/01(火) 22:07:12.64ID:x6lATtpW0705デフォルトの名無しさん
2016/11/01(火) 22:10:49.88ID:iw2Pppzi最初はあまり使わないかなとも思ったけど
関数の引数で分割代入とか目からうろこのテクニック
Promiseと組み合わせて使うとほんと便利
0706デフォルトの名無しさん
2016/11/01(火) 22:20:38.57ID:MkSUKVBa>>どちらかと言えばclassを使うのが適切な場面ではclassを使う方がいい
とは一体何と何を比較して物を言っているの?
もしかしてclass構文と従来の関数+prototypeを比較した話をしているの?
自分はそんな話は全くしていないんだけど。
オブジェクトリテラルは君も使うでしょ?
それが無い言語、シンプルな使い捨てオブジェクトでさえも
そのための使い捨てクラスを作って、newするのが基本な言語もある。
それとJSは違うという話をしてるんだけど。
それとプロトタイプベースから改良されてという意味も分からない。
今まではプロトタイプベースの皮を被った癖のあるクラスシステムしか用意されてなかった
プロトタイプベースはあくまで言語の縁の下でしかなく、
自由に触れられず結局中途半端なクラスシステムに縛られていた。
プロトタイプベースが真に開放され、インスタンスベースなプログラミングが出来るようになったのは
class構文が搭載されたのと同じES2015から。
つまり"改良"はプロトタイプベースからではなく、プロトタイプベースの皮をかぶった中途半端なクラスシステムから。
その壁に穴を開けて下のプロトタイプベースと、上のより良いクラスシステムを見通せるようにしたというのが"改良"だ。
0707デフォルトの名無しさん
2016/11/03(木) 22:59:33.56ID:cb4Y2Yz90708デフォルトの名無しさん
2016/11/04(金) 01:26:18.56ID:LmRSOsos0709デフォルトの名無しさん
2016/11/04(金) 19:37:01.89ID:eNDgRS9hJavaScriptのスレで話す内容ではない。
0710デフォルトの名無しさん
2016/11/04(金) 21:21:51.64ID:LmRSOsos0711デフォルトの名無しさん
2016/11/07(月) 21:32:53.88ID:toRb2segPromise.prototype.cancelよりもどこがどう優れてるのかとか。
0712デフォルトの名無しさん
2016/11/07(月) 22:10:09.38ID:883psKTk0713デフォルトの名無しさん
2016/11/07(月) 22:35:42.50ID:toRb2seghttps://github.com/tc39/proposal-cancelable-promises
0714デフォルトの名無しさん
2016/11/07(月) 22:46:11.29ID:883psKTk> 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 か
なら良さそうだな。
0715デフォルトの名無しさん
2016/11/08(火) 07:34:19.94ID:Cn2WM8Ztキャンセルの仕組みを外に出した方が応用が効いて便利ってことは分かるけれど、
PromiseってあえてjQueryなどのDefferedと違って内部を外に出さないように設計したよね。
将来的には増やす案があったし、V8なんかは暫く独自機能残してたけど、立ち消えになったよね。
Promiseはあくまでいつか確定される値の抽象だからそんなの付けるべきでないって意見が強かったよね。
逆にそうだからこそ、キャンセルの仕組みを外に出したとも見れるけれど、
プロミスの状態で考えると、解決・棄却・その他は対等なので、
一つだけ操作・利用の仕組みが大きく違うのが違和感ある。
0716デフォルトの名無しさん
2016/11/08(火) 09:02:08.41ID:le3Xpa4Uというか、もともとキャンセルの仕組みもついでに処理途中の通知のシステムもないでしょ?
非同期処理をネストしないで書くための方法にとどめておくべきだよ。
asyncとawaitというシンタックスシュガーが使えない環境で
これらを使わずに同じように書くための仕組み。
それ以外は「タスク処理」をするためのフレームワークであって
Promiseとは別に作るべき。
> プロミスの状態で考えると、解決・棄却・その他は対等なので、
Promiseがやるのは順次処理(次の行へ進む)とエラー(例外)だけ
そもそもタスクとして考えるのがおかしい。
つーかついこの間たまたまタスク処理的なものを作ったけど
キャンセルとか状態の通知を追加するとPromiseとは呼べないものになったよ。
内部的にはFetch APIとかPromise使ってるんだけど、それを囲うための
タスク処理とそのタスクを管理する仕組みはイベントベースにせざるを得なかった。
Promiseでは無理
0717デフォルトの名無しさん
2016/11/08(火) 09:41:38.26ID:le3Xpa4Uタスクを管理するためのメソッドは色々ある。
タスクの中止やタスクからの情報通知だけじゃなくて
タスクの一時停止や再開、タスク情報の設定
(例えばダウンローダーみたいなのであれば保存するファイル名の変更とか)
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でタスク管理をしてはいけないという話
0718デフォルトの名無しさん
2016/11/08(火) 09:46:21.72ID:le3Xpa4U別でタスク管理の仕組みを作れ。
タスク登録して優先順位とか並列実行とか
めんどくさかったわw
0719デフォルトの名無しさん
2016/11/08(火) 10:58:01.33ID:Cn2WM8Ztいや、君の意見は部分的にはもっともだよ。でも現実そうでないのがなんで?って話。
CancelTokenは、それ自体では完結してない。
あくまでPromiseに「解決」・「棄却」の2つの状態に更に「その他」を加えることが中核。
つまりPromiseが君の言うPromiseじゃなくなることまでは確定されてるのよ。
あくまでそのトリガーを、解決や棄却と同じ形でせずに、
外部からコントロール出来るようにするということでしかない。
だからもっと独立したTaskを作らなかったのが何で?って思うし、
Promiseを継承したCancellablePromiseでもなく、.cancelメソッドを生やすだけでもなく、
どうしてこういう今までのJSの流れと違う、ある意味中途半端で特殊な形にまとめたのかなって疑問。
0720デフォルトの名無しさん
2016/11/08(火) 10:58:54.93ID:oVtTKQIX0721デフォルトの名無しさん
2016/11/08(火) 11:04:57.61ID:Cn2WM8ZtどうしてPromiseとTask管理のキャンセルの仕組みを悪魔合体させたのかということ。
そしてそれが幾らか便利なのは分かるが、
簡単に.cancalメソッドを付けたりするくらいでも多くの場合十分なのではないかということ。
0722デフォルトの名無しさん
2016/11/08(火) 19:41:39.60ID:L5B8nS+2別のメソッドを呼び出したいのですがどうすればいいでしょうか??
class MyClass {
method1();
method2() {
xhr.onreadystatechange = function() {
method1を呼びたい。けど、this.method1じゃだめ
}
}
}
0723デフォルトの名無しさん
2016/11/08(火) 19:54:23.01ID:nv3pE1Bbvar that = this; で別変数に入れておいて、xhr.onreadystatechange = function(){ that.method1(); } みたいに使う。
あるいは xhr.onreadystatechange = () => { this.method1(); } みたいにアロー関数を使う。
0724デフォルトの名無しさん
2016/11/08(火) 20:02:58.32ID:L5B8nS+2なるほど。this自体を別の変数に入れておけばよかったんですね・・
自分はvar method1 = this.method1
とメソッド自体を別変数に入れて呼び出してたんですけど、呼び出しは成功するっぽいのですが、
method1の内部でthisをmethod1() { thisほにゃらら }と参照するとthisが未定義になって困ってました。
>あるいは xhr.onreadystatechange = () => { this.method1(); } みたいにアロー関数を使う。
アロー関数は聞いた事ありませんでした。調べてみます。
ありがとうございます。
0725デフォルトの名無しさん
2016/11/08(火) 20:36:55.73ID:oXq4xn77onload使え、もっと言うとfetch使え。
0726デフォルトの名無しさん
2016/11/08(火) 21:22:58.34ID:L5B8nS+2onloadは非標準とか書いてあったので、onreadystatechange使ってました。
onload調べてみます。fetchはなんぞ?
0727デフォルトの名無しさん
2016/11/08(火) 21:35:01.22ID:L5B8nS+20728デフォルトの名無しさん
2016/11/08(火) 22:01:06.66ID:odPOKtVpvar that = this; は古い
handleEvent を使えばスマートに書ける
https://developer.mozilla.org/ja/docs/Web/API/EventTarget/addEventListener#The_value_of_this_within_the_handler
0729デフォルトの名無しさん
2016/11/08(火) 22:13:14.01ID:L5B8nS+2onreadystatechangeだとエラーでstatusが0の時の処理とかあるので、
onloadとonerror使えばすっきりするってことですかね。
ということでonloadとonerrorに書き換えます。
0730デフォルトの名無しさん 転載ダメ©2ch.net
2016/11/09(水) 06:22:28.44ID:br65i1Lj板復帰(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!
0731デフォルトの名無しさん
2016/11/09(水) 08:10:50.79ID:HRJGJTihもし冗談でなく本当にonloadが非標準と書かれた情報が存在し、
それを見てしまったのなら今すぐに目ン玉を引っこ抜いて洗ったほうが良い。
それは5年以上前の情報だから、けして参考にしてはいけない。
死ぬぞ。
0732デフォルトの名無しさん
2016/11/09(水) 14:41:13.38ID:SYPVDf2EXHR
https://xhr.spec.whatwg.org/
Fetch
https://fetch.spec.whatwg.org/
0733デフォルトの名無しさん
2016/11/11(金) 11:06:53.92ID:hqcaajAulinuxのyumとかapt-getでいれるyarn
どっちを使えばいいんですか?
0734デフォルトの名無しさん
2016/11/11(金) 21:39:29.00ID:ENznHnYU0735デフォルトの名無しさん
2016/11/13(日) 16:04:40.73ID:QhlptiVmこれは我々の世界の英語が得意でない者にとって革命だ。
今までは訳すと読むだけで頭が痛くなるような奇妙な日本語が生成されていたが、
今では勉強に集中できる程度に精度が向上している。
0736デフォルトの名無しさん
2016/11/13(日) 16:08:36.94ID:foNYoSMf0737デフォルトの名無しさん
2016/11/13(日) 16:32:58.01ID:jy2VGr1Wレキシカルバインドした変数を介さないといけなくてダサい
もっとカッチョ良い制御構文無いの?
0738デフォルトの名無しさん
2016/11/13(日) 16:47:42.97ID:foNYoSMf*function
0739デフォルトの名無しさん
2016/11/13(日) 16:52:48.84ID:TWR6TIrTそれ使っても、Promiseが見えなくなるだけで、
「レキシカルバインドした変数」は同じだよな?
0740デフォルトの名無しさん
2016/11/13(日) 21:18:16.74ID:nngvad4Ktry-catch
0741デフォルトの名無しさん
2016/11/13(日) 21:33:19.82ID:jy2VGr1W配列に複数の値突っ込んでそれを持ち回す事にした
レキシカルバインドした変数に代入する方法では、書き込む方と読み出す方の同期を取るのが厄介
0742デフォルトの名無しさん
2016/11/13(日) 21:51:23.69ID:TWR6TIrTシングルスレッドなのに何を言ってるのだろうか?
0743デフォルトの名無しさん
2016/11/13(日) 23:47:53.73ID:jy2VGr1WPromiseは非同期オブジェクトだから
それと同期してない奴が触ったときに処理が完了してるとは限らないんだな、これが
0744デフォルトの名無しさん
2016/11/14(月) 00:34:40.39ID:UEPxPzuePromiseは非同期処理を同期的に記述できるようにするものなんだが?
同期的に記述してるのに同期をとるのが厄介ってお前理解してないんじゃね?w
0745デフォルトの名無しさん
2016/11/14(月) 00:47:56.56ID:8ZP1uHGRそれと同期してない奴というのはPromiseに組み込めないの?
0746デフォルトの名無しさん
2016/11/14(月) 00:49:40.25ID:y8otP/4p処理待ちしてる間に別の処理を差し込めるからバインドしたthisの内容が保証されないって言いたいんじゃね
0747デフォルトの名無しさん
2016/11/14(月) 01:06:58.66ID:UEPxPzue意味わからん。まあ一言言っておくと、保証されないわけがない。
0748デフォルトの名無しさん
2016/11/14(月) 01:22:56.04ID:y8otP/4pオブジェクトにデータ積んで行くイベントをPromiseで繋げて完了待ちしてる合間に、
ユーザの操作で別イベントが発火したら未完了のデータに触れちゃうし書き換えられもするだろ?
0749デフォルトの名無しさん
2016/11/14(月) 01:24:49.33ID:Gl21TU7L(new Promise())
.then()
.then(v => { g = v;}) // <==== (1)
.catch();
console.log(g); // <===== (2)
(2)を実行する時に(1)が完了している事は保証されていない
0750デフォルトの名無しさん
2016/11/14(月) 01:38:40.81ID:UEPxPzue> (2)を実行する時に(1)が完了している事は保証されていない
???
その場合は、(2)を実行する時に(1)が完了していないことが事が保証されてる
Promiseを実行して処理を非同期にした時点で、後回しにされるんだよ。
JavaScriptはシングルスレッドなんだから後回しになった処理が先に終わることはない。
他に割り込まれること無く(2)が実行される。
0751デフォルトの名無しさん
2016/11/14(月) 01:40:04.94ID:UEPxPzueそれはPromise関係ないな。レキシカルバインドした変数も関係ないな。
二つのボタンがあったとして、先にクリックしたほうが
先に変数にデータを入れられるってだけの話だ。
0752750
2016/11/14(月) 01:43:25.22ID:UEPxPzueもう少しまともなサンプルもってこい
0753デフォルトの名無しさん
2016/11/14(月) 01:44:04.31ID:y8otP/4pお前……さては同期の意味を理解してないな?
744 名前:デフォルトの名無しさん [sage] :2016/11/14(月) 00:34:40.39 ID:UEPxPzue
>>743
Promiseは非同期処理を同期的に記述できるようにするものなんだが?
同期的に記述してるのに同期をとるのが厄介ってお前理解してないんじゃね?w
0754デフォルトの名無しさん
2016/11/14(月) 01:46:54.76ID:UEPxPzue理解してないと思ったなら自分の考えを書けよ。
0755デフォルトの名無しさん
2016/11/14(月) 01:52:00.66ID:wKdLnPZ8「example.jpというドメインは存在しません」
というトンチンカンな返答をもらったことあるんだよ
それに匹敵するくらいの無知さを>>752からは感じた
0756デフォルトの名無しさん
2016/11/14(月) 01:54:42.93ID:UEPxPzueおまえ馬鹿だろw
今ここで間違ったコードを書く理由がないだろ。
>>749はPromiseの使い方を全く分かってない
ということでしかないんだが。
Promiseを使ったコードを書けないから
どういう動きになるのかを自分で確かめることも出来やしない
0757デフォルトの名無しさん
2016/11/14(月) 08:36:58.57ID:Gl21TU7L> その場合は、(2)を実行する時に(1)が完了していないことが事が保証されてる
だから何?
逆と対偶って知ってる?
0758デフォルトの名無しさん
2016/11/14(月) 08:49:19.57ID:Gl21TU7L複数の非同期オブジェクトを協調して動かす場合は同期が不可避って事だよ
シングルスレッド? 何それ、美味いの w
0759デフォルトの名無しさん
2016/11/14(月) 09:12:07.77ID:UEPxPzueどこが逆と待遇なんだよw
保証されてると言ってるだろ。
必ず(2)は(1)よりも先に動くんだよ。
0760デフォルトの名無しさん
2016/11/14(月) 09:20:35.38ID:Gl21TU7L「逆と対偶って知ってる?」今日1日猶予あげるからよく考えてごらん
0761デフォルトの名無しさん
2016/11/14(月) 09:36:25.06ID:UEPxPzue蓋を開けてみれば、下請けに作らせた(嘘だろうなw)独自実装の
PromiseっぽいPromiseではないもの(つまり別物)の話で
そいつにしか関係ない話だってやつ。
0762デフォルトの名無しさん
2016/11/14(月) 14:11:42.63ID:SjW+Vo1Y俺じゃないよ。
俺は眺めてるw
0763デフォルトの名無しさん
2016/11/14(月) 14:29:20.23ID:njlrvKgq最初はプロミスは基本的に1つの値を流していくため、
非同期処理中沢山の変数を共有しようと思ったら外部変数にするしか無いのが
関数型チックに書ききれなくて煩わしいのかと思ったのだが、そうではないのか?
0764デフォルトの名無しさん
2016/11/14(月) 14:30:47.94ID:njlrvKgq頭がいいのなら、馬鹿にも分かるように説明しろ
それができないのならお前の中でのことでしかない
0765デフォルトの名無しさん
2016/11/14(月) 17:08:18.46ID:SjW+Vo1Y仕事では使わんけど。
0766デフォルトの名無しさん
2016/11/14(月) 17:17:23.31ID:rHIPepSr何を当たり前のことをいってるんだ?
非同期処理ならそれが当然だろう
非同期処理を同期処理化したいならawaitを使えばいい
awaitは非同期処理を理解していない初心者が有り難がるが、非同期処理のメリットが全部なくなるきたがるんだよな
0767デフォルトの名無しさん
2016/11/14(月) 17:27:11.76ID:kL+E10ET実行キューに登録された関数が終了するまでは他の関数が起動することはないから絶対2が先に実行される
0768デフォルトの名無しさん
2016/11/14(月) 17:40:50.48ID:0PpRMTCP知ってるけど、だから何?
頭が悪いのはお前の方だわ
0769デフォルトの名無しさん
2016/11/14(月) 17:44:02.19ID:kL+E10ET0770デフォルトの名無しさん
2016/11/14(月) 17:54:39.16ID:kL+E10ETだから初心者には難しいのは知ってる
でも初心者なら普通黙って聞くよね?
0771デフォルトの名無しさん
2016/11/15(火) 01:46:02.87ID:b2LTbejx非同期処理と非同期は処理がどちらが先に実行されるかは当然わからないが、
非同期処理と同期処理は同期処理が先に実行される。
Promiseを使った時点でそれは非同期処理になる
そしてPromiseは複数の非同期処理を、終わったら次に進むという形に
するものなんだから、どちらが先に実行されるかなんて迷う余地はない。
0772デフォルトの名無しさん
2016/11/15(火) 07:10:15.19ID:yv04JlgEPromiseなんて排他制御が必要になる部類よりずっと簡単ですぐ理解できると思うけどな
0773デフォルトの名無しさん
2016/11/18(金) 17:09:50.58ID:3VtCl+DRたすけてください
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 [email protected] has no binaries
warning No license field
0774デフォルトの名無しさん
2016/11/18(金) 17:11:58.65ID:Amerid1m0775デフォルトの名無しさん
2016/11/26(土) 14:28:20.17ID:gspGiUEm馴染めないのですが、そんな事はないですか?
0776デフォルトの名無しさん
2016/11/26(土) 18:46:17.35ID:pi8DulB7> Objectをコピーする文法
あなたのその表現が馴染めない
シャローコピー?ディープコピー?
0777デフォルトの名無しさん
2016/11/27(日) 07:31:30.06ID:T/GZ1EFf0778デフォルトの名無しさん
2016/11/27(日) 08:53:16.82ID:AMkv8rTe0779デフォルトの名無しさん
2016/11/27(日) 13:37:49.51ID:wcKeEZPe単にコピーと言ったときはシャローコピーだろ
ディープならディープと書く
おまえはキスするときいつも相手に訊くのか?
0780デフォルトの名無しさん
2016/11/27(日) 14:09:11.37ID:AZC2UzDMマナーとして聞くでしょうに。
0781デフォルトの名無しさん
2016/11/27(日) 15:54:55.51ID:4ldlRD1JまずJavaScriptではいかなる方法を使っても
Objectを完全にコピーすることはできない。
だからObjectのコピーではない命令を
あんたが使っているだけにすぎない。
だからあんたがコピーだと思っている文法と
違うわけだ。
0782デフォルトの名無しさん
2016/11/27(日) 17:47:28.40ID:mveO+vV3○ いかなるObjectをも完全にコピーする方法はない
0783デフォルトの名無しさん
2016/11/27(日) 22:08:04.56ID:q8z3Tnreひょっとすると、参照コピーを指しているのかも切れないので、シャローコピーと決めつけるのは早計
var obj1 ={}, obj2 = obj1;
obj1.a = 1;
console.log(obj2.a); // 1
初心者がはまりやすいのはこっちだと思うね
シャローコピーではまるのは Object.assign をディープコピーだと思って使ってしまうとか?
いずれにしても、質問者の情報待ち
0784デフォルトの名無しさん
2016/11/28(月) 18:13:43.58ID:E4XiTzNU0785デフォルトの名無しさん
2016/11/28(月) 18:21:10.70ID:KKcrSnYF0786デフォルトの名無しさん
2016/11/28(月) 18:28:48.71ID:By9NqSkN0787デフォルトの名無しさん
2016/11/30(水) 21:42:56.12ID:0ROmCizqwindow.open()で開いた親子関係のウインドウ間のみ可能なのでしょうか?
全く他人のウインドウ同士(同一ドメイン内)でも同様にpostMessageできますか?
試したのですが出来ませんでした。
0788デフォルトの名無しさん
2016/12/01(木) 02:35:33.78ID:86kKAE3r0789デフォルトの名無しさん
2016/12/01(木) 08:41:27.60ID:elqpLc9i>>775もそうだが、無理に新しい日本語を発明して質問するのは止めてくれ
「全く他人のウインドウ」とは何か具体的に説明すべき
>>775は「Objectをコピーする文法」がオレオレ用語
現存の演算子や制御構文にはObjectをシャローコピー/ディープコピーする機構はない
Object.assignはシャローコピー可能だが、「文法」とはこれいかに?
「文法」が代入演算子を指すなら>>783がしっくりくるが、オブジェクトをコピーが曖昧故に既に複数の解釈が出来てる
知ったかぶりで専門用語を並べ立てるぐらいならコードで説明した方が100倍マシ
0790デフォルトの名無しさん
2016/12/01(木) 13:42:59.96ID:rRTfenTZアスペは大変だね
0791デフォルトの名無しさん
2016/12/01(木) 14:51:06.99ID:V0GR9lTF> 「全く他人のウインドウ」とは何か具体的に説明すべき
「window.open()で開いた親子関係のウインドウ」ではないウィンドウだと、普通なら理解できると思うが。
0792デフォルトの名無しさん
2016/12/01(木) 14:53:06.08ID:MTDix4/Z0793デフォルトの名無しさん
2016/12/01(木) 18:22:15.66ID:NluWgpRaその要件ならiframe要素からcontentWindowを得ればいいだろう
が、「window.openだけでなく、フレームはダメでこれこれこういうものなんです」と条件を後出しする気がしてならない
0794デフォルトの名無しさん
2016/12/01(木) 18:48:17.00ID:V0GR9lTFどこからiframe要素がでてきたんだ?
質問するのも大変だなという感想。
0795デフォルトの名無しさん
2016/12/01(木) 19:18:46.44ID:FPpa4B9L0796デフォルトの名無しさん
2016/12/01(木) 19:27:18.92ID:NluWgpRa>>791の要件は満たしている
「window.open以外」としか情報がないのにどう解釈するんだ?
0797デフォルトの名無しさん
2016/12/01(木) 21:17:00.50ID:wkCVFNfoただ単にURLを変えずに画面切り替えさせるツールとして使えないの?
やっぱりそれだとCSS切り替えさせるだけがいいのか
0798デフォルトの名無しさん
2016/12/01(木) 21:19:22.43ID:d1oSzjmi「全く他人のウインドウ」という要件があるだろ。
iframeの中に入っているwindowなら
「全く他人のウインドウ」でもアクセスできるとでも思ってるのか?
0799デフォルトの名無しさん
2016/12/01(木) 21:20:40.53ID:d1oSzjmiURLを変えずに画面を切り替えたいのなら
単なるAjaxで実現できる
0800デフォルトの名無しさん
2016/12/01(木) 22:10:50.23ID:qVQfYo/5「全く他人のウインドウ」とは?
ウインドウに他人も何もないが、何がどう他人?
イメージで語ってる感があるから具体的な表現に直した方がいいと思うぞ
0801デフォルトの名無しさん
2016/12/01(木) 22:40:32.66ID:WdTiwpMY0802デフォルトの名無しさん
2016/12/02(金) 00:12:25.33ID:tqwX+tIq無能はレスしないで。じゃまだから
0803デフォルトの名無しさん
2016/12/02(金) 01:35:18.54ID:yix14ac2起源が関係ない同ドメインのタブ間でメッセージングしたいってこと。
0804デフォルトの名無しさん
2016/12/02(金) 02:27:06.31ID:cAbrvXmy0805デフォルトの名無しさん
2016/12/02(金) 08:30:06.20ID:yix14ac2API関係なく「windowオブジェクトを取得できない状態」
0806デフォルトの名無しさん
2016/12/02(金) 11:43:29.21ID:f/evnOKU0807デフォルトの名無しさん
2016/12/02(金) 13:22:55.58ID:7VByTnYiウインドウに血縁関係を持ち出している時点でいろいろおかしいから
あと、質問者でもないのに憶測でものを語り過ぎ
0808デフォルトの名無しさん
2016/12/02(金) 13:31:01.39ID:7VByTnYi一応、window.parent があるからその関係性を親子と呼称しているんだろうね
そこから更に「血が繋がっている」と称しているっぽいけど、定義の範囲が曖昧すぎて本人だけが知るオレオレ用語と化してる
0809デフォルトの名無しさん
2016/12/02(金) 13:57:08.34ID:lwDfhxMF血が繋がってる云々は、元発言者の発言ではない
あと、お前以外は大体なんのこといってるかわかってる
0810デフォルトの名無しさん
2016/12/02(金) 21:30:01.22ID:Y0rnRsuL0811デフォルトの名無しさん
2016/12/02(金) 22:03:00.38ID:tqwX+tIq言っていいと思うよw
0812デフォルトの名無しさん
2016/12/02(金) 22:45:13.80ID:7KiF/zbrだから、質問者以外が憶測でものを語り過ぎといってるんだよ
0813デフォルトの名無しさん
2016/12/03(土) 02:24:14.51ID:1XG4MZmv>>787
windowオブジェクトが取れないならpostMessageはたしかできない
そもそも同一ドメイン(厳密にはオリジン)なら目的にもよるがCookieやlocalStorage、iframeなんかも制限ゆるく使える
0814デフォルトの名無しさん
2016/12/03(土) 05:01:50.15ID:SlvstEBQ次レス>>788で答え出てるじゃん。
0815デフォルトの名無しさん
2016/12/03(土) 08:26:46.93ID:DMuEuKTJそれと、ECMAScriptの質問ではないし
0816デフォルトの名無しさん
2016/12/03(土) 08:52:02.02ID:kCSsmmVzBroadcastChannel 使えばいけるのでは?
https://html.spec.whatwg.org/multipage/comms.html#broadcasting-to-other-browsing-contexts
0817デフォルトの名無しさん
2016/12/04(日) 18:07:27.84ID:DmbMEkfKkeyupがCtrlとEnter同時押しの場合メソッド実行、ってどう記述すればいいんでしょう
漁っても見つかりませんでした。
0818デフォルトの名無しさん
2016/12/04(日) 20:20:50.75ID:+/vGZpO/ここの内容を理解してれば書ける
https://jp.vuejs.org/v2/guide/events.html
後はメソッド作ってそこでctrlKeyが押されたか素のjavascriptで書けばおk
0819デフォルトの名無しさん
2016/12/04(日) 20:57:20.70ID:ObsZQ3a0お前がマヌケなことはよくわかったよw
0820デフォルトの名無しさん
2016/12/05(月) 14:41:47.17ID:py+X8wbm0821デフォルトの名無しさん
2016/12/05(月) 15:08:03.07ID:pSDwKct5書き込み不可能な値だけが、直接、埋め込まれている
オブジェクトではないので、参照・アドレスなどは存在しない。
値しか存在しない
0822デフォルトの名無しさん
2016/12/05(月) 16:03:02.66ID:py+X8wbmそこをなんとか
裏技とか無いかな
0823デフォルトの名無しさん
2016/12/05(月) 16:33:21.44ID:8BrnA5VPダメなら、jsonみたいに特定の区切り情報を間に挟んだ文字列にするとか。
0824デフォルトの名無しさん
2016/12/05(月) 16:42:52.62ID:ANvwzotjどうしても必要なら>>823
0825デフォルトの名無しさん
2016/12/05(月) 17:15:20.81ID:Oi3oGEbA数値に何を求めているかにもよるが、new Number で大体の要件を満たせる。
valueOfを動的に書き換えれば値を書き換え可能。
0826デフォルトの名無しさん
2016/12/05(月) 18:16:52.64ID:py+X8wbmすばらしい
ありがとう
超助かりそう
0827デフォルトの名無しさん
2016/12/05(月) 19:24:44.97ID:eUg7PlUS何度も色んなスレで話されてきたことだが、JSに参照渡しはない。
オブジェクトもプリミティブも共有渡し、もとい参照の値渡しだ。
0828デフォルトの名無しさん
2016/12/05(月) 20:05:18.10ID:8BrnA5VP作ってみたいモノが有るから、そのうち試してみるか。
0829デフォルトの名無しさん
2016/12/05(月) 21:34:32.19ID:PskkFbSl気づいてないのかもしれないが、
「参照の値渡し」のことを参照渡しって言ってるんだよ。
0830デフォルトの名無しさん
2016/12/06(火) 10:27:08.35ID:jq2pL0Pu色々と不便だからそうやって呼ぶのやめたほうがいいよ
0831デフォルトの名無しさん
2016/12/06(火) 16:50:09.05ID:VokRQswW0832デフォルトの名無しさん
2016/12/06(火) 18:31:18.40ID:NfACm7RT値は新しく作られることしか無い
値が複製されることもなくて、新しい名前が付けられる(共有渡し)
0833デフォルトの名無しさん
2016/12/06(火) 18:33:38.21ID:Vi6knW7G0834デフォルトの名無しさん
2016/12/06(火) 23:39:32.25ID:NfACm7RT0835デフォルトの名無しさん
2016/12/07(水) 19:31:41.28ID:Medm3i/EAngular2使ってみたんだがReactの方がスマートに思えてきた
どっちの方がおすすめ?
0836デフォルトの名無しさん
2016/12/07(水) 19:56:56.70ID:U/KBvqO40837デフォルトの名無しさん
2016/12/07(水) 20:51:25.77ID:BFSqyyg7どんなアプリ作る予定?React触ったことないがAngular2はSPA作るのには良くできてると感じた。小規模アプリならオーバースペックではあるが。
0838デフォルトの名無しさん
2016/12/07(水) 21:15:03.09ID:FEJU8uYAウェブサイトを作る・・・HTML + CSS + jQuery
業務系アプリ(エクセルっぽい画面でデータを弄る)を作る・・・Angular
グラフィカルアプリ(いろいろなコンポーネントを作る)を作る・・・React
ゲーム・・・どれでもない
0839デフォルトの名無しさん
2016/12/08(木) 20:38:15.49ID:DwX5bf/vこれをプロジェクトごとにインストールするのって無駄ですね
20プロジェクトで最低1GB消費するとかすごいですね
globalにインストールしても結局package.txtに書いて
0840デフォルトの名無しさん
2016/12/08(木) 22:35:19.76ID:W+Mdrq4F20プロジェクトあったとして1つのプロジェクトで
パッケージのバージョンを上げた時
他のプロジェクトでもバージョンあがってしまっても大丈夫?
っていう質問に、大丈夫に決まってるだろって
答えられるやつだけが、無駄っていう資格があるんだよ
お前にその資格はねーだろ?w
0841デフォルトの名無しさん
2016/12/09(金) 00:03:55.69ID:GYMahviX上がってしまっても大丈夫なようなものでもローカルにみんな持ってるってことでしょ。
ローカルに持つならきちんとバージョン指定すべきだけど、そうじゃないパッケージも多い。
そうじゃないのなら(特定のバージョンでないと絶対に困るのではないのなら)
グローバルを利用するようにすべきで、そうでないのは無駄だろうよ。
0842デフォルトの名無しさん
2016/12/09(金) 00:46:44.84ID:EsSFcgleパッケージの定義だけ残して消せばいいんじゃないの?そのための管理ツールでしょ。必要になったらコマンド叩けば復元できるわけだし。
npmもvagrantも設定ファイルだけ残して全部消してるよ。
0843デフォルトの名無しさん
2016/12/09(金) 12:48:43.40ID:5/1+VZyqnpm upするとglobalに置いてるけどlocalにはないパッケージをインストールしてしまいます
localにあるパッケージだけupdateするほうほうないですか?
0844デフォルトの名無しさん
2016/12/09(金) 19:37:55.50ID:HbVE2MYn今更だけど、なにがすごいのよこれの。
jQueryのdata Tableとかfootableとかこういうのいくらでもあるよ
0845デフォルトの名無しさん
2016/12/10(土) 17:06:30.30ID:qLBvM9gz「Unexpected token import」というエラーが出てきます。
import App from './App';
下記のように修正するとエラーは出ないのですが、これは何故でしょう?
var Vue = require('vue')
0846デフォルトの名無しさん
2016/12/10(土) 17:08:40.15ID:CHdeaesN0847デフォルトの名無しさん
2016/12/10(土) 20:00:47.38ID:z2dlQ4BE新しい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とか詰めて書いています
0848デフォルトの名無しさん
2016/12/10(土) 20:02:25.98ID:z2dlQ4BEが書き込み不可になるようです
0849デフォルトの名無しさん
2016/12/10(土) 20:06:30.01ID:YyXkI5ewオブジェクトの構成とかどうやって書けばいいのかわからん
0850デフォルトの名無しさん
2016/12/10(土) 20:12:33.78ID:jVtN6n+v>>1
※DOMはブラウザが提供しているものでありJavaScript(ECMAScript)の範囲外です。
なのでDOMを使ったプログラミングは原則としてこのスレの対象外です。
DOMはwindowオブジェクト(ブラウザのホストオブジェクト)経由で
参照するもので、window自体、window.document、window.Workerなどです。
これに関する話題はWeb制作板の下記のスレに移動してください。
0851デフォルトの名無しさん
2016/12/10(土) 20:14:21.17ID:jVtN6n+vhttp://usejsdoc.org/を全部一通り読んでからスレに来てください
0852デフォルトの名無しさん
2016/12/10(土) 22:41:32.19ID:YyXkI5ew0853デフォルトの名無しさん
2016/12/11(日) 05:02:45.22ID:ncQazcOe■関連スレ
JavaScript の質問用スレッド vol.122
http://echo.2ch.net/test/read.cgi/tech/1472426483/
JavaScript の質問用スレッド vol.131
http://echo.2ch.net/test/read.cgi/hp/1478053599/
JavaScript ライブラリ総合質問所 vol.5
http://echo.2ch.net/test/read.cgi/hp/1465399470/
jQuery 質問スレッド vol.7
http://echo.2ch.net/test/read.cgi/hp/1478055094/
■このスレについて
このスレは「JavaScriptスレ vol.121」を乗っ取っろうとした荒らしがECMAScriptスレに改変して出来ているのでJavaScriptスレと勘違いしている人が多い。
事実上、「ECMAScriptデス 6」の代替スレのようなものだから次スレは「ECMAScriptデス 7」で立てることを推奨。
(「ECMAScriptデス 5」が落ちてから次スレは立てられなかった)
0854デフォルトの名無しさん
2016/12/11(日) 10:43:25.79ID:nTv8AIQk一通り読める奴はこんなところに質問しない
0855デフォルトの名無しさん
2016/12/11(日) 15:29:55.89ID:8yi/uDpVお前みたいな読めない奴には聞いていないんだ
ちょっと引っ込んでてくれないかな
0856デフォルトの名無しさん
2016/12/11(日) 15:42:15.22ID:E18FGHmaそれじゃ質問なんか誰もしない。
そんなスレはお断りだ
0857デフォルトの名無しさん
2016/12/11(日) 15:56:32.55ID:jBEhBP0bじゃあ回答しろよ
質問もしない、回答もしない、チャチャを入れるだけ
ならこのスレに来る理由もないだろ
ここじゃないどこかで体育座りしててくれ
0858デフォルトの名無しさん
2016/12/11(日) 16:09:03.30ID:QckH61YD0859デフォルトの名無しさん
2016/12/11(日) 16:16:47.68ID:E18FGHma答えられる質問であれば回答してるが?
お前俺にずっと回答だけしてろっていうのか?
じゃあ今お前がやってることは何だよ?
質問でも回答でもねーだろ
他人に質問か回答だけをすることを要求するのなら
まずお前が、質問か回答だけしろ。
自分で言ったことぐらい守れよ
0860デフォルトの名無しさん
2016/12/11(日) 17:20:50.42ID:YgjsTwTxJSDocってどんな時に使っているの?
自作ならば、自分の設計思想を基に記録残しながらやっていると思うけど。
0861デフォルトの名無しさん
2016/12/11(日) 19:08:01.12ID:DMLZrwttオブジェクトの構成ってよく分からないけど、
単にオブジェクトごとにリファレンス作りたいなら
@namespaceってタグでオブジェクトごとに分離できる
/** @namespace foo */
var foo = foo || (function() {
// なんかメソッドいろいろ
/**
* @memberOf foo
* // いろんなタグ
*/
}());
/**
* // なんか説明
* @namespace foo.bar
*/
foo.bar = {
// なんかメソッドいろいろ
}
オブジェクト構成図が作りたいみたいな話なら、生成して
できるindex.htmlを自分でいじるしかないんじゃない?
自分はリファレンスとか整備するの好きなんで
自分用のポリフィルライブラリとかにシコシコ書いてる(´・ω・`)
0862デフォルトの名無しさん
2016/12/12(月) 02:26:50.08ID:l2OsM7Pl0863デフォルトの名無しさん
2016/12/12(月) 10:41:43.84ID:YdV6j9Ia/**
* うんこ
* @param {object} hoge
*/
function unko( hoge ){
console.log( hoge.chinko );
}
この関数では引数 hoge の中の chinko を使っています
というのを記述したいんです
0864デフォルトの名無しさん
2016/12/12(月) 14:19:43.44ID:dCr75+tgとりあえず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());
0865デフォルトの名無しさん
2016/12/12(月) 14:54:46.93ID:F302LMas0866デフォルトの名無しさん
2016/12/12(月) 18:18:55.38ID:rhAg00ccそういった説明は普通に冒頭に書くだけなのでは(うんこと書いている部分)
自分もそういう説明は冒頭、あるいは@paramや@returnsのDescriptionに書いてます。
探して見つからない以上そういうタグもないでしょうし、自分も必要性を感じないです。
0867デフォルトの名無しさん
2016/12/12(月) 18:23:34.65ID:snQzvIqt流石2ch
0868デフォルトの名無しさん
2016/12/12(月) 18:45:58.13ID:YdV6j9Iaありがとう。
明示的に書けたら、IDEの自動補完の対象にもできて
一石二鳥だよなァ と思っていたので、出来ないなら
ちょっと残念です。 うんこに書くようにしてみます。
0869デフォルトの名無しさん
2016/12/13(火) 19:37:26.53ID:YAjnVVpgクラスの継承、特にビルトインのそれはES5で完全にエミュレートできないんだから仕方がない。
そういうコードを書きたいのならもうピュアESで書くべき。
0870デフォルトの名無しさん
2016/12/13(火) 20:01:34.52ID:YnqsBGxeなんせbabelで万事解決するらしい。
0871デフォルトの名無しさん
2016/12/13(火) 21:07:36.85ID:iAtvyUgt意図を見破られて逃げられてるぞ。
もっとうまくやれ。
0872デフォルトの名無しさん
2016/12/13(火) 21:34:56.41ID:DVZ4mkliTypeScript
0873デフォルトの名無しさん
2016/12/14(水) 12:49:50.71ID:hfi6HCxW0874デフォルトの名無しさん
2016/12/14(水) 22:52:54.32ID:rsGVtDKVフロントエンドの話がしたいならWeb制作板に言ってくれ
0875デフォルトの名無しさん
2016/12/15(木) 07:06:36.17ID:BawVZm9bElectronしかり、Cordovaしかり、ReactNativeしかり、NativeScriptしかり。
babelがどうのと言う割に石器時代みたいな事言ってるんだな。
0876デフォルトの名無しさん
2016/12/15(木) 12:11:19.86ID:THL1lN1oqiitaやfacebookで5タブ開くとHDDカリカリうるさい
それなりのスペックのPCなら恩恵あるんだろうが低スペには重いだけのライブラリ
0877デフォルトの名無しさん
2016/12/15(木) 14:50:50.45ID:q7exeZSN仮想メモリとキャシュ置くようにすれば解決する話だよ。
CPUがPentiumDですとか言うなら別だが。
0878デフォルトの名無しさん
2016/12/15(木) 21:27:18.19ID:B8ikKJQdElectronか、Cordovaか、ReactNativeか、NativeScriptの
話をしてるならよそに行けとか言わんよ。
誰がいつそれらの話をした?
屁理屈言ってるんじゃねーよ
0879デフォルトの名無しさん
2016/12/15(木) 23:18:16.98ID:BawVZm9b誰がいつ、って俺が>>875でしたじゃん。それで流れが変われば良いなと様子見をするのではなく、けなされたと激高するのは無能な働き者だよ。
屁理屈はおまえだよwww
なんせ、Chrome最新版だとネイティブで動きます、って話と、フロントエンドの話は別で、って話、どうやっても矛盾してしまうんだから。
0880デフォルトの名無しさん
2016/12/15(木) 23:33:14.23ID:B8ikKJQd0881デフォルトの名無しさん
2016/12/16(金) 11:07:25.61ID:1IWVJy5Mフロントエンドの技術を使ったデスクトップアプリ作成周辺までフロントエンドに加えるのは違和感がある
0882デフォルトの名無しさん
2016/12/16(金) 18:31:33.63ID:XkjBV45Sショートカットの登録案内出すのは簡単だしねぇ。
0883デフォルトの名無しさん
2016/12/16(金) 18:45:25.14ID:PNCZZxG5UWPとかに至っては、もはや他の何でもないレベルなんだし。
語義通りフロントエンドだし、フロントエンドの技術を使った、って時点でフロントエンドでは無いんだろうか。
0884デフォルトの名無しさん
2016/12/16(金) 20:14:29.49ID:XkjBV45S0885デフォルトの名無しさん
2016/12/17(土) 14:03:49.55ID:D8aTFaeL.lengthではtrueされてしまいました…
0886デフォルトの名無しさん
2016/12/17(土) 14:04:13.47ID:D8aTFaeL0887デフォルトの名無しさん
2016/12/17(土) 18:47:52.93ID:fWgqKda0trimしてlength
0888デフォルトの名無しさん
2016/12/17(土) 19:13:34.39ID:FVEXEISPhttp://echo.2ch.net/test/read.cgi/hp/1478053599/313 で再質問したならURLを書きなされ
>887のように既出の回答が出てくる
0889デフォルトの名無しさん
2016/12/18(日) 22:58:54.63ID:LlbVYW0V0890デフォルトの名無しさん
2016/12/18(日) 23:05:17.59ID:KKAQOfJY0891デフォルトの名無しさん
2016/12/18(日) 23:22:26.84ID:T3p8SL260892デフォルトの名無しさん
2016/12/19(月) 05:12:54.85ID:axdrvEtR付けても付けなくても良いんだから、要るも要らないもハッキリは言えない
ただ好きにしたら良いと思う
俺は付けない
0893デフォルトの名無しさん
2016/12/19(月) 09:20:58.32ID:5ETaAwZt0894デフォルトの名無しさん
2016/12/19(月) 11:15:01.89ID:mMcAuoO30895デフォルトの名無しさん
2016/12/20(火) 00:12:59.42ID:2loEwKbtお前よりは賢そうだがな
0896デフォルトの名無しさん
2016/12/20(火) 08:30:08.45ID:SjXx1bqt0897デフォルトの名無しさん
2016/12/20(火) 08:42:09.52ID:fB91VH02生 同 .じ . /´ | (ゝ___) い
.し 士 .レ .__/'r-┴<ゝi,,ノ ro、 は、
.な で .ベ ∠ゝ (ゝ.//` ./`| }⌒j
.い し .ル } ⌒ /`ヽ、_∠l,ノ ・ヽ´
.! ! か の / ´..:.} >、、___, .r、 ソ、`\
/ ..:.:.} / |∨ ` ̄
/ ..:.:./ | 丶
/ _、 ..:.:.:.{ .{.:.:. \
{ ..:Y .ゝ、 {.:.:.:.:. ヽ
|、 ..:/ 丿 .:〉 >.- ⌒ . ヽ
/ {. ..:./ ソ ..:./ .( ..:.:.:` ..:}
./..:.:}.:.:./ ヘ、 ..:./ .\ ..:.:r_,ノ、.:.:}
./..:.:/|.:/ {.:./ X.:.:}.} X X
/..:.:/ .}.:| }:/ .Y丶ヽ Y.:Y
. __/.:/ { } 《.〈、 _,,__>.:》丶 Y.:\
/.:.:.:.:.::/ !.:.:ゝ ゝ.:. ̄ヾ ´:.:.:.:.:.:.:.:.:ヾゝ \.: ̄>
0898デフォルトの名無しさん
2016/12/20(火) 10:45:01.39ID:aCHo98uDTypeScriptだと「module」使ってできるけど。
0899デフォルトの名無しさん
2016/12/20(火) 10:58:27.96ID:MFk6FDSJ0900デフォルトの名無しさん
2016/12/20(火) 11:06:35.25ID:aCHo98uD0901デフォルトの名無しさん
2016/12/20(火) 11:12:09.01ID:wd0c4Sl+0902デフォルトの名無しさん
2016/12/20(火) 11:25:05.48ID:aCHo98uD----------------------------------
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() ってできますか?
----------------------------------
(問題解決しないレスはいらないヨ)
0903デフォルトの名無しさん
2016/12/20(火) 11:29:07.65ID:fAq+FOJm0904デフォルトの名無しさん
2016/12/20(火) 11:31:05.45ID:aCHo98uD試せない、試し方がわからない=すぐに分からない だから聞いてる。
(いちいち、めんどくせーな)
0905デフォルトの名無しさん
2016/12/20(火) 11:41:15.80ID:j9/nK/yZFoo: function() {
}
}
var foo = new Hoge.Foo()
でダメなん?
0906デフォルトの名無しさん
2016/12/20(火) 11:52:46.18ID:N26jdoYe試し方を聞いてないじゃん。
めんどくさいんじゃなくて、質問に横着しないで。
普通にnodeか何かか、chromeでF12でコンソール出せば試せるよ。
俺も
{
name:{
foo:function(){}
}
}
で、やると思う。
0907デフォルトの名無しさん
2016/12/20(火) 12:06:52.55ID:ZDgkmudgそういうのが聞きたいんじゃないと思う。
要するに、ファイル分ければES2015+でもexport/import適切に使うことで可能なことを、
一ファイル中に幾つものモジュールを入れられないかということだろう。
具体的に言うと、自モジュール内ではMyClassでアクセスできて、
それを他モジュール内ではMySpace.MyClassでアクセスできるようにするための、
最もスマートな方法が知りたいのだろう。
結論から言うと、ネイティブexport/importを諦めて
CommonJSチックなのを利用するしか無い。
その時点でES2015+としてはスマートさに欠けるが仕方がない。
もしくは我慢して全てをファイル分けする。
0908デフォルトの名無しさん
2016/12/20(火) 12:19:45.20ID:pjk6TxQO>結論から言うと、ネイティブexport/importを諦めて
>CommonJSチックなのを利用するしか無い。
楽勝に出来るのに自信満々でウソをつくのか?
// HogeHage.js
class hoge {}
class hage {}
const HogeHage = { hoge , hage};
export default HogeHage;
//
import HogeHage from 'HogeHage';
new HogeHage.hage();
0909デフォルトの名無しさん
2016/12/20(火) 12:59:06.22ID:MoWCkeVmなんだこれ・・・
0910デフォルトの名無しさん
2016/12/20(火) 13:33:59.46ID:020Rzxthこれいいね。クラス増えてもimportを書き換えなくてすむから。
0911デフォルトの名無しさん
2016/12/20(火) 15:19:02.93ID:N26jdoYeあー、なるほど。
それなら、
namespace = namespace | {};
namespace.foo = function(){
var _this=this;
: //必要な事
return コンストラクタ
}
で良いんじゃ?
0912デフォルトの名無しさん
2016/12/20(火) 15:27:29.72ID:43NQe2ZKクラスの継承に対応できないと思われる。
0913デフォルトの名無しさん
2016/12/20(火) 15:29:52.21ID:ZDgkmudg多分トランスパイラ使ってできると言ってるんだろうけど、
それは今のトランスパイラがCommonJSチックに変換する(しかない)からであって、
今の所のWhatWGのModule仕様やコンセンサスではそれができることにはなっていない。
0914デフォルトの名無しさん
2016/12/20(火) 15:30:17.27ID:N26jdoYe_thisのprototypeで何とかするくらいか。
たしかにめんどくさいな。
0915デフォルトの名無しさん
2016/12/20(火) 15:31:08.43ID:pjk6TxQO混乱しかもたらさない
0916デフォルトの名無しさん
2016/12/20(火) 15:50:26.64ID:43NQe2ZKimport、export はそもそもブラウザ(chrome等)で動作しないと思われる。
0917デフォルトの名無しさん
2016/12/20(火) 16:09:43.45ID:pjk6TxQO0918デフォルトの名無しさん
2016/12/20(火) 16:24:37.20ID:ZDgkmudgだからどっちみちES2015でスマートに書ききるのは無理、諦めてという話をしてる。
0919デフォルトの名無しさん
2016/12/20(火) 16:25:20.82ID:43NQe2ZK論外
0920デフォルトの名無しさん
2016/12/20(火) 16:26:35.17ID:43NQe2ZKのような気がしますね
0921デフォルトの名無しさん
2016/12/20(火) 16:46:50.43ID:j9/nK/yZ908の方法でよくない?変換された後がどうなろうが人は名前空間らしきもの使えてるじゃん。
0922デフォルトの名無しさん
2016/12/20(火) 17:25:01.21ID:L1JD/wQEこれとか
>>912
>>>905 >>906
>
>クラスの継承に対応できないと思われる。
0923デフォルトの名無しさん
2016/12/20(火) 19:12:02.94ID:N26jdoYevar使いたくないからbabel使う方がおかしい。
どーせvarに置き換わってるのに。
デカ目の型付き配列から、綺麗に確保したり返したりするレベルで正しくコンパイルされるならわかるけど、
そんなまがい物で満足する気持ちがわからん。
ブラウザ切り捨てるほうがマシ。
0924デフォルトの名無しさん
2016/12/20(火) 19:21:33.14ID:3IscN3UC0925デフォルトの名無しさん
2016/12/20(火) 22:08:14.12ID:YeETBa/Pトランスパイラが嫌なんじゃないよ。
トランスパイラはトランスパイラでしかない。
コンパイラなら意味はあるけど。
0926デフォルトの名無しさん
2016/12/20(火) 22:12:52.09ID:WrmQq8zj(hh,mmは1桁でも可)
わざわざgetDate()などして連結するしかないのでしょうか?
0927デフォルトの名無しさん
2016/12/20(火) 22:26:48.29ID:UE63r4futoISOStringして、replaceで(.*?)-(.*?)-(.*?)T(.*?):(.*?)\..*を、$2月$3日 $4;$5
で良いのでは?
0928デフォルトの名無しさん
2016/12/21(水) 00:05:55.85ID:xYX0mlO/どっちみちbabelなどは必要になるよ。
なぜなら小さなファイルに分割されていたら読み込みが遅くなるだろ?
だから結合処理が必要になるんだよ。
もちろん単純に結合しただけじゃ無理
0929デフォルトの名無しさん
2016/12/21(水) 00:10:17.85ID:RFNpxL9S0930デフォルトの名無しさん
2016/12/21(水) 00:11:10.15ID:tskPgAul0931デフォルトの名無しさん
2016/12/21(水) 01:30:04.07ID:XipnktJgSystemJSやばい遅いよね。Ang2は先に行きすぎ。
0932デフォルトの名無しさん
2016/12/21(水) 08:25:11.38ID:yT8Lkx8e広げるなよw
babelは要らん。それならwebpackで充分。
0933デフォルトの名無しさん
2016/12/21(水) 09:19:50.01ID:MCySocIXローカル表示にしたいのなら、決め打たずnavigator.languagesを見ながらIntlAPIを使ったほうが良いと思う。
0934デフォルトの名無しさん
2016/12/21(水) 12:33:15.81ID:X1dbNMbH高卒沸いたwww
0935デフォルトの名無しさん
2016/12/21(水) 21:06:14.85ID:xYX0mlO/せやね。早いところIEからEdgeに乗り換えてほしいね。
Microsoft Edgeに。
そうすればMicrosoft Edgeはimportサポートしてるから、
あとはFirefoxやChromeの対応を待つだけで良くなる。
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Statements/import
0936デフォルトの名無しさん
2016/12/21(水) 21:40:39.60ID:HG47hG4n「ECMAScript デス 6」で立てるとして「ECMAScript デス 4」のテンプレを元にリンク修正してみた
https://fiddle.jshell.net/65tysya6/1/show/
修正事項があれば意見よろしく
0937デフォルトの名無しさん
2016/12/21(水) 21:57:51.64ID:xYX0mlO/0938デフォルトの名無しさん
2016/12/22(木) 00:03:42.02ID:N3v3bTKO反対意見は具体的に書くべきだな
0939デフォルトの名無しさん
2016/12/22(木) 02:27:59.81ID:N3v3bTKO仕切るな、という奴が仕切ってる
+ JavaScript(ECMAScript)質問用スレッド vol.123 + [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/tech/1482325013/
0940デフォルトの名無しさん
2016/12/22(木) 14:53:43.08ID:NvKCe79q関連スレのURLに「-100」や「l50」が残ってるね
0941デフォルトの名無しさん
2016/12/22(木) 18:30:07.32ID:0dTZqklr0942デフォルトの名無しさん
2016/12/22(木) 23:14:31.28ID:zr2stMzt修正した
https://fiddle.jshell.net/65tysya6/2/show/
0943デフォルトの名無しさん
2016/12/23(金) 08:46:25.82ID:hLVMkx+6建てても落ちてたのに今や勝手に仕切るなと言われるほどになったんだなぁ(しみじみ)
0944デフォルトの名無しさん
2016/12/23(金) 12:04:43.09ID:L8VrAqOy0945デフォルトの名無しさん
2016/12/23(金) 12:15:47.82ID:UAK6AX6kで、お前誰だよ
0946デフォルトの名無しさん
2016/12/30(金) 21:00:20.93ID:x814SSV+最新の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-trends/
0947デフォルトの名無しさん
2016/12/30(金) 22:06:19.21ID:Su1lYfd3ES2016を見ても分かる通り、2016年はJavaScriptにとって休憩・成熟の年。
0948デフォルトの名無しさん
2016/12/31(土) 15:41:57.11ID:nUjD4DbZ「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
0949デフォルトの名無しさん
2016/12/31(土) 15:45:11.94ID:2NsOdIiQそれもう何年も実現できてないやつじゃないか?
0950デフォルトの名無しさん
2016/12/31(土) 15:52:57.77ID:fr6r+Jszあちこちに宣伝しなくてもええんやで
0951デフォルトの名無しさん
2016/12/31(土) 15:58:37.49ID:2NsOdIiQ0952デフォルトの名無しさん
2016/12/31(土) 16:13:59.22ID:z+aCJeF2ESの動向次第だけどJSキラーどころか実行エンジンに組み込まれるのが既定路線っしょ
0953デフォルトの名無しさん
2016/12/31(土) 17:06:25.32ID:2NsOdIiQ新しいGUIツールキットを作るのか、
それともReactなどを使うのか
0954デフォルトの名無しさん
2017/01/01(日) 15:46:08.23ID:fjo8Lp7F0955デフォルトの名無しさん
2017/01/02(月) 08:37:47.50ID:GJGsj00thttps://codezine.jp/article/detail/9072
http://qiita.com/kenju/items/3ec95aebd30bc95b862c
特にasm.jsの中の人へのインタビュー記事がいい感じ
JavaScriptを置き換えるものではなく、asm.jsの後継な印象
0956デフォルトの名無しさん
2017/01/02(月) 14:28:53.67ID:cJ1XZtMTECMAScript デス 6
http://echo.2ch.net/test/read.cgi/tech/1483332914/
0957デフォルトの名無しさん
2017/01/04(水) 15:04:29.19ID:umsjl3YZ記事の注目度を量るものが作りたいのです。
idのふってある記事があり、スクロールをしてその記事の所で一定時間以上留まった場合に
データベースに+1クリックされた場合に+10といったような感じで記事の注目度を集計したいのですが、
JavaScriptで作れるでしょうか?
0958デフォルトの名無しさん
2017/01/04(水) 15:23:43.08ID:NPU+n2sm0959デフォルトの名無しさん
2017/01/04(水) 16:52:21.31ID:mqV6TFzJどうやったらいいのか書いてやれよ、タコ
0960デフォルトの名無しさん
2017/01/04(水) 17:12:55.51ID:umsjl3YZ作成可能ということがわかれば大丈夫です。
お手数をおかけしましました。
0961デフォルトの名無しさん
2017/01/05(木) 06:23:52.60ID:sTWjNqOnディープラーニングを使って、雑多な挙動から人の見てるポイントを当てられるようにしたいね。
0962デフォルトの名無しさん
2017/01/13(金) 12:58:49.41ID:/Ly9HZcxfor( v in list ){
v.unko();
}
こうすると警告でないけど、これちょっと過保護過ぎない?
for( v in list ){
if( list.hasOwnProperty(v) ){
v.unko();
}
}
0963デフォルトの名無しさん
2017/01/13(金) 14:12:40.46ID:zjO4Avujjavascript for inでググれ
0964デフォルトの名無しさん
2017/01/13(金) 18:31:36.66ID:/Ly9HZcxググったけど、納得はできん
0965デフォルトの名無しさん
2017/01/13(金) 22:33:38.93ID:9L2JHio8> なんでダメなん?
JSLintを使ってるのがだめ。今はESLintを使うのが普通。
使わないやつはもってのほか
0966デフォルトの名無しさん
2017/01/14(土) 01:36:36.33ID:8r+htSmNそれは配列もしくはイテレータか?Yesならfor-ofを使え
それはプロトタイプを辿ることを期待しているか?Yesならそのままfor-inを使え、NoならObject.keysを使え
0967デフォルトの名無しさん
2017/01/14(土) 05:07:21.21ID:QKiPrSuQそれならTSで書く
0968デフォルトの名無しさん
2017/01/14(土) 07:06:34.71ID:iwTuat6d0969デフォルトの名無しさん
2017/01/14(土) 10:39:47.10ID:jF4idfYe答えは「Yes」です。
例えば、エラーのチェックに加え、ESLintはベストプラクティスや文体といった面でのコードフォーマットのチェックを行えます。
残念ながらESLintとの互換性はTypeScript ESLint Parserプロジェクトに依存しており、このプロジェクトはまだ実験段階です。
http://postd.cc/i-was-wrong-about-typescript-here-is-why/
0970デフォルトの名無しさん
2017/01/15(日) 00:50:13.29ID:yEIrJursこう書いたら汚れてしまいます何でですか?
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();
0971デフォルトの名無しさん
2017/01/15(日) 01:22:24.01ID:H2QAGxh+0972デフォルトの名無しさん
2017/01/15(日) 07:12:01.12ID:xznLPQ3Knew演算子が使われていないから
thisの使い方を勉強し直すべき
0973デフォルトの名無しさん
2017/01/18(水) 22:47:50.54ID:eABpypnl実際にウェブページを開いてるChromeから
ChromeのコンソールよりJSの実行はできたのですが
setIntervalのような処理をしたい場合はどうしら良いのでしょうか?
0974973
2017/01/18(水) 22:57:14.78ID:eABpypnlsetIntervalをコンソールに打って実行すると
一度は処理をしてくれるのですが、それ以降は処理をしてくれません。
ChromeでsetIntervalの機能を実現するためには、どうしたらよろしいでしょうか。
ここまで書いておいてなんですが、これはChromeの板とかで聞いた方がよろしいでしょうか。
0975デフォルトの名無しさん
2017/01/18(水) 23:12:38.51ID:Vst0K44uそこを使って自分がしたいなにかを実現するところではありません。
0976デフォルトの名無しさん
2017/01/18(水) 23:21:41.38ID:eABpypnl0977デフォルトの名無しさん
2017/01/19(木) 14:41:41.47ID:+apAMdxY使うときは誤解の余地のない定型的な使い方のみとする。
0978デフォルトの名無しさん
2017/01/19(木) 22:22:16.11ID:owrdnXbA誤解の余地のない書き方をするのが普通
0979デフォルトの名無しさん
2017/01/20(金) 17:51:47.00ID:wJtT45vW0980デフォルトの名無しさん
2017/01/20(金) 18:07:31.87ID:GCbU9UQF0981デフォルトの名無しさん
2017/01/20(金) 18:41:31.61ID:ay+DjVWx適切に学習すればどんなものでも使えるものだ
0982デフォルトの名無しさん
2017/01/21(土) 13:38:14.94ID:s6Ci3q5W・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 = 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を超えたあたりから変化しないみたいです
何が原因か分かる方いたら教えてください..
0983デフォルトの名無しさん
2017/01/21(土) 14:13:04.39ID:pcFLx4Ty続きの質問をWeb制作板でどうぞ
http://echo.2ch.net/test/read.cgi/hp/1478053599/
0984デフォルトの名無しさん
2017/01/21(土) 14:27:04.14ID:s6Ci3q5Wありがとうございます,正常に動くようになりました
今度からはそちらで質問させてもらいます
0985デフォルトの名無しさん
2017/01/21(土) 14:27:04.70ID:s6Ci3q5Wありがとうございます,正常に動くようになりました
今度からはそちらで質問させてもらいます
0986デフォルトの名無しさん
2017/01/28(土) 19:46:33.43ID:Zf418MWM> 570 : Name_Not_Found2017/01/27(金) 16:24:15.01 ID:???
> eval()について詳しくなんでもいいから
ES3 http://www2u.biglobe.ne.jp/~oz-07ams/2002/ecma262r3/15-1_Global_Object.html#section-15.1.2.1
ES7 http://www.ecma-international.org/ecma-262/7.0/#sec-eval-x
ES LS https://tc39.github.io/ecma262/#sec-eval-x
MDN https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/eval
0987デフォルトの名無しさん
2017/01/29(日) 15:12:16.35ID:CHlx9RpShttps://risingstars2016.js.org/ja/
JavaScriptコミュニティは日々進化しています。今日のトレンドも数か月後には陳腐化しているなんてことは日常茶飯事です。
2016年は終わってしまいましたが、何か重要なことを見逃したのではないかと感じているそこのあなた! 2016年の主要なトレンドをおさらいして、そんな不安を払拭しちゃいましょう。
過去12か月に獲得された Github のスター数を比較して、2016年に支持を集めたプロジェクトを数値に基づいて評価していきます。
2015年はなんといっても React でした。そして、Flux 実装を席巻したのは Redux でしたね。 2016年、JavaScript の人気プロジェクトはどのようなものだったのでしょうか?
0988デフォルトの名無しさん
2017/01/29(日) 15:34:26.52ID:0VLffaoKGithub のスターはブックマークにすぎないんだから
人気プロジェクトの指標にはならん
そこで紹介されている下のほうがまともなデータだな
http://stateofjs.com/2016/introduction/
例えば、フロントエンドフレームワーク
http://stateofjs.com/2016/frontend/
Vueなんて全く使われてなくて
ReactがVueの5倍、Angularが3倍使われてる
テスト
http://stateofjs.com/2016/testing/
当然のごとくMochaやJasmineが一番使われてる。
Ava?Jest?なにそれw
0989デフォルトの名無しさん
2017/01/31(火) 19:22:55.55ID:n4DQf77M0990デフォルトの名無しさん
2017/02/03(金) 12:39:42.93ID:WkcYvCVV3を選択し、かつ次に2を選択したときだけドロップダウンリストの
項目を強制的に""にするスクリプトを組みたいのですが、どうすればいいでしょうか?
0991デフォルトの名無しさん
2017/02/03(金) 13:36:03.89ID:GW4ZA3Nl0992デフォルトの名無しさん
2017/02/03(金) 16:02:26.99ID:DKCwNfD0質問する場所をweb制作板と間違えてるよ
0993デフォルトの名無しさん
2017/02/03(金) 17:50:24.30ID:OZdxyk8U0994デフォルトの名無しさん
2017/02/03(金) 19:55:50.66ID:CYSEj/nA0995デフォルトの名無しさん
2017/02/03(金) 21:05:28.79ID:c/3M2MXW+ JavaScript(ECMAScript)質問用スレッド vol.123 + [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/tech/1482325013/
0996デフォルトの名無しさん
2017/02/03(金) 21:05:56.21ID:c/3M2MXW0997デフォルトの名無しさん
2017/02/03(金) 21:06:12.15ID:c/3M2MXW0998デフォルトの名無しさん
2017/02/03(金) 21:06:32.76ID:c/3M2MXW0999デフォルトの名無しさん
2017/02/03(金) 21:06:52.71ID:c/3M2MXW1000デフォルトの名無しさん
2017/02/03(金) 21:07:19.52ID:c/3M2MXW+ JavaScript(ECMAScript)質問用スレッド vol.123 + [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/tech/1482325013/
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
life time: 158日 19時間 43分 55秒
10021002
Over 1000Thread運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 2ちゃんねる専用ブラウザからの広告除去
★ 2ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
http://premium.2ch.net/
▼ 浪人ログインはこちら ▼
https://login.2ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。