[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 2chのread.cgiへ]
Update time : 06/01 04:20 / Filesize : 154 KB / Number-of Response : 574
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

ECMAScript デス 4



1 名前:デフォルトの名無しさん mailto:sage [2012/01/02(月) 05:16:18.29 ]
《ECMAScriptを語るスレ》

1. - 概要 -
ECMA-262規格として知られる言語(通称 ECMAScript)についての利用法や言語仕様、
その他四方山話をするスレです。
Standard ECMA-262 ECMAScript Language Specification Edition 5.1 (June 2011) 標準規格(英語)
www.ecma-international.org/publications/standards/Ecma-262.htm
Annotated ECMAScript 5.1
es5.github.com/
Draft Specification for ES.next (Ecma-262 Edition 6)
wiki.ecmascript.org/doku.php?id=harmony:specification_drafts
Under Translation of ECMA-262 3rd Edition (日本語訳)
www2u.biglobe.ne.jp/~oz-07ams/prog/ecma262r3/


■前スレ
ECMAScript デス 3
toro.2ch.net/test/read.cgi/tech/1190160481/

■過去スレ
JavaScript デス
pc5.2ch.net/test/read.cgi/tech/1052273054/
ECMAScript デス 2
pc11.2ch.net/test/read.cgi/tech/1088298991/

307 名前:デフォルトの名無しさん mailto:sage [2013/09/05(木) 09:28:25.95 ]
5.1thの和訳ってないんですか?

308 名前:デフォルトの名無しさん mailto:sage [2013/09/05(木) 12:48:00.89 ]
変に英文キーワードの混じった和訳のほうが読みにくいと思うよ

309 名前:デフォルトの名無しさん mailto:sage [2013/09/05(木) 15:35:31.71 ]
>>307
一応ある(もちろん非公式・未保証)
忍者規制でURL直書きできないんで↓で:
www.webzoit.net/hp/it/internet/homepage/script/ecmascript/ecma262_51/

310 名前:デフォルトの名無しさん mailto:sage [2013/09/06(金) 01:32:40.32 ]
一日ぶりに来て伸びてるかと思えばなんだこれ。
>>290=298=301
あんた誰だよ。

ついでに言うとVOは名前だけEnvironment Record Specification Typesに変わってるぞ.

>>305
privateてdraft落ちてなかったっけ?
symbolがユーザー定義できなくなっただろ。

311 名前:デフォルトの名無しさん mailto:sage [2013/09/06(金) 01:58:18.29 ]
間違いなく採用はされる、Symbolとprivateをどうまとめるかの議論がもっと必要そうなだけ。
でもES7にしようとは誰も思ってないと思う。
HTMLのように1年毎くらいでES6.1、6.2と出る可能性がかなり高いかもしれない。

312 名前:デフォルトの名無しさん mailto:sage [2013/09/06(金) 03:31:25.49 ]
>>310
ユーザー定義は出来るのでは
wiki.ecmascript.org/doku.php?id=harmony:modules_standard&s=symbol
wiki.ecmascript.org/doku.php?id=harmony:private_name_objects

313 名前:デフォルトの名無しさん mailto:sage [2013/09/06(金) 07:05:18.48 ]
>>312
それharmony、古い。draftが出てる。
Symbolまわりは今グドグドやっててworking draftに入ったり外れたりしてる。

314 名前:デフォルトの名無しさん mailto:sage [2013/09/06(金) 07:53:24.88 ]
>>313だが知らんと分かりづらいな。
harmonyで提案された中から選別されてdraftになる。それが↓のCurrent Working Draftのpdfの仕様書。
ttp://wiki.ecmascript.org/doku.php?id=harmony:specification_drafts

この仕様も最新の議論が反映されてるわけじゃない。wikiは古いのも新しいのも関係なくページを残してるからそれが仕様になるとは限らんよ。
んで、だいたいharmonyの中身はes6に、漏れたのとstrawmanがes7に行く形。value objectみたいに。

基本es6はjavascript1.8.5の改良、es7はそれより上だからes7が出て初めて未来と遭遇するわけ。

315 名前:デフォルトの名無しさん mailto:sage [2013/09/06(金) 09:26:15.18 ]
>>314
いや、今のドラフトに乗ってないことなんて百も承知なんだけど。
そうは言ってもV8には既に仮実装されてるし、早期に採用される可能性が高い。
むしろされない理由がない。話し合いが足らないだけで採用する方向では合意取れてるんだし。
この頃は機能も増えて各進行度もバラバラドラフトだけじゃ追い切れないよ。
ちゃんとコミュニティの情勢も読まなきゃ。



316 名前:デフォルトの名無しさん mailto:sage [2013/09/06(金) 10:33:10.17 ]
ES.nextという言葉が使われだしてからもう実質Living Standardになってる
合意が取れてもドラフトに載せられるまでまとめるのが間に合わなくなりつつあるしあてにはできない

317 名前:デフォルトの名無しさん [2013/09/06(金) 13:06:46.25 ]
「あーこりゃ仕様に目が眩んで現実が見えてない」ってやつか

318 名前:デフォルトの名無しさん mailto:sage [2013/09/06(金) 20:12:36.57 ]
Number.MAX_SAFE_INTEGERとか
2^53±1のどの値にするかやプロパティ名になにが適切かが
決まるだけでもだいぶかかったしな

319 名前:デフォルトの名無しさん mailto:sage [2013/09/06(金) 21:36:06.53 ]
昨今一番もてはやされてるかもしれない言語が
十年ぶりに大きく変わろうとしているのに
この過疎りようはどうにかならんのかねぇ

320 名前:デフォルトの名無しさん [2013/09/06(金) 22:43:40.90 ]
ここ本スレじゃねぇし。
誰もECMAScriptなんて呼ばねぇよ。

321 名前:デフォルトの名無しさん mailto:sage [2013/09/06(金) 23:06:35.21 ]
ここよりも盛り上がってる本スレが存在するとな!?
是非教えてもらいたいw

322 名前:デフォルトの名無しさん mailto:sage [2013/09/07(土) 00:22:32.33 ]
JavaScriptで検索ぐらいしようよw

323 名前:デフォルトの名無しさん mailto:sage [2013/09/07(土) 07:53:44.82 ]
gaslight.co/blog/does-coffeescript-have-a-future

3年くらい遅くねぇか…

324 名前:デフォルトの名無しさん mailto:sage [2013/09/07(土) 13:04:21.73 ]
今まではその役割も兼ねてきたがこれからはTypeScriptって言われてる

325 名前:デフォルトの名無しさん mailto:sage [2013/09/07(土) 14:41:13.54 ]
JavaScriptで検索してもここよりもスレNo少なくて最近の書き込み数も劣ってるスレしか見つからんな



326 名前:デフォルトの名無しさん mailto:sage [2013/09/07(土) 18:47:43.00 ]
2ch全体ならWeb制作版の質問スレが一番賑わってるかね

327 名前:デフォルトの名無しさん mailto:sage [2013/09/07(土) 19:00:27.22 ]
それを言うのなら、
ウェブプログラム版じゃね?
なんでプログラム板と分かれてるのか知らないけど

328 名前:デフォルトの名無しさん mailto:sage [2013/09/07(土) 19:01:26.63 ]
いやWeb制作版だよ。

桁違いすぎるw

+ JavaScript の質問用スレッド vol.108 +
toro.2ch.net/test/read.cgi/hp/1378462421/

329 名前:デフォルトの名無しさん mailto:sage [2013/09/07(土) 20:47:44.93 ]
屁理屈乙
そこ質問スレだから
俺も仕方ないから底で議論したりしてるけど
本来NGだから

330 名前:デフォルトの名無しさん mailto:sage [2013/09/07(土) 23:24:39.01 ]
[JavaScript] スクリプト言語34 [Perl,Python,PHP]
toro.2ch.net/test/read.cgi/tech/1367771981/

これじゃないの?

331 名前:デフォルトの名無しさん mailto:sage [2013/09/08(日) 00:21:12.67 ]
そこは元JSerの隔離スレの残り
JSerとの衝突で一時スレが喧嘩分裂した

今は収まってて本スレはこっち
【PHP,Python】スクリプト,バトルロワイヤル37【Perl,Ruby,JS】
toro.2ch.net/test/read.cgi/tech/1376836047/

332 名前:デフォルトの名無しさん mailto:sage [2013/09/08(日) 01:05:07.84 ]
今月のミーティングでは細かくはあるけど非常によく使う部分に関わる重要な部分が決まるみたいだな

333 名前:デフォルトの名無しさん mailto:sage [2013/09/08(日) 01:54:36.00 ]
ジェネレーター周りはこれで変更無さそう
domenic.me/2013/09/06/es6-iterators-generators-and-iterables/

334 名前:デフォルトの名無しさん mailto:sage [2013/09/10(火) 13:52:57.70 ]
ES5の非常に秀逸な記事を見つけた。
このレベルは中々無い。
constellation.hatenablog.com/entry/20101205/1291564928

335 名前:デフォルトの名無しさん mailto:sage [2013/09/11(水) 00:05:34.67 ]
多分unique symbols/private namesはES6に間に合って
どちらもユーザー定義出来ると思う



336 名前:デフォルトの名無しさん mailto:sage [2013/09/14(土) 02:23:58.45 ]
>>334
記述子使ったことない奴向けだな

337 名前:デフォルトの名無しさん mailto:sage [2013/09/16(月) 23:03:46.05 ]
ES6のオブジェクトリテラルは面白いな
wiki.ecmascript.org/doku.php?id=harmony:object_literals

338 名前:デフォルトの名無しさん mailto:sage [2013/09/17(火) 04:47:04.56 ]
<| とか妙な記号の並び使うのはどうなのよ

339 名前:デフォルトの名無しさん [2013/09/17(火) 12:09:02.13 ]
obj = { a: 1 }
obj.= { b: 2 }
obj //{ a: 1, b: 2 }

が欲しい

340 名前:デフォルトの名無しさん mailto:sage [2013/09/17(火) 14:46:47.01 ]
演算子も1つじゃ足りなかったら、オーバーライドしなくても2つ3つと組み合わせればいくらでも作れるのね
そう言えば細菌は主にsortで使う、-1,0,1を返す<=>演算子が提案されてたね

341 名前:デフォルトの名無しさん mailto:sage [2013/09/17(火) 14:54:12.59 ]
んなもん大昔からPerlにあるわけだが

342 名前:デフォルトの名無しさん mailto:sage [2013/09/17(火) 22:38:41.72 ]
harmony:proposalsのページ情報がくっそ古くて役たたねえな

配列内包は

[ x for (x of a) if (x.color === ‘blue’) ]
[ square(x) for (x of [1,2,3,4,5]) ]
[ [i,j] for (i of rows) for (j of columns) ]

じゃなくて今はこうだろ

