アカウント名:
パスワード:
邪悪な仕様を列挙すると・var の巻き上げ・ブロックスコープがない・モジュールがない・class 構文がない (class のようなものは作れるのに!)・ただの function なのに this にアクセス出来る (コールバックに登録した時は便利だけど、直で呼び出した時は this は何?とか)他も細かいのは色々…
ただ、そんな JavaScript を俺は好きだ。
ES6では巻き上げ無しのブロックスコープ宣言letが入ったし、モジュールも、class構文も、thisバインド関数もあるじゃん。
もちろん、ES6 でかなりの部分が解決されたけど、まだ当たり前のように使えるようになるには数年掛かると思うよ。
現状でも TypeScript を使えばかなりの部分が解決されるから、基本 TypeScript でやっちゃってるけどね。(短いものは直接 JavaScript だけど)
JSが使われる環境も目的も広いから、何をもって当たり前と言ってるのかが分からない。最近モジュール周り仕様がファイナライズされたから、ES6->ES5コンパイラをもって、当たり前に使えるとしてもいいと思う。
> JSが使われる環境も目的も広いから、何をもって当たり前と言ってるのかが分からない。普通意味するところは、ES6 を直接実行できる環境が全てのブラウザで提供されている事だ。
> 最近モジュール周り仕様がファイナライズされたから、ES6->ES5コンパイラをもって、当たり前に使えるとしてもいいと思う。ES6->ES5コンパイラなんて、TypeScript 以外実用的じゃないんで、まだ当たり前にはなってないね。TypeScript もES6の一部を取り入れてるだけだし。
TypeScriptはES6->ES5コンパイラじゃない。Traceurとかがそうであって、十分実用的。全てのブラウザとか言ってたら、ES5でさえ未だに当たり前に使えないことになってしまう。それにES6は互換性があるから、段階的にES5の上に実装していくことができる。現に全てのメジャーブラウザの最新版では、何らかの機能が実装されてる。逆に今だES5の公式テストにフルパスする実装は殆ど無い。万人に共通する当たり前だなんで言えない。
> TypeScriptはES6->ES5コンパイラじゃない。いや、TypeScript の範疇で使えば部分的なES6->ES5コンパイラといえる。
> Traceurとかがそうであって、十分実用的。これも部分的なものだろうし、デバッグが困難なコードを出力するのに実用的とは言えない。
ES5 はメジャーなブラウザはテストに99%程度合格してるから、当たり前のように使えるといえる。(古いバージョンのブラウザをサポートし続ける必要があれば、ほとんど永久に無理だが)
Traceurは全機能網羅してるし、デバックも十分可能。使ったこと無いのに想像で言わないで欲しい。
もちろん使ったことあるけど、ソースはかなり変形されて出力されてた。それでも(無理やり)デバッグ可能といっているのであれば、そうなんだろうね。
あと、http://kangax.github.io/compat-table/es6/ [github.io]ここ見てサポートしてない機能をあるなと思っただけ。全機能網羅してるかは詳細に調べてはいない。
ソースマップというものがあるんだよ。なぜTypeScript知ってるのに分からないのか。
あーなるほど。TypeScript は使う必要が無いし、以前使った時に変数の値を変更できなかったから使うのをやめた。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
犯人は巨人ファンでA型で眼鏡をかけている -- あるハッカー
JavaScript の言語仕様の邪悪さは + 演算子だけではない… (スコア:3)
邪悪な仕様を列挙すると
・var の巻き上げ
・ブロックスコープがない
・モジュールがない
・class 構文がない (class のようなものは作れるのに!)
・ただの function なのに this にアクセス出来る (コールバックに登録した時は便利だけど、直で呼び出した時は this は何?とか)
他も細かいのは色々…
ただ、そんな JavaScript を俺は好きだ。
Re: (スコア:0)
ES6では巻き上げ無しのブロックスコープ宣言letが入ったし、
モジュールも、class構文も、thisバインド関数もあるじゃん。
Re: (スコア:2)
もちろん、ES6 でかなりの部分が解決されたけど、まだ当たり前のように使えるようになるには
数年掛かると思うよ。
現状でも TypeScript を使えばかなりの部分が解決されるから、基本 TypeScript でやっちゃってるけどね。
(短いものは直接 JavaScript だけど)
Re: (スコア:0)
JSが使われる環境も目的も広いから、何をもって当たり前と言ってるのかが分からない。
最近モジュール周り仕様がファイナライズされたから、ES6->ES5コンパイラをもって、当たり前に使えるとしてもいいと思う。
Re:JavaScript の言語仕様の邪悪さは + 演算子だけではない… (スコア:2)
> JSが使われる環境も目的も広いから、何をもって当たり前と言ってるのかが分からない。
普通意味するところは、ES6 を直接実行できる環境が全てのブラウザで提供されている事だ。
> 最近モジュール周り仕様がファイナライズされたから、ES6->ES5コンパイラをもって、当たり前に使えるとしてもいいと思う。
ES6->ES5コンパイラなんて、TypeScript 以外実用的じゃないんで、まだ当たり前にはなってないね。
TypeScript もES6の一部を取り入れてるだけだし。
Re: (スコア:0)
TypeScriptはES6->ES5コンパイラじゃない。
Traceurとかがそうであって、十分実用的。
全てのブラウザとか言ってたら、ES5でさえ未だに当たり前に使えないことになってしまう。
それにES6は互換性があるから、段階的にES5の上に実装していくことができる。
現に全てのメジャーブラウザの最新版では、何らかの機能が実装されてる。
逆に今だES5の公式テストにフルパスする実装は殆ど無い。
万人に共通する当たり前だなんで言えない。
Re:JavaScript の言語仕様の邪悪さは + 演算子だけではない… (スコア:2)
> TypeScriptはES6->ES5コンパイラじゃない。
いや、TypeScript の範疇で使えば部分的なES6->ES5コンパイラといえる。
> Traceurとかがそうであって、十分実用的。
これも部分的なものだろうし、デバッグが困難なコードを出力するのに実用的とは言えない。
ES5 はメジャーなブラウザはテストに99%程度合格してるから、当たり前のように使えるといえる。
(古いバージョンのブラウザをサポートし続ける必要があれば、ほとんど永久に無理だが)
Re: (スコア:0)
Traceurは全機能網羅してるし、デバックも十分可能。
使ったこと無いのに想像で言わないで欲しい。
Re:JavaScript の言語仕様の邪悪さは + 演算子だけではない… (スコア:2)
もちろん使ったことあるけど、ソースはかなり変形されて出力されてた。
それでも(無理やり)デバッグ可能といっているのであれば、そうなんだろうね。
あと、
http://kangax.github.io/compat-table/es6/ [github.io]
ここ見てサポートしてない機能をあるなと思っただけ。全機能網羅してるかは詳細に調べてはいない。
Re: (スコア:0)
ソースマップというものがあるんだよ。
なぜTypeScript知ってるのに分からないのか。
Re:JavaScript の言語仕様の邪悪さは + 演算子だけではない… (スコア:2)
あーなるほど。
TypeScript は使う必要が無いし、以前使った時に変数の値を変更できなかったから使うのをやめた。