のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:127,062,836人
昨日:no data人
今日:
最近の注目
人気の最安値情報

    私的良スレ書庫

    不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitter
    ログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。

    元スレ+ JavaScript の質問用スレッド vol.137 +

    JavaScript スレッド一覧へ / JavaScript とは? / 携帯版 / dat(gz)で取得 / トップメニュー
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
    レスフィルター : (試験中)
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter
    101 : Name_Not - 2019/01/14(月) 18:48:30.56 ID:???.net (+93,+29,-8)
    >>97>>96の疑問に答えてるだけだと思う
    102 : Name_Not - 2019/01/14(月) 19:25:46.43 ID:???.net (+61,+26,+1)
    >>101
    なるほど
    103 : Name_Not - 2019/01/14(月) 20:11:29.02 ID:???.net (+7,-30,-60)
    >>95
    マジレスすると、Mapリテラルは非常に設計が面倒くさいと思うぞ
    keyに何でも入れられるので、Syntaxが複雑化極まる
    {{1:1,true:2,"s":3,{}:4,[]:5,()=>1:6,function f(){}:7,Symbol():8,new Object:9}}
    104 : Name_Not - 2019/01/14(月) 20:14:40.72 ID:???.net (+52,+29,-1)
    そんなこと聞いてない
    105 : Name_Not - 2019/01/14(月) 20:17:16.40 ID:???.net (+52,+29,-2)
    飛影はそんなこと言わない
    106 : Name_Not - 2019/01/14(月) 20:25:54.34 ID:???.net (+43,-30,-169)
    Mapいいんだけどさぁ、重厚長大過ぎるよ。
    使いどころはあるけど普段使いしないよ。
    単なる組み込みクラスでリテラルも無くsetget系APIも目にうるさい。
    顧客が本当に求めていたもの: 列挙時順序保証のオーダードオブジェクトリテラル
    const list = #{variable1, variable2, variable3};
    >>81の順序が保証されるみたいな。
    これをfor inしたときはプロトタイプ辿らないみたいな挙動なら完璧。
    107 : Name_Not - 2019/01/14(月) 20:41:21.54 ID:???.net (+2,-29,-22)
    たしかにget/setはダサい
    []でアクセスできてこそmap
    TypedArrayが[]アクセスできるのは何でだっけ
    108 : Name_Not - 2019/01/14(月) 20:44:51.69 ID:???.net (+63,+29,-16)
    >>106
    後方互換性を考慮してあの設計なのだろう
    109 : Name_Not - 2019/01/14(月) 20:48:57.65 ID:???.net (-1,-30,-73)
    >>107
    TypedArrayは通常の配列と同じでString,Symbol型しかプロパティに持てないから
    原理的には、プロパティアクセサを拡張すれば、new Mapでも[]の参照が可能
    110 : Name_Not - 2019/01/14(月) 20:52:39.68 ID:???.net (+14,-30,-96)
    テンプレートリテラル`~`に対するタグ付きテンプレートリテラルhoge`~`みたいに配列リテラル[~]、オブジェクトリテラル{~}に対してもfuga[~]、piyo{~}みたいにユーザー定義の道を開いてくれると嬉しい。
    配列リテラルについては無理か…
    fugaに対するキーワードアクセスと区別つかないもんな。
    111 : Name_Not - 2019/01/14(月) 20:54:21.73 ID:???.net (+7,-28,-18)
    >>110
    タグ付きテンプレートリテラルとは?
    112 : Name_Not - 2019/01/14(月) 20:57:22.92 ID:???.net (+7,-29,-16)
    113 : Name_Not - 2019/01/14(月) 21:02:17.81 ID:???.net (+9,-30,-60)
    >>112
    滅茶苦茶読みにくいな
    template(`${0} ${'foo'}!`)がtemplate`${0} ${'foo'}!`と書けるだけだが、何が便利なんだ?
    114 : Name_Not - 2019/01/14(月) 21:05:44.07 ID:???.net (+22,-30,-67)
    >>113
    styledComponentのAPIがこれ使ってた気がするな…
    まあリフレクションAPIとかと同じでフレームワークやライブラリを作る人が使う機能で一般ユーザーは提供されるAPIにしたがってhoge`~`するだけだよ。
    115 : Name_Not - 2019/01/14(月) 21:09:53.55 ID:???.net (+30,+0,-46)
    >>114
    なるほど、タグ付きテンプレートリテラルに最適化されたAPIを作れるのが利点か
    116 : Name_Not - 2019/01/14(月) 21:25:16.32 ID:???.net (-2,-30,-15)
    117 : Name_Not - 2019/01/14(月) 21:41:28.08 ID:???.net (+0,-29,-60)
    >>113
    そんなもんテンプレートエンジン使っていればわかるやん?

    例えばCakePHPだとh関数でHTMLエスケープするやろ?
    e関数だと、そのままechoやろ?
    118 : Name_Not - 2019/01/14(月) 21:46:25.67 ID:???.net (+4,-29,-16)
    tag(``)がtag``って書けるのがナウいんだよ!うるせーな!!
    119 : Name_Not - 2019/01/14(月) 21:52:53.15 ID:???.net (+3,-30,-68)
    >>118
    違います。
    tag(`a${1}b`)だと関数tagは1つの文字列a1bしか受け取れません。
    tag`a${1}b`だと関数tagは配列(厳密にはrawも含むが)['a', 'b']と1がそのまま受け取れます。
    120 : Name_Not - 2019/01/14(月) 21:58:48.37 ID:???.net (+57,+29,-16)
    ようするに出力をエスケープするためのもの
    121 : Name_Not - 2019/01/14(月) 22:06:02.40 ID:???.net (+40,+24,+0)
    バカは黙ってろ
    122 : Name_Not - 2019/01/15(火) 14:12:31.38 ID:???.net (+4,-30,-23)
    >>110
    tc39眺めてたらそういう話なくもないんだな。
    suffix方式にすれば配列リテラルも行けるらしい。
    http://github.com/tc39/proposal-extended-numeric-literals/blob/master/README.md#extended-maparray-literals
    123 : Name_Not - 2019/01/15(火) 19:35:11.81 ID:???.net (+63,+30,-82)
    眺めてたらってそういう話もなくはないんだなって。。。
    もういい加減にしてくれ
    この手の話は何度もES6から出てただろうが
    そして何度も挙がるものって2種類あって
    毎回進歩するものとそうでないもの
    これは後者だろうが
    そのへんなんにも追っかけてなくてニュアンス理解してないくせに
    一瞬調べて無責任に引っ張ってくるってどうよお前
    お前どうよ?それ
    124 : Name_Not - 2019/01/15(火) 19:41:05.06 ID:???.net (+57,+29,-24)
    無責任って何を当たり前なことを…
    なんで俺が責任とるんだよバーカw
    125 : Name_Not - 2019/01/15(火) 20:54:57.06 ID:???.net (+45,+27,+0)
    んほぉ
    126 : Name_Not - 2019/01/15(火) 20:55:09.61 ID:???.net (+50,+27,-2)
    すみません誤爆です…
    127 : Name_Not - 2019/01/15(火) 21:06:16.47 ID:???.net (+52,+29,-1)
    あんまり誤爆に見えない
    128 : Name_Not - 2019/01/15(火) 21:20:55.61 ID:???.net (+57,+29,-5)
    中身がない文章は汎用的になるので
    どこでも使える
    129 : Name_Not - 2019/01/16(水) 08:46:50.52 ID:???.net (+5,-30,-133)
    >>77
    let variable1 = "";
    let variable2 = [];
    let variable3 = 12;

    let list = [];

    list.push({variable1});
    list.push({variable2});
    list.push({variable3});

    for (let obj of list) {
    alert(Object.keys(obj)[0]);
    }
    130 : Name_Not - 2019/01/16(水) 12:35:22.45 ID:???.net (-1,-29,-34)
    名前はスコープで管理されているのでwithを使うしかない
    それでも原理的に確実ではないのでwith-proxyを使うか
    131 : Name_Not - 2019/01/16(水) 20:06:14.67 ID:???.net (-1,-29,-41)
    リストに追加した後も変数名残そうと思ったらwith-proxyだけじゃ足りないだろ
    value-proxyが導入されたら組み合わせて可能かもしれないが
    132 : Name_Not - 2019/01/16(水) 20:20:43.58 ID:???.net (-1,-29,-18)
    with-proxyて何?検索しても出てこない(´;ω;`)
    なんでみんな知ってるんや…
    133 : Name_Not - 2019/01/16(水) 21:25:52.91 ID:???.net (+3,-30,-96)
    そのまんま
    with(new Proxy(......)){}
    のことでしょ
    こうしたら変数アクセスをほぼほぼプロキシできる
    例えば__scope__でスコープオブジェクトにアクセスできるようにしたり
    $GetVariableName(a) // 'a'
    みたいな事とかいろいろできる
    134 : Name_Not - 2019/01/16(水) 21:33:32.12 ID:???.net (+3,-30,-42)
    他にも分数だったりbignum同士の四則演算もできたはず
    $BEGIN_BIGNUM
    a = '12345678901234567890'
    b = '23456789012345678901'
    c = a + b
    $END_BIGNUM
    c // '35802467913580246791'
    って感じでできるようにプロダクトで使ったことある
    135 : Name_Not - 2019/01/16(水) 22:45:54.04 ID:???.net (+52,+24,-8)
    へぇ~
    参考ページない?英語でも可
    いろいろサンプル見たい
    136 : Name_Not - 2019/01/17(木) 06:19:37.66 ID:???.net (+52,+29,+0)
    邪道だから無いだろ
    137 : Name_Not - 2019/01/17(木) 19:13:22.53 ID:???.net (+41,+23,+0)
    無いです
    138 : Name_Not - 2019/01/17(木) 19:52:23.21 ID:???.net (+38,+20,+0)
    無いな
    139 : Name_Not - 2019/01/17(木) 20:02:14.70 ID:???.net (+57,+29,-8)
    原理的に変数アクセスがプロキシできたらできることなら何でもできるよ
    140 : Name_Not - 2019/01/17(木) 20:04:53.47 ID:???.net (+57,+29,-19)
    変数名を後から変更すると不具合誘発するとか、怖くて使えない
    141 : Name_Not - 2019/01/17(木) 20:19:06.33 ID:???.net (+57,+29,-10)
    変数名を変えても影響でないでしょ
    メタ処理で決め打たなければいいだけなんだから
    142 : Name_Not - 2019/01/17(木) 20:41:53.84 ID:???.net (+57,+29,-64)
    論よりコード。
    with proxyでゴチャゴチャ言ってる人たちは上の奴らと違ってコードを出さずにイキってばかり。
    143 : Name_Not - 2019/01/17(木) 20:53:03.94 ID:???.net (+58,+30,-75)
    すまんが俺はコードより論派なんでね
    糞面倒な糞コードをわざわざ書こうとは思わん
    特に楽しくアイディアを語り合ってるのをイキってるとか言うやつの言うことは聞きたくないね
    素直なかわい子ちゃんのお願いだったら聞いてやる
    144 : Name_Not - 2019/01/17(木) 20:59:33.67 ID:???.net (+74,+29,-100)
    てかwithproxyとやらでも順序は保証できないじゃんw
    順序保証しなくていいなら>>81でいいじゃんww
    ダラダラproxy書く意味まるでナシwww
    proxyproxy言ってる人は何か勘違いしているのでは?wwww
    論は論でも机上の空論wwwww
    145 : Name_Not - 2019/01/17(木) 21:09:12.84 ID:???.net (+3,-30,-154)
    こいつ何いってんだ?
    listに入れたものだとvalue-proxy使わないと難しいねって最初から話されてるだろ
    勿論すべての箇所で値が欲しいときはSLOVE(x)、名前が欲しいときはNAME(x)を使う
    つまり
    for(let i = 0; i < SLOVE(list).length; i++)
    {
    alert(NAME(SLOVE(list)[i]));           //variable1 variable2 variable3と順番に表示
    }
    みたいに書いてもいいっていうなら原理的に可能だが
    146 : Name_Not - 2019/01/17(木) 21:16:04.21 ID:???.net (+3,-29,-79)
    あと、ただ変数を列挙したいだけなら上で挙がったように
    __scope__みたいなの1つだけ特別扱いして
    __scope__.keys()みたいなのを定義すればいいだけだと思うよ

    そのままだとすべて列挙することになるけど
    まあどうして列挙したいのかわからんが、例えばデバッグのためなら
    変数名のパターンで絞り込むとか、そのくらいのことで実際はOKかもしれんよ
    148 : Name_Not - 2019/01/17(木) 23:06:06.95 ID:???.net (+32,+21,-1)
    せやで。
    149 : Name_Not - 2019/01/17(木) 23:16:56.33 ID:???.net (+6,-30,-191)
    >>77
    趣向を変えてタグ付きテンプレートでやってみたよ!

    let list_keys = strs => [eval(strs[0]), strs[0].replace(/\[(.*)\]/, '$1').split(/ *, */)];

    let variable1 = '';
    let variable2 = [];
    let variable3 = 12;

    let [list, keys] = list_keys`[variable1, variable2, variable3]`;

    for (let i = 0; i < list.length; i++) {
    alert(keys[i]);
    }
    150 : Name_Not - 2019/01/17(木) 23:25:33.24 ID:SKqdbC1t.net (-20,+29,+0)
    >>148
    さよか。
    おおきに。
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / JavaScript スレッド一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

    類似してるかもしれないスレッド


    トップメニューへ / →のくす牧場書庫について