[ for (x of a) if (x.color === ‘blue’) x ]
[ for (x of [1,2,3,4,5]) square(x) ]
[ for (i of rows) for (j of columns) [i,j] ]

wiki.ecmascript.org/doku.php?id=harmony:array_comprehensions

343 名前:デフォルトの名無しさん mailto:sage [2013/09/18(水) 01:48:14.19 ]
for ofはfor each inでよかったのにって思ってるのは俺だけか?
E4Xから取り込んでソースコード互換を残して欲しかった。

344 名前:デフォルトの名無しさん mailto:sage [2013/09/18(水) 02:20:20.06 ]
for-each-inはfor-inと同様にプロトイプも辿る
配列にも安全に使えないぽっと出のポンコツ内部イテレータもどきだったでしょ

for-ofは正真正銘の外部イテレータでES6の中核機能
月とすっぽんくらい、ほんとに全然違う

JSは汎用的な言語だからE4XはES標準に組み込まれるまではいかないだろう

345 名前:デフォルトの名無しさん mailto:sage [2013/09/18(水) 02:38:35.03 ]
E4Xはこれで我慢して
wiki.ecmascript.org/doku.php?id=harmony:quasis

document.body.appendChild(dom`<span>${message}</span>`)
とか可能だと思う



346 名前:デフォルトの名無しさん [2013/09/18(水) 06:52:13.60 ]
これ楽しみにしてたのに否決されたらショックだ……
https://twitter.com/domenic/status/380002233024516096

347 名前:デフォルトの名無しさん [2013/09/18(水) 21:46:30.03 ]
https://www.youtube.com/watch?v=mmppwhkJz_A

348 名前:デフォルトの名無しさん mailto:sage [2013/09/19(木) 00:00:30.00 ]
www.youtube.com/watch?v=obwMsk5JzxQ

349 名前:デフォルトの名無しさん mailto:sage [2013/09/19(木) 00:07:13.85 ]
www.youtube.com/watch?v=PJ1hUr7YJ-8

350 名前:デフォルトの名無しさん mailto:sage [2013/09/19(木) 02:15:58.26 ]
>>344
いやいや、シンタックスをfor each inにしてセマンティックスをfor ofにしてくれって意味。

351 名前:デフォルトの名無しさん mailto:sage [2013/09/19(木) 02:40:51.35 ]
動作が違うんだからソース互換守れないじゃん
何いってんのよ

352 名前:デフォルトの名無しさん mailto:sage [2013/09/19(木) 03:36:17.94 ]
<お知らせ>
このスレの住民が引っ越してきます
toro.2ch.net/test/read.cgi/tech/1330477388

353 名前:デフォルトの名無しさん mailto:sage [2013/09/19(木) 14:12:57.57 ]
DOMWorkerのTransferable objectsの仕組みをJSコアでサポートすることにより、
Workerの自由度と、将来のWorkerLikeな機能の可能性が格段に増す。
wiki.ecmascript.org/doku.php?id=strawman:structured_clone

これと同系統な仕様で、ES7期待の星のParallels
wiki.ecmascript.org/doku.php?id=strawman:data_parallelism

354 名前:デフォルトの名無しさん mailto:sage [2013/09/19(木) 16:46:08.91 ]
ES6だと念願(?)だった配列のクローンがこんな簡単にできるのな。
a1 = [1,2,3,2,1]
a2 = [...a1] //[1,2,3,2,1]

でも現状のドラフトの仕様だとこれは配列にしか適応できない?
ここでも挙がってるがFirefoxの実装のようにいてレートしてくれる方がいいのにな。
esdiscuss.org/topic/set-to-array-conversions
そしたらこんな使い方もできるのに。

a3 = [...new Set(a1)] //[1,2,3] 重複排除

m1 = new Map()
m2 = new Map([...m1]) //Mapのクローン

355 名前:デフォルトの名無しさん mailto:sage [2013/09/19(木) 17:54:56.39 ]
このスレ過疎り気味だけど
お陰で最初の方を見るとES4の分析がいろいろされてて面白いな
ES6は時間を書けるだけのものになったのか、
また行き過ぎてないかを考えるのにちょうどいい



356 名前:デフォルトの名無しさん mailto:sage [2013/09/19(木) 21:08:28.43 ]
>>354
> ES6だと念願(?)だった配列のクローンがこんな簡単にできるのな。

え? 適当なライブラリの関数使えば、
今でも簡単にできるんじゃね?

357 名前:デフォルトの名無しさん mailto:sage [2013/09/19(木) 21:30:18.63 ]
たかが配列のコピーに何でライブラリ入れなきゃいけないんだってことだろjk

358 名前:デフォルトの名無しさん mailto:sage [2013/09/19(木) 21:34:46.29 ]
配列のコピーだけでプログラムが終わることなんて無いだろ?
ライブラリを入れるだけで、配列のコピー以外も含めて圧倒的に生産性が上がる。
目的と手段を履き違えてないか?

359 名前:デフォルトの名無しさん mailto:sage [2013/09/19(木) 21:52:32.75 ]
まあ今の仕様だと多重配列にはsliceと同じ問題があるけど
arr.slice()よりはカッコイイって事だな

イテレータブルなのを全部展開してくれれば
多重配列も一発クローンできるのにね

まあそれでもES6なら多重配列のコピーが従来よりも簡単に、且つ正確に定義できる
Array.clone = (...a) => a.map((v) => Array.isArray(v) ? Array.clone(...v) : v);
var arr2 = Array.clone(arr1);

>>358
流石にその発言はないわ

360 名前:デフォルトの名無しさん mailto:sage [2013/09/19(木) 21:53:39.71 ]
cloneするのに一番わかり易い文法って知ってるか?

b = clone(a)

これだよ?

361 名前:デフォルトの名無しさん mailto:sage [2013/09/19(木) 22:02:21.42 ]
関数オーバーライドが出来ないんだからそれはない

362 名前:デフォルトの名無しさん mailto:sage [2013/09/19(木) 22:04:43.18 ]
>>359より短く書けたw
更に古いブラウザにまで対応。
最強じゃね?

var _ = require('lodash');
var arr2 = _.clone(arr1);

363 名前:デフォルトの名無しさん mailto:sage [2013/09/19(木) 22:14:44.01 ]
お前がそう思うんならそうなんだろう、お前の中ではな

364 名前:デフォルトの名無しさん mailto:sage [2013/09/19(木) 22:19:46.43 ]
JavaScriptスレから移住してきた人にはスマンが
ここは標準仕様をメインで語るスレなのよ

ライブラリの話禁止というわけではないが
そういう話の流れじゃそもそもないのよな

365 名前:デフォルトの名無しさん mailto:sage [2013/09/19(木) 22:21:49.57 ]
Array.isArrayがないと別コンテキストのオブジェクトが本当にArrayか見分けるのは難しいんじゃないか?



366 名前:デフォルトの名無しさん mailto:sage [2013/09/19(木) 22:28:43.54 ]
>>359よりこっちの方が良かった
Array.clone = x => Array.isArray(x) ? x.map(Array.clone) : x;

367 名前:デフォルトの名無しさん mailto:sage [2013/09/20(金) 00:41:52.37 ]
https://speakerdeck.com/dherman/discussion-with-tc39-about-the-semantics-of-symbols

368 名前:デフォルトの名無しさん mailto:sage [2013/09/20(金) 10:58:34.35 ]
stackoverflow.com/questions/14949069/lodash-undefined-in-ie?rq=1

なんか悪いんだろうなぁ…とは思うんだけど
何が悪いんだろうなぁまではよくわからん
そういうのが多すぎる…

369 名前:デフォルトの名無しさん mailto:sage [2013/09/20(金) 12:16:50.61 ]
TC39勢力

30% コミュニティの流れに関わる
Google

15% 基礎構文や仕様の流れに関わる
Mozilla

35% 仕様の具体的な部分に関わる
Microsoft, Apple, Intel, jQuery

20% 専門的な仕様の詳細に関わる
その他凄い人、偉い人

370 名前:デフォルトの名無しさん mailto:sage [2013/09/20(金) 14:47:21.10 ]
TC39 3大勢力

1/3 【ハンドル・ブレーキ】
Webを牛耳る者として、三人称視点で情報や意見を提供する、情報・管理係
Google

1/3 【エンジン・アクセル】
早期実装者及び専門家として、一人称視点で仕様を策定する、規格・運用係
Mozilla, その他凄い人、偉い人

1/3 【モーター・ギア】
企業団体として、ニ人称視点であれこれ注文する、文句・要求係
Microsoft, Apple, Intel, jQuery

371 名前:デフォルトの名無しさん mailto:sage [2013/09/21(土) 01:40:27.26 ]
DOM Promise
wiki.ecmascript.org/doku.php?id=strawman:promises

が思ったより早くES標準になる?
https://twitter.com/annevk/status/380723129514876929
https://twitter.com/annevk/status/380756290147868672

DOMだけで使えるのはもったいないとは思うけど
今流行ってるからと言って、安々と仕様に入れていいものなのかね

こういうのを入れると、ライブラリや各種APIもこれに合わせて書かれるようになるだろうし
使う側も積極的にこのスタイル採用するだろうから、責任凄くあると思う

Node.jsの雰囲気を丸ごと変えてしまう力もあるかも知れないし、
FirefoxOSのアプリとか、これからの出るものに凄く影響を与えるに違いない

372 名前:デフォルトの名無しさん mailto:sage [2013/09/21(土) 02:09:01.60 ]
>>371
Promiseならそれとほぼ同じ物が
jQuery標準でついてるし、
nodeでも使える。

373 名前:デフォルトの名無しさん mailto:sage [2013/09/21(土) 02:24:09.24 ]
ん?だから何?
標準と標準じゃない物同列に語られてももの凄く困惑するんだけど…

374 名前:ES6 Tips mailto:sage [2013/09/21(土) 02:51:46.30 ]
var date = new Date()
var [Y,M,D,h,m,s] = date.toLocaleString('ja-JP').match(/\d+/g)
// [2013,9,21,2,49,05]

375 名前:デフォルトの名無しさん mailto:sage [2013/09/21(土) 02:53:35.32 ]
>>373
JavaScriptの世界では、標準ではないものも
広く使わわれている。

つまり、Promise が普通の世界に
俺達は生きているわけ。

そこに標準でPromise がきても
劇的な変化はないってこと。

> Node.jsの雰囲気を丸ごと変えてしまう力もあるかも知れないし、
> FirefoxOSのアプリとか、これからの出るものに凄く影響を与えるに違いない

標準じゃないものを使っているごく普通の人たちは
標準を待っているお前よりも未来に生きている。
劇的に変わるのは、標準を待っている人たちだけ。



