+ JavaScript(ECMAScript)質問用スレッド vol.122 + [無断転載禁止]©5ch.io
■ このスレッドは過去ログ倉庫に格納されています
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/
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が使えるのか?
■ このスレッドは過去ログ倉庫に格納されています