わるいとこ
- あのグローバル変数の宣言方法はないだろう。名前空間の概念がない。モジュールシステム(名前とかどうでもいいけどファイル間の連携が全く考えられてない)がない
- new。いらないし分かりにくい
- == と === と typeof と instanceof。型の判定が面倒
- イテレータの規格への追加が遅すぎる。もう Array like object でいいだろ
- this。bound method という概念がない
- CLI で使えるインタープリターが入手しにくい
- 存在しない属性プロパティメソッドなんでもいいけどデフォルトで undefined になる。その割に変数名では例外吐く
- 例外使えない人間大杉。catch した例外をわざわざ戻り値にするライブラリとか頭を疑う。Web ならともかく例外放置して動き続けるのはやめて欲しいわ
- 関数内で yield と return 同時に使おうとすると syntax error
- とにかく introspect しにくい
- 低速だからあれは使うなこれは使うなというアホがいる。しかもそれなりに名前が売れてる奴。プロファイルとらずに高速化とかどうしようもない
いいとこ
- ネイティブスレッド (Worker) がある
- 関数の記述コストが低い。もちろんデメリットにもなり得る
最新だとかなり Python に近い。でも名前空間とモジュールがないせいで台無しすぎる