376 名前:デフォルトの名無しさん mailto:sage [2013/09/21(土) 03:11:51.67 ]
>>375
標準で無いもの(拡張)は利用する側が自分で選択できる。
標準は全ての実装が準拠しようとするため選択できない。

一つの拡張が標準になると競合する拡張が潰れたりもする。
拡張を闇雲に取り込めば標準自体が肥大化する問題も起きる。

標準に取り入れるってのは全ての環境で半強制的にそれを導入させるに等しい。
先進的であればそれで良いのであれば安定版も標準化も必要ない。
お前は標準の持つ責任を安易に考えすぎ。

…と横からレスしておく。

377 名前:ES6 Tips mailto:sage [2013/09/21(土) 03:14:07.70 ]
その根拠のない理屈には納得出来ないな
Ajaxだって、Canvasだって、標準になる前からあったが活躍しだしたのは標準化されてから
まるで全てのPromiseとAPIが何か標準に準拠して完全に互換性があるかの様に言うが、現実はそうじゃない
そもそもDOMPromiseもESで提案されてるPromiseも、今尚仕様変更が続いてるもの
そんな中幾らかの形に切り出して、バージョンの付いた標準仕様に入れる、JS標準にするということは大きな変革
準拠先も安定度も不確かな、モジュールやプラグインに頼って下さいという段階とは比べ物にならない

378 名前:デフォルトの名無しさん mailto:sage [2013/09/21(土) 03:20:55.33 ]
>>376
話しそれ過ぎ。

> Node.jsの雰囲気を丸ごと変えてしまう力もあるかも知れないし、
> FirefoxOSのアプリとか、これからの出るものに凄く影響を与えるに違いない

まずね。標準の世界の話だけをするというのなら、
このような、実際の開発の世界の話をしなければいいのよ。

実際の開発の世界の話なんかしなけりゃいいのに、
わざわざヤツのほうが、勝手に実際の開発の領分に侵入してきた。
だから叩き返してやったまで。

Node.jsとかFirefoxOSアプリとか、何も変わりはしない。

実際の開発では、ここらへんの問題はライブラリによって
あらかた解決してしまってるの。

だから、今更標準に入ったって、何も変わりはしないの。
標準に入ったものをすぐ使えるわけでもないしね。

379 名前:ES6 Tips mailto:sage [2013/09/21(土) 03:31:49.22 ]
どうしても使いたい奴がプラグイン導入して個人的に使うのと、
大々的に標準に入って、さあ皆さん使ってくださいとなるのでは次元が違うぞ。

とくにJSってもうWebだけのものじゃなりつつあるし、
非同期コールバック式を緩和するためには非常に有効だけど、
本当に言語仕様に入れてメリットあるのかねという話だぞ。

お前さんの言うとおり、プラグインで十分問題が解決するんなら
標準に入れて必要以上に影響を及ぼしたり、言語の肥大化を招くよりはいいだろうってことだ。
お前さんは一体何と戦ってるんだい?

380 名前:デフォルトの名無しさん mailto:sage [2013/09/21(土) 03:33:04.21 ]
>>379
いや、お前が何と戦っているのか知りたいんだが?

381 名前:デフォルトの名無しさん mailto:sage [2013/09/21(土) 03:33:31.76 ]
プラグインがあるから標準いらないと言いたいのなら、意見の差はないだろう

382 名前:デフォルトの名無しさん mailto:sage [2013/09/21(土) 03:35:05.06 ]
>>380
こっちはお前さんがよく分からんツッコミしてくるからその度に冷静に返してるだけだが?

383 名前:デフォルトの名無しさん mailto:sage [2013/09/21(土) 03:37:53.11 ]
> Node.jsの雰囲気を丸ごと変えてしまう力もあるかも知れないし、
> FirefoxOSのアプリとか、これからの出るものに凄く影響を与えるに違いない

俺は最初から、これはありえないと言ってるだけですが?
Node.jsやFirefoxOSのアプリなどの実際の開発知らないでしょ?

384 名前:デフォルトの名無しさん mailto:sage [2013/09/21(土) 03:41:04.53 ]
そこら辺は個人の感覚だろうからそこまでは否定しないよ。

ちなみに両方とも作ったことがあるけど、それは例えから。

これから5年も10年も仕様に入れるべきものなのかってこと。

385 名前:デフォルトの名無しさん mailto:sage [2013/09/21(土) 03:42:14.06 ]
>>384
根拠は?
お前の妄想?



386 名前:デフォルトの名無しさん mailto:sage [2013/09/21(土) 03:51:40.78 ]
ホント安易に考えてんなぁコイツ

387 名前:デフォルトの名無しさん mailto:sage [2013/09/21(土) 03:52:29.34 ]
根拠というか懸念した理由は上でいくつか挙がってるけど、
もちろん自分が下手するとそうなりそうで怖いなと思っただけで、
標準に入ることで絶対に悪くなるとは言わない。

しかし、今更ES標準になったところで影響力は小さいという論には、今のところ納得出来ないな。
あると考えるのが基本なんだから、無いと思うのならもっと理論的に言って欲しい。

388 名前:デフォルトの名無しさん mailto:sage [2013/09/21(土) 03:58:25.22 ]
> しかし、今更ES標準になったところで影響力は小さいという論には、今のところ納得出来ないな。

歴史が証明している。

ECMAScript 5が標準になってどんな影響があったか?
明らかに小さいだろう?

389 名前:デフォルトの名無しさん mailto:sage [2013/09/21(土) 04:00:26.96 ]
あ、非JSerはお帰りください

390 名前:デフォルトの名無しさん mailto:sage [2013/09/21(土) 04:03:17.56 ]
理論的な話ねぇ?

ES標準になっても、すぐに使えるわけではない。
使わないから影響を与えられない。

ES非標準で、ライブラリとして実装できるものは
すでに実装され使われている。

十分理論的ですね。

391 名前:デフォルトの名無しさん mailto:sage [2013/09/21(土) 04:03:22.79 ]
お前らが最近プログラム系の板によく現れる荒らしに構ってる間にも
仕様はどんどん勧告へと近づいてきてる
https://twitter.com/BoazSender/status/381129573804417024/

392 名前:デフォルトの名無しさん mailto:sage [2013/09/21(土) 04:04:42.74 ]
うん、、、もういいよ。
お前さんに分かってもらうのは諦めた。

393 名前:デフォルトの名無しさん mailto:sage [2013/09/21(土) 04:43:03.51 ]
>>390が日本語読めない子なのは十分わかった

けど俺も標準に入れてもいいとは思うぞ
ただしC++11のoptional featureみたいな感じがベストじゃないか。すべての標準処理系がDOMを備えるべきだとは思えんし

394 名前:デフォルトの名無しさん mailto:sage [2013/09/21(土) 04:52:47.89 ]
utilモジュールに入れてimportで取ってくる形ならいいけど、
グローバルにむき出しなら嫌だな

395 名前:デフォルトの名無しさん mailto:sage [2013/09/21(土) 05:02:38.84 ]
ポイントは前倒ししてまでstrawmanをES6に入れるのかってとこじゃね?
入れるのなら今回のミーティングがラストチャンスだけど
ギリギリで間に合わせた感もあるしな
esdiscuss.org/topic/promises-final-steps

ライブラリと違って、JSの規格に一度入ると後方互換性を壊す変更は当然NGになるしね
もうちょっとWebでの使われ方見てから練っても十分な気がする

やっぱりいろいろとES6.1が必要なんじゃないかな
というかこの冬のラストコールに間に合うの?



396 名前:デフォルトの名無しさん mailto:sage [2013/09/21(土) 05:46:24.50 ]
>>371,395
PromiseLoveなAnne van Kesterenっていう人が早く入れようとしてるように見える

397 名前:デフォルトの名無しさん mailto:sage [2013/09/21(土) 21:13:19.03 ]
tc39wiki.calculist.org/es6/
>ES6 reached "proposal freeze" in May, 2011: no new major proposals can be added,
>although proposals can still be removed. TC39 is targeting a release date of December, 2013
>for the official ES6 standard, but JS engines are implementing individual features
>before the spec is finalized.

策定は2011年度の5月にfreezeとあるが…

ECMAScript Support Matrix
pointedears.de/scripts/test/es-matrix/

各実装のマトリックス表らしい

mozilla.6506.n7.nabble.com/Promises-final-steps-td290303.html
スレを眺めてるとES7とか文字が並んでるし議論してる人らは
ES6のことを念頭に置いて話てる訳ではないんでないの

398 名前:デフォルトの名無しさん mailto:sage [2013/09/21(土) 23:48:12.67 ]
ミーティングに挙げる仕様を詰めてるだけでES6には入れようとしてないよ
今回はES7についても話し合われたからね

399 名前:デフォルトの名無しさん mailto:sage [2013/09/21(土) 23:59:44.55 ]
読むとDOM PromiseのJS実装版じゃなくて、
もっと低レベルな感覚な実装なのね、いいかも。

でもこれ入れるんなら、
イベントという概念をもっとJSから扱えやすくなって欲しいな
そっちの方向の進化はかなり良さそう

400 名前:デフォルトの名無しさん mailto:sage [2013/09/22(日) 00:16:25.61 ]
イベントはあまりに重要で各環境の事情を抱えた概念だから難しそう
イベントキューの操作くらいは一般化出来ないかな?

401 名前:デフォルトの名無しさん mailto:sage [2013/09/23(月) 13:42:34.69 ]
今話題になってるこのコードとても面白いね
仕様の奥深くまで分かってないとできないことだ

Array.apply(null, { length: 5 }).map(Number.call, Number);
// [0, 1, 2, 3, 4]

402 名前:デフォルトの名無しさん [2013/09/25(水) 01:26:27.21 ]
https://github.com/rwaldron/tc39-notes/tree/master/es6/2013-09
なかなか興味深い……
ArrowFunctionが残念だなあ
Symbol周りは期待通りになってよかった
Moduleはもう少し精査が必要だね
ES7についても見えてきた

403 名前:デフォルトの名無しさん mailto:sage [2013/09/27(金) 01:13:04.58 ]
ECMAScript6に単純に型指定だけ出来て、静的型チェックしてくれれば最強なのに…
型指定以外は完全に一緒で良いんで、そういうプリプロセッサを誰か作ってくれないかな。

404 名前:デフォルトの名無しさん mailto:sage [2013/09/27(金) 01:54:42.52 ]
あー、7のguardsがそれにあたるのか。7がリリースされるのっていつになるやら…

405 名前:デフォルトの名無しさん [2013/09/28(土) 07:44:14.08 ]
wiki.ecmascript.org/doku.php?id=harmony:specification_drafts#september_27_2013_draft_rev_19



406 名前:デフォルトの名無しさん mailto:sage [2013/10/04(金) 12:32:46.81 ]
ES6ファミリーにPromiseが入ります。
おめでとう・・・・・・・・! おめでとう・・・・・・・・!

