のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:127,062,837人
昨日: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
    51 : Name_Not - 2019/01/12(土) 05:11:24.32 ID:???.net (+38,-30,-100)
    テンプレート文字列
    http://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/template_strings

    Template literal は、バックティック文字(` `) (grave accent)で囲む。
    プレースホルダーは、ドル記号と波括弧、${expression}

    var a = 5;
    var b = 10;

    console.log(`Fifteen is ${a + b} and\nnot ${2 * a + b}.`);

    // "Fifteen is 15 and
    // not 20."
    52 : Name_Not - 2019/01/12(土) 09:32:50.42 ID:???.net (+3,-25,-14)
    >>51
    ありがとう、これですか
    f-stringみたいで使いやすいですね
    今はテンプレートリテラルと呼ぶのか
    53 : Name_Not - 2019/01/12(土) 10:50:35.29 ID:???.net (+12,-15,-13)
    テンプレートリテラルバックチック!!
    54 : Name_Not - 2019/01/12(土) 17:08:09.17 ID:???.net (+12,-15,-39)
    テンプレートストリングからテンプレートリテラルに改名されてもmdnのurlは昔の名前のままなんだな。当たり前か…
    56 : Name_Not - 2019/01/13(日) 11:00:45.93 ID:???.net (-1,-29,-7)
    タイトルのセレクターは、div.inf
    本文は、div.inf > div

    地名は、わからない
    57 : Name_Not - 2019/01/13(日) 11:40:14.49 ID:???.net (-1,-29,-33)
    アロー関数の前につけるvar, const, let
    ってどれでもいいの?
    58 : Name_Not - 2019/01/13(日) 11:44:47.92 ID:???.net (-7,-29,-12)
    constのみ
    59 : Name_Not - 2019/01/13(日) 11:48:06.69 ID:???.net (+48,+17,-30)
    let使うとif等のブロック内で定義した時、ブロックから出ると使えなくなる
    その方がいい場面があればletだけど、多分内と思う

    脳死でconstで良いと思う
    varはもう生涯使わんでいい
    60 : Name_Not - 2019/01/13(日) 12:03:07.48 ID:???.net (+1,-29,-32)
    >>58
    >>59
    ありがとう
    varはデプリケーテッドなんですね
    let はスコープ内だけで
    varはglobal
    constは定数
    61 : Name_Not - 2019/01/13(日) 12:13:26.62 ID:???.net (+3,-29,-91)
    constはletとスコープは一緒
    値を更新しないならconstが推奨される
    アロー関数を変更することなんてまず無いんだからconst一択
    どうしてもconstではできない時(少ない)だけletを使う
    62 : Name_Not - 2019/01/13(日) 12:23:27.73 ID:???.net (+91,+29,-52)
    アロー関数と関数宣言って使い分けがめんどくさい
    なんでこんなクソごっちゃで仕様めちゃくちゃにしてるんだか
    63 : Name_Not - 2019/01/13(日) 12:39:59.91 ID:???.net (+56,+28,-16)
    アロー関数は当分使わないかな
    なんか見づらいんだよな
    64 : Name_Not - 2019/01/13(日) 13:04:40.46 ID:???.net (+62,+29,-85)
    アロー関数は「関数である値」と考えればいいよ
    見づらいのは関数だと考えているから。

    例えば、 sort(比較関数) みたいな時
    引数はsoft関数にわたす値のようなもんでしょ?

    だから関数として見えるんじゃなくて
    値として見えるように、ああいう構文になってるんだよ
    65 : Name_Not - 2019/01/13(日) 13:06:35.64 ID:???.net (+70,+29,-21)
    >>62
    ついて来れない人達のために
    仕方なく互換性を残してるんだよ
    66 : Name_Not - 2019/01/13(日) 13:12:07.30 ID:???.net (+57,+29,-36)
    まあ関数リテラルのシンタックスシュガーだけど実際は中の挙動が違うし当たり前だけど定義の前では使えない
    67 : Name_Not - 2019/01/13(日) 13:13:16.73 ID:???.net (-1,-29,-38)
    アロー関数の => {} の{}の仕様は無くして欲しかったね。returnも使えなくしてほしかった
    => の右側は式だけで十分
    68 : Name_Not - 2019/01/13(日) 13:19:11.56 ID:???.net (+94,+29,-34)
    だからアロー関数と関数宣言の両方を使ってるソースみると、なんで統一しないの?ってなることもある
    だけどこれは仕方のないことなんだよ
    統一したいならfunctionを使うしかない
    69 : Name_Not - 2019/01/13(日) 13:31:32.20 ID:???.net (-1,-29,-14)
    => = function
    こういう代入ができればいいのに
    70 : Name_Not - 2019/01/13(日) 13:35:22.93 ID:???.net (+109,+29,-83)
    >>68
    目的が違うからだよ

    ・関数は宣言しておいて何処か別の場所で使う
    ・アロー関数は別の関数に値として渡すために使う

    書き方を分けることで、どういう使い方をするのかを
    読み手に読み取らせることが出来る
    71 : Name_Not - 2019/01/13(日) 13:36:07.62 ID:???.net (+57,+29,-21)
    「使い方が違う」というのを理解せずに
    単に「書き方が違う」とだけしか思ってないやつがいるんだよな
    72 : Name_Not - 2019/01/13(日) 13:54:05.63 ID:???.net (+72,+29,-64)
    >>70
    >・アロー関数は別の関数に値として渡すために使う

    渡すためだけにしか使えないわけじゃないんだけど、それはどこで誰が決めたの?
    73 : Name_Not - 2019/01/13(日) 14:12:56.13 ID:???.net (+23,-30,-203)
    input検証にhtml5からrequiredプロパティが使えるようになったとのことで
    それ試してるんですがvalidになったときの状態はどうやって判定したらいいのでしょう?
    input[name="hoge"]がパターン^abcでvalidになるとして
    if ($('input[name="hoge"]').value.match(/^abc/))
    のようにとってしまっては
    ただvalidとinvalidでスタイルを変更するだけの飾りになってしまうので
    何かvalidになったときその要素に何かプロパティが設定されるのではないかと思うのですが
    ちょっと調べてもわかりませんでした
    ご存知の方教えていただけるとありがたいです
    74 : 73 - 2019/01/13(日) 14:28:38.45 ID:???.net (+3,-30,-103)
    すみません追記です

    $('input[name="hoge"]')は$hogeとして
    patternプロパティ参照して
    if ($hoge.value.match($hoge.pattern))
    ではとれます
    if ($hoge.value.isvalid)
    のようにとれるのが理想でプロパティ見てますが
    っぽいのが見当たりません
    75 : Name_Not - 2019/01/13(日) 14:30:39.77 ID:???.net (+4,-30,-26)
    $('input[name="hoge"]:valid') でいいでしょ?
    無駄なことしなーいw
    76 : 73 - 2019/01/13(日) 14:56:58.66 ID:???.net (+3,-30,-64)
    >>75
    :の意味がよくわからず思考から除外してました
    それでとれることを確認しました
    Event.targetにも対応したかったのでそれをヒントに調べましたところ
    checkValidity()メソッドでいけることがわかりました
    $hoge.checkValidity()

    どうもありがとうございました
    77 : Name_Not - 2019/01/13(日) 19:29:07.92 ID:???.net (+22,-30,-221)
    オブジェクト(変数)名を取得する方法を教えてください。
    具体的には、以下のようにしたいです。

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

    let list = [];

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

    for(let i = 0; i < list.length; i++)
    {
    alert(list[i].???);           //variable1 variable2 variable3と順番に表示
    }
    78 : Name_Not - 2019/01/13(日) 19:35:26.00 ID:???.net (+3,-30,-239)
    長い

    const variable1 = "";
    const variable2 = [];
    const variable3 = 12;

    const list = [variable1, variable2, variable3];

    for (const i of list) {
     alert(???);           //variable1 variable2 variable3と順番に表示
    }
    79 : Name_Not - 2019/01/13(日) 19:43:44.97 ID:???.net (-1,-29,-3)
    listに入るものは変数名ではなく変数の中身だけなので無理
    80 : Name_Not - 2019/01/13(日) 19:54:58.99 ID:???.net (-2,-30,-52)
    こんな感じで書く方法があれば行けるかもねぇ

    for (arr) {
    console.log(this.var_name);
    }
    81 : Name_Not - 2019/01/13(日) 21:13:18.39 ID:???.net (+86,-30,-185)
    const variable1 = "";
    const variable2 = [];
    const variable3 = 12;

    const list = {variable1, variable2, variable3};

    for (const [key, value] of Object.entries(list)) {
    alert(key);
    }
    82 : Name_Not - 2019/01/13(日) 21:23:28.07 ID:???.net (+40,+22,-1)
    うほっ
    83 : Name_Not - 2019/01/13(日) 21:30:43.28 ID:???.net (+52,+29,-4)
    おまえ頭柔らかいな
    ほめてやろう
    84 : Name_Not - 2019/01/13(日) 21:39:04.89 ID:???.net (+62,+29,+0)
    >>81
    レベルが違うってはっきりわかんだね
    85 : Name_Not - 2019/01/13(日) 22:34:07.85 ID:???.net (-2,-30,-71)
    やっぱダメだわ大抵の処理系ではvariable1, variable2, variable3の順で出てくるれるが仕様では順序保証されてない
    86 : Name_Not - 2019/01/13(日) 22:42:52.36 ID:???.net (+54,+26,-6)
    Mapなら確か順序保証されてたからそっちにすれば
    87 : Name_Not - 2019/01/13(日) 23:25:31.42 ID:???.net (+3,-30,-244)
    eval使っていいならこんなのはどうじゃろ?
    順序保証されたぞ。

    const variable1 = "";
    const variable2 = [];
    const variable3 = 12;

    const list = ['variable1', 'variable2', 'variable3'];
    const map = list.map(name => [name, eval(name)]);

    for (const [key, value] of map) {
    alert(key);
    }
    88 : Name_Not - 2019/01/14(月) 02:25:40.41 ID:???.net (-1,-29,-22)
    関数を文字列化して、そこから正規表現で抜き出すw
    89 : Name_Not - 2019/01/14(月) 13:32:41.26 ID:???.net (+4,-30,-131)
    >>77
    いずれにしても、変数名を文字列で渡さなければ、無理

    const map = new Map([['variable1', variable1], ['variable2', variable2], ['variable3', variable3]]);
    for (let [key, value] of map) condole.log(key)
    90 : Name_Not - 2019/01/14(月) 16:46:47.82 ID:???.net (+3,-30,-200)
    ちょっと趣向を変えてこんなのとかw
    順序は保証されるし変数名を文字列で渡さなくてもいいぞ。

    const variable1 = () => "";
    const variable2 = () => [];
    const variable3 = () => 12;

    const list = [variable1, variable2, variable3];

    for (const func of list) {
    alert(func.name);
    }
    91 : Name_Not - 2019/01/14(月) 16:48:33.16 ID:???.net (+51,+28,-14)
    くだらない自己満
    92 : Name_Not - 2019/01/14(月) 16:54:47.92 ID:???.net (+52,+29,-2)
    もう終わりにしてくれるか
    93 : Name_Not - 2019/01/14(月) 17:36:46.04 ID:???.net (+57,+29,-12)
    そもそも変数名を取得する設計を見直した方がいい
    何がしたかったのかをもう一度よく考えてみるべき
    94 : Name_Not - 2019/01/14(月) 18:13:17.12 ID:???.net (+8,-30,-92)
    >>81
    個別に変数を作らなければ良い
    const map = new Map([['variable1', ""], ['variable2', []], ['variable3', 12]]);
    for (let [key, value] of map) console.log(key);
    95 : Name_Not - 2019/01/14(月) 18:17:17.65 ID:???.net (+60,+25,-11)
    Mapリテラルまだー?
    今の初期化構文、わかりづらいしリストに型の違う値入れなきゃで気持ち悪い
    96 : Name_Not - 2019/01/14(月) 18:19:23.94 ID:???.net (+38,-30,-103)
    それならMap使う必要まったくなくない?

    const list = [['variable1', ""], ['variable2', []], ['variable3', 12]];

    for (const [key, value] of list) {
    alert(key);
    }
    97 : Name_Not - 2019/01/14(月) 18:24:35.90 ID:???.net (+38,-29,-36)
    variable3の値だけ欲しいときに毎回find走らせるの?
    98 : Name_Not - 2019/01/14(月) 18:32:08.12 ID:???.net (+39,+21,-1)
    あ、なる
    99 : Name_Not - 2019/01/14(月) 18:42:47.94 ID:???.net (-2,-30,-24)
    あー、まぁ「variable3は必ずlistの3要素目である」っていう前提下ならlist[2][1]とかでいけるのか
    自分がそういう書き方しないから抜けてたわ
    100 : Name_Not - 2019/01/14(月) 18:47:02.84 ID:???.net (+4,-24,-6)
    >>97
    keyはユニークなんだから、配列と違って全体検索ではないでしょ?
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / JavaScript スレッド一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

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


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