[過去ログ] + JavaScript の質問用スレッド vol.122 + [無断転載禁止]©2ch.net (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
451
(1): (ワッチョイ 52dd-2R1L) 2016/12/02(金)03:23 ID:cAbrvXmy0(1) AAS
>>450
その例の proxy に対する in 演算子は proxy で定義された has を呼び出すので
その has 自身の定義の中では in は使えないことになる(再帰呼び出しになる)
ってことじゃない?
そのため、元々の in を表現するために Reflect が必要になると
452: (ドコグロ MMf4-gqht) 2016/12/02(金)13:09 ID:1FE2fahvM(1) AAS
>>451
ありがとうございます。
targetは元のオブジェクト(obj)を指すので、再起呼び出しにはならないと思います。
実際に試しましたが、再起呼び出しにはなりませんでした。
もちろん、targetの代わりにproxyを使えば、inでもReflect.has()でも再起呼び出しでエラーになります。
やっぱりReflect.has()を使う意味が分かりません。
453
(2): (ワッチョイ 5a0d-J5J/) 2016/12/04(日)04:59 ID:cfKCrj340(1) AAS
[0,1,2]を[0,0,0,0,1,1,1,1,2,2,2,2]にしたいんだが
Uint8ArrayとUint32Arrayとか使ってスマートに実装できんだろうか?
454: (オッペケ Sr8d-yaSi) 2016/12/04(日)12:41 ID:LcKQAqeVr(1) AAS
>>453
なぜ Uint8Array が使えると思ったのか判らんが、現在のコードをさらしたら?
書いても「それは知ってる」と反応されるのは無駄だから
455: (ワッチョイ 5c7b-yaSi) 2016/12/04(日)12:49 ID:sKFdzyUb0(1) AAS
アルゴリズムの話をしたいのか、該当する命令の有無を知りたいのか不明。
456: (ワッチョイ 39ce-NTgB) 2016/12/04(日)12:56 ID:ObsZQ3a00(1/3) AAS
つーかここまで書いている本人がわかってないのバレバレな
書き込みもないよなw

本人は知ったかぶりしてるようだが、全く理解してないってのがよくわかるw
457: (オッペケ Sr8d-yaSi) 2016/12/04(日)17:09 ID:YTjaleeQr(1) AAS
>>453
一応、書いたが、Uint8Array をどう活用しようと思ったのか判らんかった
外部リンク:jsfiddle.net
reduce を使った方がスマートだったかも知れん
458: (ワッチョイ 39ce-NTgB) 2016/12/04(日)20:55 ID:ObsZQ3a00(2/3) AAS
> reduce を使った方がスマートだったかも知れん
最初にそれに気づかない時点で終わってるよなw
459
(1): (オッペケ Sr8d-yaSi) 2016/12/04(日)22:39 ID:ZWOrjn1Er(1/2) AAS
for-ofで十分な気がしなくもない
外部リンク:jsfiddle.net
なぜか制御構文を敬遠する人がいるようだが、取り立てて使いづらい訳でもない
460
(3): (ワッチョイ 39ce-NTgB) 2016/12/04(日)22:58 ID:ObsZQ3a00(3/3) AAS
>>459
SyntaxError: missing = in const declaration

こうなるからつかわねーんだよw
461: (オッペケ Sr8d-BMT5) 2016/12/04(日)23:19 ID:ZWOrjn1Er(2/2) AAS
for-ofでconstはGoogle Chrome では使えるので誤解していたが、Firefox では使えないんだな
ES7仕様上はFirefoxが正しいようだ
外部リンク:www.ecma-international.org
「for-ofでconstが使えない」はfor-ofを使わない理由としては弱い気がするが
462: (アウアウウー Sa19-BMT5) 2016/12/04(日)23:45 ID:Gn0FqIa6a(1) AAS
関数の利点はスコープを分けられる事だが、for-of上ではletを使えるのでスコープの問題はない
各々の好みで選べば良い

for (let value of source) { push.apply(destination1, Array(4).fill(value)); }
const destination2 = source.reduce((destination, value) => (push.apply(destination, Array(4).fill(value)), destination), []);
463
(2): (ワッチョイ 865b-BMT5) 2016/12/04(日)23:47 ID:+YPrxJ8s0(1) AAS
for-of+constも仕様上できるよ
IterationStatement[Yield, Return]:
 for(ForDeclaration[?Yield] of AssignmentExpression[In, ?Yield]) Statement[?Yield, ?Return]
 他
ForDeclaration[Yield]:
 LetOrConst ForBinding[?Yield]
LetOrConst:
 let
 const

ただ、現状 for-of と const の組み合わせに対応しているブラウザが少ない。(Edge14、GC49〜、SF10〜、iOS10〜)
省2
464: (ワッチョイ 39ce-NTgB) 2016/12/05(月)00:13 ID:PskkFbSl0(1/7) AAS
そこでbabelがでてくる。

babelっていうのはES6以上を今の(ちょっと前の)ブラウザで動くように変換してくれるもの。
もちろん>>463の一覧にも乗っていてきちんと対応している。
このようにブラウザ間の非互換性を吸収する機能も持っている。

babelをつかわなければ、この機能はこのブラウザで対応していたっけ?って
考える必要があるが、babelを使えばいくつもあるブラウザのことを考える必要はなくなり
たった一つ、babelで対応しているか?を考えるだけで良くなる。
465: (オッペケ Sr8d-BMT5) 2016/12/05(月)00:22 ID:4g48wyMyr(1/4) AAS
>>463
情報ありがとう
改めて見たらES7仕様にも書いてあった
よく読む必要があるな…
466: (アウアウウー Sa19-BMT5) 2016/12/05(月)00:30 ID:nh5tVKvoa(1) AAS
Babelを使うならfor-of+constも使えるはずだが、(ワッチョイ 39ce-NTgB)はfor-of+constを使わない(>460)といってる
Babelを使うならSyntaxErrorが発生するはずがないが、SyntaxErrorが発生している(>460)
主張に一貫性がない
467
(1): (ワッチョイ 39ce-NTgB) 2016/12/05(月)00:57 ID:PskkFbSl0(2/7) AAS
>>460を主張だと思うから矛盾しているようにみえるんだよw

全てはお前らにブラウザ間の互換性問題の話をさせるための仕込み
俺の本当の目的はbabel布教

俺がいきなりbabel布教したって、他の人にはどれだけ問題があるか
わかりづらいだろ? 問題をお前らにさせることで問題があることを
事実だと他の人にわかりやすいようにしたのさ
468: (オッペケ Sr8d-yaSi) 2016/12/05(月)01:26 ID:4g48wyMyr(2/4) AAS
「実は嘘でした」というのは簡単だが、代わりに信用を失う
いずれは狼少年と同じ結末を迎える
469: (ワッチョイ 39ce-NTgB) 2016/12/05(月)01:30 ID:PskkFbSl0(3/7) AAS
Firefoxでエラーが出るのは本当だし、
それをBabelが解決するのも本当だよ。
470
(1): (オッペケ Sr8d-yaSi) 2016/12/05(月)01:32 ID:4g48wyMyr(3/4) AAS
>>460は「エラーが出るからfor-ofを使わない」と嘘を吐いた
1-
あと 532 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.011s