407 名前:デフォルトの名無しさん [2013/10/05(土) 18:32:39.18 ]
ES7のdata_parallelismがFirefox 27 (Nightly) でデフォルトで有効になったようだ。
jsperf.com/array-intersection-filter-vs-for-loop/2
wiki.ecmascript.org/doku.php?id=strawman:data_parallelism

408 名前:デフォルトの名無しさん mailto:sage [2013/10/07(月) 19:50:12.74 ]
isRegExpシンボルって面白いね
String.prototype.match(regexp)
はregexpオブジェクトに@@isRegExpが合った時には
rx.match(this)
を呼ぶことになってる

つまりオレオレ正規表現が容易に実装できるってことか

class MyRegExp {
constructor( ...... ) { ...... }
match(string) { ...... }
replace(string, replaceValue) {......}
split(string, limit) {......}
}

let regexp = new MyRegExp( ...... );

string.match(regexp);
string.replace(regexp, replaceValue);
string.split(regexp, limit);

409 名前:デフォルトの名無しさん mailto:sage [2013/10/13(日) 16:05:28.76 ]
ES6概要
ただしこれでも仕様の半分程度
https://speakerdeck.com/simonenko/ecmascript-6-budushchieie-javascript

410 名前:デフォルトの名無しさん mailto:sage [2013/10/16(水) 01:04:25.93 ]
asm.js、32bit浮動小数点演算、SIMD演算の現状と可能性について
kripken.github.io/mloc_emscripten_talk/sloop.html

411 名前:デフォルトの名無しさん [2013/10/19(土) 19:00:16.23 ]
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ParallelArray

412 名前:デフォルトの名無しさん mailto:sage [2013/10/24(木) 16:53:52.96 ]
ecma262.info/
ECMA-262 Edition 5.1に相当するISO/IEC 16262:2011の仕様は、
日本のSC22専門委員会でJIS規格化されないことが決定されたため、
ECMA-262 Edition 5.1の公的な日本語訳は存在しないことになります。

413 名前:デフォルトの名無しさん mailto:sage [2013/10/24(木) 19:47:18.44 ]
は? ISO規格に追随するのやめちゃったの?
C++11も翻訳しないみたいだし、JISCは馬鹿なの?死ぬの?

414 名前:デフォルトの名無しさん mailto:sage [2013/10/24(木) 20:16:16.20 ]
本文は翻訳してないあのスタイルじゃあ、あっても無いのとたいして変わりなかったしなw

415 名前:デフォルトの名無しさん mailto:sage [2013/10/25(金) 01:44:56.49 ]
つーか規格の和訳って必要ないよなぁ
どうせ原文にあたらなきゃならくなるんだから



416 名前:デフォルトの名無しさん mailto:sage [2013/10/25(金) 02:50:16.91 ]
JISにすることで著作権フリーになるんだよ(適当)

417 名前:デフォルトの名無しさん mailto:sage [2013/10/25(金) 10:55:39.28 ]
昔は日立とか東芝とか三菱とかが
主要言語のマイコンパイラ作ってたから、
社内技術者のために日本語訳が欲しいという要求があったけど、
今は業界からそういう要望もないのでしょう。
エコシステムとか言うんでしょ。

418 名前:デフォルトの名無しさん mailto:sage [2013/10/25(金) 15:38:22.47 ]
>>416
なるなら大歓迎だわ。
ぜんぜんなんねーんだよ。

419 名前:デフォルトの名無しさん [2013/10/25(金) 16:29:14.50 ]
エコシステム->生態系

420 名前:デフォルトの名無しさん mailto:sage [2013/10/25(金) 16:39:32.81 ]
>>418
実質著作権フリーだぞ。規格表さえ手に入れればあとはネットに上げようと何しようと自由。
ttp://urheberrecht.cocolog-nifty.com/blog/2009/07/18jis-2372.html
ttp://urheberrecht.cocolog-nifty.com/blog/2010/06/45jis-be6d.html
ただ、判例としてあるのは類似のドイツのものだけで、日本での判例はまだないけどね

421 名前:デフォルトの名無しさん mailto:sage [2013/10/25(金) 16:56:58.44 ]
JISの著作権は原案作成者とそれを規格化の過程において修正する工業調査会にあり、
公衆送信権は工業調査会が独占している。

422 名前:デフォルトの名無しさん mailto:sage [2013/10/25(金) 17:02:49.30 ]
>>416
原文嫁
著作権は放棄しないって明記されてるぞ

423 名前:デフォルトの名無しさん mailto:sage [2013/10/25(金) 17:07:45.39 ]
著作権は内国法優先だから、日本で規格の著作者やISOがどんなに著作権を主張しようと
著作権法の第13条第2号がある限り著作権が認められるはずがない……ってのが>>420のリンク先の主張でしょ
自分も法律を字義的に解釈すればそれであってると思うけど、これ以上は著作権スレに行ってやったほうがいいね

424 名前:デフォルトの名無しさん mailto:sage [2013/10/25(金) 17:31:57.94 ]
規格書は告示、訓令、通達その他これらに類するものじゃないから。
「XXXという規格を制定した」これは告示、XXXの規格書本体は告示じゃない。

425 名前:デフォルトの名無しさん mailto:sage [2013/10/25(金) 18:01:00.17 ]
>>424
だからその屁理屈はドイツじゃ通らなかったんだっつーの



426 名前:デフォルトの名無しさん mailto:sage [2013/10/25(金) 18:03:42.08 ]
ドイツだけじゃない。アメリカでも国の策定する規格に著作権は認められなかった。

スレチだけどな!

427 名前:デフォルトの名無しさん mailto:sage [2013/10/25(金) 18:59:00.70 ]
>>426
>>420は公衆送信権に違反して他人の著作物を公開したいDQNのタワゴトじゃん。

ドイツでは法文に従って判断すると著作権が認められないという判決が出たから著作権法改訂されたと、当のDQNのブログにある。

428 名前:デフォルトの名無しさん [2013/10/25(金) 19:13:55.99 ]
天気の配信とか、役人の天下り先確保のために法令を整備してたでしょ。
それと同じなんじゃない?

429 名前:デフォルトの名無しさん mailto:sage [2013/10/25(金) 19:19:17.04 ]
分かりやすく産業にすると
・ドイツやアメリカでは国家規格に著作権は認められなかった(現在は法を改正済)
・日本は現在ドイツやアメリカの法改正前と同じ状況
・改正しないとJISに著作権は認められない
・JISスレか著作権スレでやれ

430 名前:デフォルトの名無しさん mailto:sage [2013/10/25(金) 19:39:41.50 ]
×・改正しないとJISに著作権は認められない
○・改正しないとJISに著作権は認められないとDQNは考えている、行政はそのように考えていない、司法が行政の不利になる判決を出すことは稀

431 名前:デフォルトの名無しさん mailto:sage [2013/10/25(金) 20:17:49.62 ]
まあ、日本での前例もないみたいだし、これ以上水かけ論やりたいなら余所でね

432 名前:デフォルトの名無しさん [2013/10/26(土) 10:38:18.25 ]
仕様の話をしようぜ

433 名前:デフォルトの名無しさん mailto:sage [2013/10/27(日) 20:35:34.71 ]
ECMAScript Support Matrix
pointedears.de/scripts/test/es-matrix/

合間合間に実装の話もですね…

434 名前:デフォルトの名無しさん [2013/10/28(月) 09:40:22.02 ]
話題出していっていいのよ

435 名前:デフォルトの名無しさん mailto:sage [2013/10/30(水) 21:43:23.98 ]
ES7の機能で一番早く使えるようになるのはSIMDかもな
SMが来年中に実装しそうな勢いだし、何と言ってもV8が興味持ってる
影響範囲がほぼ無いしね



436 名前:デフォルトの名無しさん [2013/10/31(木) 01:05:58.42 ]
double以外の数値型の演算をどうするかの話が詰まっていきそうだな
esdiscuss.org/topic/proposal-for-efficient-64-bit-arithmetic-without-value-objects
この様子だとES7は3年後くらいかもな

437 名前:デフォルトの名無しさん mailto:sage [2013/10/31(木) 01:11:49.51 ]
今はもういつES7か?ってのに
こだわる必要はない気がする。
なぜなら順次実装されて言ってるから。
完成する前に使えるようになってる。

438 名前:デフォルトの名無しさん [2013/10/31(木) 01:35:06.64 ]
とは言え勧告前のものはいくら実装されていても
いつケチが付いて仕様が変わるとも知れないからな
esdiscuss.org/topic/math-sign-vs-0

439 名前:デフォルトの名無しさん mailto:sage [2013/11/06(水) 10:03:34.97 ]
html5experts.jp/cssradar/3176/
ここのServiceWorkerとAnimation-Proxy見ると、
ES7のdata parallelismとかが思い出されて
JSerがマルチスレッド処理を当たり前に書く時代もそう遠くないんだろうね

440 名前:デフォルトの名無しさん mailto:sage [2013/11/10(日) 04:10:55.98 ]
>>439
データ並列からマルチスレッドには飛躍があるけどな。

441 名前:デフォルトの名無しさん mailto:sage [2013/11/10(日) 12:52:20.30 ]
は?
マルチスレッド⊃並列だろうに
どこに飛躍が???

442 名前:デフォルトの名無しさん [2013/11/11(月) 14:42:38.63 ]
ぴょーん!

443 名前:デフォルトの名無しさん mailto:sage [2013/11/13(水) 23:20:03.54 ]
マルチスレッドでないデータ並列がSIMD

444 名前:デフォルトの名無しさん mailto:sage [2013/11/14(木) 10:57:15.41 ]
SIMDはそもそも並列とか意識できなくね

445 名前:デフォルトの名無しさん mailto:sage [2013/11/14(木) 19:08:10.11 ]
君はそうなのだろう。



446 名前:デフォルトの名無しさん mailto:sage [2013/11/14(木) 19:23:39.42 ]
SIMDAPIを使っても必ずSIMD命令が使われるわけじゃないしあってると思うよ

447 名前:デフォルトの名無しさん mailto:sage [2013/11/17(日) 15:42:20.11 ]
Dartのcascade演算子JSにも欲しいなあ
obj..a = 1
  ..b = 2
  ..c = 3

obj.a = 1, obj.b = 2, obj.c = 3
or
Object.mixin(obj, {
a: 1,
b: 2,
c: 3
})

448 名前:デフォルトの名無しさん mailto:sage [2013/11/18(月) 21:00:01.72 ]
いよいよ始まるというのにこの過疎りようは悲しい……

449 名前:デフォルトの名無しさん [2013/11/19(火) 19:24:22.27 ]
今が一番盛り上がる時期なのにな

450 名前:デフォルトの名無しさん mailto:sage [2013/11/19(火) 22:43:24.98 ]
>>447
VBのWithステートメントに似ているな。

