元スレ+ JavaScript の質問用スレッド vol.137 +
JavaScript覧 / PC版 /みんなの評価 :
51 = :
テンプレート文字列
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 = :
>>51
ありがとう、これですか
f-stringみたいで使いやすいですね
今はテンプレートリテラルと呼ぶのか
53 = :
テンプレートリテラルバックチック!!
54 = :
テンプレートストリングからテンプレートリテラルに改名されてもmdnのurlは昔の名前のままなんだな。当たり前か…
59 = :
let使うとif等のブロック内で定義した時、ブロックから出ると使えなくなる
その方がいい場面があればletだけど、多分内と思う
脳死でconstで良いと思う
varはもう生涯使わんでいい
60 = :
>>58
>>59
ありがとう
varはデプリケーテッドなんですね
let はスコープ内だけで
varはglobal
constは定数
61 = :
constはletとスコープは一緒
値を更新しないならconstが推奨される
アロー関数を変更することなんてまず無いんだからconst一択
どうしてもconstではできない時(少ない)だけletを使う
62 = :
アロー関数と関数宣言って使い分けがめんどくさい
なんでこんなクソごっちゃで仕様めちゃくちゃにしてるんだか
63 = :
アロー関数は当分使わないかな
なんか見づらいんだよな
64 = :
アロー関数は「関数である値」と考えればいいよ
見づらいのは関数だと考えているから。
例えば、 sort(比較関数) みたいな時
引数はsoft関数にわたす値のようなもんでしょ?
だから関数として見えるんじゃなくて
値として見えるように、ああいう構文になってるんだよ
65 = :
>>62
ついて来れない人達のために
仕方なく互換性を残してるんだよ
66 = :
まあ関数リテラルのシンタックスシュガーだけど実際は中の挙動が違うし当たり前だけど定義の前では使えない
68 = :
だからアロー関数と関数宣言の両方を使ってるソースみると、なんで統一しないの?ってなることもある
だけどこれは仕方のないことなんだよ
統一したいならfunctionを使うしかない
70 = :
>>68
目的が違うからだよ
・関数は宣言しておいて何処か別の場所で使う
・アロー関数は別の関数に値として渡すために使う
書き方を分けることで、どういう使い方をするのかを
読み手に読み取らせることが出来る
71 = :
「使い方が違う」というのを理解せずに
単に「書き方が違う」とだけしか思ってないやつがいるんだよな
72 = :
>>70
>・アロー関数は別の関数に値として渡すために使う
渡すためだけにしか使えないわけじゃないんだけど、それはどこで誰が決めたの?
73 = :
input検証にhtml5からrequiredプロパティが使えるようになったとのことで
それ試してるんですがvalidになったときの状態はどうやって判定したらいいのでしょう?
input[name="hoge"]がパターン^abcでvalidになるとして
if ($('input[name="hoge"]').value.match(/^abc/))
のようにとってしまっては
ただvalidとinvalidでスタイルを変更するだけの飾りになってしまうので
何かvalidになったときその要素に何かプロパティが設定されるのではないかと思うのですが
ちょっと調べてもわかりませんでした
ご存知の方教えていただけるとありがたいです
74 = :
すみません追記です
$('input[name="hoge"]')は$hogeとして
patternプロパティ参照して
if ($hoge.value.match($hoge.pattern))
ではとれます
if ($hoge.value.isvalid)
のようにとれるのが理想でプロパティ見てますが
っぽいのが見当たりません
75 = :
$('input[name="hoge"]:valid') でいいでしょ?
無駄なことしなーいw
76 = :
>>75
:の意味がよくわからず思考から除外してました
それでとれることを確認しました
Event.targetにも対応したかったのでそれをヒントに調べましたところ
checkValidity()メソッドでいけることがわかりました
$hoge.checkValidity()
どうもありがとうございました
77 = :
オブジェクト(変数)名を取得する方法を教えてください。
具体的には、以下のようにしたいです。
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 = :
長い
const variable1 = "";
const variable2 = [];
const variable3 = 12;
const list = [variable1, variable2, variable3];
for (const i of list) {
alert(???); //variable1 variable2 variable3と順番に表示
}
81 = :
const variable1 = "";
const variable2 = [];
const variable3 = 12;
const list = {variable1, variable2, variable3};
for (const [key, value] of Object.entries(list)) {
alert(key);
}
82 = :
うほっ
83 = :
おまえ頭柔らかいな
ほめてやろう
84 = :
>>81
レベルが違うってはっきりわかんだね
86 = :
Mapなら確か順序保証されてたからそっちにすれば
87 = :
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);
}
89 = :
>>77
いずれにしても、変数名を文字列で渡さなければ、無理
const map = new Map([['variable1', variable1], ['variable2', variable2], ['variable3', variable3]]);
for (let [key, value] of map) condole.log(key)
90 = :
ちょっと趣向を変えてこんなのとかw
順序は保証されるし変数名を文字列で渡さなくてもいいぞ。
const variable1 = () => "";
const variable2 = () => [];
const variable3 = () => 12;
const list = [variable1, variable2, variable3];
for (const func of list) {
alert(func.name);
}
91 = :
くだらない自己満
92 = :
もう終わりにしてくれるか
93 = :
そもそも変数名を取得する設計を見直した方がいい
何がしたかったのかをもう一度よく考えてみるべき
94 = :
>>81
個別に変数を作らなければ良い
const map = new Map([['variable1', ""], ['variable2', []], ['variable3', 12]]);
for (let [key, value] of map) console.log(key);
95 = :
Mapリテラルまだー?
今の初期化構文、わかりづらいしリストに型の違う値入れなきゃで気持ち悪い
96 = :
それならMap使う必要まったくなくない?
const list = [['variable1', ""], ['variable2', []], ['variable3', 12]];
for (const [key, value] of list) {
alert(key);
}
97 = :
variable3の値だけ欲しいときに毎回find走らせるの?
98 = :
あ、なる
100 = :
>>97
keyはユニークなんだから、配列と違って全体検索ではないでしょ?
類似してるかもしれないスレッド
- + JavaScript の質問用スレッド vol.131 + (1000) - [97%] - 2017/1/25 8:01
- + JavaScript の質問用スレッド vol.135 + (1002) - [97%] - 2018/11/23 10:30
- + JavaScript の質問用スレッド vol.130 + (974) - [97%] - 2016/10/26 14:18
- + JavaScript の質問用スレッド vol.130 + (1001) - [97%] - 2017/11/25 20:45
- + JavaScript の質問用スレッド vol.117 + (1009) - [97%] - 2014/8/5 3:30
- + JavaScript の質問用スレッド vol.131 + (1004) - [97%] - 2018/3/7 13:30
- + JavaScript の質問用スレッド vol.132 + (1001) - [97%] - 2018/4/19 11:00
- + JavaScript の質問用スレッド vol.107 + (1001) - [97%] - 2013/9/7 10:16
- + JavaScript の質問用スレッド vol.133 + (1001) - [97%] - 2018/6/8 10:45
- + JavaScript の質問用スレッド vol.134 + (1001) - [97%] - 2018/8/3 23:15
- + JavaScript の質問用スレッド vol.136 + (1001) - [97%] - 2019/1/8 11:30
- + JavaScript の質問用スレッド vol.138 + (1004) - [97%] - 2019/4/20 23:45
- + JavaScript の質問用スレッド vol.139 + (1001) - [97%] - 2019/5/27 15:15
- + JavaScript の質問用スレッド vol.127 + (1001) - [97%] - 2016/2/4 0:15
- + JavaScript の質問用スレッド vol.127 + (160) - [97%] - 2021/7/16 9:30
- + JavaScript の質問用スレッド vol.113 + (1001) - [95%] - 2014/3/15 21:30
- + JavaScript の質問用スレッド vol.118 + (1002) - [95%] - 2014/8/29 22:30
トップメニューへ / →のくす牧場書庫について