With Label
 .Height = 2000
 .Width = 2000
 .Caption = "Label"
End With

JavaScriptのwithはピリオドが要らないという失敗をしてしまった。

with(label) {
 height = 2000
 width = 2000
 caption = "Label"
}

たったこれだけのことだが、heightはlabel.heightなのか
withの外にあるheightなのか見た目でわからない上に、
label.heightが存在すればlabel.heightに、存在しなければwithの外のheightに
書き込むというだめだこりゃ的な動きをしてしまう。

451 名前:デフォルトの名無しさん mailto:sage [2013/11/20(水) 01:28:33.20 ]
もしかしてプロキシと組み合わせればなんとかなる可能性が微レ存……?

function makeSafeScope(obj){
return new Proxy(obj, {
......
})
}

with(makeSafeScope(obj)) {

}

452 名前:デフォルトの名無しさん mailto:sage [2013/11/20(水) 02:16:17.48 ]
withってこうやって使うもんでしょ

var scopeOrContext = {a:0, f: function(){++this.a}}
with(Object.create(scopeOrContext)){
f()// 1
}
scope.a// 0

453 名前:デフォルトの名無しさん mailto:sage [2013/11/20(水) 03:22:46.52 ]
with(obj) {
a = 1
}
ってした時にaがobj.aなのかそうでないのか分かりにくいってことだよ

454 名前:デフォルトの名無しさん mailto:sage [2013/11/20(水) 17:17:17.01 ]
そう言えば今までブロック文中の関数宣言は非推奨だったけど
ES6からはブロックスコープになったんだよな

(function (){
"use strict"
if(1){
function a() {}
}
return typeof a
})() //"undefined"

455 名前:デフォルトの名無しさん mailto:sage [2013/11/21(木) 22:19:07.88 ]
>>401
>Array.apply(null, { length: 5 }).map(Number.call, Number);

配列内包ってもう固まったんだっけ?



456 名前:デフォルトの名無しさん [2013/11/22(金) 00:22:59.64 ]
固まってる
for-ofとifだけ

a = [1,2,3,4,5]
b = [ for(v of a) if(v > 2) v*2 ] // [6,8,10]

457 名前:デフォルトの名無しさん [2013/11/22(金) 01:34:53.19 ]
ES6への機能追加が21日で完了しました。
つまり、まもなくラストコールです。
今後は約1年間、実装からのフィードバックを含めた、
バグフィックスや小規模な改定のみが行われ、勧告となります。

458 名前:デフォルトの名無しさん mailto:sage [2013/11/22(金) 02:38:13.10 ]
やっと、ラストコールか。ちょっと停滞気味のRhinoフォークしてくる。

459 名前:デフォルトの名無しさん mailto:sage [2013/11/22(金) 03:00:22.47 ]
え、Rhinoって使ってる人いるの?

460 名前:デフォルトの名無しさん mailto:sage [2013/11/22(金) 04:24:06.17 ]
ググると結構あるぞ。むしろjavaだと他に何がある?

461 名前:デフォルトの名無しさん mailto:sage [2013/11/23(土) 08:45:11.30 ]
つNashorn

462 名前:デフォルトの名無しさん mailto:sage [2013/11/24(日) 16:57:20.57 ]
余計な記法増やして読みにくくするのやめてほしいわ
このスレ見ても結局
黒魔術が増えるだけなんだなES6って

463 名前:デフォルトの名無しさん mailto:sage [2013/11/25(月) 09:34:48.99 ]
流れについていけない守旧派の極みだな
別にいいんだよ、IE6が理解できる範囲のJavascriptしか頭に入りませんってなら

464 名前:デフォルトの名無しさん mailto:sage [2013/12/01(日) 04:26:34.11 ]
ES6は必要な進化だろうけど、そのうち黒魔術化するでしょ
LLJS/asm.js最適化しながら手書きできる人間なんて僅かしかいなくてコンパイラにjavascript吐かせる時代になるかもしれない
アセンブラやCやってた連中が復活するかもしれないけど

465 名前:デフォルトの名無しさん mailto:sage [2013/12/01(日) 10:59:57.81 ]
Dartのことですね



466 名前:デフォルトの名無しさん mailto:sage [2013/12/03(火) 12:22:46.92 ]
ES6が糞過ぎて猫様もお怒り

Hearing about ES6 modules - Node.js Reactions
nodejsreactions.tumblr.com/post/64587440442/hearing-about-es6-modules

467 名前:デフォルトの名無しさん mailto:sage [2013/12/03(火) 22:17:04.57 ]
猫かわいい

468 名前:デフォルトの名無しさん mailto:sage [2013/12/12(木) 02:15:57.94 ]
en.wikipedia.org/wiki/ECMAScript#Conformance_tests
ここの結果見るとIEが一番準拠しててFirefoxの準拠度がダントツ悪い
逆だと思ってたから意外だな
Firefoxは仕様が決まる前から先行実装してるっていうのがあるから
しょうがない面もあるかも

469 名前:デフォルトの名無しさん mailto:sage [2013/12/21(土) 19:49:07.41 ]
ES6はCと違ってよくわからないって人がごねた結果だろ

470 名前:デフォルトの名無しさん mailto:sage [2013/12/21(土) 19:50:05.91 ]
>>469
Cをよくわかってないなら喋らない方がいいよw

471 名前:デフォルトの名無しさん [2013/12/26(木) 23:29:54.06 ]
A=フェラチオ
B=手マン
C=セックス
D=スカトロ

472 名前:デフォルトの名無しさん [2013/12/26(木) 23:57:34.24 ]
>>468
最新のIEと10年前のFirefoxを比較すれば当然そうなります

473 名前:デフォルトの名無しさん mailto:sage [2013/12/27(金) 00:10:24.18 ]
10年前にFirefoxなんかあったっけ?
10年前だとIE以外は生まれてすらいない時代だと思うけど。

474 名前:デフォルトの名無しさん mailto:sage [2013/12/27(金) 00:13:04.22 ]
>>473
でたらめを書かないでください。
Firefoxは10年前既にありました。

475 名前:デフォルトの名無しさん mailto:sage [2013/12/27(金) 00:15:25.39 ]
あ、やっぱりなかったみたいだね。

ja.wikipedia.org/wiki/Mozilla_Firefox%E3%81%AE%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3%E3%81%AE%E5%A4%89%E9%81%B7
2003年5月16日 製品名を Firebird へ改称
2004年2月9日 製品名を Firefox へ改称



476 名前:デフォルトの名無しさん mailto:sage [2013/12/27(金) 00:16:20.89 ]
>>473
板違い
IEの話はドザ板でやれ

477 名前:デフォルトの名無しさん mailto:sage [2013/12/27(金) 00:19:58.37 ]
>>475
Firefoxの最初のバージョンはフェニックスと呼ばれました。
ウィキペディアで調べてもわからないことはあるものです。

そんなに恥ずかしがらなくてもいいです。
生きている価値が無いというほどのことではありません。

でも、ウィキペディアで調べて知ったかぶりをするのはもうやめたほうが良いかもしれませんね。

478 名前:デフォルトの名無しさん mailto:sage [2013/12/27(金) 00:20:55.81 ]
間違えた。IEを持ちだしたのは>>472だった。
>>472は消えろ

479 名前:デフォルトの名無しさん mailto:sage [2013/12/27(金) 00:22:18.40 ]
>>475
名前が変わったら別の製品だと思ったのか
恥ずかしすぎワロタ

480 名前:デフォルトの名無しさん mailto:sage [2013/12/27(金) 00:45:26.15 ]
もうそろそろ興奮収まったかい?

481 名前:デフォルトの名無しさん [2013/12/27(金) 01:03:00.89 ]
ワールドクラスの馬鹿を発見した興奮!

482 名前:デフォルトの名無しさん mailto:sage [2013/12/27(金) 01:05:50.54 ]
まだだったか

483 名前:デフォルトの名無しさん mailto:sage [2013/12/27(金) 05:30:34.81 ]
>>477>>479
全く読んでないから知らんけど、名前が違う頃のFirefox使ったデータならその頃の名前で書くんじゃねーの?

484 名前:デフォルトの名無しさん mailto:sage [2013/12/30(月) 16:38:13.73 ]
>>472
>最新のIEと10年前のFirefoxを比較

どーゆー意味?
>>468に載ってるFirefoxのバージョンは26とNightly 29なんだけど

485 名前:デフォルトの名無しさん mailto:sage [2013/12/30(月) 19:17:26.11 ]
>>468
mozilla.orgのJavascriptは独自仕様だよ。
ECMAScriptに入ってないのも独自の判断で仕様に入れて
Javascript 1.xと称している。
この場合のJavascriptはmozillaの商標。
一般的に言ってるJavascriptは標準規格のECMAScriptの通称。
そのうち独自仕様は辞めると思うが、
もともとJavascriptは彼ら(前身のNetscape社)のもの。



486 名前:デフォルトの名無しさん mailto:sage [2013/12/30(月) 19:33:25.23 ]
困るんだよねー
ちゃんと規格としてかっちり決まってから実装始めてもらわないと

487 名前:デフォルトの名無しさん mailto:sage [2013/12/30(月) 23:27:24.32 ]
しかし実装がないと規格も決まらないというジレンマ

488 名前:デフォルトの名無しさん mailto:sage [2013/12/31(火) 16:53:03.28 ]
>>486
このスレの住民の言葉とは思えんな
Fxのお陰でどれだけ仕様が改善できて策定がスムーズに行ったことだか
特に構文レベルだと長いフィードバックが不可欠
それをFxがずっと前からやってくれたおかげで、
今のFxの独自実装が抱える多くの問題を踏まずにすんだ

ChromeにだってSymbolやPromiseやら先行実装たくさんあるし
これから先もSIMDやParallelやら先行実装が重要なものは沢山ある

489 名前:デフォルトの名無しさん mailto:sage [2013/12/31(火) 18:11:09.61 ]
これからのJSって便利にもなるが厄介なことも増えるよな
例えばnewが要るかどうか
理屈としては継承のために@@createを呼び出させるべきかどうかなんだろうけど、
Mapなんかは付けないとエラー、Proxyやvalue object系には付けるとエラー、とか覚えるのが増えるね

490 名前:デフォルトの名無しさん [2014/01/01(水) 00:01:49.39 ]
今年はES6の年です
皆さん祝いましょう!

491 名前:デフォルトの名無しさん mailto:sage [2014/01/01(水) 01:43:16.27 ]
お断りします

492 名前:デフォルトの名無しさん mailto:sage [2014/01/01(水) 02:31:16.08 ]
>>489
今でもフレームワークごとに違うじゃん。

493 名前:デフォルトの名無しさん mailto:sage [2014/01/01(水) 10:06:51.50 ]
ビルドインオブジェクトの話でしょ
フレームワークはフレームワーク

まあ余談だけどユーザー側で作るAPIは基本的に
Class.initとかClass.create〜とかを提供する形にした方がいいと思うね

494 名前:デフォルトの名無しさん [2014/01/01(水) 10:19:14.82 ]
ついにJSも世代が分かれて古い方はstaticおじさんと呼ばれるようになるに違いない

495 名前:デフォルトの名無しさん mailto:sage [2014/01/01(水) 12:44:58.45 ]
ES6が糞過ぎるからしょうがないね



496 名前:デフォルトの名無しさん [2014/01/01(水) 14:35:09.29 ]
そうか?物によっては10年もかけただけあって随分洗練されてると思うが
今でも微妙な問題は残ってるけど大山は全て乗り越えた感じだ

497 名前:デフォルトの名無しさん mailto:sage [2014/01/01(水) 14:44:38.39 ]
おまえらArray.prototype.shuffleとか作ってないか?
そういうのは困るからArray.prototype._shuffleみたいにしろとさ

498 名前:デフォルトの名無しさん mailto:sage [2014/01/01(水) 14:56:37.99 ]
ES6に足りないものは、
{obj1,obj2,obj3}.prop.{prop1,prop2,prop3}.prop = val
というシンタックス。あとはいい。

499 名前:デフォルトの名無しさん mailto:sage [2014/01/01(水) 15:03:07.14 ]
イラネ
なんだその黒魔術

500 名前:デフォルトの名無しさん mailto:sage [2014/01/01(水) 15:21:41.51 ]
これが黒魔術なら分割代入も黒魔術ということになってしまうな

501 名前:デフォルトの名無しさん mailto:sage [2014/01/01(水) 15:30:34.13 ]
そうか
本当は
[a,b,c] = [1,2,3]
のように
[o.a,o.b,o.c] = [1,2,3]

o[a,b,c] = [1,2,3]
と書きたいが
これだとa,b,cのコンマが独立した演算子と取られてしまうから
可能性としては
o{a,b,c} = {a:1,b:2,c:3}

o{0:a,1:b,2:c} = [1,2,3]
とするしかないのか
それがどうも冴えないから入らなかったんだろうね

502 名前:デフォルトの名無しさん mailto:sage [2014/01/01(水) 15:49:11.00 ]
はあ・・
JavaScript ES6 Bad Parts -分かりにくい悪手法-
という良書が出来るのが目に見えてる

503 名前:デフォルトの名無しさん mailto:sage [2014/01/01(水) 15:55:16.38 ]
でも>>498の「{}.」は案外凄い良いシンタックスだと思うよ

{obj1,obj2,obj3}.prop.{prop1,prop2,prop3}.prop = val
{obj1,obj2,obj3}.{prop.{prop1,prop2,prop3}.prop} = val
{obj1,obj2,obj3}.{prop.{prop1,prop2,prop3}}.prop = val
{{obj1,obj2,obj3}.{prop.{prop1,prop2,prop3}}}.prop = val

読みやすさは最悪だか汎用性レベルは最高
あらゆるパターンを記述できるわ
案外ES7くらいで採用されるかもね

504 名前:デフォルトの名無しさん [2014/01/01(水) 16:14:52.51 ]
ES6のBest Partsのspread演算子様

arr.slice()

[...arr]

arr.slice().push(x), arr

[...arr, x]

for(var i = 0, arr = []; i < len; i++) arr[i] = i

arr = [...Array(len).keys()]

arr.filter(function (x, i, a) {return a.indexOf(x) == i})

[...new Set(arr)]

str.split('')

[...str]

可能性は無限大

505 名前:デフォルトの名無しさん [2014/01/01(水) 16:47:20.67 ]
配列内包も素晴らしい

s1 = 'abcde', s2 = '12345'

for (var arr = [], i1 = 0; i1 < s1.length; i1++) for (var i2 = 0; i2 < s2.length; i2++) arr.push(s1[i1] + s2[i2])

arr = [for (c1 of s1) for (c2 of s2) c1 + c2]



506 名前:デフォルトの名無しさん mailto:sage [2014/01/01(水) 21:58:18.62 ]
みんなcoffeescriptからの流用なんだけどね

507 名前:デフォルトの名無しさん mailto:sage [2014/01/01(水) 22:56:47.56 ]
いいえPythonやHaskellなんかからの導入です
CSも同じく

508 名前:デフォルトの名無しさん mailto:sage [2014/01/02(木) 08:45:45.32 ]
他の言語からの取り入れを悪いことのように言う傾向が今年は滅びますように

509 名前:デフォルトの名無しさん mailto:sage [2014/01/02(木) 10:23:18.50 ]
そんなのは見たことないな

510 名前:デフォルトの名無しさん mailto:sage [2014/01/02(木) 10:48:29.19 ]
>>501
o['a', 'b', 'c'] = [1, 2, 3];
が既存の分割代入に近くていい気がする。

511 名前:デフォルトの名無しさん mailto:sage [2014/01/02(木) 14:05:42.56 ]
プロパティの分割代入とか、プロトタイプ継承を理解していない証拠

512 名前:デフォルトの名無しさん mailto:sage [2014/01/02(木) 14:27:08.28 ]
>>510
それは無理
o['a', 'b', 'c'] = [1, 2, 3];
は既に
o['c'] = [1, 2, 3];
と解釈されるから

513 名前:デフォルトの名無しさん mailto:sage [2014/01/02(木) 16:59:30.82 ]
慣れれば読みやすい可能性が微レ存

p{a,b} = q

p.a = q.a
p.b = q.b

p.x.{a,b} = q

p.x.a = q.a
p.x.b = q.b

p.{x.{a,b}} = q

p.{x.a,x.b} = q

p.x.a = q.x.a
p.x.b = q.x.b

514 名前:デフォルトの名無しさん mailto:sage [2014/01/02(木) 17:00:13.11 ]
p.{x,y}.{a.b} = q

p.x.a = q.a
p.x.b = q.b
p.y.a = q.a
p.y.b = q.b

p.{{x,y}.{a.b}} = q

p.{x.a,x.b,y.a,y.b} = q

p.x.a = q.x.a
p.x.b = q.x.b
p.y.a = q.y.a
p.y.b = q.y.b

p.{z:{x,y}.{c:a.d:b}} = q

p.{z.c:x.a,z.d:x.b,z.c:y.a,z.d:y.b} = q

p.x.a = q.z.c
p.x.b = q.z.d
p.y.a = q.z.c
p.y.b = q.z.d

515 名前:デフォルトの名無しさん mailto:sage [2014/01/02(木) 17:19:12.05 ]
後は分割代入でも先送りになったけど
undefinedを見逃す?演算子系は実際必要だな

if(a&&a.b&&a.b.c)

if(a.?b.?c)

var {a:{b:c}} = {} //c=undefind.b -> error

var {a:{?b:c}} = {} //c=undefind.?b -> undefined



516 名前:デフォルトの名無しさん [2014/01/02(木) 17:59:53.93 ]
>>514
パターンマッチはスクリプト言語なら強化して欲しいが、
これに?演算子やguardやら入ったらカオスになるんだろうな。

517 名前:デフォルトの名無しさん mailto:sage [2014/01/07(火) 14:42:38.41 ]
おまえらみんなwithでも使ってろ
ただし最後はちゃんと"use strict";を書いてデバッグすること

518 名前:デフォルトの名無しさん [2014/01/09(木) 16:12:01.04 ]
with分も捨てたもんじゃない
プロキシと組み合わせればスクリプトを分かりやすく書けたりする

unit1.on('reqestCommand', unit => {
with (new ControlerProxy(unit)) {

if (Y > 100) TURN_LEFT_180
GO_100
if (Y < 0) FREEZE

}
})

519 名前:デフォルトの名無しさん [2014/01/15(水) 00:39:55.46 ]
try { (ノ°□°)ノノ ┻━┻ } catch() { ┬─┬ ノ( ゜-゜ノ) }

520 名前:デフォルトの名無しさん mailto:sage [2014/01/16(木) 20:32:57.94 ]
es6にguardsが入らなかったのはかなり残念だ
JavaScriptでちゃんと静的型チェックをしようとすると、
https://developers.google.com/closure/compiler/docs/js-for-compiler?hl=ja
このClosure Compilerのアノテーションを使うのが一番良さそうだけど
見ただけでめげた…

guardsの構文を受け付けて、コンパイル時に削除してくれればいいんだけどなぁ

521 名前:デフォルトの名無しさん [2014/01/17(金) 06:08:12.57 ]
ES6にGuardsが入ると思ってたのはあんただけだろうが、そもそもJavaScriptに静的型チェックなんて必要ない
スクリプト言語の性格や既存のライブラリを考えると徒労に終わるだけだし

そういうことで今では::構文もbindに取られてるし、ESメンバーにもそんなに好かれていない
wiki.ecmascript.org/doku.php?id=strawman:bind_operator
esdiscuss.org/topic/value-objects-roll-your-own#content-4
Trademarksはパターンマッチの為の機能として残るだろうが、今後型のための構文が採用されることはない

JSでどうしても型を明記したい場合は、a = b|0 や c = float32(d + e) のようにすることだね
そうじゃないのを望むならDartからでも変換すればいい

522 名前:デフォルトの名無しさん mailto:sage [2014/01/17(金) 10:11:32.27 ]
静的型チェックっていうと大袈裟だったかもしれないけど、他人が書いた関数で
引き数に何を渡せばいいか分からない事ってないか?

複数人で規模の大きめのアプリを作る時とかは、みんなまじめにアノテーション
とか書いてんのかね。

しかしBrendan Eichがいらねってんなら望み薄だな…
bindはいいけど、guardsはTypeScriptと同じように:一個にすればいいんじゃね?

523 名前:デフォルトの名無しさん mailto:sage [2014/01/17(金) 10:35:50.16 ]
まあダックタイピング+トライ・アンド・エラーで行くしかしょうが無いでしょ。
公式で用意されてる関数は適当に叩けば適切なエラーが帰ってくるからそれ見習ってもいいかもな。

crypto.getRandomValues()
//TypeError: Failed to execute 'getRandomValues' on 'Crypto': 1 argument required, but only 0 present.

crypto.getRandomValues("^_^")
//TypeError: Failed to execute 'getRandomValues' on 'Crypto': First argument is not an ArrayBufferView

crypto.getRandomValues(new Float64Array(10))
//TypeMismatchError: Failed to execute 'getRandomValues' on 'Crypto': The provided ArrayBufferView is of type 'Float64', which is not an integer array type.

crypto.getRandomValues(new Int32Array(10))
//[519742316, 1326690367, 1843628936, 94818381, 1481545681, -949200701, 1818462933, -1973550051, 2019705203, -1026601786]

524 名前:デフォルトの名無しさん mailto:sage [2014/01/17(金) 14:41:15.55 ]
トライ・アンド・エラーで別に構わないけど、crypto.getRandomValues()みたいに
適切なエラーを出す為にもGaurdsは必要だと思うけどね。

現状の現実的な解は、関数の先頭に型チェックするassertなりを仕込んでおいて
リリース時にスクリプトで削除するか、何もしない関数に置き換えるとかかな。

525 名前:デフォルトの名無しさん [2014/01/18(土) 09:06:28.46 ]
Gaurdsに頼る形だとtry-catchを使うことになるし、結局型に合わなかったことしか分からない
必要なのは適切な型か、適切なインターフェイスを備えてるかをテストすることだと思う

この辺りを良くする仕組みはES6にも入ってる
ES6ではinstanceof演算子は実質オーバーライド可能になって、関数じゃないオブジェクトに対しても使えるようになった
例えばこう書ける

const IntegerArray = {
 [Symbol.hasInstance](x) {
  return [Int8Array, Int16Array, Int32Array, Uint8Array, Uint16Array, Uint32Array].some(A => x instanceof A)
 }
}

new Float64Array(10) instanceof IntegerArray //false
new Int32Array(10) instanceof IntegerArray //true

これなら柔軟に対応できる。ちなみにClassも継承を活用できていい

class IntegerArray extends TypedArray {
 static [Symbol.hasInstance](x) {
  return super(x) && x[Symbol.toStringTag].contains('nt')
 }
}



526 名前:デフォルトの名無しさん mailto:sage [2014/01/18(土) 17:02:05.76 ]
なるほど型判定にinstanceofを使えばいいんだな
しかし[Symbol.hasInstance](x)って見慣れない構文だな…
x[Symbol.toStringTag]も
どこ見ればいいか教えてもらえると助かる

527 名前:デフォルトの名無しさん [2014/01/18(土) 21:26:39.22 ]
前者はMethodDefinition

ObjectLiteral
↓{ PropertyDefinitionList }
↓{ PropertyDefinition }
↓{ MethodDefinition }

ClassExpression
↓class BindingIdentifier ClassTail
↓class Identifier extends AssignmentExpression { ClassBody }

ClassBody
↓ClassElementList
↓ClassElement
↓static MethodDefinition

MethodDefinition
↓PropertyName ( StrictFormalParameters ) { FunctionBody }
↓ComputedPropertyName ( FormalParameters ) { FunctionBody }
↓[ AssignmentExpression ] ( ) { FunctionBody }

後者は「known symbol」でドラフトを検索してみるといい

528 名前:デフォルトの名無しさん [2014/01/21(火) 07:00:19.03 ]
try { (ノ°□°)ノノ ┻━┻ } catch() { ┬─┬ ノ( ゜-゜ノ) }

529 名前:デフォルトの名無しさん [2014/01/21(火) 14:32:33.68 ]
ドラフトr22来たね
wiki.ecmascript.org/doku.php?id=harmony:specification_drafts#january_20_2014_draft_rev_22

1つ挙げるとしたら
System.globalでグローバルオブジェクトが取れるようになったのは嬉しいね

530 名前:デフォルトの名無しさん [2014/01/25(土) 07:24:58.43 ]
例のwith proxyでvalue objectと演算子オーバーロードがエミュレートできるな

概念を書くと例えば
v = vo1 + vo2 * vo3
のとき

get vo1 → get vo2 → get vo3 → set v vo1 + vo2 * vo3
のリクエストが受け取れる

ここでvalue objectがgetされたときは適当な数値で返しながら覚えておく
例えばそれぞれ2.1、3.2、4.3とか

するとこの場合「set v 15.86」リクエストがあった時、実際の処理は2.1+3.2*4.3だったであろうことが逆算でわかる
つまりvにvo1+vo2*vo3の意味するとこの結果を代わりに設定して、その後のget vで返すことができる

これでマズイこともあるが、かなりのパターンのオーバーロードができそう


もう一つ思いついたのは、クロージャなしで任意の変数を関数に紐付けできる
WeakMapにcalleeとオブジェクトを紐付ければそれっぽくできるか
with(scope(arguments)){
$static, hoge, fuga, puyo, $
}
みたいな素敵な宣言文も定義できる

531 名前:デフォルトの名無しさん [2014/01/31(金) 06:23:51.84 ]
今やってるTC39ミーティングはES7がいよいよ始まったって感じで興味深いね。
Structured Clone、Typed objects、Value object、Parallel、Object.observe、Do expression、Async/await

その中のTyped objectsのスライドも面白い。
https://docs.google.com/presentation/d/1HGoxjX74Q9i8I1ok-hkmxzWlM7CDQwxT0sUS5PJDxdg/
tobj.bufferで仮想的なメモリダンプができて、それを一旦保存して同型のコンストラクタに食わせることで復元したりも出来そうだね。

個人的お気に入りなのは『do式』
見た目はdo-while文のwhile以降がない形で、最後の評価値を返すブロック文のような式。

見送られたlet文のより良い代わりになったり、複数行アロー関数でのreturnの省略など、かなり素敵に役に立ちそう。
var v; let (r = rand()) { v = b*n|0 }

var v = do {let r = rand(); b*c|0 }

func = () => { ......; return hoge }

func = () => do{ ......; hoge }

ES6はいよいよ詰める作業に入ったね。
おそらくもう一回、3月末のミーティングを終えてから、4月くらいに最終草案が出来るんじゃないかな。

532 名前:デフォルトの名無しさん [2014/01/31(金) 19:19:33.18 ]
Value Objectsのスライド面白いね。
www.slideshare.net/BrendanEich/value-objects2

興味深いのは数値にサフィックスを付けて独自の型を定義できるようになったことだろうか。
1KB + 1MB // 1025KB とかできるわけだ。
更に演算子での暗黙の型変換を簡単に調整できるかもしれない。

awaitの情報も面白い。
https://github.com/lukehoban/ecmascript-asyncawait
Promiseが活躍してるね。

533 名前:デフォルトの名無しさん mailto:sage [2014/02/01(土) 01:35:24.81 ]
単体doはPerlを思い出すな

534 名前:デフォルトの名無しさん [2014/02/03(月) 21:58:06.74 ]
最近JSのマクロでsweet.jsが流行ってるけど、ES8のマクロはこれがベースになりそうな予感

535 名前:デフォルトの名無しさん mailto:sage [2014/02/03(月) 23:27:10.33 ]
ES8って…鬼が笑いそうだな(節分だけに)



536 名前:デフォルトの名無しさん mailto:sage [2014/02/04(火) 00:01:33.82 ]
ラムダっちゃ

537 名前:デフォルトの名無しさん [2014/02/04(火) 06:06:37.19 ]
>>535
ES6の勧告は今年末
ES7の勧告はその2年後(つまり今から約3年後)を予定してるとなると
ES8の勧告は2020年になるまでには……って感じだろうな

でもこれまでの流れを見ると、ES7が大方固まったころ、つまり今から2年後にはES8の仕様もミーティングで話されていくし、
その1年前、つまりES6が勧告される頃には、メーリングリストで議論されてstrawmanに候補が挙げられだすのが定跡

つまり、ES8を考えだすのは来年の話でもないと思う
そもそもSweet.jsはMozilla製だし、macro文とかdef文とかESに取り込まれることを狙っているのかもしれない

あともう一つ挙げるなら、かつてES8だと思われてた機能も今のところマクロ以外はみんなES7になったし、
ES7だと思われてたPromiseが急遽ES6に入った例もあるから
マクロもSweet.jsみたいなのがPromiseライブラリ並みの存在になればもしかしたら……ってのはある

538 名前:デフォルトの名無しさん mailto:sage [2014/02/04(火) 06:18:04.99 ]
春にはV8でもアロー関数が使えるようになりそうだよ!!
やったねたえちゃん!
https://code.google.com/p/v8/issues/detail?id=2700

539 名前:デフォルトの名無しさん [2014/02/05(水) 06:02:48.34 ]
今までWorker間のデータのやり取りはコピーか移譲しかできない件でいろいろ議論があったが、
V8/ChromeでArrayBufferの共有をできるようにするみたい。
オマケで排他処理を利用したスレッド制御ができるようになる。

https://chromiumcodereview.appspot.com/148283013/
https://chromiumcodereview.appspot.com/149053009/
https://chromiumcodereview.appspot.com/149053009/diff/1/src/arraybuffer.js

540 名前:デフォルトの名無しさん [2014/02/06(木) 10:10:23.63 ]
先日の会議でPromiseに関してchainを廃止してcastをresolveに統合することになったんだけど、凄い揉めてる
esdiscuss.org/topic/promise-cast-and-promise-resolve

似たのがあるのはややこしくて無駄
chainとthen、resolveとcastでそれぞれ前者がベーシックで、後者が実用的という感じだろうか
で、残すとなると実用的な方になるのはもっともだが、
ベーシックな方を捨てると、関数型スタイルとしての魅力を大きく損ない、ただのサポートAPIに成り下がってしまう

皆Promiseに対して考えてる重みが全然違う
高レベルなフレームワーク追加と思うかパラダイム導入と思うかでぜんぜん違う
宗教的な部分も関わってくる
もっと根本的な設計から文句がある人もいる(決まるのが急すぎた!)
今でも案が出るし、PromiseじゃなかったらとっくにES7に持ち越しになってると思う

今後どうなるか注目

541 名前:デフォルトの名無しさん mailto:sage [2014/02/06(木) 18:21:27.41 ]
こんな感じ?

〜ML〜
chain(flatMap)が要る要らないというようなことが半年前から度々話されてきた

〜そして先週の会議〜
「要らないよね〜」
「無くすのでいいと思う」
(ほぼ満場一致ですぐ決まる)

〜ML〜
「解決したよ〜^^ chainとresolveは無くすね」
「これはひどい><」
「話が違うじゃねえかざけんな!」
「オンラインでの積み重ねを大事にしろよ」

・Googleの人
「あー、会議に出れなくて言えなかったのマズったな
 ま、周りではchain推しだしV8では無くさないことにしたから^^;
(そもそもthenがクソだからchain実装したんだし!)」

「でも会議にでなかった人が決議を取り消せたら進展しないよね…」
『『『会議の意義って…………』』』

そして遂に出てしまった危険ワード「disasters like ES4」に皆が内心震え上がりましたとさ
爆死

542 名前:デフォルトの名無しさん [2014/02/16(日) 06:09:25.38 ]
wiki.ecmascript.org/doku.php?id=strawman:relationships
これでprivateメンバを実現する仕組みは分かったんだけど
イマイチ他の有り難みが分からない
もしかして

f.set(b, v1)
f.set(b, v2)
f.set(b, v3)
x = f.get(b)
に比べて

b@f = v1
b@f = v2
b@f = v3
x = b@f
の形だと3変数を関連付けする意味も持ってるから

x = v3
とコードを最適化できるってこと?

それと、もしこうなったらなんかヤバイね
esdiscuss.org/topic/merging-bind-syntax-with-relationships

543 名前:デフォルトの名無しさん mailto:sage [2014/02/19(水) 19:12:47.88 ]
CやC++もそうだけど、最新仕様にジワジワ対応してくのがいやだな
ベンダー中立なのも善し悪しだ

544 名前:デフォルトの名無しさん mailto:sage [2014/02/20(木) 00:50:48.29 ]
es6のletも関数の先頭に巻き上がるの?

545 名前:デフォルトの名無しさん [2014/02/20(木) 06:13:15.91 ]
let,constはブロックスコープで巻き上がらないよ
因みに関数宣言はブロックスコープで巻き上がる事になった
スコープに関してはこの2点を押さえとけばいい



546 名前:デフォルトの名無しさん mailto:sage [2014/02/20(木) 10:54:52.79 ]
どうもどうも。
つうことはlet,constだけを使ってる限りは、C++と同じように使う直前で宣言する
っていうルールでいいわけだ

547 名前:デフォルトの名無しさん mailto:sage [2014/02/20(木) 18:47:18.88 ]
逆じゃね?
巻き上がるvarは先頭で宣言する意味が無いけど、
letはブロック文の先頭にやった方がいいと思う。

var a
if(f) { a = 1 }
else { a = 2 }

if(f) { var a = 1 }
else { var a = 2 }
とできるし、そのほうが分かりやすい。

letだとこれができない。
で、分岐の前で宣言するようなことをちまちますると分かりにくいから、
いっそそのブロックの先頭でまとめて宣言した方が分かりやすい。

constは定数なので当然先頭のほうが分かりやすい。

548 名前:デフォルトの名無しさん mailto:sage [2014/02/20(木) 20:11:08.24 ]
'use strict';
var a = 1;
function hoge() {
// ↓グローバル変数にアクセスするつもり
console.log(a); // => undefined (巻き上げの為)
var a = 2;
// aを使う処理
};
--------
let a = 1;
function hoge() {
// ↓グローバル変数にアクセスするつもり
console.log(a); // => 1 (のはず未確認)
let a = 2;
// aを使う処理
};

と直感的になるから使う直前で宣言するで問題無いよ

549 名前:デフォルトの名無しさん [2014/02/21(金) 06:02:18.19 ]
>>548 あくまで変数はスコープに属する
つまり正確には変数の存在は巻き上がるというかスコープに浸透する
但し宣言箇所までに使おうとするとエラーになる
だからletさえあれば必ずしも良く書けるというわけでもない

特にfor文ではletは一見凄くいい
最近Cと同様に毎ループスコープコンテキストを生成するようになった
これでfor文中でのクロージャ生成がグッとよくなる
ただしその影響でパフォーマンスに影響があるかもしれない
理論的にはループ中にスコープコンテキストを保持するものがない場合
コンテキストを生成しなくて済むが、実際最適化が進むのは時間かかる

いずれにせよ、letはキチッとしたイメージで使っていくべきだと思う
>>547のような場合は、もし使う直前で宣言するのなら
それはそれ以前に変数を使っていた場合にエラーにしたいからという理由に自ずとなる
だがもし>>548のように見えて、キチッとしてないと思うのならブロック文の最初で宣言すべき
ただ大半のケースであろう、そのスコープだけで下位のスコープでは使わない場合
一気に宣言と代入をした方がコンパクトでいいとは思う

場合によっては先頭にする、また場合によってはvarも使うというように
個人的ポリシーのもと綺麗に使い分けるか、思い切ってvarを捨てて
letのその場宣言に統一するか、どちらがいいかは分からない

550 名前:デフォルトの名無しさん mailto:sage [2014/02/21(金) 10:47:15.29 ]
変数の定義は出来る限り後にするってのはEffectiveC++にも書いてある事だし
let,constを使ってる限りはその習慣のままでよくなったって事でいいよ

551 名前:デフォルトの名無しさん mailto:sage [2014/02/25(火) 17:51:36.53 ]
ES6ってEffectiveC++まで読まないと使いこなせないのか…

552 名前:デフォルトの名無しさん mailto:sage [2014/02/25(火) 23:03:38.54 ]
>>551
んなわけない
C++の人がJS のヘンテコな仕様を気にしなくてよくなっただけだ

553 名前:デフォルトの名無しさん [2014/03/20(木) 20:37:22.08 ID:OnvdowAM]
ES7+に関するニュースがたまってきた
まずObject.observeがChrome M35でデフォルト有効になるね
つまり日本時間の4/1からES7の時代なわけだ、素晴らしい

それからES6に摂りこぼしたようなメソッドが入ってくる
esdiscuss.org/topic/object-entries-object-values
まあこういうのは仮にES7になっても、すぐ実装される可能性が高いか

あと興味深かったのはASTならぬCSTについて
esdiscuss.org/topic/concrete-syntax-tree
これが標準APIとして入ると、最近2chでもよく耳にするJSのコード分析ツールが発達するだろうね

554 名前:デフォルトの名無しさん mailto:sage [2014/04/06(日) 10:34:50.10 ID:BAtZ8TGv]
Microsoft、プログラミング言語“TypeScript”を正式リリース
ttp://www.forest.impress.co.jp/docs/news/20140403_642703.html

555 名前:デフォルトの名無しさん mailto:sage [2014/04/26(土) 00:52:27.92 ID:FOzpDrfL]
しかし、letが使えない事が最もイラつく要因だな
これだけは間違いなく設計ミスと言わざるを得ない
はやいとこletが当たり前のように使えるようになってほしいよ



556 名前:デフォルトの名無しさん mailto:sage [2014/04/26(土) 04:17:27.66 ID:m4NkAp8y]
Let it be.

557 名前:デフォルトの名無しさん mailto:sage [2014/04/26(土) 06:30:34.96 ID:IOWbf8hT]
なんでそんなもんが要るのか理解に苦しむ

558 名前:デフォルトの名無しさん mailto:sage [2014/04/26(土) 07:34:51.39 ID:/1bv/NFj]
letって糖衣構文だよね?

559 名前:デフォルトの名無しさん mailto:sage [2014/04/26(土) 09:05:12.45 ID:N/wOneBP]
letをラムダ式で書くのは一般に可読性がすごく悪いので、letがラムダ式の糖衣構文であることは
間違いないけど、良い糖衣構文の典型例と言っていい。

おまけにJSのラムダ式は function とか無駄にキーワードも長いし(funcで十分ですお)。

560 名前:デフォルトの名無しさん mailto:sage [2014/04/26(土) 09:28:02.77 ID:dytsHLSj]
そもそもムダ式の使いどころがわからないw

561 名前:デフォルトの名無しさん mailto:sage [2014/04/26(土) 10:45:40.07 ID:/1bv/NFj]
(function って書きかたするだけで即時無名関数だってわかるし、可読性悪いと思わないな。
とはいえletは便利だと思う。

562 名前:デフォルトの名無しさん mailto:sage [2014/04/27(日) 10:16:14.38 ID:J+hFW2BD]
架空の構文を使うが、

let (a = a に与える値, b = b に与える値) { a とか b とかを使ったプログラム片 };
↑コレが、こうなる↓
(function (a, b) { a とか b とかを使ったプログラム片 })(a に与える値, b に与える値);

可読性は大幅に違うと思うが?

563 名前:デフォルトの名無しさん mailto:sage [2014/04/27(日) 12:50:33.35 ID:dzdj67m/]
var使えばいいじゃん

564 名前:デフォルトの名無しさん [2014/04/27(日) 16:49:18.92 ID:/n7QikUK]
varか

565 名前:デフォルトの名無しさん mailto:sage [2014/04/27(日) 16:58:01.12 ID:ZSKa5kXO]
バーカと言ってんのか。



566 名前:デフォルトの名無しさん mailto:sage [2014/04/28(月) 07:32:48.30 ID:pTdZCSXw]
perlみたいにmyにすればvarより一文字タイプする手間が減って
人類全体ではおそらくのべ何百万時間と何百テラバイト節約できたのに。

567 名前:デフォルトの名無しさん mailto:sage [2014/04/28(月) 10:37:13.73 ID:nTejnWG/]
そこでさらに1文字減らそうと考えないお前はとことん子供だな

568 名前:デフォルトの名無しさん mailto:sage [2014/04/28(月) 12:21:34.72 ID:6N4YFPM8]
>>556
今なら let it go だな

569 名前:デフォルトの名無しさん mailto:sage [2014/04/29(火) 01:06:54.91 ID:AbmpH0cg]
>>567
phpの$はすばらしいな!え、ちがう?

570 名前:デフォルトの名無しさん [2014/04/29(火) 20:33:54.13 ID:pZyrXbny]
class構文書く時@@createとconstructorの役割の割り振りが難しそうだな
Arrayとか標準クラスを参考にすると@@create()ではそのクラスのインスタンスたり得る未初期化のオブジェクトを構築する
つまり例えばArrayならlengthや自然数がハックされた(Proxy)オブジェクトを作り、prototypeの継承もここでする
この時点で、obj.isClass()はtrueになるべきだが、まだオブジェクトが使える状態であってはいけない

その次にconstructor()で、this.isClass()がtrueならば実際の初期化を行い、使える状態にする
this.isClassがfalseまたは、初期化済みのインスタンスが渡された場合はエラーにする
逆にconstructorでオブジェクトをそのクラスのインスタンスたらしめる処理を行ってはいけない
例えば、内部的に使用するプロパティを新しく作成してはいけない
内部プロパティは@@create()でundefinedの値を入れて作っておき、constructor()ではそこに入れるだけにする

これを常に守っているクラス間では、多重継承や多重継承元オブジェクトの作成など柔軟性の高さを確保しつつ、安全なクラスシステムが定義できる
一方自由が好きな人でも、@@createを使いこなすことで自分好みのクラスシステムを再定義できる
例えば〜.prototype.〜は長いから〜.$.〜にしようとかも超容易にできる

571 名前:デフォルトの名無しさん mailto:sage [2014/04/29(火) 21:23:55.12 ID:/EtEvdEl]
JavaのJavaScriptが更新されたね

572 名前:デフォルトの名無しさん mailto:sage [2014/05/10(土) 00:26:41.76 ID:IHaPgo2n]
ES6のイテレータってJava8のStreamAPIみたいなメソッド無いの?

573 名前:デフォルトの名無しさん mailto:sage [2014/05/29(木) 22:34:29.48 ID:fV0QO8N6]
マイクロソフト、IEの新機能紹介サイト「status.modern.ie」を正式版に
www.atmarkit.co.jp/ait/articles/1405/29/news127.html






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<154KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef